diff -Nru ceph-14.2.11/admin/doc-read-the-docs.txt ceph-14.2.18/admin/doc-read-the-docs.txt --- ceph-14.2.11/admin/doc-read-the-docs.txt 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/admin/doc-read-the-docs.txt 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +plantweb +git+https://github.com/readthedocs/readthedocs-sphinx-search@master diff -Nru ceph-14.2.11/alpine/APKBUILD ceph-14.2.18/alpine/APKBUILD --- ceph-14.2.11/alpine/APKBUILD 2020-08-10 20:17:51.000000000 +0000 +++ ceph-14.2.18/alpine/APKBUILD 2021-03-15 17:48:31.000000000 +0000 @@ -1,7 +1,7 @@ # Contributor: John Coyle # Maintainer: John Coyle pkgname=ceph -pkgver=14.2.11 +pkgver=14.2.18 pkgrel=0 pkgdesc="Ceph is a distributed object store and file system" pkgusers="ceph" @@ -64,7 +64,7 @@ xmlstarlet yasm " -source="ceph-14.2.11.tar.bz2" +source="ceph-14.2.18.tar.bz2" subpackages=" $pkgname-base $pkgname-common @@ -117,7 +117,7 @@ _udevrulesdir=/etc/udev/rules.d _python_sitelib=/usr/lib/python2.7/site-packages -builddir=$srcdir/ceph-14.2.11 +builddir=$srcdir/ceph-14.2.18 build() { export CEPH_BUILD_VIRTUALENV=$builddir diff -Nru ceph-14.2.11/ceph.spec ceph-14.2.18/ceph.spec --- ceph-14.2.11/ceph.spec 2020-08-10 20:17:51.000000000 +0000 +++ ceph-14.2.18/ceph.spec 2021-03-15 17:48:31.000000000 +0000 @@ -109,7 +109,7 @@ # main package definition ################################################################################# Name: ceph -Version: 14.2.11 +Version: 14.2.18 Release: 0%{?dist} %if 0%{?fedora} || 0%{?rhel} Epoch: 2 @@ -125,7 +125,7 @@ Group: System/Filesystems %endif URL: http://ceph.com/ -Source0: %{?_remote_tarball_prefix}ceph-14.2.11.tar.bz2 +Source0: %{?_remote_tarball_prefix}ceph-14.2.18.tar.bz2 %if 0%{?suse_version} # _insert_obs_source_lines_here ExclusiveArch: x86_64 aarch64 ppc64le s390x @@ -293,13 +293,24 @@ %else BuildRequires: python%{_python_buildid}-pyOpenSSL %endif +BuildRequires: libtool-ltdl-devel BuildRequires: python%{_python_buildid}-cherrypy BuildRequires: python%{_python_buildid}-jwt BuildRequires: python%{_python_buildid}-routes BuildRequires: python%{_python_buildid}-scipy BuildRequires: python%{_python_buildid}-werkzeug +BuildRequires: xmlsec1 +BuildRequires: xmlsec1-devel +BuildRequires: xmlsec1-nss +BuildRequires: xmlsec1-openssl +BuildRequires: xmlsec1-openssl-devel %endif %if 0%{?suse_version} +BuildRequires: libxmlsec1-1 +BuildRequires: libxmlsec1-nss1 +BuildRequires: libxmlsec1-openssl1 +BuildRequires: xmlsec1-devel +BuildRequires: xmlsec1-openssl-devel BuildRequires: python%{_python_buildid}-CherryPy BuildRequires: python%{_python_buildid}-PyJWT BuildRequires: python%{_python_buildid}-Routes @@ -310,7 +321,6 @@ BuildRequires: python%{_python_buildid}-pyOpenSSL BuildRequires: python%{_python_buildid}-tox BuildRequires: rpm-build -BuildRequires: xmlsec1-devel %endif %endif # lttng and babeltrace for rbd-replay-prep @@ -478,6 +488,7 @@ %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL +Requires: python-enum34 %else Requires: python%{_python_buildid}-pyOpenSSL %endif @@ -509,6 +520,7 @@ Requires: python%{_python_buildid}-PyJWT Requires: python%{_python_buildid}-Routes Requires: python%{_python_buildid}-Werkzeug +Recommends: python%{_python_buildid}-python3-saml %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL @@ -677,6 +689,10 @@ Requires: lvm2 Requires: sudo Requires: libstoragemgmt +%if 0%{?weak_deps} +Recommends: nvme-cli +Recommends: smartmontools +%endif %description osd ceph-osd is the object storage daemon for the Ceph distributed file system. It is responsible for storing objects on a local file system @@ -1126,7 +1142,7 @@ # common ################################################################################# %prep -%autosetup -p1 -n ceph-14.2.11 +%autosetup -p1 -n ceph-14.2.18 %build # LTO can be enabled as soon as the following GCC bug is fixed: @@ -1291,7 +1307,7 @@ install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules # sudoers.d -install -m 0600 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl +install -m 0440 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl %if 0%{?rhel} >= 8 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/* diff -Nru ceph-14.2.11/ceph.spec.in ceph-14.2.18/ceph.spec.in --- ceph-14.2.11/ceph.spec.in 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/ceph.spec.in 2021-03-15 17:46:20.000000000 +0000 @@ -293,13 +293,24 @@ %else BuildRequires: python%{_python_buildid}-pyOpenSSL %endif +BuildRequires: libtool-ltdl-devel BuildRequires: python%{_python_buildid}-cherrypy BuildRequires: python%{_python_buildid}-jwt BuildRequires: python%{_python_buildid}-routes BuildRequires: python%{_python_buildid}-scipy BuildRequires: python%{_python_buildid}-werkzeug +BuildRequires: xmlsec1 +BuildRequires: xmlsec1-devel +BuildRequires: xmlsec1-nss +BuildRequires: xmlsec1-openssl +BuildRequires: xmlsec1-openssl-devel %endif %if 0%{?suse_version} +BuildRequires: libxmlsec1-1 +BuildRequires: libxmlsec1-nss1 +BuildRequires: libxmlsec1-openssl1 +BuildRequires: xmlsec1-devel +BuildRequires: xmlsec1-openssl-devel BuildRequires: python%{_python_buildid}-CherryPy BuildRequires: python%{_python_buildid}-PyJWT BuildRequires: python%{_python_buildid}-Routes @@ -310,7 +321,6 @@ BuildRequires: python%{_python_buildid}-pyOpenSSL BuildRequires: python%{_python_buildid}-tox BuildRequires: rpm-build -BuildRequires: xmlsec1-devel %endif %endif # lttng and babeltrace for rbd-replay-prep @@ -478,6 +488,7 @@ %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL +Requires: python-enum34 %else Requires: python%{_python_buildid}-pyOpenSSL %endif @@ -509,6 +520,7 @@ Requires: python%{_python_buildid}-PyJWT Requires: python%{_python_buildid}-Routes Requires: python%{_python_buildid}-Werkzeug +Recommends: python%{_python_buildid}-python3-saml %endif %if 0%{?rhel} == 7 Requires: pyOpenSSL @@ -677,6 +689,10 @@ Requires: lvm2 Requires: sudo Requires: libstoragemgmt +%if 0%{?weak_deps} +Recommends: nvme-cli +Recommends: smartmontools +%endif %description osd ceph-osd is the object storage daemon for the Ceph distributed file system. It is responsible for storing objects on a local file system @@ -1291,7 +1307,7 @@ install -m 0644 -D udev/50-rbd.rules %{buildroot}%{_udevrulesdir}/50-rbd.rules # sudoers.d -install -m 0600 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl +install -m 0440 -D sudoers.d/ceph-osd-smartctl %{buildroot}%{_sysconfdir}/sudoers.d/ceph-osd-smartctl %if 0%{?rhel} >= 8 pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{_bindir}/* diff -Nru ceph-14.2.11/CMakeLists.txt ceph-14.2.18/CMakeLists.txt --- ceph-14.2.11/CMakeLists.txt 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/CMakeLists.txt 2021-03-15 17:46:20.000000000 +0000 @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.5.1) project(ceph CXX C ASM) -set(VERSION 14.2.11) +set(VERSION 14.2.18) if(POLICY CMP0028) cmake_policy(SET CMP0028 NEW) @@ -24,6 +24,9 @@ if(POLICY CMP0075) cmake_policy(SET CMP0075 NEW) endif() +if(POLICY CMP0093) + cmake_policy(SET CMP0093 NEW) +endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/") if(CMAKE_SYSTEM_NAME MATCHES "Linux") @@ -105,6 +108,7 @@ CHECK_FUNCTION_EXISTS(name_to_handle_at HAVE_NAME_TO_HANDLE_AT) CHECK_FUNCTION_EXISTS(pipe2 HAVE_PIPE2) CHECK_FUNCTION_EXISTS(accept4 HAVE_ACCEPT4) +CHECK_FUNCTION_EXISTS(sigdescr_np HAVE_SIGDESCR_NP) include(CMakePushCheckState) cmake_push_check_state(RESET) diff -Nru ceph-14.2.11/debian/ceph-base.install ceph-14.2.18/debian/ceph-base.install --- ceph-14.2.11/debian/ceph-base.install 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/ceph-base.install 2021-05-24 13:50:27.000000000 +0000 @@ -2,6 +2,7 @@ etc/bash_completion.d/ceph lib/systemd/system/ceph-crash.service usr/bin/ceph-crash +usr/bin/ceph-kvstore-tool usr/bin/ceph-run usr/bin/crushtool usr/bin/monmaptool @@ -12,6 +13,7 @@ usr/sbin/ceph-create-keys usr/share/doc/ceph/sample.ceph.conf usr/share/man/man8/ceph-create-keys.8 +usr/share/man/man8/ceph-kvstore-tool.8 usr/share/man/man8/ceph-run.8 usr/share/man/man8/crushtool.8 usr/share/man/man8/monmaptool.8 diff -Nru ceph-14.2.11/debian/ceph-mon.install ceph-14.2.18/debian/ceph-mon.install --- ceph-14.2.11/debian/ceph-mon.install 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/ceph-mon.install 2021-05-11 13:32:30.000000000 +0000 @@ -1,3 +1,4 @@ lib/systemd/system/ceph-mon* usr/bin/ceph-mon +usr/bin/ceph-monstore-tool usr/share/man/man8/ceph-mon.8 diff -Nru ceph-14.2.11/debian/ceph-osd.install ceph-14.2.18/debian/ceph-osd.install --- ceph-14.2.11/debian/ceph-osd.install 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/ceph-osd.install 2021-05-24 13:50:27.000000000 +0000 @@ -6,6 +6,7 @@ usr/bin/ceph-clsinfo usr/bin/ceph-objectstore-tool usr/bin/ceph-osd +usr/bin/ceph-osdomap-tool usr/lib/ceph/ceph-osd-prestart.sh usr/lib/python*/dist-packages/ceph_volume usr/lib/python*/dist-packages/ceph_volume-* diff -Nru ceph-14.2.11/debian/changelog ceph-14.2.18/debian/changelog --- ceph-14.2.11/debian/changelog 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/changelog 2021-05-24 13:50:50.000000000 +0000 @@ -1,3 +1,19 @@ +ceph (14.2.18-0ubuntu0.19.10.1~cloud1) bionic; urgency=medium + + * d/*.install: restore ceph-*-tool binaries in packages after removal + of ceph-test binary package (LP: #1917288). + + -- Dariusz Gadomski Mon, 24 May 2021 14:50:50 +0100 + +ceph (14.2.18-0ubuntu0.19.10.1~cloud0) bionic; urgency=medium + + * New upstream stable point release (LP: #1921353): + - d/p/align-write-zeroes-declarations.patch: Drop, included in release. + - d/p/bluefs-use-uint64_t-for-len.patch: Rebase. + * Fold in backport-o-matic patches as parent distribution (Eoan) is EOL. + + -- James Page Fri, 26 Mar 2021 09:24:54 +0000 + ceph (14.2.11-0ubuntu0.19.10.1~cloud4) bionic-train; urgency=medium * d/p/rules: Enable RelWithDebInfo (LP: #1894453). diff -Nru ceph-14.2.11/debian/control ceph-14.2.18/debian/control --- ceph-14.2.11/debian/control 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/control 2021-05-24 13:50:27.000000000 +0000 @@ -105,12 +105,12 @@ Breaks: ceph (<< 10.2.2-0ubuntu2~), ceph-common (<< 9.2.0-0ubuntu1~), - ceph-test (<< 9.2.0-0ubuntu1~), + ceph-test (<< 14.2.18-0ubuntu0.19.10.1~cloud0~), python-ceph (<< 0.94.1-1~), Replaces: ceph (<< 10.2.2-0ubuntu2~), ceph-common (<< 9.2.0-0ubuntu1~), - ceph-test (<< 9.2.0-0ubuntu1~), + ceph-test (<< 14.2.18-0ubuntu0.19.10.1~cloud0~), python-ceph (<< 0.94.1-1~), Recommends: chrony | time-daemon | ntp, @@ -337,8 +337,10 @@ ${shlibs:Depends}, Replaces: ceph (<< 10.2.2-0ubuntu2~), + ceph-test (<< 14.2.18-0ubuntu0.19.10.1~cloud0~), Breaks: ceph (<< 10.2.2-0ubuntu2~), + ceph-test (<< 14.2.18-0ubuntu0.19.10.1~cloud0~), Description: monitor server for the ceph storage system Ceph is a massively scalable, open-source, distributed storage system that runs on commodity hardware and delivers object, @@ -365,8 +367,10 @@ ceph-common (= ${binary:Version}), Replaces: ceph (<< 10.2.2-0ubuntu2~), + ceph-test (<< 14.2.18-0ubuntu0.19.10.1~cloud0~), Breaks: ceph (<< 10.2.2-0ubuntu2~), + ceph-test (<< 14.2.18-0ubuntu0.19.10.1~cloud0~), Description: OSD server for the ceph storage system Ceph is a massively scalable, open-source, distributed storage system that runs on commodity hardware and delivers object, diff -Nru ceph-14.2.11/debian/control.orig ceph-14.2.18/debian/control.orig --- ceph-14.2.11/debian/control.orig 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/control.orig 1970-01-01 00:00:00.000000000 +0000 @@ -1,796 +0,0 @@ -Source: ceph -Section: admin -Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Ceph Maintainers -Uploaders: - Laszlo Boszormenyi (GCS) , - James Page , -Homepage: http://ceph.com/ -Vcs-Browser: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/ceph -Vcs-Git: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/ceph -Build-Depends: - cmake, - cython, - cython3, - debhelper (>= 10~), - default-jdk, - dh-exec, - dh-python, - dpkg-dev (>= 1.16.1~), - gperf, - javahelper, - junit4, - libaio-dev, - libbabeltrace-ctf-dev, - libbabeltrace-dev, - libblkid-dev, - libboost-atomic-dev (>= 1.67.0), - libboost-chrono-dev (>= 1.67.0), - libboost-context-dev (>= 1.67.0) [!s390x], - libboost-coroutine-dev (>= 1.67.0) [!s390x], - libboost-date-time-dev (>= 1.67.0), - libboost-iostreams-dev (>= 1.67.0), - libboost-program-options-dev (>= 1.67.0), - libboost-python-dev (>= 1.67.0), - libboost-random-dev (>= 1.67.0), - libboost-regex-dev (>= 1.67.0), - libboost-system-dev (>= 1.67.0), - libboost-thread-dev (>= 1.67.0), - libbz2-dev, - libcap-ng-dev, - libcunit1-dev, - libcurl4-gnutls-dev, - libedit-dev, - libexpat1-dev, - libfuse-dev, - libgoogle-perftools-dev [i386 amd64 powerpc armhf arm64 ppc64el], - libibverbs-dev, - libkeyutils-dev, - libldap2-dev, - libleveldb-dev, - liblz4-dev (>= 0.0~r131), - libncurses-dev, - libnl-genl-3-dev, - libnss3-dev, - liboath-dev, - librabbitmq-dev, - librdmacm-dev, - libsnappy-dev, - libssl-dev, - libtool, - libudev-dev, - libxml2-dev, - lsb-release, - pkg-config, - python3-all-dev, - python3-bcrypt, - python3-cherrypy3, - python3-coverage, - python3-nose, - python3-pecan, - python3-prettytable, - python3-setuptools, - python3-sphinx, - tox, - uuid-dev, - uuid-runtime, - valgrind [amd64 armhf i386 powerpc], - xfslibs-dev, - xfsprogs, - yasm [amd64], - zlib1g-dev, -Build-Conflicts: - libcrypto++-dev, -Standards-Version: 3.9.8 - -Package: ceph -Architecture: linux-any -Depends: - ceph-mgr (= ${binary:Version}), - ceph-mon (= ${binary:Version}), - ceph-osd (= ${binary:Version}), - ${misc:Depends}, -Suggests: - ceph-mds (= ${binary:Version}), -Description: distributed storage and file system - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - -Package: ceph-base -Architecture: linux-any -Depends: - binutils, - ceph-common (= ${binary:Version}), - cryptsetup-bin | cryptsetup, - gdisk, - hdparm | sdparm, - parted, - uuid-runtime, - xfsprogs, - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Pre-Depends: - ${misc:Pre-Depends}, -Breaks: - ceph (<< 10.2.2-0ubuntu2~), - ceph-common (<< 9.2.0-0ubuntu1~), - ceph-test (<< 9.2.0-0ubuntu1~), - python-ceph (<< 0.94.1-1~), -Replaces: - ceph (<< 10.2.2-0ubuntu2~), - ceph-common (<< 9.2.0-0ubuntu1~), - ceph-test (<< 9.2.0-0ubuntu1~), - python-ceph (<< 0.94.1-1~), -Recommends: - chrony | time-daemon | ntp, - libcephfs2, - librados2, - libradosstriper1, - librbd1, -Suggests: - logrotate, -Description: common ceph daemon libraries and management tools - Ceph is a distributed storage system designed to provide excellent - performance, reliability, and scalability. - . - This package contains the libraries and management tools that are common among - the Ceph server daemons (ceph-mon, ceph-mgr, ceph-osd, ceph-mds). These tools - are necessary for creating, running, and administering a Ceph storage cluster. - -Package: ceph-common -Architecture: linux-any -Depends: - librbd1 (= ${binary:Version}), - python3-cephfs (= ${binary:Version}), - python3-prettytable, - python3-rados (= ${binary:Version}), - python3-rbd (= ${binary:Version}), - python3-requests, - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Conflicts: - ceph-client-tools, -Breaks: - ceph (<< 9.2.0-0ubuntu1~), - ceph-fs-common (<< 12.0.3-0ubuntu1~), - ceph-test (<< 9.2.0-0ubuntu1~), - librbd1 (<< 0.94.1-1~), - python-ceph (<< 0.94.1-1~), - radosgw (<< 12.0.3-0ubuntu1~), -Replaces: - ceph (<< 9.2.0-0ubuntu1~), - ceph-client-tools, - ceph-fs-common (<< 12.0.3-0ubuntu1~), - ceph-test (<< 9.2.0-0ubuntu1~), - librbd1 (<< 0.94.1-1~), - python-ceph (<< 0.94.1-1~), - radosgw (<< 12.0.3-0ubuntu1~), -Suggests: - ceph, - ceph-mds, -Description: common utilities to mount and interact with a ceph storage cluster - Ceph is a distributed storage and file system designed to provide - excellent performance, reliability, and scalability. This is a collection - of common tools that allow one to interact with and administer a Ceph cluster. - -Package: ceph-fuse -Architecture: amd64 -Depends: - ${misc:Depends}, - ${shlibs:Depends}, -Recommends: - fuse, -Description: FUSE-based client for the Ceph distributed file system - Ceph is a distributed network file system designed to provide - excellent performance, reliability, and scalability. This is a - FUSE-based client that allows one to mount a Ceph file system without - root privileges. - . - Because the FUSE-based client has certain inherent performance - limitations, it is recommended that the native Linux kernel client - be used if possible. If it is not practical to load a kernel module - (insufficient privileges, older kernel, etc.), then the FUSE client will - do. - -Package: ceph-mds -Architecture: linux-any -Depends: - ceph, - ${misc:Depends}, - ${shlibs:Depends}, -Recommends: - ceph-common, - ceph-fuse, - libcephfs2, -Breaks: - ceph (<< 0.67.3-1), -Replaces: - ceph (<< 0.67.3-1), -Description: metadata server for the ceph distributed file system - Ceph is a distributed storage and network file system designed to - provide excellent performance, reliability, and scalability. - . - This package contains the metadata server daemon, which is used to - create a distributed file system on top of the ceph storage cluster. - -Package: ceph-mgr -Architecture: linux-any -Depends: - ceph-base (= ${binary:Version}), - python3-bcrypt, - python3-cherrypy3, - python3-jwt, - python3-openssl, - python3-pecan, - python3-werkzeug, - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Replaces: - ceph (<< 0.93-417), -Breaks: - ceph (<< 0.93-417), -Suggests: - ceph-mgr-dashboard, - ceph-mgr-diskprediction-cloud, - ceph-mgr-diskprediction-local, - ceph-mgr-rook, - ceph-mgr-ssh, -Description: manager for the ceph distributed file system - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains the manager daemon, which is used to expose high - level management and monitoring functionality. - -Package: ceph-mgr-dashboard -Architecture: all -Depends: - ceph-mgr (>= ${binary:Version}), - python3-bcrypt, - python3-cherrypy3, - python3-distutils, - python3-jwt, - python3-openssl, - python3-routes, - python3-werkzeug, - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: dashboard plugin for ceph-mgr - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package provides a ceph-mgr plugin, providing a web-based - application to monitor and manage many aspects of a Ceph cluster and - related components. - . - See the Dashboard documentation at http://docs.ceph.com/ for details - and a detailed feature overview. - -Package: ceph-mgr-diskprediction-cloud -Architecture: all -Depends: - ceph-mgr (>= ${binary:Version}), - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: diskprediction-cloud plugin for ceph-mgr - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains the diskprediction_cloud plugin for the ceph-mgr - daemon, which helps predict disk failures. - -Package: ceph-mgr-diskprediction-local -Architecture: all -Depends: - ceph-mgr (>= ${binary:Version}), - python3-numpy, - python3-scipy, - python3-sklearn, - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: diskprediction-local plugin for ceph-mgr - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains the diskprediction_local plugin for the ceph-mgr - daemon, which helps predict disk failures. - -Package: ceph-mgr-rook -Architecture: all -Depends: - ceph-mgr (>= ${binary:Version}), - python3-six, - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: rook plugin for ceph-mgr - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains the rook plugin for ceph-mgr's orchestration - functionality, to allow ceph-mgr to install and configure ceph using - Rook. - -Package: ceph-mgr-ssh -Architecture: all -Depends: - ceph-mgr (>= ${binary:Version}), - python3-six, - ${misc:Depends}, - ${python3:Depends}, -Description: ssh orchestrator plugin for ceph-mgr - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains the SSH plugin for ceph-mgr's orchestration - functionality, to allow ceph-mgr to perform orchestration functions - over a standard SSH connection. - -Package: ceph-mon -Architecture: linux-any -Depends: - ceph-base (= ${binary:Version}), - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Replaces: - ceph (<< 10.2.2-0ubuntu2~), -Breaks: - ceph (<< 10.2.2-0ubuntu2~), -Description: monitor server for the ceph storage system - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains the cluster monitor daemon for the Ceph storage - system. One or more instances of ceph-mon form a Paxos part-time parliament - cluster that provides extremely reliable and durable storage of cluster - membership, configuration, and state. - -Package: ceph-osd -Architecture: linux-any -Depends: - ceph-base (= ${binary:Version}), - lvm2, - smartmontools (>= 7.0), - sudo, - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Suggests: - nvme-cli, -Pre-Depends: - ceph-common (= ${binary:Version}), -Replaces: - ceph (<< 10.2.2-0ubuntu2~), -Breaks: - ceph (<< 10.2.2-0ubuntu2~), -Description: OSD server for the ceph storage system - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains the Object Storage Daemon for the Ceph storage system. - It is responsible for storing objects on a local file system - and providing access to them over the network. - -Package: ceph-resource-agents -Architecture: all -Priority: extra -Recommends: - pacemaker, -Depends: - ceph (>= ${binary:Version}), - resource-agents, - ${misc:Depends}, -Description: OCF-compliant resource agents for Ceph - Ceph is a distributed storage and network file system designed to provide - excellent performance, reliability, and scalability. - . - This package contains the resource agents (RAs) which integrate - Ceph with OCF-compliant cluster resource managers, - such as Pacemaker. - -Package: cephfs-shell -Architecture: all -Depends: - ${misc:Depends}, - ${python3:Depends}, -Description: interactive shell for the Ceph distributed file system - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. This is an interactive tool that - allows accessing a Ceph file system without mounting it by providing - a nice pseudo-shell which works like an FTP client. - . - This package contains a CLI for interacting with the CephFS. - -Package: libcephfs-dev -Architecture: linux-any -Section: libdevel -Depends: - libcephfs2 (= ${binary:Version}), - ${misc:Depends}, -Conflicts: - libceph-dev, - libceph1-dev, - libcephfs2-dev, -Replaces: - libceph-dev, - libceph1-dev, - libcephfs2-dev, -Description: Ceph distributed file system client library (development files) - Ceph is a distributed network file system designed to provide - excellent performance, reliability, and scalability. This is a - shared library allowing applications to access a Ceph distributed - file system via a POSIX-like interface. - . - This package contains development files needed for building applications that - link against libcephfs2. - -Package: libcephfs-java -Architecture: all -Section: java -Depends: - libcephfs-jni (>= ${binary:Version}), - ${java:Depends}, - ${misc:Depends}, -Description: Java library for the Ceph File System - Ceph is a distributed storage system designed to provide excellent - performance, reliability, and scalability. - . - This package contains the Java library for interacting with the Ceph - File System. - -Package: libcephfs-jni -Architecture: linux-any -Section: libs -Depends: - libcephfs2 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: Java Native Interface library for CephFS Java bindings - Ceph is a distributed storage system designed to provide excellent - performance, reliability, and scalability. - . - This package contains the Java Native Interface library for interacting - with the Ceph File System. - -Package: libcephfs2 -Architecture: linux-any -Section: libs -Conflicts: - libceph, - libceph1, - libcephfs, -Replaces: - libceph, - libceph1, - libcephfs, -Depends: - ${misc:Depends}, - ${shlibs:Depends}, -Pre-Depends: - ${misc:Pre-Depends}, -Description: Ceph distributed file system client library - Ceph is a distributed network file system designed to provide - excellent performance, reliability, and scalability. This is a - shared library allowing applications to access a Ceph distributed - file system via a POSIX-like interface. - -Package: librados-dev -Architecture: linux-any -Section: libdevel -Depends: - librados2 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Conflicts: - librados1-dev, - librados2-dev, -Replaces: - librados1-dev, - librados2-dev, -Description: RADOS distributed object store client library (development files) - RADOS is a reliable, autonomic distributed object storage cluster - developed as part of the Ceph distributed storage system. This is a - shared library allowing applications to access the distributed object - store using a simple file-like interface. - . - This package contains development files needed for building applications that - link against librados2. - -Package: librados2 -Architecture: linux-any -Section: libs -Conflicts: - librados, - librados1, -Replaces: - librados, - librados1, -Depends: - ${misc:Depends}, - ${shlibs:Depends}, -Pre-Depends: - ${misc:Pre-Depends}, -Description: RADOS distributed object store client library - RADOS is a reliable, autonomic distributed object storage cluster - developed as part of the Ceph distributed storage system. This is a - shared library allowing applications to access the distributed object - store using a simple file-like interface. - -Package: libradospp-dev -Architecture: linux-any -Section: libdevel -Depends: - librados-dev (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: RADOS distributed object store client C++ library (development files) - RADOS is a reliable, autonomic distributed object storage cluster - developed as part of the Ceph distributed storage system. This is a - shared library allowing applications to access the distributed object - store using a simple file-like interface. - . - This package contains development files needed for building C++ applications that - link against librados. - -Package: libradosstriper-dev -Architecture: linux-any -Section: libdevel -Depends: - libradosstriper1 (= ${binary:Version}), - ${misc:Depends}, -Description: RADOS striping interface (development files) - libradosstriper is a striping interface built on top of the rados - library, allowing to stripe bigger objects onto several standard - rados objects using an interface very similar to the rados one. - . - This package contains development files needed for building applications that - link against libradosstriper. - -Package: libradosstriper1 -Architecture: linux-any -Section: libs -Depends: - librados2 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: RADOS striping interface - Striping interface built on top of the rados library, allowing - to stripe bigger objects onto several standard rados objects using - an interface very similar to the rados one. - -Package: librbd-dev -Architecture: linux-any -Section: libdevel -Depends: - librados-dev, - librbd1 (= ${binary:Version}), - ${misc:Depends}, -Conflicts: - librbd1-dev, -Replaces: - librbd1-dev, -Description: RADOS block device client library (development files) - RBD is a block device striped across multiple distributed objects - in RADOS, a reliable, autonomic distributed object storage cluster - developed as part of the Ceph distributed storage system. This is a - shared library allowing applications to manage these block devices. - . - This package contains development files needed for building applications that - link against librbd1. - -Package: librbd1 -Architecture: linux-any -Section: libs -Depends: - librados2 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Pre-Depends: - ${misc:Pre-Depends}, -Description: RADOS block device client library - RBD is a block device striped across multiple distributed objects - in RADOS, a reliable, autonomic distributed object storage cluster - developed as part of the Ceph distributed storage system. This is a - shared library allowing applications to manage these block devices. - -Package: librgw-dev -Architecture: linux-any -Section: libdevel -Depends: - librados-dev (= ${binary:Version}), - librgw2 (= ${binary:Version}), - ${misc:Depends}, -Description: RADOS client library (development files) - RADOS is a distributed object store used by the Ceph distributed - storage system. This package provides a REST gateway to the - object store that aims to implement a superset of Amazon's S3 - service. - . - This package contains development files needed for building applications - that link against librgw2. - -Package: librgw2 -Architecture: linux-any -Section: libs -Depends: - librados2 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: RADOS Gateway client library - RADOS is a distributed object store used by the Ceph distributed - storage system. This package provides a REST gateway to the - object store that aims to implement a superset of Amazon's S3 - service. - . - This package contains the library interface and headers only. - -Package: python3-ceph-argparse -Architecture: linux-any -Section: python -Depends: - ${misc:Depends}, - ${python3:Depends}, -Breaks: - ceph-common (<< 14.2.1-0ubuntu1~), -Replaces: - ceph-common (<< 14.2.1-0ubuntu1~), -Description: Python 3 utility libraries for Ceph CLI - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains types and routines for Python 3 used by the - Ceph CLI as well as the RESTful interface. - -Package: python3-cephfs -Architecture: linux-any -Section: python -Depends: - libcephfs2 (= ${binary:Version}), - python3-ceph-argparse (= ${binary:Version}), - python3-rados (= ${binary:Version}), - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: Python 3 libraries for the Ceph libcephfs library - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains Python 3 libraries for interacting with Ceph's - CephFS file system client library. - -Package: python3-rados -Architecture: linux-any -Section: python -Depends: - librados2 (= ${binary:Version}), - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: Python 3 libraries for the Ceph librados library - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains Python 3 libraries for interacting with Ceph's - RADOS object storage. - -Package: python3-rbd -Architecture: linux-any -Section: python -Depends: - librbd1 (>= ${binary:Version}), - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: Python 3 libraries for the Ceph librbd library - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains Python 3 libraries for interacting with Ceph's - RBD block device library. - -Package: python3-rgw -Architecture: linux-any -Section: python -Depends: - librgw2 (>= ${binary:Version}), - python3-rados (= ${binary:Version}), - ${misc:Depends}, - ${python3:Depends}, - ${shlibs:Depends}, -Description: Python 3 libraries for the Ceph librgw library - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. - . - This package contains Python 3 libraries for interacting with Ceph's - RGW library. - -Package: rados-objclass-dev -Architecture: linux-any -Section: libdevel -Depends: - librados-dev (= ${binary:Version}), - ${misc:Depends}, -Description: RADOS object class development kit. - . - This package contains development files needed for building RADOS object class plugins. - -Package: radosgw -Architecture: linux-any -Depends: - ceph-common (= ${binary:Version}), - librgw2 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Suggests: - logrotate, -Description: REST gateway for RADOS distributed object store - RADOS is a distributed object store used by the Ceph distributed - storage system. This package provides a REST gateway to the - object store that aims to implement a superset of Amazon's S3 - service as well as the OpenStack Object Storage ("Swift") API. - . - This package contains the proxy daemon and related tools only. - -Package: rbd-fuse -Architecture: linux-any -Depends: - ${misc:Depends}, - ${shlibs:Depends}, -Recommends: - fuse, -Description: FUSE-based rbd client for the Ceph distributed file system - Ceph is a distributed network file system designed to provide - excellent performance, reliability, and scalability. This is a - FUSE-based client that allows one to map Ceph rbd images as files. - -Package: rbd-mirror -Architecture: linux-any -Depends: - ceph-common (= ${binary:Version}), - librados2 (= ${binary:Version}), - ${misc:Depends}, - ${shlibs:Depends}, -Description: Ceph daemon for mirroring RBD images - Ceph is a distributed storage system designed to provide excellent - performance, reliability, and scalability. - . - This package provides a daemon for mirroring RBD images between - Ceph clusters, streaming changes asynchronously. - -Package: rbd-nbd -Architecture: linux-any -Depends: - ${misc:Depends}, - ${shlibs:Depends}, -Description: NBD-based rbd client for the Ceph distributed file system - Ceph is a massively scalable, open-source, distributed - storage system that runs on commodity hardware and delivers object, - block and file system storage. This is a - NBD-based client that allows one to map Ceph rbd images as local - block device. - . - NBD base client that allows one to map Ceph rbd images as local - block device. diff -Nru ceph-14.2.11/debian/patches/align-write-zeroes-declarations.patch ceph-14.2.18/debian/patches/align-write-zeroes-declarations.patch --- ceph-14.2.11/debian/patches/align-write-zeroes-declarations.patch 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/patches/align-write-zeroes-declarations.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -Description: nautilus: librbd: Align rbd_write_zeroes declarations - Fixes: https://tracker.ceph.com/issues/46928 -Author: Corey Bryant -Origin: https://github.com/ceph/ceph/pull/36688 - -diff --git a/src/include/rbd/librbd.h b/src/include/rbd/librbd.h -index 68b4f69800..680348fb6d 100644 ---- a/src/include/rbd/librbd.h -+++ b/src/include/rbd/librbd.h -@@ -1109,7 +1109,7 @@ CEPH_RBD_API ssize_t rbd_writesame(rbd_image_t image, uint64_t ofs, size_t len, - const char *buf, size_t data_len, - int op_flags); - CEPH_RBD_API ssize_t rbd_write_zeroes(rbd_image_t image, uint64_t ofs, -- uint64_t len, int zero_flags, -+ size_t len, int zero_flags, - int op_flags); - CEPH_RBD_API ssize_t rbd_compare_and_write(rbd_image_t image, uint64_t ofs, - size_t len, const char *cmp_buf, --- -2.27.0 - diff -Nru ceph-14.2.11/debian/patches/bluefs-use-uint64_t-for-len.patch ceph-14.2.18/debian/patches/bluefs-use-uint64_t-for-len.patch --- ceph-14.2.11/debian/patches/bluefs-use-uint64_t-for-len.patch 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/patches/bluefs-use-uint64_t-for-len.patch 2021-05-24 13:50:27.000000000 +0000 @@ -23,8 +23,8 @@ --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc -@@ -1468,7 +1468,7 @@ void BlueFS::_drop_link(FileRef file) - int BlueFS::_read_random( +@@ -1678,7 +1678,7 @@ void BlueFS::_drop_link(FileRef file) + int64_t BlueFS::_read_random( FileReader *h, ///< [in] read from here uint64_t off, ///< [in] offset - size_t len, ///< [in] this many bytes @@ -32,19 +32,19 @@ char *out) ///< [out] optional: or copy it here { auto* buf = &h->buf; -@@ -1498,7 +1498,7 @@ int BlueFS::_read_random( - s_lock.unlock(); +@@ -1710,7 +1710,7 @@ int64_t BlueFS::_read_random( uint64_t x_off = 0; auto p = h->file->fnode.seek(off, &x_off); + ceph_assert(p != h->file->fnode.extents.end()); - uint64_t l = std::min(p->length - x_off, static_cast(len)); + uint64_t l = std::min(p->length - x_off, len); + //hard cap to 1GB + l = std::min(l, uint64_t(1) << 30); dout(20) << __func__ << " read random 0x" - << std::hex << x_off << "~" << l << std::dec - << " of " << *p << dendl; --- a/src/os/bluestore/BlueFS.h +++ b/src/os/bluestore/BlueFS.h -@@ -387,7 +387,7 @@ private: - int _read_random( +@@ -422,7 +422,7 @@ private: + int64_t _read_random( FileReader *h, ///< [in] read from here uint64_t offset, ///< [in] offset - size_t len, ///< [in] this many bytes @@ -54,7 +54,7 @@ void _invalidate_cache(FileRef f, uint64_t offset, uint64_t length); --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc -@@ -5536,7 +5536,7 @@ size_t BlueStore::available_freespace(ui +@@ -5943,7 +5943,7 @@ size_t BlueStore::available_freespace(ui if (dist_to_alignment >= len) return; len -= dist_to_alignment; diff -Nru ceph-14.2.11/debian/patches/series ceph-14.2.18/debian/patches/series --- ceph-14.2.11/debian/patches/series 2020-10-26 13:02:49.000000000 +0000 +++ ceph-14.2.18/debian/patches/series 2021-05-24 13:50:27.000000000 +0000 @@ -1,4 +1,3 @@ -align-write-zeroes-declarations.patch update-java-source-target-flags.patch disable-crypto.patch boost-py37-compat.patch diff -Nru ceph-14.2.11/doc/architecture.rst ceph-14.2.18/doc/architecture.rst --- ceph-14.2.11/doc/architecture.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/architecture.rst 2021-03-15 17:46:20.000000000 +0000 @@ -27,7 +27,9 @@ - :term:`Ceph Monitor` - :term:`Ceph OSD Daemon` -.. ditaa:: +---------------+ +---------------+ +.. ditaa:: + + +---------------+ +---------------+ | OSDs | | Monitors | +---------------+ +---------------+ @@ -56,7 +58,9 @@ file in a filesystem, which is stored on an :term:`Object Storage Device`. Ceph OSD Daemons handle the read/write operations on the storage disks. -.. ditaa:: /-----\ +-----+ +-----+ +.. ditaa:: + + /-----\ +-----+ +-----+ | obj |------>| {d} |------>| {s} | \-----/ +-----+ +-----+ @@ -70,7 +74,9 @@ forth. -.. ditaa:: /------+------------------------------+----------------\ +.. ditaa:: + + /------+------------------------------+----------------\ | ID | Binary Data | Metadata | +------+------------------------------+----------------+ | 1234 | 0101010101010100110101010010 | name1 = value1 | @@ -229,7 +235,9 @@ .. note:: The ``client.admin`` user must provide the user ID and secret key to the user in a secure manner. -.. ditaa:: +---------+ +---------+ +.. ditaa:: + + +---------+ +---------+ | Client | | Monitor | +---------+ +---------+ | request to | @@ -252,7 +260,9 @@ ticket and uses it to sign requests to OSDs and metadata servers throughout the cluster. -.. ditaa:: +---------+ +---------+ +.. ditaa:: + + +---------+ +---------+ | Client | | Monitor | +---------+ +---------+ | authenticate | @@ -283,7 +293,9 @@ subsequent to the initial authentication, is signed using a ticket that the monitors, OSDs and metadata servers can verify with their shared secret. -.. ditaa:: +---------+ +---------+ +-------+ +-------+ +.. ditaa:: + + +---------+ +---------+ +-------+ +-------+ | Client | | Monitor | | MDS | | OSD | +---------+ +---------+ +-------+ +-------+ | request to | | | @@ -393,7 +405,8 @@ and tertiary OSDs (as many OSDs as additional replicas), and responds to the client once it has confirmed the object was stored successfully. -.. ditaa:: +.. ditaa:: + +----------+ | Client | | | @@ -443,7 +456,8 @@ pools. The pool's ``size`` or number of replicas, the CRUSH rule and the number of placement groups determine how Ceph will place the data. -.. ditaa:: +.. ditaa:: + +--------+ Retrieves +---------------+ | Client |------------>| Cluster Map | +--------+ +---------------+ @@ -488,7 +502,8 @@ come online. The following diagram depicts how CRUSH maps objects to placement groups, and placement groups to OSDs. -.. ditaa:: +.. ditaa:: + /-----\ /-----\ /-----\ /-----\ /-----\ | obj | | obj | | obj | | obj | | obj | \-----/ \-----/ \-----/ \-----/ \-----/ @@ -614,7 +629,8 @@ new OSD after rebalancing is complete. -.. ditaa:: +.. ditaa:: + +--------+ +--------+ Before | OSD 1 | | OSD 2 | +--------+ +--------+ @@ -685,6 +701,7 @@ .. ditaa:: + +-------------------+ name | NYAN | +-------------------+ @@ -739,6 +756,7 @@ account. .. ditaa:: + +-------------------+ name | NYAN | +-------------------+ @@ -804,6 +822,7 @@ .. ditaa:: + Primary OSD +-------------+ @@ -934,6 +953,7 @@ on **OSD 3**. .. ditaa:: + Primary OSD +-------------+ @@ -972,6 +992,7 @@ will be the head of the new authoritative log. .. ditaa:: + +-------------+ | OSD 1 | | (down) | @@ -1017,6 +1038,7 @@ .. ditaa:: + Primary OSD +-------------+ @@ -1068,7 +1090,8 @@ to Ceph clients. -.. ditaa:: +.. ditaa:: + +-------------+ | Ceph Client | +------+------+ @@ -1150,7 +1173,8 @@ you can create your own custom Ceph Clients. The following diagram depicts the basic architecture. -.. ditaa:: +.. ditaa:: + +---------------------------------+ | Ceph Storage Cluster Protocol | | (librados) | @@ -1193,7 +1217,9 @@ synchronization/communication channel. -.. ditaa:: +----------+ +----------+ +----------+ +---------------+ +.. ditaa:: + + +----------+ +----------+ +----------+ +---------------+ | Client 1 | | Client 2 | | Client 3 | | OSD:Object ID | +----------+ +----------+ +----------+ +---------------+ | | | | @@ -1269,7 +1295,8 @@ groups, and consequently doesn't improve performance very much. The following diagram depicts the simplest form of striping: -.. ditaa:: +.. ditaa:: + +---------------+ | Client Data | | Format | @@ -1327,7 +1354,8 @@ stripe (``stripe unit 16``) in the first object in the new object set (``object 4`` in the diagram below). -.. ditaa:: +.. ditaa:: + +---------------+ | Client Data | | Format | @@ -1443,6 +1471,7 @@ architecture. .. ditaa:: + +--------------+ +----------------+ +-------------+ | Block Device | | Object Storage | | CephFS | +--------------+ +----------------+ +-------------+ @@ -1527,6 +1556,7 @@ a Filesystem in User Space (FUSE). .. ditaa:: + +-----------------------+ +------------------------+ | CephFS Kernel Object | | CephFS FUSE | +-----------------------+ +------------------------+ diff -Nru ceph-14.2.11/doc/cephfs/fs-volumes.rst ceph-14.2.18/doc/cephfs/fs-volumes.rst --- ceph-14.2.11/doc/cephfs/fs-volumes.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/cephfs/fs-volumes.rst 2021-03-15 17:46:20.000000000 +0000 @@ -65,7 +65,7 @@ Create a subvolume group using:: - $ ceph fs subvolumegroup create [--pool_layout --uid --gid --mode ] + $ ceph fs subvolumegroup create [--pool_layout ] [--uid ] [--gid ] [--mode ] The command succeeds even if the subvolume group already exists. @@ -91,12 +91,8 @@ $ ceph fs subvolumegroup ls -Create a snapshot (see :doc:`/cephfs/experimental-features`) of a -subvolume group using:: - - $ ceph fs subvolumegroup snapshot create - -This implicitly snapshots all the subvolumes under the subvolume group. +.. note:: Subvolume group snapshot feature is no longer supported in nautilus CephFS (existing group + snapshots can still be listed and deleted) Remove a snapshot of a subvolume group using:: @@ -115,7 +111,7 @@ Create a subvolume using:: - $ ceph fs subvolume create [--size --group_name --pool_layout --uid --gid --mode --namespace-isolated] + $ ceph fs subvolume create [--size ] [--group_name ] [--pool_layout ] [--uid ] [--gid ] [--mode ] [--namespace-isolated] The command succeeds even if the subvolume already exists. @@ -130,16 +126,24 @@ Remove a subvolume using:: - $ ceph fs subvolume rm [--group_name --force] + $ ceph fs subvolume rm [--group_name ] [--force] [--retain-snapshots] The command removes the subvolume and its contents. It does this in two steps. -First, it move the subvolume to a trash folder, and then asynchronously purges +First, it moves the subvolume to a trash folder, and then asynchronously purges its contents. The removal of a subvolume fails if it has snapshots, or is non-existent. '--force' flag allows the non-existent subvolume remove command to succeed. +A subvolume can be removed retaining existing snapshots of the subvolume using the +'--retain-snapshots' option. If snapshots are retained, the subvolume is considered +empty for all operations not involving the retained snapshots. + +.. note:: Snapshot retained subvolumes can be recreated using 'ceph fs subvolume create' + +.. note:: Retained snapshots can be used as a clone source to recreate the subvolume, or clone to a newer subvolume. + Resize a subvolume using:: $ ceph fs subvolume resize [--group_name ] [--no_shrink] @@ -149,6 +153,24 @@ The subvolume can be resized to an infinite size by passing 'inf' or 'infinite' as the new_size. +Authorize cephx auth IDs, the read/read-write access to fs subvolumes:: + + $ ceph fs subvolume authorize [--group_name=] [--access_level=] + +The 'access_level' takes 'r' or 'rw' as value. + +Deauthorize cephx auth IDs, the read/read-write access to fs subvolumes:: + + $ ceph fs subvolume deauthorize [--group_name=] + +List cephx auth IDs authorized to access fs subvolume:: + + $ ceph fs subvolume authorized_list [--group_name=] + +Evict fs clients based on auth ID and subvolume mounted:: + + $ ceph fs subvolume evict [--group_name=] + Fetch the absolute path of a subvolume using:: $ ceph fs subvolume getpath [--group_name ] @@ -175,17 +197,32 @@ * type: subvolume type indicating whether it's clone or subvolume * pool_namespace: RADOS namespace of the subvolume * features: features supported by the subvolume +* state: current state of the subvolume + +If a subvolume has been removed retaining its snapshots, the output only contains fields as follows. + +* type: subvolume type indicating whether it's clone or subvolume +* features: features supported by the subvolume +* state: current state of the subvolume The subvolume "features" are based on the internal version of the subvolume and is a list containing a subset of the following features, * "snapshot-clone": supports cloning using a subvolumes snapshot as the source * "snapshot-autoprotect": supports automatically protecting snapshots, that are active clone sources, from deletion +* "snapshot-retention": supports removing subvolume contents, retaining any existing snapshots + +The subvolume "state" is based on the current state of the subvolume and contains one of the following values. + +* "complete": subvolume is ready for all operations +* "snapshot-retained": subvolume is removed but its snapshots are retained List subvolumes using:: $ ceph fs subvolume ls [--group_name ] +.. note:: subvolumes that are removed but have snapshots retained, are also listed. + Create a snapshot of a subvolume using:: $ ceph fs subvolume snapshot create [--group_name ] @@ -193,11 +230,13 @@ Remove a snapshot of a subvolume using:: - $ ceph fs subvolume snapshot rm [--group_name --force] + $ ceph fs subvolume snapshot rm [--group_name ] [--force] Using the '--force' flag allows the command to succeed that would otherwise fail if the snapshot did not exist. +.. note:: if the last snapshot within a snapshot retained subvolume is removed, the subvolume is also removed + List snapshots of a subvolume using:: $ ceph fs subvolume snapshot ls [--group_name ] @@ -251,6 +290,10 @@ $ ceph fs subvolume snapshot clone --pool_layout +Configure maximum number of concurrent clones. The default is set to 4:: + + $ ceph config set mgr mgr/volumes/max_concurrent_clones + To check the status of a clone operation use:: $ ceph fs clone status [--group_name ] diff -Nru ceph-14.2.11/doc/ceph-volume/intro.rst ceph-14.2.18/doc/ceph-volume/intro.rst --- ceph-14.2.11/doc/ceph-volume/intro.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/ceph-volume/intro.rst 2021-03-15 17:46:20.000000000 +0000 @@ -74,16 +74,11 @@ ------------------- By making use of :term:`LVM tags`, the :ref:`ceph-volume-lvm` sub-command is able to store and later re-discover and query devices associated with OSDs so -that they can later activated. This includes support for lvm-based technologies -like dm-cache as well. - -For ``ceph-volume``, the use of dm-cache is transparent, there is no difference -for the tool, and it treats dm-cache like a plain logical volume. +that they can later be activated. LVM performance penalty ----------------------- In short: we haven't been able to notice any significant performance penalties associated with the change to LVM. By being able to work closely with LVM, the -ability to work with other device mapper technologies (for example ``dmcache``) -was a given: there is no technical difficulty in working with anything that can -sit below a Logical Volume. +ability to work with other device mapper technologies was a given: there is no +technical difficulty in working with anything that can sit below a Logical Volume. diff -Nru ceph-14.2.11/doc/ceph-volume/lvm/batch.rst ceph-14.2.18/doc/ceph-volume/lvm/batch.rst --- ceph-14.2.11/doc/ceph-volume/lvm/batch.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/ceph-volume/lvm/batch.rst 2021-03-15 17:46:20.000000000 +0000 @@ -2,142 +2,128 @@ ``batch`` =========== -This subcommand allows for multiple OSDs to be created at the same time given -an input of devices. Depending on the device type (spinning drive, or solid -state), the internal engine will decide the best approach to create the OSDs. - -This decision abstracts away the many nuances when creating an OSD: how large -should a ``block.db`` be? How can one mix a solid state device with spinning -devices in an efficient way? - -The process is similar to :ref:`ceph-volume-lvm-create`, and will do the -preparation and activation at once, following the same workflow for each OSD. -However, If the ``--prepare`` flag is passed then only the prepare step is taken -and the OSDs are not activated. +The subcommand allows to create multiple OSDs at the same time given +an input of devices. + +The subcommand is based to :ref:`ceph-volume-lvm-create`, and will use the very +same code path. All ``batch`` does is to calculate the appropriate sizes of all +volumes and skip over already created volumes. All the features that ``ceph-volume lvm create`` supports, like ``dmcrypt``, avoiding ``systemd`` units from starting, defining bluestore or filestore, -are supported. Any fine-grained option that may affect a single OSD is not -supported, for example: specifying where journals should be placed. - +are supported. +.. _ceph-volume-lvm-batch_auto: -.. _ceph-volume-lvm-batch_bluestore: - -``bluestore`` -------------- -The :term:`bluestore` objectstore (the default) is used when creating multiple OSDs -with the ``batch`` sub-command. It allows a few different scenarios depending -on the input of devices: +Automatic sorting of disks +-------------------------- +If ``batch`` receives only a single list of devices and the ``--no-auto`` option + is not passed, ``ceph-volume`` will auto-sort disks by its rotational + property and use non-rotating disks for ``block.db`` or ``journal`` depending + on the objectstore used. +This behavior is now DEPRECATED and will be removed in future releases. Instead + an ``auto`` option will be introduced to retain this behavior. +It is recommended to make use of the explicit device lists for ``block.db``, + ``block.wal`` and ``journal``. +For example assuming :term:`bluestore` is used and ``--no-auto`` is not passed, + the deprecated behavior would deploy the following, depending on the devices + passed: #. Devices are all spinning HDDs: 1 OSD is created per device #. Devices are all SSDs: 2 OSDs are created per device #. Devices are a mix of HDDs and SSDs: data is placed on the spinning device, the ``block.db`` is created on the SSD, as large as possible. - .. note:: Although operations in ``ceph-volume lvm create`` allow usage of - ``block.wal`` it isn't supported with the ``batch`` sub-command - - -.. _ceph-volume-lvm-batch_filestore: - -``filestore`` -------------- -The :term:`filestore` objectstore can be used when creating multiple OSDs -with the ``batch`` sub-command. It allows two different scenarios depending -on the input of devices: + ``block.wal`` it isn't supported with the ``auto`` behavior. -#. Devices are all the same type (for example all spinning HDD or all SSDs): - 1 OSD is created per device, collocating the journal in the same HDD. -#. Devices are a mix of HDDs and SSDs: data is placed on the spinning device, - while the journal is created on the SSD using the sizing options from - ceph.conf and falling back to the default journal size of 5GB. +.. _ceph-volume-lvm-batch_bluestore: +Reporting +========= +By default ``batch`` will print a report of the computed OSD layout and ask the +user to confirm. This can be overridden by passing ``--yes``. -When a mix of solid and spinning devices are used, ``ceph-volume`` will try to -detect existing volume groups on the solid devices. If a VG is found, it will -try to create the logical volume from there, otherwise raising an error if -space is insufficient. +If one wants to try out several invocations with being asked to deploy +``--report`` can be passed. ``ceph-volume`` will exit after printing the report. -If a raw solid device is used along with a device that has a volume group in -addition to some spinning devices, ``ceph-volume`` will try to extend the -existing volume group and then create a logical volume. +Consider the following invocation:: -.. _ceph-volume-lvm-batch_report: + $ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1 -Reporting -========= -When a call is received to create OSDs, the tool will prompt the user to -continue if the pre-computed output is acceptable. This output is useful to -understand the outcome of the received devices. Once confirmation is accepted, -the process continues. - -Although prompts are good to understand outcomes, it is incredibly useful to -try different inputs to find the best product possible. With the ``--report`` -flag, one can prevent any actual operations and just verify outcomes from -inputs. +This will deploy three OSDs with external ``db`` and ``wal`` volumes on +an NVME device. **pretty reporting** -For two spinning devices, this is how the ``pretty`` report (the default) would -look:: +The ``pretty`` report format (the default) would +look like this:: - $ ceph-volume lvm batch --report /dev/sdb /dev/sdc + $ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1 - Total OSDs: 2 + Total OSDs: 3 - Type Path LV Size % of device - -------------------------------------------------------------------------------- - [data] /dev/sdb 10.74 GB 100% - -------------------------------------------------------------------------------- - [data] /dev/sdc 10.74 GB 100% **JSON reporting** -Reporting can produce a richer output with ``JSON``, which gives a few more -hints on sizing. This feature might be better for other tooling to consume -information that will need to be transformed. - -For two spinning devices, this is how the ``JSON`` report would look:: - - $ ceph-volume lvm batch --report --format=json /dev/sdb /dev/sdc - { - "osds": [ - { - "block.db": {}, - "data": { - "human_readable_size": "10.74 GB", - "parts": 1, - "path": "/dev/sdb", - "percentage": 100, - "size": 11534336000.0 - } - }, - { - "block.db": {}, - "data": { - "human_readable_size": "10.74 GB", - "parts": 1, - "path": "/dev/sdc", - "percentage": 100, - "size": 11534336000.0 - } - } - ], - "vgs": [ - { - "devices": [ - "/dev/sdb" - ], - "parts": 1 - }, - { - "devices": [ - "/dev/sdc" - ], - "parts": 1 - } - ] - } +Reporting can produce a structured output with ``--format json``:: + + $ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1 + +Sizing +====== +When no sizing arguments are passed, `ceph-volume` will derive the sizing from +the passed device lists (or the sorted lists when using the automatic sorting). +`ceph-volume batch` will attempt to fully utilize a devices available capacity. +Relying on automatic sizing is recommended. + +If one requires a different sizing policy for wal, db or journal devices, +`ceph-volume` offers implicit and explicit sizing rules. + +Implicit sizing +--------------- +Scenarios in which either devices are under-comitted or not all data devices are +currently ready for use (due to a broken disk for example), one can still rely +on `ceph-volume` automatic sizing. +Users can provide hints to `ceph-volume` as to how many data devices should have +their external volumes on a set of fast devices. These options are: + +* `--block-db-slots` +* `--block-wal-slots` +* `--journal-slots` + +For example consider an OSD host that is supposed to contain 5 data devices and +one device for wal/db volumes. However one data device is currently broken and +is being replaced. Instead of calculating the explicit sizes for the wal/db +volume one can simply call:: + + $ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd /dev/sde --db-devices /dev/nvme0n1 --block-db-slots 5 + +Explicit sizing +--------------- +It is also possible to provide explicit sizes to `ceph-volume` via the arguments + +* `--block-db-size` +* `--block-wal-size` +* `--journal-size` + +`ceph-volume` will try to satisfy the requested sizes given the passed disks. If +this is not possible, no OSDs will be deployed. + + +Idempotency and disk replacements +================================= +`ceph-volume lvm batch` intends to be idempotent, i.e. calling the same command +repeatedly must result in the same outcome. For example calling:: + + $ ceph-volume lvm batch --report /dev/sdb /dev/sdc /dev/sdd --db-devices /dev/nvme0n1 + +will result in three deployed OSDs (if all disks were available). Calling this +command again, you will still end up with three OSDs and ceph-volume will exit +with return code 0. + +Suppose /dev/sdc goes bad and needs to be replaced. After destroying the OSD and +replacing the hardware, you can again call the same command and `ceph-volume` +will detect that only two out of the three wanted OSDs are setup and re-create +the missing OSD. diff -Nru ceph-14.2.11/doc/conf.py ceph-14.2.18/doc/conf.py --- ceph-14.2.11/doc/conf.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/conf.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,4 @@ +import shutil import sys import os @@ -48,12 +49,24 @@ 'sphinx.ext.autodoc', 'sphinx.ext.graphviz', 'sphinx.ext.todo', - 'sphinxcontrib.ditaa', 'breathe', 'edit_on_github', 'ceph_releases', ] -ditaa = 'ditaa' + +ditaa = shutil.which("ditaa") +if ditaa is not None: + extensions += ['sphinxcontrib.ditaa'] +else: + extensions += ['plantweb.directive'] + plantweb_defaults = { + 'engine': 'ditaa' + } + +build_with_rtd = os.environ.get('READTHEDOCS') == 'True' +if build_with_rtd: + extensions += ['sphinx_search.extension'] + todo_include_todos = True top_level = os.path.dirname( @@ -82,6 +95,10 @@ # handles edit-on-github and old version warning display def setup(app): app.add_javascript('js/ceph.js') + if ditaa is None: + # add "ditaa" as an alias of "diagram" + from plantweb.directive import DiagramDirective + app.add_directive('ditaa', DiagramDirective) # mocking ceph_module offered by ceph-mgr. `ceph_module` is required by # mgr.mgr_module @@ -105,7 +122,19 @@ sys.modules['ceph_module'] = Mock() -for pybind in [os.path.join(top_level, 'src/pybind'), - os.path.join(top_level, 'src/pybind/mgr')]: +if build_with_rtd: + exclude_patterns += ['**/api/*', + '**/api.rst'] + autodoc_mock_imports = ['cephfs', + 'rados', + 'rbd', + 'ceph'] + pybinds = ['pybind/mgr'] +else: + pybinds = ['pybind', + 'pybind/mgr'] + +for c in pybinds: + pybind = os.path.join(top_level, 'src', c) if pybind not in sys.path: sys.path.insert(0, pybind) diff -Nru ceph-14.2.11/doc/dev/msgr2.rst ceph-14.2.18/doc/dev/msgr2.rst --- ceph-14.2.11/doc/dev/msgr2.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/dev/msgr2.rst 2021-03-15 17:46:20.000000000 +0000 @@ -74,7 +74,9 @@ can disconnect. -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | send banner | @@ -291,7 +293,9 @@ Example of authentication phase interaction when the client uses an allowed authentication method: -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | auth request | @@ -308,7 +312,9 @@ Example of authentication phase interaction when the client uses a forbidden authentication method as the first attempt: -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | auth request | @@ -615,7 +621,9 @@ * First client's client_ident message is lost, and then client reconnects. -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | | @@ -633,7 +641,9 @@ * Server's server_ident message is lost, and then client reconnects. -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | | @@ -654,7 +664,9 @@ * Server's server_ident message is lost, and then server reconnects. -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | | @@ -678,7 +690,9 @@ * Connection failure after session is established, and then client reconnects. -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | | @@ -696,7 +710,9 @@ * Connection failure after session is established because server reseted, and then client reconnects. -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | | @@ -722,7 +738,9 @@ * Connection failure after session is established because client reseted, and then client reconnects. -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | | @@ -789,7 +807,9 @@ _____________________________________ -.. ditaa:: +---------+ +--------+ +.. ditaa:: + + +---------+ +--------+ | Client | | Server | +---------+ +--------+ | send banner | diff -Nru ceph-14.2.11/doc/install/install-vm-cloud.rst ceph-14.2.18/doc/install/install-vm-cloud.rst --- ceph-14.2.11/doc/install/install-vm-cloud.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/install/install-vm-cloud.rst 2021-03-15 17:46:20.000000000 +0000 @@ -9,7 +9,9 @@ of Cloud Platforms include OpenStack, CloudStack, OpenNebula, etc. -.. ditaa:: +---------------------------------------------------+ +.. ditaa:: + + +---------------------------------------------------+ | libvirt | +------------------------+--------------------------+ | diff -Nru ceph-14.2.11/doc/install/manual-deployment.rst ceph-14.2.18/doc/install/manual-deployment.rst --- ceph-14.2.11/doc/install/manual-deployment.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/install/manual-deployment.rst 2021-03-15 17:46:20.000000000 +0000 @@ -18,6 +18,7 @@ .. ditaa:: + /------------------\ /----------------\ | Admin Node | | node1 | | +-------->+ | diff -Nru ceph-14.2.11/doc/install/manual-freebsd-deployment.rst ceph-14.2.18/doc/install/manual-freebsd-deployment.rst --- ceph-14.2.11/doc/install/manual-freebsd-deployment.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/install/manual-freebsd-deployment.rst 2021-03-15 17:46:20.000000000 +0000 @@ -22,6 +22,7 @@ .. ditaa:: + /------------------\ /----------------\ | Admin Node | | node1 | | +-------->+ | diff -Nru ceph-14.2.11/doc/man/8/ceph-bluestore-tool.rst ceph-14.2.18/doc/man/8/ceph-bluestore-tool.rst --- ceph-14.2.11/doc/man/8/ceph-bluestore-tool.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/man/8/ceph-bluestore-tool.rst 2021-03-15 17:46:20.000000000 +0000 @@ -152,6 +152,21 @@ ceph-bluestore-tool prime-osd-dir --dev *main device* --path /var/lib/ceph/osd/ceph-*id* +BlueFS log rescue +===================== + +Some versions of BlueStore were susceptible to BlueFS log growing extremaly large - +beyond the point of making booting OSD impossible. This state is indicated by +booting that takes very long and fails in _replay function. + +This can be fixed by:: + ceph-bluestore-tool fsck --path *osd path* --bluefs_replay_recovery=true + +It is advised to first check if rescue process would be successfull:: + ceph-bluestore-tool fsck --path *osd path* \ + --bluefs_replay_recovery=true --bluefs_replay_recovery_disable_compact=true + +If above fsck is successfull fix procedure can be applied. Availability ============ diff -Nru ceph-14.2.11/doc/man/8/osdmaptool.rst ceph-14.2.18/doc/man/8/osdmaptool.rst --- ceph-14.2.11/doc/man/8/osdmaptool.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/man/8/osdmaptool.rst 2021-03-15 17:46:20.000000000 +0000 @@ -131,6 +131,10 @@ clears pg_temp and primary_temp variables. +.. option:: --clean-temps + + clean pg_temps. + .. option:: --health dump health checks diff -Nru ceph-14.2.11/doc/man/8/rbd.rst ceph-14.2.18/doc/man/8/rbd.rst --- ceph-14.2.11/doc/man/8/rbd.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/man/8/rbd.rst 2021-03-15 17:46:20.000000000 +0000 @@ -704,24 +704,32 @@ * noshare - Disable sharing of client instances with other mappings. -* crc - Enable CRC32C checksumming for data writes (default). +* crc - Enable CRC32C checksumming for msgr1 on-the-wire protocol (default). + For msgr2.1 protocol this option is ignored: full checksumming is always on + in 'crc' mode and always off in 'secure' mode. + +* nocrc - Disable CRC32C checksumming for msgr1 on-the-wire protocol. Note + that only payload checksumming is disabled, header checksumming is always on. + For msgr2.1 protocol this option is ignored. + +* cephx_require_signatures - Require msgr1 message signing feature (since 3.19, + default). This option is deprecated and will be removed in the future as the + feature has been supported since the Bobtail release. -* nocrc - Disable CRC32C checksumming for data writes. - -* cephx_require_signatures - Require cephx message signing (since 3.19, - default). - -* nocephx_require_signatures - Don't require cephx message signing (since - 3.19). +* nocephx_require_signatures - Don't require msgr1 message signing feature + (since 3.19). This option is deprecated and will be removed in the future. * tcp_nodelay - Disable Nagle's algorithm on client sockets (since 4.0, default). * notcp_nodelay - Enable Nagle's algorithm on client sockets (since 4.0). -* cephx_sign_messages - Enable message signing (since 4.4, default). +* cephx_sign_messages - Enable message signing for msgr1 on-the-wire protocol + (since 4.4, default). For msgr2.1 protocol this option is ignored: message + signing is built into 'secure' mode and not offered in 'crc' mode. -* nocephx_sign_messages - Disable message signing (since 4.4). +* nocephx_sign_messages - Disable message signing for msgr1 on-the-wire protocol + (since 4.4). For msgr2.1 protocol this option is ignored. * mount_timeout=x - A timeout on various steps in `rbd device map` and `rbd device unmap` sequences (default is 60 seconds). In particular, @@ -734,7 +742,7 @@ Per mapping (block device) `rbd device map` options: -* rw - Map the image read-write (default). +* rw - Map the image read-write (default). Overridden by --read-only. * ro - Map the image read-only. Equivalent to --read-only. @@ -744,6 +752,7 @@ discards (since 4.9). * exclusive - Disable automatic exclusive lock transitions (since 4.12). + Equivalent to --exclusive. * lock_timeout=x - A timeout on waiting for the acquisition of exclusive lock (since 4.17, default is 0 seconds, meaning no timeout). @@ -764,12 +773,44 @@ solid-state drives). For filestore with filestore_punch_hole = false, the recommended setting is image object size (typically 4M). +* ms_mode=legacy - Use msgr1 on-the-wire protocol (since 5.11, default). + +* ms_mode=crc - Use msgr2.1 on-the-wire protocol, select 'crc' mode, also + referred to as plain mode (since 5.11). If the daemon denies 'crc' mode, + fail the connection. + +* ms_mode=secure - Use msgr2.1 on-the-wire protocol, select 'secure' mode + (since 5.11). 'secure' mode provides full in-transit encryption ensuring + both confidentiality and authenticity. If the daemon denies 'secure' mode, + fail the connection. + +* ms_mode=prefer-crc - Use msgr2.1 on-the-wire protocol, select 'crc' + mode (since 5.11). If the daemon denies 'crc' mode in favor of 'secure' + mode, agree to 'secure' mode. + +* ms_mode=prefer-secure - Use msgr2.1 on-the-wire protocol, select 'secure' + mode (since 5.11). If the daemon denies 'secure' mode in favor of 'crc' + mode, agree to 'crc' mode. + +* udev - Wait for udev device manager to finish executing all matching + "add" rules and release the device before exiting (default). This option + is not passed to the kernel. + +* noudev - Don't wait for udev device manager. When enabled, the device may + not be fully usable immediately on exit. + `rbd device unmap` options: * force - Force the unmapping of a block device that is open (since 4.9). The driver will wait for running requests to complete and then unmap; requests sent to the driver after initiating the unmap will be failed. +* udev - Wait for udev device manager to finish executing all matching + "remove" rules and clean up after the device before exiting (default). + This option is not passed to the kernel. + +* noudev - Don't wait for udev device manager. + Examples ======== diff -Nru ceph-14.2.11/doc/mgr/dashboard.rst ceph-14.2.18/doc/mgr/dashboard.rst --- ceph-14.2.11/doc/mgr/dashboard.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/mgr/dashboard.rst 2021-03-15 17:46:20.000000000 +0000 @@ -62,10 +62,9 @@ * **Overall cluster health**: Display overall cluster status, performance and capacity metrics. * **Embedded Grafana Dashboards**: Ceph Dashboard is capable of embedding - `Grafana `_ dashboards in many locations, to display - additional information and performance metrics gathered by the - :ref:`mgr-prometheus`. See :ref:`dashboard-grafana` for details on how to - configure this functionality. + `Grafana`_ dashboards in many locations, to display additional information + and performance metrics gathered by the :ref:`mgr-prometheus`. See + :ref:`dashboard-grafana` for details on how to configure this functionality. * **Cluster logs**: Display the latest updates to the cluster's event and audit log files. Log entries can be filtered by priority, date or keyword. * **Hosts**: Display a list of all hosts associated to the cluster, which @@ -257,7 +256,7 @@ To create a user with the administrator role you can use the following commands:: - $ ceph dashboard ac-user-create administrator + $ ceph dashboard ac-user-create -i administrator .. _dashboard-enabling-object-gateway: @@ -284,8 +283,8 @@ Finally, provide the credentials to the dashboard:: - $ ceph dashboard set-rgw-api-access-key - $ ceph dashboard set-rgw-api-secret-key + $ ceph dashboard set-rgw-api-access-key -i + $ ceph dashboard set-rgw-api-secret-key -i In a typical default configuration with a single RGW endpoint, this is all you have to do to get the Object Gateway management functionality working. The @@ -345,9 +344,10 @@ The available iSCSI gateways must be defined using the following commands:: - $ ceph dashboard iscsi-gateway-list - $ ceph dashboard iscsi-gateway-add ://:@[:port] - $ ceph dashboard iscsi-gateway-rm + $ ceph dashboard iscsi-gateway-list + $ # Gateway URL format for a new gateway: ://:@[:port] + $ ceph dashboard iscsi-gateway-add -i [] + $ ceph dashboard iscsi-gateway-rm .. _dashboard-grafana: @@ -355,6 +355,31 @@ Enabling the Embedding of Grafana Dashboards ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`Grafana`_ requires data from `Prometheus `_. Although +Grafana can use other data sources, the Grafana dashboards we provide contain +queries that are specific to Prometheus. Our Grafana dashboards therefore +require Prometheus as the data source. The Ceph :ref:`mgr-prometheus` also only +exports its data in the Prometheus' common format. The Grafana dashboards rely +on metric names from the Prometheus module and `Node exporter +`_. The Node exporter is a +separate application that provides machine metrics. + +.. note:: + + Prometheus' security model presumes that untrusted users have access to the + Prometheus HTTP endpoint and logs. Untrusted users have access to all the + (meta)data Prometheus collects that is contained in the database, plus a + variety of operational and debugging information. + + However, Prometheus' HTTP API is limited to read-only operations. + Configurations can *not* be changed using the API and secrets are not + exposed. Moreover, Prometheus has some built-in measures to mitigate the + impact of denial of service attacks. + + Please see `Prometheus' Security model + ` for more detailed + information. + Grafana and Prometheus are likely going to be bundled and installed by some orchestration tools along Ceph in the near future, but currently, you will have to install and configure both manually. After you have installed Prometheus and @@ -414,7 +439,8 @@ After you have set up Grafana and Prometheus, you will need to configure the connection information that the Ceph Dashboard will use to access Grafana. -You need to tell the dashboard on which url Grafana instance is running/deployed:: +You need to tell the dashboard on which URL the Grafana instance is +running/deployed:: $ ceph dashboard set-grafana-api-url # default: '' @@ -437,6 +463,35 @@ You can directly access Grafana Instance as well to monitor your cluster. +Alternative URL for Browsers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The Ceph Dashboard backend requires the Grafana URL to be able to verify the +existence of Grafana Dashboards before the frontend even loads them. Due to the +nature of how Grafana is implemented in Ceph Dashboard, this means that two +working connections are required in order to be able to see Grafana graphs in +Ceph Dashboard: + +- The backend (Ceph Mgr module) needs to verify the existence of the requested + graph. If this request succeeds, it lets the frontend know that it can safely + access Grafana. +- The frontend then requests the Grafana graphs directly from the user's + browser using an iframe. The Grafana instance is accessed directly without any + detour through Ceph Dashboard. + +Now, it might be the case that your environment makes it difficult for the +user's browser to directly access the URL configured in Ceph Dashboard. To solve +this issue, a separate URL can be configured which will solely be used to tell +the frontend (the user's browser) which URL it should use to access Grafana. + +To change the URL that is returned to the frontend issue the following command:: + + $ ceph dashboard set-grafana-frontend-api-url + +If no value is set for that option, it will simply fall back to the value of the +GRAFANA_API_URL option. If set, it will instruct the browser to use this URL to +access Grafana. + .. _dashboard-sso-support: Enabling Single Sign-On (SSO) @@ -622,7 +677,7 @@ - *Create User*:: - $ ceph dashboard ac-user-create [] [] [] [] + $ ceph dashboard ac-user-create -i [] [] [] - *Delete User*:: @@ -630,7 +685,7 @@ - *Change Password*:: - $ ceph dashboard ac-user-set-password + $ ceph dashboard ac-user-set-password -i - *Modify User (name, and email)*:: @@ -757,7 +812,7 @@ 1. *Create the user*:: - $ ceph dashboard ac-user-create bob mypassword + $ ceph dashboard ac-user-create bob -i 2. *Create role and specify scope permissions*:: @@ -970,4 +1025,6 @@ Dashboard Plug-ins allow to extend the functionality of the dashboard in a modular and loosely coupled approach. +.. _Grafana: https://grafana.com/ + .. include:: dashboard_plugins/feature_toggles.inc.rst diff -Nru ceph-14.2.11/doc/rados/api/librados-intro.rst ceph-14.2.18/doc/rados/api/librados-intro.rst --- ceph-14.2.11/doc/rados/api/librados-intro.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/api/librados-intro.rst 2021-03-15 17:46:20.000000000 +0000 @@ -15,7 +15,7 @@ - The :term:`Ceph Monitor`, which maintains a master copy of the cluster map. - The :term:`Ceph OSD Daemon` (OSD), which stores data as objects on a storage node. -.. ditaa:: +.. ditaa:: +---------------------------------+ | Ceph Storage Cluster Protocol | | (librados) | @@ -165,7 +165,7 @@ can read or write data. The client app doesn't need to learn about the topology of the cluster directly. -.. ditaa:: +.. ditaa:: +--------+ Retrieves +---------------+ | Client |------------>| Cluster Map | +--------+ +---------------+ @@ -217,7 +217,8 @@ initial connection. -.. ditaa:: +---------+ +---------+ +.. ditaa:: + +---------+ +---------+ | Client | | Monitor | +---------+ +---------+ | | @@ -521,7 +522,8 @@ - Snapshot pools, list snapshots, etc. -.. ditaa:: +---------+ +---------+ +---------+ +.. ditaa:: + +---------+ +---------+ +---------+ | Client | | Monitor | | OSD | +---------+ +---------+ +---------+ | | | diff -Nru ceph-14.2.11/doc/rados/configuration/ceph-conf.rst ceph-14.2.18/doc/rados/configuration/ceph-conf.rst --- ceph-14.2.11/doc/rados/configuration/ceph-conf.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/configuration/ceph-conf.rst 2021-03-15 17:46:20.000000000 +0000 @@ -65,6 +65,11 @@ in a local configuration file. These options include: - ``mon_host``, the list of monitors for the cluster + - ``mon_host_override``, the list of monitors for the cluster to + **initially** contact when beginning a new instance of communication with the + Ceph cluster. This overrides the known monitor list derived from MonMap + updates sent to older Ceph instances (like librados cluster handles). It is + expected this option is primarily useful for debugging. - ``mon_dns_serv_name`` (default: `ceph-mon`), the name of the DNS SRV record to check to identify the cluster monitors via DNS - ``mon_data``, ``osd_data``, ``mds_data``, ``mgr_data``, and diff -Nru ceph-14.2.11/doc/rados/configuration/mon-config-ref.rst ceph-14.2.18/doc/rados/configuration/mon-config-ref.rst --- ceph-14.2.11/doc/rados/configuration/mon-config-ref.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/configuration/mon-config-ref.rst 2021-03-15 17:46:20.000000000 +0000 @@ -34,8 +34,7 @@ operations. Ceph Monitors leverage the key/value store's snapshots and iterators (using leveldb) to perform store-wide synchronization. -.. ditaa:: - +.. ditaa:: /-------------\ /-------------\ | Monitor | Write Changes | Paxos | | cCCC +-------------->+ cCCC | @@ -502,7 +501,6 @@ capacity is 95TB, not 99TB. .. ditaa:: - +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | Rack 1 | | Rack 2 | | Rack 3 | | Rack 4 | | Rack 5 | | Rack 6 | | cCCC | | cF00 | | cCCC | | cCCC | | cCCC | | cCCC | @@ -633,7 +631,8 @@ and the leader tells the requester to synchronize with a provider. -.. ditaa:: +-----------+ +---------+ +----------+ +.. ditaa:: + +-----------+ +---------+ +----------+ | Requester | | Leader | | Provider | +-----------+ +---------+ +----------+ | | | diff -Nru ceph-14.2.11/doc/rados/configuration/mon-osd-interaction.rst ceph-14.2.18/doc/rados/configuration/mon-osd-interaction.rst --- ceph-14.2.11/doc/rados/configuration/mon-osd-interaction.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/configuration/mon-osd-interaction.rst 2021-03-15 17:46:20.000000000 +0000 @@ -34,7 +34,8 @@ or by setting the value at runtime. -.. ditaa:: +---------+ +---------+ +.. ditaa:: + +---------+ +---------+ | OSD 1 | | OSD 2 | +---------+ +---------+ | | @@ -89,7 +90,9 @@ your Ceph configuration file, or by setting the value at runtime. -.. ditaa:: +---------+ +---------+ +---------+ +.. ditaa:: + + +---------+ +---------+ +---------+ | OSD 1 | | OSD 2 | | Monitor | +---------+ +---------+ +---------+ | | | @@ -118,7 +121,9 @@ setting under the ``[osd]`` section of your Ceph configuration file, or by setting the value at runtime. -.. ditaa:: +---------+ +---------+ +-------+ +---------+ +.. ditaa:: + + +---------+ +---------+ +-------+ +---------+ | OSD 1 | | OSD 2 | | OSD 3 | | Monitor | +---------+ +---------+ +-------+ +---------+ | | | | @@ -161,7 +166,9 @@ file, or by setting the value at runtime. -.. ditaa:: +---------+ +---------+ +.. ditaa:: + + +---------+ +---------+ | OSD 1 | | Monitor | +---------+ +---------+ | | diff -Nru ceph-14.2.11/doc/rados/configuration/network-config-ref.rst ceph-14.2.18/doc/rados/configuration/network-config-ref.rst --- ceph-14.2.11/doc/rados/configuration/network-config-ref.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/configuration/network-config-ref.rst 2021-03-15 17:46:20.000000000 +0000 @@ -112,7 +112,7 @@ #. One for sending data to other OSDs. #. Two for heartbeating on each interface. -.. ditaa:: +.. ditaa:: /---------------\ | OSD | | +---+----------------+-----------+ diff -Nru ceph-14.2.11/doc/rados/configuration/osd-config-ref.rst ceph-14.2.18/doc/rados/configuration/osd-config-ref.rst --- ceph-14.2.11/doc/rados/configuration/osd-config-ref.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/configuration/osd-config-ref.rst 2021-03-15 17:46:20.000000000 +0000 @@ -258,7 +258,7 @@ Already running scrubs will be continued. This might be useful to reduce load on busy clusters. :Type: Boolean -:Default: ``true`` +:Default: ``false`` ``osd scrub thread timeout`` @@ -400,7 +400,7 @@ :Type: String :Valid Choices: prio, wpq, mclock_opclass, mclock_client -:Default: ``prio`` +:Default: ``wpq`` ``osd op queue cut off`` @@ -1071,6 +1071,42 @@ :Default: ``10*60`` +``osd delete sleep`` + +:Description: Time in seconds to sleep before next removal transaction. This + helps to throttle the pg deletion process. + +:Type: Float +:Default: ``0`` + + +``osd delete sleep hdd`` + +:Description: Time in seconds to sleep before next removal transaction + for HDDs. + +:Type: Float +:Default: ``5`` + + +``osd delete sleep ssd`` + +:Description: Time in seconds to sleep before next removal transaction + for SSDs. + +:Type: Float +:Default: ``0`` + + +``osd delete sleep hybrid`` + +:Description: Time in seconds to sleep before next removal transaction + when osd data is on HDD and osd journal is on SSD. + +:Type: Float +:Default: ``1`` + + ``osd command max records`` :Description: Limits the number of lost objects to return. diff -Nru ceph-14.2.11/doc/rados/operations/cache-tiering.rst ceph-14.2.18/doc/rados/operations/cache-tiering.rst --- ceph-14.2.11/doc/rados/operations/cache-tiering.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/operations/cache-tiering.rst 2021-03-15 17:46:20.000000000 +0000 @@ -13,7 +13,7 @@ to Ceph clients. -.. ditaa:: +.. ditaa:: +-------------+ | Ceph Client | +------+------+ diff -Nru ceph-14.2.11/doc/rados/operations/health-checks.rst ceph-14.2.18/doc/rados/operations/health-checks.rst --- ceph-14.2.11/doc/rados/operations/health-checks.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/operations/health-checks.rst 2021-03-15 17:46:20.000000000 +0000 @@ -584,6 +584,23 @@ See :doc:`pg-repair` for more information. +OSD_TOO_MANY_REPAIRS +____________________ + +When a read error occurs and another replica is available it is used to repair +the error immediately, so that the client can get the object data. Scrub +handles errors for data at rest. In order to identify possible failing disks +that aren't seeing scrub errors, a count of read repairs is maintained. If +it exceeds a config value threshold *mon_osd_warn_num_repaired* default 10, +this health warning is generated. + +In order to allow clearing of the warning, a new command +``ceph tell osd.# clear_shards_repaired [count]`` has been added. +By default it will set the repair count to 0. If the administrator wanted +to re-enable the warning if any additional repairs are performed you can provide +a value to the command and specify the value of ``mon_osd_warn_num_repaired``. +This command will be replaced in future releases by the health mute/unmute feature. + LARGE_OMAP_OBJECTS __________________ @@ -996,3 +1013,16 @@ To disable telemetry (and make this warning go away),:: ceph telemetry off + +DASHBOARD_DEBUG +_______________ + +The Dashboard debug mode is enabled. This means, if there is an error +while processing a REST API request, the HTTP error response contains +a Python traceback. This behaviour should be disabled in production +environments because such a traceback might contain and expose sensible +information. + +The debug mode can be disabled with:: + + ceph dashboard debug disable diff -Nru ceph-14.2.11/doc/rados/operations/monitoring-osd-pg.rst ceph-14.2.18/doc/rados/operations/monitoring-osd-pg.rst --- ceph-14.2.11/doc/rados/operations/monitoring-osd-pg.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/operations/monitoring-osd-pg.rst 2021-03-15 17:46:20.000000000 +0000 @@ -33,7 +33,9 @@ .. note:: If an OSD is ``down`` and ``in``, there is a problem and the cluster will not be in a healthy state. -.. ditaa:: +----------------+ +----------------+ +.. ditaa:: + + +----------------+ +----------------+ | | | | | OSD #n In | | OSD #n Up | | | | | @@ -158,7 +160,9 @@ (assuming a pool with 3 replicas of the PG). -.. ditaa:: +---------+ +---------+ +-------+ +.. ditaa:: + + +---------+ +---------+ +-------+ | OSD 1 | | OSD 2 | | OSD 3 | +---------+ +---------+ +-------+ | | | @@ -265,8 +269,8 @@ status should be ``active+clean``, which means a Ceph client can begin writing to the placement group. -.. ditaa:: - +.. ditaa:: + /-----------\ /-----------\ /-----------\ | Creating |------>| Peering |------>| Active | \-----------/ \-----------/ \-----------/ diff -Nru ceph-14.2.11/doc/rados/operations/placement-groups.rst ceph-14.2.18/doc/rados/operations/placement-groups.rst --- ceph-14.2.11/doc/rados/operations/placement-groups.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/operations/placement-groups.rst 2021-03-15 17:46:20.000000000 +0000 @@ -243,7 +243,6 @@ group will store objects on two OSDs, as shown below. .. ditaa:: - +-----------------------+ +-----------------------+ | Placement Group #1 | | Placement Group #2 | | | | | diff -Nru ceph-14.2.11/doc/rados/operations/user-management.rst ceph-14.2.18/doc/rados/operations/user-management.rst --- ceph-14.2.11/doc/rados/operations/user-management.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rados/operations/user-management.rst 2021-03-15 17:46:20.000000000 +0000 @@ -9,7 +9,8 @@ individuals or system actors such as applications, which use Ceph clients to interact with the Ceph Storage Cluster daemons. -.. ditaa:: +-----+ +.. ditaa:: + +-----+ | {o} | | | +--+--+ /---------\ /---------\ diff -Nru ceph-14.2.11/doc/radosgw/admin.rst ceph-14.2.18/doc/radosgw/admin.rst --- ceph-14.2.11/doc/radosgw/admin.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/radosgw/admin.rst 2021-03-15 17:46:20.000000000 +0000 @@ -22,7 +22,8 @@ - **Subuser:** The term 'subuser' reflects a user of the Swift interface. A subuser is associated to a user . -.. ditaa:: +---------+ +.. ditaa:: + +---------+ | User | +----+----+ | diff -Nru ceph-14.2.11/doc/radosgw/index.rst ceph-14.2.18/doc/radosgw/index.rst --- ceph-14.2.11/doc/radosgw/index.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/radosgw/index.rst 2021-03-15 17:46:20.000000000 +0000 @@ -22,7 +22,9 @@ or Ceph Block Device clients. The S3 and Swift APIs share a common namespace, so you may write data with one API and retrieve it with the other. -.. ditaa:: +------------------------+ +------------------------+ +.. ditaa:: + + +------------------------+ +------------------------+ | S3 compatible API | | Swift compatible API | +------------------------+-+------------------------+ | radosgw | diff -Nru ceph-14.2.11/doc/radosgw/swift/tutorial.rst ceph-14.2.18/doc/radosgw/swift/tutorial.rst --- ceph-14.2.11/doc/radosgw/swift/tutorial.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/radosgw/swift/tutorial.rst 2021-03-15 17:46:20.000000000 +0000 @@ -13,7 +13,9 @@ - `Ruby`_ -.. ditaa:: +----------------------------+ +-----------------------------+ +.. ditaa:: + + +----------------------------+ +-----------------------------+ | | | | | Create a Connection |------->| Create a Container | | | | | diff -Nru ceph-14.2.11/doc/rbd/index.rst ceph-14.2.18/doc/rbd/index.rst --- ceph-14.2.11/doc/rbd/index.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/index.rst 2021-03-15 17:46:20.000000000 +0000 @@ -17,7 +17,9 @@ :abbr:`RADOS (Reliable Autonomic Distributed Object Store)` Block Devices (RBD) interact with OSDs using kernel modules or the ``librbd`` library. -.. ditaa:: +------------------------+ +------------------------+ +.. ditaa:: + + +------------------------+ +------------------------+ | Kernel Module | | librbd | +------------------------+-+------------------------+ | RADOS Protocol | diff -Nru ceph-14.2.11/doc/rbd/iscsi-target-cli.rst ceph-14.2.18/doc/rbd/iscsi-target-cli.rst --- ceph-14.2.11/doc/rbd/iscsi-target-cli.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/iscsi-target-cli.rst 2021-03-15 17:46:20.000000000 +0000 @@ -149,9 +149,14 @@ :: # systemctl daemon-reload + + # systemctl enable rbd-target-gw + # systemctl start rbd-target-gw + # systemctl enable rbd-target-api # systemctl start rbd-target-api + **Configuring:** gwcli will create and configure the iSCSI target and RBD images and copy the diff -Nru ceph-14.2.11/doc/rbd/libvirt.rst ceph-14.2.18/doc/rbd/libvirt.rst --- ceph-14.2.11/doc/rbd/libvirt.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/libvirt.rst 2021-03-15 17:46:20.000000000 +0000 @@ -21,7 +21,9 @@ illustrates how ``libvirt`` and QEMU use Ceph block devices via ``librbd``. -.. ditaa:: +---------------------------------------------------+ +.. ditaa:: + + +---------------------------------------------------+ | libvirt | +------------------------+--------------------------+ | diff -Nru ceph-14.2.11/doc/rbd/qemu-rbd.rst ceph-14.2.18/doc/rbd/qemu-rbd.rst --- ceph-14.2.11/doc/rbd/qemu-rbd.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/qemu-rbd.rst 2021-03-15 17:46:20.000000000 +0000 @@ -14,7 +14,9 @@ image each time it spins up a new virtual machine. -.. ditaa:: +---------------------------------------------------+ +.. ditaa:: + + +---------------------------------------------------+ | QEMU | +---------------------------------------------------+ | librbd | diff -Nru ceph-14.2.11/doc/rbd/rbd-cloudstack.rst ceph-14.2.18/doc/rbd/rbd-cloudstack.rst --- ceph-14.2.11/doc/rbd/rbd-cloudstack.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/rbd-cloudstack.rst 2021-03-15 17:46:20.000000000 +0000 @@ -14,7 +14,9 @@ following diagram depicts the CloudStack/Ceph technology stack. -.. ditaa:: +---------------------------------------------------+ +.. ditaa:: + + +---------------------------------------------------+ | CloudStack | +---------------------------------------------------+ | libvirt | diff -Nru ceph-14.2.11/doc/rbd/rbd-live-migration.rst ceph-14.2.18/doc/rbd/rbd-live-migration.rst --- ceph-14.2.11/doc/rbd/rbd-live-migration.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/rbd-live-migration.rst 2021-03-15 17:46:20.000000000 +0000 @@ -20,7 +20,9 @@ kernel module does not support live-migration at this time. -.. ditaa:: +-------------+ +-------------+ +.. ditaa:: + + +-------------+ +-------------+ | {s} c999 | | {s} | | Live | Target refers | Live | | migration |<-------------*| migration | diff -Nru ceph-14.2.11/doc/rbd/rbd-openstack.rst ceph-14.2.18/doc/rbd/rbd-openstack.rst --- ceph-14.2.11/doc/rbd/rbd-openstack.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/rbd-openstack.rst 2021-03-15 17:46:20.000000000 +0000 @@ -16,7 +16,9 @@ technology stack. -.. ditaa:: +---------------------------------------------------+ +.. ditaa:: + + +---------------------------------------------------+ | OpenStack | +---------------------------------------------------+ | libvirt | diff -Nru ceph-14.2.11/doc/rbd/rbd-snapshot.rst ceph-14.2.18/doc/rbd/rbd-snapshot.rst --- ceph-14.2.11/doc/rbd/rbd-snapshot.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/rbd/rbd-snapshot.rst 2021-03-15 17:46:20.000000000 +0000 @@ -24,7 +24,9 @@ For virtual machines, `qemu-guest-agent` can be used to automatically freeze filesystems when creating a snapshot. -.. ditaa:: +------------+ +-------------+ +.. ditaa:: + + +------------+ +-------------+ | {s} | | {s} c999 | | Active |<-------*| Snapshot | | Image | | of Image | @@ -147,7 +149,9 @@ clones rapidly. -.. ditaa:: +-------------+ +-------------+ +.. ditaa:: + + +-------------+ +-------------+ | {s} c999 | | {s} | | Snapshot | Child refers | COW Clone | | of Image |<------------*| of Snapshot | @@ -181,7 +185,9 @@ create a snapshot of the image. You must protect the snapshot. Once you have performed these steps, you can begin cloning the snapshot. -.. ditaa:: +----------------------------+ +-----------------------------+ +.. ditaa:: + + +----------------------------+ +-----------------------------+ | | | | | Create Block Device Image |------->| Create a Snapshot | | | | | diff -Nru ceph-14.2.11/doc/start/intro.rst ceph-14.2.18/doc/start/intro.rst --- ceph-14.2.11/doc/start/intro.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/start/intro.rst 2021-03-15 17:46:20.000000000 +0000 @@ -11,7 +11,9 @@ Ceph OSD (Object Storage Daemon). The Ceph Metadata Server is also required when running Ceph Filesystem clients. -.. ditaa:: +---------------+ +------------+ +------------+ +---------------+ +.. ditaa:: + + +---------------+ +------------+ +------------+ +---------------+ | OSDs | | Monitors | | Managers | | MDSs | +---------------+ +------------+ +------------+ +---------------+ diff -Nru ceph-14.2.11/doc/start/quick-ceph-deploy.rst ceph-14.2.18/doc/start/quick-ceph-deploy.rst --- ceph-14.2.11/doc/start/quick-ceph-deploy.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/start/quick-ceph-deploy.rst 2021-03-15 17:46:20.000000000 +0000 @@ -157,6 +157,7 @@ Ceph Monitor and Ceph Manager to ``node2`` and ``node3`` to improve reliability and availability. .. ditaa:: + /------------------\ /----------------\ | ceph-deploy | | node1 | | Admin Node | | cCCC | diff -Nru ceph-14.2.11/doc/start/quick-common.rst ceph-14.2.18/doc/start/quick-common.rst --- ceph-14.2.11/doc/start/quick-common.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/start/quick-common.rst 2021-03-15 17:46:20.000000000 +0000 @@ -1,4 +1,5 @@ -.. ditaa:: +.. ditaa:: + /------------------\ /-----------------\ | admin-node | | node1 | | +-------->+ cCCC | diff -Nru ceph-14.2.11/doc/start/quick-rbd.rst ceph-14.2.18/doc/start/quick-rbd.rst --- ceph-14.2.11/doc/start/quick-rbd.rst 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/doc/start/quick-rbd.rst 2021-03-15 17:46:20.000000000 +0000 @@ -11,7 +11,8 @@ Block Device. -.. ditaa:: +.. ditaa:: + /------------------\ /----------------\ | Admin Node | | ceph-client | | +-------->+ cCCC | diff -Nru ceph-14.2.11/.github/labeler.yml ceph-14.2.18/.github/labeler.yml --- ceph-14.2.11/.github/labeler.yml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/.github/labeler.yml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,10 @@ +dashboard: + - /src/pybind/mgr/dashboard/** + - /qa/suites/rados/dashboard/** + - /qa/tasks/mgr/test_dashboard.py + - /qa/tasks/mgr/dashboard/** + - /monitoring/** + - /doc/mgr/dashboard.rst + +CI: + - /.github/** diff -Nru ceph-14.2.11/.github/milestone.yml ceph-14.2.18/.github/milestone.yml --- ceph-14.2.11/.github/milestone.yml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/.github/milestone.yml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,6 @@ +base-branch: + - "(luminous)" + - "(nautilus)" + - "(octopus)" + - "(pacific)" + - "(quincy)" diff -Nru ceph-14.2.11/.github/workflows/pr-triage.yml ceph-14.2.18/.github/workflows/pr-triage.yml --- ceph-14.2.11/.github/workflows/pr-triage.yml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/.github/workflows/pr-triage.yml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,15 @@ +--- +name: "Pull Request Triage" +on: pull_request_target +jobs: + pr-triage: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@9794b1493b6f1fa7b006c5f8635a19c76c98be95 + with: + sync-labels: '' + repo-token: "${{ secrets.GITHUB_TOKEN }}" + - uses: iyu/actions-milestone@dbf7e5348844c9ddc6b803a5721b85fa70fe3bb9 + with: + configuration-path: .github/milestone.yml + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff -Nru ceph-14.2.11/install-deps.sh ceph-14.2.18/install-deps.sh --- ceph-14.2.11/install-deps.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/install-deps.sh 2021-03-15 17:46:20.000000000 +0000 @@ -316,7 +316,6 @@ $SUDO env DEBIAN_FRONTEND=noninteractive apt-get -y remove ceph-build-deps install_seastar_deps if [ "$control" != "debian/control" ] ; then rm $control; fi - $SUDO apt-get install -y libxmlsec1 libxmlsec1-nss libxmlsec1-openssl libxmlsec1-dev ;; centos|fedora|rhel|ol|virtuozzo) yumdnf="dnf" @@ -379,8 +378,6 @@ ensure_decent_gcc_on_rh $dts_ver fi ! grep -q -i error: $DIR/yum-builddep.out || exit 1 - # for building python-saml and its dependencies - $SUDO $yumdnf install -y xmlsec1 xmlsec1-nss xmlsec1-openssl xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel ;; opensuse*|suse|sles) echo "Using zypper to install dependencies" @@ -392,7 +389,6 @@ fi munge_ceph_spec_in $for_make_check $DIR/ceph.spec $SUDO $zypp_install $(rpmspec -q --buildrequires $DIR/ceph.spec) || exit 1 - $SUDO $zypp_install libxmlsec1-1 libxmlsec1-nss1 libxmlsec1-openssl1 xmlsec1-devel xmlsec1-openssl-devel ;; alpine) # for now we need the testing repo for leveldb diff -Nru ceph-14.2.11/monitoring/grafana/dashboards/host-details.json ceph-14.2.18/monitoring/grafana/dashboards/host-details.json --- ceph-14.2.11/monitoring/grafana/dashboards/host-details.json 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/monitoring/grafana/dashboards/host-details.json 2021-03-15 17:46:20.000000000 +0000 @@ -798,7 +798,7 @@ "steppedLine": false, "targets": [ { - "expr": "(irate(node_disk_writes_completed{instance=~\"($ceph_hosts).*\"}[5m]) or irate(node_disk_writes_completed_total{instance=~\"($ceph_hosts).*\"}[5m])) * on(instance, device) group_left(ceph_daemon) label_replace(label_replace(ceph_disk_occupation, \"device\", \"$1\", \"device\", \"/dev/(.*)\"), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\")", + "expr": "label_replace(\n (\n irate(node_disk_writes_completed{instance=~\"($ceph_hosts).*\"}[5m]) or\n irate(node_disk_writes_completed_total{instance=~\"($ceph_hosts).*\"}[5m])\n ),\n \"instance\",\n \"$1\",\n \"instance\",\n \"([^:.]*).*\"\n)\n* on(instance, device) group_left(ceph_daemon)\n label_replace(\n label_replace(\n ceph_disk_occupation,\n \"device\",\n \"$1\",\n \"device\",\n \"/dev/(.*)\"\n ),\n \"instance\",\n \"$1\",\n \"instance\",\n \"([^:.]*).*\"\n )", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{device}}({{ceph_daemon}}) writes", @@ -807,7 +807,7 @@ "textEditor": true }, { - "expr": "(irate(node_disk_reads_completed{instance=~\"($ceph_hosts).*\"}[5m]) or irate(node_disk_reads_completed_total{instance=~\"($ceph_hosts).*\"}[5m])) * on(instance, device) group_left(ceph_daemon) label_replace(label_replace(ceph_disk_occupation, \"device\", \"$1\", \"device\", \"/dev/(.*)\"), \"instance\", \"$1\", \"instance\", \"([^:.]*).*\")", + "expr": "label_replace(\n (irate(node_disk_reads_completed{instance=~\"($ceph_hosts).*\"}[5m]) or irate(node_disk_reads_completed_total{instance=~\"($ceph_hosts).*\"}[5m])),\n \"instance\",\n \"$1\",\n \"instance\",\n \"([^:.]*).*\"\n)\n* on(instance, device) group_left(ceph_daemon)\n label_replace(\n label_replace(\n ceph_disk_occupation,\n \"device\",\n \"$1\",\n \"device\",\n \"/dev/(.*)\"\n ),\n \"instance\",\n \"$1\",\n \"instance\",\n \"([^:.]*).*\"\n )", "format": "time_series", "hide": false, "intervalFactor": 1, diff -Nru ceph-14.2.11/monitoring/grafana/dashboards/hosts-overview.json ceph-14.2.18/monitoring/grafana/dashboards/hosts-overview.json --- ceph-14.2.11/monitoring/grafana/dashboards/hosts-overview.json 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/monitoring/grafana/dashboards/hosts-overview.json 2021-03-15 17:46:20.000000000 +0000 @@ -574,7 +574,7 @@ "steppedLine": false, "targets": [ { - "expr": "topk(10,( 1 - (\n avg by(instance) \n (irate(node_cpu_seconds_total{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[1m]) or\n irate(node_cpu{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[1m]))\n )\n )\n)", + "expr": "topk(10,100 * ( 1 - (\n avg by(instance) \n (irate(node_cpu_seconds_total{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[1m]) or\n irate(node_cpu{mode='idle',instance=~\"($osd_hosts|$mon_hosts|$mds_hosts|$rgw_hosts).*\"}[1m]))\n )\n )\n)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{instance}}", diff -Nru ceph-14.2.11/monitoring/grafana/dashboards/osd-device-details.json ceph-14.2.18/monitoring/grafana/dashboards/osd-device-details.json --- ceph-14.2.11/monitoring/grafana/dashboards/osd-device-details.json 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/monitoring/grafana/dashboards/osd-device-details.json 2021-03-15 17:46:20.000000000 +0000 @@ -126,7 +126,7 @@ "label": "Read (-) / Write (+)", "logBase": 1, "max": null, - "min": "0", + "min": null, "show": true }, { diff -Nru ceph-14.2.11/monitoring/prometheus/alerts/ceph_default_alerts.yml ceph-14.2.18/monitoring/prometheus/alerts/ceph_default_alerts.yml --- ceph-14.2.11/monitoring/prometheus/alerts/ceph_default_alerts.yml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/monitoring/prometheus/alerts/ceph_default_alerts.yml 2021-03-15 17:46:20.000000000 +0000 @@ -164,28 +164,46 @@ description: > Root volume (OSD and MON store) is dangerously full: {{ $value | humanize }}% free. - # alert on nic packet errors and drops rates > 1 packet/s + # alert on nic packet errors and drops rates > 1% packets/s - alert: network packets dropped - expr: irate(node_network_receive_drop_total{device!="lo"}[5m]) + irate(node_network_transmit_drop_total{device!="lo"}[5m]) > 1 + expr: | + ( + increase(node_network_receive_drop_total{device!="lo"}[1m]) + + increase(node_network_transmit_drop_total{device!="lo"}[1m]) + ) / ( + increase(node_network_receive_packets_total{device!="lo"}[1m]) + + increase(node_network_transmit_packets_total{device!="lo"}[1m]) + ) >= 0.0001 or ( + increase(node_network_receive_drop_total{device!="lo"}[1m]) + + increase(node_network_transmit_drop_total{device!="lo"}[1m]) + ) >= 10 labels: severity: warning type: ceph_default annotations: description: > - Node {{ $labels.instance }} experiences packet drop > 1 - packet/s on interface {{ $labels.device }}. + Node {{ $labels.instance }} experiences packet drop > 0.01% or > + 10 packets/s on interface {{ $labels.device }}. - alert: network packet errors expr: | - irate(node_network_receive_errs_total{device!="lo"}[5m]) + - irate(node_network_transmit_errs_total{device!="lo"}[5m]) > 1 + ( + increase(node_network_receive_errs_total{device!="lo"}[1m]) + + increase(node_network_transmit_errs_total{device!="lo"}[1m]) + ) / ( + increase(node_network_receive_packets_total{device!="lo"}[1m]) + + increase(node_network_transmit_packets_total{device!="lo"}[1m]) + ) >= 0.0001 or ( + increase(node_network_receive_errs_total{device!="lo"}[1m]) + + increase(node_network_transmit_errs_total{device!="lo"}[1m]) + ) >= 10 labels: severity: warning type: ceph_default annotations: description: > - Node {{ $labels.instance }} experiences packet errors > 1 - packet/s on interface {{ $labels.device }}. + Node {{ $labels.instance }} experiences packet errors > 0.01% or + > 10 packets/s on interface {{ $labels.device }}. - alert: storage filling up expr: | @@ -200,6 +218,17 @@ will be full in less than 5 days assuming the average fill-up rate of the past 48 hours. + - alert: MTU Mismatch + expr: node_network_mtu_bytes{device!="lo"} != on() group_left() (quantile(0.5, node_network_mtu_bytes{device!="lo"})) + labels: + severity: warning + type: ceph_default + oid: 1.3.6.1.4.1.50495.15.1.2.8.5 + annotations: + description: > + Node {{ $labels.instance }} has a different MTU size ({{ $value }}) + than the median value on device {{ $labels.device }}. + - name: pools rules: - alert: pool full @@ -215,8 +244,8 @@ - alert: pool filling up expr: | ( - predict_linear(ceph_pool_stored[2d], 3600 * 24 * 5) >= - ceph_pool_max_avail + predict_linear(ceph_pool_stored[2d], 3600 * 24 * 5) + >= ceph_pool_stored + ceph_pool_max_avail ) * on(pool_id) group_left(name) ceph_pool_metadata labels: severity: warning @@ -225,3 +254,15 @@ description: > Pool {{ $labels.name }} will be full in less than 5 days assuming the average fill-up rate of the past 48 hours. + + - name: healthchecks + rules: + - alert: Slow OSD Ops + expr: ceph_healthcheck_slow_ops > 0 + for: 30s + labels: + severity: warning + type: ceph_default + annotations: + description: > + {{ $value }} OSD requests are taking too long to process (osd_op_complaint_time exceeded) diff -Nru ceph-14.2.11/PendingReleaseNotes ceph-14.2.18/PendingReleaseNotes --- ceph-14.2.11/PendingReleaseNotes 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/PendingReleaseNotes 2021-03-15 17:46:20.000000000 +0000 @@ -1,14 +1,6 @@ ->= 14.2.11 ----------- +14.2.17 +------- -* RGW: The ``radosgw-admin`` sub-commands dealing with orphans -- - ``radosgw-admin orphans find``, ``radosgw-admin orphans finish``, - ``radosgw-admin orphans list-jobs`` -- have been deprecated. They - have not been actively maintained and they store intermediate - results on the cluster, which could fill a nearly-full cluster. - They have been replaced by a tool, currently considered - experimental, ``rgw-orphan-list``. - -* Now when noscrub and/or nodeep-scrub flags are set globally or per pool, - scheduled scrubs of the type disabled will be aborted. All user initiated - scrubs are NOT interrupted. +* $pid expansion in config paths like `admin_socket` will now properly expand + to the daemon pid for commands like `ceph-mds` or `ceph-osd`. Previously only + `ceph-fuse`/`rbd-nbd` expanded `$pid` with the actual daemon pid. diff -Nru ceph-14.2.11/qa/cephfs/clusters/3-mds.yaml ceph-14.2.18/qa/cephfs/clusters/3-mds.yaml --- ceph-14.2.11/qa/cephfs/clusters/3-mds.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/clusters/3-mds.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,8 @@ - [client.0, client.1] overrides: ceph: - max_mds: 3 + cephfs: + max_mds: 3 openstack: - volumes: # attached to each instance count: 4 diff -Nru ceph-14.2.11/qa/cephfs/clusters/9-mds.yaml ceph-14.2.18/qa/cephfs/clusters/9-mds.yaml --- ceph-14.2.11/qa/cephfs/clusters/9-mds.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/clusters/9-mds.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,8 @@ - [client.0, client.1] overrides: ceph: - max_mds: 9 + cephfs: + max_mds: 9 openstack: - volumes: # attached to each instance count: 4 diff -Nru ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/k-testing.yaml ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/k-testing.yaml --- ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/k-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/k-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml --- ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.8" diff -Nru ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml --- ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml --- ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml --- ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/cephfs/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/cephfs/overrides/session_timeout.yaml ceph-14.2.18/qa/cephfs/overrides/session_timeout.yaml --- ceph-14.2.11/qa/cephfs/overrides/session_timeout.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/cephfs/overrides/session_timeout.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +overrides: + ceph: + cephfs: + session_timeout: 300 diff -Nru ceph-14.2.11/qa/config/rados.yaml ceph-14.2.18/qa/config/rados.yaml --- ceph-14.2.11/qa/config/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/config/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/debug/mgr.yaml ceph-14.2.18/qa/debug/mgr.yaml --- ceph-14.2.11/qa/debug/mgr.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/debug/mgr.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,6 +6,7 @@ mgr: debug mgr: 20 debug ms: 1 + debug client: 20 client: debug client: 20 debug mgrc: 20 diff -Nru ceph-14.2.11/qa/distros/all/rhel_7.9.yaml ceph-14.2.18/qa/distros/all/rhel_7.9.yaml --- ceph-14.2.11/qa/distros/all/rhel_7.9.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/distros/all/rhel_7.9.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/distros/all/rhel_7.yaml ceph-14.2.18/qa/distros/all/rhel_7.yaml --- ceph-14.2.11/qa/distros/all/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/distros/all/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/distros/supported/rhel_latest.yaml ceph-14.2.18/qa/distros/supported/rhel_latest.yaml --- ceph-14.2.11/qa/distros/supported/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/distros/supported/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/distros/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/distros/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/distros/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/distros/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/distros/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/distros/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/distros/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/distros/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/distros/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/distros/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/distros/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/distros/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/rbd/krbd_blkroset.t ceph-14.2.18/qa/rbd/krbd_blkroset.t --- ceph-14.2.11/qa/rbd/krbd_blkroset.t 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/rbd/krbd_blkroset.t 2021-03-15 17:46:20.000000000 +0000 @@ -343,6 +343,15 @@ $ sudo rbd unmap $DEV +"-o rw --read-only" should result in read-only mapping +====================================================== + + $ DEV=$(sudo rbd map -o rw --read-only img) + $ blockdev --getro $DEV + 1 + $ sudo rbd unmap $DEV + + Teardown ======== diff -Nru ceph-14.2.11/qa/standalone/ceph-helpers.sh ceph-14.2.18/qa/standalone/ceph-helpers.sh --- ceph-14.2.11/qa/standalone/ceph-helpers.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/standalone/ceph-helpers.sh 2021-03-15 17:46:20.000000000 +0000 @@ -2063,6 +2063,10 @@ seqs='' for osd in $ids; do seq=`ceph tell osd.$osd flush_pg_stats` + if test -z "$seq" + then + continue + fi seqs="$seqs $osd-$seq" done diff -Nru ceph-14.2.11/qa/standalone/mon/mon-handle-forward.sh ceph-14.2.18/qa/standalone/mon/mon-handle-forward.sh --- ceph-14.2.11/qa/standalone/mon/mon-handle-forward.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/standalone/mon/mon-handle-forward.sh 2021-03-15 17:46:20.000000000 +0000 @@ -33,18 +33,18 @@ run_mon $dir b --public-addr $MONB || return 1 ) - timeout 360 ceph --mon-host $MONA mon stat || return 1 + timeout 360 ceph --mon-host-override $MONA mon stat || return 1 # check that MONB is indeed a peon ceph --admin-daemon $(get_asok_path mon.b) mon_status | grep '"peon"' || return 1 # when the leader ( MONA ) is used, there is no message forwarding - ceph --mon-host $MONA osd pool create POOL1 12 + ceph --mon-host-override $MONA osd pool create POOL1 12 CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.a) log flush || return 1 grep 'mon_command(.*"POOL1"' $dir/mon.a.log || return 1 CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.b) log flush || return 1 grep 'mon_command(.*"POOL1"' $dir/mon.b.log && return 1 # when the peon ( MONB ) is used, the message is forwarded to the leader - ceph --mon-host $MONB osd pool create POOL2 12 + ceph --mon-host-override $MONB osd pool create POOL2 12 CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.b) log flush || return 1 grep 'forward_request.*mon_command(.*"POOL2"' $dir/mon.b.log || return 1 CEPH_ARGS='' ceph --admin-daemon $(get_asok_path mon.a) log flush || return 1 diff -Nru ceph-14.2.11/qa/standalone/mon/mon-last-epoch-clean.sh ceph-14.2.18/qa/standalone/mon/mon-last-epoch-clean.sh --- ceph-14.2.11/qa/standalone/mon/mon-last-epoch-clean.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/standalone/mon/mon-last-epoch-clean.sh 2021-03-15 17:46:20.000000000 +0000 @@ -226,7 +226,7 @@ # - all pools have floor equal to lec while kill $osd_pid ; do sleep 1 ; done - ceph osd down 2 + ceph osd out 2 sleep 5 # seriously, just to make sure things settle; we may not need this. # generate some maps diff -Nru ceph-14.2.11/qa/standalone/mon/osd-erasure-code-profile.sh ceph-14.2.18/qa/standalone/mon/osd-erasure-code-profile.sh --- ceph-14.2.11/qa/standalone/mon/osd-erasure-code-profile.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/standalone/mon/osd-erasure-code-profile.sh 2021-03-15 17:46:20.000000000 +0000 @@ -222,6 +222,17 @@ m=1 || return 1 } +function TEST_invalid_crush_failure_domain() { + local dir=$1 + + run_mon $dir a || return 1 + + local profile=ec_profile + local crush_failure_domain=invalid_failure_domain + + ! ceph osd erasure-code-profile set $profile k=4 m=2 crush-failure-domain=$crush_failure_domain 2>&1 || return 1 +} + main osd-erasure-code-profile "$@" # Local Variables: diff -Nru ceph-14.2.11/qa/standalone/osd/osd-rep-recov-eio.sh ceph-14.2.18/qa/standalone/osd/osd-rep-recov-eio.sh --- ceph-14.2.11/qa/standalone/osd/osd-rep-recov-eio.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/standalone/osd/osd-rep-recov-eio.sh 2021-03-15 17:46:20.000000000 +0000 @@ -19,6 +19,8 @@ source $CEPH_ROOT/qa/standalone/ceph-helpers.sh +warnings=10 + function run() { local dir=$1 shift @@ -32,7 +34,8 @@ local funcs=${@:-$(set | sed -n -e 's/^\(TEST_[0-9a-z_]*\) .*/\1/p')} for func in $funcs ; do setup $dir || return 1 - run_mon $dir a || return 1 + # set warning amount in case default changes + run_mon $dir a --mon_osd_warn_num_repaired=$warnings || return 1 run_mgr $dir x || return 1 ceph osd pool create foo 8 || return 1 @@ -117,6 +120,7 @@ inject_$inject rep data $poolname $objname $dir 0 || return 1 rados_get $dir $poolname $objname || return 1 + wait_for_clean COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "1" || return 1 flush_pg_stats @@ -139,6 +143,7 @@ inject_$inject rep data $poolname $objname $dir 2 || return 1 rados_get $dir $poolname $objname || return 1 + wait_for_clean COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "3" || return 1 flush_pg_stats @@ -150,6 +155,7 @@ inject_$inject rep data $poolname $objname $dir 2 || return 1 rados_get $dir $poolname $objname hang || return 1 + wait_for_clean # After hang another repair couldn't happen, so count stays the same COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') test "$COUNT" = "3" || return 1 @@ -170,6 +176,93 @@ delete_pool $poolname } + +function TEST_rados_repair_warning() { + local dir=$1 + local OBJS=$(expr $warnings + 1) + + setup_osds 4 || return 1 + + local poolname=pool-rep + create_pool $poolname 1 1 || return 1 + wait_for_clean || return 1 + + local poolname=pool-rep + local objbase=obj-warn + local inject=eio + + for i in $(seq 1 $OBJS) + do + rados_put $dir $poolname ${objbase}-$i || return 1 + inject_$inject rep data $poolname ${objbase}-$i $dir 0 || return 1 + rados_get $dir $poolname ${objbase}-$i || return 1 + done + local pgid=$(get_pg $poolname ${objbase}-1) + + local object_osds=($(get_osds $poolname ${objbase}-1)) + local primary=${object_osds[0]} + local bad_peer=${object_osds[1]} + + wait_for_clean + COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') + test "$COUNT" = "$OBJS" || return 1 + flush_pg_stats + COUNT=$(ceph pg dump --format=json-pretty | jq ".pg_map.osd_stats_sum.num_shards_repaired") + test "$COUNT" = "$OBJS" || return 1 + + ceph health | grep -q "Too many repaired reads on 1 OSDs" || return 1 + ceph health detail | grep -q "osd.$primary had $OBJS reads repaired" || return 1 + + ceph tell osd.$primary clear_shards_repaired + sleep 10 + + set -o pipefail + # Should mute this + ceph health | $(! grep -q "Too many repaired reads on 1 OSDs") || return 1 + set +o pipefail + + ceph tell osd.$primary clear_shards_repaired $OBJS + sleep 10 + + for i in $(seq 1 $OBJS) + do + inject_$inject rep data $poolname ${objbase}-$i $dir 0 || return 1 + inject_$inject rep data $poolname ${objbase}-$i $dir 1 || return 1 + # Force primary to pull from the bad peer, so we can repair it too! + set_config osd $primary osd_debug_feed_pullee $bad_peer || return 1 + rados_get $dir $poolname ${objbase}-$i || return 1 + done + + wait_for_clean + COUNT=$(ceph pg $pgid query | jq '.info.stats.stat_sum.num_objects_repaired') + test "$COUNT" = "$(expr $OBJS \* 2)" || return 1 + flush_pg_stats + COUNT=$(ceph pg dump --format=json-pretty | jq ".pg_map.osd_stats_sum.num_shards_repaired") + test "$COUNT" = "$(expr $OBJS \* 3)" || return 1 + + # Give mon a chance to notice additional OSD and reset num_shards_repaired + # The default tick time is 5 seconds + CHECKTIME=10 + LOOPS=0 + while(true) + do + sleep 1 + if ceph health | grep -q "Too many repaired reads on 2 OSDs" + then + break + fi + LOOPS=$(expr $LOOPS + 1) + if test "$LOOPS" = "$CHECKTIME" + then + echo "Too many repaired reads not seen after $CHECKTIME seconds" + return 1 + fi + done + ceph health detail | grep -q "osd.$primary had $(expr $OBJS \* 2) reads repaired" || return 1 + ceph health detail | grep -q "osd.$bad_peer had $OBJS reads repaired" || return 1 + + delete_pool $poolname +} # Test backfill with unfound object function TEST_rep_backfill_unfound() { diff -Nru ceph-14.2.11/qa/standalone/scrub/osd-scrub-test.sh ceph-14.2.18/qa/standalone/scrub/osd-scrub-test.sh --- ceph-14.2.11/qa/standalone/scrub/osd-scrub-test.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/standalone/scrub/osd-scrub-test.sh 2021-03-15 17:46:20.000000000 +0000 @@ -260,6 +260,10 @@ fi ceph osd set $stopscrub + if [ "$type" = "deep_scrub" ]; + then + ceph osd set noscrub + fi # Wait for scrubbing to end set -o pipefail @@ -284,7 +288,13 @@ fi local last_scrub=$(get_last_scrub_stamp $pgid) - ceph osd unset noscrub + ceph config set osd "osd_scrub_sleep" "0.1" + + ceph osd unset $stopscrub + if [ "$type" = "deep_scrub" ]; + then + ceph osd unset noscrub + fi TIMEOUT=$(($objects / 2)) wait_for_scrub $pgid "$last_scrub" || return 1 diff -Nru ceph-14.2.11/qa/suites/buildpackages/any/distros/rhel_7.9.yaml ceph-14.2.18/qa/suites/buildpackages/any/distros/rhel_7.9.yaml --- ceph-14.2.11/qa/suites/buildpackages/any/distros/rhel_7.9.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/buildpackages/any/distros/rhel_7.9.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/buildpackages/any/distros/rhel_7.yaml ceph-14.2.18/qa/suites/buildpackages/any/distros/rhel_7.yaml --- ceph-14.2.11/qa/suites/buildpackages/any/distros/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/buildpackages/any/distros/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/buildpackages/tests/distros/rhel_7.9.yaml ceph-14.2.18/qa/suites/buildpackages/tests/distros/rhel_7.9.yaml --- ceph-14.2.11/qa/suites/buildpackages/tests/distros/rhel_7.9.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/buildpackages/tests/distros/rhel_7.9.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/buildpackages/tests/distros/rhel_7.yaml ceph-14.2.18/qa/suites/buildpackages/tests/distros/rhel_7.yaml --- ceph-14.2.11/qa/suites/buildpackages/tests/distros/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/buildpackages/tests/distros/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml ceph-14.2.18/qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml --- ceph-14.2.11/qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/ceph-ansible/smoke/basic/2-ceph/ceph_ansible.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -3,7 +3,7 @@ overrides: ceph_ansible: - ansible-version: '2.8.1' + ansible-version: '2.9' branch: stable-4.0 vars: ceph_conf_overrides: diff -Nru ceph-14.2.11/qa/suites/fs/32bits/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/32bits/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/32bits/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/32bits/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/32bits/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/32bits/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/32bits/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/32bits/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/basic_functional/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/basic_functional/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/basic_functional/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/basic_functional/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/basic_functional/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/basic_functional/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/basic_functional/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/basic_functional/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/basic_functional/tasks/cap-flush.yaml ceph-14.2.18/qa/suites/fs/basic_functional/tasks/cap-flush.yaml --- ceph-14.2.11/qa/suites/fs/basic_functional/tasks/cap-flush.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/basic_functional/tasks/cap-flush.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,4 +1,7 @@ - +overrides: + ceph: + log-ignorelist: + - Replacing daemon mds.a tasks: - cephfs_test_runner: modules: diff -Nru ceph-14.2.11/qa/suites/fs/basic_functional/tasks/volumes.yaml ceph-14.2.18/qa/suites/fs/basic_functional/tasks/volumes.yaml --- ceph-14.2.11/qa/suites/fs/basic_functional/tasks/volumes.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/basic_functional/tasks/volumes.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -15,5 +15,6 @@ tasks: - cephfs_test_runner: + fail_on_skip: false modules: - tasks.cephfs.test_volumes diff -Nru ceph-14.2.11/qa/suites/fs/basic_workload/overrides/session_timeout.yaml ceph-14.2.18/qa/suites/fs/basic_workload/overrides/session_timeout.yaml --- ceph-14.2.11/qa/suites/fs/basic_workload/overrides/session_timeout.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/basic_workload/overrides/session_timeout.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +overrides: + ceph: + cephfs: + session_timeout: 300 diff -Nru ceph-14.2.11/qa/suites/fs/basic_workload/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/basic_workload/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/basic_workload/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/basic_workload/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/basic_workload/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/basic_workload/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/basic_workload/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/basic_workload/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/multifs/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/multifs/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/multifs/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/multifs/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/multifs/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/multifs/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/multifs/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/multifs/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/permission/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/permission/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/permission/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/permission/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/permission/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/permission/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/permission/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/permission/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/snaps/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/snaps/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/snaps/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/snaps/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/snaps/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/snaps/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/snaps/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/snaps/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/thrash/overrides/session_timeout.yaml ceph-14.2.18/qa/suites/fs/thrash/overrides/session_timeout.yaml --- ceph-14.2.11/qa/suites/fs/thrash/overrides/session_timeout.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/thrash/overrides/session_timeout.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +overrides: + ceph: + cephfs: + session_timeout: 300 diff -Nru ceph-14.2.11/qa/suites/fs/thrash/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/thrash/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/thrash/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/thrash/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/thrash/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/thrash/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/thrash/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/thrash/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/traceless/supported-random-distros$/rhel_7.yaml ceph-14.2.18/qa/suites/fs/traceless/supported-random-distros$/rhel_7.yaml --- ceph-14.2.11/qa/suites/fs/traceless/supported-random-distros$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/traceless/supported-random-distros$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/fs/traceless/supported-random-distros$/rhel_latest.yaml ceph-14.2.18/qa/suites/fs/traceless/supported-random-distros$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/fs/traceless/supported-random-distros$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/traceless/supported-random-distros$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml --- ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/no.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,4 @@ overrides: ceph: - max_mds: 1 + cephfs: + max_mds: 1 diff -Nru ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml --- ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/old_client/overrides/multimds/yes.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,4 @@ overrides: ceph: - max_mds: 2 + cephfs: + max_mds: 2 diff -Nru ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml --- ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/no.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,4 @@ overrides: ceph: - max_mds: 1 + cephfs: + max_mds: 1 diff -Nru ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml --- ceph-14.2.11/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/upgrade/featureful_client/upgraded_client/overrides/multimds/yes.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,4 @@ overrides: ceph: - max_mds: 2 + cephfs: + max_mds: 2 diff -Nru ceph-14.2.11/qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml ceph-14.2.18/qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml --- ceph-14.2.11/qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/upgrade/snaps/clusters/3-mds.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,8 @@ - [client.0, client.1] overrides: ceph: - max_mds: 3 + cephfs: + max_mds: 3 openstack: - volumes: # attached to each instance count: 4 diff -Nru ceph-14.2.11/qa/suites/fs/verify/overrides/session_timeout.yaml ceph-14.2.18/qa/suites/fs/verify/overrides/session_timeout.yaml --- ceph-14.2.11/qa/suites/fs/verify/overrides/session_timeout.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/verify/overrides/session_timeout.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +overrides: + ceph: + cephfs: + session_timeout: 300 diff -Nru ceph-14.2.11/qa/suites/fs/verify/validater/valgrind.yaml ceph-14.2.18/qa/suites/fs/verify/validater/valgrind.yaml --- ceph-14.2.11/qa/suites/fs/verify/validater/valgrind.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/fs/verify/validater/valgrind.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,6 @@ overrides: install: ceph: - flavor: notcmalloc debuginfo: true ceph: # Valgrind makes everything slow, so ignore slow requests and extend heartbeat grace diff -Nru ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/k-testing.yaml ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/k-testing.yaml --- ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/k-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/k-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/centos_latest.yaml ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/centos_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/centos_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/centos_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/cephfs/kclient/overrides/distro/rhel/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/cephfs/kclient/overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/k-testing.yaml ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/k-testing.yaml --- ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/k-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/k-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/centos_latest.yaml ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/centos_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/centos_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/centos_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_latest.yaml ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/random/supported$/ubuntu_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/rhel/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/mixed-clients/kclient-overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/k-testing.yaml ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/k-testing.yaml --- ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/k-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/k-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/centos_latest.yaml ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/centos_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/centos_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/centos_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/recovery/kclient/overrides/distro/rhel/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/recovery/kclient/overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/k-testing.yaml ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/k-testing.yaml --- ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/k-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/k-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/centos_latest.yaml ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/centos_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/centos_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/centos_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/suites/kcephfs/thrash/kclient/overrides/distro/rhel/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/kcephfs/thrash/kclient/overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/krbd/basic/ms_mode/crc.yaml ceph-14.2.18/qa/suites/krbd/basic/ms_mode/crc.yaml --- ceph-14.2.11/qa/suites/krbd/basic/ms_mode/crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/basic/ms_mode/crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=crc diff -Nru ceph-14.2.11/qa/suites/krbd/basic/ms_mode/legacy.yaml ceph-14.2.18/qa/suites/krbd/basic/ms_mode/legacy.yaml --- ceph-14.2.11/qa/suites/krbd/basic/ms_mode/legacy.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/basic/ms_mode/legacy.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=legacy diff -Nru ceph-14.2.11/qa/suites/krbd/basic/ms_mode/secure.yaml ceph-14.2.18/qa/suites/krbd/basic/ms_mode/secure.yaml --- ceph-14.2.11/qa/suites/krbd/basic/ms_mode/secure.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/basic/ms_mode/secure.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=secure diff -Nru ceph-14.2.11/qa/suites/krbd/fsx/conf.yaml ceph-14.2.18/qa/suites/krbd/fsx/conf.yaml --- ceph-14.2.11/qa/suites/krbd/fsx/conf.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/fsx/conf.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -3,5 +3,3 @@ conf: global: ms die on skipped message: false - client: - rbd default features: 37 diff -Nru ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/crc.yaml ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/crc.yaml --- ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=crc diff -Nru ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/legacy.yaml ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/legacy.yaml --- ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/legacy.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/legacy.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=legacy diff -Nru ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml --- ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/prefer-crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=prefer-crc diff -Nru ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/secure.yaml ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/secure.yaml --- ceph-14.2.11/qa/suites/krbd/fsx/ms_mode$/secure.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/fsx/ms_mode$/secure.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=secure diff -Nru ceph-14.2.11/qa/suites/krbd/rbd/ms_mode/crc.yaml ceph-14.2.18/qa/suites/krbd/rbd/ms_mode/crc.yaml --- ceph-14.2.11/qa/suites/krbd/rbd/ms_mode/crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd/ms_mode/crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=crc diff -Nru ceph-14.2.11/qa/suites/krbd/rbd/ms_mode/legacy.yaml ceph-14.2.18/qa/suites/krbd/rbd/ms_mode/legacy.yaml --- ceph-14.2.11/qa/suites/krbd/rbd/ms_mode/legacy.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd/ms_mode/legacy.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=legacy diff -Nru ceph-14.2.11/qa/suites/krbd/rbd/ms_mode/secure.yaml ceph-14.2.18/qa/suites/krbd/rbd/ms_mode/secure.yaml --- ceph-14.2.11/qa/suites/krbd/rbd/ms_mode/secure.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd/ms_mode/secure.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=secure diff -Nru ceph-14.2.11/qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml ceph-14.2.18/qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml --- ceph-14.2.11/qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd-nomount/ms_mode/crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=crc diff -Nru ceph-14.2.11/qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml ceph-14.2.18/qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml --- ceph-14.2.11/qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd-nomount/ms_mode/legacy.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=legacy diff -Nru ceph-14.2.11/qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml ceph-14.2.18/qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml --- ceph-14.2.11/qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd-nomount/ms_mode/secure.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=secure diff -Nru ceph-14.2.11/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml ceph-14.2.18/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml --- ceph-14.2.11/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_netns.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +tasks: +- workunit: + clients: + all: + - rbd/krbd_udev_netns.sh diff -Nru ceph-14.2.11/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml ceph-14.2.18/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml --- ceph-14.2.11/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/rbd-nomount/tasks/krbd_udev_symlinks.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +tasks: +- workunit: + clients: + all: + - rbd/krbd_udev_symlinks.sh diff -Nru ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/crc.yaml ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/crc.yaml --- ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=crc diff -Nru ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/legacy.yaml ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/legacy.yaml --- ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/legacy.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/legacy.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=legacy diff -Nru ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml --- ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/prefer-crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=prefer-crc diff -Nru ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/secure.yaml ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/secure.yaml --- ceph-14.2.11/qa/suites/krbd/singleton/ms_mode$/secure.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/singleton/ms_mode$/secure.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=secure diff -Nru ceph-14.2.11/qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml ceph-14.2.18/qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml --- ceph-14.2.11/qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/singleton/tasks/rbd_xfstests.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -15,7 +15,7 @@ test_image: 'test_image-0' test_size: 5120 # MB scratch_image: 'scratch_image-0' - scratch_size: 5120 # MB + scratch_size: 15360 # MB fs_type: ext4 tests: '-g auto -g blockdev -x clone' exclude: @@ -25,6 +25,7 @@ - generic/045 - generic/046 - generic/223 + - ext4/002 # removed upstream - ext4/304 - generic/388 - generic/405 diff -Nru ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/crc.yaml ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/crc.yaml --- ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=crc diff -Nru ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/legacy.yaml ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/legacy.yaml --- ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/legacy.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/legacy.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=legacy diff -Nru ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml --- ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/prefer-crc.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=prefer-crc diff -Nru ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/secure.yaml ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/secure.yaml --- ceph-14.2.11/qa/suites/krbd/thrash/ms_mode$/secure.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/thrash/ms_mode$/secure.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + client: + rbd default map options: ms_mode=secure diff -Nru ceph-14.2.11/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml ceph-14.2.18/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml --- ceph-14.2.11/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,7 @@ +overrides: + ceph: + log-whitelist: + - \(MON_DOWN\) tasks: - mon_thrash: revive_delay: 20 diff -Nru ceph-14.2.11/qa/suites/krbd/wac/sysfs/tasks/stable_pages_required.yaml ceph-14.2.18/qa/suites/krbd/wac/sysfs/tasks/stable_pages_required.yaml --- ceph-14.2.11/qa/suites/krbd/wac/sysfs/tasks/stable_pages_required.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/wac/sysfs/tasks/stable_pages_required.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -tasks: -- workunit: - clients: - all: - - rbd/krbd_stable_pages_required.sh diff -Nru ceph-14.2.11/qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml ceph-14.2.18/qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml --- ceph-14.2.11/qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/krbd/wac/sysfs/tasks/stable_writes.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +tasks: +- workunit: + clients: + all: + - rbd/krbd_stable_writes.sh diff -Nru ceph-14.2.11/qa/suites/multimds/basic/0-supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/multimds/basic/0-supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/multimds/basic/0-supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/0-supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/multimds/basic/0-supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/multimds/basic/0-supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/multimds/basic/0-supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/0-supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/multimds/basic/clusters/3-mds.yaml ceph-14.2.18/qa/suites/multimds/basic/clusters/3-mds.yaml --- ceph-14.2.11/qa/suites/multimds/basic/clusters/3-mds.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/clusters/3-mds.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,8 @@ - [client.0, client.1] overrides: ceph: - max_mds: 3 + cephfs: + max_mds: 3 openstack: - volumes: # attached to each instance count: 4 diff -Nru ceph-14.2.11/qa/suites/multimds/basic/clusters/9-mds.yaml ceph-14.2.18/qa/suites/multimds/basic/clusters/9-mds.yaml --- ceph-14.2.11/qa/suites/multimds/basic/clusters/9-mds.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/clusters/9-mds.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,8 @@ - [client.0, client.1] overrides: ceph: - max_mds: 9 + cephfs: + max_mds: 9 openstack: - volumes: # attached to each instance count: 4 diff -Nru ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/k-testing.yaml ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/k-testing.yaml --- ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/k-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/k-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml --- ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml --- ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/suites/multimds/basic/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/multimds/basic/overrides/basic/session_timeout.yaml ceph-14.2.18/qa/suites/multimds/basic/overrides/basic/session_timeout.yaml --- ceph-14.2.11/qa/suites/multimds/basic/overrides/basic/session_timeout.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/basic/overrides/basic/session_timeout.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +overrides: + ceph: + cephfs: + session_timeout: 300 diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/0-supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/k-testing.yaml ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/k-testing.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/k-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/k-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/centos_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/random/supported$/ubuntu_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/multimds/thrash/overrides/thrash/session_timeout.yaml ceph-14.2.18/qa/suites/multimds/thrash/overrides/thrash/session_timeout.yaml --- ceph-14.2.11/qa/suites/multimds/thrash/overrides/thrash/session_timeout.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/thrash/overrides/thrash/session_timeout.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +overrides: + ceph: + cephfs: + session_timeout: 300 diff -Nru ceph-14.2.11/qa/suites/multimds/verify/clusters/3-mds.yaml ceph-14.2.18/qa/suites/multimds/verify/clusters/3-mds.yaml --- ceph-14.2.11/qa/suites/multimds/verify/clusters/3-mds.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/clusters/3-mds.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,8 @@ - [client.0, client.1] overrides: ceph: - max_mds: 3 + cephfs: + max_mds: 3 openstack: - volumes: # attached to each instance count: 4 diff -Nru ceph-14.2.11/qa/suites/multimds/verify/clusters/9-mds.yaml ceph-14.2.18/qa/suites/multimds/verify/clusters/9-mds.yaml --- ceph-14.2.11/qa/suites/multimds/verify/clusters/9-mds.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/clusters/9-mds.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,8 @@ - [client.0, client.1] overrides: ceph: - max_mds: 9 + cephfs: + max_mds: 9 openstack: - volumes: # attached to each instance count: 4 diff -Nru ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/kernel-testing.yaml ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/kernel-testing.yaml --- ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/kernel-testing.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/kernel-testing.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -kernel: - client: - branch: testing diff -Nru ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/ms-die-on-skipped.yaml ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/ms-die-on-skipped.yaml --- ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/ms-die-on-skipped.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/ms-die-on-skipped.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -overrides: - ceph: - conf: - global: - ms die on skipped message: false diff -Nru ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/k-distro.yaml ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/k-distro.yaml --- ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/k-distro.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/k-distro.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,3 @@ +kernel: + client: + sha1: distro diff -Nru ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/rhel_latest.yaml ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/rhel_latest.yaml --- ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/overrides/distro/rhel/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/overrides/ms-die-on-skipped.yaml ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/overrides/ms-die-on-skipped.yaml --- ceph-14.2.11/qa/suites/multimds/verify/mount/kclient/overrides/ms-die-on-skipped.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/mount/kclient/overrides/ms-die-on-skipped.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,5 @@ +overrides: + ceph: + conf: + global: + ms die on skipped message: false diff -Nru ceph-14.2.11/qa/suites/multimds/verify/overrides/verify/session_timeout.yaml ceph-14.2.18/qa/suites/multimds/verify/overrides/verify/session_timeout.yaml --- ceph-14.2.11/qa/suites/multimds/verify/overrides/verify/session_timeout.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/overrides/verify/session_timeout.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +overrides: + ceph: + cephfs: + session_timeout: 300 diff -Nru ceph-14.2.11/qa/suites/multimds/verify/validater/valgrind.yaml ceph-14.2.18/qa/suites/multimds/verify/validater/valgrind.yaml --- ceph-14.2.11/qa/suites/multimds/verify/validater/valgrind.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/multimds/verify/validater/valgrind.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,6 @@ overrides: install: ceph: - flavor: notcmalloc debuginfo: true ceph: # Valgrind makes everything slow, so ignore slow requests and extend heartbeat grace diff -Nru ceph-14.2.11/qa/suites/perf-basic/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/perf-basic/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/perf-basic/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/perf-basic/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/powercycle/osd/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/powercycle/osd/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/powercycle/osd/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/powercycle/osd/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/basic/rados.yaml ceph-14.2.18/qa/suites/rados/basic/rados.yaml --- ceph-14.2.11/qa/suites/rados/basic/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/basic/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/basic/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/basic/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/basic/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/basic/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/basic/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/basic/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/basic/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/basic/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/dashboard/debug/mgr.yaml ceph-14.2.18/qa/suites/rados/dashboard/debug/mgr.yaml --- ceph-14.2.11/qa/suites/rados/dashboard/debug/mgr.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/dashboard/debug/mgr.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,6 +6,7 @@ mgr: debug mgr: 20 debug ms: 1 + debug client: 20 client: debug client: 20 debug mgrc: 20 diff -Nru ceph-14.2.11/qa/suites/rados/dashboard/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/dashboard/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/dashboard/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/dashboard/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/dashboard/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/dashboard/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/dashboard/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/dashboard/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/mgr/debug/mgr.yaml ceph-14.2.18/qa/suites/rados/mgr/debug/mgr.yaml --- ceph-14.2.11/qa/suites/rados/mgr/debug/mgr.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/mgr/debug/mgr.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,6 +6,7 @@ mgr: debug mgr: 20 debug ms: 1 + debug client: 20 client: debug client: 20 debug mgrc: 20 diff -Nru ceph-14.2.11/qa/suites/rados/mgr/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/mgr/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/mgr/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/mgr/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/mgr/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/mgr/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/mgr/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/mgr/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/monthrash/ceph.yaml ceph-14.2.18/qa/suites/rados/monthrash/ceph.yaml --- ceph-14.2.11/qa/suites/rados/monthrash/ceph.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/monthrash/ceph.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -8,8 +8,12 @@ mon osdmap full prune min: 15 mon osdmap full prune interval: 2 mon osdmap full prune txsize: 2 + mon scrub inject crc mismatch: 0.01 + mon scrub inject missing keys: 0.05 # thrashing monitors may make mgr have trouble w/ its keepalive log-whitelist: + - ScrubResult + - scrub mismatch - overall HEALTH_ - \(MGR_DOWN\) # slow mons -> slow peering -> PG_AVAILABILITY diff -Nru ceph-14.2.11/qa/suites/rados/monthrash/rados.yaml ceph-14.2.18/qa/suites/rados/monthrash/rados.yaml --- ceph-14.2.11/qa/suites/rados/monthrash/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/monthrash/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/monthrash/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/monthrash/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/monthrash/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/monthrash/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/monthrash/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/monthrash/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/monthrash/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/monthrash/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/multimon/rados.yaml ceph-14.2.18/qa/suites/rados/multimon/rados.yaml --- ceph-14.2.11/qa/suites/rados/multimon/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/multimon/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/multimon/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/multimon/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/multimon/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/multimon/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/multimon/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/multimon/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/multimon/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/multimon/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/objectstore/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/objectstore/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/objectstore/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/objectstore/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/objectstore/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/objectstore/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/objectstore/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/objectstore/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/rest/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/rest/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/rest/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/rest/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/rest/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/rest/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/rest/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/rest/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml ceph-14.2.18/qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml --- ceph-14.2.11/qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton/all/pg-autoscaler-progress-off.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,42 @@ +roles: +- - mon.a + - mgr.x + - osd.0 + - osd.1 + - osd.2 + - osd.3 + - client.0 +- - mon.b + - mon.c + - osd.4 + - osd.5 + - osd.6 + - osd.7 +openstack: + - volumes: # attached to each instance + count: 4 + size: 10 # GB +tasks: +- install: +- ceph: + create_rbd_pool: false + log-whitelist: + - overall HEALTH_ + - \(OSDMAP_FLAGS\) + - \(OSD_ + - \(PG_ + - \(POOL_ + - \(CACHE_POOL_ + - \(OBJECT_ + - \(SLOW_OPS\) + - \(REQUEST_SLOW\) + - \(TOO_FEW_PGS\) + - slow request +- exec: + client.0: + - ceph progress off + +- workunit: + clients: + all: + - mon/pg_autoscaler.sh diff -Nru ceph-14.2.11/qa/suites/rados/singleton/all/random-eio.yaml ceph-14.2.18/qa/suites/rados/singleton/all/random-eio.yaml --- ceph-14.2.11/qa/suites/rados/singleton/all/random-eio.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton/all/random-eio.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -22,6 +22,7 @@ - overall HEALTH_ - \(POOL_APP_NOT_ENABLED\) - \(PG_DEGRADED\) + - \(OSD_TOO_MANY_REPAIRS\) - full_sequential: - exec: client.0: diff -Nru ceph-14.2.11/qa/suites/rados/singleton/rados.yaml ceph-14.2.18/qa/suites/rados/singleton/rados.yaml --- ceph-14.2.11/qa/suites/rados/singleton/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/singleton/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/singleton/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/singleton/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/singleton/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/singleton/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/singleton/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/singleton-bluestore/rados.yaml ceph-14.2.18/qa/suites/rados/singleton-bluestore/rados.yaml --- ceph-14.2.11/qa/suites/rados/singleton-bluestore/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton-bluestore/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton-bluestore/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/singleton-flat/valgrind-leaks.yaml ceph-14.2.18/qa/suites/rados/singleton-flat/valgrind-leaks.yaml --- ceph-14.2.11/qa/suites/rados/singleton-flat/valgrind-leaks.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton-flat/valgrind-leaks.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -10,7 +10,6 @@ overrides: install: ceph: - flavor: notcmalloc debuginfo: true ceph: log-whitelist: diff -Nru ceph-14.2.11/qa/suites/rados/singleton-nomsgr/rados.yaml ceph-14.2.18/qa/suites/rados/singleton-nomsgr/rados.yaml --- ceph-14.2.11/qa/suites/rados/singleton-nomsgr/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton-nomsgr/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/singleton-nomsgr/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/standalone/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/standalone/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/standalone/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/standalone/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/standalone/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/standalone/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/standalone/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/standalone/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/thrash/rados.yaml ceph-14.2.18/qa/suites/rados/thrash/rados.yaml --- ceph-14.2.11/qa/suites/rados/thrash/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/thrash/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/thrash/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/thrash/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/thrash/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/thrash/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/thrash/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code/rados.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code/rados.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-big/rados.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-big/rados.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-big/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-big/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-big/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-isa/rados.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-isa/rados.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-isa/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-isa/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-isa/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-overwrites/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-overwrites/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-shec/rados.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-shec/rados.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-shec/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-shec/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-erasure-code-shec/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/thrash-old-clients/rados.yaml ceph-14.2.18/qa/suites/rados/thrash-old-clients/rados.yaml --- ceph-14.2.11/qa/suites/rados/thrash-old-clients/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/thrash-old-clients/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rados/verify/rados.yaml ceph-14.2.18/qa/suites/rados/verify/rados.yaml --- ceph-14.2.11/qa/suites/rados/verify/rados.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/verify/rados.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -6,3 +6,5 @@ osd op queue cut off: debug_random osd debug verify missing on start: true osd debug verify cached snaps: true + mon: + mon scrub interval: 300 diff -Nru ceph-14.2.11/qa/suites/rados/verify/validater/valgrind.yaml ceph-14.2.18/qa/suites/rados/verify/validater/valgrind.yaml --- ceph-14.2.11/qa/suites/rados/verify/validater/valgrind.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rados/verify/validater/valgrind.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -5,7 +5,6 @@ overrides: install: ceph: - flavor: notcmalloc debuginfo: true ceph: conf: diff -Nru ceph-14.2.11/qa/suites/rbd/basic/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/basic/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/basic/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/basic/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/basic/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/basic/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/basic/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/basic/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/cli/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/cli/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/cli/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/cli/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/cli/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/cli/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/cli/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/cli/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/cli_v1/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/librbd/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/librbd/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/librbd/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/librbd/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/librbd/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/librbd/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/librbd/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/librbd/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/maintenance/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/maintenance/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/maintenance/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/maintenance/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/maintenance/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/maintenance/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/maintenance/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/maintenance/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/mirror/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/mirror/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/mirror/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/mirror/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/mirror/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/mirror/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/mirror/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/mirror/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/mirror-thrash/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/qemu/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/qemu/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/qemu/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/qemu/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/qemu/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/qemu/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/qemu/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/qemu/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/singleton/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/singleton/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/singleton/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/singleton/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/singleton/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/singleton/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/singleton/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/singleton/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/singleton-bluestore/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/thrash/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rbd/thrash/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rbd/thrash/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/thrash/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rbd/thrash/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rbd/thrash/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rbd/thrash/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/thrash/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rbd/valgrind/validator/memcheck.yaml ceph-14.2.18/qa/suites/rbd/valgrind/validator/memcheck.yaml --- ceph-14.2.11/qa/suites/rbd/valgrind/validator/memcheck.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rbd/valgrind/validator/memcheck.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,6 @@ overrides: install: ceph: - flavor: notcmalloc debuginfo: true rbd_fsx: valgrind: ["--tool=memcheck"] diff -Nru ceph-14.2.11/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/hadoop-s3a/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rgw/multisite/overrides.yaml ceph-14.2.18/qa/suites/rgw/multisite/overrides.yaml --- ceph-14.2.11/qa/suites/rgw/multisite/overrides.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/multisite/overrides.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -10,5 +10,6 @@ rgw curl low speed time: 300 rgw md log max shards: 4 rgw data log num shards: 4 + rgw sync obj etag verify: true rgw: compression type: random diff -Nru ceph-14.2.11/qa/suites/rgw/multisite/valgrind.yaml ceph-14.2.18/qa/suites/rgw/multisite/valgrind.yaml --- ceph-14.2.11/qa/suites/rgw/multisite/valgrind.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/multisite/valgrind.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -5,8 +5,6 @@ overrides: install: - ceph: -# flavor: notcmalloc ceph: conf: global: diff -Nru ceph-14.2.11/qa/suites/rgw/singleton/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/rgw/singleton/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/rgw/singleton/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/singleton/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/rgw/singleton/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/rgw/singleton/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/rgw/singleton/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/singleton/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/rgw/verify/tasks/0-install.yaml ceph-14.2.18/qa/suites/rgw/verify/tasks/0-install.yaml --- ceph-14.2.11/qa/suites/rgw/verify/tasks/0-install.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/verify/tasks/0-install.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -5,7 +5,6 @@ tasks: - install: -# flavor: notcmalloc - ceph: - openssl_keys: - rgw: diff -Nru ceph-14.2.11/qa/suites/rgw/verify/validater/valgrind.yaml ceph-14.2.18/qa/suites/rgw/verify/validater/valgrind.yaml --- ceph-14.2.11/qa/suites/rgw/verify/validater/valgrind.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/rgw/verify/validater/valgrind.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -5,9 +5,6 @@ overrides: install: - ceph: -# flavor: notcmalloc - #debuginfo: true ceph: conf: global: diff -Nru ceph-14.2.11/qa/suites/teuthology/buildpackages/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/teuthology/buildpackages/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/teuthology/buildpackages/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/teuthology/buildpackages/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/teuthology/ceph/distros/rhel_latest.yaml ceph-14.2.18/qa/suites/teuthology/ceph/distros/rhel_latest.yaml --- ceph-14.2.11/qa/suites/teuthology/ceph/distros/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/teuthology/ceph/distros/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/teuthology/rgw/distros/rhel_latest.yaml ceph-14.2.18/qa/suites/teuthology/rgw/distros/rhel_latest.yaml --- ceph-14.2.11/qa/suites/teuthology/rgw/distros/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/teuthology/rgw/distros/rhel_latest.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -openstack: - - volumes: # attached to each instance - count: 4 - size: 30 # GB diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -meta: -- desc: | - Insatll and run ceph on one node, - with a separate client 0. - Upgrade client 0 to nautilus - Run tests against old cluster -roles: -- - mon.a - - mon.b - - mon.c - - osd.0 - - osd.1 - - osd.2 - - mgr.x -- - client.0 -overrides: - ceph: - log-whitelist: - - failed to encode map - - CACHE_POOL_NO_HIT_SET - - POOL_APP_NOT_ENABLED - - application not enabled - fs: xfs diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -tasks: -- install: - branch: nautilus - exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados'] -- print: "**** done install nautilus" -upgrade_workload: - sequential: - - install.upgrade: - exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1'] - client.0: - - print: "**** done install.upgrade to -x on client.0" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -tasks: -- sequential: - - upgrade_workload -- ceph: -- print: "**** done ceph" -- qemu: - client.0: - type: filesystem - cpus: 4 - memory: 12288 - disks: - - image_size: 30720 - - image_size: 30720 - test: qa/workunits/rbd/run_devstack_tempest.sh - image_url: https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img - cloud_config_archive: - - type: text/cloud-config - content: | - users: - - name: stack - lock_passwd: False - shell: /bin/bash - sudo: ["ALL=(root) NOPASSWD:ALL\nDefaults:stack,tempest !requiretty"] - - name: tempest - lock_passwd: False - shell: /bin/bash - sudo: - - "ALL=(root) NOPASSWD:/sbin/ip" - - "ALL=(root) NOPASSWD:/sbin/iptables" - - "ALL=(root) NOPASSWD:/usr/bin/ovsdb-client" - - | - #!/bin/bash -ex - wget -q -O- "http://git.ceph.com/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc" | apt-key add - - wget -q -O /etc/apt/sources.list.d/ceph.list "https://shaman.ceph.com/api/repos/ceph/{ceph_branch}/{ceph_sha1}/ubuntu/xenial/repo" - apt-get update - - mount --bind /mnt/test_b /opt - mkdir /opt/stack - chown -R stack:stack /home/stack - chown -R stack:stack /opt/stack - - mkdir /mnt/log/stack - chmod a+rwx /mnt/log/stack - chown -R stack:stack /mnt/log/stack - - apt-get install -y ceph-common librbd1 - - mkdir /mnt/log/stack/ceph - chown -R stack:stack /mnt/log/stack/ceph - chmod a+rwx /mnt/log/stack/ceph - - # sanity check that the cluster is reachable from the VM - echo '[client]' >> /etc/ceph/ceph.conf - echo 'log file = /mnt/log/stack/ceph/$name.$pid.log' >> /etc/ceph/ceph.conf - rbd --debug-ms=10 --debug-rbd=20 info client.0.1 -- print: "**** done qemu task!" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -openstack: - - volumes: # attached to each instance - count: 4 - size: 30 # GB diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -meta: -- desc: | - Insatll and run ceph on one node, - with a separate client 1. - Upgrade client 1 to nautilus - Run tests against old cluster -roles: -- - mon.a - - mon.b - - mon.c - - osd.0 - - osd.1 - - osd.2 - - client.0 - - mgr.x -- - client.1 -overrides: - ceph: - log-whitelist: - - failed to encode map - fs: xfs diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -tasks: -- install: - branch: nautilus - exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados'] -- print: "**** done install nautilus" -- install.upgrade: - exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1'] - client.1: -- print: "**** done install.upgrade to -x on client.0" -- ceph: -- print: "**** done ceph task" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -overrides: - ceph: - conf: - client: - rbd default features: 61 - diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -overrides: - ceph: - conf: - client: - rbd default features: 1 - diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -tasks: -- workunit: - branch: nautilus - clients: - client.0: - - rbd/notify_master.sh - client.1: - - rbd/notify_slave.sh - env: - RBD_FEATURES: "61" -- print: "**** done rbd: old librbd -> new librbd" -- workunit: - branch: nautilus - clients: - client.0: - - rbd/notify_slave.sh - client.1: - - rbd/notify_master.sh - env: - RBD_FEATURES: "61" -- print: "**** done rbd: new librbd -> old librbd" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: centos -os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -openstack: - - volumes: # attached to each instance - count: 4 - size: 30 # GB diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -meta: -- desc: | - Insatll and run ceph on one node, - with a separate client 1. - Upgrade client 1 to nautilus - Run tests against old cluster -roles: -- - mon.a - - mon.b - - mon.c - - osd.0 - - osd.1 - - osd.2 - - client.0 - - mgr.x -- - client.1 -overrides: - ceph: - log-whitelist: - - failed to encode map - fs: xfs diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -tasks: -- install: - branch: nautilus - exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados'] -- print: "**** done install nautilus" -- install.upgrade: - exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1', 'python-ceph'] - client.1: -- print: "**** done install.upgrade to -x on client.0" -- ceph: -- print: "**** done ceph task" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -overrides: - ceph: - conf: - client: - rbd default features: 61 - diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -overrides: - ceph: - conf: - client: - rbd default features: 1 - diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -tasks: -- parallel: - - workunit: - branch: nautilus - clients: - client.0: - - rbd/notify_master.sh - env: - RBD_FEATURES: "61" - - workunit: - branch: octopus - clients: - client.1: - - rbd/notify_slave.sh - env: - RBD_FEATURES: "61" -- print: "**** done rbd: old librbd -> new librbd" -- parallel: - - workunit: - branch: nautilus - clients: - client.0: - - rbd/notify_slave.sh - env: - RBD_FEATURES: "61" - - workunit: - branch: octopus - clients: - client.1: - - rbd/notify_master.sh - env: - RBD_FEATURES: "61" -- print: "**** done rbd: new librbd -> old librbd" diff -Nru ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml --- ceph-14.2.11/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: ubuntu -os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/upgrade/luminous-x/parallel/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/luminous-x/parallel/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/luminous-x/parallel/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/luminous-x/parallel/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rbd-python.yaml ceph-14.2.18/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rbd-python.yaml --- ceph-14.2.11/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rbd-python.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/luminous-x/stress-split/7-final-workload/rbd-python.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -meta: -- desc: | - librbd python api tests -overrides: - ceph: - conf: - client: - rbd default clone format: 1 -tasks: -- workunit: - branch: luminous - clients: - client.0: - - rbd/test_librbd_python.sh -- print: "**** done rbd/test_librbd_python.sh 9-workload" diff -Nru ceph-14.2.11/qa/suites/upgrade/luminous-x/stress-split/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/luminous-x/stress-split/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/luminous-x/stress-split/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/luminous-x/stress-split/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/luminous-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml ceph-14.2.18/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml --- ceph-14.2.11/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/mimic-x/parallel/1-ceph-install/mimic.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -30,6 +30,7 @@ - Monitor daemon marked osd - Behind on trimming - Manager daemon + - evicting unresponsive client conf: global: mon warn on pool no app: false diff -Nru ceph-14.2.11/qa/suites/upgrade/mimic-x/parallel/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/mimic-x/parallel/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/mimic-x/parallel/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/mimic-x/parallel/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/mimic-x/stress-split/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/mimic-x/stress-split/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/mimic-x/stress-split/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/mimic-x/stress-split/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/mimic-x/stress-split-erasure-code/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml ceph-14.2.18/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml --- ceph-14.2.11/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/mimic-x-singleton/supported-random-distro$/rhel_latest.yaml 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -os_type: rhel -os_version: "7.8" diff -Nru ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml --- ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/point-to-point-upgrade.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -12,6 +12,7 @@ overrides: ceph: log-whitelist: + - evicting unresponsive client - reached quota - scrub - osd_map_max_advance diff -Nru ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-parallel/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml --- ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/0-cluster/start.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -7,6 +7,7 @@ ceph: fs: xfs log-whitelist: + - evicting unresponsive client - overall HEALTH_ - \(MON_DOWN\) - \(MGR_DOWN\) diff -Nru ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro/rhel_7.yaml ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro/rhel_7.yaml --- ceph-14.2.11/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro/rhel_7.yaml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade/nautilus-p2p/nautilus-p2p-stress-split/supported-all-distro/rhel_7.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -1,2 +1,2 @@ os_type: rhel -os_version: "7.8" +os_version: "7.9" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/openstack.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +openstack: + - volumes: # attached to each instance + count: 4 + size: 30 # GB diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/0-cluster/start.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,23 @@ +meta: +- desc: | + Insatll and run ceph on one node, + with a separate client 0. + Upgrade client 0 to nautilus + Run tests against old cluster +roles: +- - mon.a + - mon.b + - mon.c + - osd.0 + - osd.1 + - osd.2 + - mgr.x +- - client.0 +overrides: + ceph: + log-whitelist: + - failed to encode map + - CACHE_POOL_NO_HIT_SET + - POOL_APP_NOT_ENABLED + - application not enabled + fs: xfs diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/1-install/nautilus-client-x.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,11 @@ +tasks: +- install: + branch: nautilus + exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados'] +- print: "**** done install nautilus" +upgrade_workload: + sequential: + - install.upgrade: + exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1'] + client.0: + - print: "**** done install.upgrade to -x on client.0" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/2-workload/devstack-tempest-gate.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,56 @@ +tasks: +- sequential: + - upgrade_workload +- ceph: +- print: "**** done ceph" +- qemu: + client.0: + type: filesystem + cpus: 4 + memory: 12288 + disks: + - image_size: 30720 + - image_size: 30720 + test: qa/workunits/rbd/run_devstack_tempest.sh + image_url: https://cloud-images.ubuntu.com/releases/16.04/release/ubuntu-16.04-server-cloudimg-amd64-disk1.img + cloud_config_archive: + - type: text/cloud-config + content: | + users: + - name: stack + lock_passwd: False + shell: /bin/bash + sudo: ["ALL=(root) NOPASSWD:ALL\nDefaults:stack,tempest !requiretty"] + - name: tempest + lock_passwd: False + shell: /bin/bash + sudo: + - "ALL=(root) NOPASSWD:/sbin/ip" + - "ALL=(root) NOPASSWD:/sbin/iptables" + - "ALL=(root) NOPASSWD:/usr/bin/ovsdb-client" + - | + #!/bin/bash -ex + wget -q -O- "http://git.ceph.com/?p=ceph.git;a=blob_plain;f=keys/autobuild.asc" | apt-key add - + wget -q -O /etc/apt/sources.list.d/ceph.list "https://shaman.ceph.com/api/repos/ceph/{ceph_branch}/{ceph_sha1}/ubuntu/xenial/repo" + apt-get update + + mount --bind /mnt/test_b /opt + mkdir /opt/stack + chown -R stack:stack /home/stack + chown -R stack:stack /opt/stack + + mkdir /mnt/log/stack + chmod a+rwx /mnt/log/stack + chown -R stack:stack /mnt/log/stack + + apt-get install -y ceph-common librbd1 + + mkdir /mnt/log/stack/ceph + chown -R stack:stack /mnt/log/stack/ceph + chmod a+rwx /mnt/log/stack/ceph + + # sanity check that the cluster is reachable from the VM + echo '[client]' >> /etc/ceph/ceph.conf + echo 'log file = /mnt/log/stack/ceph/$name.$pid.log' >> /etc/ceph/ceph.conf + rbd --debug-ms=10 --debug-rbd=20 info client.0.1 +- print: "**** done qemu task!" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/centos_7.6.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: centos +os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/rhel_7.6.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_16.04.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: ubuntu +os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/basic/supported/ubuntu_18.04.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: ubuntu +os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/openstack.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +openstack: + - volumes: # attached to each instance + count: 4 + size: 30 # GB diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/0-cluster/start.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,21 @@ +meta: +- desc: | + Insatll and run ceph on one node, + with a separate client 1. + Upgrade client 1 to nautilus + Run tests against old cluster +roles: +- - mon.a + - mon.b + - mon.c + - osd.0 + - osd.1 + - osd.2 + - client.0 + - mgr.x +- - client.1 +overrides: + ceph: + log-whitelist: + - failed to encode map + fs: xfs diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,11 @@ +tasks: +- install: + branch: nautilus + exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados'] +- print: "**** done install nautilus" +- install.upgrade: + exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1'] + client.1: +- print: "**** done install.upgrade to -x on client.0" +- ceph: +- print: "**** done ceph task" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/defaults.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,6 @@ +overrides: + ceph: + conf: + client: + rbd default features: 61 + diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/2-features/layering.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,6 @@ +overrides: + ceph: + conf: + client: + rbd default features: 1 + diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,21 @@ +tasks: +- workunit: + branch: nautilus + clients: + client.0: + - rbd/notify_master.sh + client.1: + - rbd/notify_slave.sh + env: + RBD_FEATURES: "61" +- print: "**** done rbd: old librbd -> new librbd" +- workunit: + branch: nautilus + clients: + client.0: + - rbd/notify_slave.sh + client.1: + - rbd/notify_master.sh + env: + RBD_FEATURES: "61" +- print: "**** done rbd: new librbd -> old librbd" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/centos_7.6.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: centos +os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/rhel_7.6.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: rhel +os_version: "7.6" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_16.04.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: ubuntu +os_version: "16.04" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: ubuntu +os_version: "18.04" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/openstack.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,4 @@ +openstack: + - volumes: # attached to each instance + count: 4 + size: 30 # GB diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/0-cluster/start.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,21 @@ +meta: +- desc: | + Insatll and run ceph on one node, + with a separate client 1. + Upgrade client 1 to nautilus + Run tests against old cluster +roles: +- - mon.a + - mon.b + - mon.c + - osd.0 + - osd.1 + - osd.2 + - client.0 + - mgr.x +- - client.1 +overrides: + ceph: + log-whitelist: + - failed to encode map + fs: xfs diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/1-install/nautilus-client-x.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,11 @@ +tasks: +- install: + branch: nautilus + exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev','python34-cephfs','python34-rados'] +- print: "**** done install nautilus" +- install.upgrade: + exclude_packages: ['ceph-test', 'ceph-test-dbg','libcephfs1', 'python-ceph'] + client.1: +- print: "**** done install.upgrade to -x on client.0" +- ceph: +- print: "**** done ceph task" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/defaults.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,6 @@ +overrides: + ceph: + conf: + client: + rbd default features: 61 + diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/2-features/layering.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,6 @@ +overrides: + ceph: + conf: + client: + rbd default features: 1 + diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/3-workload/rbd_notification_tests.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,33 @@ +tasks: +- parallel: + - workunit: + branch: nautilus + clients: + client.0: + - rbd/notify_master.sh + env: + RBD_FEATURES: "61" + - workunit: + branch: octopus + clients: + client.1: + - rbd/notify_slave.sh + env: + RBD_FEATURES: "61" +- print: "**** done rbd: old librbd -> new librbd" +- parallel: + - workunit: + branch: nautilus + clients: + client.0: + - rbd/notify_slave.sh + env: + RBD_FEATURES: "61" + - workunit: + branch: octopus + clients: + client.1: + - rbd/notify_master.sh + env: + RBD_FEATURES: "61" +- print: "**** done rbd: new librbd -> old librbd" diff -Nru ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml --- ceph-14.2.11/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/suites/upgrade-clients/client-upgrade-nautilus-octopus/nautilus-client-x/rbd/supported/ubuntu_18.04.yaml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,2 @@ +os_type: ubuntu +os_version: "18.04" diff -Nru ceph-14.2.11/qa/tasks/ceph.conf.template ceph-14.2.18/qa/tasks/ceph.conf.template --- ceph-14.2.11/qa/tasks/ceph.conf.template 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/ceph.conf.template 2021-03-15 17:46:20.000000000 +0000 @@ -36,6 +36,7 @@ mon cluster log file level = debug debug asserts on shutdown = true + mon health detail to clog = false # we see this fail in qa on *nautilus*; bump up retries mon_client_directed_command_retry = 4 diff -Nru ceph-14.2.11/qa/tasks/cephfs/cephfs_test_case.py ceph-14.2.18/qa/tasks/cephfs/cephfs_test_case.py --- ceph-14.2.11/qa/tasks/cephfs/cephfs_test_case.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/cephfs_test_case.py 2021-03-15 17:46:20.000000000 +0000 @@ -64,6 +64,8 @@ def setUp(self): super(CephFSTestCase, self).setUp() + self.config_set('mon', 'mon_allow_pool_delete', True) + if len(self.mds_cluster.mds_ids) < self.MDSS_REQUIRED: raise case.SkipTest("Only have {0} MDSs, require {1}".format( len(self.mds_cluster.mds_ids), self.MDSS_REQUIRED @@ -227,6 +229,9 @@ def _session_by_id(self, session_ls): return dict([(s['id'], s) for s in session_ls]) + def perf_dump(self, rank=0, status=None): + return self.fs.rank_asok(['perf', 'dump'], rank=rank, status=status) + def wait_until_evicted(self, client_id, timeout=30): def is_client_evicted(): ls = self._session_list() diff -Nru ceph-14.2.11/qa/tasks/cephfs/filesystem.py ceph-14.2.18/qa/tasks/cephfs/filesystem.py --- ceph-14.2.11/qa/tasks/cephfs/filesystem.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/filesystem.py 2021-03-15 17:46:20.000000000 +0000 @@ -403,7 +403,7 @@ This object is for driving a CephFS filesystem. The MDS daemons driven by MDSCluster may be shared with other Filesystems. """ - def __init__(self, ctx, fscid=None, name=None, create=False, + def __init__(self, ctx, fs_config=None, fscid=None, name=None, create=False, ec_profile=None): super(Filesystem, self).__init__(ctx) @@ -414,6 +414,7 @@ self.metadata_overlay = False self.data_pool_name = None self.data_pools = None + self.fs_config = fs_config client_list = list(misc.all_roles_of_type(self._ctx.cluster, 'client')) self.client_id = client_list[0] @@ -483,7 +484,7 @@ while count > max_mds: targets = sorted(self.get_ranks(status=status), key=lambda r: r['rank'], reverse=True) target = targets[0] - log.info("deactivating rank %d" % target['rank']) + log.debug("deactivating rank %d" % target['rank']) self.deactivate(target['rank']) status = self.wait_for_daemons(skip_max_mds_check=True) count = len(list(self.get_ranks(status=status))) @@ -514,6 +515,9 @@ def set_max_mds(self, max_mds): self.set_var("max_mds", "%d" % max_mds) + def set_session_timeout(self, timeout): + self.set_var("session_timeout", "%d" % timeout) + def set_allow_standby_replay(self, yes): self.set_var("allow_standby_replay", str(yes).lower()) @@ -534,7 +538,7 @@ else: data_pool_name = self.data_pool_name - log.info("Creating filesystem '{0}'".format(self.name)) + log.debug("Creating filesystem '{0}'".format(self.name)) self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', self.metadata_pool_name, self.pgs_per_fs_pool.__str__()) @@ -544,7 +548,7 @@ '--allow-dangerous-metadata-overlay') else: if self.ec_profile and 'disabled' not in self.ec_profile: - log.info("EC profile is %s", self.ec_profile) + log.debug("EC profile is %s", self.ec_profile) cmd = ['osd', 'erasure-code-profile', 'set', data_pool_name] cmd.extend(self.ec_profile) self.mon_manager.raw_cluster_cmd(*cmd) @@ -576,6 +580,16 @@ else: raise + if self.fs_config is not None: + max_mds = self.fs_config.get('max_mds', 1) + if max_mds > 1: + self.set_max_mds(max_mds) + + # If absent will use the default value (60 seconds) + session_timeout = self.fs_config.get('session_timeout', 60) + if session_timeout != 60: + self.set_session_timeout(session_timeout) + self.getinfo(refresh = True) @@ -735,7 +749,7 @@ else: raise - log.info("are_daemons_healthy: mds map: {0}".format(mds_map)) + log.debug("are_daemons_healthy: mds map: {0}".format(mds_map)) for mds_id, mds_status in mds_map['info'].items(): if mds_status['state'] not in ["up:active", "up:standby", "up:standby-replay"]: @@ -744,13 +758,13 @@ elif mds_status['state'] == 'up:active': active_count += 1 - log.info("are_daemons_healthy: {0}/{1}".format( + log.debug("are_daemons_healthy: {0}/{1}".format( active_count, mds_map['max_mds'] )) if not skip_max_mds_check: if active_count > mds_map['max_mds']: - log.info("are_daemons_healthy: number of actives is greater than max_mds: {0}".format(mds_map)) + log.debug("are_daemons_healthy: number of actives is greater than max_mds: {0}".format(mds_map)) return False elif active_count == mds_map['max_mds']: # The MDSMap says these guys are active, but let's check they really are @@ -774,7 +788,7 @@ else: return False else: - log.info("are_daemons_healthy: skipping max_mds check") + log.debug("are_daemons_healthy: skipping max_mds check") return True def get_daemon_names(self, state=None, status=None): @@ -883,7 +897,7 @@ elapsed += 1 if elapsed > timeout: - log.info("status = {0}".format(status)) + log.debug("status = {0}".format(status)) raise RuntimeError("Timed out waiting for MDS daemons to become healthy") status = self.status() @@ -965,7 +979,7 @@ journal_header_dump = self.get_metadata_object('Journaler::Header', journal_header_object) version = journal_header_dump['journal_header']['stream_format'] - log.info("Read journal version {0}".format(version)) + log.debug("Read journal version {0}".format(version)) return version @@ -1014,11 +1028,11 @@ try: mds_info = status.get_rank(self.id, rank) current_state = mds_info['state'] if mds_info else None - log.info("Looked up MDS state for mds.{0}: {1}".format(rank, current_state)) + log.debug("Looked up MDS state for mds.{0}: {1}".format(rank, current_state)) except: mdsmap = self.get_mds_map(status=status) if rank in mdsmap['failed']: - log.info("Waiting for rank {0} to come back.".format(rank)) + log.debug("Waiting for rank {0} to come back.".format(rank)) current_state = None else: raise @@ -1026,7 +1040,7 @@ # mds_info is None if no daemon with this ID exists in the map mds_info = status.get_mds(mds_id) current_state = mds_info['state'] if mds_info else None - log.info("Looked up MDS state for {0}: {1}".format(mds_id, current_state)) + log.debug("Looked up MDS state for {0}: {1}".format(mds_id, current_state)) else: # In general, look for a single MDS states = [m['state'] for m in status.get_ranks(self.id)] @@ -1036,11 +1050,11 @@ current_state = reject else: current_state = None - log.info("mapped states {0} to {1}".format(states, current_state)) + log.debug("mapped states {0} to {1}".format(states, current_state)) elapsed = time.time() - started_at if current_state == goal_state: - log.info("reached state '{0}' in {1}s".format(current_state, elapsed)) + log.debug("reached state '{0}' in {1}s".format(current_state, elapsed)) return elapsed elif reject is not None and current_state == reject: raise RuntimeError("MDS in reject state {0}".format(current_state)) @@ -1173,12 +1187,12 @@ missing = set(want_objects) - set(exist_objects) if missing: - log.info("Objects missing (ino {0}, size {1}): {2}".format( + log.debug("Objects missing (ino {0}, size {1}): {2}".format( ino, size, missing )) return False else: - log.info("All objects for ino {0} size {1} found".format(ino, size)) + log.debug("All objects for ino {0} size {1} found".format(ino, size)) return True def data_objects_absent(self, ino, size): @@ -1186,12 +1200,12 @@ present = set(want_objects) & set(exist_objects) if present: - log.info("Objects not absent (ino {0}, size {1}): {2}".format( + log.debug("Objects not absent (ino {0}, size {1}): {2}".format( ino, size, present )) return False else: - log.info("All objects for ino {0} size {1} are absent".format(ino, size)) + log.debug("All objects for ino {0} size {1} are absent".format(ino, size)) return True def dirfrag_exists(self, ino, frag): @@ -1310,7 +1324,7 @@ t1 = datetime.datetime.now() r = self.tool_remote.sh(script=base_args + args, stdout=StringIO()).strip() duration = datetime.datetime.now() - t1 - log.info("Ran {0} in time {1}, result:\n{2}".format( + log.debug("Ran {0} in time {1}, result:\n{2}".format( base_args + args, duration, r )) return r diff -Nru ceph-14.2.11/qa/tasks/cephfs/fuse_mount.py ceph-14.2.18/qa/tasks/cephfs/fuse_mount.py --- ceph-14.2.11/qa/tasks/cephfs/fuse_mount.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/fuse_mount.py 2021-03-15 17:46:20.000000000 +0000 @@ -248,6 +248,9 @@ return self.client_remote.run(args=["ls", "-d", self.mountpoint], check_status=False, cwd=self.test_dir, timeout=(15*60)).exitstatus == 0 def umount(self): + if not self.is_mounted(): + return + try: log.info('Running fusermount -u on {name}...'.format(name=self.client_remote.name)) self.client_remote.run( diff -Nru ceph-14.2.11/qa/tasks/cephfs/kernel_mount.py ceph-14.2.18/qa/tasks/cephfs/kernel_mount.py --- ceph-14.2.11/qa/tasks/cephfs/kernel_mount.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/kernel_mount.py 2021-03-15 17:46:20.000000000 +0000 @@ -70,6 +70,9 @@ self.mounted = True def umount(self, force=False): + if not self.is_mounted(): + return + log.debug('Unmounting client client.{id}...'.format(id=self.client_id)) cmd=['sudo', 'umount', self.mountpoint] diff -Nru ceph-14.2.11/qa/tasks/cephfs/mount.py ceph-14.2.18/qa/tasks/cephfs/mount.py --- ceph-14.2.11/qa/tasks/cephfs/mount.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/mount.py 2021-03-15 17:46:20.000000000 +0000 @@ -8,8 +8,9 @@ from six import StringIO from textwrap import dedent import os +from teuthology.misc import sudo_write_file from teuthology.orchestra import run -from teuthology.orchestra.run import CommandFailedError, ConnectionLostError +from teuthology.orchestra.run import CommandFailedError, ConnectionLostError, Raw from tasks.cephfs.filesystem import Filesystem log = logging.getLogger(__name__) @@ -142,6 +143,29 @@ if r.exitstatus != 0: raise RuntimeError("Expected file {0} not found".format(suffix)) + def write_file(self, path, data, perms=None): + """ + Write the given data at the given path and set the given perms to the + file on the path. + """ + if path.find(self.mountpoint) == -1: + path = os.path.join(self.mountpoint, path) + + sudo_write_file(self.client_remote, path, data) + + if perms: + self.run_shell(args=f'chmod {perms} {path}') + + def read_file(self, path): + """ + Return the data from the file on given path. + """ + if path.find(self.mountpoint) == -1: + path = os.path.join(self.mountpoint, path) + + return self.run_shell(args=['sudo', 'cat', path], omit_sudo=False).\ + stdout.getvalue().strip() + def create_destroy(self): assert(self.is_mounted()) @@ -176,6 +200,9 @@ check_status=check_status, omit_sudo=omit_sudo) + def run_shell_payload(self, payload, **kwargs): + return self.run_shell(["bash", "-c", Raw(f"'{payload}'")], **kwargs) + def open_no_data(self, basename): """ A pure metadata operation diff -Nru ceph-14.2.11/qa/tasks/cephfs/test_client_limits.py ceph-14.2.18/qa/tasks/cephfs/test_client_limits.py --- ceph-14.2.11/qa/tasks/cephfs/test_client_limits.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/test_client_limits.py 2021-03-15 17:46:20.000000000 +0000 @@ -150,6 +150,36 @@ else: raise RuntimeError("expected no client recall warning") + def test_cap_acquisition_throttle_readdir(self): + """ + Mostly readdir acquires caps faster than the mds recalls, so the cap + acquisition via readdir is throttled by retrying the readdir after + a fraction of second (0.5) by default when throttling condition is met. + """ + + max_caps_per_client = 500 + cap_acquisition_throttle = 250 + + self.config_set('mds', 'mds_max_caps_per_client', max_caps_per_client) + self.config_set('mds', 'mds_session_cap_acquisition_throttle', cap_acquisition_throttle) + + # Create 1500 files split across 6 directories, 250 each. + for i in range(1, 7): + self.mount_a.create_n_files("dir{0}/file".format(i), cap_acquisition_throttle, sync=True) + + mount_a_client_id = self.mount_a.get_global_id() + + # recursive readdir + self.mount_a.run_shell_payload("find | wc") + + # validate cap_acquisition decay counter after readdir to exceed throttle count i.e 250 + cap_acquisition_value = self.get_session(mount_a_client_id)['cap_acquisition']['value'] + self.assertGreaterEqual(cap_acquisition_value, cap_acquisition_throttle) + + # validate the throttle condition to be hit atleast once + cap_acquisition_throttle_hit_count = self.perf_dump()['mds_server']['cap_acquisition_throttle'] + self.assertGreaterEqual(cap_acquisition_throttle_hit_count, 1) + def test_client_release_bug(self): """ When a client has a bug (which we will simulate) preventing it from releasing caps, diff -Nru ceph-14.2.11/qa/tasks/cephfs/test_volume_client.py ceph-14.2.18/qa/tasks/cephfs/test_volume_client.py --- ceph-14.2.11/qa/tasks/cephfs/test_volume_client.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/test_volume_client.py 2021-03-15 17:46:20.000000000 +0000 @@ -58,7 +58,7 @@ def _configure_guest_auth(self, volumeclient_mount, guest_mount, guest_entity, mount_path, namespace_prefix=None, readonly=False, - tenant_id=None): + tenant_id=None, allow_existing_id=False): """ Set up auth credentials for the guest client to mount a volume. @@ -83,14 +83,16 @@ key = self._volume_client_python(volumeclient_mount, dedent(""" vp = VolumePath("{group_id}", "{volume_id}") auth_result = vc.authorize(vp, "{guest_entity}", readonly={readonly}, - tenant_id="{tenant_id}") + tenant_id="{tenant_id}", + allow_existing_id="{allow_existing_id}") print(auth_result['auth_key']) """.format( group_id=group_id, volume_id=volume_id, guest_entity=guest_entity, readonly=readonly, - tenant_id=tenant_id)), volume_prefix, namespace_prefix + tenant_id=tenant_id, + allow_existing_id=allow_existing_id)), volume_prefix, namespace_prefix ) # CephFSVolumeClient's authorize() does not return the secret @@ -763,10 +765,10 @@ # for different volumes, versioning details, etc. expected_auth_metadata = { "version": 2, - "compat_version": 1, + "compat_version": 6, "dirty": False, "tenant_id": "tenant1", - "volumes": { + "subvolumes": { "groupid/volumeid": { "dirty": False, "access_level": "rw" @@ -858,6 +860,209 @@ ))) self.assertNotIn(vol_metadata_filename, self.mounts[0].ls("volumes")) + def test_authorize_auth_id_not_created_by_ceph_volume_client(self): + """ + If the auth_id already exists and is not created by + ceph_volume_client, it's not allowed to authorize + the auth-id by default. + """ + volumeclient_mount = self.mounts[1] + volumeclient_mount.umount_wait() + + # Configure volumeclient_mount as the handle for driving volumeclient. + self._configure_vc_auth(volumeclient_mount, "manila") + + group_id = "groupid" + volume_id = "volumeid" + + # Create auth_id + self.fs.mon_manager.raw_cluster_cmd( + "auth", "get-or-create", "client.guest1", + "mds", "allow *", + "osd", "allow rw", + "mon", "allow *" + ) + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # Create a volume. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.create_volume(vp, 1024*1024*10) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + + # Cannot authorize 'guestclient_1' to access the volume. + # It uses auth ID 'guest1', which already exists and not + # created by ceph_volume_client + with self.assertRaises(CommandFailedError): + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}") + """.format( + group_id=group_id, + volume_id=volume_id, + auth_id=guestclient_1["auth_id"], + tenant_id=guestclient_1["tenant_id"] + ))) + + # Delete volume + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + + def test_authorize_allow_existing_id_option(self): + """ + If the auth_id already exists and is not created by + ceph_volume_client, it's not allowed to authorize + the auth-id by default but is allowed with option + allow_existing_id. + """ + volumeclient_mount = self.mounts[1] + volumeclient_mount.umount_wait() + + # Configure volumeclient_mount as the handle for driving volumeclient. + self._configure_vc_auth(volumeclient_mount, "manila") + + group_id = "groupid" + volume_id = "volumeid" + + # Create auth_id + self.fs.mon_manager.raw_cluster_cmd( + "auth", "get-or-create", "client.guest1", + "mds", "allow *", + "osd", "allow rw", + "mon", "allow *" + ) + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # Create a volume. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.create_volume(vp, 1024*1024*10) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + + # Cannot authorize 'guestclient_1' to access the volume + # by default, which already exists and not created by + # ceph_volume_client but is allowed with option 'allow_existing_id'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}", + allow_existing_id="{allow_existing_id}") + """.format( + group_id=group_id, + volume_id=volume_id, + auth_id=guestclient_1["auth_id"], + tenant_id=guestclient_1["tenant_id"], + allow_existing_id=True + ))) + + # Delete volume + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + + def test_deauthorize_auth_id_after_out_of_band_update(self): + """ + If the auth_id authorized by ceph_volume_client is updated + out of band, the auth_id should not be deleted after a + deauthorize. It should only remove caps associated it. + """ + volumeclient_mount = self.mounts[1] + volumeclient_mount.umount_wait() + + # Configure volumeclient_mount as the handle for driving volumeclient. + self._configure_vc_auth(volumeclient_mount, "manila") + + group_id = "groupid" + volume_id = "volumeid" + + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # Create a volume. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.create_volume(vp, 1024*1024*10) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + + # Authorize 'guestclient_1' to access the volume. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}") + """.format( + group_id=group_id, + volume_id=volume_id, + auth_id=guestclient_1["auth_id"], + tenant_id=guestclient_1["tenant_id"] + ))) + + # Update caps for guestclient_1 out of band + out = self.fs.mon_manager.raw_cluster_cmd( + "auth", "caps", "client.guest1", + "mds", "allow rw path=/volumes/groupid, allow rw path=/volumes/groupid/volumeid", + "osd", "allow rw pool=cephfs_data namespace=fsvolumens_volumeid", + "mon", "allow r", + "mgr", "allow *" + ) + + # Deauthorize guestclient_1 + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.deauthorize(vp, "{guest_entity}") + """.format( + group_id=group_id, + volume_id=volume_id, + guest_entity=guestclient_1["auth_id"] + ))) + + # Validate the caps of guestclient_1 after deauthorize. It should not have deleted + # guestclient_1. The mgr and mds caps should be present which was updated out of band. + out = json.loads(self.fs.mon_manager.raw_cluster_cmd("auth", "get", "client.guest1", "--format=json-pretty")) + + self.assertEqual("client.guest1", out[0]["entity"]) + self.assertEqual("allow rw path=/volumes/groupid", out[0]["caps"]["mds"]) + self.assertEqual("allow *", out[0]["caps"]["mgr"]) + self.assertNotIn("osd", out[0]["caps"]) + + # Delete volume + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + def test_recover_metadata(self): """ That volume client can recover from partial auth updates using @@ -915,6 +1120,441 @@ auth_id=guestclient["auth_id"], ))) + def test_update_old_style_auth_metadata_to_new_during_recover(self): + """ + From nautilus onwards 'volumes' created by ceph_volume_client were + renamed and used as CephFS subvolumes accessed via the ceph-mgr + interface. Hence it makes sense to store the subvolume data in + auth-metadata file with 'subvolumes' key instead of 'volumes' key. + This test validates the transparent update of 'volumes' key to + 'subvolumes' key in auth metadata file during recover. + """ + volumeclient_mount = self.mounts[1] + volumeclient_mount.umount_wait() + + # Configure volumeclient_mount as the handle for driving volumeclient. + self._configure_vc_auth(volumeclient_mount, "manila") + + group_id = "groupid" + volume_id = "volumeid" + + guestclient = { + "auth_id": "guest", + "tenant_id": "tenant", + } + + # Create a volume. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.create_volume(vp, 1024*1024*10) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + + # Check that volume metadata file is created on volume creation. + vol_metadata_filename = "_{0}:{1}.meta".format(group_id, volume_id) + self.assertIn(vol_metadata_filename, self.mounts[0].ls("volumes")) + + # Authorize 'guestclient' access to the volume. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}") + """.format( + group_id=group_id, + volume_id=volume_id, + auth_id=guestclient["auth_id"], + tenant_id=guestclient["tenant_id"] + ))) + + # Check that auth metadata file for auth ID 'guest' is created. + auth_metadata_filename = "${0}.meta".format(guestclient["auth_id"]) + self.assertIn(auth_metadata_filename, self.mounts[0].ls("volumes")) + + # Replace 'subvolumes' to 'volumes', old style auth-metadata file + self.mounts[0].run_shell(['sed', '-i', 's/subvolumes/volumes/g', 'volumes/{0}'.format(auth_metadata_filename)]) + + # Verify that the auth metadata file stores the tenant ID that the + # auth ID belongs to, the auth ID's authorized access levels + # for different volumes, versioning details, etc. + expected_auth_metadata = { + "version": 2, + "compat_version": 6, + "dirty": False, + "tenant_id": "tenant", + "subvolumes": { + "groupid/volumeid": { + "dirty": False, + "access_level": "rw" + } + } + } + + # Induce partial auth update state by modifying the auth metadata file, + # and then run recovery procedure. This should also update 'volumes' key + # to 'subvolumes'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + auth_metadata = vc._auth_metadata_get("{auth_id}") + auth_metadata['dirty'] = True + vc._auth_metadata_set("{auth_id}", auth_metadata) + vc.recover() + """.format( + group_id=group_id, + volume_id=volume_id, + auth_id=guestclient["auth_id"], + ))) + + auth_metadata = self._volume_client_python(volumeclient_mount, dedent(""" + import json + auth_metadata = vc._auth_metadata_get("{auth_id}") + print(json.dumps(auth_metadata)) + """.format( + auth_id=guestclient["auth_id"], + ))) + auth_metadata = json.loads(auth_metadata) + + self.assertGreaterEqual(auth_metadata["version"], expected_auth_metadata["version"]) + del expected_auth_metadata["version"] + del auth_metadata["version"] + self.assertEqual(expected_auth_metadata, auth_metadata) + + # Check that auth metadata file is cleaned up on removing + # auth ID's access to volumes 'volumeid'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.deauthorize(vp, "{guest_entity}") + """.format( + group_id=group_id, + volume_id=volume_id, + guest_entity=guestclient["auth_id"] + ))) + self.assertNotIn(auth_metadata_filename, self.mounts[0].ls("volumes")) + + # Check that volume metadata file is cleaned up on volume deletion. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id, + ))) + self.assertNotIn(vol_metadata_filename, self.mounts[0].ls("volumes")) + + def test_update_old_style_auth_metadata_to_new_during_authorize(self): + """ + From nautilus onwards 'volumes' created by ceph_volume_client were + renamed and used as CephFS subvolumes accessed via the ceph-mgr + interface. Hence it makes sense to store the subvolume data in + auth-metadata file with 'subvolumes' key instead of 'volumes' key. + This test validates the transparent update of 'volumes' key to + 'subvolumes' key in auth metadata file during authorize. + """ + volumeclient_mount = self.mounts[1] + volumeclient_mount.umount_wait() + + # Configure volumeclient_mount as the handle for driving volumeclient. + self._configure_vc_auth(volumeclient_mount, "manila") + + group_id = "groupid" + volume_id1 = "volumeid1" + volume_id2 = "volumeid2" + + auth_id = "guest" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # Create a volume volumeid1. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + create_result = vc.create_volume(vp, 10*1024*1024) + print(create_result['mount_path']) + """.format( + group_id=group_id, + volume_id=volume_id1, + ))) + + # Create a volume volumeid2. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + create_result = vc.create_volume(vp, 10*1024*1024) + print(create_result['mount_path']) + """.format( + group_id=group_id, + volume_id=volume_id2, + ))) + + # Check that volume metadata file is created on volume creation. + vol_metadata_filename = "_{0}:{1}.meta".format(group_id, volume_id1) + self.assertIn(vol_metadata_filename, self.mounts[0].ls("volumes")) + vol_metadata_filename2 = "_{0}:{1}.meta".format(group_id, volume_id2) + self.assertIn(vol_metadata_filename2, self.mounts[0].ls("volumes")) + + # Authorize 'guestclient_1', using auth ID 'guest' and belonging to + # 'tenant1', with 'rw' access to the volume 'volumeid1'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}") + """.format( + group_id=group_id, + volume_id=volume_id1, + auth_id=guestclient_1["auth_id"], + tenant_id=guestclient_1["tenant_id"] + ))) + + # Check that auth metadata file for auth ID 'guest', is + # created on authorizing 'guest' access to the volume. + auth_metadata_filename = "${0}.meta".format(guestclient_1["auth_id"]) + self.assertIn(auth_metadata_filename, self.mounts[0].ls("volumes")) + + # Replace 'subvolumes' to 'volumes', old style auth-metadata file + self.mounts[0].run_shell(['sed', '-i', 's/subvolumes/volumes/g', 'volumes/{0}'.format(auth_metadata_filename)]) + + # Authorize 'guestclient_1', using auth ID 'guest' and belonging to + # 'tenant1', with 'rw' access to the volume 'volumeid2'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}") + """.format( + group_id=group_id, + volume_id=volume_id2, + auth_id=guestclient_1["auth_id"], + tenant_id=guestclient_1["tenant_id"] + ))) + + # Verify that the auth metadata file stores the tenant ID that the + # auth ID belongs to, the auth ID's authorized access levels + # for different volumes, versioning details, etc. + expected_auth_metadata = { + "version": 2, + "compat_version": 6, + "dirty": False, + "tenant_id": "tenant1", + "subvolumes": { + "groupid/volumeid1": { + "dirty": False, + "access_level": "rw" + }, + "groupid/volumeid2": { + "dirty": False, + "access_level": "rw" + } + } + } + + auth_metadata = self._volume_client_python(volumeclient_mount, dedent(""" + import json + auth_metadata = vc._auth_metadata_get("{auth_id}") + print(json.dumps(auth_metadata)) + """.format( + auth_id=guestclient_1["auth_id"], + ))) + auth_metadata = json.loads(auth_metadata) + + self.assertGreaterEqual(auth_metadata["version"], expected_auth_metadata["version"]) + del expected_auth_metadata["version"] + del auth_metadata["version"] + self.assertEqual(expected_auth_metadata, auth_metadata) + + # Check that auth metadata file is cleaned up on removing + # auth ID's access to volumes 'volumeid1' and 'volumeid2'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.deauthorize(vp, "{guest_entity}") + """.format( + group_id=group_id, + volume_id=volume_id1, + guest_entity=guestclient_1["auth_id"] + ))) + + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.deauthorize(vp, "{guest_entity}") + """.format( + group_id=group_id, + volume_id=volume_id2, + guest_entity=guestclient_1["auth_id"] + ))) + self.assertNotIn(auth_metadata_filename, self.mounts[0].ls("volumes")) + + # Check that volume metadata file is cleaned up on volume deletion. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id1, + ))) + self.assertNotIn(vol_metadata_filename, self.mounts[0].ls("volumes")) + + # Check that volume metadata file is cleaned up on volume deletion. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id2, + ))) + self.assertNotIn(vol_metadata_filename2, self.mounts[0].ls("volumes")) + + def test_update_old_style_auth_metadata_to_new_during_deauthorize(self): + """ + From nautilus onwards 'volumes' created by ceph_volume_client were + renamed and used as CephFS subvolumes accessed via the ceph-mgr + interface. Hence it makes sense to store the subvolume data in + auth-metadata file with 'subvolumes' key instead of 'volumes' key. + This test validates the transparent update of 'volumes' key to + 'subvolumes' key in auth metadata file during de-authorize. + """ + volumeclient_mount = self.mounts[1] + volumeclient_mount.umount_wait() + + # Configure volumeclient_mount as the handle for driving volumeclient. + self._configure_vc_auth(volumeclient_mount, "manila") + + group_id = "groupid" + volume_id1 = "volumeid1" + volume_id2 = "volumeid2" + + auth_id = "guest" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # Create a volume volumeid1. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + create_result = vc.create_volume(vp, 10*1024*1024) + print(create_result['mount_path']) + """.format( + group_id=group_id, + volume_id=volume_id1, + ))) + + # Create a volume volumeid2. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + create_result = vc.create_volume(vp, 10*1024*1024) + print(create_result['mount_path']) + """.format( + group_id=group_id, + volume_id=volume_id2, + ))) + + # Check that volume metadata file is created on volume creation. + vol_metadata_filename = "_{0}:{1}.meta".format(group_id, volume_id1) + self.assertIn(vol_metadata_filename, self.mounts[0].ls("volumes")) + vol_metadata_filename2 = "_{0}:{1}.meta".format(group_id, volume_id2) + self.assertIn(vol_metadata_filename2, self.mounts[0].ls("volumes")) + + # Authorize 'guestclient_1', using auth ID 'guest' and belonging to + # 'tenant1', with 'rw' access to the volume 'volumeid1'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}") + """.format( + group_id=group_id, + volume_id=volume_id1, + auth_id=guestclient_1["auth_id"], + tenant_id=guestclient_1["tenant_id"] + ))) + + # Authorize 'guestclient_1', using auth ID 'guest' and belonging to + # 'tenant1', with 'rw' access to the volume 'volumeid2'. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.authorize(vp, "{auth_id}", tenant_id="{tenant_id}") + """.format( + group_id=group_id, + volume_id=volume_id2, + auth_id=guestclient_1["auth_id"], + tenant_id=guestclient_1["tenant_id"] + ))) + + # Check that auth metadata file for auth ID 'guest', is + # created on authorizing 'guest' access to the volume. + auth_metadata_filename = "${0}.meta".format(guestclient_1["auth_id"]) + self.assertIn(auth_metadata_filename, self.mounts[0].ls("volumes")) + + # Replace 'subvolumes' to 'volumes', old style auth-metadata file + self.mounts[0].run_shell(['sed', '-i', 's/subvolumes/volumes/g', 'volumes/{0}'.format(auth_metadata_filename)]) + + # Deauthorize 'guestclient_1' to access 'volumeid2'. This should update + # 'volumes' key to 'subvolumes' + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.deauthorize(vp, "{guest_entity}") + """.format( + group_id=group_id, + volume_id=volume_id2, + guest_entity=guestclient_1["auth_id"], + ))) + + # Verify that the auth metadata file stores the tenant ID that the + # auth ID belongs to, the auth ID's authorized access levels + # for different volumes, versioning details, etc. + expected_auth_metadata = { + "version": 2, + "compat_version": 6, + "dirty": False, + "tenant_id": "tenant1", + "subvolumes": { + "groupid/volumeid1": { + "dirty": False, + "access_level": "rw" + } + } + } + + auth_metadata = self._volume_client_python(volumeclient_mount, dedent(""" + import json + auth_metadata = vc._auth_metadata_get("{auth_id}") + print(json.dumps(auth_metadata)) + """.format( + auth_id=guestclient_1["auth_id"], + ))) + auth_metadata = json.loads(auth_metadata) + + self.assertGreaterEqual(auth_metadata["version"], expected_auth_metadata["version"]) + del expected_auth_metadata["version"] + del auth_metadata["version"] + self.assertEqual(expected_auth_metadata, auth_metadata) + + # Check that auth metadata file is cleaned up on removing + # auth ID's access to volumes 'volumeid1' and 'volumeid2' + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.deauthorize(vp, "{guest_entity}") + """.format( + group_id=group_id, + volume_id=volume_id1, + guest_entity=guestclient_1["auth_id"] + ))) + self.assertNotIn(auth_metadata_filename, self.mounts[0].ls("volumes")) + + # Check that volume metadata file is cleaned up on 'volumeid1' deletion. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id1, + ))) + self.assertNotIn(vol_metadata_filename, self.mounts[0].ls("volumes")) + + # Check that volume metadata file is cleaned up on 'volumeid2' deletion. + self._volume_client_python(volumeclient_mount, dedent(""" + vp = VolumePath("{group_id}", "{volume_id}") + vc.delete_volume(vp) + """.format( + group_id=group_id, + volume_id=volume_id2, + ))) + self.assertNotIn(vol_metadata_filename2, self.mounts[0].ls("volumes")) + def test_put_object(self): vc_mount = self.mounts[1] vc_mount.umount_wait() @@ -1078,7 +1718,7 @@ guest_mount.umount_wait() # Set auth caps for the auth ID using the volumeclient - self._configure_guest_auth(vc_mount, guest_mount, guest_id, mount_path) + self._configure_guest_auth(vc_mount, guest_mount, guest_id, mount_path, allow_existing_id=True) # Mount the volume in the guest using the auth ID to assert that the # auth caps are valid diff -Nru ceph-14.2.11/qa/tasks/cephfs/test_volumes.py ceph-14.2.18/qa/tasks/cephfs/test_volumes.py --- ceph-14.2.11/qa/tasks/cephfs/test_volumes.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/cephfs/test_volumes.py 2021-03-15 17:46:20.000000000 +0000 @@ -5,9 +5,14 @@ import random import logging import collections +import uuid +import unittest +from hashlib import md5 +from textwrap import dedent from tasks.cephfs.cephfs_test_case import CephFSTestCase from teuthology.exceptions import CommandFailedError +from teuthology.misc import sudo_write_file log = logging.getLogger(__name__) @@ -20,7 +25,7 @@ TEST_FILE_NAME_PREFIX="subvolume_file" # for filling subvolume with data - CLIENTS_REQUIRED = 1 + CLIENTS_REQUIRED = 2 # io defaults DEFAULT_FILE_SIZE = 1 # MB @@ -55,9 +60,22 @@ def _check_clone_canceled(self, clone, clone_group=None): self.__check_clone_state("canceled", clone, clone_group, timo=1) - def _verify_clone_attrs(self, subvolume, clone, source_group=None, clone_group=None): - path1 = self._get_subvolume_path(self.volname, subvolume, group_name=source_group) - path2 = self._get_subvolume_path(self.volname, clone, group_name=clone_group) + def _get_subvolume_snapshot_path(self, subvolume, snapshot, source_group, subvol_path, source_version): + if source_version == 2: + # v2 + if subvol_path is not None: + (base_path, uuid_str) = os.path.split(subvol_path) + else: + (base_path, uuid_str) = os.path.split(self._get_subvolume_path(self.volname, subvolume, group_name=source_group)) + return os.path.join(base_path, ".snap", snapshot, uuid_str) + + # v1 + base_path = self._get_subvolume_path(self.volname, subvolume, group_name=source_group) + return os.path.join(base_path, ".snap", snapshot) + + def _verify_clone_attrs(self, source_path, clone_path): + path1 = source_path + path2 = clone_path p = self.mount_a.run_shell(["find", path1]) paths = p.stdout.getvalue().strip().split() @@ -91,12 +109,38 @@ cval = int(self.mount_a.run_shell(['stat', '-c' '%Y', sink_path]).stdout.getvalue().strip()) self.assertEqual(sval, cval) - def _verify_clone(self, subvolume, clone, source_group=None, clone_group=None, timo=120): - path1 = self._get_subvolume_path(self.volname, subvolume, group_name=source_group) + def _verify_clone_root(self, source_path, clone_path, clone, clone_group, clone_pool): + # verifies following clone root attrs quota, data_pool and pool_namespace + # remaining attributes of clone root are validated in _verify_clone_attrs + + clone_info = json.loads(self._get_subvolume_info(self.volname, clone, clone_group)) + + # verify quota is inherited from source snapshot + src_quota = self.mount_a.getfattr(source_path, "ceph.quota.max_bytes") + self.assertEqual(clone_info["bytes_quota"], "infinite" if src_quota is None else int(src_quota)) + + if clone_pool: + # verify pool is set as per request + self.assertEqual(clone_info["data_pool"], clone_pool) + else: + # verify pool and pool namespace are inherited from snapshot + self.assertEqual(clone_info["data_pool"], + self.mount_a.getfattr(source_path, "ceph.dir.layout.pool")) + self.assertEqual(clone_info["pool_namespace"], + self.mount_a.getfattr(source_path, "ceph.dir.layout.pool_namespace")) + + def _verify_clone(self, subvolume, snapshot, clone, + source_group=None, clone_group=None, clone_pool=None, + subvol_path=None, source_version=2, timo=120): + # pass in subvol_path (subvolume path when snapshot was taken) when subvolume is removed + # but snapshots are retained for clone verification + path1 = self._get_subvolume_snapshot_path(subvolume, snapshot, source_group, subvol_path, source_version) path2 = self._get_subvolume_path(self.volname, clone, group_name=clone_group) check = 0 - while check < timo: + # TODO: currently snapshot rentries are not stable if snapshot source entries + # are removed, https://tracker.ceph.com/issues/46747 + while check < timo and subvol_path is None: val1 = int(self.mount_a.getfattr(path1, "ceph.dir.rentries")) val2 = int(self.mount_a.getfattr(path2, "ceph.dir.rentries")) if val1 == val2: @@ -105,7 +149,8 @@ time.sleep(1) self.assertTrue(check < timo) - self._verify_clone_attrs(subvolume, clone, source_group=source_group, clone_group=clone_group) + self._verify_clone_root(path1, path2, clone, clone_group, clone_pool) + self._verify_clone_attrs(path1, path2) def _generate_random_volume_name(self, count=1): n = self.volume_start @@ -183,6 +228,25 @@ def _delete_test_volume(self): self._fs_cmd("volume", "rm", self.volname, "--yes-i-really-mean-it") + def _do_subvolume_pool_and_namespace_update(self, subvolume, pool=None, pool_namespace=None, subvolume_group=None): + subvolpath = self._get_subvolume_path(self.volname, subvolume, group_name=subvolume_group) + + if pool is not None: + self.mount_a.setfattr(subvolpath, 'ceph.dir.layout.pool', pool) + + if pool_namespace is not None: + self.mount_a.setfattr(subvolpath, 'ceph.dir.layout.pool_namespace', pool_namespace) + + def _do_subvolume_attr_update(self, subvolume, uid, gid, mode, subvolume_group=None): + subvolpath = self._get_subvolume_path(self.volname, subvolume, group_name=subvolume_group) + + # mode + self.mount_a.run_shell(['chmod', mode, subvolpath]) + + # ownership + self.mount_a.run_shell(['chown', uid, subvolpath]) + self.mount_a.run_shell(['chgrp', gid, subvolpath]) + def _do_subvolume_io(self, subvolume, subvolume_group=None, create_dir=None, number_of_files=DEFAULT_NUMBER_OF_FILES, file_size=DEFAULT_FILE_SIZE): # get subvolume path for IO @@ -227,6 +291,90 @@ trashdir = os.path.join("./", "volumes", "_deleting") self.mount_a.wait_for_dir_empty(trashdir, timeout=timeout) + def _assert_meta_location_and_version(self, vol_name, subvol_name, subvol_group=None, version=2, legacy=False): + if legacy: + subvol_path = self._get_subvolume_path(vol_name, subvol_name, group_name=subvol_group) + m = md5() + m.update(("/"+subvol_path).encode('utf-8')) + meta_filename = "{0}.meta".format(m.digest().hex()) + metapath = os.path.join(".", "volumes", "_legacy", meta_filename) + else: + group = subvol_group if subvol_group is not None else '_nogroup' + metapath = os.path.join(".", "volumes", group, subvol_name, ".meta") + + out = self.mount_a.run_shell(['cat', metapath]) + lines = out.stdout.getvalue().strip().split('\n') + sv_version = -1 + for line in lines: + if line == "version = " + str(version): + sv_version = version + break + self.assertEqual(sv_version, version, "version expected was '{0}' but got '{1}' from meta file at '{2}'".format( + version, sv_version, metapath)) + + def _create_v1_subvolume(self, subvol_name, subvol_group=None, has_snapshot=True, subvol_type='subvolume', state='complete'): + group = subvol_group if subvol_group is not None else '_nogroup' + basepath = os.path.join("volumes", group, subvol_name) + uuid_str = str(uuid.uuid4()) + createpath = os.path.join(basepath, uuid_str) + self.mount_a.run_shell(['mkdir', '-p', createpath]) + + # create a v1 snapshot, to prevent auto upgrades + if has_snapshot: + snappath = os.path.join(createpath, ".snap", "fake") + self.mount_a.run_shell(['mkdir', '-p', snappath]) + + # add required xattrs to subvolume + default_pool = self.mount_a.getfattr(".", "ceph.dir.layout.pool") + self.mount_a.setfattr(createpath, 'ceph.dir.layout.pool', default_pool) + + # create a v1 .meta file + meta_contents = "[GLOBAL]\nversion = 1\ntype = {0}\npath = {1}\nstate = {2}\n".format(subvol_type, "/" + createpath, state) + if state == 'pending': + # add a fake clone source + meta_contents = meta_contents + '[source]\nvolume = fake\nsubvolume = fake\nsnapshot = fake\n' + meta_filepath1 = os.path.join(self.mount_a.mountpoint, basepath, ".meta") + sudo_write_file(self.mount_a.client_remote, meta_filepath1, meta_contents) + return createpath + + def _update_fake_trash(self, subvol_name, subvol_group=None, trash_name='fake', create=True): + group = subvol_group if subvol_group is not None else '_nogroup' + trashpath = os.path.join("volumes", group, subvol_name, '.trash', trash_name) + if create: + self.mount_a.run_shell(['mkdir', '-p', trashpath]) + else: + self.mount_a.run_shell(['rmdir', trashpath]) + + def _configure_guest_auth(self, guest_mount, authid, key): + """ + Set up auth credentials for a guest client. + """ + # Create keyring file for the guest client. + keyring_txt = dedent(""" + [client.{authid}] + key = {key} + + """.format(authid=authid,key=key)) + + guest_mount.client_id = authid + guest_mount.client_remote.write_file(guest_mount.get_keyring_path(), + keyring_txt, sudo=True) + # Add a guest client section to the ceph config file. + self.config_set("client.{0}".format(authid), "debug client", 20) + self.config_set("client.{0}".format(authid), "debug objecter", 20) + self.set_conf("client.{0}".format(authid), + "keyring", guest_mount.get_keyring_path()) + + def _auth_metadata_get(self, filedata): + """ + Return a deserialized JSON object, or None + """ + try: + data = json.loads(filedata) + except json.decoder.JSONDecodeError: + data = None + return data + def setUp(self): super(TestVolumes, self).setUp() self.volname = None @@ -247,7 +395,8 @@ def test_connection_expiration(self): # unmount any cephfs mounts - self.mount_a.umount_wait() + for i in range(0, self.CLIENTS_REQUIRED): + self.mounts[i].umount_wait() sessions = self._session_list() self.assertLessEqual(len(sessions), 1) # maybe mgr is already mounted @@ -283,7 +432,7 @@ volumes = [volume['name'] for volume in vls] #create new volumes and add it to the existing list of volumes - volumenames = self._generate_random_volume_name(3) + volumenames = self._generate_random_volume_name(2) for volumename in volumenames: self._fs_cmd("volume", "create", volumename) volumes.extend(volumenames) @@ -307,6 +456,8 @@ That the volume can only be removed when --yes-i-really-mean-it is used and verify that the deleted volume is not listed anymore. """ + for m in self.mounts: + m.umount_wait() try: self._fs_cmd("volume", "rm", self.volname) except CommandFailedError as ce: @@ -324,11 +475,49 @@ else: raise RuntimeError("expected the 'fs volume rm' command to fail.") + def test_subvolume_marked(self): + """ + ensure a subvolume is marked with the ceph.dir.subvolume xattr + """ + subvolume = self._generate_random_subvolume_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # getpath + subvolpath = self._get_subvolume_path(self.volname, subvolume) + + # subdirectory of a subvolume cannot be moved outside the subvolume once marked with + # the xattr ceph.dir.subvolume, hence test by attempting to rename subvol path (incarnation) + # outside the subvolume + dstpath = os.path.join(self.mount_a.mountpoint, 'volumes', '_nogroup', 'new_subvol_location') + srcpath = os.path.join(self.mount_a.mountpoint, subvolpath) + rename_script = dedent(""" + import os + import errno + try: + os.rename("{src}", "{dst}") + except OSError as e: + if e.errno != errno.EXDEV: + raise RuntimeError("invalid error code on renaming subvolume incarnation out of subvolume directory") + else: + raise RuntimeError("expected renaming subvolume incarnation out of subvolume directory to fail") + """) + self.mount_a.run_python(rename_script.format(src=srcpath, dst=dstpath)) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_volume_rm_arbitrary_pool_removal(self): """ That the arbitrary pool added to the volume out of band is removed successfully on volume removal. """ + for m in self.mounts: + m.umount_wait() new_pool = "new_pool" # add arbitrary data pool self.fs.add_data_pool(new_pool) @@ -349,6 +538,8 @@ That the volume can only be removed when mon_allowd_pool_delete is set to true and verify that the pools are removed after volume deletion. """ + for m in self.mounts: + m.umount_wait() self.config_set('mon', 'mon_allow_pool_delete', False) try: self._fs_cmd("volume", "rm", self.volname, "--yes-i-really-mean-it") @@ -417,6 +608,12 @@ size = int(self.mount_a.getfattr(subvolpath, "ceph.quota.max_bytes")) self.assertEqual(size, nsize) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_shrink(self): """ That a subvolume can be shrinked in size and its quota matches the expected size. @@ -439,6 +636,12 @@ size = int(self.mount_a.getfattr(subvolpath, "ceph.quota.max_bytes")) self.assertEqual(size, nsize) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_resize_fail_invalid_size(self): """ That a subvolume cannot be resized to an invalid size and the quota did not change @@ -458,15 +661,20 @@ try: self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize)) except CommandFailedError as ce: - if ce.exitstatus != errno.EINVAL: - raise + self.assertEqual(ce.exitstatus, errno.EINVAL, "invalid error code on resize of subvolume with invalid size") else: - raise RuntimeError("expected the 'fs subvolume resize' command to fail") + self.fail("expected the 'fs subvolume resize' command to fail") # verify the quota did not change size = int(self.mount_a.getfattr(subvolpath, "ceph.quota.max_bytes")) self.assertEqual(size, osize) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_resize_fail_zero_size(self): """ That a subvolume cannot be resized to a zero size and the quota did not change @@ -486,15 +694,20 @@ try: self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize)) except CommandFailedError as ce: - if ce.exitstatus != errno.EINVAL: - raise + self.assertEqual(ce.exitstatus, errno.EINVAL, "invalid error code on resize of subvolume with invalid size") else: - raise RuntimeError("expected the 'fs subvolume resize' command to fail") + self.fail("expected the 'fs subvolume resize' command to fail") # verify the quota did not change size = int(self.mount_a.getfattr(subvolpath, "ceph.quota.max_bytes")) self.assertEqual(size, osize) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_resize_quota_lt_used_size(self): """ That a subvolume can be resized to a size smaller than the current used size @@ -528,12 +741,18 @@ try: self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize)) except CommandFailedError: - raise RuntimeError("expected the 'fs subvolume resize' command to succeed") + self.fail("expected the 'fs subvolume resize' command to succeed") # verify the quota size = int(self.mount_a.getfattr(subvolpath, "ceph.quota.max_bytes")) self.assertEqual(size, nsize) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_resize_fail_quota_lt_used_size_no_shrink(self): """ @@ -568,15 +787,20 @@ try: self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize), "--no_shrink") except CommandFailedError as ce: - if ce.exitstatus != errno.EINVAL: - raise + self.assertEqual(ce.exitstatus, errno.EINVAL, "invalid error code on resize of subvolume with invalid size") else: - raise RuntimeError("expected the 'fs subvolume resize' command to fail") + self.fail("expected the 'fs subvolume resize' command to fail") # verify the quota did not change size = int(self.mount_a.getfattr(subvolpath, "ceph.quota.max_bytes")) self.assertEqual(size, osize) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_resize_expand_on_full_subvolume(self): """ That the subvolume can be expanded from a full subvolume and future writes succeed. @@ -614,12 +838,18 @@ try: self.mount_a.write_n_mb(os.path.join(subvolpath, filename), file_size) except CommandFailedError: - raise RuntimeError("expected filling subvolume {0} with {1} file of size {2}MB" + self.fail("expected filling subvolume {0} with {1} file of size {2}MB" "to succeed".format(subvolname, number_of_files, file_size)) else: - raise RuntimeError("expected filling subvolume {0} with {1} file of size {2}MB" + self.fail("expected filling subvolume {0} with {1} file of size {2}MB" "to fail".format(subvolname, number_of_files, file_size)) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_create_idempotence(self): # create subvolume subvolume = self._generate_random_subvolume_name() @@ -679,18 +909,20 @@ try: self._fs_cmd("subvolume", "create", self.volname, subvolume, "--pool_layout", data_pool) except CommandFailedError as ce: - if ce.exitstatus != errno.EINVAL: - raise + self.assertEqual(ce.exitstatus, errno.EINVAL, "invalid error code on create of subvolume with invalid pool layout") else: - raise RuntimeError("expected the 'fs subvolume create' command to fail") + self.fail("expected the 'fs subvolume create' command to fail") + + # verify trash dir is clean + self._wait_for_trash_empty() def test_subvolume_rm_force(self): # test removing non-existing subvolume with --force subvolume = self._generate_random_subvolume_name() try: self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--force") - except CommandFailedError as ce: - raise RuntimeError("expected the 'fs subvolume rm --force' command to succeed") + except CommandFailedError: + self.fail("expected the 'fs subvolume rm --force' command to succeed") def test_subvolume_create_with_auto_cleanup_on_fail(self): subvolume = self._generate_random_subvolume_name() @@ -703,10 +935,12 @@ try: self._fs_cmd("subvolume", "getpath", self.volname, subvolume) except CommandFailedError as ce: - if ce.exitstatus != errno.ENOENT: - raise + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on getpath of non-existent subvolume") else: - raise RuntimeError("expected the 'fs subvolume getpath' command to fail") + self.fail("expected the 'fs subvolume getpath' command to fail") + + # verify trash dir is clean + self._wait_for_trash_empty() def test_subvolume_create_with_invalid_size(self): # create subvolume with an invalid size -1 @@ -714,10 +948,12 @@ try: self._fs_cmd("subvolume", "create", self.volname, subvolume, "--size", "-1") except CommandFailedError as ce: - if ce.exitstatus != errno.EINVAL: - raise + self.assertEqual(ce.exitstatus, errno.EINVAL, "invalid error code on create of subvolume with invalid size") else: - raise RuntimeError("expected the 'fs subvolume create' command to fail") + self.fail("expected the 'fs subvolume create' command to fail") + + # verify trash dir is clean + self._wait_for_trash_empty() def test_nonexistent_subvolume_rm(self): # remove non-existing subvolume @@ -762,6 +998,9 @@ # remove subvolume self._fs_cmd("subvolume", "rm", self.volname, subvolume) + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_ls(self): # tests the 'fs subvolume ls' command @@ -775,11 +1014,18 @@ # list subvolumes subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) if len(subvolumels) == 0: - raise RuntimeError("Expected the 'fs subvolume ls' command to list the created subvolumes.") + self.fail("Expected the 'fs subvolume ls' command to list the created subvolumes.") else: subvolnames = [subvolume['name'] for subvolume in subvolumels] if collections.Counter(subvolnames) != collections.Counter(subvolumes): - raise RuntimeError("Error creating or listing subvolumes") + self.fail("Error creating or listing subvolumes") + + # remove subvolume + for subvolume in subvolumes: + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + + # verify trash dir is clean + self._wait_for_trash_empty() def test_subvolume_ls_for_notexistent_default_group(self): # tests the 'fs subvolume ls' command when the default group '_nogroup' doesn't exist @@ -812,6 +1058,12 @@ size = self.mount_a.getfattr(subvolpath, "ceph.quota.max_bytes") self.assertEqual(size, None) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_resize_infinite_size_future_writes(self): """ That a subvolume can be resized to an infinite size and the future writes succeed. @@ -844,15 +1096,21 @@ try: self.mount_a.write_n_mb(os.path.join(subvolpath, filename), file_size) except CommandFailedError: - raise RuntimeError("expected filling subvolume {0} with {1} file of size {2}MB " + self.fail("expected filling subvolume {0} with {1} file of size {2}MB " "to succeed".format(subvolname, number_of_files, file_size)) + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolname) + + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_info(self): # tests the 'fs subvolume info' command subvol_md = ["atime", "bytes_pcent", "bytes_quota", "bytes_used", "created_at", "ctime", "data_pool", "gid", "mode", "mon_addrs", "mtime", "path", "pool_namespace", - "type", "uid", "features"] + "type", "uid", "features", "state"] # create subvolume subvolume = self._generate_random_subvolume_name() @@ -860,17 +1118,17 @@ # get subvolume metadata subvol_info = json.loads(self._get_subvolume_info(self.volname, subvolume)) - self.assertNotEqual(len(subvol_info), 0, "expected the 'fs subvolume info' command to list metadata of subvolume") for md in subvol_md: - self.assertIn(md, subvol_info.keys(), "'{0}' key not present in metadata of subvolume".format(md)) + self.assertIn(md, subvol_info, "'{0}' key not present in metadata of subvolume".format(md)) self.assertEqual(subvol_info["bytes_pcent"], "undefined", "bytes_pcent should be set to undefined if quota is not set") self.assertEqual(subvol_info["bytes_quota"], "infinite", "bytes_quota should be set to infinite if quota is not set") self.assertEqual(subvol_info["pool_namespace"], "", "expected pool namespace to be empty") + self.assertEqual(subvol_info["state"], "complete", "expected state to be complete") - self.assertEqual(len(subvol_info["features"]), 2, - msg="expected 2 features, found '{0}' ({1})".format(len(subvol_info["features"]), subvol_info["features"])) - for feature in ['snapshot-clone', 'snapshot-autoprotect']: + self.assertEqual(len(subvol_info["features"]), 3, + msg="expected 3 features, found '{0}' ({1})".format(len(subvol_info["features"]), subvol_info["features"])) + for feature in ['snapshot-clone', 'snapshot-autoprotect', 'snapshot-retention']: self.assertIn(feature, subvol_info["features"], msg="expected feature '{0}' in subvolume".format(feature)) nsize = self.DEFAULT_FILE_SIZE*1024*1024 @@ -878,15 +1136,17 @@ # get subvolume metadata after quota set subvol_info = json.loads(self._get_subvolume_info(self.volname, subvolume)) - self.assertNotEqual(len(subvol_info), 0, "expected the 'fs subvolume info' command to list metadata of subvolume") + for md in subvol_md: + self.assertIn(md, subvol_info, "'{0}' key not present in metadata of subvolume".format(md)) self.assertNotEqual(subvol_info["bytes_pcent"], "undefined", "bytes_pcent should not be set to undefined if quota is not set") - self.assertNotEqual(subvol_info["bytes_quota"], "infinite", "bytes_quota should not be set to infinite if quota is not set") + self.assertEqual(subvol_info["bytes_quota"], nsize, "bytes_quota should be set to '{0}'".format(nsize)) self.assertEqual(subvol_info["type"], "subvolume", "type should be set to subvolume") + self.assertEqual(subvol_info["state"], "complete", "expected state to be complete") - self.assertEqual(len(subvol_info["features"]), 2, - msg="expected 2 features, found '{0}' ({1})".format(len(subvol_info["features"]), subvol_info["features"])) - for feature in ['snapshot-clone', 'snapshot-autoprotect']: + self.assertEqual(len(subvol_info["features"]), 3, + msg="expected 3 features, found '{0}' ({1})".format(len(subvol_info["features"]), subvol_info["features"])) + for feature in ['snapshot-clone', 'snapshot-autoprotect', 'snapshot-retention']: self.assertIn(feature, subvol_info["features"], msg="expected feature '{0}' in subvolume".format(feature)) # remove subvolumes @@ -987,120 +1247,858 @@ self._fs_cmd("subvolumegroup", "rm", self.volname, group1) self._fs_cmd("subvolumegroup", "rm", self.volname, group2) - def test_subvolume_group_create_with_invalid_data_pool_layout(self): - group = self._generate_random_group_name() - data_pool = "invalid_pool" - # create group with invalid data pool layout - try: - self._fs_cmd("subvolumegroup", "create", self.volname, group, "--pool_layout", data_pool) - except CommandFailedError as ce: - if ce.exitstatus != errno.EINVAL: - raise - else: - raise RuntimeError("expected the 'fs subvolumegroup create' command to fail") + ### authorize operations - def test_subvolume_group_rm_force(self): - # test removing non-existing subvolume group with --force + def test_authorize_deauthorize_legacy_subvolume(self): + subvolume = self._generate_random_subvolume_name() group = self._generate_random_group_name() - try: - self._fs_cmd("subvolumegroup", "rm", self.volname, group, "--force") - except CommandFailedError as ce: - raise RuntimeError("expected the 'fs subvolumegroup rm --force' command to succeed") + authid = "alice" - def test_subvolume_group_create_with_auto_cleanup_on_fail(self): - group = self._generate_random_group_name() - data_pool = "invalid_pool" - # create group with invalid data pool layout + guest_mount = self.mount_b + guest_mount.umount_wait() + + # emulate a old-fashioned subvolume in a custom group + createpath = os.path.join(".", "volumes", group, subvolume) + self.mount_a.run_shell(['mkdir', '-p', createpath]) + + # add required xattrs to subvolume + default_pool = self.mount_a.getfattr(".", "ceph.dir.layout.pool") + self.mount_a.setfattr(createpath, 'ceph.dir.layout.pool', default_pool) + + mount_path = os.path.join("/", "volumes", group, subvolume) + + # authorize guest authID read-write access to subvolume + key = self._fs_cmd("subvolume", "authorize", self.volname, subvolume, authid, + "--group_name", group, "--tenant_id", "tenant_id") + + # guest authID should exist + existing_ids = [a['entity'] for a in self.auth_list()] + self.assertIn("client.{0}".format(authid), existing_ids) + + # configure credentials for guest client + self._configure_guest_auth(guest_mount, authid, key) + + # mount the subvolume, and write to it + guest_mount.mount(mount_path=mount_path) + guest_mount.write_n_mb("data.bin", 1) + + # authorize guest authID read access to subvolume + key = self._fs_cmd("subvolume", "authorize", self.volname, subvolume, authid, + "--group_name", group, "--tenant_id", "tenant_id", "--access_level", "r") + + # guest client sees the change in access level to read only after a + # remount of the subvolume. + guest_mount.umount_wait() + guest_mount.mount(mount_path=mount_path) + + # read existing content of the subvolume + self.assertListEqual(guest_mount.ls(guest_mount.mountpoint), ["data.bin"]) + # cannot write into read-only subvolume with self.assertRaises(CommandFailedError): - self._fs_cmd("subvolumegroup", "create", self.volname, group, "--pool_layout", data_pool) + guest_mount.write_n_mb("rogue.bin", 1) - # check whether group path is cleaned up - try: - self._fs_cmd("subvolumegroup", "getpath", self.volname, group) - except CommandFailedError as ce: - if ce.exitstatus != errno.ENOENT: - raise - else: - raise RuntimeError("expected the 'fs subvolumegroup getpath' command to fail") + # cleanup + guest_mount.umount_wait() + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, authid, + "--group_name", group) + # guest authID should no longer exist + existing_ids = [a['entity'] for a in self.auth_list()] + self.assertNotIn("client.{0}".format(authid), existing_ids) + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) - def test_subvolume_create_with_desired_data_pool_layout_in_group(self): - subvol1, subvol2 = self._generate_random_subvolume_name(2) + def test_authorize_deauthorize_subvolume(self): + subvolume = self._generate_random_subvolume_name() group = self._generate_random_group_name() + authid = "alice" - # create group. this also helps set default pool layout for subvolumes - # created within the group. + guest_mount = self.mount_b + guest_mount.umount_wait() + + # create group self._fs_cmd("subvolumegroup", "create", self.volname, group) - # create subvolume in group. - self._fs_cmd("subvolume", "create", self.volname, subvol1, "--group_name", group) - subvol1_path = self._get_subvolume_path(self.volname, subvol1, group_name=group) + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + mount_path = self._fs_cmd("subvolume", "getpath", self.volname, subvolume, + "--group_name", group).rstrip() - default_pool = self.mount_a.getfattr(subvol1_path, "ceph.dir.layout.pool") - new_pool = "new_pool" - self.assertNotEqual(default_pool, new_pool) + # authorize guest authID read-write access to subvolume + key = self._fs_cmd("subvolume", "authorize", self.volname, subvolume, authid, + "--group_name", group, "--tenant_id", "tenant_id") + + # guest authID should exist + existing_ids = [a['entity'] for a in self.auth_list()] + self.assertIn("client.{0}".format(authid), existing_ids) + + # configure credentials for guest client + self._configure_guest_auth(guest_mount, authid, key) + + # mount the subvolume, and write to it + guest_mount.mount(mount_path=mount_path) + guest_mount.write_n_mb("data.bin", 1) + + # authorize guest authID read access to subvolume + key = self._fs_cmd("subvolume", "authorize", self.volname, subvolume, authid, + "--group_name", group, "--tenant_id", "tenant_id", "--access_level", "r") + + # guest client sees the change in access level to read only after a + # remount of the subvolume. + guest_mount.umount_wait() + guest_mount.mount(mount_path=mount_path) + + # read existing content of the subvolume + self.assertListEqual(guest_mount.ls(guest_mount.mountpoint), ["data.bin"]) + # cannot write into read-only subvolume + with self.assertRaises(CommandFailedError): + guest_mount.write_n_mb("rogue.bin", 1) - # add data pool - self.fs.add_data_pool(new_pool) + # cleanup + guest_mount.umount_wait() + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, authid, + "--group_name", group) + # guest authID should no longer exist + existing_ids = [a['entity'] for a in self.auth_list()] + self.assertNotIn("client.{0}".format(authid), existing_ids) + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) - # create subvolume specifying the new data pool as its pool layout - self._fs_cmd("subvolume", "create", self.volname, subvol2, "--group_name", group, - "--pool_layout", new_pool) - subvol2_path = self._get_subvolume_path(self.volname, subvol2, group_name=group) + def test_multitenant_subvolumes(self): + """ + That subvolume access can be restricted to a tenant. - desired_pool = self.mount_a.getfattr(subvol2_path, "ceph.dir.layout.pool") - self.assertEqual(desired_pool, new_pool) + That metadata used to enforce tenant isolation of + subvolumes is stored as a two-way mapping between auth + IDs and subvolumes that they're authorized to access. + """ + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() - self._fs_cmd("subvolume", "rm", self.volname, subvol2, group) - self._fs_cmd("subvolume", "rm", self.volname, subvol1, group) - self._fs_cmd("subvolumegroup", "rm", self.volname, group) + guest_mount = self.mount_b - def test_subvolume_group_create_with_desired_mode(self): - group1, group2 = self._generate_random_group_name(2) - # default mode - expected_mode1 = "755" - # desired mode - expected_mode2 = "777" + # Guest clients belonging to different tenants, but using the same + # auth ID. + auth_id = "alice" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + guestclient_2 = { + "auth_id": auth_id, + "tenant_id": "tenant2", + } # create group - self._fs_cmd("subvolumegroup", "create", self.volname, group1) - self._fs_cmd("subvolumegroup", "create", self.volname, group2, "--mode", "777") + self._fs_cmd("subvolumegroup", "create", self.volname, group) - group1_path = self._get_subvolume_group_path(self.volname, group1) - group2_path = self._get_subvolume_group_path(self.volname, group2) + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) - # check group's mode - actual_mode1 = self.mount_a.run_shell(['stat', '-c' '%a', group1_path]).stdout.getvalue().strip() - actual_mode2 = self.mount_a.run_shell(['stat', '-c' '%a', group2_path]).stdout.getvalue().strip() - self.assertEqual(actual_mode1, expected_mode1) - self.assertEqual(actual_mode2, expected_mode2) + # Check that subvolume metadata file is created on subvolume creation. + subvol_metadata_filename = "_{0}:{1}.meta".format(group, subvolume) + self.assertIn(subvol_metadata_filename, guest_mount.ls("volumes")) + + # Authorize 'guestclient_1', using auth ID 'alice' and belonging to + # 'tenant1', with 'rw' access to the volume. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + # Check that auth metadata file for auth ID 'alice', is + # created on authorizing 'alice' access to the subvolume. + auth_metadata_filename = "${0}.meta".format(guestclient_1["auth_id"]) + self.assertIn(auth_metadata_filename, guest_mount.ls("volumes")) + + # Verify that the auth metadata file stores the tenant ID that the + # auth ID belongs to, the auth ID's authorized access levels + # for different subvolumes, versioning details, etc. + expected_auth_metadata = { + "version": 5, + "compat_version": 6, + "dirty": False, + "tenant_id": "tenant1", + "subvolumes": { + "{0}/{1}".format(group,subvolume): { + "dirty": False, + "access_level": "rw" + } + } + } + + auth_metadata = self._auth_metadata_get(guest_mount.read_file("volumes/{0}".format(auth_metadata_filename))) + self.assertGreaterEqual(auth_metadata["version"], expected_auth_metadata["version"]) + del expected_auth_metadata["version"] + del auth_metadata["version"] + self.assertEqual(expected_auth_metadata, auth_metadata) + + # Verify that the subvolume metadata file stores info about auth IDs + # and their access levels to the subvolume, versioning details, etc. + expected_subvol_metadata = { + "version": 1, + "compat_version": 1, + "auths": { + "alice": { + "dirty": False, + "access_level": "rw" + } + } + } + subvol_metadata = self._auth_metadata_get(guest_mount.read_file("volumes/{0}".format(subvol_metadata_filename))) + + self.assertGreaterEqual(subvol_metadata["version"], expected_subvol_metadata["version"]) + del expected_subvol_metadata["version"] + del subvol_metadata["version"] + self.assertEqual(expected_subvol_metadata, subvol_metadata) + + # Cannot authorize 'guestclient_2' to access the volume. + # It uses auth ID 'alice', which has already been used by a + # 'guestclient_1' belonging to an another tenant for accessing + # the volume. - self._fs_cmd("subvolumegroup", "rm", self.volname, group1) - self._fs_cmd("subvolumegroup", "rm", self.volname, group2) + try: + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, guestclient_2["auth_id"], + "--group_name", group, "--tenant_id", guestclient_2["tenant_id"]) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EPERM, + "Invalid error code returned on authorize of subvolume with same auth_id but different tenant_id") + else: + self.fail("expected the 'fs subvolume authorize' command to fail") - def test_subvolume_group_create_with_desired_uid_gid(self): - """ - That the subvolume group can be created with the desired uid and gid and its uid and gid matches the - expected values. - """ - uid = 1000 - gid = 1000 + # Check that auth metadata file is cleaned up on removing + # auth ID's only access to a volume. - # create subvolume group - subvolgroupname = self._generate_random_group_name() - self._fs_cmd("subvolumegroup", "create", self.volname, subvolgroupname, "--uid", str(uid), "--gid", str(gid)) + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, auth_id, + "--group_name", group) + self.assertNotIn(auth_metadata_filename, guest_mount.ls("volumes")) - # make sure it exists - subvolgrouppath = self._get_subvolume_group_path(self.volname, subvolgroupname) - self.assertNotEqual(subvolgrouppath, None) + # Check that subvolume metadata file is cleaned up on subvolume deletion. + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self.assertNotIn(subvol_metadata_filename, guest_mount.ls("volumes")) - # verify the uid and gid - suid = int(self.mount_a.run_shell(['stat', '-c' '%u', subvolgrouppath]).stdout.getvalue().strip()) - sgid = int(self.mount_a.run_shell(['stat', '-c' '%g', subvolgrouppath]).stdout.getvalue().strip()) - self.assertEqual(uid, suid) - self.assertEqual(gid, sgid) + # clean up + guest_mount.umount_wait() + self._fs_cmd("subvolumegroup", "rm", self.volname, group) - # remove group - self._fs_cmd("subvolumegroup", "rm", self.volname, subvolgroupname) + def test_subvolume_authorized_list(self): + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + authid1 = "alice" + authid2 = "guest1" + authid3 = "guest2" + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # authorize alice authID read-write access to subvolume + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, authid1, + "--group_name", group) + # authorize guest1 authID read-write access to subvolume + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, authid2, + "--group_name", group) + # authorize guest2 authID read access to subvolume + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, authid3, + "--group_name", group, "--access_level", "r") + + # list authorized-ids of the subvolume + expected_auth_list = [{'alice': 'rw'}, {'guest1': 'rw'}, {'guest2': 'r'}] + auth_list = json.loads(self._fs_cmd('subvolume', 'authorized_list', self.volname, subvolume, "--group_name", group)) + self.assertCountEqual(expected_auth_list, auth_list) + + # cleanup + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, authid1, + "--group_name", group) + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, authid2, + "--group_name", group) + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, authid3, + "--group_name", group) + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_authorize_auth_id_not_created_by_mgr_volumes(self): + """ + If the auth_id already exists and is not created by mgr plugin, + it's not allowed to authorize the auth-id by default. + """ + + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + + # Create auth_id + self.fs.mon_manager.raw_cluster_cmd( + "auth", "get-or-create", "client.guest1", + "mds", "allow *", + "osd", "allow rw", + "mon", "allow *" + ) + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + try: + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EPERM, + "Invalid error code returned on authorize of subvolume for auth_id created out of band") + else: + self.fail("expected the 'fs subvolume authorize' command to fail") + + # clean up + self.fs.mon_manager.raw_cluster_cmd("auth", "rm", "client.guest1") + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_authorize_allow_existing_id_option(self): + """ + If the auth_id already exists and is not created by mgr volumes, + it's not allowed to authorize the auth-id by default but is + allowed with option allow_existing_id. + """ + + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + + # Create auth_id + self.fs.mon_manager.raw_cluster_cmd( + "auth", "get-or-create", "client.guest1", + "mds", "allow *", + "osd", "allow rw", + "mon", "allow *" + ) + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # Cannot authorize 'guestclient_1' to access the volume by default, + # which already exists and not created by mgr volumes but is allowed + # with option 'allow_existing_id'. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"], "--allow-existing-id") + + # clean up + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, auth_id, + "--group_name", group) + self.fs.mon_manager.raw_cluster_cmd("auth", "rm", "client.guest1") + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_deauthorize_auth_id_after_out_of_band_update(self): + """ + If the auth_id authorized by mgr/volumes plugin is updated + out of band, the auth_id should not be deleted after a + deauthorize. It should only remove caps associated with it. + """ + + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # Authorize 'guestclient_1' to access the subvolume. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + subvol_path = self._fs_cmd("subvolume", "getpath", self.volname, subvolume, + "--group_name", group).rstrip() + + # Update caps for guestclient_1 out of band + out = self.fs.mon_manager.raw_cluster_cmd( + "auth", "caps", "client.guest1", + "mds", "allow rw path=/volumes/{0}, allow rw path={1}".format(group, subvol_path), + "osd", "allow rw pool=cephfs_data", + "mon", "allow r", + "mgr", "allow *" + ) + + # Deauthorize guestclient_1 + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, auth_id, "--group_name", group) + + # Validate the caps of guestclient_1 after deauthorize. It should not have deleted + # guestclient_1. The mgr and mds caps should be present which was updated out of band. + out = json.loads(self.fs.mon_manager.raw_cluster_cmd("auth", "get", "client.guest1", "--format=json-pretty")) + + self.assertEqual("client.guest1", out[0]["entity"]) + self.assertEqual("allow rw path=/volumes/{0}".format(group), out[0]["caps"]["mds"]) + self.assertEqual("allow *", out[0]["caps"]["mgr"]) + self.assertNotIn("osd", out[0]["caps"]) + + # clean up + out = self.fs.mon_manager.raw_cluster_cmd("auth", "rm", "client.guest1") + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_recover_auth_metadata_during_authorize(self): + """ + That auth metadata manager can recover from partial auth updates using + metadata files, which store auth info and its update status info. This + test validates the recovery during authorize. + """ + + guest_mount = self.mount_b + + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # Authorize 'guestclient_1' to access the subvolume. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + # Check that auth metadata file for auth ID 'guest1', is + # created on authorizing 'guest1' access to the subvolume. + auth_metadata_filename = "${0}.meta".format(guestclient_1["auth_id"]) + self.assertIn(auth_metadata_filename, guest_mount.ls("volumes")) + expected_auth_metadata_content = self._auth_metadata_get(self.mount_a.read_file("volumes/{0}".format(auth_metadata_filename))) + + # Induce partial auth update state by modifying the auth metadata file, + # and then run authorize again. + guest_mount.run_shell(['sed', '-i', 's/false/true/g', 'volumes/{0}'.format(auth_metadata_filename)]) + + # Authorize 'guestclient_1' to access the subvolume. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + auth_metadata_content = self._auth_metadata_get(self.mount_a.read_file("volumes/{0}".format(auth_metadata_filename))) + self.assertEqual(auth_metadata_content, expected_auth_metadata_content) + + # clean up + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume, auth_id, "--group_name", group) + guest_mount.umount_wait() + self.fs.mon_manager.raw_cluster_cmd("auth", "rm", "client.guest1") + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_recover_auth_metadata_during_deauthorize(self): + """ + That auth metadata manager can recover from partial auth updates using + metadata files, which store auth info and its update status info. This + test validates the recovery during deauthorize. + """ + + guest_mount = self.mount_b + + subvolume1, subvolume2 = self._generate_random_subvolume_name(2) + group = self._generate_random_group_name() + + guestclient_1 = { + "auth_id": "guest1", + "tenant_id": "tenant1", + } + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolumes in group + self._fs_cmd("subvolume", "create", self.volname, subvolume1, "--group_name", group) + self._fs_cmd("subvolume", "create", self.volname, subvolume2, "--group_name", group) + + # Authorize 'guestclient_1' to access the subvolume1. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume1, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + # Check that auth metadata file for auth ID 'guest1', is + # created on authorizing 'guest1' access to the subvolume1. + auth_metadata_filename = "${0}.meta".format(guestclient_1["auth_id"]) + self.assertIn(auth_metadata_filename, guest_mount.ls("volumes")) + expected_auth_metadata_content = self._auth_metadata_get(self.mount_a.read_file("volumes/{0}".format(auth_metadata_filename))) + + # Authorize 'guestclient_1' to access the subvolume2. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume2, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + # Induce partial auth update state by modifying the auth metadata file, + # and then run de-authorize. + guest_mount.run_shell(['sed', '-i', 's/false/true/g', 'volumes/{0}'.format(auth_metadata_filename)]) + + # Deauthorize 'guestclient_1' to access the subvolume2. + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume2, guestclient_1["auth_id"], + "--group_name", group) + + auth_metadata_content = self._auth_metadata_get(self.mount_a.read_file("volumes/{0}".format(auth_metadata_filename))) + self.assertEqual(auth_metadata_content, expected_auth_metadata_content) + + # clean up + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume1, "guest1", "--group_name", group) + guest_mount.umount_wait() + self.fs.mon_manager.raw_cluster_cmd("auth", "rm", "client.guest1") + self._fs_cmd("subvolume", "rm", self.volname, subvolume1, "--group_name", group) + self._fs_cmd("subvolume", "rm", self.volname, subvolume2, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_update_old_style_auth_metadata_to_new_during_authorize(self): + """ + CephVolumeClient stores the subvolume data in auth metadata file with + 'volumes' key as there was no subvolume namespace. It doesn't makes sense + with mgr/volumes. This test validates the transparent update of 'volumes' + key to 'subvolumes' key in auth metadata file during authorize. + """ + + guest_mount = self.mount_b + + subvolume1, subvolume2 = self._generate_random_subvolume_name(2) + group = self._generate_random_group_name() + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolumes in group + self._fs_cmd("subvolume", "create", self.volname, subvolume1, "--group_name", group) + self._fs_cmd("subvolume", "create", self.volname, subvolume2, "--group_name", group) + + # Authorize 'guestclient_1' to access the subvolume1. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume1, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + # Check that auth metadata file for auth ID 'guest1', is + # created on authorizing 'guest1' access to the subvolume1. + auth_metadata_filename = "${0}.meta".format(guestclient_1["auth_id"]) + self.assertIn(auth_metadata_filename, guest_mount.ls("volumes")) + + # Replace 'subvolumes' to 'volumes', old style auth-metadata file + guest_mount.run_shell(['sed', '-i', 's/subvolumes/volumes/g', 'volumes/{0}'.format(auth_metadata_filename)]) + + # Authorize 'guestclient_1' to access the subvolume2. This should transparently update 'volumes' to 'subvolumes' + self._fs_cmd("subvolume", "authorize", self.volname, subvolume2, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + expected_auth_metadata = { + "version": 5, + "compat_version": 6, + "dirty": False, + "tenant_id": "tenant1", + "subvolumes": { + "{0}/{1}".format(group,subvolume1): { + "dirty": False, + "access_level": "rw" + }, + "{0}/{1}".format(group,subvolume2): { + "dirty": False, + "access_level": "rw" + } + } + } + + auth_metadata = self._auth_metadata_get(guest_mount.read_file("volumes/{0}".format(auth_metadata_filename))) + + self.assertGreaterEqual(auth_metadata["version"], expected_auth_metadata["version"]) + del expected_auth_metadata["version"] + del auth_metadata["version"] + self.assertEqual(expected_auth_metadata, auth_metadata) + + # clean up + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume1, auth_id, "--group_name", group) + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume2, auth_id, "--group_name", group) + guest_mount.umount_wait() + self.fs.mon_manager.raw_cluster_cmd("auth", "rm", "client.guest1") + self._fs_cmd("subvolume", "rm", self.volname, subvolume1, "--group_name", group) + self._fs_cmd("subvolume", "rm", self.volname, subvolume2, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_update_old_style_auth_metadata_to_new_during_deauthorize(self): + """ + CephVolumeClient stores the subvolume data in auth metadata file with + 'volumes' key as there was no subvolume namespace. It doesn't makes sense + with mgr/volumes. This test validates the transparent update of 'volumes' + key to 'subvolumes' key in auth metadata file during deauthorize. + """ + + guest_mount = self.mount_b + + subvolume1, subvolume2 = self._generate_random_subvolume_name(2) + group = self._generate_random_group_name() + + auth_id = "guest1" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolumes in group + self._fs_cmd("subvolume", "create", self.volname, subvolume1, "--group_name", group) + self._fs_cmd("subvolume", "create", self.volname, subvolume2, "--group_name", group) + + # Authorize 'guestclient_1' to access the subvolume1. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume1, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + # Authorize 'guestclient_1' to access the subvolume2. + self._fs_cmd("subvolume", "authorize", self.volname, subvolume2, guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + # Check that auth metadata file for auth ID 'guest1', is created. + auth_metadata_filename = "${0}.meta".format(guestclient_1["auth_id"]) + self.assertIn(auth_metadata_filename, guest_mount.ls("volumes")) + + # Replace 'subvolumes' to 'volumes', old style auth-metadata file + guest_mount.run_shell(['sed', '-i', 's/subvolumes/volumes/g', 'volumes/{0}'.format(auth_metadata_filename)]) + + # Deauthorize 'guestclient_1' to access the subvolume2. This should update 'volumes' to subvolumes' + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume2, auth_id, "--group_name", group) + + expected_auth_metadata = { + "version": 5, + "compat_version": 6, + "dirty": False, + "tenant_id": "tenant1", + "subvolumes": { + "{0}/{1}".format(group,subvolume1): { + "dirty": False, + "access_level": "rw" + } + } + } + + auth_metadata = self._auth_metadata_get(guest_mount.read_file("volumes/{0}".format(auth_metadata_filename))) + + self.assertGreaterEqual(auth_metadata["version"], expected_auth_metadata["version"]) + del expected_auth_metadata["version"] + del auth_metadata["version"] + self.assertEqual(expected_auth_metadata, auth_metadata) + + # clean up + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolume1, auth_id, "--group_name", group) + guest_mount.umount_wait() + self.fs.mon_manager.raw_cluster_cmd("auth", "rm", "client.guest1") + self._fs_cmd("subvolume", "rm", self.volname, subvolume1, "--group_name", group) + self._fs_cmd("subvolume", "rm", self.volname, subvolume2, "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_subvolume_evict_client(self): + """ + That a subvolume client can be evicted based on the auth ID + """ + + subvolumes = self._generate_random_subvolume_name(2) + group = self._generate_random_group_name() + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # mounts[0] and mounts[1] would be used as guests to mount the volumes/shares. + for i in range(0, 2): + self.mounts[i].umount_wait() + guest_mounts = (self.mounts[0], self.mounts[1]) + auth_id = "guest" + guestclient_1 = { + "auth_id": auth_id, + "tenant_id": "tenant1", + } + + # Create two subvolumes. Authorize 'guest' auth ID to mount the two + # subvolumes. Mount the two subvolumes. Write data to the volumes. + for i in range(2): + # Create subvolume. + self._fs_cmd("subvolume", "create", self.volname, subvolumes[i], "--group_name", group) + + # authorize guest authID read-write access to subvolume + key = self._fs_cmd("subvolume", "authorize", self.volname, subvolumes[i], guestclient_1["auth_id"], + "--group_name", group, "--tenant_id", guestclient_1["tenant_id"]) + + mount_path = self._fs_cmd("subvolume", "getpath", self.volname, subvolumes[i], + "--group_name", group).rstrip() + # configure credentials for guest client + self._configure_guest_auth(guest_mounts[i], auth_id, key) + + # mount the subvolume, and write to it + guest_mounts[i].mount(mount_path=mount_path) + guest_mounts[i].write_n_mb("data.bin", 1) + + # Evict client, guest_mounts[0], using auth ID 'guest' and has mounted + # one volume. + self._fs_cmd("subvolume", "evict", self.volname, subvolumes[0], auth_id, "--group_name", group) + + # Evicted guest client, guest_mounts[0], should not be able to do + # anymore metadata ops. It should start failing all operations + # when it sees that its own address is in the blocklist. + try: + guest_mounts[0].write_n_mb("rogue.bin", 1) + except CommandFailedError: + pass + else: + raise RuntimeError("post-eviction write should have failed!") + + # The blocklisted guest client should now be unmountable + guest_mounts[0].umount_wait() + + # Guest client, guest_mounts[1], using the same auth ID 'guest', but + # has mounted the other volume, should be able to use its volume + # unaffected. + guest_mounts[1].write_n_mb("data.bin.1", 1) + + # Cleanup. + guest_mounts[1].umount_wait() + for i in range(2): + self._fs_cmd("subvolume", "deauthorize", self.volname, subvolumes[i], auth_id, "--group_name", group) + self._fs_cmd("subvolume", "rm", self.volname, subvolumes[i], "--group_name", group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_subvolume_group_create_with_invalid_data_pool_layout(self): + group = self._generate_random_group_name() + data_pool = "invalid_pool" + # create group with invalid data pool layout + try: + self._fs_cmd("subvolumegroup", "create", self.volname, group, "--pool_layout", data_pool) + except CommandFailedError as ce: + if ce.exitstatus != errno.EINVAL: + raise + else: + raise RuntimeError("expected the 'fs subvolumegroup create' command to fail") + + def test_subvolume_group_rm_force(self): + # test removing non-existing subvolume group with --force + group = self._generate_random_group_name() + try: + self._fs_cmd("subvolumegroup", "rm", self.volname, group, "--force") + except CommandFailedError as ce: + raise RuntimeError("expected the 'fs subvolumegroup rm --force' command to succeed") + + def test_subvolume_group_create_with_auto_cleanup_on_fail(self): + group = self._generate_random_group_name() + data_pool = "invalid_pool" + # create group with invalid data pool layout + with self.assertRaises(CommandFailedError): + self._fs_cmd("subvolumegroup", "create", self.volname, group, "--pool_layout", data_pool) + + # check whether group path is cleaned up + try: + self._fs_cmd("subvolumegroup", "getpath", self.volname, group) + except CommandFailedError as ce: + if ce.exitstatus != errno.ENOENT: + raise + else: + raise RuntimeError("expected the 'fs subvolumegroup getpath' command to fail") + + def test_subvolume_create_with_desired_data_pool_layout_in_group(self): + subvol1, subvol2 = self._generate_random_subvolume_name(2) + group = self._generate_random_group_name() + + # create group. this also helps set default pool layout for subvolumes + # created within the group. + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group. + self._fs_cmd("subvolume", "create", self.volname, subvol1, "--group_name", group) + subvol1_path = self._get_subvolume_path(self.volname, subvol1, group_name=group) + + default_pool = self.mount_a.getfattr(subvol1_path, "ceph.dir.layout.pool") + new_pool = "new_pool" + self.assertNotEqual(default_pool, new_pool) + + # add data pool + self.fs.add_data_pool(new_pool) + + # create subvolume specifying the new data pool as its pool layout + self._fs_cmd("subvolume", "create", self.volname, subvol2, "--group_name", group, + "--pool_layout", new_pool) + subvol2_path = self._get_subvolume_path(self.volname, subvol2, group_name=group) + + desired_pool = self.mount_a.getfattr(subvol2_path, "ceph.dir.layout.pool") + self.assertEqual(desired_pool, new_pool) + + self._fs_cmd("subvolume", "rm", self.volname, subvol2, group) + self._fs_cmd("subvolume", "rm", self.volname, subvol1, group) + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_group_create_with_desired_mode(self): + group1, group2 = self._generate_random_group_name(2) + # default mode + expected_mode1 = "755" + # desired mode + expected_mode2 = "777" + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group1) + self._fs_cmd("subvolumegroup", "create", self.volname, group2, "--mode", "777") + + group1_path = self._get_subvolume_group_path(self.volname, group1) + group2_path = self._get_subvolume_group_path(self.volname, group2) + + # check group's mode + actual_mode1 = self.mount_a.run_shell(['stat', '-c' '%a', group1_path]).stdout.getvalue().strip() + actual_mode2 = self.mount_a.run_shell(['stat', '-c' '%a', group2_path]).stdout.getvalue().strip() + self.assertEqual(actual_mode1, expected_mode1) + self.assertEqual(actual_mode2, expected_mode2) + + self._fs_cmd("subvolumegroup", "rm", self.volname, group1) + self._fs_cmd("subvolumegroup", "rm", self.volname, group2) + + def test_subvolume_group_create_with_desired_uid_gid(self): + """ + That the subvolume group can be created with the desired uid and gid and its uid and gid matches the + expected values. + """ + uid = 1000 + gid = 1000 + + # create subvolume group + subvolgroupname = self._generate_random_group_name() + self._fs_cmd("subvolumegroup", "create", self.volname, subvolgroupname, "--uid", str(uid), "--gid", str(gid)) + + # make sure it exists + subvolgrouppath = self._get_subvolume_group_path(self.volname, subvolgroupname) + self.assertNotEqual(subvolgrouppath, None) + + # verify the uid and gid + suid = int(self.mount_a.run_shell(['stat', '-c' '%u', subvolgrouppath]).stdout.getvalue().strip()) + sgid = int(self.mount_a.run_shell(['stat', '-c' '%g', subvolgrouppath]).stdout.getvalue().strip()) + self.assertEqual(uid, suid) + self.assertEqual(gid, sgid) + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, subvolgroupname) def test_subvolume_create_with_desired_mode_in_group(self): subvol1, subvol2, subvol3 = self._generate_random_subvolume_name(3) @@ -1137,6 +2135,9 @@ self._fs_cmd("subvolume", "rm", self.volname, subvol3, group) self._fs_cmd("subvolumegroup", "rm", self.volname, group) + # verify trash dir is clean + self._wait_for_trash_empty() + def test_subvolume_create_with_desired_uid_gid(self): """ That the subvolume can be created with the desired uid and gid and its uid and gid matches the @@ -1162,6 +2163,9 @@ # remove subvolume self._fs_cmd("subvolume", "rm", self.volname, subvolname) + # verify trash dir is clean + self._wait_for_trash_empty() + def test_nonexistent_subvolume_group_rm(self): group = "non_existent_group" @@ -1245,10 +2249,10 @@ tests the 'fs subvolume snapshot info' command """ - snap_metadata = ["created_at", "data_pool", "has_pending_clones", "size"] + snap_md = ["created_at", "data_pool", "has_pending_clones", "size"] subvolume = self._generate_random_subvolume_name() - snapshot = self._generate_random_snapshot_name() + snapshot, snap_missing = self._generate_random_snapshot_name(2) # create subvolume self._fs_cmd("subvolume", "create", self.volname, subvolume) @@ -1260,15 +2264,21 @@ self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) snap_info = json.loads(self._get_subvolume_snapshot_info(self.volname, subvolume, snapshot)) - self.assertNotEqual(len(snap_info), 0) - for md in snap_metadata: - if md not in snap_info: - raise RuntimeError("%s not present in the metadata of subvolume snapshot" % md) + for md in snap_md: + self.assertIn(md, snap_info, "'{0}' key not present in metadata of snapshot".format(md)) self.assertEqual(snap_info["has_pending_clones"], "no") - # remove snapshot - self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - + # snapshot info for non-existent snapshot + try: + self._get_subvolume_snapshot_info(self.volname, subvolume, snap_missing) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on snapshot info of non-existent snapshot") + else: + self.fail("expected snapshot info of non-existent snapshot to fail") + + # remove snapshot + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + # remove subvolume self._fs_cmd("subvolume", "rm", self.volname, subvolume) @@ -1378,12 +2388,41 @@ subvolsnapshotls = json.loads(self._fs_cmd('subvolume', 'snapshot', 'ls', self.volname, subvolume)) if len(subvolsnapshotls) == 0: - raise RuntimeError("Expected the 'fs subvolume snapshot ls' command to list the created subvolume snapshots") + self.fail("Expected the 'fs subvolume snapshot ls' command to list the created subvolume snapshots") else: snapshotnames = [snapshot['name'] for snapshot in subvolsnapshotls] if collections.Counter(snapshotnames) != collections.Counter(snapshots): - raise RuntimeError("Error creating or listing subvolume snapshots") + self.fail("Error creating or listing subvolume snapshots") + + # remove snapshot + for snapshot in snapshots: + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_group_snapshot_unsupported_status(self): + group = self._generate_random_group_name() + snapshot = self._generate_random_snapshot_name() + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # snapshot group + try: + self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOSYS, "invalid error code on subvolumegroup snapshot create") + else: + self.fail("expected subvolumegroup snapshot create command to fail") + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + @unittest.skip("skipping subvolumegroup snapshot tests") def test_subvolume_group_snapshot_create_and_rm(self): subvolume = self._generate_random_subvolume_name() group = self._generate_random_group_name() @@ -1410,6 +2449,7 @@ # remove group self._fs_cmd("subvolumegroup", "rm", self.volname, group) + @unittest.skip("skipping subvolumegroup snapshot tests") def test_subvolume_group_snapshot_idempotence(self): subvolume = self._generate_random_subvolume_name() group = self._generate_random_group_name() @@ -1418,178 +2458,1117 @@ # create group self._fs_cmd("subvolumegroup", "create", self.volname, group) - # create subvolume in group - self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # snapshot group + self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + + # try creating snapshot w/ same snapshot name -- shoule be idempotent + self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + + # remove snapshot + self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + @unittest.skip("skipping subvolumegroup snapshot tests") + def test_nonexistent_subvolume_group_snapshot_rm(self): + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + snapshot = self._generate_random_snapshot_name() + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # snapshot group + self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + + # remove snapshot + self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot) + + # remove snapshot + try: + self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot) + except CommandFailedError as ce: + if ce.exitstatus != errno.ENOENT: + raise + else: + raise RuntimeError("expected the 'fs subvolumegroup snapshot rm' command to fail") + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + @unittest.skip("skipping subvolumegroup snapshot tests") + def test_subvolume_group_snapshot_rm_force(self): + # test removing non-existing subvolume group snapshot with --force + group = self._generate_random_group_name() + snapshot = self._generate_random_snapshot_name() + # remove snapshot + try: + self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot, "--force") + except CommandFailedError as ce: + raise RuntimeError("expected the 'fs subvolumegroup snapshot rm --force' command to succeed") + + @unittest.skip("skipping subvolumegroup snapshot tests") + def test_subvolume_group_snapshot_ls(self): + # tests the 'fs subvolumegroup snapshot ls' command + + snapshots = [] + + # create group + group = self._generate_random_group_name() + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolumegroup snapshots + snapshots = self._generate_random_snapshot_name(3) + for snapshot in snapshots: + self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + + subvolgrpsnapshotls = json.loads(self._fs_cmd('subvolumegroup', 'snapshot', 'ls', self.volname, group)) + if len(subvolgrpsnapshotls) == 0: + raise RuntimeError("Expected the 'fs subvolumegroup snapshot ls' command to list the created subvolume group snapshots") + else: + snapshotnames = [snapshot['name'] for snapshot in subvolgrpsnapshotls] + if collections.Counter(snapshotnames) != collections.Counter(snapshots): + raise RuntimeError("Error creating or listing subvolume group snapshots") + + def test_async_subvolume_rm(self): + subvolumes = self._generate_random_subvolume_name(100) + + # create subvolumes + for subvolume in subvolumes: + self._fs_cmd("subvolume", "create", self.volname, subvolume) + self._do_subvolume_io(subvolume, number_of_files=10) + + self.mount_a.umount_wait() + + # remove subvolumes + for subvolume in subvolumes: + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + + self.mount_a.mount() + + # verify trash dir is clean + self._wait_for_trash_empty(timeout=300) + + def test_subvolume_inherited_snapshot_ls(self): + # tests the scenario where 'fs subvolume snapshot ls' command + # should not list inherited snapshots created as part of snapshot + # at ancestral level + + snapshots = [] + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + snap_count = 3 + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # create subvolume snapshots + snapshots = self._generate_random_snapshot_name(snap_count) + for snapshot in snapshots: + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot, group) + + # Create snapshot at ancestral level + ancestral_snappath1 = os.path.join(".", "volumes", group, ".snap", "ancestral_snap_1") + ancestral_snappath2 = os.path.join(".", "volumes", group, ".snap", "ancestral_snap_2") + self.mount_a.run_shell(['mkdir', '-p', ancestral_snappath1, ancestral_snappath2]) + + subvolsnapshotls = json.loads(self._fs_cmd('subvolume', 'snapshot', 'ls', self.volname, subvolume, group)) + self.assertEqual(len(subvolsnapshotls), snap_count) + + # remove ancestral snapshots + self.mount_a.run_shell(['rmdir', ancestral_snappath1, ancestral_snappath2]) + + # remove snapshot + for snapshot in snapshots: + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot, group) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_subvolume_inherited_snapshot_info(self): + """ + tests the scenario where 'fs subvolume snapshot info' command + should fail for inherited snapshots created as part of snapshot + at ancestral level + """ + + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # Create snapshot at ancestral level + ancestral_snap_name = "ancestral_snap_1" + ancestral_snappath1 = os.path.join(".", "volumes", group, ".snap", ancestral_snap_name) + self.mount_a.run_shell(['mkdir', '-p', ancestral_snappath1]) + + # Validate existence of inherited snapshot + group_path = os.path.join(".", "volumes", group) + inode_number_group_dir = int(self.mount_a.run_shell(['stat', '-c' '%i', group_path]).stdout.getvalue().strip()) + inherited_snap = "_{0}_{1}".format(ancestral_snap_name, inode_number_group_dir) + inherited_snappath = os.path.join(".", "volumes", group, subvolume,".snap", inherited_snap) + self.mount_a.run_shell(['ls', inherited_snappath]) + + # snapshot info on inherited snapshot + try: + self._get_subvolume_snapshot_info(self.volname, subvolume, inherited_snap, group) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EINVAL, "invalid error code on snapshot info of inherited snapshot") + else: + self.fail("expected snapshot info of inherited snapshot to fail") + + # remove ancestral snapshots + self.mount_a.run_shell(['rmdir', ancestral_snappath1]) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--group_name", group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_subvolume_inherited_snapshot_rm(self): + """ + tests the scenario where 'fs subvolume snapshot rm' command + should fail for inherited snapshots created as part of snapshot + at ancestral level + """ + + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # Create snapshot at ancestral level + ancestral_snap_name = "ancestral_snap_1" + ancestral_snappath1 = os.path.join(".", "volumes", group, ".snap", ancestral_snap_name) + self.mount_a.run_shell(['mkdir', '-p', ancestral_snappath1]) + + # Validate existence of inherited snap + group_path = os.path.join(".", "volumes", group) + inode_number_group_dir = int(self.mount_a.run_shell(['stat', '-c' '%i', group_path]).stdout.getvalue().strip()) + inherited_snap = "_{0}_{1}".format(ancestral_snap_name, inode_number_group_dir) + inherited_snappath = os.path.join(".", "volumes", group, subvolume,".snap", inherited_snap) + self.mount_a.run_shell(['ls', inherited_snappath]) + + # inherited snapshot should not be deletable + try: + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, inherited_snap, "--group_name", group) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EINVAL, msg="invalid error code when removing inherited snapshot") + else: + self.fail("expected removing inheirted snapshot to fail") + + # remove ancestral snapshots + self.mount_a.run_shell(['rmdir', ancestral_snappath1]) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_subvolume_subvolumegroup_snapshot_name_conflict(self): + """ + tests the scenario where creation of subvolume snapshot name + with same name as it's subvolumegroup snapshot name. This should + fail. + """ + + subvolume = self._generate_random_subvolume_name() + group = self._generate_random_group_name() + group_snapshot = self._generate_random_snapshot_name() + + # create group + self._fs_cmd("subvolumegroup", "create", self.volname, group) + + # create subvolume in group + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + + # Create subvolumegroup snapshot + group_snapshot_path = os.path.join(".", "volumes", group, ".snap", group_snapshot) + self.mount_a.run_shell(['mkdir', '-p', group_snapshot_path]) + + # Validate existence of subvolumegroup snapshot + self.mount_a.run_shell(['ls', group_snapshot_path]) + + # Creation of subvolume snapshot with it's subvolumegroup snapshot name should fail + try: + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, group_snapshot, "--group_name", group) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EINVAL, msg="invalid error code when creating subvolume snapshot with same name as subvolume group snapshot") + else: + self.fail("expected subvolume snapshot creation with same name as subvolumegroup snapshot to fail") + + # remove subvolumegroup snapshot + self.mount_a.run_shell(['rmdir', group_snapshot_path]) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_subvolume_upgrade_legacy_to_v1(self): + """ + poor man's upgrade test -- rather than going through a full upgrade cycle, + emulate subvolumes by going through the wormhole and verify if they are + accessible. + further ensure that a legacy volume is not updated to v2. + """ + subvolume1, subvolume2 = self._generate_random_subvolume_name(2) + group = self._generate_random_group_name() + + # emulate a old-fashioned subvolume -- one in the default group and + # the other in a custom group + createpath1 = os.path.join(".", "volumes", "_nogroup", subvolume1) + self.mount_a.run_shell(['mkdir', '-p', createpath1]) + + # create group + createpath2 = os.path.join(".", "volumes", group, subvolume2) + self.mount_a.run_shell(['mkdir', '-p', createpath2]) + + # this would auto-upgrade on access without anyone noticing + subvolpath1 = self._fs_cmd("subvolume", "getpath", self.volname, subvolume1) + self.assertNotEqual(subvolpath1, None) + subvolpath1 = subvolpath1.rstrip() # remove "/" prefix and any trailing newline + + subvolpath2 = self._fs_cmd("subvolume", "getpath", self.volname, subvolume2, group) + self.assertNotEqual(subvolpath2, None) + subvolpath2 = subvolpath2.rstrip() # remove "/" prefix and any trailing newline + + # and... the subvolume path returned should be what we created behind the scene + self.assertEqual(createpath1[1:], subvolpath1) + self.assertEqual(createpath2[1:], subvolpath2) + + # ensure metadata file is in legacy location, with required version v1 + self._assert_meta_location_and_version(self.volname, subvolume1, version=1, legacy=True) + self._assert_meta_location_and_version(self.volname, subvolume2, subvol_group=group, version=1, legacy=True) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume1) + self._fs_cmd("subvolume", "rm", self.volname, subvolume2, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + # remove group + self._fs_cmd("subvolumegroup", "rm", self.volname, group) + + def test_subvolume_no_upgrade_v1_sanity(self): + """ + poor man's upgrade test -- theme continues... + + This test is to ensure v1 subvolumes are retained as is, due to a snapshot being present, and runs through + a series of operations on the v1 subvolume to ensure they work as expected. + """ + subvol_md = ["atime", "bytes_pcent", "bytes_quota", "bytes_used", "created_at", "ctime", + "data_pool", "gid", "mode", "mon_addrs", "mtime", "path", "pool_namespace", + "type", "uid", "features", "state"] + snap_md = ["created_at", "data_pool", "has_pending_clones", "size"] + + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + clone1, clone2 = self._generate_random_clone_name(2) + mode = "777" + uid = "1000" + gid = "1000" + + # emulate a v1 subvolume -- in the default group + subvolume_path = self._create_v1_subvolume(subvolume) + + # getpath + subvolpath = self._get_subvolume_path(self.volname, subvolume) + self.assertEqual(subvolpath, subvolume_path) + + # ls + subvolumes = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumes), 1, "subvolume ls count mismatch, expected '1', found {0}".format(len(subvolumes))) + self.assertEqual(subvolumes[0]['name'], subvolume, + "subvolume name mismatch in ls output, expected '{0}', found '{1}'".format(subvolume, subvolumes[0]['name'])) + + # info + subvol_info = json.loads(self._get_subvolume_info(self.volname, subvolume)) + for md in subvol_md: + self.assertIn(md, subvol_info, "'{0}' key not present in metadata of subvolume".format(md)) + + self.assertEqual(subvol_info["state"], "complete", + msg="expected state to be 'complete', found '{0}".format(subvol_info["state"])) + self.assertEqual(len(subvol_info["features"]), 2, + msg="expected 1 feature, found '{0}' ({1})".format(len(subvol_info["features"]), subvol_info["features"])) + for feature in ['snapshot-clone', 'snapshot-autoprotect']: + self.assertIn(feature, subvol_info["features"], msg="expected feature '{0}' in subvolume".format(feature)) + + # resize + nsize = self.DEFAULT_FILE_SIZE*1024*1024*10 + self._fs_cmd("subvolume", "resize", self.volname, subvolume, str(nsize)) + subvol_info = json.loads(self._get_subvolume_info(self.volname, subvolume)) + for md in subvol_md: + self.assertIn(md, subvol_info, "'{0}' key not present in metadata of subvolume".format(md)) + self.assertEqual(subvol_info["bytes_quota"], nsize, "bytes_quota should be set to '{0}'".format(nsize)) + + # create (idempotent) (change some attrs, to ensure attrs are preserved from the snapshot on clone) + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--mode", mode, "--uid", uid, "--gid", gid) + + # do some IO + self._do_subvolume_io(subvolume, number_of_files=8) + + # snap-create + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # clone + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone1) + + # check clone status + self._wait_for_clone_to_complete(clone1) + + # ensure clone is v2 + self._assert_meta_location_and_version(self.volname, clone1, version=2) + + # verify clone + self._verify_clone(subvolume, snapshot, clone1, source_version=1) + + # clone (older snapshot) + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, 'fake', clone2) + + # check clone status + self._wait_for_clone_to_complete(clone2) + + # ensure clone is v2 + self._assert_meta_location_and_version(self.volname, clone2, version=2) + + # verify clone + # TODO: rentries will mismatch till this is fixed https://tracker.ceph.com/issues/46747 + #self._verify_clone(subvolume, 'fake', clone2, source_version=1) + + # snap-info + snap_info = json.loads(self._get_subvolume_snapshot_info(self.volname, subvolume, snapshot)) + for md in snap_md: + self.assertIn(md, snap_info, "'{0}' key not present in metadata of snapshot".format(md)) + self.assertEqual(snap_info["has_pending_clones"], "no") + + # snap-ls + subvol_snapshots = json.loads(self._fs_cmd('subvolume', 'snapshot', 'ls', self.volname, subvolume)) + self.assertEqual(len(subvol_snapshots), 2, "subvolume ls count mismatch, expected 2', found {0}".format(len(subvol_snapshots))) + snapshotnames = [snapshot['name'] for snapshot in subvol_snapshots] + for name in [snapshot, 'fake']: + self.assertIn(name, snapshotnames, msg="expected snapshot '{0}' in subvolume snapshot ls".format(name)) + + # snap-rm + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, "fake") + + # ensure volume is still at version 1 + self._assert_meta_location_and_version(self.volname, subvolume, version=1) + + # rm + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + self._fs_cmd("subvolume", "rm", self.volname, clone1) + self._fs_cmd("subvolume", "rm", self.volname, clone2) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_no_upgrade_v1_to_v2(self): + """ + poor man's upgrade test -- theme continues... + ensure v1 to v2 upgrades are not done automatically due to various states of v1 + """ + subvolume1, subvolume2, subvolume3 = self._generate_random_subvolume_name(3) + group = self._generate_random_group_name() + + # emulate a v1 subvolume -- in the default group + subvol1_path = self._create_v1_subvolume(subvolume1) + + # emulate a v1 subvolume -- in a custom group + subvol2_path = self._create_v1_subvolume(subvolume2, subvol_group=group) + + # emulate a v1 subvolume -- in a clone pending state + self._create_v1_subvolume(subvolume3, subvol_type='clone', has_snapshot=False, state='pending') + + # this would attempt auto-upgrade on access, but fail to do so as snapshots exist + subvolpath1 = self._get_subvolume_path(self.volname, subvolume1) + self.assertEqual(subvolpath1, subvol1_path) + + subvolpath2 = self._get_subvolume_path(self.volname, subvolume2, group_name=group) + self.assertEqual(subvolpath2, subvol2_path) + + # this would attempt auto-upgrade on access, but fail to do so as volume is not complete + # use clone status, as only certain operations are allowed in pending state + status = json.loads(self._fs_cmd("clone", "status", self.volname, subvolume3)) + self.assertEqual(status["status"]["state"], "pending") + + # remove snapshot + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume1, "fake") + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume2, "fake", group) + + # ensure metadata file is in v1 location, with version retained as v1 + self._assert_meta_location_and_version(self.volname, subvolume1, version=1) + self._assert_meta_location_and_version(self.volname, subvolume2, subvol_group=group, version=1) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume1) + self._fs_cmd("subvolume", "rm", self.volname, subvolume2, group) + try: + self._fs_cmd("subvolume", "rm", self.volname, subvolume3) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EAGAIN, "invalid error code on rm of subvolume undergoing clone") + else: + self.fail("expected rm of subvolume undergoing clone to fail") + + # ensure metadata file is in v1 location, with version retained as v1 + self._assert_meta_location_and_version(self.volname, subvolume3, version=1) + self._fs_cmd("subvolume", "rm", self.volname, subvolume3, "--force") + + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_upgrade_v1_to_v2(self): + """ + poor man's upgrade test -- theme continues... + ensure v1 to v2 upgrades work + """ + subvolume1, subvolume2 = self._generate_random_subvolume_name(2) + group = self._generate_random_group_name() + + # emulate a v1 subvolume -- in the default group + subvol1_path = self._create_v1_subvolume(subvolume1, has_snapshot=False) + + # emulate a v1 subvolume -- in a custom group + subvol2_path = self._create_v1_subvolume(subvolume2, subvol_group=group, has_snapshot=False) + + # this would attempt auto-upgrade on access + subvolpath1 = self._get_subvolume_path(self.volname, subvolume1) + self.assertEqual(subvolpath1, subvol1_path) + + subvolpath2 = self._get_subvolume_path(self.volname, subvolume2, group_name=group) + self.assertEqual(subvolpath2, subvol2_path) + + # ensure metadata file is in v2 location, with version retained as v2 + self._assert_meta_location_and_version(self.volname, subvolume1, version=2) + self._assert_meta_location_and_version(self.volname, subvolume2, subvol_group=group, version=2) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume1) + self._fs_cmd("subvolume", "rm", self.volname, subvolume2, group) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_rm_with_snapshots(self): + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # remove subvolume -- should fail with ENOTEMPTY since it has snapshots + try: + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + except CommandFailedError as ce: + if ce.exitstatus != errno.ENOTEMPTY: + raise RuntimeError("invalid error code returned when deleting subvolume with snapshots") + else: + raise RuntimeError("expected subvolume deletion to fail") + + # remove snapshot + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_without_snapshots(self): + """ + ensure retain snapshots based delete of a subvolume with no snapshots, deletes the subbvolume + """ + subvolume = self._generate_random_subvolume_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # remove with snapshot retention (should remove volume, no snapshots to retain) + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_with_snapshots(self): + """ + ensure retain snapshots based delete of a subvolume with snapshots retains the subvolume + also test allowed and dis-allowed operations on a retained subvolume + """ + snap_md = ["created_at", "data_pool", "has_pending_clones", "size"] + + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # remove subvolume -- should fail with ENOTEMPTY since it has snapshots + try: + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOTEMPTY, "invalid error code on rm of retained subvolume with snapshots") + else: + self.fail("expected rm of subvolume with retained snapshots to fail") + + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # fetch info + subvol_info = json.loads(self._fs_cmd("subvolume", "info", self.volname, subvolume)) + self.assertEqual(subvol_info["state"], "snapshot-retained", + msg="expected state to be 'snapshot-retained', found '{0}".format(subvol_info["state"])) + + ## test allowed ops in retained state + # ls + subvolumes = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumes), 1, "subvolume ls count mismatch, expected '1', found {0}".format(len(subvolumes))) + self.assertEqual(subvolumes[0]['name'], subvolume, + "subvolume name mismatch in ls output, expected '{0}', found '{1}'".format(subvolume, subvolumes[0]['name'])) + + # snapshot info + snap_info = json.loads(self._get_subvolume_snapshot_info(self.volname, subvolume, snapshot)) + for md in snap_md: + self.assertIn(md, snap_info, "'{0}' key not present in metadata of snapshot".format(md)) + self.assertEqual(snap_info["has_pending_clones"], "no") + + # rm --force (allowed but should fail) + try: + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--force") + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOTEMPTY, "invalid error code on rm of subvolume with retained snapshots") + else: + self.fail("expected rm of subvolume with retained snapshots to fail") + + # rm (allowed but should fail) + try: + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOTEMPTY, "invalid error code on rm of subvolume with retained snapshots") + else: + self.fail("expected rm of subvolume with retained snapshots to fail") + + ## test disallowed ops + # getpath + try: + self._fs_cmd("subvolume", "getpath", self.volname, subvolume) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on getpath of subvolume with retained snapshots") + else: + self.fail("expected getpath of subvolume with retained snapshots to fail") + + # resize + nsize = self.DEFAULT_FILE_SIZE*1024*1024 + try: + self._fs_cmd("subvolume", "resize", self.volname, subvolume, str(nsize)) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on resize of subvolume with retained snapshots") + else: + self.fail("expected resize of subvolume with retained snapshots to fail") + + # snap-create + try: + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, "fail") + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on snapshot create of subvolume with retained snapshots") + else: + self.fail("expected snapshot create of subvolume with retained snapshots to fail") + + # remove snapshot (should remove volume) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_invalid_recreate(self): + """ + ensure retained subvolume recreate does not leave any incarnations in the subvolume and trash + """ + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # recreate subvolume with an invalid pool + data_pool = "invalid_pool" + try: + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--pool_layout", data_pool) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EINVAL, "invalid error code on recreate of subvolume with invalid poolname") + else: + self.fail("expected recreate of subvolume with invalid poolname to fail") + + # fetch info + subvol_info = json.loads(self._fs_cmd("subvolume", "info", self.volname, subvolume)) + self.assertEqual(subvol_info["state"], "snapshot-retained", + msg="expected state to be 'snapshot-retained', found '{0}".format(subvol_info["state"])) + + # getpath + try: + self._fs_cmd("subvolume", "getpath", self.volname, subvolume) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on getpath of subvolume with retained snapshots") + else: + self.fail("expected getpath of subvolume with retained snapshots to fail") + + # remove snapshot (should remove volume) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_trash_busy_recreate(self): + """ + ensure retained subvolume recreate fails if its trash is not yet purged + """ + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # fake a trash entry + self._update_fake_trash(subvolume) + + # recreate subvolume + try: + self._fs_cmd("subvolume", "create", self.volname, subvolume) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EAGAIN, "invalid error code on recreate of subvolume with purge pending") + else: + self.fail("expected recreate of subvolume with purge pending to fail") + + # clear fake trash entry + self._update_fake_trash(subvolume, create=False) + + # recreate subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # remove snapshot + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_trash_busy_recreate_clone(self): + """ + ensure retained clone recreate fails if its trash is not yet purged + """ + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + clone = self._generate_random_clone_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # clone subvolume snapshot + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone) + + # check clone status + self._wait_for_clone_to_complete(clone) + + # snapshot clone + self._fs_cmd("subvolume", "snapshot", "create", self.volname, clone, snapshot) + + # remove clone with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, clone, "--retain-snapshots") + + # fake a trash entry + self._update_fake_trash(clone) + + # clone subvolume snapshot (recreate) + try: + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.EAGAIN, "invalid error code on recreate of clone with purge pending") + else: + self.fail("expected recreate of clone with purge pending to fail") + + # clear fake trash entry + self._update_fake_trash(clone, create=False) + + # recreate subvolume + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone) + + # check clone status + self._wait_for_clone_to_complete(clone) + + # remove snapshot + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, clone, snapshot) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + self._fs_cmd("subvolume", "rm", self.volname, clone) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_recreate_subvolume(self): + """ + ensure a retained subvolume can be recreated and further snapshotted + """ + snap_md = ["created_at", "data_pool", "has_pending_clones", "size"] + + subvolume = self._generate_random_subvolume_name() + snapshot1, snapshot2 = self._generate_random_snapshot_name(2) + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot1) + + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # fetch info + subvol_info = json.loads(self._fs_cmd("subvolume", "info", self.volname, subvolume)) + self.assertEqual(subvol_info["state"], "snapshot-retained", + msg="expected state to be 'snapshot-retained', found '{0}".format(subvol_info["state"])) + + # recreate retained subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # fetch info + subvol_info = json.loads(self._fs_cmd("subvolume", "info", self.volname, subvolume)) + self.assertEqual(subvol_info["state"], "complete", + msg="expected state to be 'snapshot-retained', found '{0}".format(subvol_info["state"])) + + # snapshot info (older snapshot) + snap_info = json.loads(self._get_subvolume_snapshot_info(self.volname, subvolume, snapshot1)) + for md in snap_md: + self.assertIn(md, snap_info, "'{0}' key not present in metadata of snapshot".format(md)) + self.assertEqual(snap_info["has_pending_clones"], "no") + + # snap-create (new snapshot) + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot2) + + # remove with retain snapshots + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # list snapshots + subvolsnapshotls = json.loads(self._fs_cmd('subvolume', 'snapshot', 'ls', self.volname, subvolume)) + self.assertEqual(len(subvolsnapshotls), 2, "Expected the 'fs subvolume snapshot ls' command to list the" + " created subvolume snapshots") + snapshotnames = [snapshot['name'] for snapshot in subvolsnapshotls] + for snap in [snapshot1, snapshot2]: + self.assertIn(snap, snapshotnames, "Missing snapshot '{0}' in snapshot list".format(snap)) + + # remove snapshots (should remove volume) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot1) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot2) + + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_clone(self): + """ + clone a snapshot from a snapshot retained subvolume + """ + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + clone = self._generate_random_clone_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # store path for clone verification + subvol_path = self._get_subvolume_path(self.volname, subvolume) + + # do some IO + self._do_subvolume_io(subvolume, number_of_files=16) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # clone retained subvolume snapshot + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone) + + # check clone status + self._wait_for_clone_to_complete(clone) + + # verify clone + self._verify_clone(subvolume, snapshot, clone, subvol_path=subvol_path) + + # remove snapshots (removes retained volume) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + + # remove subvolume + self._fs_cmd("subvolume", "rm", self.volname, clone) + + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_retain_snapshot_recreate(self): + """ + recreate a subvolume from one of its retained snapshots + """ + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) + + # store path for clone verification + subvol_path = self._get_subvolume_path(self.volname, subvolume) + + # do some IO + self._do_subvolume_io(subvolume, number_of_files=16) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") + + # recreate retained subvolume using its own snapshot to clone + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, subvolume) - # snapshot group - self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + # check clone status + self._wait_for_clone_to_complete(subvolume) - # try creating snapshot w/ same snapshot name -- shoule be idempotent - self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + # verify clone + self._verify_clone(subvolume, snapshot, subvolume, subvol_path=subvol_path) # remove snapshot - self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) # remove subvolume - self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) # verify trash dir is clean self._wait_for_trash_empty() - # remove group - self._fs_cmd("subvolumegroup", "rm", self.volname, group) - - def test_nonexistent_subvolume_group_snapshot_rm(self): + def test_subvolume_clone_retain_snapshot_with_snapshots(self): + """ + retain snapshots of a cloned subvolume and check disallowed operations + """ subvolume = self._generate_random_subvolume_name() - group = self._generate_random_group_name() - snapshot = self._generate_random_snapshot_name() - - # create group - self._fs_cmd("subvolumegroup", "create", self.volname, group) - - # create subvolume in group - self._fs_cmd("subvolume", "create", self.volname, subvolume, "--group_name", group) + snapshot1, snapshot2 = self._generate_random_snapshot_name(2) + clone = self._generate_random_clone_name() - # snapshot group - self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) - # remove snapshot - self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot) + # store path for clone verification + subvol1_path = self._get_subvolume_path(self.volname, subvolume) - # remove snapshot - try: - self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot) - except CommandFailedError as ce: - if ce.exitstatus != errno.ENOENT: - raise - else: - raise RuntimeError("expected the 'fs subvolumegroup snapshot rm' command to fail") + # do some IO + self._do_subvolume_io(subvolume, number_of_files=16) - # remove subvolume - self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot1) - # verify trash dir is clean - self._wait_for_trash_empty() + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") - # remove group - self._fs_cmd("subvolumegroup", "rm", self.volname, group) + # clone retained subvolume snapshot + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot1, clone) - def test_subvolume_group_snapshot_rm_force(self): - # test removing non-existing subvolume group snapshot with --force - group = self._generate_random_group_name() - snapshot = self._generate_random_snapshot_name() - # remove snapshot - try: - self._fs_cmd("subvolumegroup", "snapshot", "rm", self.volname, group, snapshot, "--force") - except CommandFailedError as ce: - raise RuntimeError("expected the 'fs subvolumegroup snapshot rm --force' command to succeed") + # check clone status + self._wait_for_clone_to_complete(clone) - def test_subvolume_group_snapshot_ls(self): - # tests the 'fs subvolumegroup snapshot ls' command + # verify clone + self._verify_clone(subvolume, snapshot1, clone, subvol_path=subvol1_path) - snapshots = [] + # create a snapshot on the clone + self._fs_cmd("subvolume", "snapshot", "create", self.volname, clone, snapshot2) - # create group - group = self._generate_random_group_name() - self._fs_cmd("subvolumegroup", "create", self.volname, group) + # retain a clone + self._fs_cmd("subvolume", "rm", self.volname, clone, "--retain-snapshots") - # create subvolumegroup snapshots - snapshots = self._generate_random_snapshot_name(3) - for snapshot in snapshots: - self._fs_cmd("subvolumegroup", "snapshot", "create", self.volname, group, snapshot) + # list snapshots + clonesnapshotls = json.loads(self._fs_cmd('subvolume', 'snapshot', 'ls', self.volname, clone)) + self.assertEqual(len(clonesnapshotls), 1, "Expected the 'fs subvolume snapshot ls' command to list the" + " created subvolume snapshots") + snapshotnames = [snapshot['name'] for snapshot in clonesnapshotls] + for snap in [snapshot2]: + self.assertIn(snap, snapshotnames, "Missing snapshot '{0}' in snapshot list".format(snap)) - subvolgrpsnapshotls = json.loads(self._fs_cmd('subvolumegroup', 'snapshot', 'ls', self.volname, group)) - if len(subvolgrpsnapshotls) == 0: - raise RuntimeError("Expected the 'fs subvolumegroup snapshot ls' command to list the created subvolume group snapshots") + ## check disallowed operations on retained clone + # clone-status + try: + self._fs_cmd("clone", "status", self.volname, clone) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on clone status of clone with retained snapshots") else: - snapshotnames = [snapshot['name'] for snapshot in subvolgrpsnapshotls] - if collections.Counter(snapshotnames) != collections.Counter(snapshots): - raise RuntimeError("Error creating or listing subvolume group snapshots") - - def test_async_subvolume_rm(self): - subvolumes = self._generate_random_subvolume_name(100) - - # create subvolumes - for subvolume in subvolumes: - self._fs_cmd("subvolume", "create", self.volname, subvolume) - self._do_subvolume_io(subvolume, number_of_files=10) + self.fail("expected clone status of clone with retained snapshots to fail") - self.mount_a.umount_wait() + # clone-cancel + try: + self._fs_cmd("clone", "cancel", self.volname, clone) + except CommandFailedError as ce: + self.assertEqual(ce.exitstatus, errno.ENOENT, "invalid error code on clone cancel of clone with retained snapshots") + else: + self.fail("expected clone cancel of clone with retained snapshots to fail") - # remove subvolumes - for subvolume in subvolumes: - self._fs_cmd("subvolume", "rm", self.volname, subvolume) + # remove snapshots (removes subvolumes as all are in retained state) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot1) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, clone, snapshot2) - self.mount_a.mount() + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) # verify trash dir is clean - self._wait_for_trash_empty(timeout=300) + self._wait_for_trash_empty() - def test_subvolume_upgrade(self): + def test_subvolume_retain_snapshot_clone_from_newer_snapshot(self): """ - poor man's upgrade test -- rather than going through a full upgrade cycle, - emulate subvolumes by going through the wormhole and verify if they are - accessible. + clone a subvolume from recreated subvolume's latest snapshot """ - subvolume1, subvolume2 = self._generate_random_subvolume_name(2) - group = self._generate_random_group_name() + subvolume = self._generate_random_subvolume_name() + snapshot1, snapshot2 = self._generate_random_snapshot_name(2) + clone = self._generate_random_clone_name(1) - # emulate a old-fashioned subvolume -- one in the default group and - # the other in a custom group - createpath1 = os.path.join(".", "volumes", "_nogroup", subvolume1) - self.mount_a.run_shell(['mkdir', '-p', createpath1]) + # create subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) - # create group - createpath2 = os.path.join(".", "volumes", group, subvolume2) - self.mount_a.run_shell(['mkdir', '-p', createpath2]) + # do some IO + self._do_subvolume_io(subvolume, number_of_files=16) - # this would auto-upgrade on access without anyone noticing - subvolpath1 = self._fs_cmd("subvolume", "getpath", self.volname, subvolume1) - self.assertNotEqual(subvolpath1, None) - subvolpath1 = subvolpath1.rstrip() # remove "/" prefix and any trailing newline + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot1) - subvolpath2 = self._fs_cmd("subvolume", "getpath", self.volname, subvolume2, group) - self.assertNotEqual(subvolpath2, None) - subvolpath2 = subvolpath2.rstrip() # remove "/" prefix and any trailing newline + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") - # and... the subvolume path returned should be what we created behind the scene - self.assertEqual(createpath1[1:], subvolpath1) - self.assertEqual(createpath2[1:], subvolpath2) + # recreate subvolume + self._fs_cmd("subvolume", "create", self.volname, subvolume) - # remove subvolume - self._fs_cmd("subvolume", "rm", self.volname, subvolume1) - self._fs_cmd("subvolume", "rm", self.volname, subvolume2, group) + # get and store path for clone verification + subvol2_path = self._get_subvolume_path(self.volname, subvolume) - # verify trash dir is clean - self._wait_for_trash_empty() + # do some IO + self._do_subvolume_io(subvolume, number_of_files=16) - # remove group - self._fs_cmd("subvolumegroup", "rm", self.volname, group) + # snapshot newer subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot2) - def test_subvolume_rm_with_snapshots(self): - subvolume = self._generate_random_subvolume_name() - snapshot = self._generate_random_snapshot_name() + # remove with snapshot retention + self._fs_cmd("subvolume", "rm", self.volname, subvolume, "--retain-snapshots") - # create subvolume - self._fs_cmd("subvolume", "create", self.volname, subvolume) + # clone retained subvolume's newer snapshot + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot2, clone) - # snapshot subvolume - self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + # check clone status + self._wait_for_clone_to_complete(clone) - # remove subvolume -- should fail with ENOTEMPTY since it has snapshots - try: - self._fs_cmd("subvolume", "rm", self.volname, subvolume) - except CommandFailedError as ce: - if ce.exitstatus != errno.ENOTEMPTY: - raise RuntimeError("invalid error code returned when deleting subvolume with snapshots") - else: - raise RuntimeError("expected subvolume deletion to fail") + # verify clone + self._verify_clone(subvolume, snapshot2, clone, subvol_path=subvol2_path) # remove snapshot - self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot1) + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot2) # remove subvolume - self._fs_cmd("subvolume", "rm", self.volname, subvolume) + self._fs_cmd("subvolume", "rm", self.volname, clone) + + # verify list subvolumes returns an empty list + subvolumels = json.loads(self._fs_cmd('subvolume', 'ls', self.volname)) + self.assertEqual(len(subvolumels), 0) # verify trash dir is clean self._wait_for_trash_empty() @@ -1624,12 +3603,12 @@ # now, unprotect snapshot self._fs_cmd("subvolume", "snapshot", "unprotect", self.volname, subvolume, snapshot) + # verify clone + self._verify_clone(subvolume, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone) @@ -1657,12 +3636,12 @@ # check clone status self._wait_for_clone_to_complete(clone) + # verify clone + self._verify_clone(subvolume, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone) @@ -1670,6 +3649,25 @@ # verify trash dir is clean self._wait_for_trash_empty() + def test_subvolume_snapshot_reconf_max_concurrent_clones(self): + """ + Validate 'max_concurrent_clones' config option + """ + + # get the default number of cloner threads + default_max_concurrent_clones = int(self.config_get('mgr.x', 'mgr/volumes/max_concurrent_clones')) + self.assertEqual(default_max_concurrent_clones, 4) + + # Increase number of cloner threads + self.config_set('mgr', 'mgr/volumes/max_concurrent_clones', 6) + max_concurrent_clones = int(self.config_get('mgr.x', 'mgr/volumes/max_concurrent_clones')) + self.assertEqual(max_concurrent_clones, 6) + + # Decrease number of cloner threads + self.config_set('mgr', 'mgr/volumes/max_concurrent_clones', 2) + max_concurrent_clones = int(self.config_get('mgr.x', 'mgr/volumes/max_concurrent_clones')) + self.assertEqual(max_concurrent_clones, 2) + def test_subvolume_snapshot_clone_pool_layout(self): subvolume = self._generate_random_subvolume_name() snapshot = self._generate_random_snapshot_name() @@ -1694,12 +3692,12 @@ # check clone status self._wait_for_clone_to_complete(clone) + # verify clone + self._verify_clone(subvolume, snapshot, clone, clone_pool=new_pool) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) - subvol_path = self._get_subvolume_path(self.volname, clone) desired_pool = self.mount_a.getfattr(subvol_path, "ceph.dir.layout.pool") self.assertEqual(desired_pool, new_pool) @@ -1719,6 +3717,9 @@ mode = "777" uid = "1000" gid = "1000" + new_uid = "1001" + new_gid = "1001" + new_mode = "700" # create subvolume self._fs_cmd("subvolume", "create", self.volname, subvolume, "--mode", mode, "--uid", uid, "--gid", gid) @@ -1729,17 +3730,64 @@ # snapshot subvolume self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + # change subvolume attrs (to ensure clone picks up snapshot attrs) + self._do_subvolume_attr_update(subvolume, new_uid, new_gid, new_mode) + # schedule a clone self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone) # check clone status self._wait_for_clone_to_complete(clone) + # verify clone + self._verify_clone(subvolume, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) + # remove subvolumes + self._fs_cmd("subvolume", "rm", self.volname, subvolume) + self._fs_cmd("subvolume", "rm", self.volname, clone) + + # verify trash dir is clean + self._wait_for_trash_empty() + + def test_subvolume_clone_inherit_snapshot_namespace_and_size(self): + subvolume = self._generate_random_subvolume_name() + snapshot = self._generate_random_snapshot_name() + clone = self._generate_random_clone_name() + osize = self.DEFAULT_FILE_SIZE*1024*1024*12 + + # create subvolume, in an isolated namespace with a specified size + self._fs_cmd("subvolume", "create", self.volname, subvolume, "--namespace-isolated", "--size", str(osize)) + + # do some IO + self._do_subvolume_io(subvolume, number_of_files=8) + + # snapshot subvolume + self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + + # create a pool different from current subvolume pool + subvol_path = self._get_subvolume_path(self.volname, subvolume) + default_pool = self.mount_a.getfattr(subvol_path, "ceph.dir.layout.pool") + new_pool = "new_pool" + self.assertNotEqual(default_pool, new_pool) + self.fs.add_data_pool(new_pool) + + # update source subvolume pool + self._do_subvolume_pool_and_namespace_update(subvolume, pool=new_pool, pool_namespace="") + + # schedule a clone, with NO --pool specification + self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone) + + # check clone status + self._wait_for_clone_to_complete(clone) + # verify clone - self._verify_clone(subvolume, clone) + self._verify_clone(subvolume, snapshot, clone) + + # remove snapshot + self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) @@ -1768,12 +3816,12 @@ # check clone status self._wait_for_clone_to_complete(clone1) + # verify clone + self._verify_clone(subvolume, snapshot, clone1) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone1) - # now the clone is just like a normal subvolume -- snapshot the clone and fork # another clone. before that do some IO so it's can be differentiated. self._do_subvolume_io(clone1, create_dir="data", number_of_files=32) @@ -1787,12 +3835,12 @@ # check clone status self._wait_for_clone_to_complete(clone2) + # verify clone + self._verify_clone(clone1, snapshot, clone2) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, clone1, snapshot) - # verify clone - self._verify_clone(clone1, clone2) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone1) @@ -1825,12 +3873,12 @@ # check clone status self._wait_for_clone_to_complete(clone, clone_group=group) + # verify clone + self._verify_clone(subvolume, snapshot, clone, clone_group=group) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone, clone_group=group) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone, group) @@ -1865,12 +3913,12 @@ # check clone status self._wait_for_clone_to_complete(clone) + # verify clone + self._verify_clone(subvolume, snapshot, clone, source_group=group) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot, group) - # verify clone - self._verify_clone(subvolume, clone, source_group=group) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume, group) self._fs_cmd("subvolume", "rm", self.volname, clone) @@ -1907,12 +3955,12 @@ # check clone status self._wait_for_clone_to_complete(clone, clone_group=c_group) + # verify clone + self._verify_clone(subvolume, snapshot, clone, source_group=s_group, clone_group=c_group) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot, s_group) - # verify clone - self._verify_clone(subvolume, clone, source_group=s_group, clone_group=c_group) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume, s_group) self._fs_cmd("subvolume", "rm", self.volname, clone, c_group) @@ -1929,6 +3977,7 @@ yet another poor man's upgrade test -- rather than going through a full upgrade cycle, emulate old types subvolumes by going through the wormhole and verify clone operation. + further ensure that a legacy volume is not updated to v2, but clone is. """ subvolume = self._generate_random_subvolume_name() snapshot = self._generate_random_snapshot_name() @@ -1938,12 +3987,19 @@ createpath = os.path.join(".", "volumes", "_nogroup", subvolume) self.mount_a.run_shell(['mkdir', '-p', createpath]) + # add required xattrs to subvolume + default_pool = self.mount_a.getfattr(".", "ceph.dir.layout.pool") + self.mount_a.setfattr(createpath, 'ceph.dir.layout.pool', default_pool) + # do some IO self._do_subvolume_io(subvolume, number_of_files=64) # snapshot subvolume self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot) + # ensure metadata file is in legacy location, with required version v1 + self._assert_meta_location_and_version(self.volname, subvolume, version=1, legacy=True) + # schedule a clone self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone) @@ -1958,11 +4014,14 @@ # check clone status self._wait_for_clone_to_complete(clone) + # verify clone + self._verify_clone(subvolume, snapshot, clone, source_version=1) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) + # ensure metadata file is in v2 location, with required version v2 + self._assert_meta_location_and_version(self.volname, clone) # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) @@ -2004,12 +4063,12 @@ subvolpath = self._get_subvolume_path(self.volname, clone) self.assertNotEqual(subvolpath, None) + # verify clone + self._verify_clone(subvolume, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone) @@ -2049,12 +4108,12 @@ subvolpath = self._get_subvolume_path(self.volname, clone) self.assertNotEqual(subvolpath, None) + # verify clone + self._verify_clone(subvolume, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone) @@ -2094,12 +4153,12 @@ subvolpath = self._get_subvolume_path(self.volname, clone) self.assertNotEqual(subvolpath, None) + # verify clone + self._verify_clone(subvolume, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone) @@ -2165,12 +4224,12 @@ # check clone status self._wait_for_clone_to_complete(clone) + # verify clone + self._verify_clone(subvolume1, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume1, snapshot) - # verify clone - self._verify_clone(subvolume1, clone) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume1) self._fs_cmd("subvolume", "rm", self.volname, subvolume2) @@ -2211,7 +4270,7 @@ self._wait_for_clone_to_complete(clone1) # verify clone - self._verify_clone(subvolume, clone1) + self._verify_clone(subvolume, snapshot, clone1, clone_pool=new_pool) # wait a bit so that subsequent I/O will give pool full error time.sleep(120) @@ -2262,12 +4321,12 @@ # check clone status self._wait_for_clone_to_complete(clone) + # verify clone + self._verify_clone(subvolume, snapshot, clone) + # remove snapshot self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot) - # verify clone - self._verify_clone(subvolume, clone) - # remove subvolumes self._fs_cmd("subvolume", "rm", self.volname, subvolume) self._fs_cmd("subvolume", "rm", self.volname, clone) diff -Nru ceph-14.2.11/qa/tasks/ceph_manager.py ceph-14.2.18/qa/tasks/ceph_manager.py --- ceph-14.2.11/qa/tasks/ceph_manager.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/ceph_manager.py 2021-03-15 17:46:20.000000000 +0000 @@ -14,8 +14,7 @@ import traceback import os -from io import BytesIO -from six import StringIO +from io import BytesIO, StringIO from teuthology import misc as teuthology from tasks.scrub import Scrubber from tasks.util.rados import cmd_erasure_code_profile @@ -24,7 +23,6 @@ from teuthology.orchestra.remote import Remote from teuthology.orchestra import run from teuthology.exceptions import CommandFailedError -import six try: from subprocess import DEVNULL # py3k @@ -193,6 +191,13 @@ return False; return True; + def run_ceph_objectstore_tool(self, remote, osd, cmd): + return remote.run( + args=['sudo', 'adjust-ulimits', 'ceph-objectstore-tool'] + cmd, + wait=True, check_status=False, + stdout=StringIO(), + stderr=StringIO()) + def kill_osd(self, osd=None, mark_down=False, mark_out=False): """ :param osd: Osd to be killed. @@ -255,17 +260,18 @@ while proceed(): proc = exp_remote.run(args=cmd, wait=True, check_status=False, - stdout=BytesIO(), stderr=BytesIO()) + stdout=StringIO(), stderr=StringIO()) if proc.exitstatus == 0: break - elif proc.exitstatus == 1 and proc.stderr == b"OSD has the store locked": + elif (proc.exitstatus == 1 and + proc.stderr.getvalue() == "OSD has the store locked"): continue else: raise Exception("ceph-objectstore-tool: " "exp list-pgs failure with status {ret}". format(ret=proc.exitstatus)) - pgs = six.ensure_str(proc.stdout.getvalue()).split('\n')[:-1] + pgs = proc.stdout.getvalue().split('\n')[:-1] if len(pgs) == 0: self.log("No PGs found for osd.{osd}".format(osd=exp_osd)) return @@ -298,12 +304,12 @@ # If pg isn't already on this osd, then we will move it there cmd = (prefix + "--op list-pgs").format(id=imp_osd) proc = imp_remote.run(args=cmd, wait=True, - check_status=False, stdout=BytesIO()) + check_status=False, stdout=StringIO()) if proc.exitstatus: raise Exception("ceph-objectstore-tool: " "imp list-pgs failure with status {ret}". format(ret=proc.exitstatus)) - pgs = six.ensure_str(proc.stdout.getvalue()).split('\n')[:-1] + pgs = proc.stdout.getvalue().split('\n')[:-1] if pg not in pgs: self.log("Moving pg {pg} from osd.{fosd} to osd.{tosd}". format(pg=pg, fosd=exp_osd, tosd=imp_osd)) @@ -324,7 +330,7 @@ proc = imp_remote.run(args=cmd, wait=True, check_status=False, stderr=BytesIO()) if proc.exitstatus == 1: - bogosity = b"The OSD you are using is older than the exported PG" + bogosity = "The OSD you are using is older than the exported PG" if bogosity in proc.stderr.getvalue(): self.log("OSD older than exported PG" "...ignored") @@ -1072,22 +1078,20 @@ lines.append(cmd) return "\n".join(lines) - def run(self, options, args, stdin=None, stdout=None): - if stdout is None: - stdout = BytesIO() + def run(self, options, args): self.manager.kill_osd(self.osd) - cmd = self.build_cmd(options, args, stdin) + cmd = self.build_cmd(options, args, None) self.manager.log(cmd) try: proc = self.remote.run(args=['bash', '-e', '-x', '-c', cmd], check_status=False, - stdout=stdout, + stdout=BytesIO(), stderr=BytesIO()) proc.wait() if proc.exitstatus != 0: self.manager.log("failed with " + str(proc.exitstatus)) - error = six.ensure_str(proc.stdout.getvalue()) + " " + \ - six.ensure_str(proc.stderr.getvalue()) + error = proc.stdout.getvalue().decode() + " " + \ + proc.stderr.getvalue().decode() raise Exception(error) finally: if self.do_revive: @@ -1146,7 +1150,7 @@ 'ceph-coverage', '{tdir}/archive/coverage'.format(tdir=testdir), 'timeout', - '900', + '120', 'ceph', '--cluster', self.cluster, @@ -1154,9 +1158,9 @@ ceph_args.extend(args) proc = self.controller.run( args=ceph_args, - stdout=BytesIO(), + stdout=StringIO(), ) - return six.ensure_str(proc.stdout.getvalue()) + return proc.stdout.getvalue() def raw_cluster_cmd_result(self, *args, **kwargs): """ @@ -1630,7 +1634,7 @@ :param erasure_code_use_overwrites: if true, allow overwrites """ with self.lock: - assert isinstance(pool_name, six.string_types) + assert isinstance(pool_name, str) assert isinstance(pg_num, int) assert pool_name not in self.pools self.log("creating pool_name %s" % (pool_name,)) @@ -1682,7 +1686,7 @@ :param pool_name: Pool to be removed """ with self.lock: - assert isinstance(pool_name, six.string_types) + assert isinstance(pool_name, str) assert pool_name in self.pools self.log("removing pool_name %s" % (pool_name,)) del self.pools[pool_name] @@ -1701,7 +1705,7 @@ Return the number of pgs in the pool specified. """ with self.lock: - assert isinstance(pool_name, six.string_types) + assert isinstance(pool_name, str) if pool_name in self.pools: return self.pools[pool_name] return 0 @@ -1713,8 +1717,8 @@ :returns: property as an int value. """ with self.lock: - assert isinstance(pool_name, six.string_types) - assert isinstance(prop, six.string_types) + assert isinstance(pool_name, str) + assert isinstance(prop, str) output = self.raw_cluster_cmd( 'osd', 'pool', @@ -1732,8 +1736,8 @@ This routine retries if set operation fails. """ with self.lock: - assert isinstance(pool_name, six.string_types) - assert isinstance(prop, six.string_types) + assert isinstance(pool_name, str) + assert isinstance(prop, str) assert isinstance(val, int) tries = 0 while True: @@ -1760,7 +1764,7 @@ Increase the number of pgs in a pool """ with self.lock: - assert isinstance(pool_name, six.string_types) + assert isinstance(pool_name, str) assert isinstance(by, int) assert pool_name in self.pools if self.get_num_creating() > 0: @@ -1780,7 +1784,7 @@ with self.lock: self.log('contract_pool %s by %s min %s' % ( pool_name, str(by), str(min_pgs))) - assert isinstance(pool_name, six.string_types) + assert isinstance(pool_name, str) assert isinstance(by, int) assert pool_name in self.pools if self.get_num_creating() > 0: @@ -1819,7 +1823,7 @@ Set pgpnum property of pool_name pool. """ with self.lock: - assert isinstance(pool_name, six.string_types) + assert isinstance(pool_name, str) assert pool_name in self.pools if not force and self.get_num_creating() > 0: return False diff -Nru ceph-14.2.11/qa/tasks/ceph.py ceph-14.2.18/qa/tasks/ceph.py --- ceph-14.2.11/qa/tasks/ceph.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/ceph.py 2021-03-15 17:46:20.000000000 +0000 @@ -4,6 +4,7 @@ Handle the setup, starting, and clean-up of a Ceph cluster. """ from io import BytesIO +from io import StringIO import argparse import configobj @@ -15,7 +16,6 @@ import time import gevent import re -import six import socket from paramiko import SSHException @@ -191,12 +191,12 @@ testdir = teuthology.get_testdir(ctx) remote_logrotate_conf = '%s/logrotate.ceph-test.conf' % testdir rotate_conf_path = os.path.join(os.path.dirname(__file__), 'logrotate.conf') - with open(rotate_conf_path, 'rb') as f: + with open(rotate_conf_path) as f: conf = "" for daemon, size in daemons.items(): log.info('writing logrotate stanza for {}'.format(daemon)) - conf += six.ensure_str(f.read()).format(daemon_type=daemon, - max_size=size) + conf += f.read().format(daemon_type=daemon, + max_size=size) f.seek(0, 0) for remote in ctx.cluster.remotes.keys(): @@ -319,14 +319,14 @@ "/dev/null | sort | uniq", wait=False, check_status=False, - stdout=BytesIO(), + stdout=StringIO(), ) lookup_procs.append((proc, remote)) valgrind_exception = None for (proc, remote) in lookup_procs: proc.wait() - out = six.ensure_str(proc.stdout.getvalue()) + out = proc.stdout.getvalue() for line in out.split('\n'): if line == '': continue @@ -401,12 +401,8 @@ if mdss.remotes: log.info('Setting up CephFS filesystem...') - fs = Filesystem(ctx, name='cephfs', create=True, - ec_profile=config.get('cephfs_ec_profile', None)) - - max_mds = config.get('max_mds', 1) - if max_mds > 1: - fs.set_max_mds(max_mds) + Filesystem(ctx, fs_config=config.get('cephfs', None), name='cephfs', + create=True, ec_profile=config.get('cephfs_ec_profile', None)) yield @@ -1295,11 +1291,11 @@ if type_ == 'osd': datadir='/var/lib/ceph/osd/{cluster}-{id}'.format( cluster=cluster_name, id=id_) - osd_uuid = six.ensure_str(teuthology.get_file( + osd_uuid = teuthology.get_file( remote=remote, path=datadir + '/fsid', sudo=True, - )).strip() + ).decode().strip() osd_uuids[id_] = osd_uuid for osd_id in range(len(osd_uuids)): id_ = str(osd_id) @@ -1726,6 +1722,20 @@ mkfs_options: [-b,size=65536,-l,logdev=/dev/sdc1] mount_options: [nobarrier, inode64] + To change the cephfs's default max_mds (1), use:: + + tasks: + - ceph: + cephfs: + max_mds: 2 + + To change the mdsmap's default session_timeout (60 seconds), use:: + + tasks: + - ceph: + cephfs: + session_timeout: 300 + Note, this will cause the task to check the /scratch_devs file on each node for available devices. If no such file is found, /dev/sdb will be used. diff -Nru ceph-14.2.11/qa/tasks/mgr/dashboard/helper.py ceph-14.2.18/qa/tasks/mgr/dashboard/helper.py --- ceph-14.2.11/qa/tasks/mgr/dashboard/helper.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/dashboard/helper.py 2021-03-15 17:46:20.000000000 +0000 @@ -4,6 +4,8 @@ import json import logging +import random +import string from collections import namedtuple import time @@ -18,6 +20,12 @@ class DashboardTestCase(MgrTestCase): + # Display full error diffs + maxDiff = None + + # Increased x3 (20 -> 60) + TIMEOUT_HEALTH_CLEAR = 60 + MGRS_REQUIRED = 2 MDSS_REQUIRED = 1 REQUIRE_FILESYSTEM = True @@ -43,7 +51,10 @@ if ex.exitstatus != 2: raise ex - cls._ceph_cmd(['dashboard', 'ac-user-create', username, password]) + user_create_args = [ + 'dashboard', 'ac-user-create', username + ] + cls._ceph_cmd_with_secret(user_create_args, password) set_roles_args = ['dashboard', 'ac-user-set-roles', username] for idx, role in enumerate(roles): @@ -67,17 +78,20 @@ cls._ceph_cmd(set_roles_args) @classmethod - def login(cls, username, password): + def login(cls, username, password, set_cookies=False): if cls._loggedin: cls.logout() - cls._post('/api/auth', {'username': username, 'password': password}) + cls._post('/api/auth', {'username': username, + 'password': password}, set_cookies=set_cookies) + cls._assertEq(cls._resp.status_code, 201) cls._token = cls.jsonBody()['token'] cls._loggedin = True @classmethod - def logout(cls): + def logout(cls, set_cookies=False): if cls._loggedin: - cls._post('/api/auth/logout') + cls._post('/api/auth/logout', set_cookies=set_cookies) + cls._assertEq(cls._resp.status_code, 200) cls._token = None cls._loggedin = False @@ -152,35 +166,55 @@ super(DashboardTestCase, self).setUp() if not self._loggedin and self.AUTO_AUTHENTICATE: self.login('admin', 'admin') - self.wait_for_health_clear(20) + self.wait_for_health_clear(self.TIMEOUT_HEALTH_CLEAR) @classmethod def tearDownClass(cls): super(DashboardTestCase, cls).tearDownClass() - # pylint: disable=inconsistent-return-statements + # pylint: disable=inconsistent-return-statements, too-many-arguments, too-many-branches @classmethod - def _request(cls, url, method, data=None, params=None): + def _request(cls, url, method, data=None, params=None, set_cookies=False): url = "{}{}".format(cls._base_uri, url) - log.info("Request %s to %s", method, url) + log.debug("Request %s to %s", method, url) headers = {} + cookies = {} if cls._token: - headers['Authorization'] = "Bearer {}".format(cls._token) + if set_cookies: + cookies['token'] = cls._token + else: + headers['Authorization'] = "Bearer {}".format(cls._token) - if method == 'GET': - cls._resp = cls._session.get(url, params=params, verify=False, - headers=headers) - elif method == 'POST': - cls._resp = cls._session.post(url, json=data, params=params, - verify=False, headers=headers) - elif method == 'DELETE': - cls._resp = cls._session.delete(url, json=data, params=params, - verify=False, headers=headers) - elif method == 'PUT': - cls._resp = cls._session.put(url, json=data, params=params, - verify=False, headers=headers) + if set_cookies: + if method == 'GET': + cls._resp = cls._session.get(url, params=params, verify=False, + headers=headers, cookies=cookies) + elif method == 'POST': + cls._resp = cls._session.post(url, json=data, params=params, + verify=False, headers=headers, cookies=cookies) + elif method == 'DELETE': + cls._resp = cls._session.delete(url, json=data, params=params, + verify=False, headers=headers, cookies=cookies) + elif method == 'PUT': + cls._resp = cls._session.put(url, json=data, params=params, + verify=False, headers=headers, cookies=cookies) + else: + assert False else: - assert False + if method == 'GET': + cls._resp = cls._session.get(url, params=params, verify=False, + headers=headers) + elif method == 'POST': + cls._resp = cls._session.post(url, json=data, params=params, + verify=False, headers=headers) + elif method == 'DELETE': + cls._resp = cls._session.delete(url, json=data, params=params, + verify=False, headers=headers) + elif method == 'PUT': + cls._resp = cls._session.put(url, json=data, params=params, + verify=False, headers=headers) + else: + assert False try: if not cls._resp.ok: # Output response for easier debugging. @@ -194,8 +228,8 @@ raise ex @classmethod - def _get(cls, url, params=None): - return cls._request(url, 'GET', params=params) + def _get(cls, url, params=None, set_cookies=False): + return cls._request(url, 'GET', params=params, set_cookies=set_cookies) @classmethod def _view_cache_get(cls, url, retries=5): @@ -216,16 +250,16 @@ return res @classmethod - def _post(cls, url, data=None, params=None): - cls._request(url, 'POST', data, params) + def _post(cls, url, data=None, params=None, set_cookies=False): + cls._request(url, 'POST', data, params, set_cookies=set_cookies) @classmethod - def _delete(cls, url, data=None, params=None): - cls._request(url, 'DELETE', data, params) + def _delete(cls, url, data=None, params=None, set_cookies=False): + cls._request(url, 'DELETE', data, params, set_cookies=set_cookies) @classmethod - def _put(cls, url, data=None, params=None): - cls._request(url, 'PUT', data, params) + def _put(cls, url, data=None, params=None, set_cookies=False): + cls._request(url, 'PUT', data, params, set_cookies=set_cookies) @classmethod def _assertEq(cls, v1, v2): @@ -244,15 +278,15 @@ # pylint: disable=too-many-arguments @classmethod - def _task_request(cls, method, url, data, timeout): - res = cls._request(url, method, data) - cls._assertIn(cls._resp.status_code, [200, 201, 202, 204, 400, 403]) + def _task_request(cls, method, url, data, timeout, set_cookies=False): + res = cls._request(url, method, data, set_cookies=set_cookies) + cls._assertIn(cls._resp.status_code, [200, 201, 202, 204, 400, 403, 404]) if cls._resp.status_code == 403: return None if cls._resp.status_code != 202: - log.info("task finished immediately") + log.debug("task finished immediately") return res cls._assertIn('name', res) @@ -264,8 +298,7 @@ res_task = None while retries > 0 and not res_task: retries -= 1 - log.info("task (%s, %s) is still executing", task_name, - task_metadata) + log.debug("task (%s, %s) is still executing", task_name, task_metadata) time.sleep(1) _res = cls._get('/api/task?name={}'.format(task_name)) cls._assertEq(cls._resp.status_code, 200) @@ -280,7 +313,7 @@ raise Exception("Waiting for task ({}, {}) to finish timed out. {}" .format(task_name, task_metadata, _res)) - log.info("task (%s, %s) finished", task_name, task_metadata) + log.debug("task (%s, %s) finished", task_name, task_metadata) if res_task['success']: if method == 'POST': cls._resp.status_code = 201 @@ -297,16 +330,16 @@ return res_task['exception'] @classmethod - def _task_post(cls, url, data=None, timeout=60): - return cls._task_request('POST', url, data, timeout) + def _task_post(cls, url, data=None, timeout=60, set_cookies=False): + return cls._task_request('POST', url, data, timeout, set_cookies=set_cookies) @classmethod - def _task_delete(cls, url, timeout=60): - return cls._task_request('DELETE', url, None, timeout) + def _task_delete(cls, url, timeout=60, set_cookies=False): + return cls._task_request('DELETE', url, None, timeout, set_cookies=set_cookies) @classmethod - def _task_put(cls, url, data=None, timeout=60): - return cls._task_request('PUT', url, data, timeout) + def _task_put(cls, url, data=None, timeout=60, set_cookies=False): + return cls._task_request('PUT', url, data, timeout, set_cookies=set_cookies) @classmethod def cookies(cls): @@ -366,9 +399,31 @@ @classmethod def _ceph_cmd(cls, cmd): res = cls.mgr_cluster.mon_manager.raw_cluster_cmd(*cmd) - log.info("command result: %s", res) + log.debug("command result: %s", res) return res + @classmethod + def _ceph_cmd_result(cls, cmd): + exitstatus = cls.mgr_cluster.mon_manager.raw_cluster_cmd_result(*cmd) + log.debug("command exit status: %d", exitstatus) + return exitstatus + + @classmethod + def _ceph_cmd_with_secret(cls, cmd, secret, return_exit_code=False): + cmd.append('-i') + cmd.append('{}'.format(cls._ceph_create_tmp_file(secret))) + if return_exit_code: + return cls._ceph_cmd_result(cmd) + return cls._ceph_cmd(cmd) + + @classmethod + def _ceph_create_tmp_file(cls, content): + """Create a temporary file in the remote cluster""" + file_name = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(20)) + file_path = '/tmp/{}'.format(file_name) + cls._cmd(['sh', '-c', 'echo -n {} > {}'.format(content, file_path)]) + return file_path + def set_config_key(self, key, value): self._ceph_cmd(['config-key', 'set', key, value]) @@ -376,26 +431,26 @@ return self._ceph_cmd(['config-key', 'get', key]) @classmethod + def _cmd(cls, args): + return cls.mgr_cluster.admin_remote.run(args=args) + + @classmethod def _rbd_cmd(cls, cmd): - args = [ - 'rbd' - ] + args = ['rbd'] args.extend(cmd) - cls.mgr_cluster.admin_remote.run(args=args) + cls._cmd(args) @classmethod def _radosgw_admin_cmd(cls, cmd): - args = [ - 'radosgw-admin' - ] + args = ['radosgw-admin'] args.extend(cmd) - cls.mgr_cluster.admin_remote.run(args=args) + cls._cmd(args) @classmethod def _rados_cmd(cls, cmd): args = ['rados'] args.extend(cmd) - cls.mgr_cluster.admin_remote.run(args=args) + cls._cmd(args) @classmethod def mons(cls): @@ -430,6 +485,7 @@ JTuple = namedtuple('JList', ['elem_typs']) +JUnion = namedtuple('JUnion', ['elem_typs']) class JObj(namedtuple('JObj', ['sub_elems', 'allow_unknown', 'none', 'unknown_schema'])): def __new__(cls, sub_elems, allow_unknown=False, none=False, unknown_schema=None): @@ -459,6 +515,10 @@ ... ds = JObj({'a': int, 'b': str, 'c': JList(int)}) ... _validate_json(d, ds) True + >>> _validate_json({'num': 1}, JObj({'num': JUnion([int,float])})) + True + >>> _validate_json({'num': 'a'}, JObj({'num': JUnion([int,float])})) + False """ if isinstance(schema, JAny): if not schema.none and val is None: @@ -477,6 +537,14 @@ if isinstance(schema, JTuple): return all(_validate_json(val[i], typ, path + [i]) for i, typ in enumerate(schema.elem_typs)) + if isinstance(schema, JUnion): + for typ in schema.elem_typs: + try: + if _validate_json(val, typ, path): + return True + except _ValError: + pass + return False if isinstance(schema, JObj): if val is None and schema.none: return True diff -Nru ceph-14.2.11/qa/tasks/mgr/dashboard/test_auth.py ceph-14.2.18/qa/tasks/mgr/dashboard/test_auth.py --- ceph-14.2.11/qa/tasks/mgr/dashboard/test_auth.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/dashboard/test_auth.py 2021-03-15 17:46:20.000000000 +0000 @@ -5,6 +5,8 @@ import time import jwt +from teuthology.orchestra.run import \ + CommandFailedError # pylint: disable=import-error from .helper import DashboardTestCase @@ -18,7 +20,7 @@ self.reset_session() def _validate_jwt_token(self, token, username, permissions): - payload = jwt.decode(token, verify=False) + payload = jwt.decode(token, options={'verify_signature': False}) self.assertIn('username', payload) self.assertEqual(payload['username'], username) @@ -29,7 +31,12 @@ self.assertIn('create', perms) self.assertIn('delete', perms) + def test_login_without_password(self): + with self.assertRaises(CommandFailedError): + self.create_user('admin2', '', ['administrator']) + def test_a_set_login_credentials(self): + # test with Authorization header self.create_user('admin2', 'admin2', ['administrator']) self._post("/api/auth", {'username': 'admin2', 'password': 'admin2'}) self.assertStatus(201) @@ -37,13 +44,29 @@ self._validate_jwt_token(data['token'], "admin2", data['permissions']) self.delete_user('admin2') + # test with Cookies set + self.create_user('admin2', 'admin2', ['administrator']) + self._post("/api/auth", {'username': 'admin2', 'password': 'admin2'}, set_cookies=True) + self.assertStatus(201) + data = self.jsonBody() + self._validate_jwt_token(data['token'], "admin2", data['permissions']) + self.delete_user('admin2') + def test_login_valid(self): + # test with Authorization header self._post("/api/auth", {'username': 'admin', 'password': 'admin'}) self.assertStatus(201) data = self.jsonBody() self._validate_jwt_token(data['token'], "admin", data['permissions']) + # test with Cookies set + self._post("/api/auth", {'username': 'admin', 'password': 'admin'}, set_cookies=True) + self.assertStatus(201) + data = self.jsonBody() + self._validate_jwt_token(data['token'], "admin", data['permissions']) + def test_login_invalid(self): + # test with Authorization header self._post("/api/auth", {'username': 'admin', 'password': 'inval'}) self.assertStatus(400) self.assertJsonBody({ @@ -52,18 +75,17 @@ "detail": "Invalid credentials" }) - def test_login_without_password(self): - self.create_user('admin2', '', ['administrator']) - self._post("/api/auth", {'username': 'admin2', 'password': ''}) + # test with Cookies set + self._post("/api/auth", {'username': 'admin', 'password': 'inval'}, set_cookies=True) self.assertStatus(400) self.assertJsonBody({ "component": "auth", "code": "invalid_credentials", "detail": "Invalid credentials" }) - self.delete_user('admin2') def test_logout(self): + # test with Authorization header self._post("/api/auth", {'username': 'admin', 'password': 'admin'}) self.assertStatus(201) data = self.jsonBody() @@ -78,7 +100,23 @@ self.assertStatus(401) self.set_jwt_token(None) + # test with Cookies set + self._post("/api/auth", {'username': 'admin', 'password': 'admin'}, set_cookies=True) + self.assertStatus(201) + data = self.jsonBody() + self._validate_jwt_token(data['token'], "admin", data['permissions']) + self.set_jwt_token(data['token']) + self._post("/api/auth/logout", set_cookies=True) + self.assertStatus(200) + self.assertJsonBody({ + "redirect_url": "#/login" + }) + self._get("/api/host", set_cookies=True) + self.assertStatus(401) + self.set_jwt_token(None) + def test_token_ttl(self): + # test with Authorization header self._ceph_cmd(['dashboard', 'set-jwt-token-ttl', '5']) self._post("/api/auth", {'username': 'admin', 'password': 'admin'}) self.assertStatus(201) @@ -91,7 +129,21 @@ self._ceph_cmd(['dashboard', 'set-jwt-token-ttl', '28800']) self.set_jwt_token(None) + # test with Cookies set + self._ceph_cmd(['dashboard', 'set-jwt-token-ttl', '5']) + self._post("/api/auth", {'username': 'admin', 'password': 'admin'}, set_cookies=True) + self.assertStatus(201) + self.set_jwt_token(self.jsonBody()['token']) + self._get("/api/host", set_cookies=True) + self.assertStatus(200) + time.sleep(6) + self._get("/api/host") + self.assertStatus(401) + self._ceph_cmd(['dashboard', 'set-jwt-token-ttl', '28800']) + self.set_jwt_token(None) + def test_remove_from_blacklist(self): + # test with Authorization header self._ceph_cmd(['dashboard', 'set-jwt-token-ttl', '5']) self._post("/api/auth", {'username': 'admin', 'password': 'admin'}) self.assertStatus(201) @@ -111,11 +163,37 @@ self._post("/api/auth/logout") self.assertStatus(200) + # test with Cookies set + self._ceph_cmd(['dashboard', 'set-jwt-token-ttl', '5']) + self._post("/api/auth", {'username': 'admin', 'password': 'admin'}, set_cookies=True) + self.assertStatus(201) + self.set_jwt_token(self.jsonBody()['token']) + # the following call adds the token to the blocklist + self._post("/api/auth/logout", set_cookies=True) + self.assertStatus(200) + self._get("/api/host", set_cookies=True) + self.assertStatus(401) + time.sleep(6) + self._ceph_cmd(['dashboard', 'set-jwt-token-ttl', '28800']) + self.set_jwt_token(None) + self._post("/api/auth", {'username': 'admin', 'password': 'admin'}, set_cookies=True) + self.assertStatus(201) + self.set_jwt_token(self.jsonBody()['token']) + # the following call removes expired tokens from the blocklist + self._post("/api/auth/logout", set_cookies=True) + self.assertStatus(200) + def test_unauthorized(self): + # test with Authorization header self._get("/api/host") self.assertStatus(401) + # test with Cookies set + self._get("/api/host", set_cookies=True) + self.assertStatus(401) + def test_invalidate_token_by_admin(self): + # test with Authorization header self._get("/api/host") self.assertStatus(401) self.create_user('user', 'user', ['read-only']) @@ -126,7 +204,7 @@ self._get("/api/host") self.assertStatus(200) time.sleep(1) - self._ceph_cmd(['dashboard', 'ac-user-set-password', 'user', 'user2']) + self._ceph_cmd_with_secret(['dashboard', 'ac-user-set-password', 'user'], 'user2') time.sleep(1) self._get("/api/host") self.assertStatus(401) @@ -137,3 +215,26 @@ self._get("/api/host") self.assertStatus(200) self.delete_user("user") + + # test with Cookies set + self._get("/api/host", set_cookies=True) + self.assertStatus(401) + self.create_user('user', 'user', ['read-only']) + time.sleep(1) + self._post("/api/auth", {'username': 'user', 'password': 'user'}, set_cookies=True) + self.assertStatus(201) + self.set_jwt_token(self.jsonBody()['token']) + self._get("/api/host", set_cookies=True) + self.assertStatus(200) + time.sleep(1) + self._ceph_cmd_with_secret(['dashboard', 'ac-user-set-password', 'user'], 'user2') + time.sleep(1) + self._get("/api/host", set_cookies=True) + self.assertStatus(401) + self.set_jwt_token(None) + self._post("/api/auth", {'username': 'user', 'password': 'user2'}, set_cookies=True) + self.assertStatus(201) + self.set_jwt_token(self.jsonBody()['token']) + self._get("/api/host", set_cookies=True) + self.assertStatus(200) + self.delete_user("user") diff -Nru ceph-14.2.11/qa/tasks/mgr/dashboard/test_ganesha.py ceph-14.2.18/qa/tasks/mgr/dashboard/test_ganesha.py --- ceph-14.2.11/qa/tasks/mgr/dashboard/test_ganesha.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/dashboard/test_ganesha.py 2021-03-15 17:46:20.000000000 +0000 @@ -40,8 +40,8 @@ 'user', 'create', '--uid', 'admin', '--display-name', 'admin', '--system', '--access-key', 'admin', '--secret', 'admin' ]) - cls._ceph_cmd(['dashboard', 'set-rgw-api-secret-key', 'admin']) - cls._ceph_cmd(['dashboard', 'set-rgw-api-access-key', 'admin']) + cls._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-secret-key'], 'admin') + cls._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-access-key'], 'admin') @classmethod def tearDownClass(cls): diff -Nru ceph-14.2.11/qa/tasks/mgr/dashboard/test_health.py ceph-14.2.18/qa/tasks/mgr/dashboard/test_health.py --- ceph-14.2.11/qa/tasks/mgr/dashboard/test_health.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/dashboard/test_health.py 2021-03-15 17:46:20.000000000 +0000 @@ -161,7 +161,8 @@ 'wr_bytes': int, 'compress_bytes_used': int, 'compress_under_bytes': int, - 'stored_raw': int + 'stored_raw': int, + 'avail_raw': int }), 'name': str, 'id': int diff -Nru ceph-14.2.11/qa/tasks/mgr/dashboard/test_pool.py ceph-14.2.18/qa/tasks/mgr/dashboard/test_pool.py --- ceph-14.2.11/qa/tasks/mgr/dashboard/test_pool.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/dashboard/test_pool.py 2021-03-15 17:46:20.000000000 +0000 @@ -6,7 +6,7 @@ import time from contextlib import contextmanager -from .helper import DashboardTestCase, JAny, JList, JObj +from .helper import DashboardTestCase, JAny, JList, JObj, JUnion log = logging.getLogger(__name__) @@ -23,14 +23,16 @@ }, allow_unknown=True) pool_list_stat_schema = JObj(sub_elems={ - 'latest': int, + 'latest': JUnion([int,float]), 'rate': float, 'rates': JList(JAny(none=False)), }) pool_list_stats_schema = JObj(sub_elems={ + 'avail_raw': pool_list_stat_schema, 'bytes_used': pool_list_stat_schema, 'max_avail': pool_list_stat_schema, + 'percent_used': pool_list_stat_schema, 'rd_bytes': pool_list_stat_schema, 'wr_bytes': pool_list_stat_schema, 'rd': pool_list_stat_schema, @@ -44,8 +46,22 @@ })) @contextmanager - def __create_pool(self, name, data=None): - pool_data = data or { + def __yield_pool(self, name=None, data=None, deletion_name=None): + """ + Use either just a name or whole description of a pool to create one. + This also validates the correct creation and deletion after the pool was used. + + :param name: Name of the pool + :param data: Describes the pool in full length + :param deletion_name: Only needed if the pool was renamed + :return: + """ + data = self._create_pool(name, data) + yield data + self._delete_pool(deletion_name or data['pool']) + + def _create_pool(self, name, data): + data = data or { 'pool': name, 'pg_num': '4', 'pool_type': 'replicated', @@ -59,15 +75,16 @@ 'rbd_qos_iops_limit': 5000, } } - self._task_post('/api/pool/', pool_data) + self._task_post('/api/pool/', data) self.assertStatus(201) - time.sleep(5) - self._validate_pool_properties(pool_data, self._get_pool(name)) - yield pool_data + self._validate_pool_properties(data, self._get_pool(data['pool'])) + return data + + def _delete_pool(self, name): self._task_delete('/api/pool/' + name) self.assertStatus(204) - def _validate_pool_properties(self, data, pool): + def _validate_pool_properties(self, data, pool, timeout=DashboardTestCase.TIMEOUT_HEALTH_CLEAR): for prop, value in data.items(): if prop == 'pool_type': self.assertEqual(pool['type'], value) @@ -95,13 +112,15 @@ # 1. The default value cannot be given to this method, which becomes relevant # when resetting a value, because it's not always zero. # 2. The expected `source` cannot be given to this method, and it cannot - # relibably be determined (see 1) + # reliably be determined (see 1) pass else: self.assertEqual(pool[prop], value, '{}: {} != {}'.format(prop, pool[prop], value)) - health = self._get('/api/health/minimal')['health'] - self.assertEqual(health['status'], 'HEALTH_OK', msg='health={}'.format(health)) + self.wait_until_equal(self._get_health_status, 'HEALTH_OK', timeout) + + def _get_health_status(self): + return self._get('/api/health/minimal')['health']['status'] def _get_pool(self, pool_name): pool = self._get("/api/pool/" + pool_name) @@ -118,21 +137,14 @@ """ pgp_prop = 'pg_placement_num' t = 0 - while (int(value) != pool[pgp_prop] or self._get('/api/health/minimal')['health']['status'] - != 'HEALTH_OK') and t < 180: + while (int(value) != pool[pgp_prop] or self._get_health_status() != 'HEALTH_OK') \ + and t < 180: time.sleep(2) t += 2 pool = self._get_pool(pool['pool_name']) for p in ['pg_num', pgp_prop]: # Should have the same values self.assertEqual(pool[p], int(value), '{}: {} != {}'.format(p, pool[p], value)) - @classmethod - def tearDownClass(cls): - super(PoolTest, cls).tearDownClass() - for name in ['dashboard_pool1', 'dashboard_pool2', 'dashboard_pool3']: - cls._ceph_cmd(['osd', 'pool', 'delete', name, name, '--yes-i-really-really-mean-it']) - cls._ceph_cmd(['osd', 'erasure-code-profile', 'rm', 'ecprofile']) - @DashboardTestCase.RunAs('test', 'test', [{'pool': ['create', 'update', 'delete']}]) def test_read_access_permissions(self): self._get('/api/pool') @@ -206,40 +218,32 @@ self.assertNotIn('flags_names', pool) self.assertSchema(pool['configuration'], self.pool_rbd_conf_schema) - def test_pool_create(self): - self._ceph_cmd(['osd', 'crush', 'rule', 'create-erasure', 'ecrule']) - self._ceph_cmd( - ['osd', 'erasure-code-profile', 'set', 'ecprofile', 'crush-failure-domain=osd']) - - pool = { + def test_pool_create_with_two_applications(self): + self.__yield_pool(None, { 'pool': 'dashboard_pool1', - 'pg_num': '32', + 'pg_num': '8', 'pool_type': 'replicated', 'application_metadata': ['rbd', 'sth'], - } - self._task_post('/api/pool/', pool) - self.assertStatus(201) - self._validate_pool_properties(pool, self._get_pool(pool['pool'])) - self._task_delete("/api/pool/" + pool['pool']) - self.assertStatus(204) + }) - pool = { + def test_pool_create_with_ecp_and_rule(self): + self._ceph_cmd(['osd', 'crush', 'rule', 'create-erasure', 'ecrule']) + self._ceph_cmd( + ['osd', 'erasure-code-profile', 'set', 'ecprofile', 'crush-failure-domain=osd']) + self.__yield_pool(None, { 'pool': 'dashboard_pool2', - 'pg_num': '32', + 'pg_num': '8', 'pool_type': 'erasure', 'application_metadata': ['rbd'], 'erasure_code_profile': 'ecprofile', 'crush_rule': 'ecrule', - } - self._task_post('/api/pool/', pool) - self.assertStatus(201) - self._validate_pool_properties(pool, self._get_pool(pool['pool'])) - self._task_delete("/api/pool/" + pool['pool']) - self.assertStatus(204) + }) + self._ceph_cmd(['osd', 'erasure-code-profile', 'rm', 'ecprofile']) + def test_pool_create_with_compression(self): pool = { 'pool': 'dashboard_pool3', - 'pg_num': '32', + 'pg_num': '8', 'pool_type': 'replicated', 'compression_algorithm': 'zstd', 'compression_mode': 'aggressive', @@ -250,51 +254,46 @@ 'rbd_qos_iops_limit': None, }, } - expected_configuration = [{ - 'name': 'rbd_qos_bps_limit', - 'source': 1, - 'value': '2048', - }, { - 'name': 'rbd_qos_iops_limit', - 'source': 0, - 'value': '0', - }] - self._task_post('/api/pool/', pool) - self.assertStatus(201) - new_pool = self._get_pool(pool['pool']) - self._validate_pool_properties(pool, new_pool) - for conf in expected_configuration: - self.assertIn(conf, new_pool['configuration']) - - self._task_delete("/api/pool/" + pool['pool']) - self.assertStatus(204) + with self.__yield_pool(None, pool): + expected_configuration = [{ + 'name': 'rbd_qos_bps_limit', + 'source': 1, + 'value': '2048', + }, { + 'name': 'rbd_qos_iops_limit', + 'source': 0, + 'value': '0', + }] + new_pool = self._get_pool(pool['pool']) + for conf in expected_configuration: + self.assertIn(conf, new_pool['configuration']) def test_pool_update_metadata(self): pool_name = 'pool_update_metadata' - with self.__create_pool(pool_name): + with self.__yield_pool(pool_name): props = {'application_metadata': ['rbd', 'sth']} self._task_put('/api/pool/{}'.format(pool_name), props) - time.sleep(5) - self._validate_pool_properties(props, self._get_pool(pool_name)) + self._validate_pool_properties(props, self._get_pool(pool_name), + self.TIMEOUT_HEALTH_CLEAR * 2) properties = {'application_metadata': ['rgw']} self._task_put('/api/pool/' + pool_name, properties) - time.sleep(5) - self._validate_pool_properties(properties, self._get_pool(pool_name)) + self._validate_pool_properties(properties, self._get_pool(pool_name), + self.TIMEOUT_HEALTH_CLEAR * 2) properties = {'application_metadata': ['rbd', 'sth']} self._task_put('/api/pool/' + pool_name, properties) - time.sleep(5) - self._validate_pool_properties(properties, self._get_pool(pool_name)) + self._validate_pool_properties(properties, self._get_pool(pool_name), + self.TIMEOUT_HEALTH_CLEAR * 2) properties = {'application_metadata': ['rgw']} self._task_put('/api/pool/' + pool_name, properties) - time.sleep(5) - self._validate_pool_properties(properties, self._get_pool(pool_name)) + self._validate_pool_properties(properties, self._get_pool(pool_name), + self.TIMEOUT_HEALTH_CLEAR * 2) def test_pool_update_configuration(self): pool_name = 'pool_update_configuration' - with self.__create_pool(pool_name): + with self.__yield_pool(pool_name): configuration = { 'rbd_qos_bps_limit': 1024, 'rbd_qos_iops_limit': None, @@ -316,7 +315,7 @@ def test_pool_update_compression(self): pool_name = 'pool_update_compression' - with self.__create_pool(pool_name): + with self.__yield_pool(pool_name): properties = { 'compression_algorithm': 'zstd', 'compression_mode': 'aggressive', @@ -329,7 +328,7 @@ def test_pool_update_unset_compression(self): pool_name = 'pool_update_unset_compression' - with self.__create_pool(pool_name): + with self.__yield_pool(pool_name): self._task_put('/api/pool/' + pool_name, {'compression_mode': 'unset'}) time.sleep(5) self._validate_pool_properties({ diff -Nru ceph-14.2.11/qa/tasks/mgr/dashboard/test_requests.py ceph-14.2.18/qa/tasks/mgr/dashboard/test_requests.py --- ceph-14.2.11/qa/tasks/mgr/dashboard/test_requests.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/dashboard/test_requests.py 2021-03-15 17:46:20.000000000 +0000 @@ -21,3 +21,12 @@ self.assertHeaders({ 'Content-Type': 'application/json', }) + + def test_server(self): + self._get('/api/summary') + self.assertHeaders({ + 'server': 'Ceph-Dashboard', + 'Content-Security-Policy': "frame-ancestors 'self';", + 'X-Content-Type-Options': 'nosniff', + 'Strict-Transport-Security': 'max-age=63072000; includeSubDomains; preload' + }) diff -Nru ceph-14.2.11/qa/tasks/mgr/dashboard/test_rgw.py ceph-14.2.18/qa/tasks/mgr/dashboard/test_rgw.py --- ceph-14.2.11/qa/tasks/mgr/dashboard/test_rgw.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/dashboard/test_rgw.py 2021-03-15 17:46:20.000000000 +0000 @@ -26,8 +26,8 @@ '--system', '--access-key', 'admin', '--secret', 'admin' ]) # Update the dashboard configuration. - cls._ceph_cmd(['dashboard', 'set-rgw-api-secret-key', 'admin']) - cls._ceph_cmd(['dashboard', 'set-rgw-api-access-key', 'admin']) + cls._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-secret-key'], 'admin') + cls._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-access-key'], 'admin') # Create a test user? if cls.create_test_user: cls._radosgw_admin_cmd([ @@ -75,13 +75,13 @@ self._ceph_cmd(['mgr', 'module', 'enable', 'dashboard', '--force']) # Set the default credentials. self._ceph_cmd(['dashboard', 'set-rgw-api-user-id', '']) - self._ceph_cmd(['dashboard', 'set-rgw-api-secret-key', 'admin']) - self._ceph_cmd(['dashboard', 'set-rgw-api-access-key', 'admin']) + self._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-secret-key'], 'admin') + self._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-access-key'], 'admin') super(RgwApiCredentialsTest, self).setUp() def test_no_access_secret_key(self): - self._ceph_cmd(['dashboard', 'set-rgw-api-secret-key', '']) - self._ceph_cmd(['dashboard', 'set-rgw-api-access-key', '']) + self._ceph_cmd(['dashboard', 'reset-rgw-api-secret-key']) + self._ceph_cmd(['dashboard', 'reset-rgw-api-access-key']) resp = self._get('/api/rgw/user') self.assertStatus(500) self.assertIn('detail', resp) @@ -164,6 +164,20 @@ self.assertEqual(len(data), 1) self.assertIn('teuth-test-bucket', data) + # List all buckets with stats. + data = self._get('/api/rgw/bucket?stats=true') + self.assertStatus(200) + self.assertEqual(len(data), 1) + self.assertSchema(data[0], JObj(sub_elems={ + 'bid': JLeaf(str), + 'bucket': JLeaf(str), + 'bucket_quota': JObj(sub_elems={}, allow_unknown=True), + 'id': JLeaf(str), + 'owner': JLeaf(str), + 'usage': JObj(sub_elems={}, allow_unknown=True), + 'tenant': JLeaf(str), + }, allow_unknown=True)) + # Get the bucket. data = self._get('/api/rgw/bucket/teuth-test-bucket') self.assertStatus(200) @@ -173,7 +187,8 @@ 'tenant': JLeaf(str), 'bucket': JLeaf(str), 'bucket_quota': JObj(sub_elems={}, allow_unknown=True), - 'owner': JLeaf(str) + 'owner': JLeaf(str), + 'usage': JObj(sub_elems={}, allow_unknown=True), }, allow_unknown=True)) self.assertEqual(data['bucket'], 'teuth-test-bucket') self.assertEqual(data['owner'], 'admin') @@ -317,8 +332,8 @@ '--system', '--access-key=admin', '--secret=admin' ]) self._ceph_cmd(['dashboard', 'set-rgw-api-user-id', 'admin']) - self._ceph_cmd(['dashboard', 'set-rgw-api-secret-key', 'admin']) - self._ceph_cmd(['dashboard', 'set-rgw-api-access-key', 'admin']) + self._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-secret-key'], 'admin') + self._ceph_cmd_with_secret(['dashboard', 'set-rgw-api-access-key'], 'admin') data = self._get('/api/rgw/status') self.assertStatus(200) diff -Nru ceph-14.2.11/qa/tasks/mgr/mgr_test_case.py ceph-14.2.18/qa/tasks/mgr/mgr_test_case.py --- ceph-14.2.11/qa/tasks/mgr/mgr_test_case.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/mgr_test_case.py 2021-03-15 17:46:20.000000000 +0000 @@ -138,7 +138,7 @@ mgr_map = cls.mgr_cluster.get_mgr_map() done = mgr_map['active_gid'] != initial_gid and mgr_map['available'] if done: - log.info("Restarted after module load (new active {0}/{1})".format( + log.debug("Restarted after module load (new active {0}/{1})".format( mgr_map['active_name'] , mgr_map['active_gid'])) return done cls.wait_until_true(has_restarted, timeout=30) @@ -159,7 +159,7 @@ uri = mgr_map['x']['services'][service_name] - log.info("Found {0} at {1} (daemon {2}/{3})".format( + log.debug("Found {0} at {1} (daemon {2}/{3})".format( service_name, uri, mgr_map['x']['active_name'], mgr_map['x']['active_gid'])) @@ -183,7 +183,7 @@ cls.mgr_cluster.mgr_fail(mgr_id) for mgr_id in cls.mgr_cluster.mgr_ids: - log.info("Using port {0} for {1} on mgr.{2}".format( + log.debug("Using port {0} for {1} on mgr.{2}".format( assign_port, module_name, mgr_id )) cls.mgr_cluster.set_module_localized_conf(module_name, mgr_id, @@ -198,7 +198,7 @@ mgr_map = cls.mgr_cluster.get_mgr_map() done = mgr_map['available'] if done: - log.info("Available after assign ports (new active {0}/{1})".format( + log.debug("Available after assign ports (new active {0}/{1})".format( mgr_map['active_name'], mgr_map['active_gid'])) return done cls.wait_until_true(is_available, timeout=30) diff -Nru ceph-14.2.11/qa/tasks/mgr/test_dashboard.py ceph-14.2.18/qa/tasks/mgr/test_dashboard.py --- ceph-14.2.11/qa/tasks/mgr/test_dashboard.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/test_dashboard.py 2021-03-15 17:46:20.000000000 +0000 @@ -26,6 +26,16 @@ "mgr/dashboard/standby_error_status_code", "500") + def wait_until_webserver_available(self, url): + def _check_connection(): + try: + requests.get(url, allow_redirects=False, verify=False) + return True + except requests.ConnectionError: + pass + return False + self.wait_until_true(_check_connection, timeout=30) + def test_standby(self): original_active_id = self.mgr_cluster.get_active_id() original_uri = self._get_uri("dashboard") @@ -46,6 +56,9 @@ self.assertNotEqual(original_uri, failed_over_uri) + # Wait until web server of the standby node is settled. + self.wait_until_webserver_available(original_uri) + # The original active daemon should have come back up as a standby # and be doing redirects to the new active daemon. r = requests.get(original_uri, allow_redirects=False, verify=False) @@ -53,7 +66,7 @@ self.assertEqual(r.headers['Location'], failed_over_uri) # Ensure that every URL redirects to the active daemon. - r = requests.get("{}/runtime.js".format(original_uri), + r = requests.get("{}/runtime.js".format(original_uri.strip('/')), allow_redirects=False, verify=False) self.assertEqual(r.status_code, 303) @@ -83,6 +96,9 @@ self.assertNotEqual(original_uri, failed_over_uri) + # Wait until web server of the standby node is settled. + self.wait_until_webserver_available(original_uri) + # Redirection should be disabled now, instead a 500 must be returned. r = requests.get(original_uri, allow_redirects=False, verify=False) self.assertEqual(r.status_code, 500) diff -Nru ceph-14.2.11/qa/tasks/mgr/test_progress.py ceph-14.2.18/qa/tasks/mgr/test_progress.py --- ceph-14.2.11/qa/tasks/mgr/test_progress.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/test_progress.py 2021-03-15 17:46:20.000000000 +0000 @@ -37,6 +37,73 @@ log.info(json.dumps(p, indent=2)) return p['events'] + p['completed'] + def _events_in_progress(self): + """ + this function returns all events that are in progress + """ + p = self._get_progress() + log.info(json.dumps(p, indent=2)) + return p['events'] + + def _completed_events(self): + """ + This function returns all events that are completed + """ + p = self._get_progress() + log.info(json.dumps(p, indent=2)) + return p['completed'] + + def is_osd_marked_out(self, ev): + return ev['message'].endswith('marked out') + + def is_osd_marked_in(self, ev): + return ev['message'].endswith('marked in') + + def _get_osd_in_out_events(self, marked='both'): + """ + Return the event that deals with OSDs being + marked in, out or both + """ + + marked_in_events = [] + marked_out_events = [] + + events_in_progress = self._events_in_progress() + for ev in events_in_progress: + if self.is_osd_marked_out(ev): + marked_out_events.append(ev) + elif self.is_osd_marked_in(ev): + marked_in_events.append(ev) + + if marked == 'both': + return [marked_in_events] + [marked_out_events] + elif marked == 'in': + return marked_in_events + else: + return marked_out_events + + def _osd_in_out_events_count(self, marked='both'): + """ + Count the number of on going recovery events that deals with + OSDs being marked in, out or both. + """ + events_in_progress = self._events_in_progress() + marked_in_count = 0 + marked_out_count = 0 + + for ev in events_in_progress: + if self.is_osd_marked_out(ev): + marked_out_count += 1 + elif self.is_osd_marked_in(ev): + marked_in_count += 1 + + if marked == 'both': + return marked_in_count + marked_out_count + elif marked == 'in': + return marked_in_count + else: + return marked_out_count + def _setup_pool(self, size=None): self.mgr_cluster.mon_manager.create_pool(self.POOL) if size is not None: @@ -98,14 +165,48 @@ 'osd', 'out', str(osd_id)) # Wait for a progress event to pop up - self.wait_until_equal(lambda: len(self._all_events()), 1, - timeout=self.EVENT_CREATION_PERIOD) - ev = self._all_events()[0] + self.wait_until_equal(lambda: self._osd_in_out_events_count('out'), 1, + timeout=self.EVENT_CREATION_PERIOD*2, + period=1) + ev = self._get_osd_in_out_events('out')[0] log.info(json.dumps(ev, indent=1)) self.assertIn("Rebalancing after osd.0 marked out", ev['message']) - + return ev + def _simulate_back_in(self, osd_ids, initial_event): + + for osd_id in osd_ids: + self.mgr_cluster.mon_manager.raw_cluster_cmd( + 'osd', 'in', str(osd_id)) + + # First Event should complete promptly + self.wait_until_true(lambda: self._is_complete(initial_event['id']), + timeout=self.EVENT_CREATION_PERIOD) + + try: + # Wait for progress event marked in to pop up + self.wait_until_equal(lambda: self._osd_in_out_events_count('in'), 1, + timeout=self.EVENT_CREATION_PERIOD*2, + period=1) + except RuntimeError as ex: + if not "Timed out after" in str(ex): + raise ex + + log.info("There was no PGs affected by osd being marked in") + return None + + new_event = self._get_osd_in_out_events('in')[0] + return new_event + + def _no_events_anywhere(self): + """ + Whether there are any live or completed events + """ + p = self._get_progress() + total_events = len(p['events']) + len(p['completed']) + return total_events == 0 + def _is_quiet(self): """ Whether any progress events are live. @@ -167,14 +268,17 @@ """ When a recovery is underway, but then the out OSD comes back in, such that recovery is no longer necessary. + It should create another event for when osd is marked in + and cancel the one that is still ongoing. """ - ev = self._simulate_failure() + ev1 = self._simulate_failure() - self.mgr_cluster.mon_manager.raw_cluster_cmd('osd', 'in', '0') + ev2 = self._simulate_back_in([0], ev1) + + # Wait for progress event to ultimately complete + self.wait_until_true(lambda: self._is_complete(ev2['id']), + timeout=self.RECOVERY_PERIOD) - # Event should complete promptly - self.wait_until_true(lambda: self._is_complete(ev['id']), - timeout=self.EVENT_CREATION_PERIOD) self.assertTrue(self._is_quiet()) def test_osd_cannot_recover(self): @@ -224,3 +328,49 @@ time.sleep(self.EVENT_CREATION_PERIOD) self.assertEqual(len(self._all_events()), osd_count - pool_size) + + def test_turn_off_module(self): + """ + When the the module is turned off, there should not + be any on going events or completed events. + Also module should not accept any kind of Remote Event + coming in from other module, however, once it is turned + back, on creating an event should be working as it is. + """ + + pool_size = 3 + self._setup_pool(size=pool_size) + self._write_some_data(self.WRITE_PERIOD) + + self.mgr_cluster.mon_manager.raw_cluster_cmd("progress", "off") + + self.mgr_cluster.mon_manager.raw_cluster_cmd( + 'osd', 'out', '0') + + time.sleep(self.EVENT_CREATION_PERIOD) + + self.mgr_cluster.mon_manager.raw_cluster_cmd( + 'osd', 'in', '0') + + time.sleep(self.EVENT_CREATION_PERIOD) + + self.assertTrue(self._is_quiet()) + + self.mgr_cluster.mon_manager.raw_cluster_cmd("progress", "on") + + self._write_some_data(self.WRITE_PERIOD) + + self.mgr_cluster.mon_manager.raw_cluster_cmd( + 'osd', 'out', '0') + + # Wait for a progress event to pop up + self.wait_until_equal(lambda: len(self._all_events()), 1, + timeout=self.EVENT_CREATION_PERIOD*2) + + ev = self._all_events()[0] + + log.info(json.dumps(ev, indent=1)) + + self.wait_until_true(lambda: self._is_complete(ev['id']), + timeout=self.RECOVERY_PERIOD) + self.assertTrue(self._is_quiet()) diff -Nru ceph-14.2.11/qa/tasks/mgr/test_prometheus.py ceph-14.2.18/qa/tasks/mgr/test_prometheus.py --- ceph-14.2.11/qa/tasks/mgr/test_prometheus.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/mgr/test_prometheus.py 2021-03-15 17:46:20.000000000 +0000 @@ -48,6 +48,7 @@ r = requests.get(original_uri + "metrics", allow_redirects=False) self.assertEqual(r.status_code, 200) self.assertEqual(r.headers["content-type"], "text/plain;charset=utf-8") + self.assertEqual(r.headers["server"], "Ceph-Prometheus") def test_urls(self): self._assign_ports("prometheus", "server_port") diff -Nru ceph-14.2.11/qa/tasks/radosgw_admin_rest.py ceph-14.2.18/qa/tasks/radosgw_admin_rest.py --- ceph-14.2.11/qa/tasks/radosgw_admin_rest.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/radosgw_admin_rest.py 2021-03-15 17:46:20.000000000 +0000 @@ -464,6 +464,11 @@ assert out['usage']['rgw.main']['num_objects'] == 1 assert out['usage']['rgw.main']['size_kb'] > 0 + # TESTCASE 'bucket-stats6', 'bucket', 'stats', 'non-existent bucket', 'fails, 'bucket not found error' + (ret, out) = rgwadmin_rest(admin_conn, ['bucket', 'info'], {'bucket' : 'doesnotexist'}) + assert ret == 404 + assert out['Code'] == 'NoSuchBucket' + # reclaim it key.delete() diff -Nru ceph-14.2.11/qa/tasks/ragweed.py ceph-14.2.18/qa/tasks/ragweed.py --- ceph-14.2.11/qa/tasks/ragweed.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/ragweed.py 2021-03-15 17:46:20.000000000 +0000 @@ -19,6 +19,33 @@ log = logging.getLogger(__name__) + +def get_ragweed_branches(config, client_conf): + """ + figure out the ragweed branch according to the per-client settings + + use force-branch is specified, and fall back to the ones deduced using ceph + branch under testing + """ + force_branch = client_conf.get('force-branch', None) + if force_branch: + return [force_branch] + else: + S3_BRANCHES = ['master', 'nautilus', 'mimic', + 'luminous', 'kraken', 'jewel'] + ceph_branch = config.get('branch') + suite_branch = config.get('suite_branch', ceph_branch) + if suite_branch in S3_BRANCHES: + branch = client_conf.get('branch', 'ceph-' + suite_branch) + else: + branch = client_conf.get('branch', suite_branch) + default_branch = client_conf.get('default-branch', None) + if default_branch: + return [branch, default_branch] + else: + return [branch] + + @contextlib.contextmanager def download(ctx, config): """ @@ -31,46 +58,21 @@ assert isinstance(config, dict) log.info('Downloading ragweed...') testdir = teuthology.get_testdir(ctx) - s3_branches = [ 'master', 'nautilus', 'mimic', 'luminous', 'kraken', 'jewel' ] for (client, cconf) in config.items(): - default_branch = '' - branch = cconf.get('force-branch', None) - if not branch: - default_branch = cconf.get('default-branch', None) - ceph_branch = ctx.config.get('branch') - suite_branch = ctx.config.get('suite_branch', ceph_branch) - ragweed_repo = ctx.config.get('ragweed_repo', teuth_config.ceph_git_base_url + 'ragweed.git') - if suite_branch in s3_branches: - branch = cconf.get('branch', 'ceph-' + suite_branch) - else: - branch = cconf.get('branch', suite_branch) - if not branch: - raise ValueError( - "Could not determine what branch to use for ragweed!") - else: + ragweed_repo = ctx.config.get('ragweed_repo', + teuth_config.ceph_git_base_url + 'ragweed.git') + for branch in get_ragweed_branches(ctx.config, cconf): log.info("Using branch '%s' for ragweed", branch) - sha1 = cconf.get('sha1') - try: - ctx.cluster.only(client).run( - args=[ - 'git', 'clone', - '-b', branch, - ragweed_repo, - '{tdir}/ragweed'.format(tdir=testdir), - ], - ) - except Exception as e: - if not default_branch: - raise e - ctx.cluster.only(client).run( - args=[ - 'git', 'clone', - '-b', default_branch, - ragweed_repo, - '{tdir}/ragweed'.format(tdir=testdir), - ], - ) + try: + ctx.cluster.only(client).sh( + script=f'git clone -b {branch} {ragweed_repo} {testdir}/ragweed') + break + except Exception as e: + exc = e + else: + raise exc + sha1 = cconf.get('sha1') if sha1 is not None: ctx.cluster.only(client).run( args=[ diff -Nru ceph-14.2.11/qa/tasks/rbd.py ceph-14.2.18/qa/tasks/rbd.py --- ceph-14.2.11/qa/tasks/rbd.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/rbd.py 2021-03-15 17:46:20.000000000 +0000 @@ -476,8 +476,7 @@ exclude: - generic/42 randomize: true - xfstests_branch: master - xfstests_url: 'https://raw.github.com/ceph/branch/master/qa' + xfstests_url: 'https://raw.github.com/ceph/ceph-ci/wip-55555/qa' """ if config is None: config = { 'all': None } diff -Nru ceph-14.2.11/qa/tasks/vstart_runner.py ceph-14.2.18/qa/tasks/vstart_runner.py --- ceph-14.2.11/qa/tasks/vstart_runner.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/tasks/vstart_runner.py 2021-03-15 17:46:20.000000000 +0000 @@ -53,6 +53,11 @@ from teuthology.config import config as teuth_config import six import logging +try: + import urllib3 + urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) +except: + pass log = logging.getLogger(__name__) @@ -144,8 +149,13 @@ def __init__(self, args, subproc, check_status, stdout, stderr): self.args = args self.subproc = subproc - self.stdout = stdout or BytesIO() - self.stderr = stderr or BytesIO() + self.stdout = stdout + self.stderr = stderr + # this variable is meant for instance of this class named fuse_daemon. + # child process of the command launched with sudo must be killed, + # since killing parent process alone has no impact on the child + # process. + self.fuse_pid = -1 self.check_status = check_status self.exitstatus = self.returncode = None @@ -162,10 +172,14 @@ out, err = self.subproc.communicate() if isinstance(self.stdout, StringIO): self.stdout.write(out.decode(errors='ignore')) + elif self.stdout is None: + pass else: self.stdout.write(out) if isinstance(self.stderr, StringIO): self.stderr.write(err.decode(errors='ignore')) + elif self.stderr is None: + pass else: self.stderr.write(err) @@ -185,21 +199,31 @@ if self.subproc.poll() is not None: out, err = self.subproc.communicate() - self.stdout.write(out) - self.stderr.write(err) + if isinstance(self.stdout, StringIO): + self.stdout.write(out.decode(errors='ignore')) + elif self.stdout is None: + pass + else: + self.stdout.write(out) + if isinstance(self.stderr, StringIO): + self.stderr.write(err.decode(errors='ignore')) + elif self.stderr is None: + pass + else: + self.stderr.write(err) self.exitstatus = self.returncode = self.subproc.returncode return True else: return False def kill(self): - log.info("kill ") + log.debug("kill ") if self.subproc.pid and not self.finished: - log.info("kill: killing pid {0} ({1})".format( + log.debug("kill: killing pid {0} ({1})".format( self.subproc.pid, self.args)) safe_kill(self.subproc.pid) else: - log.info("kill: already terminated ({0})".format(self.args)) + log.debug("kill: already terminated ({0})".format(self.args)) @property def stdin(self): @@ -266,7 +290,7 @@ args[0] )) - log.info("Running {0}".format(args)) + log.debug("Running {0}".format(args)) if shell: subproc = subprocess.Popen(quote(args), @@ -347,16 +371,16 @@ """ Return PID as an integer or None if not found """ - ps_txt = six.ensure_str(self.controller.run( - args=["ps", "ww", "-u"+str(os.getuid())] - ).stdout.getvalue()).strip() + ps_txt = self.controller.run(args=["ps", "ww", "-u"+str(os.getuid())], + stdout=StringIO()).\ + stdout.getvalue().strip() lines = ps_txt.split("\n")[1:] for line in lines: if line.find("ceph-{0} -i {1}".format(self.daemon_type, self.daemon_id)) != -1: - log.info("Found ps line for daemon: {0}".format(line)) + log.debug("Found ps line for daemon: {0}".format(line)) return int(line.split()[0]) - log.info("No match for {0} {1}: {2}".format( + log.debug("No match for {0} {1}: {2}".format( self.daemon_type, self.daemon_id, ps_txt )) return None @@ -375,14 +399,14 @@ return pid = self._get_pid() - log.info("Killing PID {0} for {1}.{2}".format(pid, self.daemon_type, self.daemon_id)) + log.debug("Killing PID {0} for {1}.{2}".format(pid, self.daemon_type, self.daemon_id)) os.kill(pid, signal.SIGTERM) waited = 0 while pid is not None: new_pid = self._get_pid() if new_pid is not None and new_pid != pid: - log.info("Killing new PID {0}".format(new_pid)) + log.debug("Killing new PID {0}".format(new_pid)) pid = new_pid os.kill(pid, signal.SIGTERM) @@ -410,7 +434,7 @@ os.kill(self._get_pid(), sig) if not silent: - log.info("Sent signal {0} to {1}.{2}".format(sig, self.daemon_type, self.daemon_id)) + log.debug("Sent signal {0} to {1}.{2}".format(sig, self.daemon_type, self.daemon_id)) def safe_kill(pid): @@ -453,9 +477,9 @@ # Previous mount existed, reuse the old name name = self.fs.name self.fs = LocalFilesystem(self.ctx, name=name) - log.info('Wait for MDS to reach steady state...') + log.debug('Wait for MDS to reach steady state...') self.fs.wait_for_daemons() - log.info('Ready to start {}...'.format(type(self).__name__)) + log.debug('Ready to start {}...'.format(type(self).__name__)) @property def _prefix(self): @@ -482,10 +506,6 @@ log.info("I think my launching pid was {0}".format(self.fuse_daemon.subproc.pid)) return path - def umount(self): - if self.is_mounted(): - super(LocalFuseMount, self).umount() - def mount(self, mount_path=None, mount_fs_name=None, mountpoint=None): if mountpoint is not None: self.mountpoint = mountpoint @@ -498,15 +518,14 @@ args=["mount", "-t", "fusectl", "/sys/fs/fuse/connections", "/sys/fs/fuse/connections"], check_status=False ) - p = self.client_remote.run( - args=["ls", "/sys/fs/fuse/connections"], - check_status=False - ) + + p = self.client_remote.run(args=["ls", "/sys/fs/fuse/connections"], + check_status=False, stdout=StringIO()) if p.exitstatus != 0: log.warning("ls conns failed with {0}, assuming none".format(p.exitstatus)) return [] - ls_str = six.ensure_str(p.stdout.getvalue().strip()) + ls_str = p.stdout.getvalue().strip() if ls_str: return [int(n) for n in ls_str.split("\n")] else: @@ -515,7 +534,7 @@ # Before starting ceph-fuse process, note the contents of # /sys/fs/fuse/connections pre_mount_conns = list_connections() - log.info("Pre-mount connections: {0}".format(pre_mount_conns)) + log.debug("Pre-mount connections: {0}".format(pre_mount_conns)) prefix = [os.path.join(BIN_PREFIX, "ceph-fuse")] if os.getuid() != 0: @@ -535,7 +554,7 @@ self.mountpoint ], wait=False) - log.info("Mounting client.{0} with pid {1}".format(self.client_id, self.fuse_daemon.subproc.pid)) + log.debug("Mounting client.{0} with pid {1}".format(self.client_id, self.fuse_daemon.subproc.pid)) # Wait for the connection reference to appear in /sys waited = 0 @@ -553,7 +572,7 @@ )) post_mount_conns = list_connections() - log.info("Post-mount connections: {0}".format(post_mount_conns)) + log.debug("Post-mount connections: {0}".format(post_mount_conns)) # Record our fuse connection number so that we can use it when # forcing an unmount @@ -575,7 +594,7 @@ to make the process killable. """ return self.client_remote.run(args=[py_version, '-c', pyscript], - wait=False) + wait=False, stdout=StringIO()) class LocalCephManager(CephManager): def __init__(self): @@ -587,7 +606,7 @@ # certain teuthology tests want to run tasks in parallel self.lock = threading.RLock() - self.log = lambda x: log.info(x) + self.log = lambda x: log.debug(x) # Don't bother constructing a map of pools: it should be empty # at test cluster start, and in any case it would be out of date @@ -620,9 +639,9 @@ args like ["osd", "dump"} return stdout string """ - proc = self.controller.run(args=[os.path.join(BIN_PREFIX, "ceph")] + \ - list(args), **kwargs) - return six.ensure_str(proc.stdout.getvalue()) + proc = self.controller.run(args=[os.path.join(BIN_PREFIX, "ceph")] +\ + list(args), **kwargs, stdout=StringIO()) + return proc.stdout.getvalue() def raw_cluster_cmd_result(self, *args, **kwargs): """ @@ -632,12 +651,15 @@ proc = self.controller.run([os.path.join(BIN_PREFIX, "ceph")] + list(args), **kwargs) return proc.exitstatus - def admin_socket(self, daemon_type, daemon_id, command, check_status=True, timeout=None): + def admin_socket(self, daemon_type, daemon_id, command, check_status=True, + timeout=None, stdout=None): + if stdout is None: + stdout = StringIO() + return self.controller.run( - args=[os.path.join(BIN_PREFIX, "ceph"), "daemon", "{0}.{1}".format(daemon_type, daemon_id)] + command, - check_status=check_status, - timeout=timeout - ) + args=[os.path.join(BIN_PREFIX, "ceph"), "daemon", + "{0}.{1}".format(daemon_type, daemon_id)] + command, + check_status=check_status, timeout=timeout, stdout=stdout) class LocalCephCluster(CephCluster): @@ -681,7 +703,7 @@ existing_str += "\n[{0}]\n".format(subsys) for key, val in kvs.items(): # Comment out existing instance if it exists - log.info("Searching for existing instance {0}/{1}".format( + log.debug("Searching for existing instance {0}/{1}".format( key, subsys )) existing_section = re.search("^\[{0}\]$([\n]|[^\[])+".format( @@ -693,7 +715,7 @@ existing_val = re.search("^\s*[^#]({0}) =".format(key), section_str, re.MULTILINE) if existing_val: start = existing_section.start() + existing_val.start(1) - log.info("Found string to replace at {0}".format( + log.debug("Found string to replace at {0}".format( start )) existing_str = existing_str[0:start] + "#" + existing_str[start:] @@ -746,6 +768,7 @@ self.metadata_overlay = False self.data_pool_name = None self.data_pools = None + self.fs_config = None # Hack: cheeky inspection of ceph.conf to see what MDSs exist self.mds_ids = set() @@ -759,7 +782,7 @@ self.mds_ids = list(self.mds_ids) - log.info("Discovered MDS IDs: {0}".format(self.mds_ids)) + log.debug("Discovered MDS IDs: {0}".format(self.mds_ids)) self.mon_manager = LocalCephManager() @@ -816,7 +839,7 @@ def enumerate_methods(s): - log.info("e: {0}".format(s)) + log.debug("e: {0}".format(s)) for t in s._tests: if isinstance(t, suite.BaseTestSuite): for sub in enumerate_methods(t): @@ -827,15 +850,15 @@ def load_tests(modules, loader): if modules: - log.info("Executing modules: {0}".format(modules)) + log.debug("Executing modules: {0}".format(modules)) module_suites = [] for mod_name in modules: # Test names like cephfs.test_auto_repair module_suites.append(loader.loadTestsFromName(mod_name)) - log.info("Loaded: {0}".format(list(module_suites))) + log.debug("Loaded: {0}".format(list(module_suites))) return suite.TestSuite(module_suites) else: - log.info("Executing all cephfs tests") + log.debug("Executing all cephfs tests") return loader.discover( os.path.join(os.path.dirname(os.path.abspath(__file__)), "cephfs") ) @@ -902,6 +925,7 @@ create_cluster = False create_cluster_only = False ignore_missing_binaries = False + opt_verbose = True args = sys.argv[1:] flags = [a for a in args if a.startswith("-")] @@ -915,6 +939,8 @@ create_cluster_only = True elif f == "--ignore-missing-binaries": ignore_missing_binaries = True + elif '--no-verbose' == f: + opt_verbose = False else: log.error("Unknown option '{0}'".format(f)) sys.exit(-1) @@ -934,10 +960,8 @@ remote = LocalRemote() # Tolerate no MDSs or clients running at start - ps_txt = six.ensure_str(remote.run( - args=["ps", "-u"+str(os.getuid())], - stdout=StringIO() - ).stdout.getvalue().strip()) + ps_txt = remote.run(args=["ps", "-u"+str(os.getuid())], + stdout=StringIO()).stdout.getvalue().strip() lines = ps_txt.split("\n")[1:] for line in lines: if 'ceph-fuse' in line or 'ceph-mds' in line: @@ -958,11 +982,17 @@ vstart_env["OSD"] = "4" vstart_env["MGR"] = max(max_required_mgr, 1).__str__() - args = [os.path.join(SRC_PREFIX, "vstart.sh"), "-n", "-d", - "--nolockdep"] + args = [ + os.path.join(SRC_PREFIX, "vstart.sh"), + "-n", + "--nolockdep", + ] if require_memstore: args.append("--memstore") + if opt_verbose: + args.append("-d") + remote.run(args, env=vstart_env) # Wait for OSD to come up so that subsequent injectargs etc will @@ -994,9 +1024,9 @@ p = remote.run(args=[os.path.join(BIN_PREFIX, "ceph"), "auth", "get-or-create", client_name, "osd", "allow rw", "mds", "allow", - "mon", "allow r"]) + "mon", "allow r"], stdout=StringIO()) - open("./keyring", "ab").write(p.stdout.getvalue()) + open("./keyring", "at").write(p.stdout.getvalue()) mount = LocalFuseMount(ctx, test_dir, client_id) mounts.append(mount) @@ -1085,7 +1115,7 @@ if not is_named: victims.append((case, method)) - log.info("Disabling {0} tests because of is_for_teuthology or needs_trimming".format(len(victims))) + log.debug("Disabling {0} tests because of is_for_teuthology or needs_trimming".format(len(victims))) for s, method in victims: s._tests.remove(method) diff -Nru ceph-14.2.11/qa/valgrind.supp ceph-14.2.18/qa/valgrind.supp --- ceph-14.2.11/qa/valgrind.supp 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/valgrind.supp 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,17 @@ + +{ + + Memcheck:Free + fun:free + ... +} +{ + tcmalloc leak, observed on nautlius + Memcheck:Leak + ... + fun:_dl_init + ... +} { older boost mersenne twister uses uninitialized memory for randomness Memcheck:Cond diff -Nru ceph-14.2.11/qa/workunits/cephtool/test.sh ceph-14.2.18/qa/workunits/cephtool/test.sh --- ceph-14.2.11/qa/workunits/cephtool/test.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/workunits/cephtool/test.sh 2021-03-15 17:46:20.000000000 +0000 @@ -1180,6 +1180,11 @@ ceph mon feature set kraken --yes-i-really-mean-it expect_false ceph mon feature set abcd expect_false ceph mon feature set abcd --yes-i-really-mean-it + + # test mon stat + # don't check output, just ensure it does not fail. + ceph mon stat + ceph mon stat -f json | jq '.' } function gen_secrets_file() diff -Nru ceph-14.2.11/qa/workunits/fs/misc/subvolume.sh ceph-14.2.18/qa/workunits/fs/misc/subvolume.sh --- ceph-14.2.11/qa/workunits/fs/misc/subvolume.sh 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/workunits/fs/misc/subvolume.sh 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,63 @@ +#!/bin/sh -x + +expect_failure() { + if "$@"; then return 1; else return 0; fi +} + +set -e + +mkdir group +mkdir group/subvol1 + +setfattr -n ceph.dir.subvolume -v 1 group/subvol1 + +# rename subvolume +mv group/subvol1 group/subvol2 + +# move file out of the subvolume +touch group/subvol2/file1 +expect_failure python3 -c "import os; os.rename('group/subvol2/file1', 'group/file1')" +# move file into the subvolume +touch group/file2 +expect_failure python3 -c "import os; os.rename('group/file2', 'group/subvol2/file2')" + +# create hardlink within subvolume +ln group/subvol2/file1 group/subvol2/file1_ + +# create hardlink out of subvolume +expect_failure ln group/subvol2/file1 group/file1_ +expect_failure ln group/file2 group/subvol1/file2_ + +# create snapshot at subvolume root +mkdir group/subvol2/.snap/s1 + +# create snapshot at descendent dir of subvolume +mkdir group/subvol2/dir +expect_failure mkdir group/subvol2/dir/.snap/s2 + +mkdir group/subvol3 +setfattr -n ceph.dir.subvolume -v 1 group/subvol3 + +# move file across subvolumes +expect_failure python3 -c "import os; os.rename('group/subvol2/file1', 'group/subvol3/file1')" + +# create hardlink across subvolumes +expect_failure ln group/subvol2/file1 group/subvol3/file1 + +# create subvolume inside existing subvolume +expect_failure setfattr -n ceph.dir.subvolume -v 1 group/subvol2/dir + +# clear subvolume flag +setfattr -n ceph.dir.subvolume -v 0 group/subvol2 +mkdir group/subvol2/dir/.snap/s2 + +# parent subvolume override child subvolume +setfattr -n ceph.dir.subvolume -v 1 group/subvol2/dir +setfattr -n ceph.dir.subvolume -v 1 group/subvol2 +expect_failure mkdir group/subvol2/dir/.snap/s3 + +rmdir group/subvol2/.snap/s1 +rmdir group/subvol2/dir/.snap/s2 +rm -rf group + +echo OK diff -Nru ceph-14.2.11/qa/workunits/mon/rbd_snaps_ops.sh ceph-14.2.18/qa/workunits/mon/rbd_snaps_ops.sh --- ceph-14.2.11/qa/workunits/mon/rbd_snaps_ops.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/workunits/mon/rbd_snaps_ops.sh 2021-03-15 17:46:20.000000000 +0000 @@ -19,8 +19,8 @@ } ceph osd pool delete test test --yes-i-really-really-mean-it || true -expect 'ceph osd pool create test 256 256' 0 -expect 'rbd --pool=test pool init' 0 +expect 'ceph osd pool create test 8 8' 0 +expect 'ceph osd pool application enable test rbd' expect 'ceph osd pool mksnap test snapshot' 0 expect 'ceph osd pool rmsnap test snapshot' 0 @@ -28,7 +28,7 @@ expect 'rbd --pool=test snap create image@snapshot' 22 expect 'ceph osd pool delete test test --yes-i-really-really-mean-it' 0 -expect 'ceph osd pool create test 256 256' 0 +expect 'ceph osd pool create test 8 8' 0 expect 'rbd --pool=test pool init' 0 expect 'rbd --pool=test create --size=102400 image' 0 expect 'rbd --pool=test snap create image@snapshot' 0 @@ -45,13 +45,13 @@ ceph osd pool delete test-foo test-foo --yes-i-really-really-mean-it || true expect 'ceph osd pool create test-foo 8' 0 -expect 'rbd pool init test-foo' +expect 'ceph osd pool application enable test-foo rbd' expect 'rbd --pool test-foo create --size 1024 image' 0 expect 'rbd --pool test-foo snap create image@snapshot' 0 ceph osd pool delete test-bar test-bar --yes-i-really-really-mean-it || true expect 'ceph osd pool create test-bar 8' 0 -expect 'rbd pool init test-bar' +expect 'ceph osd pool application enable test-bar rbd' expect 'rados cppool test-foo test-bar --yes-i-really-mean-it' 0 expect 'rbd --pool test-bar snap rm image@snapshot' 95 expect 'ceph osd pool delete test-foo test-foo --yes-i-really-really-mean-it' 0 diff -Nru ceph-14.2.11/qa/workunits/rbd/krbd_stable_pages_required.sh ceph-14.2.18/qa/workunits/rbd/krbd_stable_pages_required.sh --- ceph-14.2.11/qa/workunits/rbd/krbd_stable_pages_required.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/workunits/rbd/krbd_stable_pages_required.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -IMAGE_NAME="stable-pages-required-test" - -rbd create --size 1 $IMAGE_NAME -DEV=$(sudo rbd map $IMAGE_NAME) -[[ $(blockdev --getsize64 $DEV) -eq 1048576 ]] -grep -q 1 /sys/block/${DEV#/dev/}/bdi/stable_pages_required - -rbd resize --size 2 $IMAGE_NAME -[[ $(blockdev --getsize64 $DEV) -eq 2097152 ]] -grep -q 1 /sys/block/${DEV#/dev/}/bdi/stable_pages_required -sudo rbd unmap $DEV - -echo OK diff -Nru ceph-14.2.11/qa/workunits/rbd/krbd_stable_writes.sh ceph-14.2.18/qa/workunits/rbd/krbd_stable_writes.sh --- ceph-14.2.11/qa/workunits/rbd/krbd_stable_writes.sh 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/workunits/rbd/krbd_stable_writes.sh 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -ex + +IMAGE_NAME="stable-writes-test" + +rbd create --size 1 $IMAGE_NAME +DEV=$(sudo rbd map $IMAGE_NAME) +[[ $(blockdev --getsize64 $DEV) -eq 1048576 ]] +grep -q 1 /sys/block/${DEV#/dev/}/queue/stable_writes + +rbd resize --size 2 $IMAGE_NAME +[[ $(blockdev --getsize64 $DEV) -eq 2097152 ]] +grep -q 1 /sys/block/${DEV#/dev/}/queue/stable_writes + +sudo rbd unmap $DEV + +echo OK diff -Nru ceph-14.2.11/qa/workunits/rbd/krbd_udev_netns.sh ceph-14.2.18/qa/workunits/rbd/krbd_udev_netns.sh --- ceph-14.2.11/qa/workunits/rbd/krbd_udev_netns.sh 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/workunits/rbd/krbd_udev_netns.sh 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,86 @@ +#!/usr/bin/env bash + +set -ex + +sudo ip netns add ns1 +sudo ip link add veth1-ext type veth peer name veth1-int +sudo ip link set veth1-int netns ns1 + +sudo ip netns exec ns1 ip link set dev lo up +sudo ip netns exec ns1 ip addr add 192.168.1.2/24 dev veth1-int +sudo ip netns exec ns1 ip link set veth1-int up +sudo ip netns exec ns1 ip route add default via 192.168.1.1 + +sudo ip addr add 192.168.1.1/24 dev veth1-ext +sudo ip link set veth1-ext up + +# Enable forwarding between the namespace and the default route +# interface and set up NAT. In case of multiple default routes, +# just pick the first one. +if [[ $(sysctl -n net.ipv4.ip_forward) -eq 0 ]]; then + sudo iptables -P FORWARD DROP + sudo sysctl -w net.ipv4.ip_forward=1 +fi +IFACE="$(ip route list 0.0.0.0/0 | head -n 1 | cut -d ' ' -f 5)" +sudo iptables -A FORWARD -i veth1-ext -o "$IFACE" -j ACCEPT +sudo iptables -A FORWARD -i "$IFACE" -o veth1-ext -j ACCEPT +sudo iptables -t nat -A POSTROUTING -s 192.168.1.2 -o "$IFACE" -j MASQUERADE + +rbd create --size 300 img + +DEV="$(sudo rbd map img)" +mkfs.ext4 "$DEV" +sudo mount "$DEV" /mnt +sudo umount /mnt +sudo rbd unmap "$DEV" + +sudo ip netns exec ns1 bash <<'EOF' + +set -ex + +DEV="/dev/rbd/rbd/img" +[[ ! -e "$DEV" ]] + +# In a network namespace, "rbd map" maps the device and hangs waiting +# for udev add uevents. udev runs as usual (in particular creating the +# symlink which is used here because the device node is never printed), +# but the uevents it sends out never come because they don't cross +# network namespace boundaries. +set +e +timeout 30s rbd map img +RET=$? +set -e +[[ $RET -eq 124 ]] +[[ -L "$DEV" ]] +mkfs.ext4 -F "$DEV" +mount "$DEV" /mnt +umount /mnt + +# In a network namespace, "rbd unmap" unmaps the device and hangs +# waiting for udev remove uevents. udev runs as usual (removing the +# symlink), but the uevents it sends out never come because they don't +# cross network namespace boundaries. +set +e +timeout 30s rbd unmap "$DEV" +RET=$? +set -e +[[ $RET -eq 124 ]] +[[ ! -e "$DEV" ]] + +# Skip waiting for udev uevents with "-o noudev". +DEV="$(rbd map -o noudev img)" +mkfs.ext4 -F "$DEV" +mount "$DEV" /mnt +umount /mnt +rbd unmap -o noudev "$DEV" + +EOF + +rbd rm img + +sudo iptables -t nat -D POSTROUTING -s 192.168.1.2 -o "$IFACE" -j MASQUERADE +sudo iptables -D FORWARD -i "$IFACE" -o veth1-ext -j ACCEPT +sudo iptables -D FORWARD -i veth1-ext -o "$IFACE" -j ACCEPT +sudo ip netns delete ns1 + +echo OK diff -Nru ceph-14.2.11/qa/workunits/rbd/krbd_udev_symlinks.sh ceph-14.2.18/qa/workunits/rbd/krbd_udev_symlinks.sh --- ceph-14.2.11/qa/workunits/rbd/krbd_udev_symlinks.sh 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/qa/workunits/rbd/krbd_udev_symlinks.sh 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,116 @@ +#!/usr/bin/env bash + +set -ex + +SPECS=( +rbd/img1 +rbd/img2 +rbd/img2@snap1 +rbd/img3 +rbd/img3@snap1 +rbd/img3@snap2 +rbd/ns1/img1 +rbd/ns1/img2 +rbd/ns1/img2@snap1 +rbd/ns1/img3 +rbd/ns1/img3@snap1 +rbd/ns1/img3@snap2 +rbd/ns2/img1 +rbd/ns2/img2 +rbd/ns2/img2@snap1 +rbd/ns2/img3 +rbd/ns2/img3@snap1 +rbd/ns2/img3@snap2 +custom/img1 +custom/img1@snap1 +custom/img2 +custom/img2@snap1 +custom/img2@snap2 +custom/img3 +custom/ns1/img1 +custom/ns1/img1@snap1 +custom/ns1/img2 +custom/ns1/img2@snap1 +custom/ns1/img2@snap2 +custom/ns1/img3 +custom/ns2/img1 +custom/ns2/img1@snap1 +custom/ns2/img2 +custom/ns2/img2@snap1 +custom/ns2/img2@snap2 +custom/ns2/img3 +) + +ceph osd pool create custom 8 +rbd pool init custom + +ceph osd set-require-min-compat-client nautilus +rbd namespace create rbd/ns1 +rbd namespace create rbd/ns2 +rbd namespace create custom/ns1 +rbd namespace create custom/ns2 + +# create in order, images before snapshots +for spec in "${SPECS[@]}"; do + if [[ "$spec" =~ snap ]]; then + rbd snap create "$spec" + else + rbd create --size 10 "$spec" + DEV="$(sudo rbd map "$spec")" + sudo sfdisk "$DEV" <= 0; i--)); do + if [[ "${SPECS[i]}" =~ snap ]]; then + rbd snap rm "${SPECS[i]}" + else + rbd rm "${SPECS[i]}" + fi +done + +rbd namespace rm custom/ns2 +rbd namespace rm custom/ns1 +rbd namespace rm rbd/ns2 +rbd namespace rm rbd/ns1 + +ceph osd pool delete custom custom --yes-i-really-really-mean-it + +echo OK diff -Nru ceph-14.2.11/qa/workunits/rbd/rbd_mirror_helpers.sh ceph-14.2.18/qa/workunits/rbd/rbd_mirror_helpers.sh --- ceph-14.2.11/qa/workunits/rbd/rbd_mirror_helpers.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/workunits/rbd/rbd_mirror_helpers.sh 2021-03-15 17:46:20.000000000 +0000 @@ -1002,10 +1002,18 @@ local image=$3 local duration=$(awk 'BEGIN {srand(); print int(10 * rand()) + 5}') + set +e timeout ${duration}s ceph_test_rbd_mirror_random_write \ - --cluster ${cluster} ${pool} ${image} \ - --debug-rbd=20 --debug-journaler=20 \ - 2> ${TEMPDIR}/rbd-mirror-random-write.log || true + --cluster ${cluster} ${pool} ${image} \ + --debug-rbd=20 --debug-journaler=20 \ + 2> ${TEMPDIR}/rbd-mirror-random-write.log + error_code=$? + set -e + + if [ $error_code -eq 124 ]; then + return 0 + fi + return 1 } compare_images() diff -Nru ceph-14.2.11/qa/workunits/rbd/rbd-nbd.sh ceph-14.2.18/qa/workunits/rbd/rbd-nbd.sh --- ceph-14.2.11/qa/workunits/rbd/rbd-nbd.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/workunits/rbd/rbd-nbd.sh 2021-03-15 17:46:20.000000000 +0000 @@ -98,18 +98,20 @@ PID=$(rbd-nbd --format xml list-mapped | $XMLSTARLET sel -t -v \ "//devices/device[pool='${POOL}'][namespace='${ns}'][image='${IMAGE}'][device='${DEV}']/id") test -n "${PID}" - ps -p ${PID} -o cmd | grep rbd-nbd + ps -p ${PID} -C rbd-nbd } unmap_device() { - local unmap_dev=$1 - local list_dev=${2:-$1} - _sudo rbd-nbd unmap ${unmap_dev} + local dev=$1 + local pid=$2 + _sudo rbd-nbd unmap ${dev} for s in 0.5 1 2 4 8 16 32; do sleep ${s} - rbd-nbd list-mapped | expect_false grep "${list_dev} *$" && return 0 + rbd-nbd list-mapped | expect_false grep "^${pid}\\b" && + ps -C rbd-nbd | expect_false grep "^${pid}\\b" && + return 0 done return 1 } @@ -141,7 +143,7 @@ # map test specifying the device expect_false _sudo rbd-nbd --device ${DEV} map ${POOL}/${IMAGE} dev1=${DEV} -unmap_device ${DEV} +unmap_device ${DEV} ${PID} DEV= # XXX: race possible when the device is reused by other process DEV=`_sudo rbd-nbd --device ${dev1} map ${POOL}/${IMAGE}` @@ -186,16 +188,16 @@ test ${blocks2} -eq ${blocks} # read-only option test -unmap_device ${DEV} +unmap_device ${DEV} ${PID} DEV=`_sudo rbd-nbd map --read-only ${POOL}/${IMAGE}` PID=$(rbd-nbd list-mapped | awk -v pool=${POOL} -v img=${IMAGE} -v dev=${DEV} \ '$2 == pool && $3 == img && $5 == dev {print $1}') test -n "${PID}" -ps -p ${PID} -o cmd | grep rbd-nbd +ps -p ${PID} -C rbd-nbd _sudo dd if=${DEV} of=/dev/null bs=1M expect_false _sudo dd if=${DATA} of=${DEV} bs=1M oflag=direct -unmap_device ${DEV} +unmap_device ${DEV} ${PID} # exclusive option test DEV=`_sudo rbd-nbd map --exclusive ${POOL}/${IMAGE}` @@ -204,32 +206,39 @@ _sudo dd if=${DATA} of=${DEV} bs=1M oflag=direct expect_false timeout 10 \ rbd bench ${IMAGE} --io-type write --io-size=1024 --io-total=1024 -unmap_device ${DEV} +unmap_device ${DEV} ${PID} DEV= rbd bench ${IMAGE} --io-type write --io-size=1024 --io-total=1024 # unmap by image name test DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}` get_pid -unmap_device ${IMAGE} ${DEV} +unmap_device ${IMAGE} ${PID} DEV= -ps -p ${PID} -o cmd | expect_false grep rbd-nbd # map/unmap snap test rbd snap create ${POOL}/${IMAGE}@snap DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}@snap` get_pid -unmap_device "${IMAGE}@snap" ${DEV} +unmap_device "${IMAGE}@snap" ${PID} DEV= -ps -p ${PID} -o cmd | expect_false grep rbd-nbd # map/unmap namespace test rbd snap create ${POOL}/${NS}/${IMAGE}@snap DEV=`_sudo rbd-nbd map ${POOL}/${NS}/${IMAGE}@snap` get_pid ${NS} -unmap_device "${POOL}/${NS}/${IMAGE}@snap" ${DEV} +unmap_device "${POOL}/${NS}/${IMAGE}@snap" ${PID} DEV= -ps -p ${PID} -o cmd | expect_false grep rbd-nbd + +# unmap by image name test 2 +DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}` +get_pid +pid=$PID +DEV=`_sudo rbd-nbd map ${POOL}/${NS}/${IMAGE}` +get_pid ${NS} +unmap_device ${POOL}/${NS}/${IMAGE} ${PID} +DEV= +unmap_device ${POOL}/${IMAGE} ${pid} # auto unmap test DEV=`_sudo rbd-nbd map ${POOL}/${IMAGE}` diff -Nru ceph-14.2.11/qa/workunits/rgw/test_rgw_orphan_list.sh ceph-14.2.18/qa/workunits/rgw/test_rgw_orphan_list.sh --- ceph-14.2.11/qa/workunits/rgw/test_rgw_orphan_list.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/qa/workunits/rgw/test_rgw_orphan_list.sh 2021-03-15 17:46:20.000000000 +0000 @@ -56,9 +56,8 @@ cd "$here" } -sudo dnf install -y s3cmd - -sudo yum install python3-setuptools +sudo yum -y install s3cmd +sudo yum -y install python3-setuptools sudo yum -y install python3-pip sudo pip3 install --upgrade setuptools sudo pip3 install python-swiftclient diff -Nru ceph-14.2.11/.readthedocs.yml ceph-14.2.18/.readthedocs.yml --- ceph-14.2.11/.readthedocs.yml 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/.readthedocs.yml 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,16 @@ +--- +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +version: 2 +formats: [] +build: + image: latest +python: + version: 3 + install: + - requirements: admin/doc-requirements.txt + - requirements: admin/doc-read-the-docs.txt +sphinx: + builder: dirhtml + configuration: doc/conf.py diff -Nru ceph-14.2.11/run-make-check.sh ceph-14.2.18/run-make-check.sh --- ceph-14.2.11/run-make-check.sh 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/run-make-check.sh 2021-03-15 17:46:20.000000000 +0000 @@ -18,129 +18,11 @@ # $ DRY_RUN=echo ./run-make-check.sh # -set -e - -trap clean_up_after_myself EXIT - -ORIGINAL_CCACHE_CONF="$HOME/.ccache/ccache.conf" -SAVED_CCACHE_CONF="$HOME/.run-make-check-saved-ccache-conf" - -function save_ccache_conf() { - test -f $ORIGINAL_CCACHE_CONF && cp $ORIGINAL_CCACHE_CONF $SAVED_CCACHE_CONF || true -} - -function restore_ccache_conf() { - test -f $SAVED_CCACHE_CONF && mv $SAVED_CCACHE_CONF $ORIGINAL_CCACHE_CONF || true -} - -function clean_up_after_myself() { - rm -fr ${CEPH_BUILD_VIRTUALENV:-/tmp}/*virtualenv* - restore_ccache_conf -} +source src/script/run-make.sh -function get_processors() { - if test -n "$NPROC" ; then - echo $NPROC - else - if test $(nproc) -ge 2 ; then - expr $(nproc) / 2 - else - echo 1 - fi - fi -} - -function detect_ceph_dev_pkgs() { - local cmake_opts - local boost_root=/opt/ceph - if test -f $boost_root/include/boost/config.hpp; then - cmake_opts+=" -DWITH_SYSTEM_BOOST=ON -DBOOST_ROOT=$boost_root" - else - cmake_opts+=" -DBOOST_J=$(get_processors)" - fi - echo "$cmake_opts" -} +set -e function run() { - local install_cmd - local which_pkg="which" - source /etc/os-release - if test -f /etc/redhat-release ; then - if ! type bc > /dev/null 2>&1 ; then - echo "Please install bc and re-run." - exit 1 - fi - if test "$(echo "$VERSION_ID >= 22" | bc)" -ne 0; then - install_cmd="dnf -y install" - else - install_cmd="yum install -y" - fi - elif type zypper > /dev/null 2>&1 ; then - install_cmd="zypper --gpg-auto-import-keys --non-interactive install --no-recommends" - elif type apt-get > /dev/null 2>&1 ; then - install_cmd="apt-get install -y" - which_pkg="debianutils" - fi - - if ! type sudo > /dev/null 2>&1 ; then - echo "Please install sudo and re-run. This script assumes it is running" - echo "as a normal user with the ability to run commands as root via sudo." - exit 1 - fi - if [ -n "$install_cmd" ]; then - $DRY_RUN sudo $install_cmd ccache $which_pkg - else - echo "WARNING: Don't know how to install packages" >&2 - echo "This probably means distribution $ID is not supported by run-make-check.sh" >&2 - fi - - if ! type ccache > /dev/null 2>&1 ; then - echo "ERROR: ccache could not be installed" - exit 1 - fi - - if test -f ./install-deps.sh ; then - export WITH_SEASTAR=1 - export FOR_MAKE_CHECK=1 - $DRY_RUN source ./install-deps.sh || return 1 - trap clean_up_after_myself EXIT - fi - - # Init defaults after deps are installed. get_processors() depends on coreutils nproc. - DEFAULT_MAKEOPTS=${DEFAULT_MAKEOPTS:--j$(get_processors)} - BUILD_MAKEOPTS=${BUILD_MAKEOPTS:-$DEFAULT_MAKEOPTS} - test "$BUILD_MAKEOPTS" && echo "make will run with option(s) $BUILD_MAKEOPTS" - CHECK_MAKEOPTS=${CHECK_MAKEOPTS:-$DEFAULT_MAKEOPTS} - CMAKE_BUILD_OPTS="-DWITH_GTEST_PARALLEL=ON -DWITH_FIO=ON -DWITH_SEASTAR=ON" - CMAKE_BUILD_OPTS+=$(detect_ceph_dev_pkgs) - cat <= 1024 $DRY_RUN ulimit -n $(ulimit -Hn) if [ $(ulimit -n) -lt 1024 ];then @@ -150,8 +32,9 @@ # increase the aio-max-nr, which is by default 65536. we could reach this # limit while running seastar tests and bluestore tests. - $DRY_RUN sudo sysctl -q -w fs.aio-max-nr=$((65536 * 16)) + $DRY_RUN sudo /sbin/sysctl -q -w fs.aio-max-nr=$((65536 * 16)) + CHECK_MAKEOPTS=${CHECK_MAKEOPTS:-$DEFAULT_MAKEOPTS} if ! $DRY_RUN ctest $CHECK_MAKEOPTS --output-on-failure; then rm -fr ${TMPDIR:-/tmp}/ceph-asok.* return 1 @@ -171,7 +54,12 @@ echo "Please fix 'hostname --fqdn', otherwise 'make check' will fail" return 1 fi - run "$@" && echo "make check: successful run on $(git rev-parse HEAD)" + FOR_MAKE_CHECK=1 prepare + # Init defaults after deps are installed. + configure "-DWITH_GTEST_PARALLEL=ON -DWITH_FIO=ON -DWITH_SEASTAR=ON -DENABLE_GIT_VERSION=OFF $@" + build tests + echo "make check: successful build on $(git rev-parse HEAD)" + run } main "$@" diff -Nru ceph-14.2.11/selinux/ceph.te ceph-14.2.18/selinux/ceph.te --- ceph-14.2.11/selinux/ceph.te 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/selinux/ceph.te 2021-03-15 17:46:20.000000000 +0000 @@ -13,6 +13,7 @@ type urandom_device_t; type setfiles_t; type nvme_device_t; + type targetd_etc_rw_t; type httpd_config_t; type proc_kcore_t; type amqp_port_t; @@ -21,7 +22,7 @@ class tcp_socket name_connect_t; class lnk_file { create getattr read unlink }; class dir { add_name create getattr open read remove_name rmdir search write }; - class file { create getattr open read rename unlink write }; + class file { create getattr open read rename unlink write ioctl }; class blk_file { getattr ioctl open read write }; class capability2 block_suspend; class process2 { nnp_transition nosuid_transition }; @@ -143,7 +144,7 @@ allow ceph_t sysfs_t:lnk_file { read getattr }; allow ceph_t configfs_t:dir { add_name create getattr open read remove_name rmdir search write }; -allow ceph_t configfs_t:file { getattr open read write }; +allow ceph_t configfs_t:file { getattr open read write ioctl }; allow ceph_t configfs_t:lnk_file { create getattr read unlink }; @@ -160,6 +161,8 @@ allow ceph_t proc_kcore_t:file getattr; +allow ceph_t targetd_etc_rw_t:dir { getattr search }; + fsadm_manage_pid(ceph_t) #============= setfiles_t ============== diff -Nru ceph-14.2.11/src/auth/Auth.h ceph-14.2.18/src/auth/Auth.h --- ceph-14.2.11/src/auth/Auth.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/auth/Auth.h 2021-03-15 17:46:20.000000000 +0000 @@ -192,6 +192,9 @@ std::unique_ptr authorizer; std::unique_ptr authorizer_challenge; + + ///< set if msgr1 peer doesn't support CEPHX_V2 + bool skip_authorizer_challenge = false; }; /* diff -Nru ceph-14.2.11/src/ceph_fuse.cc ceph-14.2.18/src/ceph_fuse.cc --- ceph-14.2.11/src/ceph_fuse.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph_fuse.cc 2021-03-15 17:46:20.000000000 +0000 @@ -167,9 +167,8 @@ } { - g_ceph_context->_conf.finalize_reexpand_meta(); common_init_finish(g_ceph_context); - + init_async_signal_handler(); register_async_signal_handler(SIGHUP, sighup_handler); diff -Nru ceph-14.2.11/src/ceph.in ceph-14.2.18/src/ceph.in --- ceph-14.2.11/src/ceph.in 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph.in 2021-03-15 17:46:20.000000000 +0000 @@ -1250,8 +1250,12 @@ except IOError as e: if e.errno != errno.EPIPE: raise e + try: + sys.stdout.flush() + except IOError as e: + if e.errno != errno.EPIPE: + raise e - sys.stdout.flush() # Block until command completion (currently scrub and deep_scrub only) if block: diff -Nru ceph-14.2.11/src/ceph-rbdnamer ceph-14.2.18/src/ceph-rbdnamer --- ceph-14.2.11/src/ceph-rbdnamer 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-rbdnamer 2021-03-15 17:46:20.000000000 +0000 @@ -3,10 +3,19 @@ DEV=$1 NUM=`echo $DEV | sed 's#p.*##g; s#[a-z]##g'` POOL=`cat /sys/devices/rbd/$NUM/pool` +if [ -f /sys/devices/rbd/$NUM/pool_ns ]; then + NAMESPACE=`cat /sys/devices/rbd/$NUM/pool_ns` +else + NAMESPACE="" +fi IMAGE=`cat /sys/devices/rbd/$NUM/name` SNAP=`cat /sys/devices/rbd/$NUM/current_snap` -if [ "$SNAP" = "-" ]; then - echo -n "$POOL $IMAGE" -else - echo -n "$POOL $IMAGE@$SNAP" + +echo -n "$POOL" +if [ -n "$NAMESPACE" ]; then + echo -n "/$NAMESPACE" +fi +echo -n "/$IMAGE" +if [ "$SNAP" != "-" ]; then + echo -n "@$SNAP" fi diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/api/lvm.py ceph-14.2.18/src/ceph-volume/ceph_volume/api/lvm.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/api/lvm.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/api/lvm.py 2021-03-15 17:46:20.000000000 +0000 @@ -9,14 +9,66 @@ from itertools import repeat from math import floor from ceph_volume import process, util -from ceph_volume.exceptions import ( - MultipleLVsError, MultipleVGsError, - MultiplePVsError, SizeAllocationError -) +from ceph_volume.exceptions import SizeAllocationError logger = logging.getLogger(__name__) +def convert_filters_to_str(filters): + """ + Convert filter args from dictionary to following format - + filters={filter_name=filter_val,...} + """ + if not filters: + return filters + + filter_arg = '' + for k, v in filters.items(): + filter_arg += k + '=' + v + ',' + # get rid of extra comma at the end + filter_arg = filter_arg[:len(filter_arg) - 1] + + return filter_arg + + +def convert_tags_to_str(tags): + """ + Convert tags from dictionary to following format - + tags={tag_name=tag_val,...} + """ + if not tags: + return tags + + tag_arg = 'tags={' + for k, v in tags.items(): + tag_arg += k + '=' + v + ',' + # get rid of extra comma at the end + tag_arg = tag_arg[:len(tag_arg) - 1] + '}' + + return tag_arg + + +def make_filters_lvmcmd_ready(filters, tags): + """ + Convert filters (including tags) from dictionary to following format - + filter_name=filter_val...,tags={tag_name=tag_val,...} + + The command will look as follows = + lvs -S filter_name=filter_val...,tags={tag_name=tag_val,...} + """ + filters = convert_filters_to_str(filters) + tags = convert_tags_to_str(tags) + + if filters and tags: + return filters + ',' + tags + if filters and not tags: + return filters + if not filters and tags: + return tags + else: + return '' + + def _output_parser(output, fields): """ Newer versions of LVM allow ``--reportformat=json``, but older versions, @@ -289,29 +341,6 @@ PV_FIELDS = 'pv_name,pv_tags,pv_uuid,vg_name,lv_uuid' -def get_api_pvs(): - """ - Return the list of physical volumes configured for lvm and available in the - system using flags to include common metadata associated with them like the uuid - - This will only return physical volumes set up to work with LVM. - - Command and delimited output should look like:: - - $ pvs --noheadings --readonly --separator=';' -o pv_name,pv_tags,pv_uuid - /dev/sda1;; - /dev/sdv;;07A4F654-4162-4600-8EB3-88D1E42F368D - - """ - stdout, stderr, returncode = process.call( - ['pvs', '--no-heading', '--readonly', '--separator=";"', '-o', - PV_FIELDS], - verbose_on_failure=False - ) - - return _output_parser(stdout, PV_FIELDS) - - class PVolume(object): """ Represents a Physical Volume from LVM, with some top-level attributes like @@ -347,7 +376,8 @@ self.set_tag(k, v) # after setting all the tags, refresh them for the current object, use the # pv_* identifiers to filter because those shouldn't change - pv_object = get_pv(pv_name=self.pv_name, pv_uuid=self.pv_uuid) + pv_object = self.get_first_pv(filter={'pv_name': self.pv_name, + 'pv_uuid': self.pv_uuid}) self.tags = pv_object.tags def set_tag(self, key, value): @@ -375,100 +405,6 @@ ) -class PVolumes(list): - """ - A list of all known (physical) volumes for the current system, with the ability - to filter them via keyword arguments. - """ - - def __init__(self, populate=True): - if populate: - self._populate() - - def _populate(self): - # get all the pvs in the current system - for pv_item in get_api_pvs(): - self.append(PVolume(**pv_item)) - - def _purge(self): - """ - Deplete all the items in the list, used internally only so that we can - dynamically allocate the items when filtering without the concern of - messing up the contents - """ - self[:] = [] - - def _filter(self, pv_name=None, pv_uuid=None, pv_tags=None): - """ - The actual method that filters using a new list. Useful so that other - methods that do not want to alter the contents of the list (e.g. - ``self.find``) can operate safely. - """ - filtered = [i for i in self] - if pv_name: - filtered = [i for i in filtered if i.pv_name == pv_name] - - if pv_uuid: - filtered = [i for i in filtered if i.pv_uuid == pv_uuid] - - # at this point, `filtered` has either all the physical volumes in self - # or is an actual filtered list if any filters were applied - if pv_tags: - tag_filtered = [] - for pvolume in filtered: - matches = all(pvolume.tags.get(k) == str(v) for k, v in pv_tags.items()) - if matches: - tag_filtered.append(pvolume) - # return the tag_filtered pvolumes here, the `filtered` list is no - # longer usable - return tag_filtered - - return filtered - - def filter(self, pv_name=None, pv_uuid=None, pv_tags=None): - """ - Filter out volumes on top level attributes like ``pv_name`` or by - ``pv_tags`` where a dict is required. For example, to find a physical - volume that has an OSD ID of 0, the filter would look like:: - - pv_tags={'ceph.osd_id': '0'} - - """ - if not any([pv_name, pv_uuid, pv_tags]): - raise TypeError('.filter() requires pv_name, pv_uuid, or pv_tags' - '(none given)') - - filtered_pvs = PVolumes(populate=False) - filtered_pvs.extend(self._filter(pv_name, pv_uuid, pv_tags)) - return filtered_pvs - - def get(self, pv_name=None, pv_uuid=None, pv_tags=None): - """ - This is a bit expensive, since it will try to filter out all the - matching items in the list, filter them out applying anything that was - added and return the matching item. - - This method does *not* alter the list, and it will raise an error if - multiple pvs are matched - - It is useful to use ``tags`` when trying to find a specific logical volume, - but it can also lead to multiple pvs being found, since a lot of metadata - is shared between pvs of a distinct OSD. - """ - if not any([pv_name, pv_uuid, pv_tags]): - return None - pvs = self._filter( - pv_name=pv_name, - pv_uuid=pv_uuid, - pv_tags=pv_tags - ) - if not pvs: - return None - if len(pvs) > 1 and pv_tags: - raise MultiplePVsError(pv_name) - return pvs[0] - - def create_pv(device): """ Create a physical volume from a device, useful when devices need to be later mapped @@ -510,18 +446,40 @@ ) -def get_pv(pv_name=None, pv_uuid=None, pv_tags=None, pvs=None): +def get_pvs(fields=PV_FIELDS, filters='', tags=None): + """ + Return a list of PVs that are available on the system and match the + filters and tags passed. Argument filters takes a dictionary containing + arguments required by -S option of LVM. Passing a list of LVM tags can be + quite tricky to pass as a dictionary within dictionary, therefore pass + dictionary of tags via tags argument and tricky part will be taken care of + by the helper methods. + + :param fields: string containing list of fields to be displayed by the + pvs command + :param sep: string containing separator to be used between two fields + :param filters: dictionary containing LVM filters + :param tags: dictionary containng LVM tags + :returns: list of class PVolume object representing pvs on the system """ - Return a matching pv (physical volume) for the current system, requiring - ``pv_name``, ``pv_uuid``, or ``pv_tags``. Raises an error if more than one - pv is found. - """ - if not any([pv_name, pv_uuid, pv_tags]): - return None - if pvs is None or len(pvs) == 0: - pvs = PVolumes() + filters = make_filters_lvmcmd_ready(filters, tags) + args = ['pvs', '--no-heading', '--readonly', '--separator=";"', '-S', + filters, '-o', fields] - return pvs.get(pv_name=pv_name, pv_uuid=pv_uuid, pv_tags=pv_tags) + stdout, stderr, returncode = process.call(args, verbose_on_failure=False) + pvs_report = _output_parser(stdout, fields) + return [PVolume(**pv_report) for pv_report in pvs_report] + + +def get_first_pv(fields=PV_FIELDS, filters=None, tags=None): + """ + Wrapper of get_pv meant to be a convenience method to avoid the phrase:: + pvs = get_pvs() + if len(pvs) >= 1: + pv = pvs[0] + """ + pvs = get_pvs(fields=fields, filters=filters, tags=tags) + return pvs[0] if len(pvs) > 0 else [] ################################ @@ -534,27 +492,6 @@ VG_CMD_OPTIONS = ['--noheadings', '--readonly', '--units=b', '--nosuffix', '--separator=";"'] -def get_api_vgs(): - """ - Return the list of group volumes available in the system using flags to - include common metadata associated with them - - Command and sample delimited output should look like:: - - $ vgs --noheadings --units=b --readonly --separator=';' \ - -o vg_name,pv_count,lv_count,vg_attr,vg_free_count,vg_extent_size - ubuntubox-vg;1;2;wz--n-;12; - - To normalize sizing, the units are forced in 'g' which is equivalent to - gigabytes, which uses multiples of 1024 (as opposed to 1000) - """ - stdout, stderr, returncode = process.call( - ['vgs'] + VG_CMD_OPTIONS + ['-o', VG_FIELDS], - verbose_on_failure=False - ) - return _output_parser(stdout, VG_FIELDS) - - class VolumeGroup(object): """ Represents an LVM group, with some top-level attributes like ``vg_name`` @@ -582,6 +519,13 @@ return int(self.vg_extent_size) * int(self.vg_free_count) @property + def free_percent(self): + """ + Return free space in VG in bytes + """ + return int(self.vg_free_count) / int(self.vg_extent_count) + + @property def size(self): """ Returns VG size in bytes @@ -644,9 +588,31 @@ def bytes_to_extents(self, size): ''' - Return a how many extents we can fit into a size in bytes. + Return a how many free extents we can fit into a size in bytes. This has + some uncertainty involved. If size/extent_size is within 1% of the + actual free extents we will return the extent count, otherwise we'll + throw an error. + This accomodates for the size calculation in batch. We need to report + the OSD layout but have not yet created any LVM structures. We use the + disk size in batch if no VG is present and that will overshoot the + actual free_extent count due to LVM overhead. + ''' - return int(size / int(self.vg_extent_size)) + b_to_ext = int(size / int(self.vg_extent_size)) + if b_to_ext < int(self.vg_free_count): + # return bytes in extents if there is more space + return b_to_ext + elif b_to_ext / int(self.vg_free_count) - 1 < 0.01: + # return vg_fre_count if its less then 1% off + logger.info( + 'bytes_to_extents results in {} but only {} ' + 'are available, adjusting the latter'.format(b_to_ext, + self.vg_free_count)) + return int(self.vg_free_count) + # else raise an exception + raise RuntimeError('Can\'t convert {} to free extents, only {} ({} ' + 'bytes) are free'.format(size, self.vg_free_count, + self.free)) def slots_to_extents(self, slots): ''' @@ -655,98 +621,6 @@ return int(int(self.vg_extent_count) / slots) -class VolumeGroups(list): - """ - A list of all known volume groups for the current system, with the ability - to filter them via keyword arguments. - """ - - def __init__(self, populate=True): - if populate: - self._populate() - - def _populate(self): - # get all the vgs in the current system - for vg_item in get_api_vgs(): - self.append(VolumeGroup(**vg_item)) - - def _purge(self): - """ - Deplete all the items in the list, used internally only so that we can - dynamically allocate the items when filtering without the concern of - messing up the contents - """ - self[:] = [] - - def _filter(self, vg_name=None, vg_tags=None): - """ - The actual method that filters using a new list. Useful so that other - methods that do not want to alter the contents of the list (e.g. - ``self.find``) can operate safely. - - .. note:: ``vg_tags`` is not yet implemented - """ - filtered = [i for i in self] - if vg_name: - filtered = [i for i in filtered if i.vg_name == vg_name] - - # at this point, `filtered` has either all the volumes in self or is an - # actual filtered list if any filters were applied - if vg_tags: - tag_filtered = [] - for volume in filtered: - matches = all(volume.tags.get(k) == str(v) for k, v in vg_tags.items()) - if matches: - tag_filtered.append(volume) - return tag_filtered - - return filtered - - def filter(self, vg_name=None, vg_tags=None): - """ - Filter out groups on top level attributes like ``vg_name`` or by - ``vg_tags`` where a dict is required. For example, to find a Ceph group - with dmcache as the type, the filter would look like:: - - vg_tags={'ceph.type': 'dmcache'} - - .. warning:: These tags are not documented because they are currently - unused, but are here to maintain API consistency - """ - if not any([vg_name, vg_tags]): - raise TypeError('.filter() requires vg_name or vg_tags (none given)') - - filtered_vgs = VolumeGroups(populate=False) - filtered_vgs.extend(self._filter(vg_name, vg_tags)) - return filtered_vgs - - def get(self, vg_name=None, vg_tags=None): - """ - This is a bit expensive, since it will try to filter out all the - matching items in the list, filter them out applying anything that was - added and return the matching item. - - This method does *not* alter the list, and it will raise an error if - multiple VGs are matched - - It is useful to use ``tags`` when trying to find a specific volume group, - but it can also lead to multiple vgs being found (although unlikely) - """ - if not any([vg_name, vg_tags]): - return None - vgs = self._filter( - vg_name=vg_name, - vg_tags=vg_tags - ) - if not vgs: - return None - if len(vgs) > 1: - # this is probably never going to happen, but it is here to keep - # the API code consistent - raise MultipleVGsError(vg_name) - return vgs[0] - - def create_vg(devices, name=None, name_prefix=None): """ Create a Volume Group. Command looks like:: @@ -776,8 +650,7 @@ name] + devices ) - vg = get_vg(vg_name=name) - return vg + return get_first_vg(filters={'vg_name': name}) def extend_vg(vg, devices): @@ -801,8 +674,7 @@ vg.name] + devices ) - vg = get_vg(vg_name=vg.name) - return vg + return get_first_vg(filters={'vg_name': vg.name}) def reduce_vg(vg, devices): @@ -824,8 +696,7 @@ vg.name] + devices ) - vg = get_vg(vg_name=vg.name) - return vg + return get_first_vg(filter={'vg_name': vg.name}) def remove_vg(vg_name): @@ -847,20 +718,39 @@ ) -def get_vg(vg_name=None, vg_tags=None, vgs=None): +def get_vgs(fields=VG_FIELDS, filters='', tags=None): """ - Return a matching vg for the current system, requires ``vg_name`` or - ``tags``. Raises an error if more than one vg is found. + Return a list of VGs that are available on the system and match the + filters and tags passed. Argument filters takes a dictionary containing + arguments required by -S option of LVM. Passing a list of LVM tags can be + quite tricky to pass as a dictionary within dictionary, therefore pass + dictionary of tags via tags argument and tricky part will be taken care of + by the helper methods. - It is useful to use ``tags`` when trying to find a specific volume group, - but it can also lead to multiple vgs being found. + :param fields: string containing list of fields to be displayed by the + vgs command + :param sep: string containing separator to be used between two fields + :param filters: dictionary containing LVM filters + :param tags: dictionary containng LVM tags + :returns: list of class VolumeGroup object representing vgs on the system """ - if not any([vg_name, vg_tags]): - return None - if vgs is None or len(vgs) == 0: - vgs = VolumeGroups() + filters = make_filters_lvmcmd_ready(filters, tags) + args = ['vgs'] + VG_CMD_OPTIONS + ['-S', filters, '-o', fields] - return vgs.get(vg_name=vg_name, vg_tags=vg_tags) + stdout, stderr, returncode = process.call(args, verbose_on_failure=False) + vgs_report =_output_parser(stdout, fields) + return [VolumeGroup(**vg_report) for vg_report in vgs_report] + + +def get_first_vg(fields=VG_FIELDS, filters=None, tags=None): + """ + Wrapper of get_vg meant to be a convenience method to avoid the phrase:: + vgs = get_vgs() + if len(vgs) >= 1: + vg = vgs[0] + """ + vgs = get_vgs(fields=fields, filters=filters, tags=tags) + return vgs[0] if len(vgs) > 0 else [] def get_device_vgs(device, name_prefix=''): @@ -879,25 +769,8 @@ ############################### LV_FIELDS = 'lv_tags,lv_path,lv_name,vg_name,lv_uuid,lv_size' -LV_CMD_OPTIONS = ['--noheadings', '--readonly', '--separator=";"', '-a'] - -def get_api_lvs(): - """ - Return the list of logical volumes available in the system using flags to include common - metadata associated with them - - Command and delimited output should look like:: - - $ lvs --noheadings --readonly --separator=';' -a -o lv_tags,lv_path,lv_name,vg_name - ;/dev/ubuntubox-vg/root;root;ubuntubox-vg - ;/dev/ubuntubox-vg/swap_1;swap_1;ubuntubox-vg - - """ - stdout, stderr, returncode = process.call( - ['lvs'] + LV_CMD_OPTIONS + ['-o', LV_FIELDS], - verbose_on_failure=False - ) - return _output_parser(stdout, LV_FIELDS) +LV_CMD_OPTIONS = ['--noheadings', '--readonly', '--separator=";"', '-a', + '--units=b', '--nosuffix'] class Volume(object): @@ -1025,113 +898,6 @@ process.call(['lvchange', '-an', self.lv_path]) -class Volumes(list): - """ - A list of all known (logical) volumes for the current system, with the ability - to filter them via keyword arguments. - """ - - def __init__(self): - self._populate() - - def _populate(self): - # get all the lvs in the current system - for lv_item in get_api_lvs(): - self.append(Volume(**lv_item)) - - def _purge(self): - """ - Delete all the items in the list, used internally only so that we can - dynamically allocate the items when filtering without the concern of - messing up the contents - """ - self[:] = [] - - def _filter(self, lv_name=None, vg_name=None, lv_path=None, lv_uuid=None, lv_tags=None): - """ - The actual method that filters using a new list. Useful so that other - methods that do not want to alter the contents of the list (e.g. - ``self.find``) can operate safely. - """ - filtered = [i for i in self] - if lv_name: - filtered = [i for i in filtered if i.lv_name == lv_name] - - if vg_name: - filtered = [i for i in filtered if i.vg_name == vg_name] - - if lv_uuid: - filtered = [i for i in filtered if i.lv_uuid == lv_uuid] - - if lv_path: - filtered = [i for i in filtered if i.lv_path == lv_path] - - # at this point, `filtered` has either all the volumes in self or is an - # actual filtered list if any filters were applied - if lv_tags: - tag_filtered = [] - for volume in filtered: - # all the tags we got need to match on the volume - matches = all(volume.tags.get(k) == str(v) for k, v in lv_tags.items()) - if matches: - tag_filtered.append(volume) - return tag_filtered - - return filtered - - def filter(self, lv_name=None, vg_name=None, lv_path=None, lv_uuid=None, lv_tags=None): - """ - Filter out volumes on top level attributes like ``lv_name`` or by - ``lv_tags`` where a dict is required. For example, to find a volume - that has an OSD ID of 0, the filter would look like:: - - lv_tags={'ceph.osd_id': '0'} - - """ - if not any([lv_name, vg_name, lv_path, lv_uuid, lv_tags]): - raise TypeError('.filter() requires lv_name, vg_name, lv_path, lv_uuid, or tags (none given)') - # first find the filtered volumes with the values in self - filtered_volumes = self._filter( - lv_name=lv_name, - vg_name=vg_name, - lv_path=lv_path, - lv_uuid=lv_uuid, - lv_tags=lv_tags - ) - # then purge everything - self._purge() - # and add the filtered items - self.extend(filtered_volumes) - - def get(self, lv_name=None, vg_name=None, lv_path=None, lv_uuid=None, lv_tags=None): - """ - This is a bit expensive, since it will try to filter out all the - matching items in the list, filter them out applying anything that was - added and return the matching item. - - This method does *not* alter the list, and it will raise an error if - multiple LVs are matched - - It is useful to use ``tags`` when trying to find a specific logical volume, - but it can also lead to multiple lvs being found, since a lot of metadata - is shared between lvs of a distinct OSD. - """ - if not any([lv_name, vg_name, lv_path, lv_uuid, lv_tags]): - return None - lvs = self._filter( - lv_name=lv_name, - vg_name=vg_name, - lv_path=lv_path, - lv_uuid=lv_uuid, - lv_tags=lv_tags - ) - if not lvs: - return None - if len(lvs) > 1: - raise MultipleLVsError(lv_name, lv_path) - return lvs[0] - - def create_lv(name_prefix, uuid, vg=None, @@ -1204,7 +970,7 @@ ] process.run(command) - lv = get_lv(lv_name=name, vg_name=vg.vg_name) + lv = get_first_lv(filters={'lv_name': name, 'vg_name': vg.vg_name}) if tags is None: tags = { @@ -1233,104 +999,6 @@ return lv -def remove_lv(lv): - """ - Removes a logical volume given it's absolute path. - - Will return True if the lv is successfully removed or - raises a RuntimeError if the removal fails. - - :param lv: A ``Volume`` object or the path for an LV - """ - if isinstance(lv, Volume): - path = lv.lv_path - else: - path = lv - - stdout, stderr, returncode = process.call( - [ - 'lvremove', - '-v', # verbose - '-f', # force it - path - ], - show_command=True, - terminal_verbose=True, - ) - if returncode != 0: - raise RuntimeError("Unable to remove %s" % path) - return True - - -def is_lv(dev, lvs=None): - """ - Boolean to detect if a device is an LV or not. - """ - splitname = dmsetup_splitname(dev) - # Allowing to optionally pass `lvs` can help reduce repetitive checks for - # multiple devices at once. - if lvs is None or len(lvs) == 0: - lvs = Volumes() - - if splitname.get('LV_NAME'): - lvs.filter(lv_name=splitname['LV_NAME'], vg_name=splitname['VG_NAME']) - return len(lvs) > 0 - return False - -def get_lv_by_name(name): - stdout, stderr, returncode = process.call( - ['lvs', '--noheadings', '-o', LV_FIELDS, '-S', - 'lv_name={}'.format(name)], - verbose_on_failure=False - ) - lvs = _output_parser(stdout, LV_FIELDS) - return [Volume(**lv) for lv in lvs] - -def get_lvs_by_tag(lv_tag): - stdout, stderr, returncode = process.call( - ['lvs', '--noheadings', '--separator=";"', '-a', '-o', LV_FIELDS, '-S', - 'lv_tags={{{}}}'.format(lv_tag)], - verbose_on_failure=False - ) - lvs = _output_parser(stdout, LV_FIELDS) - return [Volume(**lv) for lv in lvs] - -def get_lv(lv_name=None, vg_name=None, lv_path=None, lv_uuid=None, lv_tags=None, lvs=None): - """ - Return a matching lv for the current system, requiring ``lv_name``, - ``vg_name``, ``lv_path`` or ``tags``. Raises an error if more than one lv - is found. - - It is useful to use ``tags`` when trying to find a specific logical volume, - but it can also lead to multiple lvs being found, since a lot of metadata - is shared between lvs of a distinct OSD. - """ - if not any([lv_name, vg_name, lv_path, lv_uuid, lv_tags]): - return None - if lvs is None: - lvs = Volumes() - return lvs.get( - lv_name=lv_name, vg_name=vg_name, lv_path=lv_path, lv_uuid=lv_uuid, - lv_tags=lv_tags - ) - - -def get_lv_from_argument(argument): - """ - Helper proxy function that consumes a possible logical volume passed in from the CLI - in the form of `vg/lv`, but with some validation so that an argument that is a full - path to a device can be ignored - """ - if argument.startswith('/'): - lv = get_lv(lv_path=argument) - return lv - try: - vg_name, lv_name = argument.split('/') - except (ValueError, AttributeError): - return None - return get_lv(lv_name=lv_name, vg_name=vg_name) - - def create_lvs(volume_group, parts=None, size=None, name_prefix='ceph-lv'): """ Create multiple Logical Volumes from a Volume Group by calculating the @@ -1374,141 +1042,34 @@ return lvs -def get_device_lvs(device, name_prefix=''): - stdout, stderr, returncode = process.call( - ['pvs'] + LV_CMD_OPTIONS + ['-o', LV_FIELDS, device], - verbose_on_failure=False - ) - lvs = _output_parser(stdout, LV_FIELDS) - return [Volume(**lv) for lv in lvs if lv['lv_name'] and - lv['lv_name'].startswith(name_prefix)] - - -############################################################# -# -# New methods to get PVs, LVs, and VGs. -# Later, these can be easily merged with get_api_* methods -# -########################################################### - -def convert_filters_to_str(filters): - """ - Convert filter args from dictionary to following format - - filters={filter_name=filter_val,...} - """ - if not filters: - return filters - - filter_arg = '' - for k, v in filters.items(): - filter_arg += k + '=' + v + ',' - # get rid of extra comma at the end - filter_arg = filter_arg[:len(filter_arg) - 1] - - return filter_arg - -def convert_tags_to_str(tags): - """ - Convert tags from dictionary to following format - - tags={tag_name=tag_val,...} +def remove_lv(lv): """ - if not tags: - return tags - - tag_arg = 'tags={' - for k, v in tags.items(): - tag_arg += k + '=' + v + ',' - # get rid of extra comma at the end - tag_arg = tag_arg[:len(tag_arg) - 1] + '}' - - return tag_arg + Removes a logical volume given it's absolute path. -def make_filters_lvmcmd_ready(filters, tags): - """ - Convert filters (including tags) from dictionary to following format - - filter_name=filter_val...,tags={tag_name=tag_val,...} + Will return True if the lv is successfully removed or + raises a RuntimeError if the removal fails. - The command will look as follows = - lvs -S filter_name=filter_val...,tags={tag_name=tag_val,...} + :param lv: A ``Volume`` object or the path for an LV """ - filters = convert_filters_to_str(filters) - tags = convert_tags_to_str(tags) - - if filters and tags: - return filters + ',' + tags - if filters and not tags: - return filters - if not filters and tags: - return tags + if isinstance(lv, Volume): + path = lv.lv_path else: - return '' - -def get_pvs(fields=PV_FIELDS, filters='', tags=None): - """ - Return a list of PVs that are available on the system and match the - filters and tags passed. Argument filters takes a dictionary containing - arguments required by -S option of LVM. Passing a list of LVM tags can be - quite tricky to pass as a dictionary within dictionary, therefore pass - dictionary of tags via tags argument and tricky part will be taken care of - by the helper methods. - - :param fields: string containing list of fields to be displayed by the - pvs command - :param sep: string containing separator to be used between two fields - :param filters: dictionary containing LVM filters - :param tags: dictionary containng LVM tags - :returns: list of class PVolume object representing pvs on the system - """ - filters = make_filters_lvmcmd_ready(filters, tags) - args = ['pvs', '--no-heading', '--readonly', '--separator=";"', '-S', - filters, '-o', fields] - - stdout, stderr, returncode = process.call(args, verbose_on_failure=False) - pvs_report = _output_parser(stdout, fields) - return [PVolume(**pv_report) for pv_report in pvs_report] - -def get_first_pv(fields=PV_FIELDS, filters=None, tags=None): - """ - Wrapper of get_pv meant to be a convenience method to avoid the phrase:: - pvs = get_pvs() - if len(pvs) >= 1: - pv = pvs[0] - """ - pvs = get_pvs(fields=fields, filters=filters, tags=tags) - return pvs[0] if len(pvs) > 0 else [] - -def get_vgs(fields=VG_FIELDS, filters='', tags=None): - """ - Return a list of VGs that are available on the system and match the - filters and tags passed. Argument filters takes a dictionary containing - arguments required by -S option of LVM. Passing a list of LVM tags can be - quite tricky to pass as a dictionary within dictionary, therefore pass - dictionary of tags via tags argument and tricky part will be taken care of - by the helper methods. - - :param fields: string containing list of fields to be displayed by the - vgs command - :param sep: string containing separator to be used between two fields - :param filters: dictionary containing LVM filters - :param tags: dictionary containng LVM tags - :returns: list of class VolumeGroup object representing vgs on the system - """ - filters = make_filters_lvmcmd_ready(filters, tags) - args = ['vgs'] + VG_CMD_OPTIONS + ['-S', filters, '-o', fields] + path = lv - stdout, stderr, returncode = process.call(args, verbose_on_failure=False) - vgs_report =_output_parser(stdout, fields) - return [VolumeGroup(**vg_report) for vg_report in vgs_report] + stdout, stderr, returncode = process.call( + [ + 'lvremove', + '-v', # verbose + '-f', # force it + path + ], + show_command=True, + terminal_verbose=True, + ) + if returncode != 0: + raise RuntimeError("Unable to remove %s" % path) + return True -def get_first_vg(fields=VG_FIELDS, filters=None, tags=None): - """ - Wrapper of get_vg meant to be a convenience method to avoid the phrase:: - vgs = get_vgs() - if len(vgs) >= 1: - vg = vgs[0] - """ - vgs = get_vgs(fields=fields, filters=filters, tags=tags) - return vgs[0] if len(vgs) > 0 else [] def get_lvs(fields=LV_FIELDS, filters='', tags=None): """ @@ -1533,6 +1094,7 @@ lvs_report = _output_parser(stdout, fields) return [Volume(**lv_report) for lv_report in lvs_report] + def get_first_lv(fields=LV_FIELDS, filters=None, tags=None): """ Wrapper of get_lv meant to be a convenience method to avoid the phrase:: @@ -1542,3 +1104,33 @@ """ lvs = get_lvs(fields=fields, filters=filters, tags=tags) return lvs[0] if len(lvs) > 0 else [] + + +def get_lv_by_name(name): + stdout, stderr, returncode = process.call( + ['lvs', '--noheadings', '-o', LV_FIELDS, '-S', + 'lv_name={}'.format(name)], + verbose_on_failure=False + ) + lvs = _output_parser(stdout, LV_FIELDS) + return [Volume(**lv) for lv in lvs] + + +def get_lvs_by_tag(lv_tag): + stdout, stderr, returncode = process.call( + ['lvs', '--noheadings', '--separator=";"', '-a', '-o', LV_FIELDS, '-S', + 'lv_tags={{{}}}'.format(lv_tag)], + verbose_on_failure=False + ) + lvs = _output_parser(stdout, LV_FIELDS) + return [Volume(**lv) for lv in lvs] + + +def get_device_lvs(device, name_prefix=''): + stdout, stderr, returncode = process.call( + ['pvs'] + LV_CMD_OPTIONS + ['-o', LV_FIELDS, device], + verbose_on_failure=False + ) + lvs = _output_parser(stdout, LV_FIELDS) + return [Volume(**lv) for lv in lvs if lv['lv_name'] and + lv['lv_name'].startswith(name_prefix)] diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/activate.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/activate.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/activate.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/activate.py 2021-03-15 17:46:20.000000000 +0000 @@ -15,30 +15,40 @@ logger = logging.getLogger(__name__) -def activate_filestore(lvs, no_systemd=False): +def activate_filestore(osd_lvs, no_systemd=False): # find the osd - osd_lv = lvs.get(lv_tags={'ceph.type': 'data'}) - if not osd_lv: + for osd_lv in osd_lvs: + if osd_lv.tags.get('ceph.type') == 'data': + data_lv = osd_lv + break + else: raise RuntimeError('Unable to find a data LV for filestore activation') - is_encrypted = osd_lv.tags.get('ceph.encrypted', '0') == '1' - is_vdo = osd_lv.tags.get('ceph.vdo', '0') - osd_id = osd_lv.tags['ceph.osd_id'] - configuration.load_ceph_conf_path(osd_lv.tags['ceph.cluster_name']) + is_encrypted = data_lv.tags.get('ceph.encrypted', '0') == '1' + is_vdo = data_lv.tags.get('ceph.vdo', '0') + + osd_id = data_lv.tags['ceph.osd_id'] + configuration.load_ceph_conf_path(data_lv.tags['ceph.cluster_name']) configuration.load() # it may have a volume with a journal - osd_journal_lv = lvs.get(lv_tags={'ceph.type': 'journal'}) + for osd_lv in osd_lvs: + if osd_lv.tags.get('ceph.type') == 'journal': + osd_journal_lv = osd_lv + break + else: + osd_journal_lv = None + # TODO: add sensible error reporting if this is ever the case # blow up with a KeyError if this doesn't exist - osd_fsid = osd_lv.tags['ceph.osd_fsid'] + osd_fsid = data_lv.tags['ceph.osd_fsid'] if not osd_journal_lv: # must be a disk partition, by querying blkid by the uuid we are ensuring that the # device path is always correct - journal_uuid = osd_lv.tags['ceph.journal_uuid'] + journal_uuid = data_lv.tags['ceph.journal_uuid'] osd_journal = disk.get_device_from_partuuid(journal_uuid) else: journal_uuid = osd_journal_lv.lv_uuid - osd_journal = osd_lv.tags['ceph.journal_device'] + osd_journal = data_lv.tags['ceph.journal_device'] if not osd_journal: raise RuntimeError('unable to detect an lv or device journal for OSD %s' % osd_id) @@ -46,17 +56,17 @@ # this is done here, so that previous checks that ensure path availability # and correctness can still be enforced, and report if any issues are found if is_encrypted: - lockbox_secret = osd_lv.tags['ceph.cephx_lockbox_secret'] + lockbox_secret = data_lv.tags['ceph.cephx_lockbox_secret'] # this keyring writing is idempotent encryption_utils.write_lockbox_keyring(osd_id, osd_fsid, lockbox_secret) dmcrypt_secret = encryption_utils.get_dmcrypt_key(osd_id, osd_fsid) - encryption_utils.luks_open(dmcrypt_secret, osd_lv.lv_path, osd_lv.lv_uuid) + encryption_utils.luks_open(dmcrypt_secret, data_lv.lv_path, data_lv.lv_uuid) encryption_utils.luks_open(dmcrypt_secret, osd_journal, journal_uuid) osd_journal = '/dev/mapper/%s' % journal_uuid - source = '/dev/mapper/%s' % osd_lv.lv_uuid + source = '/dev/mapper/%s' % data_lv.lv_uuid else: - source = osd_lv.lv_path + source = data_lv.lv_path # mount the osd destination = '/var/lib/ceph/osd/%s-%s' % (conf.cluster, osd_id) @@ -86,24 +96,33 @@ terminal.success("ceph-volume lvm activate successful for osd ID: %s" % osd_id) -def get_osd_device_path(osd_lv, lvs, device_type, dmcrypt_secret=None): +def get_osd_device_path(osd_lvs, device_type, dmcrypt_secret=None): """ - ``device_type`` can be one of ``db``, ``wal`` or ``block`` so that - we can query ``lvs`` (a ``Volumes`` object) and fallback to querying the uuid - if that is not present. + ``device_type`` can be one of ``db``, ``wal`` or ``block`` so that we can + query LVs on system and fallback to querying the uuid if that is not + present. - Return a path if possible, failing to do that a ``None``, since some of these devices - are optional + Return a path if possible, failing to do that a ``None``, since some of + these devices are optional. """ - osd_lv = lvs.get(lv_tags={'ceph.type': 'block'}) - is_encrypted = osd_lv.tags.get('ceph.encrypted', '0') == '1' - logger.debug('Found block device (%s) with encryption: %s', osd_lv.name, is_encrypted) - uuid_tag = 'ceph.%s_uuid' % device_type - device_uuid = osd_lv.tags.get(uuid_tag) - if not device_uuid: - return None - - device_lv = lvs.get(lv_tags={'ceph.type': device_type}) + osd_block_lv = None + for lv in osd_lvs: + if lv.tags.get('ceph.type') == 'block': + osd_block_lv = lv + break + if osd_block_lv: + is_encrypted = osd_block_lv.tags.get('ceph.encrypted', '0') == '1' + logger.debug('Found block device (%s) with encryption: %s', osd_block_lv.name, is_encrypted) + uuid_tag = 'ceph.%s_uuid' % device_type + device_uuid = osd_block_lv.tags.get(uuid_tag) + if not device_uuid: + return None + + device_lv = None + for lv in osd_lvs: + if lv.tags.get('ceph.type') == device_type: + device_lv = lv + break if device_lv: if is_encrypted: encryption_utils.luks_open(dmcrypt_secret, device_lv.lv_path, device_uuid) @@ -121,16 +140,19 @@ raise RuntimeError('could not find %s with uuid %s' % (device_type, device_uuid)) -def activate_bluestore(lvs, no_systemd=False): - # find the osd - osd_lv = lvs.get(lv_tags={'ceph.type': 'block'}) - if not osd_lv: +def activate_bluestore(osd_lvs, no_systemd=False): + for lv in osd_lvs: + if lv.tags.get('ceph.type') == 'block': + osd_block_lv = lv + break + else: raise RuntimeError('could not find a bluestore OSD to activate') - is_encrypted = osd_lv.tags.get('ceph.encrypted', '0') == '1' + + is_encrypted = osd_block_lv.tags.get('ceph.encrypted', '0') == '1' dmcrypt_secret = None - osd_id = osd_lv.tags['ceph.osd_id'] - conf.cluster = osd_lv.tags['ceph.cluster_name'] - osd_fsid = osd_lv.tags['ceph.osd_fsid'] + osd_id = osd_block_lv.tags['ceph.osd_id'] + conf.cluster = osd_block_lv.tags['ceph.cluster_name'] + osd_fsid = osd_block_lv.tags['ceph.osd_fsid'] # mount on tmpfs the osd directory osd_path = '/var/lib/ceph/osd/%s-%s' % (conf.cluster, osd_id) @@ -145,16 +167,16 @@ os.unlink(os.path.join(osd_path, link_name)) # encryption is handled here, before priming the OSD dir if is_encrypted: - osd_lv_path = '/dev/mapper/%s' % osd_lv.lv_uuid - lockbox_secret = osd_lv.tags['ceph.cephx_lockbox_secret'] + osd_lv_path = '/dev/mapper/%s' % osd_block_lv.lv_uuid + lockbox_secret = osd_block_lv.tags['ceph.cephx_lockbox_secret'] encryption_utils.write_lockbox_keyring(osd_id, osd_fsid, lockbox_secret) dmcrypt_secret = encryption_utils.get_dmcrypt_key(osd_id, osd_fsid) - encryption_utils.luks_open(dmcrypt_secret, osd_lv.lv_path, osd_lv.lv_uuid) + encryption_utils.luks_open(dmcrypt_secret, osd_block_lv.lv_path, osd_block_lv.lv_uuid) else: - osd_lv_path = osd_lv.lv_path + osd_lv_path = osd_block_lv.lv_path - db_device_path = get_osd_device_path(osd_lv, lvs, 'db', dmcrypt_secret=dmcrypt_secret) - wal_device_path = get_osd_device_path(osd_lv, lvs, 'wal', dmcrypt_secret=dmcrypt_secret) + db_device_path = get_osd_device_path(osd_lvs, 'db', dmcrypt_secret=dmcrypt_secret) + wal_device_path = get_osd_device_path(osd_lvs, 'wal', dmcrypt_secret=dmcrypt_secret) # Once symlinks are removed, the osd dir can be 'primed again. chown first, # regardless of what currently exists so that ``prime-osd-dir`` can succeed @@ -235,36 +257,43 @@ def activate(self, args, osd_id=None, osd_fsid=None): """ :param args: The parsed arguments coming from the CLI - :param osd_id: When activating all, this gets populated with an existing OSD ID - :param osd_fsid: When activating all, this gets populated with an existing OSD FSID + :param osd_id: When activating all, this gets populated with an + existing OSD ID + :param osd_fsid: When activating all, this gets populated with an + existing OSD FSID """ - osd_id = osd_id if osd_id is not None else args.osd_id - osd_fsid = osd_fsid if osd_fsid is not None else args.osd_fsid + osd_id = osd_id if osd_id else args.osd_id + osd_fsid = osd_fsid if osd_fsid else args.osd_fsid - lvs = api.Volumes() - # filter them down for the OSD ID and FSID we need to activate if osd_id and osd_fsid: - lvs.filter(lv_tags={'ceph.osd_id': osd_id, 'ceph.osd_fsid': osd_fsid}) - elif osd_fsid and not osd_id: - lvs.filter(lv_tags={'ceph.osd_fsid': osd_fsid}) + tags = {'ceph.osd_id': osd_id, 'ceph.osd_fsid': osd_fsid} + elif not osd_id and osd_fsid: + tags = {'ceph.osd_fsid': osd_fsid} + lvs = api.get_lvs(tags=tags) if not lvs: - raise RuntimeError('could not find osd.%s with osd_fsid %s' % (osd_id, osd_fsid)) + raise RuntimeError('could not find osd.%s with osd_fsid %s' % + (osd_id, osd_fsid)) + # This argument is only available when passed in directly or via # systemd, not when ``create`` is being used if getattr(args, 'auto_detect_objectstore', False): logger.info('auto detecting objectstore') - # may get multiple lvs, so can't do lvs.get() calls here + # may get multiple lvs, so can't do get_the_lvs() calls here for lv in lvs: has_journal = lv.tags.get('ceph.journal_uuid') if has_journal: - logger.info('found a journal associated with the OSD, assuming filestore') - return activate_filestore(lvs, no_systemd=args.no_systemd) - logger.info('unable to find a journal associated with the OSD, assuming bluestore') - return activate_bluestore(lvs, no_systemd=args.no_systemd) + logger.info('found a journal associated with the OSD, ' + 'assuming filestore') + return activate_filestore(lvs, args.no_systemd) + + logger.info('unable to find a journal associated with the OSD, ' + 'assuming bluestore') + + return activate_bluestore(lvs, args.no_systemd) if args.bluestore: - activate_bluestore(lvs, no_systemd=args.no_systemd) + activate_bluestore(lvs, args.no_systemd) elif args.filestore: - activate_filestore(lvs, no_systemd=args.no_systemd) + activate_filestore(lvs, args.no_systemd) def main(self): sub_command_help = dedent(""" diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/batch.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/batch.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/batch.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/batch.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,10 +1,14 @@ import argparse +from collections import namedtuple +import json import logging from textwrap import dedent from ceph_volume import terminal, decorators -from ceph_volume.util import disk, prompt_bool -from ceph_volume.util import arg_validators -from . import strategies +from ceph_volume.util import disk, prompt_bool, arg_validators, templates +from ceph_volume.util import prepare +from . import common +from .create import Create +from .prepare import Prepare mlogger = terminal.MultiLogger(__name__) logger = logging.getLogger(__name__) @@ -25,98 +29,122 @@ return ''.join(lines) -# Scenario filtering/detection -def bluestore_single_type(device_facts): - """ - Detect devices that are just HDDs or solid state so that a 1:1 - device-to-osd provisioning can be done - """ - types = [device.rotational for device in device_facts] - if len(set(types)) == 1: - return strategies.bluestore.SingleType - - -def bluestore_mixed_type(device_facts): - """ - Detect if devices are HDDs as well as solid state so that block.db can be - placed in solid devices while data is kept in the spinning drives. - """ - types = [device.rotational for device in device_facts] - if len(set(types)) > 1: - return strategies.bluestore.MixedType - - -def filestore_single_type(device_facts): - """ - Detect devices that are just HDDs or solid state so that a 1:1 - device-to-osd provisioning can be done, keeping the journal on the OSD - """ - types = [device.rotational for device in device_facts] - if len(set(types)) == 1: - return strategies.filestore.SingleType - - -def filestore_mixed_type(device_facts): - """ - Detect if devices are HDDs as well as solid state so that the journal can be - placed in solid devices while data is kept in the spinning drives. - """ - types = [device.rotational for device in device_facts] - if len(set(types)) > 1: - return strategies.filestore.MixedType - - -def get_strategy(args, devices): - """ - Given a set of devices as input, go through the different detection - mechanisms to narrow down on a strategy to use. The strategies are 4 in - total: - - * Single device type on Bluestore - * Mixed device types on Bluestore - * Single device type on Filestore - * Mixed device types on Filestore - - When the function matches to a scenario it returns the strategy class. This - allows for dynamic loading of the conditions needed for each scenario, with - normalized classes - """ - bluestore_strategies = [bluestore_mixed_type, bluestore_single_type] - filestore_strategies = [filestore_mixed_type, filestore_single_type] - if args.bluestore: - strategies = bluestore_strategies - else: - strategies = filestore_strategies - - for strategy in strategies: - backend = strategy(devices) - if backend: - return backend - - -def filter_devices(args): - unused_devices = [device for device in args.devices if not device.used_by_ceph] - # only data devices, journals can be reused - used_devices = [device.abspath for device in args.devices if device.used_by_ceph] - filtered_devices = {} - if used_devices: - for device in used_devices: - filtered_devices[device] = {"reasons": ["Used by ceph as a data device already"]} - logger.info("Ignoring devices already used by ceph: %s" % ", ".join(used_devices)) - if len(unused_devices) == 1: - last_device = unused_devices[0] - if not last_device.rotational and last_device.is_lvm_member: - if last_device.lvs: - reason = "Used by ceph as a %s already and there are no devices left for data/block" % ( - last_device.lvs[0].tags.get("ceph.type"), - ) +def ensure_disjoint_device_lists(data, db=[], wal=[], journal=[]): + # check that all device lists are disjoint with each other + if not all([set(data).isdisjoint(set(db)), + set(data).isdisjoint(set(wal)), + set(data).isdisjoint(set(journal)), + set(db).isdisjoint(set(wal))]): + raise Exception('Device lists are not disjoint') + + +def separate_devices_from_lvs(devices): + phys = [] + lvm = [] + for d in devices: + phys.append(d) if d.is_device else lvm.append(d) + return phys, lvm + + +def get_physical_osds(devices, args): + ''' + Goes through passed physical devices and assigns OSDs + ''' + data_slots = args.osds_per_device + if args.data_slots: + data_slots = max(args.data_slots, args.osds_per_device) + rel_data_size = 1.0 / data_slots + mlogger.debug('relative data size: {}'.format(rel_data_size)) + ret = [] + for dev in devices: + if dev.available_lvm: + dev_size = dev.vg_size[0] + abs_size = disk.Size(b=int(dev_size * rel_data_size)) + free_size = dev.vg_free[0] + for _ in range(args.osds_per_device): + if abs_size > free_size: + break + free_size -= abs_size.b + osd_id = None + if args.osd_ids: + osd_id = args.osd_ids.pop() + ret.append(Batch.OSD(dev.path, + rel_data_size, + abs_size, + args.osds_per_device, + osd_id, + 'dmcrypt' if args.dmcrypt else None)) + return ret + + +def get_lvm_osds(lvs, args): + ''' + Goes through passed LVs and assigns planned osds + ''' + ret = [] + for lv in lvs: + if lv.used_by_ceph: + continue + osd_id = None + if args.osd_ids: + osd_id = args.osd_ids.pop() + osd = Batch.OSD("{}/{}".format(lv.vg_name, lv.lv_name), + 100.0, + disk.Size(b=int(lv.lvs[0].lv_size)), + 1, + osd_id, + 'dmcrypt' if args.dmcrypt else None) + ret.append(osd) + return ret + + +def get_physical_fast_allocs(devices, type_, fast_slots_per_device, new_osds, args): + requested_slots = getattr(args, '{}_slots'.format(type_)) + if not requested_slots or requested_slots < fast_slots_per_device: + if requested_slots: + mlogger.info('{}_slots argument is too small, ignoring'.format(type_)) + requested_slots = fast_slots_per_device + + requested_size = getattr(args, '{}_size'.format(type_), 0) + if requested_size == 0: + # no size argument was specified, check ceph.conf + get_size_fct = getattr(prepare, 'get_{}_size'.format(type_)) + requested_size = get_size_fct(lv_format=False) + + ret = [] + for dev in devices: + if not dev.available_lvm: + continue + # any LV present is considered a taken slot + occupied_slots = len(dev.lvs) + # this only looks at the first vg on device, unsure if there is a better + # way + dev_size = dev.vg_size[0] + abs_size = disk.Size(b=int(dev_size / requested_slots)) + free_size = dev.vg_free[0] + relative_size = int(abs_size) / dev_size + if requested_size: + if requested_size <= abs_size: + abs_size = requested_size else: - reason = "Disk is an LVM member already, skipping" - filtered_devices[last_device.abspath] = {"reasons": [reason]} - logger.info(reason + ": %s" % last_device.abspath) - unused_devices = [] - - return unused_devices, filtered_devices + mlogger.error( + '{} was requested for {}, but only {} can be fulfilled'.format( + requested_size, + '{}_size'.format(type_), + abs_size, + )) + exit(1) + while abs_size <= free_size and len(ret) < new_osds and occupied_slots < fast_slots_per_device: + free_size -= abs_size.b + occupied_slots += 1 + ret.append((dev.path, relative_size, abs_size, requested_slots)) + return ret + + +def get_lvm_fast_allocs(lvs): + return [("{}/{}".format(d.vg_name, d.lv_name), 100.0, + disk.Size(b=int(d.lvs[0].lv_size)), 1) for d in lvs if not + d.used_by_ceph] class Batch(object): @@ -126,13 +154,11 @@ _help = dedent(""" Automatically size devices ready for OSD provisioning based on default strategies. - Detected devices: - {detected_devices} - Usage: ceph-volume lvm batch [DEVICE...] + Devices can be physical block devices or LVs. Optional reporting on possible outcomes is enabled with --report ceph-volume lvm batch --report [DEVICE...] @@ -142,41 +168,49 @@ parser = argparse.ArgumentParser( prog='ceph-volume lvm batch', formatter_class=argparse.RawDescriptionHelpFormatter, - description=self.print_help(), + description=self._help, ) parser.add_argument( 'devices', metavar='DEVICES', nargs='*', - type=arg_validators.ValidDevice(), + type=arg_validators.ValidBatchDevice(), default=[], help='Devices to provision OSDs', ) parser.add_argument( '--db-devices', nargs='*', - type=arg_validators.ValidDevice(), + type=arg_validators.ValidBatchDevice(), default=[], help='Devices to provision OSDs db volumes', ) parser.add_argument( '--wal-devices', nargs='*', - type=arg_validators.ValidDevice(), + type=arg_validators.ValidBatchDevice(), default=[], help='Devices to provision OSDs wal volumes', ) parser.add_argument( '--journal-devices', nargs='*', - type=arg_validators.ValidDevice(), + type=arg_validators.ValidBatchDevice(), default=[], help='Devices to provision OSDs journal volumes', ) parser.add_argument( - '--no-auto', + '--auto', action='store_true', + help=('deploy multi-device OSDs if rotational and non-rotational drives ' + 'are passed in DEVICES'), + default=True + ) + parser.add_argument( + '--no-auto', + action='store_false', + dest='auto', help=('deploy standalone OSDs if rotational and non-rotational drives ' 'are passed in DEVICES'), ) @@ -193,7 +227,7 @@ parser.add_argument( '--report', action='store_true', - help='Autodetect the objectstore by inspecting the OSD', + help='Only report on OSD that would be created and exit', ) parser.add_argument( '--yes', @@ -204,7 +238,7 @@ '--format', help='output format, defaults to "pretty"', default='pretty', - choices=['json', 'pretty'], + choices=['json', 'json-pretty', 'pretty'], ) parser.add_argument( '--dmcrypt', @@ -229,21 +263,52 @@ help='Provision more than 1 (the default) OSD per device', ) parser.add_argument( - '--block-db-size', + '--data-slots', type=int, + help=('Provision more than 1 (the default) OSD slot per device' + ' if more slots then osds-per-device are specified, slots' + 'will stay unoccupied'), + ) + parser.add_argument( + '--block-db-size', + type=disk.Size.parse, help='Set (or override) the "bluestore_block_db_size" value, in bytes' ) parser.add_argument( - '--block-wal-size', + '--block-db-slots', type=int, + help='Provision slots on DB device, can remain unoccupied' + ) + parser.add_argument( + '--block-wal-size', + type=disk.Size.parse, help='Set (or override) the "bluestore_block_wal_size" value, in bytes' ) parser.add_argument( - '--journal-size', + '--block-wal-slots', type=int, + help='Provision slots on WAL device, can remain unoccupied' + ) + def journal_size_in_mb_hack(size): + # TODO give user time to adjust, then remove this + if size and size[-1].isdigit(): + mlogger.warning('DEPRECATION NOTICE') + mlogger.warning('--journal-size as integer is parsed as megabytes') + mlogger.warning('A future release will parse integers as bytes') + mlogger.warning('Add a "M" to explicitly pass a megabyte size') + size += 'M' + return disk.Size.parse(size) + parser.add_argument( + '--journal-size', + type=journal_size_in_mb_hack, help='Override the "osd_journal_size" value, in megabytes' ) parser.add_argument( + '--journal-slots', + type=int, + help='Provision slots on journal device, can remain unoccupied' + ) + parser.add_argument( '--prepare', action='store_true', help='Only prepare all OSDs, do not activate', @@ -259,51 +324,59 @@ for dev_list in ['', 'db_', 'wal_', 'journal_']: setattr(self, '{}usable'.format(dev_list), []) - def get_devices(self): - # remove devices with partitions - devices = [(device, details) for device, details in - disk.get_devices().items() if details.get('partitions') == {}] - size_sort = lambda x: (x[0], x[1]['size']) - return device_formatter(sorted(devices, key=size_sort)) - - def print_help(self): - return self._help.format( - detected_devices=self.get_devices(), - ) + def report(self, plan): + report = self._create_report(plan) + print(report) - def report(self): + def _create_report(self, plan): if self.args.format == 'pretty': - self.strategy.report_pretty(self.filtered_devices) - elif self.args.format == 'json': - self.strategy.report_json(self.filtered_devices) - else: - raise RuntimeError('report format must be "pretty" or "json"') - - def execute(self): - if not self.args.yes: - self.strategy.report_pretty(self.filtered_devices) - terminal.info('The above OSDs would be created if the operation continues') - if not prompt_bool('do you want to proceed? (yes/no)'): - devices = ','.join([device.abspath for device in self.args.devices]) - terminal.error('aborting OSD provisioning for %s' % devices) - raise SystemExit(0) + report = '' + report += templates.total_osds.format(total_osds=len(plan)) - self.strategy.execute() - - def _get_strategy(self): - strategy = get_strategy(self.args, self.args.devices) - unused_devices, self.filtered_devices = filter_devices(self.args) - if not unused_devices and not self.args.format == 'json': - # report nothing changed - mlogger.info("All devices are already used by ceph. No OSDs will be created.") - raise SystemExit(0) + report += templates.osd_component_titles + for osd in plan: + report += templates.osd_header + report += osd.report() + return report else: - new_strategy = get_strategy(self.args, unused_devices) - if new_strategy and strategy != new_strategy: - mlogger.error("Aborting because strategy changed from %s to %s after filtering" % (strategy.type(), new_strategy.type())) - raise SystemExit(1) - - self.strategy = strategy.with_auto_devices(self.args, unused_devices) + json_report = [] + for osd in plan: + json_report.append(osd.report_json()) + if self.args.format == 'json': + return json.dumps(json_report) + elif self.args.format == 'json-pretty': + return json.dumps(json_report, indent=4, + sort_keys=True) + + def _check_slot_args(self): + ''' + checking if -slots args are consistent with other arguments + ''' + if self.args.data_slots and self.args.osds_per_device: + if self.args.data_slots < self.args.osds_per_device: + raise ValueError('data_slots is smaller then osds_per_device') + + def _sort_rotational_disks(self): + ''' + Helper for legacy auto behaviour. + Sorts drives into rotating and non-rotating, the latter being used for + db or journal. + ''' + mlogger.warning('DEPRECATION NOTICE') + mlogger.warning('You are using the legacy automatic disk sorting behavior') + mlogger.warning('The Pacific release will change the default to --no-auto') + rotating = [] + ssd = [] + for d in self.args.devices: + rotating.append(d) if d.rotational else ssd.append(d) + if ssd and not rotating: + # no need for additional sorting, we'll only deploy standalone on ssds + return + self.args.devices = rotating + if self.args.filestore: + self.args.journal_devices = ssd + else: + self.args.db_devices = ssd @decorators.needs_root def main(self): @@ -315,74 +388,241 @@ if not self.args.bluestore and not self.args.filestore: self.args.bluestore = True - if (self.args.no_auto or self.args.db_devices or - self.args.journal_devices or - self.args.wal_devices): - self._get_explicit_strategy() - else: - self._get_strategy() + if (self.args.auto and not self.args.db_devices and not + self.args.wal_devices and not self.args.journal_devices): + self._sort_rotational_disks() + + self._check_slot_args() + + ensure_disjoint_device_lists(self.args.devices, + self.args.db_devices, + self.args.wal_devices, + self.args.journal_devices) + + plan = self.get_plan(self.args) if self.args.report: - self.report() - else: - self.execute() + self.report(plan) + return 0 + + if not self.args.yes: + self.report(plan) + terminal.info('The above OSDs would be created if the operation continues') + if not prompt_bool('do you want to proceed? (yes/no)'): + terminal.error('aborting OSD provisioning') + raise SystemExit(0) - def _get_explicit_strategy(self): - self._filter_devices() - self._ensure_disjoint_device_lists() - if self.args.bluestore: - if self.db_usable or self.wal_usable: - self.strategy = strategies.bluestore.MixedType( - self.args, - self.usable, - self.db_usable, - self.wal_usable) + self._execute(plan) + + def _execute(self, plan): + defaults = common.get_default_args() + global_args = [ + 'bluestore', + 'filestore', + 'dmcrypt', + 'crush_device_class', + 'no_systemd', + ] + defaults.update({arg: getattr(self.args, arg) for arg in global_args}) + for osd in plan: + args = osd.get_args(defaults) + if self.args.prepare: + p = Prepare([]) + p.safe_prepare(argparse.Namespace(**args)) else: - self.strategy = strategies.bluestore.SingleType( - self.args, - self.usable) + c = Create([]) + c.create(argparse.Namespace(**args)) + + + def get_plan(self, args): + if args.bluestore: + plan = self.get_deployment_layout(args, args.devices, args.db_devices, + args.wal_devices) + elif args.filestore: + plan = self.get_deployment_layout(args, args.devices, args.journal_devices) + return plan + + def get_deployment_layout(self, args, devices, fast_devices=[], + very_fast_devices=[]): + ''' + The methods here are mostly just organization, error reporting and + setting up of (default) args. The heavy lifting code for the deployment + layout can be found in the static get_*_osds and get_*_fast_allocs + functions. + ''' + plan = [] + phys_devs, lvm_devs = separate_devices_from_lvs(devices) + mlogger.debug(('passed data devices: {} physical,' + ' {} LVM').format(len(phys_devs), len(lvm_devs))) + + plan.extend(get_physical_osds(phys_devs, args)) + + plan.extend(get_lvm_osds(lvm_devs, args)) + + num_osds = len(plan) + if num_osds == 0: + mlogger.info('All data devices are unavailable') + return plan + requested_osds = args.osds_per_device * len(phys_devs) + len(lvm_devs) + + fast_type = 'block_db' if args.bluestore else 'journal' + fast_allocations = self.fast_allocations(fast_devices, + requested_osds, + num_osds, + fast_type) + if fast_devices and not fast_allocations: + mlogger.info('{} fast devices were passed, but none are available'.format(len(fast_devices))) + return [] + if fast_devices and not len(fast_allocations) == num_osds: + mlogger.error('{} fast allocations != {} num_osds'.format( + len(fast_allocations), num_osds)) + exit(1) + + very_fast_allocations = self.fast_allocations(very_fast_devices, + requested_osds, + num_osds, + 'block_wal') + if very_fast_devices and not very_fast_allocations: + mlogger.info('{} very fast devices were passed, but none are available'.format(len(very_fast_devices))) + return [] + if very_fast_devices and not len(very_fast_allocations) == num_osds: + mlogger.error('{} very fast allocations != {} num_osds'.format( + len(very_fast_allocations), num_osds)) + exit(1) + + for osd in plan: + if fast_devices: + osd.add_fast_device(*fast_allocations.pop(), + type_=fast_type) + if very_fast_devices and args.bluestore: + osd.add_very_fast_device(*very_fast_allocations.pop()) + return plan + + def fast_allocations(self, devices, requested_osds, new_osds, type_): + ret = [] + if not devices: + return ret + phys_devs, lvm_devs = separate_devices_from_lvs(devices) + mlogger.debug(('passed {} devices: {} physical,' + ' {} LVM').format(type_, len(phys_devs), len(lvm_devs))) + + ret.extend(get_lvm_fast_allocs(lvm_devs)) + + # fill up uneven distributions across fast devices: 5 osds and 2 fast + # devices? create 3 slots on each device rather then deploying + # heterogeneous osds + if (requested_osds - len(lvm_devs)) % len(phys_devs): + fast_slots_per_device = int((requested_osds - len(lvm_devs)) / len(phys_devs)) + 1 else: - if self.journal_usable: - self.strategy = strategies.filestore.MixedType( - self.args, - self.usable, - self.journal_usable) - else: - self.strategy = strategies.filestore.SingleType( - self.args, - self.usable) + fast_slots_per_device = int((requested_osds - len(lvm_devs)) / len(phys_devs)) - def _filter_devices(self): - # filter devices by their available property. - # TODO: Some devices are rejected in the argparser already. maybe it - # makes sense to unifiy this - used_reason = {"reasons": ["Used by ceph already"]} - self.filtered_devices = {} - for dev_list in ['', 'db_', 'wal_', 'journal_']: - dev_list_prop = '{}devices'.format(dev_list) - if hasattr(self.args, dev_list_prop): - usable_dev_list_prop = '{}usable'.format(dev_list) - devs = getattr(self.args, dev_list_prop) - usable = [d for d in devs if d.available] - setattr(self, usable_dev_list_prop, usable) - self.filtered_devices.update({d: used_reason for d in - getattr(self.args, dev_list_prop) - if d.used_by_ceph}) - # only fail if non-interactive, this iteration concerns - # non-data devices, there are usable data devices (or not all - # data devices were filtered) and non-data devices were filtered - # so in short this branch is not taken if all data devices are - # filtered - if self.args.yes and dev_list and self.usable and devs != usable: - err = '{} devices were filtered in non-interactive mode, bailing out' - raise RuntimeError(err.format(len(devs) - len(usable))) - - - def _ensure_disjoint_device_lists(self): - # check that all device lists are disjoint with each other - if not(set(self.usable).isdisjoint(set(self.db_usable)) and - set(self.usable).isdisjoint(set(self.wal_usable)) and - set(self.usable).isdisjoint(set(self.journal_usable)) and - set(self.db_usable).isdisjoint(set(self.wal_usable))): - raise Exception('Device lists are not disjoint') + ret.extend(get_physical_fast_allocs(phys_devs, + type_, + fast_slots_per_device, + new_osds, + self.args)) + return ret + + class OSD(object): + ''' + This class simply stores info about to-be-deployed OSDs and provides an + easy way to retrieve the necessary create arguments. + ''' + VolSpec = namedtuple('VolSpec', + ['path', + 'rel_size', + 'abs_size', + 'slots', + 'type_']) + + def __init__(self, + data_path, + rel_size, + abs_size, + slots, + id_, + encryption): + self.id_ = id_ + self.data = self.VolSpec(path=data_path, + rel_size=rel_size, + abs_size=abs_size, + slots=slots, + type_='data') + self.fast = None + self.very_fast = None + self.encryption = encryption + + def add_fast_device(self, path, rel_size, abs_size, slots, type_): + self.fast = self.VolSpec(path=path, + rel_size=rel_size, + abs_size=abs_size, + slots=slots, + type_=type_) + + def add_very_fast_device(self, path, rel_size, abs_size, slots): + self.very_fast = self.VolSpec(path=path, + rel_size=rel_size, + abs_size=abs_size, + slots=slots, + type_='block_wal') + + def _get_osd_plan(self): + plan = { + 'data': self.data.path, + 'data_size': self.data.abs_size, + 'encryption': self.encryption, + } + if self.fast: + type_ = self.fast.type_.replace('.', '_') + plan.update( + { + type_: self.fast.path, + '{}_size'.format(type_): self.fast.abs_size, + }) + if self.very_fast: + plan.update( + { + 'block_wal': self.very_fast.path, + 'block_wal_size': self.very_fast.abs_size, + }) + if self.id_: + plan.update({'osd_id': self.id_}) + return plan + + def get_args(self, defaults): + my_defaults = defaults.copy() + my_defaults.update(self._get_osd_plan()) + return my_defaults + + def report(self): + report = '' + if self.id_: + report += templates.osd_reused_id.format( + id_=self.id_) + if self.encryption: + report += templates.osd_encryption.format( + enc=self.encryption) + report += templates.osd_component.format( + _type=self.data.type_, + path=self.data.path, + size=self.data.abs_size, + percent=self.data.rel_size) + if self.fast: + report += templates.osd_component.format( + _type=self.fast.type_, + path=self.fast.path, + size=self.fast.abs_size, + percent=self.fast.rel_size) + if self.very_fast: + report += templates.osd_component.format( + _type=self.very_fast.type_, + path=self.very_fast.path, + size=self.very_fast.abs_size, + percent=self.very_fast.rel_size) + return report + + def report_json(self): + # cast all values to string so that the report can be dumped in to + # json.dumps + return {k: str(v) for k, v in self._get_osd_plan().items()} diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/common.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/common.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/common.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/common.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,4 +1,4 @@ -from ceph_volume.util import arg_validators +from ceph_volume.util import arg_validators, disk from ceph_volume import process, conf from ceph_volume import terminal import argparse @@ -34,6 +34,124 @@ process.run(cmd) +common_args = { + '--data': { + 'help': 'OSD data path. A physical device or logical volume', + 'required': True, + 'type': arg_validators.ValidDevice(as_string=True), + #'default':, + #'type':, + }, + '--data-size': { + 'help': 'Size of data LV in case a device was passed in --data', + 'default': '0', + 'type': disk.Size.parse + }, + '--data-slots': { + 'help': ('Intended number of slots on data device. The new OSD gets one' + 'of those slots or 1/nth of the available capacity'), + 'type': int, + 'default': 1, + }, + '--osd-id': { + 'help': 'Reuse an existing OSD id', + 'default': None, + }, + '--osd-fsid': { + 'help': 'Reuse an existing OSD fsid', + 'default': None, + }, + '--cluster-fsid': { + 'help': 'Specify the cluster fsid, useful when no ceph.conf is available', + 'default': None, + }, + '--crush-device-class': { + 'dest': 'crush_device_class', + 'help': 'Crush device class to assign this OSD to', + 'default': None, + }, + '--dmcrypt': { + 'action': 'store_true', + 'help': 'Enable device encryption via dm-crypt', + }, + '--no-systemd': { + 'dest': 'no_systemd', + 'action': 'store_true', + 'help': 'Skip creating and enabling systemd units and starting OSD services when activating', + }, +} + +bluestore_args = { + '--bluestore': { + 'action': 'store_true', + 'help': 'Use the bluestore objectstore', + }, + '--block.db': { + 'dest': 'block_db', + 'help': 'Path to bluestore block.db logical volume or device', + }, + '--block.db-size': { + 'dest': 'block_db_size', + 'help': 'Size of block.db LV in case device was passed in --block.db', + 'default': '0', + 'type': disk.Size.parse + }, + '--block.db-slots': { + 'dest': 'block_db_slots', + 'help': ('Intended number of slots on db device. The new OSD gets one' + 'of those slots or 1/nth of the available capacity'), + 'type': int, + 'default': 1, + }, + '--block.wal': { + 'dest': 'block_wal', + 'help': 'Path to bluestore block.wal logical volume or device', + }, + '--block.wal-size': { + 'dest': 'block_wal_size', + 'help': 'Size of block.wal LV in case device was passed in --block.wal', + 'default': '0', + 'type': disk.Size.parse + }, + '--block.wal-slots': { + 'dest': 'block_wal_slots', + 'help': ('Intended number of slots on wal device. The new OSD gets one' + 'of those slots or 1/nth of the available capacity'), + 'type': int, + 'default': 1, + }, +} + +filestore_args = { + '--filestore': { + 'action': 'store_true', + 'help': 'Use the filestore objectstore', + }, + '--journal': { + 'help': 'A logical volume (vg_name/lv_name), or path to a device', + }, + '--journal-size': { + 'help': 'Size of journal LV in case a raw block device was passed in --journal', + 'default': '0', + 'type': disk.Size.parse + }, + '--journal-slots': { + 'help': ('Intended number of slots on journal device. The new OSD gets one' + 'of those slots or 1/nth of the available capacity'), + 'type': int, + 'default': 1, + }, +} + +def get_default_args(): + defaults = {} + def format_name(name): + return name.strip('-').replace('-', '_').replace('.', '_') + for argset in (common_args, filestore_args, bluestore_args): + defaults.update({format_name(name): val.get('default', None) for name, val in argset.items()}) + return defaults + + def common_parser(prog, description): """ Both prepare and create share the same parser, those are defined here to @@ -45,131 +163,17 @@ description=description, ) - required_group = parser.add_argument_group('required arguments') filestore_group = parser.add_argument_group('filestore') bluestore_group = parser.add_argument_group('bluestore') - required_group.add_argument( - '--data', - required=True, - type=arg_validators.ValidDevice(as_string=True), - help='OSD data path. A physical device or logical volume', - ) - - required_group.add_argument( - '--data-size', - help='Size of data LV in case a device was passed in --data', - default=0, - ) - - required_group.add_argument( - '--data-slots', - help=('Intended number of slots on data device. The new OSD gets one' - 'of those slots or 1/nth of the available capacity'), - type=int, - default=1, - ) - - filestore_group.add_argument( - '--filestore', - action='store_true', - help='Use the filestore objectstore', - ) - - filestore_group.add_argument( - '--journal', - help='(REQUIRED) A logical volume (vg_name/lv_name), or path to a device', - ) - - filestore_group.add_argument( - '--journal-size', - help='Size of journal LV in case a raw block device was passed in --journal', - default=0, - ) - - bluestore_group.add_argument( - '--bluestore', - action='store_true', - help='Use the bluestore objectstore', - ) - - bluestore_group.add_argument( - '--block.db', - dest='block_db', - help='Path to bluestore block.db logical volume or device', - ) - - bluestore_group.add_argument( - '--block.db-size', - dest='block_db_size', - help='Size of block.db LV in case device was passed in --block.db', - default=0, - ) - - required_group.add_argument( - '--block.db-slots', - dest='block_db_slots', - help=('Intended number of slots on db device. The new OSD gets one' - 'of those slots or 1/nth of the available capacity'), - type=int, - default=1, - ) - - bluestore_group.add_argument( - '--block.wal', - dest='block_wal', - help='Path to bluestore block.wal logical volume or device', - ) - - bluestore_group.add_argument( - '--block.wal-size', - dest='block_wal_size', - help='Size of block.wal LV in case device was passed in --block.wal', - default=0, - ) - - required_group.add_argument( - '--block.wal-slots', - dest='block_wal_slots', - help=('Intended number of slots on wal device. The new OSD gets one' - 'of those slots or 1/nth of the available capacity'), - type=int, - default=1, - ) - - parser.add_argument( - '--osd-id', - help='Reuse an existing OSD id', - ) - - parser.add_argument( - '--osd-fsid', - help='Reuse an existing OSD fsid', - ) + for name, kwargs in common_args.items(): + parser.add_argument(name, **kwargs) - parser.add_argument( - '--cluster-fsid', - help='Specify the cluster fsid, useful when no ceph.conf is available', - ) + for name, kwargs in bluestore_args.items(): + bluestore_group.add_argument(name, **kwargs) - parser.add_argument( - '--crush-device-class', - dest='crush_device_class', - help='Crush device class to assign this OSD to', - ) - - parser.add_argument( - '--dmcrypt', - action='store_true', - help='Enable device encryption via dm-crypt', - ) - - parser.add_argument( - '--no-systemd', - dest='no_systemd', - action='store_true', - help='Skip creating and enabling systemd units and starting OSD services when activating', - ) + for name, kwargs in filestore_args.items(): + filestore_group.add_argument(name, **kwargs) # Do not parse args, so that consumers can do something before the args get # parsed triggering argparse behavior diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/create.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/create.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/create.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/create.py 2021-03-15 17:46:20.000000000 +0000 @@ -42,7 +42,7 @@ Create an OSD by assigning an ID and FSID, registering them with the cluster with an ID and FSID, formatting and mounting the volume, adding all the metadata to the logical volumes using LVM tags, and starting - the OSD daemon. This is a convinience command that combines the prepare + the OSD daemon. This is a convenience command that combines the prepare and activate steps. Encryption is supported via dmcrypt and the --dmcrypt flag. diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/main.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/main.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/main.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/main.py 2021-03-15 17:46:20.000000000 +0000 @@ -13,10 +13,10 @@ class LVM(object): - help = 'Use LVM and LVM-based technologies like dmcache to deploy OSDs' + help = 'Use LVM and LVM-based technologies to deploy OSDs' _help = dedent(""" - Use LVM and LVM-based technologies like dmcache to deploy OSDs + Use LVM and LVM-based technologies to deploy OSDs {sub_help} """) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/prepare.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/prepare.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/prepare.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/prepare.py 2021-03-15 17:46:20.000000000 +0000 @@ -135,22 +135,7 @@ raise RuntimeError('unable to use device') return uuid - def get_lv(self, argument): - """ - Perform some parsing of the command-line value so that the process - can determine correctly if it got a device path or an lv. - - :param argument: The command-line value that will need to be split to - retrieve the actual lv - """ - #TODO is this efficient? - try: - vg_name, lv_name = argument.split('/') - except (ValueError, AttributeError): - return None - return api.get_lv(lv_name=lv_name, vg_name=vg_name) - - def setup_device(self, device_type, device_name, tags, size): + def setup_device(self, device_type, device_name, tags, size, slots): """ Check if ``device`` is an lv, if so, set the tags, making sure to update the tags with the lv_uuid and lv_path which the incoming tags @@ -163,41 +148,50 @@ return '', '', tags tags['ceph.type'] = device_type tags['ceph.vdo'] = api.is_vdo(device_name) - lv = self.get_lv(device_name) + + try: + vg_name, lv_name = device_name.split('/') + lv = api.get_first_lv(filters={'lv_name': lv_name, + 'vg_name': vg_name}) + except ValueError: + lv = None + if lv: - uuid = lv.lv_uuid + lv_uuid = lv.lv_uuid path = lv.lv_path - tags['ceph.%s_uuid' % device_type] = uuid + tags['ceph.%s_uuid' % device_type] = lv_uuid tags['ceph.%s_device' % device_type] = path lv.set_tags(tags) elif disk.is_device(device_name): # We got a disk, create an lv lv_type = "osd-{}".format(device_type) - uuid = system.generate_uuid() - tags['ceph.{}_uuid'.format(device_type)] = uuid + name_uuid = system.generate_uuid() kwargs = { 'device': device_name, 'tags': tags, - 'slots': getattr(self.args, - 'block_{}_slots'.format(device_type), - 1), + 'slots': slots } + #TODO use get_block_db_size and co here to get configured size in + #conf file if size != 0: - kwargs['size'] = disk.Size.parse(size) + kwargs['size'] = size lv = api.create_lv( lv_type, - uuid, + name_uuid, **kwargs) path = lv.lv_path tags['ceph.{}_device'.format(device_type)] = path + tags['ceph.{}_uuid'.format(device_type)] = lv.lv_uuid + lv_uuid = lv.lv_uuid lv.set_tags(tags) else: # otherwise assume this is a regular disk partition - uuid = self.get_ptuuid(device_name) + name_uuid = self.get_ptuuid(device_name) path = device_name - tags['ceph.%s_uuid' % device_type] = uuid + tags['ceph.%s_uuid' % device_type] = name_uuid tags['ceph.%s_device' % device_type] = path - return path, uuid, tags + lv_uuid = name_uuid + return path, lv_uuid, tags def prepare_data_device(self, device_type, osd_uuid): """ @@ -220,7 +214,7 @@ } logger.debug('data device size: {}'.format(self.args.data_size)) if self.args.data_size != 0: - kwargs['size'] = disk.Size.parse(self.args.data_size) + kwargs['size'] = self.args.data_size return api.create_lv( lv_name_prefix, osd_uuid, @@ -243,7 +237,15 @@ """ if args is not None: self.args = args - if api.is_ceph_device(self.get_lv(self.args.data)): + + try: + vgname, lvname = self.args.data.split('/') + lv = api.get_first_lv(filters={'lv_name': lvname, + 'vg_name': vgname}) + except ValueError: + lv = None + + if api.is_ceph_device(lv): logger.info("device {} is already used".format(self.args.data)) raise RuntimeError("skipping {}, it is already prepared".format(self.args.data)) try: @@ -297,26 +299,49 @@ 'ceph.osdspec_affinity': prepare_utils.get_osdspec_affinity() } if self.args.filestore: - #TODO: allow auto creation of journal on passed device, only works - # when physical device is passed, not LV if not self.args.journal: - raise RuntimeError('--journal is required when using --filestore') + logger.info(('no journal was specifed, creating journal lv ' + 'on {}').format(self.args.data)) + self.args.journal = self.args.data + self.args.journal_size = disk.Size(g=5) + # need to adjust data size/slots for colocated journal + if self.args.data_size: + self.args.data_size -= self.args.journal_size + if self.args.data_slots == 1: + self.args.data_slots = 0 + else: + raise RuntimeError('Can\'t handle multiple filestore OSDs ' + 'with colocated journals yet. Please ' + 'create journal LVs manually') + tags['ceph.cephx_lockbox_secret'] = cephx_lockbox_secret + tags['ceph.encrypted'] = encrypted + + journal_device, journal_uuid, tags = self.setup_device( + 'journal', + self.args.journal, + tags, + self.args.journal_size, + self.args.journal_slots) + + try: + vg_name, lv_name = self.args.data.split('/') + data_lv = api.get_first_lv(filters={'lv_name': lv_name, + 'vg_name': vg_name}) + except ValueError: + data_lv = None - data_lv = self.get_lv(self.args.data) if not data_lv: data_lv = self.prepare_data_device('data', osd_fsid) tags['ceph.data_device'] = data_lv.lv_path tags['ceph.data_uuid'] = data_lv.lv_uuid - tags['ceph.cephx_lockbox_secret'] = cephx_lockbox_secret - tags['ceph.encrypted'] = encrypted tags['ceph.vdo'] = api.is_vdo(data_lv.lv_path) - - journal_device, journal_uuid, tags = self.setup_device( - 'journal', self.args.journal, tags, self.args.journal_size) - tags['ceph.type'] = 'data' data_lv.set_tags(tags) + if not journal_device.startswith('/'): + # we got a journal lv, set rest of the tags + api.get_first_lv(filters={'lv_name': lv_name, + 'vg_name': vg_name}).set_tags(tags) prepare_filestore( data_lv.lv_path, @@ -327,7 +352,13 @@ osd_fsid, ) elif self.args.bluestore: - block_lv = self.get_lv(self.args.data) + try: + vg_name, lv_name = self.args.data.split('/') + block_lv = api.get_first_lv(filters={'lv_name': lv_name, + 'vg_name': vg_name}) + except ValueError: + block_lv = None + if not block_lv: block_lv = self.prepare_data_device('block', osd_fsid) @@ -338,9 +369,17 @@ tags['ceph.vdo'] = api.is_vdo(block_lv.lv_path) wal_device, wal_uuid, tags = self.setup_device( - 'wal', self.args.block_wal, tags, self.args.block_wal_size) + 'wal', + self.args.block_wal, + tags, + self.args.block_wal_size, + self.args.block_wal_slots) db_device, db_uuid, tags = self.setup_device( - 'db', self.args.block_db, tags, self.args.block_db_size) + 'db', + self.args.block_db, + tags, + self.args.block_db_size, + self.args.block_db_slots) tags['ceph.type'] = 'block' block_lv.set_tags(tags) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/bluestore.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/bluestore.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/bluestore.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/bluestore.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,539 +0,0 @@ -from __future__ import print_function -from ceph_volume.util import disk, prepare, str_to_int -from ceph_volume.api import lvm -from . import validators -from .strategies import Strategy -from .strategies import MixedStrategy -from ceph_volume.devices.lvm.create import Create -from ceph_volume.devices.lvm.prepare import Prepare -from ceph_volume.util import templates, system -from ceph_volume.exceptions import SizeAllocationError - - -class SingleType(Strategy): - """ - Support for all SSDs, or all HDDS - """ - - def __init__(self, args, data_devs): - super(SingleType, self).__init__(args, data_devs) - self.validate_compute() - - @classmethod - def with_auto_devices(cls, args, devices): - #SingleType only deploys standalone OSDs - return cls(args, devices) - - @staticmethod - def type(): - return "bluestore.SingleType" - - def report_pretty(self, filtered_devices): - string = "" - if filtered_devices: - string += templates.filtered_devices(filtered_devices) - string += templates.total_osds.format( - total_osds=self.total_osds, - ) - string += templates.osd_component_titles - - for osd in self.computed['osds']: - string += templates.osd_header - if 'osd_id' in osd: - string += templates.osd_reused_id.format( - id_=osd['osd_id']) - string += templates.osd_component.format( - _type='[data]', - path=osd['data']['path'], - size=osd['data']['human_readable_size'], - percent=osd['data']['percentage'], - ) - - print(string) - - def validate(self): - """ - Ensure that the minimum requirements for this type of scenario is - met, raise an error if the provided devices would not work - """ - # validate minimum size for all devices - validators.minimum_device_size( - self.data_devs, osds_per_device=self.osds_per_device - ) - - # make sure that data devices do not have any LVs - validators.no_lvm_membership(self.data_devs) - - if self.osd_ids: - self._validate_osd_ids() - - def compute(self): - """ - Go through the rules needed to properly size the lvs, return - a dictionary with the result - """ - osds = self.computed['osds'] - for device in self.data_devs: - extents = lvm.sizing(device.lvm_size.b, parts=self.osds_per_device) - for _i in range(self.osds_per_device): - osd = {'data': {}, 'block.db': {}} - osd['data']['path'] = device.abspath - osd['data']['size'] = extents['sizes'] - osd['data']['parts'] = extents['parts'] - osd['data']['percentage'] = 100 / self.osds_per_device - osd['data']['human_readable_size'] = str(disk.Size(gb=extents['sizes'])) - osds.append(osd) - - self.computed['changed'] = len(osds) > 0 - - def execute(self): - """ - Create vgs/lvs from the incoming set of devices, assign their roles - (block, block.db, block.wal, etc..) and offload the OSD creation to - ``lvm create`` - """ - osd_vgs = dict([(osd['data']['path'], None) for osd in self.computed['osds']]) - - # create the vgs first, mapping them to the device path - for osd in self.computed['osds']: - vg = osd_vgs.get(osd['data']['path']) - if not vg: - vg = lvm.create_vg(osd['data']['path']) - osd_vgs[osd['data']['path']] = {'vg': vg, 'parts': osd['data']['parts']} - - # create the lvs from the vgs captured in the beginning - for create in osd_vgs.values(): - lvs = lvm.create_lvs(create['vg'], parts=create['parts'], name_prefix='osd-data') - vg_name = create['vg'].name - for lv in lvs: - command = ['--bluestore', '--data'] - command.append('%s/%s' % (vg_name, lv.name)) - if self.args.dmcrypt: - command.append('--dmcrypt') - if self.args.no_systemd: - command.append('--no-systemd') - if self.args.crush_device_class: - command.extend(['--crush-device-class', self.args.crush_device_class]) - - if self.osd_ids: - command.extend(['--osd-id', self.osd_ids.pop(0)]) - - if self.args.prepare: - Prepare(command).main() - else: - Create(command).main() - - -class MixedType(MixedStrategy): - - def __init__(self, args, data_devs, db_devs, wal_devs=[]): - super(MixedType, self).__init__(args, data_devs, db_devs, wal_devs) - self.block_db_size = self.get_block_db_size() - self.block_wal_size = self.get_block_wal_size() - self.system_vgs = lvm.VolumeGroups() - self.common_vg = None - self.common_wal_vg = None - self.dbs_needed = len(self.data_devs) * self.osds_per_device - self.wals_needed = self.dbs_needed - self.use_large_block_db = self.use_large_block_wal = False - self.validate_compute() - - @classmethod - def with_auto_devices(cls, args, devices): - data_devs, db_devs = cls.split_devices_rotational(devices) - return cls(args, data_devs, db_devs) - - @staticmethod - def type(): - return "bluestore.MixedType" - - def get_block_db_size(self): - if self.args.block_db_size: - return disk.Size(b=self.args.block_db_size) - else: - return prepare.get_block_db_size(lv_format=False) or disk.Size(b=0) - - def get_block_wal_size(self): - if self.args.block_wal_size: - return disk.Size(b=self.args.block_wal_size) - else: - return prepare.get_block_wal_size(lv_format=False) or disk.Size(b=0) - - def report_pretty(self, filtered_devices): - string = "" - if filtered_devices: - string += templates.filtered_devices(filtered_devices) - string += templates.total_osds.format( - total_osds=len(self.data_devs) * self.osds_per_device - ) - - if self.db_or_journal_devs: - vg_extents = lvm.sizing(self.total_available_db_space.b, parts=self.dbs_needed) - db_size = str(disk.Size(b=(vg_extents['sizes']))) - - string += templates.ssd_volume_group.format( - target='block.db', - total_lv_size=str(self.total_available_db_space), - total_lvs=vg_extents['parts'] * self.osds_per_device, - block_lv_size=db_size, - block_db_devices=', '.join([ssd.abspath for ssd in - self.db_or_journal_devs]), - lv_size=self.block_db_size or str(disk.Size(b=(vg_extents['sizes']))), - total_osds=len(self.data_devs) - ) - - if self.wal_devs: - wal_vg_extents = lvm.sizing(self.total_available_wal_space.b, - parts=self.wals_needed) - wal_size = str(disk.Size(b=(wal_vg_extents['sizes']))) - string += templates.ssd_volume_group.format( - target='block.wal', - total_lv_size=str(self.total_available_wal_space), - total_lvs=wal_vg_extents['parts'] * self.osds_per_device, - block_lv_size=wal_size, - block_db_devices=', '.join([dev.abspath for dev in - self.wal_devs]), - lv_size=self.block_wal_size or str(disk.Size(b=(wal_vg_extents['sizes']))), - total_osds=len(self.data_devs) - ) - - string += templates.osd_component_titles - for osd in self.computed['osds']: - string += templates.osd_header - if 'osd_id' in osd: - string += templates.osd_reused_id.format( - id_=osd['osd_id']) - string += templates.osd_component.format( - _type='[data]', - path=osd['data']['path'], - size=osd['data']['human_readable_size'], - percent=osd['data']['percentage']) - - if 'block.db' in osd: - string += templates.osd_component.format( - _type='[block.db]', - path=osd['block.db']['path'], - size=osd['block.db']['human_readable_size'], - percent=osd['block.db']['percentage']) - - if 'block.wal' in osd: - string += templates.osd_component.format( - _type='[block.wal]', - path=osd['block.wal']['path'], - size=osd['block.wal']['human_readable_size'], - percent=osd['block.wal']['percentage']) - - print(string) - - def compute(self): - osds = self.computed['osds'] - - if self.data_devs and self.db_or_journal_devs: - if not self.common_vg: - # there isn't a common vg, so a new one must be created with all - # the blank db devs - self.computed['vg'] = { - 'devices': ", ".join([ssd.abspath for ssd in self.blank_db_devs]), - 'parts': self.dbs_needed, - 'percentages': self.vg_extents['percentages'], - 'sizes': self.block_db_size.b.as_int(), - 'size': self.total_blank_db_dev_size.b.as_int(), - 'human_readable_sizes': str(self.block_db_size), - 'human_readable_size': str(self.total_available_db_space), - } - vg_name = 'vg/lv' - else: - vg_name = self.common_vg.name - - if self.data_devs and self.wal_devs: - if not self.common_wal_vg: - # there isn't a common vg, so a new one must be created with all - # the blank wal devs - self.computed['wal_vg'] = { - 'devices': ", ".join([dev.abspath for dev in self.blank_wal_devs]), - 'parts': self.wals_needed, - 'percentages': self.wal_vg_extents['percentages'], - 'sizes': self.block_wal_size.b.as_int(), - 'size': self.total_blank_wal_dev_size.b.as_int(), - 'human_readable_sizes': str(self.block_wal_size), - 'human_readable_size': str(self.total_available_wal_space), - } - wal_vg_name = 'vg/lv' - else: - wal_vg_name = self.common_wal_vg.name - - for device in self.data_devs: - for hdd in range(self.osds_per_device): - osd = {'data': {}} - osd['data']['path'] = device.abspath - osd['data']['size'] = device.lvm_size.b / self.osds_per_device - osd['data']['percentage'] = 100 / self.osds_per_device - osd['data']['human_readable_size'] = str( - disk.Size(b=device.lvm_size.b) / self.osds_per_device - ) - - if self.db_or_journal_devs: - osd['block.db'] = {} - osd['block.db']['path'] = 'vg: %s' % vg_name - osd['block.db']['size'] = int(self.block_db_size.b) - osd['block.db']['human_readable_size'] = str(self.block_db_size) - osd['block.db']['percentage'] = self.vg_extents['percentages'] - - if self.wal_devs: - osd['block.wal'] = {} - osd['block.wal']['path'] = 'vg: %s' % wal_vg_name - osd['block.wal']['size'] = int(self.block_wal_size.b) - osd['block.wal']['human_readable_size'] = str(self.block_wal_size) - osd['block.wal']['percentage'] = self.wal_vg_extents['percentages'] - - if self.osd_ids: - osd['osd_id'] = self.osd_ids.pop(0) - - osds.append(osd) - - self.computed['changed'] = len(osds) > 0 - - def execute(self): - """ - Create vgs/lvs from the incoming set of devices, assign their roles - (block, block.db, block.wal, etc..) and offload the OSD creation to - ``lvm create`` - """ - data_vgs = dict([(osd['data']['path'], None) for osd in self.computed['osds']]) - - # create 1 vg per data device first, mapping them to the device path, - # when the lv gets created later, it can create as many as needed (or - # even just 1) - for osd in self.computed['osds']: - vg = data_vgs.get(osd['data']['path']) - if not vg: - vg = lvm.create_vg(osd['data']['path'], name_prefix='ceph-block') - data_vgs[osd['data']['path']] = vg - - if self.data_devs and self.db_or_journal_devs: - blank_db_dev_paths = [d.abspath for d in self.blank_db_devs] - - # no common vg is found, create one with all the blank SSDs - if not self.common_vg: - db_vg = lvm.create_vg(blank_db_dev_paths, name_prefix='ceph-block-dbs') - elif self.common_vg and blank_db_dev_paths: - # if a common vg exists then extend it with any blank ssds - db_vg = lvm.extend_vg(self.common_vg, blank_db_dev_paths) - else: - # one common vg with nothing else to extend can be used directly, - # either this is one device with one vg, or multiple devices with the - # same vg - db_vg = self.common_vg - - if self.use_large_block_db: - # make the block.db lvs as large as possible - vg_free_count = str_to_int(db_vg.vg_free_count) - db_lv_extents = int(vg_free_count / self.dbs_needed) - else: - db_lv_extents = db_vg.sizing(size=self.block_db_size.gb.as_int())['extents'] - - if self.data_devs and self.wal_devs: - blank_wal_dev_paths = [d.abspath for d in self.blank_wal_devs] - - if not self.common_wal_vg: - wal_vg = lvm.create_vg(blank_wal_dev_paths, - name_prefix='ceph-block-wals') - elif self.common_wal_vg and blank_wal_dev_paths: - wal_vg = lvm.extend_vg(self.common_wal_vg, blank_wal_dev_paths) - else: - wal_vg = self.common_wal_vg - - if self.use_large_block_wal: - # make the block.db lvs as large as possible - vg_free_count = str_to_int(wal_vg.vg_free_count) - wal_lv_extents = int(vg_free_count / self.wals_needed) - else: - wal_lv_extents = wal_vg.sizing(size=self.block_wal_size.gb.as_int())['extents'] - - # create the data lvs, and create the OSD with an lv from the common - # block.db vg from before - for osd in self.computed['osds']: - data_path = osd['data']['path'] - data_vg = data_vgs[data_path] - data_lv_extents = data_vg.sizing(parts=self.osds_per_device)['extents'] - data_uuid = system.generate_uuid() - data_lv = lvm.create_lv( - 'osd-block', data_uuid, vg=data_vg, extents=data_lv_extents) - command = [ - '--bluestore', - '--data', "%s/%s" % (data_lv.vg_name, data_lv.name), - ] - if 'block.db' in osd: - db_uuid = system.generate_uuid() - db_lv = lvm.create_lv( - 'osd-block-db', db_uuid, vg=db_vg, extents=db_lv_extents) - command.extend([ '--block.db', - '{}/{}'.format(db_lv.vg_name, db_lv.name)]) - if 'block.wal' in osd: - wal_uuid = system.generate_uuid() - wal_lv = lvm.create_lv( - 'osd-block-wal', wal_uuid, vg=wal_vg, extents=wal_lv_extents) - command.extend( - ['--block.wal', - '{}/{}'.format(wal_lv.vg_name, wal_lv.name) - ]) - if self.args.dmcrypt: - command.append('--dmcrypt') - if self.args.no_systemd: - command.append('--no-systemd') - if self.args.crush_device_class: - command.extend(['--crush-device-class', self.args.crush_device_class]) - if 'osd_id' in osd: - command.extend(['--osd-id', osd['osd_id']]) - - if self.args.prepare: - Prepare(command).main() - else: - Create(command).main() - - def validate(self): - """ - HDDs represent data devices, and solid state devices are for block.db, - make sure that the number of data devices would have enough LVs and - those LVs would be large enough to accommodate a block.db - """ - # validate minimum size for all devices - validators.minimum_device_size(self.data_devs + self.db_or_journal_devs, - osds_per_device=self.osds_per_device) - validators.minimum_device_size(self.wal_devs, - osds_per_device=self.osds_per_device, - min_size=1) - - # make sure that data devices do not have any LVs - validators.no_lvm_membership(self.data_devs) - - if self.data_devs and self.db_or_journal_devs: - self._validate_db_devs() - - if self.data_devs and self.wal_devs: - self._validate_wal_devs() - - if self.osd_ids: - self._validate_osd_ids() - - def _validate_db_devs(self): - # do not allow non-common VG to continue - validators.has_common_vg(self.db_or_journal_devs) - - # find the common VG to calculate how much is available - self.common_vg = self.get_common_vg(self.db_or_journal_devs) - - # find how many block.db LVs are possible from the common VG - if self.common_vg: - common_vg_size = disk.Size(gb=self.common_vg.free) - else: - common_vg_size = disk.Size(gb=0) - - # non-VG SSDs - vg_members = set([d for d in self.db_or_journal_devs if d.is_lvm_member]) - self.blank_db_devs = set(self.db_or_journal_devs).difference(vg_members) - self.total_blank_db_dev_size = disk.Size(b=0) - for blank_db_dev in self.blank_db_devs: - self.total_blank_db_dev_size += disk.Size(b=blank_db_dev.lvm_size.b) - - self.total_available_db_space = self.total_blank_db_dev_size + common_vg_size - - # If not configured, we default to 0, which is really "use as much as - # possible" captured by the `else` condition - if self.block_db_size.gb > 0: - try: - self.vg_extents = lvm.sizing( - self.total_available_db_space.b, size=self.block_db_size.b * self.osds_per_device - ) - except SizeAllocationError: - msg = "Not enough space in fast devices (%s) to create %s x %s block.db LV" - raise RuntimeError( - msg % (self.total_available_db_space, self.osds_per_device, self.block_db_size) - ) - else: - self.vg_extents = lvm.sizing( - self.total_available_db_space.b, parts=self.dbs_needed - ) - - # validate that number of block.db LVs possible are enough for number of - # OSDs proposed - if self.total_available_db_space.b == 0: - msg = "No space left in fast devices to create block.db LVs" - raise RuntimeError(msg) - - # bluestore_block_db_size was unset, so we must set this to whatever - # size we get by dividing the total available space for block.db LVs - # into the number of block.db LVs needed (i.e. "as large as possible") - if self.block_db_size.b == 0: - self.block_db_size = self.total_available_db_space / self.dbs_needed - self.use_large_block_db = True - - total_dbs_possible = self.total_available_db_space / self.block_db_size - - if self.dbs_needed > total_dbs_possible: - msg = "Not enough space (%s) to create %s x %s block.db LVs" % ( - self.total_available_db_space, self.dbs_needed, self.block_db_size, - ) - raise RuntimeError(msg) - - def _validate_wal_devs(self): - # do not allow non-common VG to continue - validators.has_common_vg(self.wal_devs) - - # find the common VG to calculate how much is available - self.common_wal_vg = self.get_common_vg(self.wal_devs) - - # find how many block.wal LVs are possible from the common VG - if self.common_wal_vg: - common_vg_size = disk.Size(gb=self.common_wal_vg.free) - else: - common_vg_size = disk.Size(gb=0) - - # non-VG SSDs - vg_members = set([d for d in self.wal_devs if d.is_lvm_member]) - self.blank_wal_devs = set(self.wal_devs).difference(vg_members) - self.total_blank_wal_dev_size = disk.Size(b=0) - for blank_wal_dev in self.blank_wal_devs: - self.total_blank_wal_dev_size += disk.Size(b=blank_wal_dev.lvm_size.b) - - self.total_available_wal_space = self.total_blank_wal_dev_size + common_vg_size - - # If not configured, we default to 0, which is really "use as much as - # possible" captured by the `else` condition - if self.block_wal_size.gb > 0: - try: - self.vg_extents = lvm.sizing( - self.total_available_wal_space.b, size=self.block_wal_size.b * self.osds_per_device - ) - except SizeAllocationError: - msg = "Not enough space in fast devices (%s) to create %s x %s block.wal LV" - raise RuntimeError( - msg % (self.total_available_wal_space, - self.osds_per_device, self.block_wal_size) - ) - else: - self.wal_vg_extents = lvm.sizing( - self.total_available_wal_space.b, parts=self.wals_needed - ) - - # validate that number of block.wal LVs possible are enough for number of - # OSDs proposed - if self.total_available_wal_space.b == 0: - msg = "No space left in fast devices to create block.wal LVs" - raise RuntimeError(msg) - - # bluestore_block_wal_size was unset, so we must set this to whatever - # size we get by dividing the total available space for block.wal LVs - # into the number of block.wal LVs needed (i.e. "as large as possible") - if self.block_wal_size.b == 0: - self.block_wal_size = self.total_available_wal_space / self.wals_needed - self.use_large_block_wal = True - - total_wals_possible = self.total_available_wal_space / self.block_wal_size - - if self.wals_needed > total_wals_possible: - msg = "Not enough space (%s) to create %s x %s block.wal LVs" % ( - self.total_available_wal_space, self.wals_needed, - self.block_wal_size, - ) - raise RuntimeError(msg) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/filestore.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/filestore.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/filestore.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/filestore.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,392 +0,0 @@ -from __future__ import print_function -from ceph_volume.util import disk, prepare -from ceph_volume.api import lvm -from . import validators -from .strategies import Strategy -from .strategies import MixedStrategy -from ceph_volume.devices.lvm.create import Create -from ceph_volume.devices.lvm.prepare import Prepare -from ceph_volume.util import templates, system -from ceph_volume.exceptions import SizeAllocationError - - -def get_journal_size(args): - """ - Helper for Filestore strategies, to prefer the --journal-size value from - the CLI over anything that might be in a ceph configuration file (if any). - """ - if args.journal_size: - return disk.Size(mb=args.journal_size) - else: - return prepare.get_journal_size(lv_format=False) - - -class SingleType(Strategy): - """ - Support for all SSDs, or all HDDs, data and journal LVs will be colocated - in the same device - """ - - - def __init__(self, args, data_devs): - super(SingleType, self).__init__(args, data_devs) - self.journal_size = get_journal_size(args) - self.validate_compute() - - @classmethod - def with_auto_devices(cls, args, devices): - return cls(args, devices) - - @staticmethod - def type(): - return "filestore.SingleType" - - def report_pretty(self, filtered_devices): - string = "" - if filtered_devices: - string += templates.filtered_devices(filtered_devices) - string += templates.total_osds.format( - total_osds=self.total_osds - ) - string += templates.osd_component_titles - - for osd in self.computed['osds']: - string += templates.osd_header - if 'osd_id' in osd: - string += templates.osd_reused_id.format( - id_=osd['osd_id']) - string += templates.osd_component.format( - _type='[data]', - path=osd['data']['path'], - size=osd['data']['human_readable_size'], - percent=osd['data']['percentage'], - ) - string += templates.osd_component.format( - _type='[journal]', - path=osd['journal']['path'], - size=osd['journal']['human_readable_size'], - percent=osd['journal']['percentage'], - ) - - print(string) - - def validate(self): - """ - Ensure that the minimum requirements for this type of scenario is - met, raise an error if the provided devices would not work - """ - # validate minimum size for all devices - validators.minimum_device_size(self.data_devs, osds_per_device=self.osds_per_device) - - # validate collocation - validators.minimum_device_collocated_size( - self.data_devs, self.journal_size, osds_per_device=self.osds_per_device - ) - - # make sure that data devices do not have any LVs - validators.no_lvm_membership(self.data_devs) - - if self.osd_ids: - self._validate_osd_ids() - - def compute(self): - """ - Go through the rules needed to properly size the lvs, return - a dictionary with the result - """ - # chose whichever is the one group we have to compute against - osds = self.computed['osds'] - for device in self.data_devs: - for osd in range(self.osds_per_device): - device_size = disk.Size(b=device.lvm_size.b) - osd_size = device_size / self.osds_per_device - journal_size = self.journal_size - data_size = osd_size - journal_size - data_percentage = data_size * 100 / device_size - osd = {'data': {}, 'journal': {}} - osd['data']['path'] = device.abspath - osd['data']['size'] = data_size.b.as_int() - osd['data']['parts'] = self.osds_per_device - osd['data']['percentage'] = int(data_percentage) - osd['data']['human_readable_size'] = str(data_size) - osd['journal']['path'] = device.abspath - osd['journal']['size'] = journal_size.b.as_int() - osd['journal']['percentage'] = int(100 - data_percentage) - osd['journal']['human_readable_size'] = str(journal_size) - - if self.osd_ids: - osd['osd_id'] = self.osd_ids.pop() - - osds.append(osd) - - self.computed['changed'] = len(osds) > 0 - - def execute(self): - """ - Create vgs/lvs from the incoming set of devices, assign their roles - (data, journal) and offload the OSD creation to ``lvm create`` - """ - device_vgs = dict([(osd['data']['path'], None) for osd in self.computed['osds']]) - - # create 1 vg per data device first, mapping them to the device path, - # when the lvs get created later, it can create as many as needed, - # including the journals since it is going to be collocated - for osd in self.computed['osds']: - vg = device_vgs.get(osd['data']['path']) - if not vg: - vg = lvm.create_vg(osd['data']['path'], name_prefix='ceph-filestore') - device_vgs[osd['data']['path']] = vg - - # create the lvs from the per-device vg created in the beginning - for osd in self.computed['osds']: - data_path = osd['data']['path'] - data_lv_size = disk.Size(b=osd['data']['size']).gb.as_int() - device_vg = device_vgs[data_path] - data_lv_extents = device_vg.sizing(size=data_lv_size)['extents'] - journal_lv_extents = device_vg.sizing(size=self.journal_size.gb.as_int())['extents'] - data_uuid = system.generate_uuid() - data_lv = lvm.create_lv( - 'osd-data', data_uuid, vg=device_vg, extents=data_lv_extents) - journal_uuid = system.generate_uuid() - journal_lv = lvm.create_lv( - 'osd-journal', journal_uuid, vg=device_vg, extents=journal_lv_extents) - - command = ['--filestore', '--data'] - command.append('%s/%s' % (device_vg.name, data_lv.name)) - command.extend(['--journal', '%s/%s' % (device_vg.name, journal_lv.name)]) - if self.args.dmcrypt: - command.append('--dmcrypt') - if self.args.no_systemd: - command.append('--no-systemd') - if self.args.crush_device_class: - command.extend(['--crush-device-class', self.args.crush_device_class]) - if 'osd_id' in osd: - command.extend(['--osd-id', osd['osd_id']]) - - if self.args.prepare: - Prepare(command).main() - else: - Create(command).main() - - -class MixedType(MixedStrategy): - """ - Supports HDDs with SSDs, journals will be placed on SSDs, while HDDs will - be used fully for data. - - If an existing common VG is detected on SSDs, it will be extended if blank - SSDs are used, otherwise it will be used directly. - """ - - - def __init__(self, args, data_devs, journal_devs): - super(MixedType, self).__init__(args, data_devs, journal_devs) - self.blank_journal_devs = [] - self.journals_needed = len(self.data_devs) * self.osds_per_device - self.journal_size = get_journal_size(args) - self.system_vgs = lvm.VolumeGroups() - self.validate_compute() - - @classmethod - def with_auto_devices(cls, args, devices): - data_devs, journal_devs = cls.split_devices_rotational(devices) - return cls(args, data_devs, journal_devs) - - @staticmethod - def type(): - return "filestore.MixedType" - - def report_pretty(self, filtered_devices): - string = "" - if filtered_devices: - string += templates.filtered_devices(filtered_devices) - string += templates.total_osds.format( - total_osds=self.total_osds - ) - - string += templates.ssd_volume_group.format( - target='journal', - total_lv_size=str(self.total_available_journal_space), - total_lvs=self.journals_needed, - block_db_devices=', '.join([d.path for d in self.db_or_journal_devs]), - lv_size=str(self.journal_size), - total_osds=self.journals_needed - ) - - string += templates.osd_component_titles - - for osd in self.computed['osds']: - string += templates.osd_header - if 'osd_id' in osd: - string += templates.osd_reused_id.format( - id_=osd['osd_id']) - string += templates.osd_component.format( - _type='[data]', - path=osd['data']['path'], - size=osd['data']['human_readable_size'], - percent=osd['data']['percentage'], - ) - string += templates.osd_component.format( - _type='[journal]', - path=osd['journal']['path'], - size=osd['journal']['human_readable_size'], - percent=osd['journal']['percentage'], - ) - - print(string) - - def validate(self): - """ - Ensure that the minimum requirements for this type of scenario is - met, raise an error if the provided devices would not work - """ - # validate minimum size for all devices - validators.minimum_device_size(self.devices, osds_per_device=self.osds_per_device) - - # make sure that data devices do not have any LVs - validators.no_lvm_membership(self.data_devs) - - # do not allow non-common VG to continue - validators.has_common_vg(self.db_or_journal_devs) - - # find the common VG to calculate how much is available - self.common_vg = self.get_common_vg(self.db_or_journal_devs) - - # find how many journals are possible from the common VG - if self.common_vg: - common_vg_size = disk.Size(b=self.common_vg.free) - else: - common_vg_size = disk.Size(gb=0) - - # non-VG SSDs - vg_ssds = set([d for d in self.db_or_journal_devs if d.is_lvm_member]) - self.blank_journal_devs = set(self.db_or_journal_devs).difference(vg_ssds) - self.total_blank_journal_dev_size = disk.Size(b=0) - for blank_journal_dev in self.blank_journal_devs: - self.total_blank_journal_dev_size += disk.Size(b=blank_journal_dev.lvm_size.b) - - self.total_available_journal_space = self.total_blank_journal_dev_size + common_vg_size - - try: - self.vg_extents = lvm.sizing( - self.total_available_journal_space.b, size=self.journal_size.b * self.osds_per_device - ) - except SizeAllocationError: - msg = "Not enough space in fast devices (%s) to create %s x %s journal LV" - raise RuntimeError( - msg % (self.total_available_journal_space, self.osds_per_device, self.journal_size) - ) - - # validate that number of journals possible are enough for number of - # OSDs proposed - total_journals_possible = self.total_available_journal_space / self.journal_size - if self.osds_per_device > total_journals_possible: - msg = "Not enough space (%s) to create %s x %s journal LVs" % ( - self.total_available_journal_space, self.journals_needed, self.journal_size - ) - raise RuntimeError(msg) - - if self.osd_ids: - self._validate_osd_ids() - - def compute(self): - """ - Go through the rules needed to properly size the lvs, return - a dictionary with the result - """ - osds = self.computed['osds'] - - vg_free = int(self.total_available_journal_space.gb) - if not self.common_vg: - # there isn't a common vg, so a new one must be created with all - # the blank SSDs - self.computed['vg'] = { - 'devices': ", ".join([ssd.abspath for ssd in self.blank_journal_devs]), - 'parts': self.journals_needed, - 'percentages': self.vg_extents['percentages'], - 'sizes': self.journal_size.b.as_int(), - 'size': self.total_blank_journal_dev_size.b.as_int(), - 'human_readable_sizes': str(self.journal_size), - 'human_readable_size': str(self.total_available_journal_space), - } - vg_name = 'lv/vg' - else: - vg_name = self.common_vg.name - - for device in self.data_devs: - for osd in range(self.osds_per_device): - device_size = disk.Size(b=device.lvm_size.b) - data_size = device_size / self.osds_per_device - osd = {'data': {}, 'journal': {}} - osd['data']['path'] = device.path - osd['data']['size'] = data_size.b.as_int() - osd['data']['percentage'] = 100 / self.osds_per_device - osd['data']['human_readable_size'] = str(data_size) - osd['journal']['path'] = 'vg: %s' % vg_name - osd['journal']['size'] = self.journal_size.b.as_int() - osd['journal']['percentage'] = int(self.journal_size.gb * 100 / vg_free) - osd['journal']['human_readable_size'] = str(self.journal_size) - - if self.osd_ids: - osd['osd_id'] = self.osd_ids.pop(0) - - osds.append(osd) - - self.computed['changed'] = len(osds) > 0 - - def execute(self): - """ - Create vgs/lvs from the incoming set of devices, assign their roles - (data, journal) and offload the OSD creation to ``lvm create`` - """ - blank_journal_dev_paths = [d.abspath for d in self.blank_journal_devs] - data_vgs = dict([(osd['data']['path'], None) for osd in self.computed['osds']]) - - # no common vg is found, create one with all the blank SSDs - if not self.common_vg: - journal_vg = lvm.create_vg(blank_journal_dev_paths, name_prefix='ceph-journals') - # a vg exists that can be extended - elif self.common_vg and blank_journal_dev_paths: - journal_vg = lvm.extend_vg(self.common_vg, blank_journal_dev_paths) - # one common vg with nothing else to extend can be used directly - else: - journal_vg = self.common_vg - - journal_size = prepare.get_journal_size(lv_format=False) - - # create 1 vg per data device first, mapping them to the device path, - # when the lv gets created later, it can create as many as needed (or - # even just 1) - for osd in self.computed['osds']: - vg = data_vgs.get(osd['data']['path']) - if not vg: - vg = lvm.create_vg(osd['data']['path'], name_prefix='ceph-data') - data_vgs[osd['data']['path']] = vg - - for osd in self.computed['osds']: - data_path = osd['data']['path'] - data_vg = data_vgs[data_path] - data_lv_extents = data_vg.sizing(parts=1)['extents'] - data_uuid = system.generate_uuid() - data_lv = lvm.create_lv( - 'osd-data', data_uuid, vg=data_vg, extents=data_lv_extents) - journal_uuid = system.generate_uuid() - journal_lv = lvm.create_lv( - 'osd-journal', journal_uuid, vg=journal_vg, size=journal_size) - - command = ['--filestore', '--data'] - command.append('%s/%s' % (data_vg.name, data_lv.name)) - command.extend(['--journal', '%s/%s' % (journal_vg.name, journal_lv.name)]) - if self.args.dmcrypt: - command.append('--dmcrypt') - if self.args.no_systemd: - command.append('--no-systemd') - if self.args.crush_device_class: - command.extend(['--crush-device-class', self.args.crush_device_class]) - if 'osd_id' in osd: - command.extend(['--osd-id', osd['osd_id']]) - - if self.args.prepare: - Prepare(command).main() - else: - Create(command).main() diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/__init__.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/__init__.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/__init__.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/__init__.py 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -from . import bluestore, filestore # noqa diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/strategies.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/strategies.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/strategies.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/strategies.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ -import json -from ceph_volume.util.prepare import osd_id_available -from ceph_volume.api.lvm import get_device_vgs - -class Strategy(object): - - def __init__(self, args, data_devs, db_or_journal_devs=[], wal_devs=[]): - ''' - Note that this ctor is used by both bluestore and filestore strategies - to reduce code duplication. A filestore strategy will always pass an - empty list for wal_devs. - ''' - self.args = args - self.osd_ids = args.osd_ids - self.osds_per_device = args.osds_per_device - self.devices = data_devs + wal_devs + db_or_journal_devs - self.data_devs = data_devs - self.db_or_journal_devs = db_or_journal_devs - self.wal_devs = wal_devs - self.computed = {'osds': [], 'vgs': []} - - @staticmethod - def split_devices_rotational(devices): - data_devs = [device for device in devices if device.rotational] - db_or_journal_devs = [device for device in devices if not device.rotational] - return data_devs, db_or_journal_devs - - - def validate_compute(self): - if self.devices: - self.validate() - self.compute() - else: - self.computed["changed"] = False - - def report_json(self, filtered_devices): - # add filtered devices to report - report = self.computed.copy() - report['filtered_devices'] = filtered_devices - print(json.dumps(self.computed, indent=4, sort_keys=True)) - - def _validate_osd_ids(self): - unavailable_ids = [id_ for id_ in self.osd_ids if - not osd_id_available(id_)] - if unavailable_ids: - msg = ("Not all specfied OSD ids are available: {}" - "unavailable").format(",".join(unavailable_ids)) - raise RuntimeError(msg) - - @property - def total_osds(self): - return len(self.data_devs) * self.osds_per_device - - # protect against base class instantiation and incomplete implementations. - # We could also use the abc module and implement this as an - # AbstractBaseClass - def compute(self): - raise NotImplementedError('compute() must be implemented in a child class') - - def execute(self): - raise NotImplementedError('execute() must be implemented in a child class') - -class MixedStrategy(Strategy): - - def get_common_vg(self, devs): - # find all the vgs associated with the current device - for dev in devs: - vgs = get_device_vgs(dev.abspath) - if vgs: - return vgs[0] diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/validators.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/validators.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/strategies/validators.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/strategies/validators.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -from ceph_volume.util import disk -from ceph_volume.api import lvm - - -def minimum_device_size(devices, osds_per_device=1, min_size=5): - """ - Ensure that the minimum requirements for this type of scenario is - met, raise an error if the provided devices would not work - """ - msg = 'Unable to use device %s %s, LVs would be smaller than {}GB'.format(min_size) - for device in devices: - device_size = disk.Size(b=device.lvm_size.b) - lv_size = device_size / osds_per_device - if lv_size < disk.Size(gb=min_size): - raise RuntimeError(msg % (device_size, device.path)) - - -def minimum_device_collocated_size(devices, journal_size, osds_per_device=1): - """ - Similar to ``minimum_device_size``, but take into account that the size of - the journal affects the size left of the device - """ - msg = 'Unable to use device %s %s, LVs would be smaller than 5GB' - for device in devices: - device_size = disk.Size(b=device.lvm_size.b) - lv_size = (device_size / osds_per_device) - journal_size - if lv_size < disk.Size(gb=5): - raise RuntimeError(msg % (device_size, device.path)) - - -def no_lvm_membership(devices): - """ - Do not allow devices that are part of LVM - """ - msg = 'Unable to use device, already a member of LVM: %s' - for device in devices: - if device.is_lvm_member: - raise RuntimeError(msg % device.abspath) - - -def has_common_vg(ssd_devices): - """ - Ensure that devices have a common VG between them - """ - msg = 'Could not find a common VG between devices: %s' - ssd_vgs = {} - - for ssd_device in ssd_devices: - vgs = lvm.get_device_vgs(ssd_device.abspath) - if not vgs: - continue - for vg in vgs: - try: - ssd_vgs[vg.name].append(ssd_device.abspath) - except KeyError: - ssd_vgs[vg.name] = [ssd_device.abspath] - # len of 1 means they all have a common vg, and len of 0 means that these - # are blank - if len(ssd_vgs) <= 1: - return - raise RuntimeError(msg % ', '.join(ssd_vgs.keys())) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/zap.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/zap.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/lvm/zap.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/lvm/zap.py 2021-03-15 17:46:20.000000000 +0000 @@ -7,7 +7,7 @@ from ceph_volume import decorators, terminal, process from ceph_volume.api import lvm as api -from ceph_volume.util import system, encryption, disk, arg_validators, str_to_int +from ceph_volume.util import system, encryption, disk, arg_validators, str_to_int, merge_dict from ceph_volume.util.device import Device from ceph_volume.systemd import systemctl @@ -81,17 +81,17 @@ lv_tags['ceph.osd_id'] = osd_id if osd_fsid: lv_tags['ceph.osd_fsid'] = osd_fsid - lvs = api.Volumes() - lvs.filter(lv_tags=lv_tags) - if not lvs: - raise RuntimeError('Unable to find any LV for zapping OSD: %s' % osd_id or osd_fsid) - devices_to_zap = ensure_associated_lvs(lvs) + lvs = api.get_lvs(tags=lv_tags) + if not lvs: + raise RuntimeError('Unable to find any LV for zapping OSD: ' + '%s' % osd_id or osd_fsid) + devices_to_zap = ensure_associated_lvs(lvs, lv_tags) return [Device(path) for path in set(devices_to_zap) if path] -def ensure_associated_lvs(lvs): +def ensure_associated_lvs(lvs, lv_tags={}): """ Go through each LV and ensure if backing devices (journal, wal, block) are LVs or partitions, so that they can be accurately reported. @@ -100,14 +100,12 @@ # receive a filtering for osd.1, and have multiple failed deployments # leaving many journals with osd.1 - usually, only a single LV will be # returned - journal_lvs = lvs._filter(lv_tags={'ceph.type': 'journal'}) - db_lvs = lvs._filter(lv_tags={'ceph.type': 'db'}) - wal_lvs = lvs._filter(lv_tags={'ceph.type': 'wal'}) - backing_devices = [ - (journal_lvs, 'journal'), - (db_lvs, 'db'), - (wal_lvs, 'wal') - ] + + journal_lvs = api.get_lvs(tags=merge_dict(lv_tags, {'ceph.type': 'journal'})) + db_lvs = api.get_lvs(tags=merge_dict(lv_tags, {'ceph.type': 'db'})) + wal_lvs = api.get_lvs(tags=merge_dict(lv_tags, {'ceph.type': 'wal'})) + backing_devices = [(journal_lvs, 'journal'), (db_lvs, 'db'), + (wal_lvs, 'wal')] verified_devices = [] @@ -168,21 +166,27 @@ Device examples: vg-name/lv-name, /dev/vg-name/lv-name Requirements: Must be a logical volume (LV) """ - lv = api.get_lv(lv_name=device.lv_name, vg_name=device.vg_name) + lv = api.get_first_lv(filters={'lv_name': device.lv_name, 'vg_name': + device.vg_name}) self.unmount_lv(lv) wipefs(device.abspath) zap_data(device.abspath) if self.args.destroy: - lvs = api.Volumes() - lvs.filter(vg_name=device.vg_name) - if len(lvs) <= 1: - mlogger.info('Only 1 LV left in VG, will proceed to destroy volume group %s', device.vg_name) + lvs = api.get_lvs(filters={'vg_name': device.vg_name}) + if lvs == []: + mlogger.info('No LVs left, exiting', device.vg_name) + return + elif len(lvs) <= 1: + mlogger.info('Only 1 LV left in VG, will proceed to destroy ' + 'volume group %s', device.vg_name) api.remove_vg(device.vg_name) else: - mlogger.info('More than 1 LV left in VG, will proceed to destroy LV only') - mlogger.info('Removing LV because --destroy was given: %s', device.abspath) + mlogger.info('More than 1 LV left in VG, will proceed to ' + 'destroy LV only') + mlogger.info('Removing LV because --destroy was given: %s', + device.abspath) api.remove_lv(device.abspath) elif lv: # just remove all lvm metadata, leaving the LV around @@ -286,7 +290,7 @@ @decorators.needs_root def zap_osd(self): - if self.args.osd_id: + if self.args.osd_id and not self.args.no_systemd: osd_is_running = systemctl.osd_is_active(self.args.osd_id) if osd_is_running: mlogger.error("OSD ID %s is running, stop it with:" % self.args.osd_id) @@ -380,6 +384,13 @@ help='Specify an OSD FSID to detect associated devices for zapping', ) + parser.add_argument( + '--no-systemd', + dest='no_systemd', + action='store_true', + help='Skip systemd unit checks', + ) + if len(self.argv) == 0: print(sub_command_help) return diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/simple/activate.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/simple/activate.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/simple/activate.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/simple/activate.py 2021-03-15 17:46:20.000000000 +0000 @@ -9,6 +9,7 @@ from ceph_volume import process, decorators, terminal, conf from ceph_volume.util import system, disk from ceph_volume.util import encryption as encryption_utils +from ceph_volume.util import prepare as prepare_utils from ceph_volume.systemd import systemctl @@ -169,13 +170,22 @@ # XXX there is no support for LVM here data_device = self.get_device(data_uuid) + + if not data_device: + raise RuntimeError("osd fsid {} doesn't exist, this file will " + "be skipped, consider cleaning legacy " + "json file {}".format(osd_metadata['fsid'], args.json_config)) + journal_device = self.get_device(osd_metadata.get('journal', {}).get('uuid')) block_device = self.get_device(osd_metadata.get('block', {}).get('uuid')) block_db_device = self.get_device(osd_metadata.get('block.db', {}).get('uuid')) block_wal_device = self.get_device(osd_metadata.get('block.wal', {}).get('uuid')) if not system.device_is_mounted(data_device, destination=osd_dir): - process.run(['mount', '-v', data_device, osd_dir]) + if osd_metadata.get('type') == 'filestore': + prepare_utils.mount_osd(data_device, osd_id) + else: + process.run(['mount', '-v', data_device, osd_dir]) device_map = { 'journal': journal_device, @@ -277,7 +287,10 @@ for json_config in json_configs: mlogger.info('activating OSD specified in {}'.format(json_config)) args.json_config = json_config - self.activate(args) + try: + self.activate(args) + except RuntimeError as e: + terminal.warning(e.message) else: if args.file: json_config = args.file diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/devices/simple/scan.py ceph-14.2.18/src/ceph-volume/ceph_volume/devices/simple/scan.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/devices/simple/scan.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/devices/simple/scan.py 2021-03-15 17:46:20.000000000 +0000 @@ -80,7 +80,7 @@ device = os.readlink(path) else: device = path - lvm_device = lvm.get_lv_from_argument(device) + lvm_device = lvm.get_first_lv(filters={'lv_path': device}) if lvm_device: device_uuid = lvm_device.lv_uuid else: @@ -375,8 +375,11 @@ self.encryption_metadata = encryption.legacy_encrypted(args.osd_path) self.is_encrypted = self.encryption_metadata['encrypted'] - device = Device(self.encryption_metadata['device']) - if not device.is_ceph_disk_member: - terminal.warning("Ignoring %s because it's not a ceph-disk created osd." % path) + if self.encryption_metadata['device'] != "tmpfs": + device = Device(self.encryption_metadata['device']) + if not device.is_ceph_disk_member: + terminal.warning("Ignoring %s because it's not a ceph-disk created osd." % path) + else: + self.scan(args) else: - self.scan(args) + terminal.warning("Ignoring %s because it's not a ceph-disk created osd." % path) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/exceptions.py ceph-14.2.18/src/ceph-volume/ceph_volume/exceptions.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/exceptions.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/exceptions.py 2021-03-15 17:46:20.000000000 +0000 @@ -50,37 +50,6 @@ return 'This command needs to be executed with sudo or as root' -class MultiplePVsError(Exception): - - def __init__(self, pv_name): - self.pv_name = pv_name - - def __str__(self): - msg = "Got more than 1 result looking for physical volume: %s" % self.pv_name - return msg - - -class MultipleLVsError(Exception): - - def __init__(self, lv_name, lv_path): - self.lv_name = lv_name - self.lv_path = lv_path - - def __str__(self): - msg = "Got more than 1 result looking for %s with path: %s" % (self.lv_name, self.lv_path) - return msg - - -class MultipleVGsError(Exception): - - def __init__(self, vg_name): - self.vg_name = vg_name - - def __str__(self): - msg = "Got more than 1 result looking for volume group: %s" % self.vg_name - return msg - - class SizeAllocationError(Exception): def __init__(self, requested, available): diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/inventory/main.py ceph-14.2.18/src/ceph-volume/ceph_volume/inventory/main.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/inventory/main.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/inventory/main.py 2021-03-15 17:46:20.000000000 +0000 @@ -31,11 +31,24 @@ default='plain', help='Output format', ) + parser.add_argument( + '--filter-for-batch', + action='store_true', + help=('Filter devices unsuitable to pass to an OSD service spec, ' + 'no effect when is passed'), + default=False, + ) self.args = parser.parse_args(self.argv) if self.args.path: self.format_report(Device(self.args.path)) else: - self.format_report(Devices()) + self.format_report(Devices(filter_for_batch=self.args.filter_for_batch)) + + def get_report(self): + if self.args.path: + return Device(self.args.path).json_report() + else: + return Devices(filter_for_batch=self.args.filter_for_batch).json_report() def format_report(self, inventory): if self.args.format == 'json': diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/log.py ceph-14.2.18/src/ceph-volume/ceph_volume/log.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/log.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/log.py 2021-03-15 17:46:20.000000000 +0000 @@ -7,7 +7,7 @@ FILE_FORMAT = "[%(asctime)s]" + BASE_FORMAT -def setup(name='ceph-volume.log', log_path=None): +def setup(name='ceph-volume.log', log_path=None, log_level=None): log_path = log_path or conf.log_path # if a non-root user calls help or other no-sudo-required command the # logger will fail to write to /var/lib/ceph/ so this /tmp/ path is used as @@ -16,8 +16,9 @@ root_logger = logging.getLogger() # The default path is where all ceph log files are, and will get rotated by # Ceph's logrotate rules. - - root_logger.setLevel(logging.DEBUG) + log_level = log_level or "DEBUG" + log_level = getattr(logging, log_level.upper()) + root_logger.setLevel(log_level) try: fh = logging.FileHandler(log_path) @@ -27,7 +28,7 @@ conf.log_path = tmp_log_file fh = logging.FileHandler(tmp_log_file) - fh.setLevel(logging.DEBUG) + fh.setLevel(log_level) fh.setFormatter(logging.Formatter(FILE_FORMAT)) root_logger.addHandler(fh) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/main.py ceph-14.2.18/src/ceph-volume/ceph_volume/main.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/main.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/main.py 2021-03-15 17:46:20.000000000 +0000 @@ -120,6 +120,7 @@ parser.add_argument( '--log-level', default='debug', + choices=['debug', 'info', 'warning', 'error', 'critical'], help='Change the file log level (defaults to debug)', ) parser.add_argument( @@ -131,7 +132,7 @@ conf.log_path = args.log_path if os.path.isdir(conf.log_path): conf.log_path = os.path.join(args.log_path, 'ceph-volume.log') - log.setup() + log.setup(log_level=args.log_level) log.setup_console() logger = logging.getLogger(__name__) logger.info("Running command: ceph-volume %s %s", " ".join(main_args), " ".join(subcommand_args)) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/api/test_lvm.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/api/test_lvm.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/api/test_lvm.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/api/test_lvm.py 2021-03-15 17:46:20.000000000 +0000 @@ -31,188 +31,6 @@ assert result['ceph.fsid'] == '0000' -class TestGetAPIVgs(object): - - def test_report_is_emtpy(self, monkeypatch): - monkeypatch.setattr(api.process, 'call', lambda x,**kw: ('\n\n', '', 0)) - assert api.get_api_vgs() == [] - - def test_report_has_stuff(self, monkeypatch): - report = [' VolGroup00'] - monkeypatch.setattr(api.process, 'call', lambda x, **kw: (report, '', 0)) - assert api.get_api_vgs() == [{'vg_name': 'VolGroup00'}] - - def test_report_has_stuff_with_empty_attrs(self, monkeypatch): - report = [' VolGroup00 ;;;;;;4194304'] - monkeypatch.setattr(api.process, 'call', lambda x, **kw: (report, '', 0)) - result = api.get_api_vgs()[0] - assert len(result.keys()) == 7 - assert result['vg_name'] == 'VolGroup00' - assert result['vg_extent_size'] == '4194304' - - def test_report_has_multiple_items(self, monkeypatch): - report = [' VolGroup00;;;;;;;', ' ceph_vg;;;;;;;'] - monkeypatch.setattr(api.process, 'call', lambda x, **kw: (report, '', 0)) - result = api.get_api_vgs() - assert result[0]['vg_name'] == 'VolGroup00' - assert result[1]['vg_name'] == 'ceph_vg' - - -class TestGetAPILvs(object): - - def test_report_is_emtpy(self, monkeypatch): - monkeypatch.setattr(api.process, 'call', lambda x, **kw: ('', '', 0)) - assert api.get_api_lvs() == [] - - def test_report_has_stuff(self, monkeypatch): - report = [' ;/path;VolGroup00;root'] - monkeypatch.setattr(api.process, 'call', lambda x, **kw: (report, '', 0)) - result = api.get_api_lvs() - assert result[0]['lv_name'] == 'VolGroup00' - - def test_report_has_multiple_items(self, monkeypatch): - report = [' ;/path;VolName;root', ';/dev/path;ceph_lv;ceph_vg'] - monkeypatch.setattr(api.process, 'call', lambda x, **kw: (report, '', 0)) - result = api.get_api_lvs() - assert result[0]['lv_name'] == 'VolName' - assert result[1]['lv_name'] == 'ceph_lv' - - -@pytest.fixture -def volumes(monkeypatch): - monkeypatch.setattr(process, 'call', lambda x, **kw: ('', '', 0)) - volumes = api.Volumes() - volumes._purge() - # also patch api.Volumes so that when it is called, it will use the newly - # created fixture, with whatever the test method wants to append to it - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - return volumes - - -@pytest.fixture -def volume_groups(monkeypatch): - monkeypatch.setattr(process, 'call', lambda x, **kw: ('', '', 0)) - vgs = api.VolumeGroups() - vgs._purge() - return vgs - - -class TestGetLV(object): - - def test_nothing_is_passed_in(self): - # so we return a None - assert api.get_lv() is None - - def test_single_lv_is_matched(self, volumes, monkeypatch): - FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.type=data") - volumes.append(FooVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - assert api.get_lv(lv_name='foo') == FooVolume - - def test_single_lv_is_matched_by_uuid(self, volumes, monkeypatch): - FooVolume = api.Volume( - lv_name='foo', lv_path='/dev/vg/foo', - lv_uuid='1111', lv_tags="ceph.type=data") - volumes.append(FooVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - assert api.get_lv(lv_uuid='1111') == FooVolume - - -class TestGetPV(object): - - def test_nothing_is_passed_in(self): - # so we return a None - assert api.get_pv() is None - - def test_single_pv_is_not_matched(self, pvolumes, monkeypatch): - FooPVolume = api.PVolume(pv_name='/dev/sda', pv_uuid="0000", pv_tags={}, vg_name="vg") - pvolumes.append(FooPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda: pvolumes) - assert api.get_pv(pv_uuid='foo') is None - - def test_single_pv_is_matched(self, pvolumes, monkeypatch): - FooPVolume = api.PVolume(vg_name="vg", pv_name='/dev/sda', pv_uuid="0000", pv_tags={}) - pvolumes.append(FooPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda: pvolumes) - assert api.get_pv(pv_uuid='0000') == FooPVolume - - def test_multiple_pvs_is_matched_by_uuid(self, pvolumes, monkeypatch): - FooPVolume = api.PVolume(vg_name="vg", pv_name='/dev/sda', pv_uuid="0000", pv_tags={}, lv_uuid="0000000") - BarPVolume = api.PVolume(vg_name="vg", pv_name='/dev/sda', pv_uuid="0000", pv_tags={}) - pvolumes.append(FooPVolume) - pvolumes.append(BarPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda: pvolumes) - assert api.get_pv(pv_uuid='0000') == FooPVolume - - def test_multiple_pvs_is_matched_by_name(self, pvolumes, monkeypatch): - FooPVolume = api.PVolume(vg_name="vg", pv_name='/dev/sda', pv_uuid="0000", pv_tags={}, lv_uuid="0000000") - BarPVolume = api.PVolume(vg_name="vg", pv_name='/dev/sda', pv_uuid="0000", pv_tags={}) - pvolumes.append(FooPVolume) - pvolumes.append(BarPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda: pvolumes) - assert api.get_pv(pv_name='/dev/sda') == FooPVolume - - def test_multiple_pvs_is_matched_by_tags(self, pvolumes, monkeypatch): - FooPVolume = api.PVolume(vg_name="vg1", pv_name='/dev/sdc', pv_uuid="1000", pv_tags="ceph.foo=bar", lv_uuid="0000000") - BarPVolume = api.PVolume(vg_name="vg", pv_name='/dev/sda', pv_uuid="0000", pv_tags="ceph.foo=bar") - pvolumes.append(FooPVolume) - pvolumes.append(BarPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda: pvolumes) - with pytest.raises(exceptions.MultiplePVsError): - api.get_pv(pv_tags={"ceph.foo": "bar"}) - - def test_single_pv_is_matched_by_uuid(self, pvolumes, monkeypatch): - FooPVolume = api.PVolume( - pv_name='/dev/vg/foo', - pv_uuid='1111', pv_tags="ceph.type=data", vg_name="vg") - pvolumes.append(FooPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda: pvolumes) - assert api.get_pv(pv_uuid='1111') == FooPVolume - - def test_vg_name_is_set(self, pvolumes, monkeypatch): - FooPVolume = api.PVolume( - pv_name='/dev/vg/foo', - pv_uuid='1111', pv_tags="ceph.type=data", vg_name="vg") - pvolumes.append(FooPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda: pvolumes) - pv = api.get_pv(pv_name="/dev/vg/foo") - assert pv.vg_name == "vg" - - -class TestPVolumes(object): - - def test_filter_by_tag_does_not_match_one(self, pvolumes, monkeypatch): - pv_tags = "ceph.type=journal,ceph.osd_id=1,ceph.fsid=000-aaa" - FooPVolume = api.PVolume( - pv_name='/dev/vg/foo', - pv_uuid='1111', pv_tags=pv_tags, vg_name='vg') - pvolumes.append(FooPVolume) - assert pvolumes.filter(pv_tags={'ceph.type': 'journal', - 'ceph.osd_id': '2'}) == [] - - def test_filter_by_tags_matches(self, pvolumes, monkeypatch): - pv_tags = "ceph.type=journal,ceph.osd_id=1" - FooPVolume = api.PVolume( - pv_name='/dev/vg/foo', - pv_uuid='1111', pv_tags=pv_tags, vg_name="vg") - pvolumes.append(FooPVolume) - assert pvolumes.filter(pv_tags={'ceph.type': 'journal', - 'ceph.osd_id': '1'}) == [FooPVolume] - - -class TestGetVG(object): - - def test_nothing_is_passed_in(self): - # so we return a None - assert api.get_vg() is None - - def test_single_vg_is_matched(self, volume_groups, monkeypatch): - FooVG = api.VolumeGroup(vg_name='foo') - volume_groups.append(FooVG) - monkeypatch.setattr(api, 'VolumeGroups', lambda: volume_groups) - assert api.get_vg(vg_name='foo') == FooVG - - class TestVolume(object): def test_is_ceph_device(self): @@ -223,8 +41,8 @@ @pytest.mark.parametrize('dev',[ '/dev/sdb', api.VolumeGroup(vg_name='foo'), - api.Volume(lv_name='vg/no_osd', lv_tags=''), - api.Volume(lv_name='vg/no_osd', lv_tags='ceph.osd_id=null'), + api.Volume(lv_name='vg/no_osd', lv_tags='', lv_path='lv/path'), + api.Volume(lv_name='vg/no_osd', lv_tags='ceph.osd_id=null', lv_path='lv/path'), None, ]) def test_is_not_ceph_device(self, dev): @@ -235,103 +53,6 @@ api.Volume(lv_name='', lv_tags='') -class TestVolumes(object): - - def test_volume_get_has_no_volumes(self, volumes): - assert volumes.get() is None - - def test_volume_get_filtered_has_no_volumes(self, volumes): - assert volumes.get(lv_name='ceph') is None - - def test_volume_has_multiple_matches(self, volumes): - volume1 = volume2 = api.Volume(lv_name='foo', lv_path='/dev/vg/lv', lv_tags='') - volumes.append(volume1) - volumes.append(volume2) - with pytest.raises(exceptions.MultipleLVsError): - volumes.get(lv_name='foo') - - def test_as_dict_infers_type_from_tags(self, volumes): - lv_tags = "ceph.type=data,ceph.fsid=000-aaa" - osd = api.Volume(lv_name='volume1', lv_path='/dev/vg/lv', lv_tags=lv_tags) - volumes.append(osd) - result = volumes.get(lv_tags={'ceph.type': 'data'}).as_dict() - assert result['type'] == 'data' - - def test_as_dict_populates_path_from_lv_api(self, volumes): - lv_tags = "ceph.type=data,ceph.fsid=000-aaa" - osd = api.Volume(lv_name='volume1', lv_path='/dev/vg/lv', lv_tags=lv_tags) - volumes.append(osd) - result = volumes.get(lv_tags={'ceph.type': 'data'}).as_dict() - assert result['path'] == '/dev/vg/lv' - - def test_find_the_correct_one(self, volumes): - volume1 = api.Volume(lv_name='volume1', lv_path='/dev/vg/lv', lv_tags='') - volume2 = api.Volume(lv_name='volume2', lv_path='/dev/vg/lv', lv_tags='') - volumes.append(volume1) - volumes.append(volume2) - assert volumes.get(lv_name='volume1') == volume1 - - def test_filter_by_tag(self, volumes): - lv_tags = "ceph.type=data,ceph.fsid=000-aaa" - osd = api.Volume(lv_name='volume1', lv_path='/dev/vg/lv', lv_tags=lv_tags) - journal = api.Volume(lv_name='volume2', lv_path='/dev/vg/lv', lv_tags='ceph.type=journal') - volumes.append(osd) - volumes.append(journal) - volumes.filter(lv_tags={'ceph.type': 'data'}) - assert len(volumes) == 1 - assert volumes[0].lv_name == 'volume1' - - def test_filter_by_tag_does_not_match_one(self, volumes): - lv_tags = "ceph.type=data,ceph.fsid=000-aaa" - osd = api.Volume(lv_name='volume1', lv_path='/dev/vg/lv', lv_tags=lv_tags) - journal = api.Volume(lv_name='volume2', lv_path='/dev/vg/lv', lv_tags='ceph.osd_id=1,ceph.type=journal') - volumes.append(osd) - volumes.append(journal) - # note the different osd_id! - volumes.filter(lv_tags={'ceph.type': 'data', 'ceph.osd_id': '2'}) - assert volumes == [] - - def test_filter_by_vg_name(self, volumes): - lv_tags = "ceph.type=data,ceph.fsid=000-aaa" - osd = api.Volume(lv_name='volume1', vg_name='ceph_vg', lv_tags=lv_tags) - journal = api.Volume(lv_name='volume2', vg_name='system_vg', lv_tags='ceph.type=journal') - volumes.append(osd) - volumes.append(journal) - volumes.filter(vg_name='ceph_vg') - assert len(volumes) == 1 - assert volumes[0].lv_name == 'volume1' - - def test_filter_by_lv_path(self, volumes): - osd = api.Volume(lv_name='volume1', lv_path='/dev/volume1', lv_tags='') - journal = api.Volume(lv_name='volume2', lv_path='/dev/volume2', lv_tags='') - volumes.append(osd) - volumes.append(journal) - volumes.filter(lv_path='/dev/volume1') - assert len(volumes) == 1 - assert volumes[0].lv_name == 'volume1' - - def test_filter_by_lv_uuid(self, volumes): - osd = api.Volume(lv_name='volume1', lv_path='/dev/volume1', lv_uuid='1111', lv_tags='') - journal = api.Volume(lv_name='volume2', lv_path='/dev/volume2', lv_uuid='', lv_tags='') - volumes.append(osd) - volumes.append(journal) - volumes.filter(lv_uuid='1111') - assert len(volumes) == 1 - assert volumes[0].lv_name == 'volume1' - - def test_filter_by_lv_uuid_nothing_found(self, volumes): - osd = api.Volume(lv_name='volume1', lv_path='/dev/volume1', lv_uuid='1111', lv_tags='') - journal = api.Volume(lv_name='volume2', lv_path='/dev/volume2', lv_uuid='', lv_tags='') - volumes.append(osd) - volumes.append(journal) - volumes.filter(lv_uuid='22222') - assert volumes == [] - - def test_filter_requires_params(self, volumes): - with pytest.raises(TypeError): - volumes.filter() - - class TestVolumeGroup(object): def test_volume_group_no_empty_name(self): @@ -339,60 +60,6 @@ api.VolumeGroup(vg_name='') -class TestVolumeGroups(object): - - def test_volume_get_has_no_volume_groups(self, volume_groups): - assert volume_groups.get() is None - - def test_volume_get_filtered_has_no_volumes(self, volume_groups): - assert volume_groups.get(vg_name='ceph') is None - - def test_volume_has_multiple_matches(self, volume_groups): - volume1 = volume2 = api.VolumeGroup(vg_name='foo', lv_path='/dev/vg/lv', lv_tags='') - volume_groups.append(volume1) - volume_groups.append(volume2) - with pytest.raises(exceptions.MultipleVGsError): - volume_groups.get(vg_name='foo') - - def test_find_the_correct_one(self, volume_groups): - volume1 = api.VolumeGroup(vg_name='volume1', lv_tags='') - volume2 = api.VolumeGroup(vg_name='volume2', lv_tags='') - volume_groups.append(volume1) - volume_groups.append(volume2) - assert volume_groups.get(vg_name='volume1') == volume1 - - def test_filter_by_tag(self, volume_groups): - vg_tags = "ceph.group=dmcache" - osd = api.VolumeGroup(vg_name='volume1', vg_tags=vg_tags) - journal = api.VolumeGroup(vg_name='volume2', vg_tags='ceph.group=plain') - volume_groups.append(osd) - volume_groups.append(journal) - volume_groups = volume_groups.filter(vg_tags={'ceph.group': 'dmcache'}) - assert len(volume_groups) == 1 - assert volume_groups[0].vg_name == 'volume1' - - def test_filter_by_tag_does_not_match_one(self, volume_groups): - vg_tags = "ceph.group=dmcache,ceph.disk_type=ssd" - osd = api.VolumeGroup(vg_name='volume1', vg_path='/dev/vg/lv', vg_tags=vg_tags) - volume_groups.append(osd) - volume_groups = volume_groups.filter(vg_tags={'ceph.group': 'data', 'ceph.disk_type': 'ssd'}) - assert volume_groups == [] - - def test_filter_by_vg_name(self, volume_groups): - vg_tags = "ceph.type=data,ceph.fsid=000-aaa" - osd = api.VolumeGroup(vg_name='ceph_vg', vg_tags=vg_tags) - journal = api.VolumeGroup(vg_name='volume2', vg_tags='ceph.type=journal') - volume_groups.append(osd) - volume_groups.append(journal) - volume_groups = volume_groups.filter(vg_name='ceph_vg') - assert len(volume_groups) == 1 - assert volume_groups[0].vg_name == 'ceph_vg' - - def test_filter_requires_params(self, volume_groups): - with pytest.raises(TypeError): - volume_groups = volume_groups.filter() - - class TestVolumeGroupFree(object): def test_integer_gets_produced(self): @@ -491,31 +158,6 @@ self.vg.sizing(size=2048) -class TestGetLVFromArgument(object): - - def setup(self): - self.foo_volume = api.Volume( - lv_name='foo', lv_path='/path/to/lv', - vg_name='foo_group', lv_tags='' - ) - - def test_non_absolute_path_is_not_valid(self, volumes): - volumes.append(self.foo_volume) - assert api.get_lv_from_argument('foo') is None - - def test_too_many_slashes_is_invalid(self, volumes): - volumes.append(self.foo_volume) - assert api.get_lv_from_argument('path/to/lv') is None - - def test_absolute_path_is_not_lv(self, volumes): - volumes.append(self.foo_volume) - assert api.get_lv_from_argument('/path') is None - - def test_absolute_path_is_lv(self, volumes): - volumes.append(self.foo_volume) - assert api.get_lv_from_argument('/path/to/lv') == self.foo_volume - - class TestRemoveLV(object): def test_removes_lv(self, monkeypatch): @@ -543,24 +185,47 @@ def setup(self): self.foo_volume = api.Volume(lv_name='foo', lv_path='/path', vg_name='foo_group', lv_tags='') self.foo_group = api.VolumeGroup(vg_name='foo_group', - vg_extent_size=4194304, - vg_extent_count=100, - vg_free_count=100) + vg_extent_size="4194304", + vg_extent_count="100", + vg_free_count="100") + + @patch('ceph_volume.api.lvm.process.run') + @patch('ceph_volume.api.lvm.process.call') + @patch('ceph_volume.api.lvm.get_first_lv') + def test_uses_size(self, m_get_first_lv, m_call, m_run, monkeypatch): + m_get_first_lv.return_value = self.foo_volume + api.create_lv('foo', 0, vg=self.foo_group, size=419430400, tags={'ceph.type': 'data'}) + expected = ['lvcreate', '--yes', '-l', '100', '-n', 'foo-0', 'foo_group'] + m_run.assert_called_with(expected) @patch('ceph_volume.api.lvm.process.run') @patch('ceph_volume.api.lvm.process.call') - @patch('ceph_volume.api.lvm.get_lv') - def test_uses_size(self, m_get_lv, m_call, m_run, monkeypatch): - m_get_lv.return_value = self.foo_volume - api.create_lv('foo', 0, vg=self.foo_group, size=5368709120, tags={'ceph.type': 'data'}) - expected = ['lvcreate', '--yes', '-l', '1280', '-n', 'foo-0', 'foo_group'] + @patch('ceph_volume.api.lvm.get_first_lv') + def test_uses_size_adjust_if_1percent_over(self, m_get_first_lv, m_call, m_run, monkeypatch): + foo_volume = api.Volume(lv_name='foo', lv_path='/path', vg_name='foo_group', lv_tags='') + foo_group = api.VolumeGroup(vg_name='foo_group', + vg_extent_size="4194304", + vg_extent_count="1000", + vg_free_count="1000") + m_get_first_lv.return_value = foo_volume + # 423624704 should be just under 1% off of the available size 419430400 + api.create_lv('foo', 0, vg=foo_group, size=4232052736, tags={'ceph.type': 'data'}) + expected = ['lvcreate', '--yes', '-l', '1000', '-n', 'foo-0', 'foo_group'] m_run.assert_called_with(expected) @patch('ceph_volume.api.lvm.process.run') @patch('ceph_volume.api.lvm.process.call') - @patch('ceph_volume.api.lvm.get_lv') - def test_uses_extents(self, m_get_lv, m_call, m_run, monkeypatch): - m_get_lv.return_value = self.foo_volume + @patch('ceph_volume.api.lvm.get_first_lv') + def test_uses_size_too_large(self, m_get_first_lv, m_call, m_run, monkeypatch): + m_get_first_lv.return_value = self.foo_volume + with pytest.raises(RuntimeError): + api.create_lv('foo', 0, vg=self.foo_group, size=5368709120, tags={'ceph.type': 'data'}) + + @patch('ceph_volume.api.lvm.process.run') + @patch('ceph_volume.api.lvm.process.call') + @patch('ceph_volume.api.lvm.get_first_lv') + def test_uses_extents(self, m_get_first_lv, m_call, m_run, monkeypatch): + m_get_first_lv.return_value = self.foo_volume api.create_lv('foo', 0, vg=self.foo_group, extents='50', tags={'ceph.type': 'data'}) expected = ['lvcreate', '--yes', '-l', '50', '-n', 'foo-0', 'foo_group'] m_run.assert_called_with(expected) @@ -570,18 +235,18 @@ (3, 33),]) @patch('ceph_volume.api.lvm.process.run') @patch('ceph_volume.api.lvm.process.call') - @patch('ceph_volume.api.lvm.get_lv') - def test_uses_slots(self, m_get_lv, m_call, m_run, monkeypatch, test_input, expected): - m_get_lv.return_value = self.foo_volume + @patch('ceph_volume.api.lvm.get_first_lv') + def test_uses_slots(self, m_get_first_lv, m_call, m_run, monkeypatch, test_input, expected): + m_get_first_lv.return_value = self.foo_volume api.create_lv('foo', 0, vg=self.foo_group, slots=test_input, tags={'ceph.type': 'data'}) expected = ['lvcreate', '--yes', '-l', str(expected), '-n', 'foo-0', 'foo_group'] m_run.assert_called_with(expected) @patch('ceph_volume.api.lvm.process.run') @patch('ceph_volume.api.lvm.process.call') - @patch('ceph_volume.api.lvm.get_lv') - def test_uses_all(self, m_get_lv, m_call, m_run, monkeypatch): - m_get_lv.return_value = self.foo_volume + @patch('ceph_volume.api.lvm.get_first_lv') + def test_uses_all(self, m_get_first_lv, m_call, m_run, monkeypatch): + m_get_first_lv.return_value = self.foo_volume api.create_lv('foo', 0, vg=self.foo_group, tags={'ceph.type': 'data'}) expected = ['lvcreate', '--yes', '-l', '100%FREE', '-n', 'foo-0', 'foo_group'] m_run.assert_called_with(expected) @@ -589,9 +254,9 @@ @patch('ceph_volume.api.lvm.process.run') @patch('ceph_volume.api.lvm.process.call') @patch('ceph_volume.api.lvm.Volume.set_tags') - @patch('ceph_volume.api.lvm.get_lv') - def test_calls_to_set_tags_default(self, m_get_lv, m_set_tags, m_call, m_run, monkeypatch): - m_get_lv.return_value = self.foo_volume + @patch('ceph_volume.api.lvm.get_first_lv') + def test_calls_to_set_tags_default(self, m_get_first_lv, m_set_tags, m_call, m_run, monkeypatch): + m_get_first_lv.return_value = self.foo_volume api.create_lv('foo', 0, vg=self.foo_group) tags = { "ceph.osd_id": "null", @@ -604,9 +269,9 @@ @patch('ceph_volume.api.lvm.process.run') @patch('ceph_volume.api.lvm.process.call') @patch('ceph_volume.api.lvm.Volume.set_tags') - @patch('ceph_volume.api.lvm.get_lv') - def test_calls_to_set_tags_arg(self, m_get_lv, m_set_tags, m_call, m_run, monkeypatch): - m_get_lv.return_value = self.foo_volume + @patch('ceph_volume.api.lvm.get_first_lv') + def test_calls_to_set_tags_arg(self, m_get_first_lv, m_set_tags, m_call, m_run, monkeypatch): + m_get_first_lv.return_value = self.foo_volume api.create_lv('foo', 0, vg=self.foo_group, tags={'ceph.type': 'data'}) tags = { "ceph.type": "data", @@ -618,10 +283,10 @@ @patch('ceph_volume.api.lvm.process.call') @patch('ceph_volume.api.lvm.get_device_vgs') @patch('ceph_volume.api.lvm.create_vg') - @patch('ceph_volume.api.lvm.get_lv') - def test_create_vg(self, m_get_lv, m_create_vg, m_get_device_vgs, m_call, + @patch('ceph_volume.api.lvm.get_first_lv') + def test_create_vg(self, m_get_first_lv, m_create_vg, m_get_device_vgs, m_call, m_run, monkeypatch): - m_get_lv.return_value = self.foo_volume + m_get_first_lv.return_value = self.foo_volume m_get_device_vgs.return_value = [] api.create_lv('foo', 0, device='dev/foo', size='5G', tags={'ceph.type': 'data'}) m_create_vg.assert_called_with('dev/foo', name_prefix='ceph') @@ -712,19 +377,19 @@ self.foo_volume = api.VolumeGroup(vg_name='foo', lv_tags='') def test_uses_single_device_in_list(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.extend_vg(self.foo_volume, ['/dev/sda']) expected = ['vgextend', '--force', '--yes', 'foo', '/dev/sda'] assert fake_run.calls[0]['args'][0] == expected def test_uses_single_device(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.extend_vg(self.foo_volume, '/dev/sda') expected = ['vgextend', '--force', '--yes', 'foo', '/dev/sda'] assert fake_run.calls[0]['args'][0] == expected def test_uses_multiple_devices(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.extend_vg(self.foo_volume, ['/dev/sda', '/dev/sdb']) expected = ['vgextend', '--force', '--yes', 'foo', '/dev/sda', '/dev/sdb'] assert fake_run.calls[0]['args'][0] == expected @@ -736,19 +401,19 @@ self.foo_volume = api.VolumeGroup(vg_name='foo', lv_tags='') def test_uses_single_device_in_list(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.reduce_vg(self.foo_volume, ['/dev/sda']) expected = ['vgreduce', '--force', '--yes', 'foo', '/dev/sda'] assert fake_run.calls[0]['args'][0] == expected def test_uses_single_device(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.reduce_vg(self.foo_volume, '/dev/sda') expected = ['vgreduce', '--force', '--yes', 'foo', '/dev/sda'] assert fake_run.calls[0]['args'][0] == expected def test_uses_multiple_devices(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.reduce_vg(self.foo_volume, ['/dev/sda', '/dev/sdb']) expected = ['vgreduce', '--force', '--yes', 'foo', '/dev/sda', '/dev/sdb'] assert fake_run.calls[0]['args'][0] == expected @@ -760,28 +425,28 @@ self.foo_volume = api.VolumeGroup(vg_name='foo', lv_tags='') def test_no_name(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.create_vg('/dev/sda') result = fake_run.calls[0]['args'][0] assert '/dev/sda' in result assert result[-2].startswith('ceph-') def test_devices_list(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.create_vg(['/dev/sda', '/dev/sdb'], name='ceph') result = fake_run.calls[0]['args'][0] expected = ['vgcreate', '--force', '--yes', 'ceph', '/dev/sda', '/dev/sdb'] assert result == expected def test_name_prefix(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.create_vg('/dev/sda', name_prefix='master') result = fake_run.calls[0]['args'][0] assert '/dev/sda' in result assert result[-2].startswith('master-') def test_specific_name(self, monkeypatch, fake_run): - monkeypatch.setattr(api, 'get_vg', lambda **kw: True) + monkeypatch.setattr(api, 'get_first_vg', lambda **kw: True) api.create_vg('/dev/sda', name='master') result = fake_run.calls[0]['args'][0] assert '/dev/sda' in result @@ -948,30 +613,6 @@ assert '/dev/mapper' not in result['VG_NAME'] -class TestIsLV(object): - - def test_is_not_an_lv(self, monkeypatch): - monkeypatch.setattr(api.process, 'call', lambda x, **kw: ('', '', 0)) - monkeypatch.setattr(api, 'dmsetup_splitname', lambda x, **kw: {}) - assert api.is_lv('/dev/sda1', lvs=[]) is False - - def test_lvs_not_found(self, monkeypatch, volumes): - CephVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.type=data") - volumes.append(CephVolume) - splitname = {'LV_NAME': 'data', 'VG_NAME': 'ceph'} - monkeypatch.setattr(api, 'dmsetup_splitname', lambda x, **kw: splitname) - assert api.is_lv('/dev/sda1', lvs=volumes) is False - - def test_is_lv(self, monkeypatch, volumes): - CephVolume = api.Volume( - vg_name='ceph', lv_name='data', - lv_path='/dev/vg/foo', lv_tags="ceph.type=data" - ) - volumes.append(CephVolume) - splitname = {'LV_NAME': 'data', 'VG_NAME': 'ceph'} - monkeypatch.setattr(api, 'dmsetup_splitname', lambda x, **kw: splitname) - assert api.is_lv('/dev/sda1', lvs=volumes) is True - class TestGetDeviceVgs(object): @patch('ceph_volume.process.call') @@ -991,3 +632,239 @@ pcall.return_value = ('', '', '') vgs = api.get_device_lvs('/dev/foo') assert vgs == [] + + +# NOTE: api.convert_filters_to_str() and api.convert_tags_to_str() should get +# tested automatically while testing api.make_filters_lvmcmd_ready() +class TestMakeFiltersLVMCMDReady(object): + + def test_with_no_filters_and_no_tags(self): + retval = api.make_filters_lvmcmd_ready(None, None) + + assert isinstance(retval, str) + assert retval == '' + + def test_with_filters_and_no_tags(self): + filters = {'lv_name': 'lv1', 'lv_path': '/dev/sda'} + + retval = api.make_filters_lvmcmd_ready(filters, None) + + assert isinstance(retval, str) + for k, v in filters.items(): + assert k in retval + assert v in retval + + def test_with_no_filters_and_with_tags(self): + tags = {'ceph.type': 'data', 'ceph.osd_id': '0'} + + retval = api.make_filters_lvmcmd_ready(None, tags) + + assert isinstance(retval, str) + assert 'tags' in retval + for k, v in tags.items(): + assert k in retval + assert v in retval + assert retval.find('tags') < retval.find(k) < retval.find(v) + + def test_with_filters_and_tags(self): + filters = {'lv_name': 'lv1', 'lv_path': '/dev/sda'} + tags = {'ceph.type': 'data', 'ceph.osd_id': '0'} + + retval = api.make_filters_lvmcmd_ready(filters, tags) + + assert isinstance(retval, str) + for f, t in zip(filters.items(), tags.items()): + assert f[0] in retval + assert f[1] in retval + assert t[0] in retval + assert t[1] in retval + assert retval.find(f[0]) < retval.find(f[1]) < \ + retval.find('tags') < retval.find(t[0]) < retval.find(t[1]) + + +class TestGetPVs(object): + + def test_get_pvs(self, monkeypatch): + pv1 = api.PVolume(pv_name='/dev/sda', pv_uuid='0000', pv_tags={}, + vg_name='vg1') + pv2 = api.PVolume(pv_name='/dev/sdb', pv_uuid='0001', pv_tags={}, + vg_name='vg2') + pvs = [pv1, pv2] + stdout = ['{};{};{};{};;'.format(pv1.pv_name, pv1.pv_tags, pv1.pv_uuid, pv1.vg_name), + '{};{};{};{};;'.format(pv2.pv_name, pv2.pv_tags, pv2.pv_uuid, pv2.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + pvs_ = api.get_pvs() + assert len(pvs_) == len(pvs) + for pv, pv_ in zip(pvs, pvs_): + assert pv_.pv_name == pv.pv_name + + def test_get_pvs_single_pv(self, monkeypatch): + pv1 = api.PVolume(pv_name='/dev/sda', pv_uuid='0000', pv_tags={}, + vg_name='vg1') + pvs = [pv1] + stdout = ['{};;;;;;'.format(pv1.pv_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + pvs_ = api.get_pvs() + assert len(pvs_) == 1 + assert pvs_[0].pv_name == pvs[0].pv_name + + def test_get_pvs_empty(self, monkeypatch): + monkeypatch.setattr(api.process, 'call', lambda x,**kw: ('', '', 0)) + assert api.get_pvs() == [] + + +class TestGetVGs(object): + + def test_get_vgs(self, monkeypatch): + vg1 = api.VolumeGroup(vg_name='vg1') + vg2 = api.VolumeGroup(vg_name='vg2') + vgs = [vg1, vg2] + stdout = ['{};;;;;;'.format(vg1.vg_name), + '{};;;;;;'.format(vg2.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + vgs_ = api.get_vgs() + assert len(vgs_) == len(vgs) + for vg, vg_ in zip(vgs, vgs_): + assert vg_.vg_name == vg.vg_name + + def test_get_vgs_single_vg(self, monkeypatch): + vg1 = api.VolumeGroup(vg_name='vg'); vgs = [vg1] + stdout = ['{};;;;;;'.format(vg1.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + vgs_ = api.get_vgs() + assert len(vgs_) == 1 + assert vgs_[0].vg_name == vgs[0].vg_name + + def test_get_vgs_empty(self, monkeypatch): + monkeypatch.setattr(api.process, 'call', lambda x,**kw: ('', '', 0)) + assert api.get_vgs() == [] + + +class TestGetLVs(object): + + def test_get_lvs(self, monkeypatch): + lv1 = api.Volume(lv_tags='ceph.type=data', lv_path='/dev/vg1/lv1', + lv_name='lv1', vg_name='vg1') + lv2 = api.Volume(lv_tags='ceph.type=data', lv_path='/dev/vg2/lv2', + lv_name='lv2', vg_name='vg2') + lvs = [lv1, lv2] + stdout = ['{};{};{};{}'.format(lv1.lv_tags, lv1.lv_path, lv1.lv_name, + lv1.vg_name), + '{};{};{};{}'.format(lv2.lv_tags, lv2.lv_path, lv2.lv_name, + lv2.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + lvs_ = api.get_lvs() + assert len(lvs_) == len(lvs) + for lv, lv_ in zip(lvs, lvs_): + assert lv.__dict__ == lv_.__dict__ + + def test_get_lvs_single_lv(self, monkeypatch): + stdout = ['ceph.type=data;/dev/vg/lv;lv;vg'] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + lvs = [] + lvs.append((api.Volume(lv_tags='ceph.type=data', + lv_path='/dev/vg/lv', + lv_name='lv', vg_name='vg'))) + + lvs_ = api.get_lvs() + assert len(lvs_) == len(lvs) + assert lvs[0].__dict__ == lvs_[0].__dict__ + + def test_get_lvs_empty(self, monkeypatch): + monkeypatch.setattr(api.process, 'call', lambda x,**kw: ('', '', 0)) + assert api.get_lvs() == [] + + +class TestGetFirstPV(object): + + def test_get_first_pv(self, monkeypatch): + pv1 = api.PVolume(pv_name='/dev/sda', pv_uuid='0000', pv_tags={}, + vg_name='vg1') + pv2 = api.PVolume(pv_name='/dev/sdb', pv_uuid='0001', pv_tags={}, + vg_name='vg2') + stdout = ['{};{};{};{};;'.format(pv1.pv_name, pv1.pv_tags, pv1.pv_uuid, pv1.vg_name), + '{};{};{};{};;'.format(pv2.pv_name, pv2.pv_tags, pv2.pv_uuid, pv2.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + pv_ = api.get_first_pv() + assert isinstance(pv_, api.PVolume) + assert pv_.pv_name == pv1.pv_name + + def test_get_first_pv_single_pv(self, monkeypatch): + pv = api.PVolume(pv_name='/dev/sda', pv_uuid='0000', pv_tags={}, + vg_name='vg1') + stdout = ['{};;;;;;'.format(pv.pv_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + pv_ = api.get_first_pv() + assert isinstance(pv_, api.PVolume) + assert pv_.pv_name == pv.pv_name + + def test_get_first_pv_empty(self, monkeypatch): + monkeypatch.setattr(api.process, 'call', lambda x,**kw: ('', '', 0)) + assert api.get_first_pv() == [] + + +class TestGetFirstVG(object): + + def test_get_first_vg(self, monkeypatch): + vg1 = api.VolumeGroup(vg_name='vg1') + vg2 = api.VolumeGroup(vg_name='vg2') + stdout = ['{};;;;;;'.format(vg1.vg_name), '{};;;;;;'.format(vg2.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + vg_ = api.get_first_vg() + assert isinstance(vg_, api.VolumeGroup) + assert vg_.vg_name == vg1.vg_name + + def test_get_first_vg_single_vg(self, monkeypatch): + vg = api.VolumeGroup(vg_name='vg') + stdout = ['{};;;;;;'.format(vg.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + vg_ = api.get_first_vg() + assert isinstance(vg_, api.VolumeGroup) + assert vg_.vg_name == vg.vg_name + + def test_get_first_vg_empty(self, monkeypatch): + monkeypatch.setattr(api.process, 'call', lambda x,**kw: ('', '', 0)) + vg_ = api.get_first_vg() + assert vg_ == [] + + +class TestGetFirstLV(object): + + def test_get_first_lv(self, monkeypatch): + lv1 = api.Volume(lv_tags='ceph.type=data', lv_path='/dev/vg1/lv1', + lv_name='lv1', vg_name='vg1') + lv2 = api.Volume(lv_tags='ceph.type=data', lv_path='/dev/vg2/lv2', + lv_name='lv2', vg_name='vg2') + stdout = ['{};{};{};{}'.format(lv1.lv_tags, lv1.lv_path, lv1.lv_name, + lv1.vg_name), + '{};{};{};{}'.format(lv2.lv_tags, lv2.lv_path, lv2.lv_name, + lv2.vg_name)] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + + lv_ = api.get_first_lv() + assert isinstance(lv_, api.Volume) + assert lv_.lv_name == lv1.lv_name + + def test_get_first_lv_single_lv(self, monkeypatch): + stdout = ['ceph.type=data;/dev/vg/lv;lv;vg'] + monkeypatch.setattr(api.process, 'call', lambda x,**kw: (stdout, '', 0)) + lv = api.Volume(lv_tags='ceph.type=data', + lv_path='/dev/vg/lv', + lv_name='lv', vg_name='vg') + + lv_ = api.get_first_lv() + assert isinstance(lv_, api.Volume) + assert lv_.lv_name == lv.lv_name + + def test_get_first_lv_empty(self, monkeypatch): + monkeypatch.setattr(api.process, 'call', lambda x,**kw: ('', '', 0)) + assert api.get_lvs() == [] diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/conftest.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/conftest.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/conftest.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/conftest.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,9 +1,10 @@ import os import pytest -from mock.mock import patch, PropertyMock +from mock.mock import patch, PropertyMock, create_autospec +from ceph_volume.api import lvm from ceph_volume.util import disk +from ceph_volume.util import device from ceph_volume.util.constants import ceph_disk_guids -from ceph_volume.api import lvm as lvm_api from ceph_volume import conf, configuration @@ -40,6 +41,48 @@ def capture(): return Capture() +@pytest.fixture +def mock_lv_device_generator(): + def mock_lv(): + size = 21474836480 + dev = create_autospec(device.Device) + dev.lv_name = 'lv' + dev.vg_name = 'vg' + dev.path = '{}/{}'.format(dev.vg_name, dev.lv_name) + dev.used_by_ceph = False + dev.vg_size = [size] + dev.vg_free = dev.vg_size + dev.lvs = [lvm.Volume(vg_name=dev.vg_name, lv_name=dev.lv_name, lv_size=size, lv_tags='')] + return dev + return mock_lv + + +@pytest.fixture +def mock_devices_available(): + dev = create_autospec(device.Device) + dev.path = '/dev/foo' + dev.available_lvm = True + dev.vg_size = [21474836480] + dev.vg_free = dev.vg_size + return [dev] + +@pytest.fixture +def mock_device_generator(): + def mock_device(): + dev = create_autospec(device.Device) + dev.path = '/dev/foo' + dev.available_lvm = True + dev.vg_size = [21474836480] + dev.vg_free = dev.vg_size + dev.lvs = [] + return dev + return mock_device + + +@pytest.fixture(params=range(1,11)) +def osds_per_device(request): + return request.param + @pytest.fixture def fake_run(monkeypatch): @@ -140,49 +183,6 @@ @pytest.fixture -def volumes(monkeypatch): - monkeypatch.setattr('ceph_volume.process.call', lambda x, **kw: ('', '', 0)) - volumes = lvm_api.Volumes() - volumes._purge() - return volumes - - -@pytest.fixture -def volume_groups(monkeypatch): - monkeypatch.setattr('ceph_volume.process.call', lambda x, **kw: ('', '', 0)) - vgs = lvm_api.VolumeGroups() - vgs._purge() - return vgs - -def volume_groups_empty(monkeypatch): - monkeypatch.setattr('ceph_volume.process.call', lambda x, **kw: ('', '', 0)) - vgs = lvm_api.VolumeGroups(populate=False) - return vgs - -@pytest.fixture -def stub_vgs(monkeypatch, volume_groups): - def apply(vgs): - monkeypatch.setattr(lvm_api, 'get_api_vgs', lambda: vgs) - return apply - - -# TODO: allow init-ing pvolumes to list we want -@pytest.fixture -def pvolumes(monkeypatch): - monkeypatch.setattr('ceph_volume.process.call', lambda x, **kw: ('', '', 0)) - pvolumes = lvm_api.PVolumes() - pvolumes._purge() - return pvolumes - -@pytest.fixture -def pvolumes_empty(monkeypatch): - monkeypatch.setattr('ceph_volume.process.call', lambda x, **kw: ('', '', 0)) - pvolumes = lvm_api.PVolumes(populate=False) - return pvolumes - - - -@pytest.fixture def is_root(monkeypatch): """ Patch ``os.getuid()`` so that ceph-volume's decorators that ensure a user @@ -215,15 +215,6 @@ monkeypatch.setattr("ceph_volume.util.disk.udevadm_property", lambda *a, **kw: {}) -@pytest.fixture -def disable_lvm_queries(monkeypatch): - ''' - This speeds up calls to Device and Disk - ''' - monkeypatch.setattr("ceph_volume.util.device.lvm.get_lv_from_argument", lambda path: None) - monkeypatch.setattr("ceph_volume.util.device.lvm.get_lv", lambda vg_name, lv_uuid: None) - - @pytest.fixture(params=[ '', 'ceph data', 'ceph journal', 'ceph block', 'ceph block.wal', 'ceph block.db', 'ceph lockbox']) @@ -239,18 +230,20 @@ @pytest.fixture def lsblk_ceph_disk_member(monkeypatch, request, ceph_partlabel, ceph_parttype): monkeypatch.setattr("ceph_volume.util.device.disk.lsblk", - lambda path: {'PARTLABEL': ceph_partlabel}) + lambda path: {'TYPE': 'disk', 'PARTLABEL': ceph_partlabel}) # setting blkid here too in order to be able to fall back to PARTTYPE based # membership monkeypatch.setattr("ceph_volume.util.device.disk.blkid", - lambda path: {'PARTLABEL': '', + lambda path: {'TYPE': 'disk', + 'PARTLABEL': '', 'PARTTYPE': ceph_parttype}) @pytest.fixture def blkid_ceph_disk_member(monkeypatch, request, ceph_partlabel, ceph_parttype): monkeypatch.setattr("ceph_volume.util.device.disk.blkid", - lambda path: {'PARTLABEL': ceph_partlabel, + lambda path: {'TYPE': 'disk', + 'PARTLABEL': ceph_partlabel, 'PARTTYPE': ceph_parttype}) @@ -262,9 +255,11 @@ ]) def device_info_not_ceph_disk_member(monkeypatch, request): monkeypatch.setattr("ceph_volume.util.device.disk.lsblk", - lambda path: {'PARTLABEL': request.param[0]}) + lambda path: {'TYPE': 'disk', + 'PARTLABEL': request.param[0]}) monkeypatch.setattr("ceph_volume.util.device.disk.blkid", - lambda path: {'PARTLABEL': request.param[1]}) + lambda path: {'TYPE': 'disk', + 'PARTLABEL': request.param[1]}) @pytest.fixture def patched_get_block_devs_lsblk(): @@ -290,12 +285,10 @@ monkeypatch.setattr("ceph_volume.sys_info.devices", {}) monkeypatch.setattr("ceph_volume.util.device.disk.get_devices", lambda: devices) if not devices: - monkeypatch.setattr("ceph_volume.util.device.lvm.get_lv_from_argument", lambda path: lv) + monkeypatch.setattr("ceph_volume.util.device.lvm.get_first_lv", lambda filters: lv) else: - monkeypatch.setattr("ceph_volume.util.device.lvm.get_lv_from_argument", lambda path: None) monkeypatch.setattr("ceph_volume.util.device.lvm.get_device_lvs", lambda path: [lv]) - monkeypatch.setattr("ceph_volume.util.device.lvm.get_lv", lambda vg_name, lv_uuid: lv) monkeypatch.setattr("ceph_volume.util.device.disk.lsblk", lambda path: lsblk) monkeypatch.setattr("ceph_volume.util.device.disk.blkid", lambda path: blkid) monkeypatch.setattr("ceph_volume.util.disk.udevadm_property", lambda *a, **kw: udevadm) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_bluestore.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_bluestore.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_bluestore.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_bluestore.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,204 +0,0 @@ -import pytest -from ceph_volume.devices.lvm.strategies import bluestore -from ceph_volume.api import lvm - - -class TestSingleType(object): - - def test_hdd_device_is_large_enough(self, fakedevice, factory): - args = factory(filtered_devices=[], osds_per_device=1, - block_db_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - ] - computed_osd = bluestore.SingleType.with_auto_devices(args, devices).computed['osds'][0] - assert computed_osd['data']['percentage'] == 100 - assert computed_osd['data']['parts'] == 1 - assert computed_osd['data']['human_readable_size'] == '5.00 GB' - assert computed_osd['data']['path'] == '/dev/sda' - - def test_sdd_device_is_large_enough(self, fakedevice, factory): - args = factory(filtered_devices=[], osds_per_device=1, - block_db_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)) - ] - computed_osd = bluestore.SingleType.with_auto_devices(args, devices).computed['osds'][0] - assert computed_osd['data']['percentage'] == 100 - assert computed_osd['data']['parts'] == 1 - assert computed_osd['data']['human_readable_size'] == '5.00 GB' - assert computed_osd['data']['path'] == '/dev/sda' - - def test_device_cannot_have_many_osds_per_device(self, fakedevice, factory): - args = factory(filtered_devices=[], osds_per_device=3, - block_db_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - bluestore.SingleType.with_auto_devices(args, devices) - assert 'Unable to use device 5.66 GB /dev/sda' in str(error.value) - - def test_device_is_lvm_member_fails(self, fakedevice, factory): - args = factory(filtered_devices=[], osds_per_device=1, - block_db_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=True, rotational=True, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - bluestore.SingleType.with_auto_devices(args, devices) - assert 'Unable to use device, already a member of LVM' in str(error.value) - - -class TestMixedType(object): - - def test_filter_all_data_devs(self, fakedevice, factory, monkeypatch): - # in this scenario the user passed a already used device to be used for - # data and an unused device to be used as db device. - db_dev = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)) - data_dev = fakedevice(used_by_ceph=True, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - args = factory(filtered_devices=[data_dev], osds_per_device=1, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - monkeypatch.setattr(lvm, 'VolumeGroup', lambda x, **kw: []) - monkeypatch.setattr(lvm, 'VolumeGroups', lambda: []) - bluestore.MixedType(args, [], [db_dev], []) - - -class TestMixedTypeConfiguredSize(object): - # uses a block.db size that has been configured via ceph.conf, instead of - # defaulting to 'as large as possible' - - def test_hdd_device_is_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - # 3GB block.db in ceph.conf - conf_ceph(get_safe=lambda *a: 3147483640) - args = factory(filtered_devices=[], osds_per_device=1, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - devices = [ssd, hdd] - - osd = bluestore.MixedType.with_auto_devices(args, devices).computed['osds'][0] - assert osd['data']['percentage'] == 100 - assert osd['data']['human_readable_size'] == '5.66 GB' - assert osd['data']['path'] == '/dev/sda' - # a new vg will be created - assert osd['block.db']['path'] == 'vg: vg/lv' - assert osd['block.db']['percentage'] == 100 - - def test_ssd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - # 7GB block.db in ceph.conf - conf_ceph(get_safe=lambda *a: 7747483640) - args = factory(filtered_devices=[], osds_per_device=1, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - devices = [ssd, hdd] - - with pytest.raises(RuntimeError) as error: - bluestore.MixedType.with_auto_devices(args, devices).computed['osds'][0] - expected = 'Not enough space in fast devices (5.66 GB) to create 1 x 7.22 GB block.db LV' - assert expected in str(error.value) - - def test_multi_hdd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - # 3GB block.db in ceph.conf - conf_ceph(get_safe=lambda *a: 3147483640) - args = factory(filtered_devices=[], osds_per_device=2, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=60737400000)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - devices = [ssd, hdd] - - with pytest.raises(RuntimeError) as error: - bluestore.MixedType.with_auto_devices(args, devices) - expected = 'Unable to use device 5.66 GB /dev/sda, LVs would be smaller than 5GB' - assert expected in str(error.value) - - -class TestMixedTypeLargeAsPossible(object): - - def test_hdd_device_is_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: None) - args = factory(filtered_devices=[], osds_per_device=1, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - devices = [ssd, hdd] - - osd = bluestore.MixedType.with_auto_devices(args, devices).computed['osds'][0] - assert osd['data']['percentage'] == 100 - assert osd['data']['human_readable_size'] == '5.66 GB' - assert osd['data']['path'] == '/dev/sda' - # a new vg will be created - assert osd['block.db']['path'] == 'vg: vg/lv' - # as large as possible - assert osd['block.db']['percentage'] == 100 - - def test_multi_hdd_device_is_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: None) - args = factory(filtered_devices=[], osds_per_device=2, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=60073740000)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=60073740000)) - devices = [ssd, hdd] - - osd = bluestore.MixedType.with_auto_devices(args, devices).computed['osds'][0] - assert osd['data']['percentage'] == 50 - assert osd['data']['human_readable_size'] == '27.97 GB' - assert osd['data']['path'] == '/dev/sda' - # a new vg will be created - assert osd['block.db']['path'] == 'vg: vg/lv' - # as large as possible - assert osd['block.db']['percentage'] == 50 - - def test_multi_hdd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: None) - args = factory(filtered_devices=[], osds_per_device=2, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=60737400000)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - devices = [ssd, hdd] - - with pytest.raises(RuntimeError) as error: - bluestore.MixedType.with_auto_devices(args, devices) - expected = 'Unable to use device 5.66 GB /dev/sda, LVs would be smaller than 5GB' - assert expected in str(error.value) - - -class TestMixedTypeWithExplicitDevices(object): - - def test_multi_hdd_device_is_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: None) - args = factory(filtered_devices=[], osds_per_device=2, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=60073740000)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=60073740000)) - - osd = bluestore.MixedType(args, [hdd], [], [ssd]).computed['osds'][0] - assert osd['data']['percentage'] == 50 - assert osd['data']['human_readable_size'] == '27.97 GB' - assert osd['data']['path'] == '/dev/sda' - # a new vg will be created - assert osd['block.wal']['path'] == 'vg: vg/lv' - # as large as possible - assert osd['block.wal']['percentage'] == 50 - - def test_wal_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: None) - args = factory(filtered_devices=[], osds_per_device=2, - block_db_size=None, block_wal_size=None, - osd_ids=[]) - ssd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=1610612736)) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=60073740000)) - - with pytest.raises(RuntimeError) as error: - bluestore.MixedType(args, [hdd], [], [ssd]).computed['osds'][0] - expected = 'Unable to use device 1.50 GB /dev/sda, LVs would be smaller than 1GB' - assert expected in str(error.value), str(error) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_filestore.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_filestore.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_filestore.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_filestore.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,216 +0,0 @@ -import pytest -from mock.mock import patch -from ceph_volume.devices.lvm.strategies import filestore -from ceph_volume.api import lvm - - -class TestSingleType(object): - - def test_hdd_device_is_large_enough(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=12073740000)) - ] - computed_osd = filestore.SingleType.with_auto_devices(args, devices).computed['osds'][0] - assert computed_osd['data']['percentage'] == 55 - assert computed_osd['data']['parts'] == 1 - assert computed_osd['data']['human_readable_size'] == '6.24 GB' - assert computed_osd['data']['path'] == '/dev/sda' - - def test_hdd_device_with_large_journal(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.SingleType.with_auto_devices(args, devices) - msg = "Unable to use device 5.66 GB /dev/sda, LVs would be smaller than 5GB" - assert msg in str(error.value) - - def test_ssd_device_is_large_enough(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=12073740000)) - ] - computed_osd = filestore.SingleType.with_auto_devices(args, devices).computed['osds'][0] - assert computed_osd['data']['percentage'] == 55 - assert computed_osd['data']['parts'] == 1 - assert computed_osd['data']['human_readable_size'] == '6.24 GB' - assert computed_osd['data']['path'] == '/dev/sda' - - def test_ssd_device_with_large_journal(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.SingleType.with_auto_devices(args, devices) - msg = "Unable to use device 5.66 GB /dev/sda, LVs would be smaller than 5GB" - assert msg in str(error.value) - - def test_ssd_device_multi_osd(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=4, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=16073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.SingleType.with_auto_devices(args, devices) - msg = "Unable to use device 14.97 GB /dev/sda, LVs would be smaller than 5GB" - assert msg in str(error.value) - - def test_hdd_device_multi_osd(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=4, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=16073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.SingleType.with_auto_devices(args, devices) - msg = "Unable to use device 14.97 GB /dev/sda, LVs would be smaller than 5GB" - assert msg in str(error.value) - - def test_device_is_lvm_member_fails(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=True, rotational=True, sys_api=dict(size=12073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.SingleType.with_auto_devices(args, devices) - assert 'Unable to use device, already a member of LVM' in str(error.value) - - def test_hdd_device_with_small_configured_journal(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.SingleType.with_auto_devices(args, devices) - msg = "journal sizes must be larger than 2GB, detected: 120.00 MB" - assert msg in str(error.value) - - def test_ssd_device_with_small_configured_journal(self, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.SingleType.with_auto_devices(args, devices) - msg = "journal sizes must be larger than 2GB, detected: 120.00 MB" - assert msg in str(error.value) - - -class TestMixedType(object): - - def test_minimum_size_is_not_met(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)), - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.MixedType.with_auto_devices(args, devices) - msg = "journal sizes must be larger than 2GB, detected: 120.00 MB" - assert msg in str(error.value) - - def test_ssd_device_is_not_large_enough(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '7120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)), - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.MixedType.with_auto_devices(args, devices) - msg = "Not enough space in fast devices (5.66 GB) to create 1 x 6.95 GB journal LV" - assert msg in str(error.value) - - def test_hdd_device_is_lvm_member_fails(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=False, sys_api=dict(size=6073740000)), - fakedevice(used_by_ceph=False, is_lvm_member=True, rotational=True, sys_api=dict(size=6073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.MixedType.with_auto_devices(args, devices) - assert 'Unable to use device, already a member of LVM' in str(error.value) - - @patch('ceph_volume.devices.lvm.strategies.strategies.MixedStrategy.get_common_vg') - def test_ssd_is_lvm_member_doesnt_fail(self, - patched_get_common_vg, - volumes, - fakedevice, - factory, - conf_ceph): - ssd = fakedevice( - used_by_ceph=False, is_lvm_member=True, rotational=False, sys_api=dict(size=6073740000) - ) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - vg = lvm.VolumeGroup( - vg_name='fast', lv_name='foo', - lv_path='/dev/vg/foo', lv_tags="ceph.type=data", - vg_extent_size=1024*1024*1024, vg_free_count=7) - patched_get_common_vg.return_value = vg - - - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ssd, hdd] - result = filestore.MixedType.with_auto_devices(args, devices).computed['osds'][0] - assert result['journal']['path'] == 'vg: fast' - assert result['journal']['percentage'] == 71 - assert result['journal']['human_readable_size'] == '5.00 GB' - - @patch('ceph_volume.api.lvm.get_device_vgs') - def test_no_common_vg(self, patched_get_device_vgs, volumes, fakedevice, factory, conf_ceph): - patched_get_device_vgs.side_effect = lambda x: [lvm.VolumeGroup(vg_name='{}'.format(x[-1]), vg_tags='')] - ssd1 = fakedevice( - used_by_ceph=False, is_lvm_member=True, rotational=False, sys_api=dict(size=6073740000) - ) - ssd2 = fakedevice( - used_by_ceph=False, is_lvm_member=True, rotational=False, sys_api=dict(size=6073740000) - ) - hdd = fakedevice(used_by_ceph=False, is_lvm_member=False, rotational=True, sys_api=dict(size=6073740000)) - - conf_ceph(get_safe=lambda *a: '5120') - args = factory(filtered_devices=[], osds_per_device=1, - journal_size=None, osd_ids=[]) - devices = [ssd1, ssd2, hdd] - with pytest.raises(RuntimeError) as error: - filestore.MixedType.with_auto_devices(args, devices) - assert 'Could not find a common VG between devices' in str(error.value) - - def test_ssd_device_fails_multiple_osds(self, stub_vgs, fakedevice, factory, conf_ceph): - conf_ceph(get_safe=lambda *a: '15120') - args = factory(filtered_devices=[], osds_per_device=2, - journal_size=None, osd_ids=[]) - devices = [ - fakedevice(is_lvm_member=False, rotational=False, sys_api=dict(size=16073740000)), - fakedevice(is_lvm_member=False, rotational=True, sys_api=dict(size=16073740000)) - ] - with pytest.raises(RuntimeError) as error: - filestore.MixedType.with_auto_devices(args, devices) - msg = "Not enough space in fast devices (14.97 GB) to create 2 x 14.77 GB journal LV" - assert msg in str(error.value) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/strategies/test_validate.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ -import pytest -from ceph_volume.util import disk -from ceph_volume.devices.lvm.strategies import validators - - -class TestMinimumDeviceSize(object): - - def test_size_is_larger_than_5gb(self, fakedevice): - devices = [fakedevice(sys_api=dict(size=6073740000))] - assert validators.minimum_device_size(devices) is None - - def test_size_is_smaller_than_5gb(self, fakedevice): - devices = [fakedevice(sys_api=dict(size=1073740000))] - with pytest.raises(RuntimeError) as error: - validators.minimum_device_size(devices) - msg = "LVs would be smaller than 5GB" - assert msg in str(error.value) - - def test_large_device_multiple_osds_fails(self, fakedevice): - devices = [fakedevice(sys_api=dict(size=6073740000))] - with pytest.raises(RuntimeError) as error: - validators.minimum_device_size( - devices, osds_per_device=4 - ) - msg = "LVs would be smaller than 5GB" - assert msg in str(error.value) - - -class TestMinimumCollocatedDeviceSize(object): - - def setup(self): - self.journal_size = disk.Size(gb=5) - - def test_size_is_larger_than_5gb_large_journal(self, fakedevice): - devices = [fakedevice(sys_api=dict(size=6073740000))] - assert validators.minimum_device_collocated_size(devices, disk.Size(mb=1)) is None - - def test_size_is_larger_than_5gb_large_journal_fails(self, fakedevice): - devices = [fakedevice(sys_api=dict(size=1073740000))] - with pytest.raises(RuntimeError) as error: - validators.minimum_device_collocated_size(devices, self.journal_size) - msg = "LVs would be smaller than 5GB" - assert msg in str(error.value) - - def test_large_device_multiple_osds_fails(self, fakedevice): - devices = [fakedevice(sys_api=dict(size=16073740000))] - with pytest.raises(RuntimeError) as error: - validators.minimum_device_collocated_size( - devices, self.journal_size, osds_per_device=3 - ) - msg = "LVs would be smaller than 5GB" - assert msg in str(error.value) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,4 +1,5 @@ import pytest +from copy import deepcopy from ceph_volume.devices.lvm import activate from ceph_volume.api import lvm as api from ceph_volume.tests.conftest import Capture @@ -22,34 +23,42 @@ # test the negative side effect with an actual functional run, so we must # setup a perfect scenario for this test to check it can really work # with/without osd_id - def test_no_osd_id_matches_fsid(self, is_root, volumes, monkeypatch, capture): - FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=1234") + def test_no_osd_id_matches_fsid(self, is_root, monkeypatch, capture): + FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', + lv_tags="ceph.osd_fsid=1234") + volumes = [] volumes.append(FooVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: volumes) monkeypatch.setattr(activate, 'activate_filestore', capture) args = Args(osd_id=None, osd_fsid='1234', filestore=True) activate.Activate([]).activate(args) assert capture.calls[0]['args'][0] == [FooVolume] - def test_no_osd_id_matches_fsid_bluestore(self, is_root, volumes, monkeypatch, capture): - FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=1234") + def test_no_osd_id_matches_fsid_bluestore(self, is_root, monkeypatch, capture): + FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', + lv_tags="ceph.osd_fsid=1234") + volumes = [] volumes.append(FooVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: volumes) monkeypatch.setattr(activate, 'activate_bluestore', capture) args = Args(osd_id=None, osd_fsid='1234', bluestore=True) activate.Activate([]).activate(args) assert capture.calls[0]['args'][0] == [FooVolume] - def test_no_osd_id_no_matching_fsid(self, is_root, volumes, monkeypatch, capture): - FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=11234") + def test_no_osd_id_no_matching_fsid(self, is_root, monkeypatch, capture): + FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', + lv_tags="ceph.osd_fsid=1111") + volumes = [] volumes.append(FooVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: []) + monkeypatch.setattr(api, 'get_first_lv', lambda **kwargs: []) monkeypatch.setattr(activate, 'activate_filestore', capture) - args = Args(osd_id=None, osd_fsid='1234') + + args = Args(osd_id=None, osd_fsid='2222') with pytest.raises(RuntimeError): activate.Activate([]).activate(args) - def test_filestore_no_systemd(self, is_root, volumes, monkeypatch, capture): + def test_filestore_no_systemd(self, is_root, monkeypatch, capture): monkeypatch.setattr('ceph_volume.configuration.load', lambda: None) fake_enable = Capture() fake_start_osd = Capture() @@ -70,16 +79,21 @@ DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/journal,ceph.journal_uuid=000,ceph.type=data,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_uuid='001', + lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/" + \ + "journal,ceph.journal_uuid=000,ceph.type=data," + \ + "ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) volumes.append(JournalVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + args = Args(osd_id=None, osd_fsid='1234', no_systemd=True, filestore=True) activate.Activate([]).activate(args) assert fake_enable.calls == [] assert fake_start_osd.calls == [] - def test_filestore_no_systemd_autodetect(self, is_root, volumes, monkeypatch, capture): + def test_filestore_no_systemd_autodetect(self, is_root, monkeypatch, capture): monkeypatch.setattr('ceph_volume.configuration.load', lambda: None) fake_enable = Capture() fake_start_osd = Capture() @@ -100,16 +114,22 @@ DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/journal,ceph.journal_uuid=000,ceph.type=data,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_uuid='001', + lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/" + \ + "journal,ceph.journal_uuid=000,ceph.type=data," + \ + "ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) volumes.append(JournalVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - args = Args(osd_id=None, osd_fsid='1234', no_systemd=True, filestore=True, auto_detect_objectstore=True) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + + args = Args(osd_id=None, osd_fsid='1234', no_systemd=True, + filestore=True, auto_detect_objectstore=True) activate.Activate([]).activate(args) assert fake_enable.calls == [] assert fake_start_osd.calls == [] - def test_filestore_systemd_autodetect(self, is_root, volumes, monkeypatch, capture): + def test_filestore_systemd_autodetect(self, is_root, monkeypatch, capture): fake_enable = Capture() fake_start_osd = Capture() monkeypatch.setattr('ceph_volume.configuration.load', lambda: None) @@ -130,16 +150,22 @@ DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/journal,ceph.journal_uuid=000,ceph.type=data,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_uuid='001', + lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/" + \ + "journal,ceph.journal_uuid=000,ceph.type=data," + \ + "ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) volumes.append(JournalVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, filestore=True, auto_detect_objectstore=False) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + + args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, + filestore=True, auto_detect_objectstore=False) activate.Activate([]).activate(args) assert fake_enable.calls != [] assert fake_start_osd.calls != [] - def test_filestore_systemd(self, is_root, volumes, monkeypatch, capture): + def test_filestore_systemd(self, is_root, monkeypatch, capture): fake_enable = Capture() fake_start_osd = Capture() monkeypatch.setattr('ceph_volume.configuration.load', lambda: None) @@ -160,16 +186,22 @@ DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/journal,ceph.journal_uuid=000,ceph.type=data,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_uuid='001', + lv_tags="ceph.cluster_name=ceph,ceph.journal_device=/dev/vg/" + \ + "journal,ceph.journal_uuid=000,ceph.type=data," + \ + "ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) volumes.append(JournalVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, filestore=True) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + + args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, + filestore=True) activate.Activate([]).activate(args) assert fake_enable.calls != [] assert fake_start_osd.calls != [] - def test_bluestore_no_systemd(self, is_root, volumes, monkeypatch, capture): + def test_bluestore_no_systemd(self, is_root, monkeypatch, capture): fake_enable = Capture() fake_start_osd = Capture() monkeypatch.setattr('ceph_volume.util.system.path_is_mounted', lambda *a, **kw: True) @@ -180,15 +212,18 @@ DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000,ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000," + \ + "ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + args = Args(osd_id=None, osd_fsid='1234', no_systemd=True, bluestore=True) activate.Activate([]).activate(args) assert fake_enable.calls == [] assert fake_start_osd.calls == [] - def test_bluestore_systemd(self, is_root, volumes, monkeypatch, capture): + def test_bluestore_systemd(self, is_root, monkeypatch, capture): fake_enable = Capture() fake_start_osd = Capture() monkeypatch.setattr('ceph_volume.util.system.path_is_mounted', lambda *a, **kw: True) @@ -199,15 +234,19 @@ DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000,ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000," + \ + "ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, bluestore=True) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + + args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, + bluestore=True) activate.Activate([]).activate(args) assert fake_enable.calls != [] assert fake_start_osd.calls != [] - def test_bluestore_no_systemd_autodetect(self, is_root, volumes, monkeypatch, capture): + def test_bluestore_no_systemd_autodetect(self, is_root, monkeypatch, capture): fake_enable = Capture() fake_start_osd = Capture() monkeypatch.setattr('ceph_volume.util.system.path_is_mounted', lambda *a, **kw: True) @@ -218,29 +257,39 @@ DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,,ceph.block_uuid=000,ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_tags="ceph.cluster_name=ceph,,ceph.block_uuid=000," + \ + "ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - args = Args(osd_id=None, osd_fsid='1234', no_systemd=True, bluestore=True, auto_detect_objectstore=True) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + + args = Args(osd_id=None, osd_fsid='1234', no_systemd=True, + bluestore=True, auto_detect_objectstore=True) activate.Activate([]).activate(args) assert fake_enable.calls == [] assert fake_start_osd.calls == [] - def test_bluestore_systemd_autodetect(self, is_root, volumes, monkeypatch, capture): + def test_bluestore_systemd_autodetect(self, is_root, monkeypatch, capture): fake_enable = Capture() fake_start_osd = Capture() - monkeypatch.setattr('ceph_volume.util.system.path_is_mounted', lambda *a, **kw: True) - monkeypatch.setattr('ceph_volume.util.system.chown', lambda *a, **kw: True) + monkeypatch.setattr('ceph_volume.util.system.path_is_mounted', + lambda *a, **kw: True) + monkeypatch.setattr('ceph_volume.util.system.chown', lambda *a, **kw: + True) monkeypatch.setattr('ceph_volume.process.run', lambda *a, **kw: True) monkeypatch.setattr(activate.systemctl, 'enable_volume', fake_enable) monkeypatch.setattr(activate.systemctl, 'start_osd', fake_start_osd) DataVolume = api.Volume( lv_name='data', lv_path='/dev/vg/data', - lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000,ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + lv_tags="ceph.cluster_name=ceph,,ceph.journal_uuid=000," + \ + "ceph.type=block,ceph.osd_id=0,ceph.osd_fsid=1234") + volumes = [] volumes.append(DataVolume) - monkeypatch.setattr(api, 'Volumes', lambda: volumes) - args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, bluestore=True, auto_detect_objectstore=False) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: deepcopy(volumes)) + + args = Args(osd_id=None, osd_fsid='1234', no_systemd=False, + bluestore=True, auto_detect_objectstore=False) activate.Activate([]).activate(args) assert fake_enable.calls != [] assert fake_start_osd.calls != [] diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_batch.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,5 +1,12 @@ import pytest +import json +import random + +from argparse import ArgumentError +from mock import MagicMock, patch + from ceph_volume.devices.lvm import batch +from ceph_volume.util import arg_validators class TestBatch(object): @@ -8,144 +15,266 @@ b = batch.Batch([]) b.main() - def test_get_devices(self, monkeypatch): - return_value = { - '/dev/vdd': { - 'removable': '0', - 'vendor': '0x1af4', - 'model': '', - 'sas_address': '', - 'sas_device_handle': '', - 'sectors': 0, - 'size': 21474836480.0, - 'support_discard': '', - 'partitions': { - 'vdd1': { - 'start': '2048', - 'sectors': '41940959', - 'sectorsize': 512, - 'size': '20.00 GB' - } - }, - 'rotational': '1', - 'scheduler_mode': 'mq-deadline', - 'sectorsize': '512', - 'human_readable_size': '20.00 GB', - 'path': '/dev/vdd' - }, - '/dev/vdf': { - 'removable': '0', - 'vendor': '0x1af4', - 'model': '', - 'sas_address': '', - 'sas_device_handle': '', - 'sectors': 0, - 'size': 21474836480.0, - 'support_discard': '', - 'partitions': {}, - 'rotational': '1', - 'scheduler_mode': 'mq-deadline', - 'sectorsize': '512', - 'human_readable_size': '20.00 GB', - 'path': '/dev/vdf' - } - } - monkeypatch.setattr('ceph_volume.devices.lvm.batch.disk.get_devices', - lambda: return_value) - b = batch.Batch([]) - result = b.get_devices().strip() - assert result == '* /dev/vdf 20.00 GB rotational' - def test_disjoint_device_lists(self, factory): device1 = factory(used_by_ceph=False, available=True, abspath="/dev/sda") device2 = factory(used_by_ceph=False, available=True, abspath="/dev/sdb") - b = batch.Batch([]) - b.args.devices = [device1, device2] - b.args.db_devices = [device2] - b._filter_devices() + devices = [device1, device2] + db_devices = [device2] with pytest.raises(Exception) as disjoint_ex: - b._ensure_disjoint_device_lists() + batch.ensure_disjoint_device_lists(devices, db_devices) assert 'Device lists are not disjoint' in str(disjoint_ex.value) + @patch('ceph_volume.util.arg_validators.Device') + def test_reject_partition(self, mocked_device): + mocked_device.return_value = MagicMock( + is_partition=True, + has_gpt_headers=False, + ) + with pytest.raises(ArgumentError): + arg_validators.ValidBatchDevice()('foo') -class TestFilterDevices(object): + @pytest.mark.parametrize('format_', ['pretty', 'json', 'json-pretty']) + def test_report(self, format_, factory, conf_ceph_stub, mock_device_generator): + # just ensure reporting works + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + devs = [mock_device_generator() for _ in range(5)] + args = factory(data_slots=1, + osds_per_device=1, + osd_ids=[], + report=True, + format=format_, + devices=devs, + db_devices=[], + wal_devices=[], + bluestore=True, + block_db_size="1G", + dmcrypt=True, + ) + b = batch.Batch([]) + plan = b.get_plan(args) + b.args = args + b.report(plan) - def test_filter_used_device(self, factory): - device1 = factory(used_by_ceph=True, abspath="/dev/sda") - args = factory(devices=[device1], filtered_devices={}) - result, filtered_devices = batch.filter_devices(args) - assert not result - assert device1.abspath in filtered_devices - - def test_has_unused_devices(self, factory): - device1 = factory( - used_by_ceph=False, - abspath="/dev/sda", - rotational=False, - is_lvm_member=False - ) - args = factory(devices=[device1], filtered_devices={}) - result, filtered_devices = batch.filter_devices(args) - assert device1 in result - assert not filtered_devices - - def test_filter_device_used_as_a_journal(self, factory): - hdd1 = factory( - used_by_ceph=True, - abspath="/dev/sda", - rotational=True, - is_lvm_member=True, - ) - lv = factory(tags={"ceph.type": "journal"}) - ssd1 = factory( - used_by_ceph=False, - abspath="/dev/nvme0n1", - rotational=False, - is_lvm_member=True, - lvs=[lv], - ) - args = factory(devices=[hdd1, ssd1], filtered_devices={}) - result, filtered_devices = batch.filter_devices(args) - assert not result - assert ssd1.abspath in filtered_devices - - def test_last_device_is_not_filtered(self, factory): - hdd1 = factory( - used_by_ceph=True, - abspath="/dev/sda", - rotational=True, - is_lvm_member=True, - ) - ssd1 = factory( - used_by_ceph=False, - abspath="/dev/nvme0n1", - rotational=False, - is_lvm_member=False, - ) - args = factory(devices=[hdd1, ssd1], filtered_devices={}) - result, filtered_devices = batch.filter_devices(args) - assert result - assert len(filtered_devices) == 1 - - def test_no_auto_fails_on_unavailable_device(self, factory): - hdd1 = factory( - used_by_ceph=False, - abspath="/dev/sda", - rotational=True, - is_lvm_member=False, - available=True - ) - ssd1 = factory( - used_by_ceph=True, - abspath="/dev/nvme0n1", - rotational=False, - is_lvm_member=True, - available=False - ) - args = factory(devices=[hdd1], db_devices=[ssd1], filtered_devices={}, - yes=True) + @pytest.mark.parametrize('format_', ['json', 'json-pretty']) + def test_json_report_valid_empty(self, format_, factory, conf_ceph_stub, mock_device_generator): + # ensure json reports are valid when empty + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + devs = [] + args = factory(data_slots=1, + osds_per_device=1, + osd_ids=[], + report=True, + format=format_, + devices=devs, + db_devices=[], + wal_devices=[], + bluestore=True, + block_db_size="1G", + dmcrypt=True, + ) + b = batch.Batch([]) + plan = b.get_plan(args) + b.args = args + report = b._create_report(plan) + json.loads(report) + + @pytest.mark.parametrize('format_', ['json', 'json-pretty']) + def test_json_report_valid_empty_unavailable_fast(self, format_, factory, conf_ceph_stub, mock_device_generator): + # ensure json reports are valid when empty + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + devs = [mock_device_generator() for _ in range(5)] + fast_devs = [mock_device_generator()] + fast_devs[0].available_lvm = False + args = factory(data_slots=1, + osds_per_device=1, + osd_ids=[], + report=True, + format=format_, + devices=devs, + db_devices=fast_devs, + wal_devices=[], + bluestore=True, + block_db_size="1G", + dmcrypt=True, + ) + b = batch.Batch([]) + plan = b.get_plan(args) + b.args = args + report = b._create_report(plan) + json.loads(report) + + + @pytest.mark.parametrize('format_', ['json', 'json-pretty']) + def test_json_report_valid_empty_unavailable_very_fast(self, format_, factory, conf_ceph_stub, mock_device_generator): + # ensure json reports are valid when empty + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + devs = [mock_device_generator() for _ in range(5)] + fast_devs = [mock_device_generator()] + very_fast_devs = [mock_device_generator()] + very_fast_devs[0].available_lvm = False + args = factory(data_slots=1, + osds_per_device=1, + osd_ids=[], + report=True, + format=format_, + devices=devs, + db_devices=fast_devs, + wal_devices=very_fast_devs, + bluestore=True, + block_db_size="1G", + dmcrypt=True, + ) + b = batch.Batch([]) + plan = b.get_plan(args) + b.args = args + report = b._create_report(plan) + json.loads(report) + + @pytest.mark.parametrize('rota', [0, 1]) + def test_batch_sort_full(self, factory, rota): + device1 = factory(used_by_ceph=False, available=True, rotational=rota, abspath="/dev/sda") + device2 = factory(used_by_ceph=False, available=True, rotational=rota, abspath="/dev/sdb") + device3 = factory(used_by_ceph=False, available=True, rotational=rota, abspath="/dev/sdc") + devices = [device1, device2, device3] + args = factory(report=True, + devices=devices, + filestore=False, + ) + b = batch.Batch([]) + b.args = args + b._sort_rotational_disks() + assert len(b.args.devices) == 3 + + @pytest.mark.parametrize('objectstore', ['bluestore', 'filestore']) + def test_batch_sort_mixed(self, factory, objectstore): + device1 = factory(used_by_ceph=False, available=True, rotational=1, abspath="/dev/sda") + device2 = factory(used_by_ceph=False, available=True, rotational=1, abspath="/dev/sdb") + device3 = factory(used_by_ceph=False, available=True, rotational=0, abspath="/dev/sdc") + devices = [device1, device2, device3] + args = factory(report=True, + devices=devices, + filestore=False if objectstore == 'bluestore' else True, + ) b = batch.Batch([]) b.args = args - with pytest.raises(RuntimeError) as ex: - b._filter_devices() - assert '1 devices were filtered in non-interactive mode, bailing out' in str(ex.value) + b._sort_rotational_disks() + assert len(b.args.devices) == 2 + if objectstore == 'bluestore': + assert len(b.args.db_devices) == 1 + else: + assert len(b.args.journal_devices) == 1 + + def test_get_physical_osds_return_len(self, factory, + mock_devices_available, + conf_ceph_stub, + osds_per_device): + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + args = factory(data_slots=1, osds_per_device=osds_per_device, + osd_ids=[], dmcrypt=False) + osds = batch.get_physical_osds(mock_devices_available, args) + assert len(osds) == len(mock_devices_available) * osds_per_device + + def test_get_physical_osds_rel_size(self, factory, + mock_devices_available, + conf_ceph_stub, + osds_per_device): + args = factory(data_slots=1, osds_per_device=osds_per_device, + osd_ids=[], dmcrypt=False) + osds = batch.get_physical_osds(mock_devices_available, args) + for osd in osds: + assert osd.data[1] == 1.0 / osds_per_device + + def test_get_physical_osds_abs_size(self, factory, + mock_devices_available, + conf_ceph_stub, + osds_per_device): + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + args = factory(data_slots=1, osds_per_device=osds_per_device, + osd_ids=[], dmcrypt=False) + osds = batch.get_physical_osds(mock_devices_available, args) + for osd, dev in zip(osds, mock_devices_available): + assert osd.data[2] == int(dev.vg_size[0] / osds_per_device) + + def test_get_physical_osds_osd_ids(self, factory, + mock_devices_available, + osds_per_device): + pass + + def test_get_physical_fast_allocs_length(self, factory, + conf_ceph_stub, + mock_devices_available): + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + args = factory(block_db_slots=None, get_block_db_size=None) + fast = batch.get_physical_fast_allocs(mock_devices_available, + 'block_db', 2, 2, args) + assert len(fast) == 2 + + @pytest.mark.parametrize('occupied_prior', range(7)) + @pytest.mark.parametrize('slots,num_devs', + [l for sub in [list(zip([x]*x, range(1, x + 1))) for x in range(1,7)] for l in sub]) + def test_get_physical_fast_allocs_length_existing(self, + num_devs, + slots, + occupied_prior, + factory, + conf_ceph_stub, + mock_device_generator): + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + occupied_prior = min(occupied_prior, slots) + devs = [mock_device_generator() for _ in range(num_devs)] + already_assigned = 0 + while already_assigned < occupied_prior: + dev_i = random.randint(0, num_devs - 1) + dev = devs[dev_i] + if len(dev.lvs) < occupied_prior: + dev.lvs.append('foo') + dev.path = '/dev/bar' + already_assigned = sum([len(d.lvs) for d in devs]) + args = factory(block_db_slots=None, get_block_db_size=None) + expected_num_osds = max(len(devs) * slots - occupied_prior, 0) + fast = batch.get_physical_fast_allocs(devs, + 'block_db', slots, + expected_num_osds, args) + assert len(fast) == expected_num_osds + expected_assignment_on_used_devices = sum([slots - len(d.lvs) for d in devs if len(d.lvs) > 0]) + assert len([f for f in fast if f[0] == '/dev/bar']) == expected_assignment_on_used_devices + assert len([f for f in fast if f[0] != '/dev/bar']) == expected_num_osds - expected_assignment_on_used_devices + + def test_get_lvm_osds_return_len(self, factory, + mock_lv_device_generator, + conf_ceph_stub, + osds_per_device): + conf_ceph_stub('[global]\nfsid=asdf-lkjh') + args = factory(data_slots=1, osds_per_device=osds_per_device, + osd_ids=[], dmcrypt=False) + mock_lvs = [mock_lv_device_generator()] + osds = batch.get_lvm_osds(mock_lvs, args) + assert len(osds) == 1 + + +class TestBatchOsd(object): + + def test_osd_class_ctor(self): + osd = batch.Batch.OSD('/dev/data', 1, '5G', 1, 1, None) + assert osd.data == batch.Batch.OSD.VolSpec('/dev/data', + 1, + '5G', + 1, + 'data') + def test_add_fast(self): + osd = batch.Batch.OSD('/dev/data', 1, '5G', 1, 1, None) + osd.add_fast_device('/dev/db', 1, '5G', 1, 'block_db') + assert osd.fast == batch.Batch.OSD.VolSpec('/dev/db', + 1, + '5G', + 1, + 'block_db') + + def test_add_very_fast(self): + osd = batch.Batch.OSD('/dev/data', 1, '5G', 1, 1, None) + osd.add_very_fast_device('/dev/wal', 1, '5G', 1) + assert osd.very_fast == batch.Batch.OSD.VolSpec('/dev/wal', + 1, + '5G', + 1, + 'block_wal') diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_common.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_common.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_common.py 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_common.py 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,8 @@ +from ceph_volume.devices.lvm import common + + +class TestCommon(object): + + def test_get_default_args_smoke(self): + default_args = common.get_default_args() + assert default_args diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py 2021-03-15 17:46:20.000000000 +0000 @@ -62,36 +62,35 @@ class TestList(object): - def test_empty_full_json_zero_exit_status(self, is_root, volumes, - factory, capsys): + def test_empty_full_json_zero_exit_status(self, is_root,factory,capsys): args = factory(format='json', device=None) lvm.listing.List([]).list(args) stdout, stderr = capsys.readouterr() assert stdout == '{}\n' - def test_empty_device_json_zero_exit_status(self, is_root, volumes, - factory, capsys): + def test_empty_device_json_zero_exit_status(self, is_root,factory,capsys): args = factory(format='json', device='/dev/sda1') lvm.listing.List([]).list(args) stdout, stderr = capsys.readouterr() assert stdout == '{}\n' - def test_empty_full_zero_exit_status(self, is_root, volumes, factory): + def test_empty_full_zero_exit_status(self, is_root, factory): args = factory(format='pretty', device=None) with pytest.raises(SystemExit): lvm.listing.List([]).list(args) - def test_empty_device_zero_exit_status(self, is_root, volumes, factory): + def test_empty_device_zero_exit_status(self, is_root, factory): args = factory(format='pretty', device='/dev/sda1') with pytest.raises(SystemExit): lvm.listing.List([]).list(args) class TestFullReport(object): - def test_no_ceph_lvs(self, volumes, monkeypatch): + def test_no_ceph_lvs(self, monkeypatch): # ceph lvs are detected by looking into its tags osd = api.Volume(lv_name='volume1', lv_path='/dev/VolGroup/lv', lv_tags={}) + volumes = [] volumes.append(osd) monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: volumes) @@ -99,23 +98,22 @@ result = lvm.listing.List([]).full_report() assert result == {} - def test_ceph_data_lv_reported(self, pvolumes, volumes, monkeypatch): + def test_ceph_data_lv_reported(self, monkeypatch): tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data' pv = api.PVolume(pv_name='/dev/sda1', pv_tags={}, pv_uuid="0000", vg_name='VolGroup', lv_uuid="aaaa") osd = api.Volume(lv_name='volume1', lv_uuid='y', lv_tags=tags, lv_path='/dev/VolGroup/lv', vg_name='VolGroup') - pvolumes.append(pv) + volumes = [] volumes.append(osd) - monkeypatch.setattr(lvm.listing.api, 'get_pvs', lambda **kwargs: - pvolumes) + monkeypatch.setattr(lvm.listing.api, 'get_first_pv', lambda **kwargs: pv) monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: volumes) result = lvm.listing.List([]).full_report() assert result['0'][0]['name'] == 'volume1' - def test_ceph_journal_lv_reported(self, pvolumes, volumes, monkeypatch): + def test_ceph_journal_lv_reported(self, monkeypatch): tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data' journal_tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=journal' pv = api.PVolume(pv_name='/dev/sda1', pv_tags={}, pv_uuid="0000", @@ -125,11 +123,10 @@ journal = api.Volume( lv_name='journal', lv_uuid='x', lv_tags=journal_tags, lv_path='/dev/VolGroup/journal', vg_name='VolGroup') - pvolumes.append(pv) + volumes = [] volumes.append(osd) volumes.append(journal) - monkeypatch.setattr(lvm.listing.api, 'get_pvs', lambda **kwargs: - pvolumes) + monkeypatch.setattr(lvm.listing.api,'get_first_pv',lambda **kwargs:pv) monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: volumes) @@ -137,13 +134,14 @@ assert result['0'][0]['name'] == 'volume1' assert result['0'][1]['name'] == 'journal' - def test_ceph_wal_lv_reported(self, volumes, monkeypatch): + def test_ceph_wal_lv_reported(self, monkeypatch): tags = 'ceph.osd_id=0,ceph.wal_uuid=x,ceph.type=data' wal_tags = 'ceph.osd_id=0,ceph.wal_uuid=x,ceph.type=wal' osd = api.Volume(lv_name='volume1', lv_uuid='y', lv_tags=tags, lv_path='/dev/VolGroup/lv', vg_name='VolGroup') wal = api.Volume(lv_name='wal', lv_uuid='x', lv_tags=wal_tags, lv_path='/dev/VolGroup/wal', vg_name='VolGroup') + volumes = [] volumes.append(osd) volumes.append(wal) monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: @@ -170,7 +168,7 @@ class TestSingleReport(object): - def test_not_a_ceph_lv(self, volumes, monkeypatch): + def test_not_a_ceph_lv(self, monkeypatch): # ceph lvs are detected by looking into its tags lv = api.Volume(lv_name='lv', lv_tags={}, lv_path='/dev/VolGroup/lv', vg_name='VolGroup') @@ -180,14 +178,13 @@ result = lvm.listing.List([]).single_report('VolGroup/lv') assert result == {} - def test_report_a_ceph_lv(self, pvolumes, volumes, monkeypatch): + def test_report_a_ceph_lv(self, monkeypatch): # ceph lvs are detected by looking into its tags tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data' lv = api.Volume(lv_name='lv', vg_name='VolGroup', lv_uuid='aaaa', lv_path='/dev/VolGroup/lv', lv_tags=tags) + volumes = [] volumes.append(lv) - monkeypatch.setattr(lvm.listing.api, 'get_pvs', lambda **kwargs: - pvolumes) monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: volumes) @@ -211,17 +208,23 @@ assert result['0'][0]['type'] == 'journal' assert result['0'][0]['path'] == '/dev/sda1' - def test_report_a_ceph_lv_with_devices(self, volumes, pvolumes, monkeypatch): + def test_report_a_ceph_lv_with_devices(self, monkeypatch): + pvolumes = [] + tags = 'ceph.osd_id=0,ceph.type=data' pv1 = api.PVolume(vg_name="VolGroup", pv_name='/dev/sda1', pv_uuid='', pv_tags={}, lv_uuid="aaaa") pv2 = api.PVolume(vg_name="VolGroup", pv_name='/dev/sdb1', pv_uuid='', pv_tags={}, lv_uuid="aaaa") - lv = api.Volume(lv_name='lv', vg_name='VolGroup',lv_uuid='aaaa', - lv_path='/dev/VolGroup/lv', lv_tags=tags) pvolumes.append(pv1) pvolumes.append(pv2) + + + volumes = [] + lv = api.Volume(lv_name='lv', vg_name='VolGroup',lv_uuid='aaaa', + lv_path='/dev/VolGroup/lv', lv_tags=tags) volumes.append(lv) + monkeypatch.setattr(lvm.listing.api, 'get_pvs', lambda **kwargs: pvolumes) monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: @@ -239,11 +242,11 @@ assert result['0'][0]['path'] == '/dev/VolGroup/lv' assert result['0'][0]['devices'] == ['/dev/sda1', '/dev/sdb1'] - def test_report_a_ceph_lv_with_no_matching_devices(self, volumes, - monkeypatch): + def test_report_a_ceph_lv_with_no_matching_devices(self, monkeypatch): tags = 'ceph.osd_id=0,ceph.type=data' lv = api.Volume(lv_name='lv', vg_name='VolGroup', lv_uuid='aaaa', lv_path='/dev/VolGroup/lv', lv_tags=tags) + volumes = [] volumes.append(lv) monkeypatch.setattr(lvm.listing.api, 'get_lvs', lambda **kwargs: volumes) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,5 +1,6 @@ import pytest from ceph_volume.devices import lvm +from ceph_volume.api import lvm as api from mock.mock import patch, Mock @@ -8,7 +9,7 @@ def test_main_spits_help_with_no_arguments(self, capsys): lvm.main.LVM([]).main() stdout, stderr = capsys.readouterr() - assert 'Use LVM and LVM-based technologies like dmcache to deploy' in stdout + assert 'Use LVM and LVM-based technologies to deploy' in stdout def test_main_shows_activate_subcommands(self, capsys): lvm.main.LVM([]).main() @@ -115,19 +116,47 @@ expected = 'skipping {}, it is already prepared'.format('/dev/sdfoo') assert expected in str(error.value) -class TestGetJournalLV(object): - - @pytest.mark.parametrize('arg', ['', '///', None, '/dev/sda1']) - def test_no_journal_on_invalid_path(self, monkeypatch, arg): - monkeypatch.setattr(lvm.prepare.api, 'get_lv', lambda **kw: False) - prepare = lvm.prepare.Prepare([]) - assert prepare.get_lv(arg) is None - - def test_no_journal_lv_found(self, monkeypatch): - # patch it with 0 so we know we are getting to get_lv - monkeypatch.setattr(lvm.prepare.api, 'get_lv', lambda **kw: 0) - prepare = lvm.prepare.Prepare([]) - assert prepare.get_lv('vg/lv') == 0 + def test_setup_device_device_name_is_none(self): + result = lvm.prepare.Prepare([]).setup_device(device_type='data', device_name=None, tags={'ceph.type': 'data'}, size=0, slots=None) + assert result == ('', '', {'ceph.type': 'data'}) + + @patch('ceph_volume.api.lvm.Volume.set_tags') + @patch('ceph_volume.devices.lvm.prepare.api.get_first_lv') + def test_setup_device_lv_passed(self, m_get_first_lv, m_set_tags): + fake_volume = api.Volume(lv_name='lv_foo', lv_path='/fake-path', vg_name='vg_foo', lv_tags='', lv_uuid='fake-uuid') + m_get_first_lv.return_value = fake_volume + result = lvm.prepare.Prepare([]).setup_device(device_type='data', device_name='vg_foo/lv_foo', tags={'ceph.type': 'data'}, size=0, slots=None) + + assert result == ('/fake-path', 'fake-uuid', {'ceph.type': 'data', + 'ceph.vdo': '0', + 'ceph.data_uuid': 'fake-uuid', + 'ceph.data_device': '/fake-path'}) + + @patch('ceph_volume.devices.lvm.prepare.api.create_lv') + @patch('ceph_volume.api.lvm.Volume.set_tags') + @patch('ceph_volume.util.disk.is_device') + def test_setup_device_device_passed(self, m_is_device, m_set_tags, m_create_lv): + fake_volume = api.Volume(lv_name='lv_foo', lv_path='/fake-path', vg_name='vg_foo', lv_tags='', lv_uuid='fake-uuid') + m_is_device.return_value = True + m_create_lv.return_value = fake_volume + result = lvm.prepare.Prepare([]).setup_device(device_type='data', device_name='/dev/sdx', tags={'ceph.type': 'data'}, size=0, slots=None) + + assert result == ('/fake-path', 'fake-uuid', {'ceph.type': 'data', + 'ceph.vdo': '0', + 'ceph.data_uuid': 'fake-uuid', + 'ceph.data_device': '/fake-path'}) + + @patch('ceph_volume.devices.lvm.prepare.Prepare.get_ptuuid') + @patch('ceph_volume.devices.lvm.prepare.api.get_first_lv') + def test_setup_device_partition_passed(self, m_get_first_lv, m_get_ptuuid): + m_get_first_lv.side_effect = ValueError() + m_get_ptuuid.return_value = 'fake-uuid' + result = lvm.prepare.Prepare([]).setup_device(device_type='data', device_name='/dev/sdx', tags={'ceph.type': 'data'}, size=0, slots=None) + + assert result == ('/dev/sdx', 'fake-uuid', {'ceph.type': 'data', + 'ceph.vdo': '0', + 'ceph.data_uuid': 'fake-uuid', + 'ceph.data_device': '/dev/sdx'}) class TestActivate(object): diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_zap.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_zap.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/devices/lvm/test_zap.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/devices/lvm/test_zap.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,92 +1,119 @@ import os import pytest +from copy import deepcopy +from mock.mock import patch, call +from ceph_volume import process from ceph_volume.api import lvm as api from ceph_volume.devices.lvm import zap class TestFindAssociatedDevices(object): - def test_no_lvs_found_that_match_id(self, volumes, monkeypatch, device_info): - monkeypatch.setattr(zap.api, 'Volumes', lambda: volumes) + def test_no_lvs_found_that_match_id(self, monkeypatch, device_info): tags = 'ceph.osd_id=9,ceph.journal_uuid=x,ceph.type=data' - osd = api.Volume( - lv_name='volume1', lv_uuid='y', lv_path='/dev/VolGroup/lv', vg_name='vg', lv_tags=tags) + osd = api.Volume(lv_name='volume1', lv_uuid='y', vg_name='vg', + lv_tags=tags, lv_path='/dev/VolGroup/lv') + volumes = [] volumes.append(osd) + monkeypatch.setattr(zap.api, 'get_lvs', lambda **kwargs: {}) + with pytest.raises(RuntimeError): zap.find_associated_devices(osd_id=10) - def test_no_lvs_found_that_match_fsid(self, volumes, monkeypatch, device_info): - monkeypatch.setattr(zap.api, 'Volumes', lambda: volumes) - tags = 'ceph.osd_id=9,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=data' - osd = api.Volume( - lv_name='volume1', lv_uuid='y', lv_path='/dev/VolGroup/lv', vg_name='vg', lv_tags=tags) + def test_no_lvs_found_that_match_fsid(self, monkeypatch, device_info): + tags = 'ceph.osd_id=9,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,'+\ + 'ceph.type=data' + osd = api.Volume(lv_name='volume1', lv_uuid='y', lv_tags=tags, + vg_name='vg', lv_path='/dev/VolGroup/lv') + volumes = [] volumes.append(osd) + monkeypatch.setattr(zap.api, 'get_lvs', lambda **kwargs: {}) + with pytest.raises(RuntimeError): zap.find_associated_devices(osd_fsid='aaaa-lkjh') - def test_no_lvs_found_that_match_id_fsid(self, volumes, monkeypatch, device_info): - monkeypatch.setattr(zap.api, 'Volumes', lambda: volumes) - tags = 'ceph.osd_id=9,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=data' - osd = api.Volume( - lv_name='volume1', lv_uuid='y', lv_path='/dev/VolGroup/lv', vg_name='vg', lv_tags=tags) + def test_no_lvs_found_that_match_id_fsid(self, monkeypatch, device_info): + tags = 'ceph.osd_id=9,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,'+\ + 'ceph.type=data' + osd = api.Volume(lv_name='volume1', lv_uuid='y', vg_name='vg', + lv_tags=tags, lv_path='/dev/VolGroup/lv') + volumes = [] volumes.append(osd) + monkeypatch.setattr(zap.api, 'get_lvs', lambda **kwargs: {}) + with pytest.raises(RuntimeError): zap.find_associated_devices(osd_id='9', osd_fsid='aaaa-lkjh') - def test_no_ceph_lvs_found(self, volumes, monkeypatch): - monkeypatch.setattr(zap.api, 'Volumes', lambda: volumes) - osd = api.Volume( - lv_name='volume1', lv_uuid='y', lv_path='/dev/VolGroup/lv', lv_tags='') + def test_no_ceph_lvs_found(self, monkeypatch): + osd = api.Volume(lv_name='volume1', lv_uuid='y', lv_tags='', + lv_path='/dev/VolGroup/lv') + volumes = [] volumes.append(osd) + monkeypatch.setattr(zap.api, 'get_lvs', lambda **kwargs: {}) + with pytest.raises(RuntimeError): zap.find_associated_devices(osd_id=100) - def test_lv_is_matched_id(self, volumes, monkeypatch): - monkeypatch.setattr(zap.api, 'Volumes', lambda: volumes) + def test_lv_is_matched_id(self, monkeypatch): tags = 'ceph.osd_id=0,ceph.journal_uuid=x,ceph.type=data' - osd = api.Volume( - lv_name='volume1', lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/lv', lv_tags=tags) + osd = api.Volume(lv_name='volume1', lv_uuid='y', vg_name='', + lv_path='/dev/VolGroup/lv', lv_tags=tags) + volumes = [] volumes.append(osd) + monkeypatch.setattr(zap.api, 'get_lvs', lambda **kw: volumes) + monkeypatch.setattr(process, 'call', lambda x, **kw: ('', '', 0)) + result = zap.find_associated_devices(osd_id='0') assert result[0].abspath == '/dev/VolGroup/lv' - def test_lv_is_matched_fsid(self, volumes, monkeypatch): - monkeypatch.setattr(zap.api, 'Volumes', lambda: volumes) - tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=data' - osd = api.Volume( - lv_name='volume1', lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/lv', lv_tags=tags) + def test_lv_is_matched_fsid(self, monkeypatch): + tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,' +\ + 'ceph.type=data' + osd = api.Volume(lv_name='volume1', lv_uuid='y', vg_name='', + lv_path='/dev/VolGroup/lv', lv_tags=tags) + volumes = [] volumes.append(osd) + monkeypatch.setattr(zap.api, 'get_lvs', lambda **kw: deepcopy(volumes)) + monkeypatch.setattr(process, 'call', lambda x, **kw: ('', '', 0)) + result = zap.find_associated_devices(osd_fsid='asdf-lkjh') assert result[0].abspath == '/dev/VolGroup/lv' - def test_lv_is_matched_id_fsid(self, volumes, monkeypatch): - monkeypatch.setattr(zap.api, 'Volumes', lambda: volumes) - tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=data' - osd = api.Volume( - lv_name='volume1', lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/lv', lv_tags=tags) + def test_lv_is_matched_id_fsid(self, monkeypatch): + tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,' +\ + 'ceph.type=data' + osd = api.Volume(lv_name='volume1', lv_uuid='y', vg_name='', + lv_path='/dev/VolGroup/lv', lv_tags=tags) + volumes = [] volumes.append(osd) + monkeypatch.setattr(zap.api, 'get_lvs', lambda **kw: volumes) + monkeypatch.setattr(process, 'call', lambda x, **kw: ('', '', 0)) + result = zap.find_associated_devices(osd_id='0', osd_fsid='asdf-lkjh') assert result[0].abspath == '/dev/VolGroup/lv' class TestEnsureAssociatedLVs(object): - def test_nothing_is_found(self, volumes): + def test_nothing_is_found(self): + volumes = [] result = zap.ensure_associated_lvs(volumes) assert result == [] - def test_data_is_found(self, volumes): + def test_data_is_found(self): tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=data' osd = api.Volume( lv_name='volume1', lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/data', lv_tags=tags) + volumes = [] volumes.append(osd) result = zap.ensure_associated_lvs(volumes) assert result == ['/dev/VolGroup/data'] - def test_block_is_found(self, volumes): + def test_block_is_found(self): tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=block' osd = api.Volume( lv_name='volume1', lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/block', lv_tags=tags) + volumes = [] volumes.append(osd) result = zap.ensure_associated_lvs(volumes) assert result == ['/dev/VolGroup/block'] @@ -107,26 +134,29 @@ out, err = capsys.readouterr() assert "Zapping successful for OSD: 1" in err - def test_block_and_partition_are_found(self, volumes, monkeypatch): + def test_block_and_partition_are_found(self, monkeypatch): monkeypatch.setattr(zap.disk, 'get_device_from_partuuid', lambda x: '/dev/sdb1') tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=block' osd = api.Volume( lv_name='volume1', lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/block', lv_tags=tags) + volumes = [] volumes.append(osd) result = zap.ensure_associated_lvs(volumes) assert '/dev/sdb1' in result assert '/dev/VolGroup/block' in result - def test_journal_is_found(self, volumes): + def test_journal_is_found(self): tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=journal' osd = api.Volume( lv_name='volume1', lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/lv', lv_tags=tags) + volumes = [] volumes.append(osd) result = zap.ensure_associated_lvs(volumes) assert result == ['/dev/VolGroup/lv'] - def test_multiple_journals_are_found(self, volumes): + def test_multiple_journals_are_found(self): tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=journal' + volumes = [] for i in range(3): osd = api.Volume( lv_name='volume%s' % i, lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/lv%s' % i, lv_tags=tags) @@ -136,8 +166,9 @@ assert '/dev/VolGroup/lv1' in result assert '/dev/VolGroup/lv2' in result - def test_multiple_dbs_are_found(self, volumes): + def test_multiple_dbs_are_found(self): tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.journal_uuid=x,ceph.type=db' + volumes = [] for i in range(3): osd = api.Volume( lv_name='volume%s' % i, lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/lv%s' % i, lv_tags=tags) @@ -147,8 +178,9 @@ assert '/dev/VolGroup/lv1' in result assert '/dev/VolGroup/lv2' in result - def test_multiple_wals_are_found(self, volumes): + def test_multiple_wals_are_found(self): tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.wal_uuid=x,ceph.type=wal' + volumes = [] for i in range(3): osd = api.Volume( lv_name='volume%s' % i, lv_uuid='y', vg_name='', lv_path='/dev/VolGroup/lv%s' % i, lv_tags=tags) @@ -158,7 +190,8 @@ assert '/dev/VolGroup/lv1' in result assert '/dev/VolGroup/lv2' in result - def test_multiple_backing_devs_are_found(self, volumes): + def test_multiple_backing_devs_are_found(self): + volumes = [] for _type in ['journal', 'db', 'wal']: tags = 'ceph.osd_id=0,ceph.osd_fsid=asdf-lkjh,ceph.wal_uuid=x,ceph.type=%s' % _type osd = api.Volume( @@ -169,6 +202,16 @@ assert '/dev/VolGroup/lvwal' in result assert '/dev/VolGroup/lvdb' in result + @patch('ceph_volume.devices.lvm.zap.api.get_lvs') + def test_ensure_associated_lvs(self, m_get_lvs): + zap.ensure_associated_lvs([], lv_tags={'ceph.osd_id': '1'}) + calls = [ + call(tags={'ceph.type': 'journal', 'ceph.osd_id': '1'}), + call(tags={'ceph.type': 'db', 'ceph.osd_id': '1'}), + call(tags={'ceph.type': 'wal', 'ceph.osd_id': '1'}) + ] + m_get_lvs.assert_has_calls(calls, any_order=True) + class TestWipeFs(object): diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-dmcrypt-explicit/test.yml ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-dmcrypt-explicit/test.yml --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-dmcrypt-explicit/test.yml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-dmcrypt-explicit/test.yml 2021-03-15 17:46:20.000000000 +0000 @@ -22,6 +22,8 @@ - hosts: osds become: yes + vars: + external_devices: "{{ '--db-devices' if osd_objectstore == 'bluestore' else '--journal-devices' }}" tasks: - name: zap devices used for OSDs @@ -31,12 +33,12 @@ CEPH_VOLUME_DEBUG: 1 - name: batch create devices again - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" environment: CEPH_VOLUME_DEBUG: 1 - name: ensure batch create is idempotent when all data devices are filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: batch_cmd failed_when: false environment: @@ -49,7 +51,7 @@ - batch_cmd.rc != 0 - name: run batch --report to see if devices get filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: report_cmd failed_when: false environment: diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-explicit/test.yml ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-explicit/test.yml --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-explicit/test.yml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/bluestore/mixed-type-explicit/test.yml 2021-03-15 17:46:20.000000000 +0000 @@ -22,6 +22,8 @@ - hosts: osds become: yes + vars: + external_devices: "{{ '--db-devices' if osd_objectstore == 'bluestore' else '--journal-devices' }}" tasks: - name: zap devices used for OSDs @@ -31,12 +33,12 @@ CEPH_VOLUME_DEBUG: 1 - name: batch create devices again - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" environment: CEPH_VOLUME_DEBUG: 1 - name: ensure batch create is idempotent when all data devices are filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: batch_cmd failed_when: false environment: @@ -49,7 +51,7 @@ - batch_cmd.rc != 0 - name: run batch --report to see if devices get filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: report_cmd failed_when: false environment: diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-dmcrypt-explicit/test.yml ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-dmcrypt-explicit/test.yml --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-dmcrypt-explicit/test.yml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-dmcrypt-explicit/test.yml 2021-03-15 17:46:20.000000000 +0000 @@ -22,6 +22,8 @@ - hosts: osds become: yes + vars: + external_devices: "{{ '--db-devices' if osd_objectstore == 'bluestore' else '--journal-devices' }}" tasks: - name: zap devices used for OSDs @@ -31,12 +33,12 @@ CEPH_VOLUME_DEBUG: 1 - name: batch create devices again - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" environment: CEPH_VOLUME_DEBUG: 1 - name: ensure batch create is idempotent when all data devices are filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: batch_cmd failed_when: false environment: @@ -49,7 +51,7 @@ - batch_cmd.rc != 0 - name: run batch --report to see if devices get filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: report_cmd failed_when: false environment: diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-explicit/test.yml ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-explicit/test.yml --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-explicit/test.yml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/centos7/filestore/mixed-type-explicit/test.yml 2021-03-15 17:46:20.000000000 +0000 @@ -22,6 +22,8 @@ - hosts: osds become: yes + vars: + external_devices: "{{ '--db-devices' if osd_objectstore == 'bluestore' else '--journal-devices' }}" tasks: - name: zap devices used for OSDs @@ -31,12 +33,12 @@ CEPH_VOLUME_DEBUG: 1 - name: batch create devices again - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" environment: CEPH_VOLUME_DEBUG: 1 - name: ensure batch create is idempotent when all data devices are filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: batch_cmd failed_when: false environment: @@ -49,7 +51,7 @@ - batch_cmd.rc != 0 - name: run batch --report to see if devices get filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: report_cmd failed_when: false environment: diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/playbooks/test_explicit.yml ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/playbooks/test_explicit.yml --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/functional/batch/playbooks/test_explicit.yml 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/functional/batch/playbooks/test_explicit.yml 2021-03-15 17:46:20.000000000 +0000 @@ -22,6 +22,8 @@ - hosts: osds become: yes + vars: + external_devices: "{{ '--db-devices' if osd_objectstore == 'bluestore' else '--journal-devices' }}" tasks: - name: zap devices used for OSDs @@ -31,12 +33,12 @@ CEPH_VOLUME_DEBUG: 1 - name: batch create devices again - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" environment: CEPH_VOLUME_DEBUG: 1 - name: ensure batch create is idempotent when all data devices are filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --yes --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: batch_cmd failed_when: false environment: @@ -49,7 +51,7 @@ - batch_cmd.rc != 0 - name: run batch --report to see if devices get filtered - command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} --db-devices {{ devices[2:] | join(' ') }}" + command: "ceph-volume --cluster {{ cluster }} lvm batch --report --format=json --{{ osd_objectstore|default('bluestore') }} {{ '--dmcrypt' if dmcrypt|default(false) else '' }} {{ devices[:2] | join(' ') }} {{ external_devices }} {{ devices[2:] | join(' ') }}" register: report_cmd failed_when: false environment: diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/test_main.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/test_main.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/test_main.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/test_main.py 2021-03-15 17:46:20.000000000 +0000 @@ -49,3 +49,21 @@ log = caplog.records[-2] assert log.message == 'Running command: ceph-volume --cluster barnacle lvm --help' assert log.levelname == 'INFO' + + def test_logs_set_level_error(self, caplog): + with pytest.raises(SystemExit) as error: + main.Volume(argv=['ceph-volume', '--log-level', 'error', '--cluster', 'barnacle', 'lvm', '--help']) + # make sure we aren't causing an actual error + assert error.value.code == 0 + assert caplog.records + # only log levels of 'ERROR' or above should be captured + for log in caplog.records: + assert log.levelname in ['ERROR', 'CRITICAL'] + + def test_logs_incorrect_log_level(self, capsys): + with pytest.raises(SystemExit) as error: + main.Volume(argv=['ceph-volume', '--log-level', 'foo', '--cluster', 'barnacle', 'lvm', '--help']) + # make sure this is an error + assert error.value.code != 0 + stdout, stderr = capsys.readouterr() + assert "invalid choice" in stderr diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/util/test_arg_validators.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/util/test_arg_validators.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/util/test_arg_validators.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/util/test_arg_validators.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,5 +1,6 @@ import argparse import pytest +import os from ceph_volume import exceptions from ceph_volume.util import arg_validators @@ -9,7 +10,8 @@ def setup(self): self.validator = arg_validators.OSDPath() - def test_is_not_root(self): + def test_is_not_root(self, monkeypatch): + monkeypatch.setattr(os, 'getuid', lambda: 100) with pytest.raises(exceptions.SuperUserError): self.validator('') diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/tests/util/test_device.py ceph-14.2.18/src/ceph-volume/ceph_volume/tests/util/test_device.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/tests/util/test_device.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/tests/util/test_device.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,43 +1,65 @@ import pytest +from copy import deepcopy from ceph_volume.util import device from ceph_volume.api import lvm as api class TestDevice(object): - def test_sys_api(self, device_info): + def test_sys_api(self, monkeypatch, device_info): + volume = api.Volume(lv_name='lv', lv_uuid='y', vg_name='vg', + lv_tags={}, lv_path='/dev/VolGroup/lv') + volumes = [] + volumes.append(volume) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: + deepcopy(volumes)) + data = {"/dev/sda": {"foo": "bar"}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.sys_api assert "foo" in disk.sys_api - def test_lvm_size(self, device_info): + def test_lvm_size(self, monkeypatch, device_info): + volume = api.Volume(lv_name='lv', lv_uuid='y', vg_name='vg', + lv_tags={}, lv_path='/dev/VolGroup/lv') + volumes = [] + volumes.append(volume) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: + deepcopy(volumes)) + # 5GB in size data = {"/dev/sda": {"size": "5368709120"}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.lvm_size.gb == 4 def test_lvm_size_rounds_down(self, device_info): # 5.5GB in size data = {"/dev/sda": {"size": "5905580032"}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.lvm_size.gb == 4 def test_is_lv(self, device_info): data = {"lv_path": "vg/lv", "vg_name": "vg", "name": "lv"} - device_info(lv=data) + lsblk = {"TYPE": "lvm"} + device_info(lv=data,lsblk=lsblk) disk = device.Device("vg/lv") assert disk.is_lv - def test_vgs_is_empty(self, device_info, pvolumes, pvolumes_empty, monkeypatch): - BarPVolume = api.PVolume(pv_name='/dev/sda', pv_uuid="0000", pv_tags={}) + def test_vgs_is_empty(self, device_info, monkeypatch): + BarPVolume = api.PVolume(pv_name='/dev/sda', pv_uuid="0000", + pv_tags={}) + pvolumes = [] pvolumes.append(BarPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda populate=True: pvolumes if populate else pvolumes_empty) lsblk = {"TYPE": "disk"} device_info(lsblk=lsblk) + monkeypatch.setattr(api, 'get_pvs', lambda **kwargs: {}) + disk = device.Device("/dev/nvme0n1") assert disk.vgs == [] @@ -50,42 +72,42 @@ disk = device.Device("/dev/nvme0n1") assert len(disk.vgs) == 1 - def test_device_is_device(self, device_info, pvolumes): + def test_device_is_device(self, device_info): data = {"/dev/sda": {"foo": "bar"}} lsblk = {"TYPE": "device"} device_info(devices=data, lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.is_device is True - def test_device_is_rotational(self, device_info, pvolumes): + def test_device_is_rotational(self, device_info): data = {"/dev/sda": {"rotational": "1"}} lsblk = {"TYPE": "device"} device_info(devices=data, lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.rotational - def test_device_is_not_rotational(self, device_info, pvolumes): + def test_device_is_not_rotational(self, device_info): data = {"/dev/sda": {"rotational": "0"}} lsblk = {"TYPE": "device"} device_info(devices=data, lsblk=lsblk) disk = device.Device("/dev/sda") assert not disk.rotational - def test_device_is_rotational_lsblk(self, device_info, pvolumes): + def test_device_is_rotational_lsblk(self, device_info): data = {"/dev/sda": {"foo": "bar"}} lsblk = {"TYPE": "device", "ROTA": "1"} device_info(devices=data, lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.rotational - def test_device_is_not_rotational_lsblk(self, device_info, pvolumes): + def test_device_is_not_rotational_lsblk(self, device_info): data = {"/dev/sda": {"rotational": "0"}} lsblk = {"TYPE": "device", "ROTA": "0"} device_info(devices=data, lsblk=lsblk) disk = device.Device("/dev/sda") assert not disk.rotational - def test_device_is_rotational_defaults_true(self, device_info, pvolumes): + def test_device_is_rotational_defaults_true(self, device_info): # rotational will default true if no info from sys_api or lsblk is found data = {"/dev/sda": {"foo": "bar"}} lsblk = {"TYPE": "device", "foo": "bar"} @@ -93,68 +115,73 @@ disk = device.Device("/dev/sda") assert disk.rotational - def test_disk_is_device(self, device_info, pvolumes): + def test_disk_is_device(self, device_info): data = {"/dev/sda": {"foo": "bar"}} lsblk = {"TYPE": "disk"} device_info(devices=data, lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.is_device is True - def test_is_partition(self, device_info, pvolumes): - data = {"/dev/sda": {"foo": "bar"}} + def test_is_partition(self, device_info): + data = {"/dev/sda1": {"foo": "bar"}} lsblk = {"TYPE": "part"} device_info(devices=data, lsblk=lsblk) - disk = device.Device("/dev/sda") + disk = device.Device("/dev/sda1") assert disk.is_partition - def test_is_not_lvm_memeber(self, device_info, pvolumes): - data = {"/dev/sda": {"foo": "bar"}} + def test_is_not_acceptable_device(self, device_info): + data = {"/dev/dm-0": {"foo": "bar"}} + lsblk = {"TYPE": "mpath"} + device_info(devices=data, lsblk=lsblk) + disk = device.Device("/dev/dm-0") + assert not disk.is_device + + def test_is_not_lvm_memeber(self, device_info): + data = {"/dev/sda1": {"foo": "bar"}} lsblk = {"TYPE": "part"} device_info(devices=data, lsblk=lsblk) - disk = device.Device("/dev/sda") + disk = device.Device("/dev/sda1") assert not disk.is_lvm_member - def test_is_lvm_memeber(self, device_info, pvolumes): - data = {"/dev/sda": {"foo": "bar"}} + def test_is_lvm_memeber(self, device_info): + data = {"/dev/sda1": {"foo": "bar"}} lsblk = {"TYPE": "part"} device_info(devices=data, lsblk=lsblk) - disk = device.Device("/dev/sda") + disk = device.Device("/dev/sda1") assert not disk.is_lvm_member def test_is_mapper_device(self, device_info): - device_info() + lsblk = {"TYPE": "lvm"} + device_info(lsblk=lsblk) disk = device.Device("/dev/mapper/foo") assert disk.is_mapper def test_dm_is_mapper_device(self, device_info): - device_info() + lsblk = {"TYPE": "lvm"} + device_info(lsblk=lsblk) disk = device.Device("/dev/dm-4") assert disk.is_mapper def test_is_not_mapper_device(self, device_info): - device_info() + lsblk = {"TYPE": "disk"} + device_info(lsblk=lsblk) disk = device.Device("/dev/sda") assert not disk.is_mapper @pytest.mark.usefixtures("lsblk_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") + "disable_kernel_queries") def test_is_ceph_disk_lsblk(self, monkeypatch, patch_bluestore_label): disk = device.Device("/dev/sda") assert disk.is_ceph_disk_member @pytest.mark.usefixtures("blkid_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") + "disable_kernel_queries") def test_is_ceph_disk_blkid(self, monkeypatch, patch_bluestore_label): - monkeypatch.setattr("ceph_volume.util.device.disk.lsblk", - lambda path: {'PARTLABEL': ""}) disk = device.Device("/dev/sda") assert disk.is_ceph_disk_member @pytest.mark.usefixtures("lsblk_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") + "disable_kernel_queries") def test_is_ceph_disk_member_not_available_lsblk(self, monkeypatch, patch_bluestore_label): disk = device.Device("/dev/sda") assert disk.is_ceph_disk_member @@ -162,11 +189,8 @@ assert "Used by ceph-disk" in disk.rejected_reasons @pytest.mark.usefixtures("blkid_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") + "disable_kernel_queries") def test_is_ceph_disk_member_not_available_blkid(self, monkeypatch, patch_bluestore_label): - monkeypatch.setattr("ceph_volume.util.device.disk.lsblk", - lambda path: {'PARTLABEL': ""}) disk = device.Device("/dev/sda") assert disk.is_ceph_disk_member assert not disk.available @@ -174,50 +198,63 @@ def test_reject_removable_device(self, device_info): data = {"/dev/sdb": {"removable": 1}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sdb") assert not disk.available def test_accept_non_removable_device(self, device_info): data = {"/dev/sdb": {"removable": 0, "size": 5368709120}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sdb") assert disk.available + def test_reject_not_acceptable_device(self, device_info): + data = {"/dev/dm-0": {"foo": "bar"}} + lsblk = {"TYPE": "mpath"} + device_info(devices=data, lsblk=lsblk) + disk = device.Device("/dev/dm-0") + assert not disk.available + def test_reject_readonly_device(self, device_info): data = {"/dev/cdrom": {"ro": 1}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/cdrom") assert not disk.available def test_reject_smaller_than_5gb(self, device_info): data = {"/dev/sda": {"size": 5368709119}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sda") assert not disk.available, 'too small device is available' def test_accept_non_readonly_device(self, device_info): data = {"/dev/sda": {"ro": 0, "size": 5368709120}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.available - def test_reject_bluestore_device(self, monkeypatch, patch_bluestore_label): + def test_reject_bluestore_device(self, monkeypatch, patch_bluestore_label, device_info): patch_bluestore_label.return_value = True + lsblk = {"TYPE": "disk"} + device_info(lsblk=lsblk) disk = device.Device("/dev/sda") assert not disk.available assert "Has BlueStore device label" in disk.rejected_reasons @pytest.mark.usefixtures("device_info_not_ceph_disk_member", - "disable_lvm_queries", "disable_kernel_queries") def test_is_not_ceph_disk_member_lsblk(self, patch_bluestore_label): disk = device.Device("/dev/sda") assert disk.is_ceph_disk_member is False def test_existing_vg_available(self, monkeypatch, device_info): - vg = api.VolumeGroup(vg_name='foo/bar', vg_free_count=6, - vg_extent_size=1073741824) + vg = api.VolumeGroup(vg_name='foo/bar', vg_free_count=1536, + vg_extent_size=4194304) monkeypatch.setattr(api, 'get_device_vgs', lambda x: [vg]) lsblk = {"TYPE": "disk"} data = {"/dev/nvme0n1": {"size": "6442450944"}} @@ -240,10 +277,10 @@ assert not disk.available_raw def test_multiple_existing_vgs(self, monkeypatch, device_info): - vg1 = api.VolumeGroup(vg_name='foo/bar', vg_free_count=4, - vg_extent_size=1073741824) - vg2 = api.VolumeGroup(vg_name='foo/bar', vg_free_count=6, - vg_extent_size=1073741824) + vg1 = api.VolumeGroup(vg_name='foo/bar', vg_free_count=1000, + vg_extent_size=4194304) + vg2 = api.VolumeGroup(vg_name='foo/bar', vg_free_count=536, + vg_extent_size=4194304) monkeypatch.setattr(api, 'get_device_vgs', lambda x: [vg1, vg2]) lsblk = {"TYPE": "disk"} data = {"/dev/nvme0n1": {"size": "6442450944"}} @@ -254,13 +291,24 @@ assert not disk.available_raw @pytest.mark.parametrize("ceph_type", ["data", "block"]) - def test_used_by_ceph(self, device_info, pvolumes, pvolumes_empty, monkeypatch, ceph_type): - FooPVolume = api.PVolume(pv_name='/dev/sda', pv_uuid="0000", lv_uuid="0000", pv_tags={}, vg_name="vg") - pvolumes.append(FooPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda populate=True: pvolumes if populate else pvolumes_empty) + def test_used_by_ceph(self, device_info, + monkeypatch, ceph_type): data = {"/dev/sda": {"foo": "bar"}} lsblk = {"TYPE": "part"} - lv_data = {"lv_path": "vg/lv", "vg_name": "vg", "lv_uuid": "0000", "tags": {"ceph.osd_id": 0, "ceph.type": ceph_type}} + FooPVolume = api.PVolume(pv_name='/dev/sda', pv_uuid="0000", + lv_uuid="0000", pv_tags={}, vg_name="vg") + pvolumes = [] + pvolumes.append(FooPVolume) + lv_data = {"lv_name": "lv", "lv_path": "vg/lv", "vg_name": "vg", + "lv_uuid": "0000", "lv_tags": + "ceph.osd_id=0,ceph.type="+ceph_type} + volumes = [] + lv = api.Volume(**lv_data) + volumes.append(lv) + monkeypatch.setattr(api, 'get_pvs', lambda **kwargs: pvolumes) + monkeypatch.setattr(api, 'get_lvs', lambda **kwargs: + deepcopy(volumes)) + device_info(devices=data, lsblk=lsblk, lv=lv_data) vg = api.VolumeGroup(vg_name='foo/bar', vg_free_count=6, vg_extent_size=1073741824) @@ -268,20 +316,23 @@ disk = device.Device("/dev/sda") assert disk.used_by_ceph - def test_not_used_by_ceph(self, device_info, pvolumes, pvolumes_empty, monkeypatch): + def test_not_used_by_ceph(self, device_info, monkeypatch): FooPVolume = api.PVolume(pv_name='/dev/sda', pv_uuid="0000", lv_uuid="0000", pv_tags={}, vg_name="vg") + pvolumes = [] pvolumes.append(FooPVolume) - monkeypatch.setattr(api, 'PVolumes', lambda populate=True: pvolumes if populate else pvolumes_empty) data = {"/dev/sda": {"foo": "bar"}} lsblk = {"TYPE": "part"} lv_data = {"lv_path": "vg/lv", "vg_name": "vg", "lv_uuid": "0000", "tags": {"ceph.osd_id": 0, "ceph.type": "journal"}} + monkeypatch.setattr(api, 'get_pvs', lambda **kwargs: pvolumes) + device_info(devices=data, lsblk=lsblk, lv=lv_data) disk = device.Device("/dev/sda") assert not disk.used_by_ceph def test_get_device_id(self, device_info): udev = {k:k for k in ['ID_VENDOR', 'ID_MODEL', 'ID_SCSI_SERIAL']} - device_info(udevadm=udev) + lsblk = {"TYPE": "disk"} + device_info(udevadm=udev,lsblk=lsblk) disk = device.Device("/dev/sda") assert disk._get_device_id() == 'ID_VENDOR_ID_MODEL_ID_SCSI_SERIAL' @@ -289,33 +340,33 @@ class TestDeviceEncryption(object): - def test_partition_is_not_encrypted_lsblk(self, device_info, pvolumes): + def test_partition_is_not_encrypted_lsblk(self, device_info): lsblk = {'TYPE': 'part', 'FSTYPE': 'xfs'} device_info(lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.is_encrypted is False - def test_partition_is_encrypted_lsblk(self, device_info, pvolumes): + def test_partition_is_encrypted_lsblk(self, device_info): lsblk = {'TYPE': 'part', 'FSTYPE': 'crypto_LUKS'} device_info(lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.is_encrypted is True - def test_partition_is_not_encrypted_blkid(self, device_info, pvolumes): + def test_partition_is_not_encrypted_blkid(self, device_info): lsblk = {'TYPE': 'part'} blkid = {'TYPE': 'ceph data'} device_info(lsblk=lsblk, blkid=blkid) disk = device.Device("/dev/sda") assert disk.is_encrypted is False - def test_partition_is_encrypted_blkid(self, device_info, pvolumes): + def test_partition_is_encrypted_blkid(self, device_info): lsblk = {'TYPE': 'part'} blkid = {'TYPE': 'crypto_LUKS'} device_info(lsblk=lsblk, blkid=blkid) disk = device.Device("/dev/sda") assert disk.is_encrypted is True - def test_mapper_is_encrypted_luks1(self, device_info, pvolumes, pvolumes_empty, monkeypatch): + def test_mapper_is_encrypted_luks1(self, device_info, monkeypatch): status = {'type': 'LUKS1'} monkeypatch.setattr(device, 'encryption_status', lambda x: status) lsblk = {'FSTYPE': 'xfs', 'TYPE': 'lvm'} @@ -324,7 +375,7 @@ disk = device.Device("/dev/mapper/uuid") assert disk.is_encrypted is True - def test_mapper_is_encrypted_luks2(self, device_info, pvolumes, pvolumes_empty, monkeypatch): + def test_mapper_is_encrypted_luks2(self, device_info, monkeypatch): status = {'type': 'LUKS2'} monkeypatch.setattr(device, 'encryption_status', lambda x: status) lsblk = {'FSTYPE': 'xfs', 'TYPE': 'lvm'} @@ -333,7 +384,7 @@ disk = device.Device("/dev/mapper/uuid") assert disk.is_encrypted is True - def test_mapper_is_encrypted_plain(self, device_info, pvolumes, pvolumes_empty, monkeypatch): + def test_mapper_is_encrypted_plain(self, device_info, monkeypatch): status = {'type': 'PLAIN'} monkeypatch.setattr(device, 'encryption_status', lambda x: status) lsblk = {'FSTYPE': 'xfs', 'TYPE': 'lvm'} @@ -342,7 +393,7 @@ disk = device.Device("/dev/mapper/uuid") assert disk.is_encrypted is True - def test_mapper_is_not_encrypted_plain(self, device_info, pvolumes, pvolumes_empty, monkeypatch): + def test_mapper_is_not_encrypted_plain(self, device_info, monkeypatch): monkeypatch.setattr(device, 'encryption_status', lambda x: {}) lsblk = {'FSTYPE': 'xfs', 'TYPE': 'lvm'} blkid = {'TYPE': 'mapper'} @@ -350,7 +401,7 @@ disk = device.Device("/dev/mapper/uuid") assert disk.is_encrypted is False - def test_lv_is_encrypted_blkid(self, device_info, pvolumes): + def test_lv_is_encrypted_blkid(self, device_info): lsblk = {'TYPE': 'lvm'} blkid = {'TYPE': 'crypto_LUKS'} device_info(lsblk=lsblk, blkid=blkid) @@ -358,7 +409,7 @@ disk.lv_api = {} assert disk.is_encrypted is True - def test_lv_is_not_encrypted_blkid(self, factory, device_info, pvolumes): + def test_lv_is_not_encrypted_blkid(self, factory, device_info): lsblk = {'TYPE': 'lvm'} blkid = {'TYPE': 'xfs'} device_info(lsblk=lsblk, blkid=blkid) @@ -366,7 +417,7 @@ disk.lv_api = factory(encrypted=None) assert disk.is_encrypted is False - def test_lv_is_encrypted_lsblk(self, device_info, pvolumes): + def test_lv_is_encrypted_lsblk(self, device_info): lsblk = {'FSTYPE': 'crypto_LUKS', 'TYPE': 'lvm'} blkid = {'TYPE': 'mapper'} device_info(lsblk=lsblk, blkid=blkid) @@ -374,7 +425,7 @@ disk.lv_api = {} assert disk.is_encrypted is True - def test_lv_is_not_encrypted_lsblk(self, factory, device_info, pvolumes): + def test_lv_is_not_encrypted_lsblk(self, factory, device_info): lsblk = {'FSTYPE': 'xfs', 'TYPE': 'lvm'} blkid = {'TYPE': 'mapper'} device_info(lsblk=lsblk, blkid=blkid) @@ -382,7 +433,7 @@ disk.lv_api = factory(encrypted=None) assert disk.is_encrypted is False - def test_lv_is_encrypted_lvm_api(self, factory, device_info, pvolumes): + def test_lv_is_encrypted_lvm_api(self, factory, device_info): lsblk = {'FSTYPE': 'xfs', 'TYPE': 'lvm'} blkid = {'TYPE': 'mapper'} device_info(lsblk=lsblk, blkid=blkid) @@ -390,7 +441,7 @@ disk.lv_api = factory(encrypted=True) assert disk.is_encrypted is True - def test_lv_is_not_encrypted_lvm_api(self, factory, device_info, pvolumes): + def test_lv_is_not_encrypted_lvm_api(self, factory, device_info): lsblk = {'FSTYPE': 'xfs', 'TYPE': 'lvm'} blkid = {'TYPE': 'mapper'} device_info(lsblk=lsblk, blkid=blkid) @@ -410,7 +461,8 @@ } def test_valid_before_invalid(self, device_info): - device_info(devices=self.data) + lsblk = {"TYPE": "disk"} + device_info(devices=self.data,lsblk=lsblk) sda = device.Device("/dev/sda") sdb = device.Device("/dev/sdb") @@ -418,7 +470,8 @@ assert sdb > sda def test_valid_alphabetical_ordering(self, device_info): - device_info(devices=self.data) + lsblk = {"TYPE": "disk"} + device_info(devices=self.data,lsblk=lsblk) sda = device.Device("/dev/sda") sdc = device.Device("/dev/sdc") @@ -426,7 +479,8 @@ assert sdc > sda def test_invalid_alphabetical_ordering(self, device_info): - device_info(devices=self.data) + lsblk = {"TYPE": "disk"} + device_info(devices=self.data,lsblk=lsblk) sdb = device.Device("/dev/sdb") sdd = device.Device("/dev/sdd") @@ -437,26 +491,22 @@ class TestCephDiskDevice(object): def test_partlabel_lsblk(self, device_info): - lsblk = {"PARTLABEL": ""} + lsblk = {"TYPE": "disk", "PARTLABEL": ""} device_info(lsblk=lsblk) disk = device.CephDiskDevice(device.Device("/dev/sda")) assert disk.partlabel == '' def test_partlabel_blkid(self, device_info): - lsblk = {"PARTLABEL": ""} - blkid = {"PARTLABEL": "ceph data"} - device_info(lsblk=lsblk, blkid=blkid) + blkid = {"TYPE": "disk", "PARTLABEL": "ceph data"} + device_info(blkid=blkid) disk = device.CephDiskDevice(device.Device("/dev/sda")) assert disk.partlabel == 'ceph data' @pytest.mark.usefixtures("blkid_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") + "disable_kernel_queries") def test_is_member_blkid(self, monkeypatch, patch_bluestore_label): - monkeypatch.setattr("ceph_volume.util.device.disk.lsblk", - lambda path: {'PARTLABEL': ""}) disk = device.CephDiskDevice(device.Device("/dev/sda")) assert disk.is_member is True @@ -469,7 +519,8 @@ def test_accept_non_removable_device(self, device_info): data = {"/dev/sdb": {"removable": 0, "size": 5368709120}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sdb") assert disk.available @@ -487,20 +538,22 @@ def test_accept_non_readonly_device(self, device_info): data = {"/dev/sda": {"ro": 0, "size": 5368709120}} - device_info(devices=data) + lsblk = {"TYPE": "disk"} + device_info(devices=data,lsblk=lsblk) disk = device.Device("/dev/sda") assert disk.available @pytest.mark.usefixtures("lsblk_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") - def test_is_member_lsblk(self, patch_bluestore_label): + "disable_kernel_queries") + def test_is_member_lsblk(self, patch_bluestore_label, device_info): + lsblk = {"TYPE": "disk", "PARTLABEL": "ceph"} + device_info(lsblk=lsblk) disk = device.CephDiskDevice(device.Device("/dev/sda")) assert disk.is_member is True def test_unknown_type(self, device_info): - lsblk = {"PARTLABEL": "gluster"} + lsblk = {"TYPE": "disk", "PARTLABEL": "gluster"} device_info(lsblk=lsblk) disk = device.CephDiskDevice(device.Device("/dev/sda")) @@ -509,19 +562,15 @@ ceph_types = ['data', 'wal', 'db', 'lockbox', 'journal', 'block'] @pytest.mark.usefixtures("blkid_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") + "disable_kernel_queries") def test_type_blkid(self, monkeypatch, device_info, ceph_partlabel): - monkeypatch.setattr("ceph_volume.util.device.disk.lsblk", - lambda path: {'PARTLABEL': ''}) disk = device.CephDiskDevice(device.Device("/dev/sda")) assert disk.type in self.ceph_types @pytest.mark.usefixtures("blkid_ceph_disk_member", "lsblk_ceph_disk_member", - "disable_kernel_queries", - "disable_lvm_queries") + "disable_kernel_queries") def test_type_lsblk(self, device_info, ceph_partlabel): disk = device.CephDiskDevice(device.Device("/dev/sda")) diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/util/arg_validators.py ceph-14.2.18/src/ceph-volume/ceph_volume/util/arg_validators.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/util/arg_validators.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/util/arg_validators.py 2021-03-15 17:46:20.000000000 +0000 @@ -12,11 +12,23 @@ self.as_string = as_string self.gpt_ok = gpt_ok - def __call__(self, string): - device = Device(string) + def __call__(self, dev_path): + device = self._is_valid_device(dev_path) + return self._format_device(device) + + def _format_device(self, device): + if self.as_string: + if device.is_lv: + # all codepaths expect an lv path to be returned in this format + return "{}/{}".format(device.vg_name, device.lv_name) + return device.path + return device + + def _is_valid_device(self, dev_path): + device = Device(dev_path) error = None if not device.exists: - error = "Unable to proceed with non-existing device: %s" % string + error = "Unable to proceed with non-existing device: %s" % dev_path # FIXME this is not a nice API, this validator was meant to catch any # non-existing devices upfront, not check for gpt headers. Now this # needs to optionally skip checking gpt headers which is beyond @@ -24,19 +36,26 @@ # configure this with a list of checks that can be excluded/included on # __init__ elif device.has_gpt_headers and not self.gpt_ok: - error = "GPT headers found, they must be removed on: %s" % string + error = "GPT headers found, they must be removed on: %s" % dev_path if error: raise argparse.ArgumentError(None, error) - if self.as_string: - if device.is_lv: - # all codepaths expect an lv path to be returned in this format - return "{}/{}".format(device.vg_name, device.lv_name) - return string return device +class ValidBatchDevice(ValidDevice): + + def __call__(self, dev_path): + dev = self._is_valid_device(dev_path) + if dev.is_partition: + raise argparse.ArgumentError( + None, + '{} is a partition, please pass ' + 'LVs or raw block devices'.format(dev_path)) + return self._format_device(dev) + + class OSDPath(object): """ Validate path exists and it looks like an OSD directory. diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/util/device.py ceph-14.2.18/src/ceph-volume/ceph_volume/util/device.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/util/device.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/util/device.py 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,7 @@ from functools import total_ordering from ceph_volume import sys_info, process from ceph_volume.api import lvm -from ceph_volume.util import disk +from ceph_volume.util import disk, system from ceph_volume.util.constants import ceph_disk_guids report_template = """ @@ -26,13 +26,15 @@ A container for Device instances with reporting """ - def __init__(self, devices=None): + def __init__(self, filter_for_batch=False): if not sys_info.devices: sys_info.devices = disk.get_devices() self.devices = [Device(k) for k in sys_info.devices.keys()] + if filter_for_batch: + self.devices = [d for d in self.devices if d.available_lvm_batch] - def pretty_report(self, all=True): + def pretty_report(self): output = [ report_template.format( dev='Device Path', @@ -75,13 +77,17 @@ 'vendor', ] + # define some class variables; mostly to enable the use of autospec in + # unittests + lvs = [] + def __init__(self, path): self.path = path # LVs can have a vg/lv path, while disks will have /dev/sda self.abspath = path self.lv_api = None - self.vgs = [] self.lvs = [] + self.vgs = [] self.vg_name = None self.lv_name = None self.disk_api = {} @@ -130,8 +136,14 @@ self.sys_api = part break - # start with lvm since it can use an absolute or relative path - lv = lvm.get_lv_from_argument(self.path) + # if the path is not absolute, we have 'vg/lv', let's use LV name + # to get the LV. + if self.path[0] == '/': + lv = lvm.get_first_lv(filters={'lv_path': self.path}) + else: + vgname, lvname = self.path.split('/') + lv = lvm.get_first_lv(filters={'lv_name': lvname, + 'vg_name': vgname}) if lv: self.lv_api = lv self.lvs = [lv] @@ -246,7 +258,6 @@ # actually unused (not 100% sure) and can simply be removed self.vg_name = vgs[0] self._is_lvm_member = True - self.lvs.extend(lvm.get_device_lvs(path)) return self._is_lvm_member @@ -338,18 +349,29 @@ def is_partition(self): if self.disk_api: return self.disk_api['TYPE'] == 'part' + elif self.blkid_api: + return self.blkid_api['TYPE'] == 'part' return False @property def is_device(self): + api = None if self.disk_api: - is_device = self.disk_api['TYPE'] == 'device' - is_disk = self.disk_api['TYPE'] == 'disk' + api = self.disk_api + elif self.blkid_api: + api = self.blkid_api + if api: + is_device = api['TYPE'] == 'device' + is_disk = api['TYPE'] == 'disk' if is_device or is_disk: return True return False @property + def is_acceptable_device(self): + return self.is_device or self.is_partition + + @property def is_encrypted(self): """ Only correct for LVs, device mappers, and partitions. Will report a ``None`` @@ -384,6 +406,41 @@ if lv.tags.get("ceph.type") in ["data", "block"]] return any(osd_ids) + @property + def vg_free_percent(self): + if self.vgs: + return [vg.free_percent for vg in self.vgs] + else: + return [1] + + @property + def vg_size(self): + if self.vgs: + return [vg.size for vg in self.vgs] + else: + # TODO fix this...we can probably get rid of vg_free + return self.vg_free + + @property + def vg_free(self): + ''' + Returns the free space in all VGs on this device. If no VGs are + present, returns the disk size. + ''' + if self.vgs: + return [vg.free for vg in self.vgs] + else: + # We could also query 'lvmconfig + # --typeconfig full' and use allocations -> physical_extent_size + # value to project the space for a vg + # assuming 4M extents here + extent_size = 4194304 + vg_free = int(self.size / extent_size) * extent_size + if self.size % extent_size == 0: + # If the extent size divides size exactly, deduct on extent for + # LVM metadata + vg_free -= extent_size + return [vg_free] def _check_generic_reject_reasons(self): reasons = [ @@ -393,9 +450,12 @@ ] rejected = [reason for (k, v, reason) in reasons if self.sys_api.get(k, '') == v] - # reject disks small than 5GB - if int(self.sys_api.get('size', 0)) < 5368709120: - rejected.append('Insufficient space (<5GB)') + if self.is_acceptable_device: + # reject disks smaller than 5GB + if int(self.sys_api.get('size', 0)) < 5368709120: + rejected.append('Insufficient space (<5GB)') + else: + rejected.append("Device type is not acceptable. It should be raw device or partition") if self.is_ceph_disk_member: rejected.append("Used by ceph-disk") if self.has_bluestore_label: @@ -404,11 +464,11 @@ def _check_lvm_reject_reasons(self): rejected = [] - available_vgs = [vg for vg in self.vgs if vg.free >= 5368709120] - if self.vgs and not available_vgs: - rejected.append('Insufficient space (<5GB) on vgs') - - if not self.vgs: + if self.vgs: + available_vgs = [vg for vg in self.vgs if int(vg.vg_free_count) > 10] + if not available_vgs: + rejected.append('Insufficient space (<10 extents) on vgs') + else: # only check generic if no vgs are present. Vgs might hold lvs and # that might cause 'locked' to trigger rejected.extend(self._check_generic_reject_reasons()) @@ -422,6 +482,14 @@ return len(rejected) == 0, rejected + @property + def available_lvm_batch(self): + if self.sys_api.get("partitions"): + return False + if system.device_is_mounted(self.path): + return False + return self.is_device or self.is_lv + class CephDiskDevice(object): """ diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/util/disk.py ceph-14.2.18/src/ceph-volume/ceph_volume/util/disk.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/util/disk.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/util/disk.py 2021-03-15 17:46:20.000000000 +0000 @@ -603,6 +603,12 @@ _b = self._b / other return Size(b=_b) + def __bool__(self): + return self.b != 0 + + def __nonzero__(self): + return self.__bool__() + def __getattr__(self, unit): """ Calculate units on the fly, relies on the fact that ``bytes`` has been @@ -754,7 +760,7 @@ # If the mapper device is a logical volume it gets excluded if is_mapper_device(diskname): - if lvm.is_lv(diskname): + if lvm.get_device_lvs(diskname): continue # all facts that have no defaults diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/util/__init__.py ceph-14.2.18/src/ceph-volume/ceph_volume/util/__init__.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/util/__init__.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/util/__init__.py 2021-03-15 17:46:20.000000000 +0000 @@ -98,3 +98,11 @@ terminal.error('Valid false responses are: n, no') terminal.error('That response was invalid, please try again') return prompt_bool(question, input_=input_prompt) + +def merge_dict(x, y): + """ + Return two dicts merged + """ + z = x.copy() + z.update(y) + return z \ No newline at end of file diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/util/prepare.py ceph-14.2.18/src/ceph-volume/ceph_volume/util/prepare.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/util/prepare.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/util/prepare.py 2021-03-15 17:46:20.000000000 +0000 @@ -4,9 +4,11 @@ may want to change some part of the process, while others might want to consume the single-call helper """ +import errno import os import logging import json +import time from ceph_volume import process, conf, __release__, terminal from ceph_volume.util import system, constants, str_to_int, disk @@ -93,6 +95,7 @@ logger.debug( 'block.db has no size configuration, will fallback to using as much as possible' ) + # TODO better to return disk.Size(b=0) here return None logger.debug('bluestore_block_db_size set to %s' % conf_db_size) db_size = disk.Size(b=str_to_int(conf_db_size)) @@ -458,9 +461,23 @@ command = base_command + supplementary_command - _, _, returncode = process.call(command, stdin=keyring, show_command=True) - if returncode != 0: - raise RuntimeError('Command failed with exit code %s: %s' % (returncode, ' '.join(command))) + """ + When running in containers the --mkfs on raw device sometimes fails + to acquire a lock through flock() on the device because systemd-udevd holds one temporarily. + See KernelDevice.cc and _lock() to understand how ceph-osd acquires the lock. + Because this is really transient, we retry up to 5 times and wait for 1 sec in-between + """ + for retry in range(5): + _, _, returncode = process.call(command, stdin=keyring, terminal_verbose=True, show_command=True) + if returncode == 0: + break + else: + if returncode == errno.EWOULDBLOCK: + time.sleep(1) + logger.info('disk is held by another process, trying to mkfs again... (%s/5 attempt)' % retry) + continue + else: + raise RuntimeError('Command failed with exit code %s: %s' % (returncode, ' '.join(command))) def osd_mkfs_filestore(osd_id, fsid, keyring): diff -Nru ceph-14.2.11/src/ceph-volume/ceph_volume/util/templates.py ceph-14.2.18/src/ceph-volume/ceph_volume/util/templates.py --- ceph-14.2.11/src/ceph-volume/ceph_volume/util/templates.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ceph-volume/ceph_volume/util/templates.py 2021-03-15 17:46:20.000000000 +0000 @@ -8,11 +8,15 @@ osd_reused_id = """ - OSD id {id_: <55}""" + OSD id {id_: <55}""" osd_component = """ - {_type: <15} {path: <55} {size: <15} {percent}%""" + {_type: <15} {path: <55} {size: <15} {percent:.2%}""" + + +osd_encryption = """ + encryption: {enc: <15}""" total_osds = """ diff -Nru ceph-14.2.11/src/client/Client.cc ceph-14.2.18/src/client/Client.cc --- ceph-14.2.11/src/client/Client.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/client/Client.cc 2021-03-15 17:46:20.000000000 +0000 @@ -469,6 +469,7 @@ f->dump_int("osd_epoch", osd_epoch); f->dump_int("osd_epoch_barrier", cap_epoch_barrier); f->dump_bool("blacklisted", blacklisted); + f->dump_string("fs_name", mdsmap->get_fs_name()); } } @@ -698,7 +699,6 @@ << dendl; if (dn->inode) { Inode *diri = dn->dir->parent_inode; - diri->dir_release_count++; clear_dir_complete_and_ordered(diri, true); } unlink(dn, false, false); // drop dir, drop dentry @@ -1008,13 +1008,11 @@ if (old_dentry) { if (old_dentry->dir != dir) { Inode *old_diri = old_dentry->dir->parent_inode; - old_diri->dir_ordered_count++; clear_dir_complete_and_ordered(old_diri, false); } unlink(old_dentry, dir == old_dentry->dir, false); // drop dentry, keep dir open if its the same dir } Inode *diri = dir->parent_inode; - diri->dir_ordered_count++; clear_dir_complete_and_ordered(diri, false); dn = link(dir, dname, in, dn); } @@ -1067,6 +1065,10 @@ void Client::clear_dir_complete_and_ordered(Inode *diri, bool complete) { + if (complete) + diri->dir_release_count++; + else + diri->dir_ordered_count++; if (diri->flags & I_COMPLETE) { if (complete) { ldout(cct, 10) << " clearing (I_COMPLETE|I_DIR_ORDERED) on " << *diri << dendl; @@ -1271,7 +1273,6 @@ Dentry *d = request->dentry(); if (d) { Inode *diri = d->dir->parent_inode; - diri->dir_release_count++; clear_dir_complete_and_ordered(diri, true); } @@ -1359,7 +1360,6 @@ if (diri->dir && diri->dir->dentries.count(dname)) { dn = diri->dir->dentries[dname]; if (dn->inode) { - diri->dir_ordered_count++; clear_dir_complete_and_ordered(diri, false); unlink(dn, true, true); // keep dir, dentry } @@ -1908,6 +1908,7 @@ rel.item.dname_len = dn->name.length(); rel.item.dname_seq = dn->lease_seq; rel.dname = dn->name; + dn->lease_mds = -1; } ldout(cct, 25) << __func__ << " exit(dn:" << dn << ")" << dendl; @@ -3101,7 +3102,6 @@ Dentry *olddn = in->get_first_parent(); ceph_assert(olddn->dir != dir || olddn->name != name); Inode *old_diri = olddn->dir->parent_inode; - old_diri->dir_release_count++; clear_dir_complete_and_ordered(old_diri, true); unlink(olddn, true, true); // keep dir, dentry } @@ -3996,10 +3996,10 @@ !(had & CEPH_CAP_FILE_CACHE)) in->cache_gen++; - if ((issued & CEPH_CAP_FILE_SHARED) && - !(had & CEPH_CAP_FILE_SHARED)) { - in->shared_gen++; - + if ((issued & CEPH_CAP_FILE_SHARED) != + (had & CEPH_CAP_FILE_SHARED)) { + if (issued & CEPH_CAP_FILE_SHARED) + in->shared_gen++; if (in->is_dir()) clear_dir_complete_and_ordered(in, true); } @@ -4179,7 +4179,7 @@ int Client::_do_remount(bool retry_on_error) { - uint64_t max_retries = g_conf().get_val("mds_max_retries_on_remount_failure"); + uint64_t max_retries = cct->_conf.get_val("mds_max_retries_on_remount_failure"); errno = 0; int r = remount_cb(callback_handle); @@ -6356,6 +6356,8 @@ { int r = 0; Dentry *dn = NULL; + // can only request shared caps + mask &= CEPH_CAP_ANY_SHARED | CEPH_STAT_RSTAT; if (dname == "..") { if (dir->dentries.empty()) { @@ -6367,9 +6369,7 @@ int r = make_request(req, perms, &tmptarget, NULL, rand() % mdsmap->get_num_in_mds()); if (r == 0) { - Inode *tempino = tmptarget.get(); - _ll_get(tempino); - *target = tempino; + *target = std::move(tmptarget); ldout(cct, 8) << __func__ << " found target " << (*target)->ino << dendl; } else { *target = dir; @@ -7291,7 +7291,7 @@ mask |= CEPH_CAP_AUTH_SHARED; if (want & (CEPH_STATX_NLINK|CEPH_STATX_CTIME|CEPH_STATX_VERSION)) mask |= CEPH_CAP_LINK_SHARED; - if (want & (CEPH_STATX_ATIME|CEPH_STATX_MTIME|CEPH_STATX_CTIME|CEPH_STATX_SIZE|CEPH_STATX_BLOCKS|CEPH_STATX_VERSION)) + if (want & (CEPH_STATX_NLINK|CEPH_STATX_ATIME|CEPH_STATX_MTIME|CEPH_STATX_CTIME|CEPH_STATX_SIZE|CEPH_STATX_BLOCKS|CEPH_STATX_VERSION)) mask |= CEPH_CAP_FILE_SHARED; if (want & (CEPH_STATX_VERSION|CEPH_STATX_CTIME)) mask |= CEPH_CAP_XATTR_SHARED; @@ -8076,6 +8076,7 @@ string dn_name; while (true) { + int mask = caps; if (!dirp->inode->is_complete_and_ordered()) return -EAGAIN; if (pd == dir->readdir_cache.end()) @@ -8093,7 +8094,10 @@ } int idx = pd - dir->readdir_cache.begin(); - int r = _getattr(dn->inode, caps, dirp->perms); + if (dn->inode->is_dir()) { + mask |= CEPH_STAT_RSTAT; + } + int r = _getattr(dn->inode, mask, dirp->perms); if (r < 0) return r; @@ -8177,7 +8181,7 @@ uint64_t next_off = 1; int r; - r = _getattr(diri, caps, dirp->perms); + r = _getattr(diri, caps | CEPH_STAT_RSTAT, dirp->perms); if (r < 0) return r; @@ -8210,7 +8214,7 @@ in = diri->get_first_parent()->dir->parent_inode; int r; - r = _getattr(in, caps, dirp->perms); + r = _getattr(in, caps | CEPH_STAT_RSTAT, dirp->perms); if (r < 0) return r; @@ -8276,7 +8280,11 @@ int r; if (check_caps) { - r = _getattr(entry.inode, caps, dirp->perms); + int mask = caps; + if(entry.inode->is_dir()){ + mask |= CEPH_STAT_RSTAT; + } + r = _getattr(entry.inode, mask, dirp->perms); if (r < 0) return r; } @@ -8526,11 +8534,14 @@ mode_t mode, int stripe_unit, int stripe_count, int object_size, const char *data_pool) { - ldout(cct, 3) << "open enter(" << relpath << ", " << ceph_flags_sys2wire(flags) << "," << mode << ")" << dendl; + int cflags = ceph_flags_sys2wire(flags); + + ldout(cct, 3) << "open enter(" << relpath << ", " << cflags << "," << mode << ")" << dendl; + std::lock_guard lock(client_lock); tout(cct) << "open" << std::endl; tout(cct) << relpath << std::endl; - tout(cct) << ceph_flags_sys2wire(flags) << std::endl; + tout(cct) << cflags << std::endl; if (unmounting) return -ENOTCONN; @@ -8550,7 +8561,8 @@ bool created = false; /* O_CREATE with O_EXCL enforces O_NOFOLLOW. */ bool followsym = !((flags & O_NOFOLLOW) || ((flags & O_CREAT) && (flags & O_EXCL))); - int r = path_walk(path, &in, perms, followsym, ceph_caps_for_mode(mode)); + int mask = ceph_caps_for_mode(ceph_flags_to_mode(cflags)); + int r = path_walk(path, &in, perms, followsym, mask); if (r == 0 && (flags & O_CREAT) && (flags & O_EXCL)) return -EEXIST; @@ -8603,7 +8615,7 @@ out: tout(cct) << r << std::endl; - ldout(cct, 3) << "open exit(" << path << ", " << ceph_flags_sys2wire(flags) << ") = " << r << dendl; + ldout(cct, 3) << "open exit(" << path << ", " << cflags << ") = " << r << dendl; return r; } @@ -8869,7 +8881,6 @@ ldout(cct, 8) << "Unable to get caps after open of inode " << *in << " . Denying open: " << cpp_strerror(result) << dendl; - in->put_open_ref(cmode); } else { put_cap_ref(in, need); } @@ -9140,7 +9151,7 @@ int want, have = 0; bool movepos = false; std::unique_ptr onuninline; - int64_t r = 0; + int64_t rc = 0; const auto& conf = cct->_conf; Inode *in = f->inode.get(); utime_t lat; @@ -9158,8 +9169,9 @@ loff_t start_pos = offset; if (in->inline_version == 0) { - r = _getattr(in, CEPH_STAT_CAP_INLINE_DATA, f->actor_perms, true); + auto r = _getattr(in, CEPH_STAT_CAP_INLINE_DATA, f->actor_perms, true); if (r < 0) { + rc = r; goto done; } ceph_assert(in->inline_version > 0); @@ -9170,9 +9182,12 @@ want = CEPH_CAP_FILE_CACHE | CEPH_CAP_FILE_LAZYIO; else want = CEPH_CAP_FILE_CACHE; - r = get_caps(in, CEPH_CAP_FILE_RD, want, &have, -1); - if (r < 0) { - goto done; + { + auto r = get_caps(in, CEPH_CAP_FILE_RD, want, &have, -1); + if (r < 0) { + rc = r; + goto done; + } } if (f->flags & O_DIRECT) have &= ~(CEPH_CAP_FILE_CACHE | CEPH_CAP_FILE_LAZYIO); @@ -9194,12 +9209,12 @@ bl->substr_of(in->inline_data, offset, len - offset); bl->append_zero(endoff - len); } - r = endoff - offset; + rc = endoff - offset; } else if ((uint64_t)offset < endoff) { bl->append_zero(endoff - offset); - r = endoff - offset; + rc = endoff - offset; } else { - r = 0; + rc = 0; } goto success; } @@ -9212,27 +9227,31 @@ if (f->flags & O_RSYNC) { _flush_range(in, offset, size); } - r = _read_async(f, offset, size, bl); - if (r < 0) + rc = _read_async(f, offset, size, bl); + if (rc < 0) goto done; } else { if (f->flags & O_DIRECT) _flush_range(in, offset, size); bool checkeof = false; - r = _read_sync(f, offset, size, bl, &checkeof); - if (r < 0) + rc = _read_sync(f, offset, size, bl, &checkeof); + if (rc < 0) goto done; if (checkeof) { - offset += r; - size -= r; + offset += rc; + size -= rc; put_cap_ref(in, CEPH_CAP_FILE_RD); have = 0; // reverify size - r = _getattr(in, CEPH_STAT_CAP_SIZE, f->actor_perms); - if (r < 0) - goto done; + { + auto r = _getattr(in, CEPH_STAT_CAP_SIZE, f->actor_perms); + if (r < 0) { + rc = r; + goto done; + } + } // eof? short read. if ((uint64_t)offset < in->size) @@ -9241,10 +9260,10 @@ } success: - ceph_assert(r >= 0); + ceph_assert(rc >= 0); if (movepos) { // adjust fd pos - f->pos = start_pos + r; + f->pos = start_pos + rc; } lat = ceph_clock_now(); @@ -9264,7 +9283,7 @@ in->mark_caps_dirty(CEPH_CAP_FILE_WR); check_caps(in, 0); } else - r = ret; + rc = ret; } if (have) { put_cap_ref(in, CEPH_CAP_FILE_RD); @@ -9272,7 +9291,7 @@ if (movepos) { unlock_fh_pos(f); } - return r; + return rc; } Client::C_Readahead::C_Readahead(Client *c, Fh *f) : @@ -9794,6 +9813,8 @@ if (f->flags & O_PATH) return -EBADF; #endif + if ((f->mode & CEPH_FILE_MODE_WR) == 0) + return -EBADF; struct stat attr; attr.st_size = length; return _setattr(f->inode, &attr, CEPH_SETATTR_SIZE, perms); @@ -11371,6 +11392,9 @@ if (vxattr->flags & VXATTR_RSTAT) { flags |= CEPH_STAT_RSTAT; } + if (vxattr->flags & VXATTR_DIRSTAT) { + flags |= CEPH_CAP_FILE_SHARED; + } r = _getattr(in, flags, perms, true); if (r != 0) { // Error from getattr! @@ -11804,7 +11828,8 @@ bool Client::_vxattrcb_quota_exists(Inode *in) { return in->quota.is_enable() && - in->snaprealm && in->snaprealm->ino == in->ino; + (in->snapid != CEPH_NOSNAP || + (in->snaprealm && in->snaprealm->ino == in->ino)); } size_t Client::_vxattrcb_quota(Inode *in, char *val, size_t size) { @@ -11928,19 +11953,21 @@ (long unsigned)in->snap_btime.nsec()); } +size_t Client::_vxattrcb_cluster_fsid(Inode *in, char *val, size_t size) +{ + return snprintf(val, size, "%s", monclient->get_fsid().to_string().c_str()); +} + +size_t Client::_vxattrcb_client_id(Inode *in, char *val, size_t size) +{ + auto name = messenger->get_myname(); + return snprintf(val, size, "%s%ld", name.type_str(), name.num()); +} + #define CEPH_XATTR_NAME(_type, _name) "ceph." #_type "." #_name #define CEPH_XATTR_NAME2(_type, _name, _name2) "ceph." #_type "." #_name "." #_name2 -#define XATTR_NAME_CEPH(_type, _name) \ -{ \ - name: CEPH_XATTR_NAME(_type, _name), \ - getxattr_cb: &Client::_vxattrcb_ ## _type ## _ ## _name, \ - readonly: true, \ - hidden: false, \ - exists_cb: NULL, \ - flags: 0, \ -} -#define XATTR_NAME_CEPH2(_type, _name, _flags) \ +#define XATTR_NAME_CEPH(_type, _name, _flags) \ { \ name: CEPH_XATTR_NAME(_type, _name), \ getxattr_cb: &Client::_vxattrcb_ ## _type ## _ ## _name, \ @@ -11982,14 +12009,14 @@ XATTR_LAYOUT_FIELD(dir, layout, object_size), XATTR_LAYOUT_FIELD(dir, layout, pool), XATTR_LAYOUT_FIELD(dir, layout, pool_namespace), - XATTR_NAME_CEPH(dir, entries), - XATTR_NAME_CEPH(dir, files), - XATTR_NAME_CEPH(dir, subdirs), - XATTR_NAME_CEPH2(dir, rentries, VXATTR_RSTAT), - XATTR_NAME_CEPH2(dir, rfiles, VXATTR_RSTAT), - XATTR_NAME_CEPH2(dir, rsubdirs, VXATTR_RSTAT), - XATTR_NAME_CEPH2(dir, rbytes, VXATTR_RSTAT), - XATTR_NAME_CEPH2(dir, rctime, VXATTR_RSTAT), + XATTR_NAME_CEPH(dir, entries, VXATTR_DIRSTAT), + XATTR_NAME_CEPH(dir, files, VXATTR_DIRSTAT), + XATTR_NAME_CEPH(dir, subdirs, VXATTR_DIRSTAT), + XATTR_NAME_CEPH(dir, rentries, VXATTR_RSTAT), + XATTR_NAME_CEPH(dir, rfiles, VXATTR_RSTAT), + XATTR_NAME_CEPH(dir, rsubdirs, VXATTR_RSTAT), + XATTR_NAME_CEPH(dir, rbytes, VXATTR_RSTAT), + XATTR_NAME_CEPH(dir, rctime, VXATTR_RSTAT), { name: "ceph.quota", getxattr_cb: &Client::_vxattrcb_quota, @@ -12044,6 +12071,26 @@ { name: "" } /* Required table terminator */ }; +const Client::VXattr Client::_common_vxattrs[] = { + { + name: "ceph.cluster_fsid", + getxattr_cb: &Client::_vxattrcb_cluster_fsid, + readonly: true, + hidden: false, + exists_cb: nullptr, + flags: 0, + }, + { + name: "ceph.client_id", + getxattr_cb: &Client::_vxattrcb_client_id, + readonly: true, + hidden: false, + exists_cb: nullptr, + flags: 0, + }, + { name: "" } /* Required table terminator */ +}; + const Client::VXattr *Client::_get_vxattrs(Inode *in) { if (in->is_dir()) @@ -12064,7 +12111,16 @@ vxattr++; } } + + // for common vxattrs + vxattr = _common_vxattrs; + while (!vxattr->name.empty()) { + if (vxattr->name == name) + return vxattr; + vxattr++; + } } + return NULL; } diff -Nru ceph-14.2.11/src/client/Client.h ceph-14.2.18/src/client/Client.h --- ceph-14.2.11/src/client/Client.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/client/Client.h 2021-03-15 17:46:20.000000000 +0000 @@ -1005,9 +1005,11 @@ /* Flags for VXattr */ static const unsigned VXATTR_RSTAT = 0x1; + static const unsigned VXATTR_DIRSTAT = 0x2; static const VXattr _dir_vxattrs[]; static const VXattr _file_vxattrs[]; + static const VXattr _common_vxattrs[]; @@ -1157,6 +1159,9 @@ bool _vxattrcb_snap_btime_exists(Inode *in); size_t _vxattrcb_snap_btime(Inode *in, char *val, size_t size); + size_t _vxattrcb_cluster_fsid(Inode *in, char *val, size_t size); + size_t _vxattrcb_client_id(Inode *in, char *val, size_t size); + static const VXattr *_get_vxattrs(Inode *in); static const VXattr *_match_vxattr(Inode *in, const char *name); diff -Nru ceph-14.2.11/src/client/fuse_ll.cc ceph-14.2.18/src/client/fuse_ll.cc --- ceph-14.2.11/src/client/fuse_ll.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/client/fuse_ll.cc 2021-03-15 17:46:20.000000000 +0000 @@ -135,7 +135,8 @@ static void get_fuse_groups(UserPerm& perms, fuse_req_t req) { - if (g_conf().get_val("fuse_set_user_groups")) { + CephFuse::Handle *cfuse = (CephFuse::Handle *)fuse_req_userdata(req); + if (cfuse->client->cct->_conf.get_val("fuse_set_user_groups")) { gid_t *gids = NULL; int count = getgroups(req, &gids); diff -Nru ceph-14.2.11/src/cls/otp/cls_otp_client.cc ceph-14.2.18/src/cls/otp/cls_otp_client.cc --- ceph-14.2.11/src/cls/otp/cls_otp_client.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/cls/otp/cls_otp_client.cc 2021-03-15 17:46:20.000000000 +0000 @@ -22,7 +22,7 @@ #include "cls/otp/cls_otp_ops.h" #include "cls/otp/cls_otp_client.h" -#include "rgw/rgw_common.h" /* for gen_random_bytes() */ +#include "common/random_string.h" /* for gen_rand_alphanumeric */ namespace rados { namespace cls { @@ -61,9 +61,7 @@ op.id = id; op.val = val; #define TOKEN_LEN 16 - char buf[TOKEN_LEN + 1]; - gen_rand_alphanumeric(cct, buf, sizeof(buf));; - op.token = buf; + op.token = gen_rand_alphanumeric(cct, TOKEN_LEN); bufferlist in; bufferlist out; @@ -74,7 +72,7 @@ } cls_otp_get_result_op op2; - op2.token = buf; + op2.token = op.token; bufferlist in2; bufferlist out2; encode(op2, in2); diff -Nru ceph-14.2.11/src/cls/rbd/cls_rbd_types.cc ceph-14.2.18/src/cls/rbd/cls_rbd_types.cc --- ceph-14.2.11/src/cls/rbd/cls_rbd_types.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/cls/rbd/cls_rbd_types.cc 2021-03-15 17:46:20.000000000 +0000 @@ -801,6 +801,9 @@ case MIGRATION_STATE_EXECUTED: os << "executed"; break; + case MIGRATION_STATE_ABORTING: + os << "aborting"; + break; default: os << "unknown (" << static_cast(migration_state) << ")"; break; diff -Nru ceph-14.2.11/src/cls/rbd/cls_rbd_types.h ceph-14.2.18/src/cls/rbd/cls_rbd_types.h --- ceph-14.2.11/src/cls/rbd/cls_rbd_types.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/cls/rbd/cls_rbd_types.h 2021-03-15 17:46:20.000000000 +0000 @@ -700,6 +700,7 @@ MIGRATION_STATE_PREPARED = 2, MIGRATION_STATE_EXECUTING = 3, MIGRATION_STATE_EXECUTED = 4, + MIGRATION_STATE_ABORTING = 5, }; inline void encode(const MigrationState &state, bufferlist& bl) { diff -Nru ceph-14.2.11/src/cls/rgw/cls_rgw.cc ceph-14.2.18/src/cls/rgw/cls_rgw.cc --- ceph-14.2.11/src/cls/rgw/cls_rgw.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/cls/rgw/cls_rgw.cc 2021-03-15 17:46:20.000000000 +0000 @@ -505,6 +505,7 @@ calc_header->tag_timeout = existing_header->tag_timeout; calc_header->ver = existing_header->ver; + calc_header->syncstopped = existing_header->syncstopped; map keys; string start_obj; @@ -867,7 +868,9 @@ } entry.index_ver = header.ver; - entry.flags = (entry.key.instance.empty() ? 0 : RGW_BUCKET_DIRENT_FLAG_VER); /* resetting entry flags, entry might have been previously a delete marker */ + /* resetting entry flags, entry might have been previously a delete + * marker */ + entry.flags &= RGW_BUCKET_DIRENT_FLAG_VER; if (op.tag.size()) { map::iterator pinter = entry.pending_map.find(op.tag); @@ -1692,7 +1695,9 @@ olh.update(next_key, next.is_delete_marker()); olh.update_log(CLS_RGW_OLH_OP_LINK_OLH, op.op_tag, next_key, next.is_delete_marker()); } else { - /* next_key is empty */ + // next_key is empty, but we need to preserve its name in case this entry + // gets resharded, because this key is used for hash placement + next_key.name = dest_key.name; olh.update(next_key, false); olh.update_log(CLS_RGW_OLH_OP_UNLINK_OLH, op.op_tag, next_key, false); olh.set_exists(false); diff -Nru ceph-14.2.11/src/cls/rgw/cls_rgw_types.h ceph-14.2.18/src/cls/rgw/cls_rgw_types.h --- ceph-14.2.11/src/cls/rgw/cls_rgw_types.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/cls/rgw/cls_rgw_types.h 2021-03-15 17:46:20.000000000 +0000 @@ -292,9 +292,15 @@ } return (r < 0); } + bool operator>(const cls_rgw_obj_key& k) const { + return k < *this; + } bool operator<=(const cls_rgw_obj_key& k) const { return !(k < *this); } + bool operator>=(const cls_rgw_obj_key& k) const { + return !(k > *this); + } bool empty() const { return name.empty(); } @@ -392,16 +398,18 @@ DECODE_FINISH(bl); } - bool is_current() { + bool is_current() const { int test_flags = RGW_BUCKET_DIRENT_FLAG_VER | RGW_BUCKET_DIRENT_FLAG_CURRENT; return (flags & RGW_BUCKET_DIRENT_FLAG_VER) == 0 || (flags & test_flags) == test_flags; } - bool is_delete_marker() { return (flags & RGW_BUCKET_DIRENT_FLAG_DELETE_MARKER) != 0; } - bool is_visible() { + bool is_delete_marker() const { + return (flags & RGW_BUCKET_DIRENT_FLAG_DELETE_MARKER) != 0; + } + bool is_visible() const { return is_current() && !is_delete_marker(); } - bool is_valid() { return (flags & RGW_BUCKET_DIRENT_FLAG_VER_MARKER) == 0; } + bool is_valid() const { return (flags & RGW_BUCKET_DIRENT_FLAG_VER_MARKER) == 0; } void dump(Formatter *f) const; void decode_json(JSONObj *obj); diff -Nru ceph-14.2.11/src/cls/user/cls_user.cc ceph-14.2.18/src/cls/user/cls_user.cc --- ceph-14.2.11/src/cls/user/cls_user.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/cls/user/cls_user.cc 2021-03-15 17:46:20.000000000 +0000 @@ -414,6 +414,9 @@ } add_header_stats(&header.stats, e); } + if (!keys.empty()) { + from_index = keys.rbegin()->first; + } } while (truncated); bufferlist bl; diff -Nru ceph-14.2.11/src/common/bit_str.h ceph-14.2.18/src/common/bit_str.h --- ceph-14.2.11/src/common/bit_str.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/bit_str.h 2021-03-15 17:46:20.000000000 +0000 @@ -14,6 +14,8 @@ #ifndef CEPH_COMMON_BIT_STR_H #define CEPH_COMMON_BIT_STR_H +#include +#include #include namespace ceph { diff -Nru ceph-14.2.11/src/common/buffer.cc ceph-14.2.18/src/common/buffer.cc --- ceph-14.2.11/src/common/buffer.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/buffer.cc 2021-03-15 17:46:20.000000000 +0000 @@ -1230,6 +1230,8 @@ std::unique_ptr nb) { unsigned pos = 0; + int mempool = _buffers.front().get_mempool(); + nb->reassign_to_mempool(mempool); for (auto& node : _buffers) { nb->copy_in(pos, node.length(), node.c_str(), false); pos += node.length(); diff -Nru ceph-14.2.11/src/common/ceph_context.cc ceph-14.2.18/src/common/ceph_context.cc --- ceph-14.2.11/src/common/ceph_context.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/ceph_context.cc 2021-03-15 17:46:20.000000000 +0000 @@ -42,6 +42,9 @@ #include "common/PluginRegistry.h" #include "common/valgrind.h" #include "include/spinlock.h" +#ifndef WITH_SEASTAR +#include "mon/MonMap.h" +#endif using ceph::bufferlist; using ceph::HeartbeatMap; @@ -951,4 +954,13 @@ for (auto &&t : _fork_watchers) t->handle_post_fork(); } + +void CephContext::set_mon_addrs(const MonMap& mm) { + std::vector mon_addrs; + for (auto& i : mm.mon_info) { + mon_addrs.push_back(i.second.public_addrs); + } + + set_mon_addrs(mon_addrs); +} #endif // WITH_SEASTAR diff -Nru ceph-14.2.11/src/common/ceph_context.h ceph-14.2.18/src/common/ceph_context.h --- ceph-14.2.11/src/common/ceph_context.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/ceph_context.h 2021-03-15 17:46:20.000000000 +0000 @@ -29,6 +29,7 @@ #include "common/cmdparse.h" #include "common/code_environment.h" +#include "msg/msg_types.h" #ifdef WITH_SEASTAR #include "crimson/common/config_proxy.h" #include "crimson/common/perf_counters_collection.h" @@ -47,6 +48,7 @@ class CephContextObs; class CryptoHandler; class CryptoRandom; +class MonMap; namespace ceph { class PluginRegistry; @@ -242,6 +244,21 @@ void notify_pre_fork(); void notify_post_fork(); + /** + * update CephContext with a copy of the passed in MonMap mon addrs + * + * @param mm MonMap to extract and update mon addrs + */ + void set_mon_addrs(const MonMap& mm); + void set_mon_addrs(const std::vector& in) { + auto ptr = std::make_shared>(in); + atomic_store_explicit(&_mon_addrs, std::move(ptr), std::memory_order_relaxed); + } + std::shared_ptr> get_mon_addrs() const { + auto ptr = atomic_load_explicit(&_mon_addrs, std::memory_order_relaxed); + return ptr; + } + private: @@ -259,6 +276,8 @@ int _crypto_inited; + std::shared_ptr> _mon_addrs; + /* libcommon service thread. * SIGHUP wakes this thread, which then reopens logfiles */ friend class CephContextServiceThread; diff -Nru ceph-14.2.11/src/common/CMakeLists.txt ceph-14.2.18/src/common/CMakeLists.txt --- ceph-14.2.11/src/common/CMakeLists.txt 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/CMakeLists.txt 2021-03-15 17:46:20.000000000 +0000 @@ -82,6 +82,7 @@ perf_counters_collection.cc perf_histogram.cc pick_address.cc + random_string.cc reverse.c run_cmd.cc scrub_types.cc diff -Nru ceph-14.2.11/src/common/cohort_lru.h ceph-14.2.18/src/common/cohort_lru.h --- ceph-14.2.11/src/common/cohort_lru.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/cohort_lru.h 2021-03-15 17:46:20.000000000 +0000 @@ -42,6 +42,8 @@ typedef bi::link_mode link_mode; + class ObjectFactory; // Forward declaration + class Object { private: @@ -70,7 +72,7 @@ uint32_t get_refcnt() const { return lru_refcnt; } - virtual bool reclaim() = 0; + virtual bool reclaim(const ObjectFactory* newobj_fac) = 0; virtual ~Object() {} @@ -132,7 +134,7 @@ (!(o->lru_flags & FLAG_EVICTING))); } - Object* evict_block() { + Object* evict_block(const ObjectFactory* newobj_fac) { uint32_t lane_ix = next_evict_lane(); for (int ix = 0; ix < n_lanes; ++ix, lane_ix = next_evict_lane()) { @@ -144,7 +146,7 @@ ++(o->lru_refcnt); o->lru_flags |= FLAG_EVICTING; lane.lock.unlock(); - if (o->reclaim()) { + if (o->reclaim(newobj_fac)) { lane.lock.lock(); --(o->lru_refcnt); /* assertions that o state has not changed across @@ -236,7 +238,7 @@ Object* insert(ObjectFactory* fac, Edge edge, uint32_t& flags) { /* use supplied functor to re-use an evicted object, or * allocate a new one of the descendant type */ - Object* o = evict_block(); + Object* o = evict_block(fac); if (o) { fac->recycle(o); /* recycle existing object */ flags |= FLAG_RECYCLE; @@ -425,7 +427,9 @@ lat.lock->unlock(); return v; } /* find_latch */ - + bool is_same_partition(uint64_t lhs, uint64_t rhs) { + return ((lhs % n_part) == (rhs % n_part)); + } void insert_latched(T* v, Latch& lat, uint32_t flags) { (void) lat.p->tr.insert_unique_commit(*v, lat.commit_data); if (flags & FLAG_UNLOCK) diff -Nru ceph-14.2.11/src/common/config.cc ceph-14.2.18/src/common/config.cc --- ceph-14.2.11/src/common/config.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/config.cc 2021-03-15 17:46:20.000000000 +0000 @@ -295,8 +295,8 @@ std::string err; int r = _set_val(values, tracker, i.second, *o, CONF_MON, &err); if (r < 0) { - lderr(cct) << __func__ << " failed to set " << i.first << " = " - << i.second << ": " << err << dendl; + ldout(cct, 4) << __func__ << " failed to set " << i.first << " = " + << i.second << ": " << err << dendl; ignored_mon_values.emplace(i); } else if (r == ConfigValues::SET_NO_CHANGE || r == ConfigValues::SET_NO_EFFECT) { @@ -1110,17 +1110,19 @@ bool md_config_t::finalize_reexpand_meta(ConfigValues& values, const ConfigTracker& tracker) { - for (auto& [name, value] : may_reexpand_meta) { - set_val(values, tracker, name, value); - } - - if (!may_reexpand_meta.empty()) { - // meta expands could have modified anything. Copy it all out again. - update_legacy_vals(values); - return true; - } else { - return false; + std::vector reexpands; + reexpands.swap(may_reexpand_meta); + for (auto& name : reexpands) { + // always refresh the options if they are in the may_reexpand_meta + // map, because the options may have already been expanded with old + // meta. + const auto &opt_iter = schema.find(name); + ceph_assert(opt_iter != schema.end()); + const Option &opt = opt_iter->second; + _refresh(values, opt); } + + return !may_reexpand_meta.empty(); } Option::value_t md_config_t::_expand_meta( @@ -1204,7 +1206,7 @@ } else if (var == "pid") { out += stringify(getpid()); if (o) { - may_reexpand_meta[o->name] = *str; + may_reexpand_meta.push_back(o->name); } } else if (var == "cctid") { out += stringify((unsigned long long)this); diff -Nru ceph-14.2.11/src/common/config.h ceph-14.2.18/src/common/config.h --- ceph-14.2.11/src/common/config.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/config.h 2021-03-15 17:46:20.000000000 +0000 @@ -101,7 +101,7 @@ std::map ignored_mon_values; /// original raw values saved that may need to re-expand at certain time - mutable std::map may_reexpand_meta; + mutable std::vector may_reexpand_meta; /// encoded, cached copy of of values + ignored_mon_values bufferlist values_bl; diff -Nru ceph-14.2.11/src/common/config_proxy.h ceph-14.2.18/src/common/config_proxy.h --- ceph-14.2.11/src/common/config_proxy.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/config_proxy.h 2021-03-15 17:46:20.000000000 +0000 @@ -193,7 +193,6 @@ rev_obs_map_t rev_obs; if (config.finalize_reexpand_meta(values, obs_mgr)) { _gather_changes(values.changed, &rev_obs, nullptr); - values.changed.clear(); } call_observers(locker, rev_obs); @@ -250,7 +249,6 @@ if (!values.cluster.empty()) { // meta expands could have modified anything. Copy it all out again. _gather_changes(values.changed, &rev_obs, oss); - values.changed.clear(); } call_observers(locker, rev_obs); @@ -262,6 +260,7 @@ [this, rev_obs](md_config_obs_t *obs, const std::string &key) { map_observer_changes(obs, key, rev_obs); }, oss); + changes.clear(); } int set_val(const std::string& key, const std::string& s, std::stringstream* err_ss=nullptr) { @@ -284,7 +283,6 @@ rev_obs_map_t rev_obs; _gather_changes(values.changed, &rev_obs, nullptr); - values.changed.clear(); call_observers(locker, rev_obs); return ret; @@ -295,7 +293,6 @@ rev_obs_map_t rev_obs; _gather_changes(values.changed, &rev_obs, oss); - values.changed.clear(); call_observers(locker, rev_obs); return ret; diff -Nru ceph-14.2.11/src/common/ipaddr.cc ceph-14.2.18/src/common/ipaddr.cc --- ceph-14.2.11/src/common/ipaddr.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/ipaddr.cc 2021-03-15 17:46:20.000000000 +0000 @@ -3,6 +3,7 @@ #include #include #include +#include #if defined(__FreeBSD__) #include #include @@ -50,13 +51,12 @@ struct in_addr want, temp; netmask_ipv4(&net->sin_addr, prefix_len, &want); - for (; addrs != NULL; addrs = addrs->ifa_next) { if (addrs->ifa_addr == NULL) continue; - if (strcmp(addrs->ifa_name, "lo") == 0) + if (boost::starts_with(addrs->ifa_name, "lo:")) continue; if (numa_node >= 0 && !match_numa_node(addrs->ifa_name, numa_node)) @@ -98,13 +98,12 @@ struct in6_addr want, temp; netmask_ipv6(&net->sin6_addr, prefix_len, &want); - for (; addrs != NULL; addrs = addrs->ifa_next) { if (addrs->ifa_addr == NULL) continue; - if (strcmp(addrs->ifa_name, "lo") == 0) + if (boost::starts_with(addrs->ifa_name, "lo")) continue; if (numa_node >= 0 && !match_numa_node(addrs->ifa_name, numa_node)) diff -Nru ceph-14.2.11/src/common/legacy_config_opts.h ceph-14.2.18/src/common/legacy_config_opts.h --- ceph-14.2.11/src/common/legacy_config_opts.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/legacy_config_opts.h 2021-03-15 17:46:20.000000000 +0000 @@ -96,6 +96,7 @@ OPTION(compressor_zlib_isal, OPT_BOOL) OPTION(compressor_zlib_level, OPT_INT) //regular zlib compression level, not applicable to isa-l optimized version +OPTION(compressor_zstd_level, OPT_INT) //regular zstd compression level OPTION(qat_compressor_enabled, OPT_BOOL) @@ -271,6 +272,7 @@ OPTION(mon_health_to_clog, OPT_BOOL) OPTION(mon_health_to_clog_interval, OPT_INT) OPTION(mon_health_to_clog_tick_interval, OPT_DOUBLE) +OPTION(mon_health_detail_to_clog, OPT_BOOL) OPTION(mon_data_avail_crit, OPT_INT) OPTION(mon_data_avail_warn, OPT_INT) OPTION(mon_data_size_warn, OPT_U64) // issue a warning when the monitor's data store goes over 15GB (in bytes) @@ -951,6 +953,9 @@ OPTION(bluefs_sync_write, OPT_BOOL) OPTION(bluefs_allocator, OPT_STR) // stupid | bitmap OPTION(bluefs_preextend_wal_files, OPT_BOOL) // this *requires* that rocksdb has recycling enabled +OPTION(bluefs_replay_recovery, OPT_BOOL) +OPTION(bluefs_replay_recovery_disable_compact, OPT_BOOL) +OPTION(bluefs_check_for_zeros, OPT_BOOL) OPTION(bluestore_bluefs, OPT_BOOL) OPTION(bluestore_bluefs_env_mirror, OPT_BOOL) // mirror to normal Env for debug @@ -1071,6 +1076,8 @@ OPTION(bluestore_debug_misc, OPT_BOOL) OPTION(bluestore_debug_no_reuse_blocks, OPT_BOOL) OPTION(bluestore_debug_small_allocations, OPT_INT) +OPTION(bluestore_debug_max_cached_onodes, OPT_INT) +OPTION(bluestore_debug_too_many_blobs_threshold, OPT_INT) OPTION(bluestore_debug_freelist, OPT_BOOL) OPTION(bluestore_debug_prefill, OPT_FLOAT) OPTION(bluestore_debug_prefragment_max, OPT_INT) @@ -1092,6 +1099,7 @@ OPTION(bluestore_volume_selection_policy, OPT_STR) OPTION(bluestore_volume_selection_reserved_factor, OPT_DOUBLE) OPTION(bluestore_volume_selection_reserved, OPT_INT) +OPTION(bluestore_kv_sync_util_logging_s, OPT_DOUBLE) OPTION(kstore_max_ops, OPT_U64) OPTION(kstore_max_bytes, OPT_U64) @@ -1470,6 +1478,7 @@ OPTION(rgw_curl_low_speed_time, OPT_INT) // low speed time for certain curl calls OPTION(rgw_copy_obj_progress, OPT_BOOL) // should dump progress during long copy operations? OPTION(rgw_copy_obj_progress_every_bytes, OPT_INT) // min bytes between copy progress output +OPTION(rgw_sync_obj_etag_verify, OPT_BOOL) // verify if the copied object from remote is identical to source OPTION(rgw_obj_tombstone_cache_size, OPT_INT) // how many objects in tombstone cache, which is used in multi-zone sync to keep // track of removed objects' mtime diff -Nru ceph-14.2.11/src/common/options.cc ceph-14.2.18/src/common/options.cc --- ceph-14.2.11/src/common/options.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/options.cc 2021-03-15 17:46:20.000000000 +0000 @@ -419,6 +419,12 @@ .set_flag(Option::FLAG_STARTUP) .add_service("common"), + Option("mon_host_override", Option::TYPE_STR, Option::LEVEL_ADVANCED) + .set_description("monitor(s) to use overriding the MonMap") + .set_flag(Option::FLAG_NO_MON_UPDATE) + .set_flag(Option::FLAG_STARTUP) + .add_service("common"), + Option("mon_dns_srv_name", Option::TYPE_STR, Option::LEVEL_ADVANCED) .set_default("ceph-mon") .set_description("name of DNS SRV record to check for monitor addresses") @@ -816,6 +822,10 @@ .set_default(5) .set_description("Zlib compression level to use"), + Option("compressor_zstd_level", Option::TYPE_INT, Option::LEVEL_ADVANCED) + .set_default(1) + .set_description("Zstd compression level to use"), + Option("qat_compressor_enabled", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) .set_default(false) .set_description("Enable Intel QAT acceleration support for compression if available"), @@ -1511,6 +1521,11 @@ .add_service("mgr") .set_description("issue REQUEST_SLOW health warning if OSD ops are slower than this age (seconds)"), + Option("mon_osd_warn_num_repaired", Option::TYPE_UINT, Option::LEVEL_ADVANCED) + .set_default(10) + .add_service("mon") + .set_description("issue OSD_TOO_MANY_REPAIRS health warning if an OSD has more than this many read repairs"), + Option("mon_osd_err_op_age_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) .set_default(128) .add_service("mgr") @@ -1856,7 +1871,7 @@ .set_description("log monitor health to cluster log"), Option("mon_health_to_clog_interval", Option::TYPE_INT, Option::LEVEL_ADVANCED) - .set_default(1_hr) + .set_default(10_min) .add_service("mon") .set_description("frequency to log monitor health to cluster log") .add_see_also("mon_health_to_clog"), @@ -1866,6 +1881,10 @@ .add_service("mon") .set_description(""), + Option("mon_health_detail_to_clog", Option::TYPE_BOOL, Option::LEVEL_DEV) + .set_default(true) + .set_description("log health detail to cluster log"), + Option("mon_health_max_detail", Option::TYPE_UINT, Option::LEVEL_ADVANCED) .set_default(50) .add_service("mon") @@ -3585,6 +3604,7 @@ Option("osd_scrub_max_preemptions", Option::TYPE_UINT, Option::LEVEL_ADVANCED) .set_default(5) + .set_min_max(0, 30) .set_description("Set the maximum number of times we will preempt a deep scrub due to a client operation before blocking client IO to complete the scrub"), Option("osd_deep_scrub_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) @@ -3863,11 +3883,11 @@ .set_description("Time in seconds to sleep before next removal transaction for HDDs"), Option("osd_delete_sleep_ssd", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) - .set_default(0) + .set_default(1) .set_description("Time in seconds to sleep before next removal transaction for SSDs"), Option("osd_delete_sleep_hybrid", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) - .set_default(2) + .set_default(1) .set_description("Time in seconds to sleep before next removal transaction when data is on HDD and journal is on SSD"), Option("osd_failsafe_full_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) @@ -4316,6 +4336,18 @@ Option("bdev_async_discard", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) .set_default(false) .set_description(""), + + Option("bdev_flock_retry_interval", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.1) + .set_description("interval to retry the flock"), + + Option("bdev_flock_retry", Option::TYPE_UINT, Option::LEVEL_ADVANCED) + .set_default(3) + .set_description("times to retry the flock") + .set_long_description( + "The number of times to retry on getting the block device lock. " + "Programs such as systemd-udevd may compete with Ceph for this lock. " + "0 means 'unlimited'."), Option("bluefs_alloc_size", Option::TYPE_SIZE, Option::LEVEL_ADVANCED) .set_default(1_M) @@ -4371,6 +4403,25 @@ .set_default(false) .set_description(""), + Option("bluefs_replay_recovery", Option::TYPE_BOOL, Option::LEVEL_DEV) + .set_default(false) + .set_description("Attempt to read bluefs log so large that it became unreadable.") + .set_long_description("If BlueFS log grows to extreme sizes (200GB+) it is likely that it becames unreadable. " + "This options enables heuristics that scans devices for missing data. " + "DO NOT ENABLE BY DEFAULT"), + + Option("bluefs_replay_recovery_disable_compact", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description(""), + + Option("bluefs_check_for_zeros", Option::TYPE_BOOL, Option::LEVEL_DEV) + .set_default(false) + .set_flag(Option::FLAG_RUNTIME) + .set_description("Check data read for suspicious pages") + .set_long_description("Looks into data read to check if there is a 4K block entirely filled with zeros. " + "If this happens, we re-read data. If there is difference, we print error to log.") + .add_see_also("bluestore_retry_disk_reads"), + Option("bluestore_bluefs", Option::TYPE_BOOL, Option::LEVEL_DEV) .set_default(true) .set_flag(Option::FLAG_CREATE) @@ -4871,6 +4922,14 @@ Option("bluestore_debug_small_allocations", Option::TYPE_INT, Option::LEVEL_DEV) .set_default(0) .set_description(""), + Option("bluestore_debug_max_cached_onodes", Option::TYPE_INT, Option::LEVEL_DEV) + .set_default(0) + .set_description("This allows to explicitly cap number of onode entries per cache shard " + "effectively bypassing all the smart but indirect cache adjustment logic." + " Intended for testing purposes only "), + Option("bluestore_debug_too_many_blobs_threshold", Option::TYPE_INT, Option::LEVEL_DEV) + .set_default(24*1024) + .set_description(""), Option("bluestore_debug_freelist", Option::TYPE_BOOL, Option::LEVEL_DEV) .set_default(false) @@ -4945,7 +5004,7 @@ .set_description("log collection list operation if it's slower than this age (seconds)"), Option("bluestore_volume_selection_policy", Option::TYPE_STR, Option::LEVEL_DEV) - .set_default("rocksdb_original") + .set_default("use_some_extra") .set_enum_allowed({ "rocksdb_original", "use_some_extra" }) .set_description("Determines bluefs volume selection policy") .set_long_description("Determines bluefs volume selection policy. 'use_some_extra' policy allows to override RocksDB level granularity and put high level's data to faster device even when the level doesn't completely fit there"), @@ -4972,6 +5031,14 @@ .set_default(64_M) .set_description("Maximum RAM hybrid allocator should use before enabling bitmap supplement"), + Option("bluestore_kv_sync_util_logging_s", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10.0) + .set_flag(Option::FLAG_RUNTIME) + .set_description("KV sync thread utilization logging period") + .set_long_description("How often (in seconds) to print KV sync thread utilization, " + "not logged when set to 0 or when utilization is 0%"), + + // ----------------------------------------- // kstore @@ -6588,6 +6655,15 @@ .set_default(1_M) .set_description("Send copy-object progress info after these many bytes"), + Option("rgw_sync_obj_etag_verify", Option::TYPE_BOOL, Option::LEVEL_ADVANCED) + .set_default(false) + .set_description("Verify if the object copied from remote is identical to its source") + .set_long_description( + "If true, this option computes the MD5 checksum of the data which is written at the " + "destination and checks if it is identical to the ETAG stored in the source. " + "It ensures integrity of the objects fetched from a remote server over HTTP including " + "multisite sync."), + Option("rgw_obj_tombstone_cache_size", Option::TYPE_INT, Option::LEVEL_ADVANCED) .set_default(1000) .set_description("Max number of entries to keep in tombstone cache") @@ -7581,6 +7657,12 @@ .set_default(60) .set_min(0) .set_description("RBD Image access timestamp refresh interval. Set to 0 to disable access timestamp update."), + + Option("rbd_config_pool_override_update_timestamp", Option::TYPE_UINT, + Option::LEVEL_DEV) + .set_default(0) + .set_description("timestamp of last update to pool-level config overrides"), + }); } @@ -7714,7 +7796,7 @@ .set_description("decay rate for trimming MDS cache throttle"), Option("mds_cache_trim_threshold", Option::TYPE_SIZE, Option::LEVEL_ADVANCED) - .set_default(64_K) + .set_default(256_K) .set_description("threshold for number of dentries that can be trimmed"), Option("mds_max_file_recover", Option::TYPE_UINT, Option::LEVEL_ADVANCED) @@ -7762,23 +7844,23 @@ .set_description("number of omap keys to read from the SessionMap in one operation"), Option("mds_recall_max_caps", Option::TYPE_SIZE, Option::LEVEL_ADVANCED) - .set_default(5000) + .set_default(30000) .set_description("maximum number of caps to recall from client session in single recall"), Option("mds_recall_max_decay_rate", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) - .set_default(2.5) + .set_default(1.5) .set_description("decay rate for throttle on recalled caps on a session"), Option("mds_recall_max_decay_threshold", Option::TYPE_SIZE, Option::LEVEL_ADVANCED) - .set_default(16_K) + .set_default(128_K) .set_description("decay threshold for throttle on recalled caps on a session"), Option("mds_recall_global_max_decay_threshold", Option::TYPE_SIZE, Option::LEVEL_ADVANCED) - .set_default(64_K) + .set_default(128_K) .set_description("decay threshold for throttle on recalled caps globally"), Option("mds_recall_warning_threshold", Option::TYPE_SIZE, Option::LEVEL_ADVANCED) - .set_default(32_K) + .set_default(256_K) .set_description("decay threshold for warning on slow session cap recall"), Option("mds_recall_warning_decay_rate", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) @@ -7797,6 +7879,24 @@ .set_description("decay magnitude for preemptively recalling caps on quiet client") .set_long_description("This is the order of magnitude difference (in base 2) of the internal liveness decay counter and the number of capabilities the session holds. When this difference occurs, the MDS treats the session as quiescent and begins recalling capabilities."), + Option("mds_session_cap_acquisition_decay_rate", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(10) + .set_description("decay rate for session readdir caps leading to readdir throttle") + .set_flag(Option::FLAG_RUNTIME) + .set_long_description("The half-life for the session cap acquisition counter of caps acquired by readdir. This is used for throttling readdir requests from clients slow to release caps."), + + Option("mds_session_cap_acquisition_throttle", Option::TYPE_UINT, Option::LEVEL_ADVANCED) + .set_default(500000) + .set_description("throttle point for cap acquisition decay counter"), + + Option("mds_session_max_caps_throttle_ratio", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(1.1) + .set_description("ratio of mds_max_maps_per_client that client must exceed before readdir may be throttled by cap acquisition throttle"), + + Option("mds_cap_acquisition_throttle_retry_request_timeout", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED) + .set_default(0.5) + .set_description("timeout in seconds after which a client request is retried due to cap acquisition throttling"), + Option("mds_freeze_tree_timeout", Option::TYPE_FLOAT, Option::LEVEL_DEV) .set_default(30) .set_description(""), diff -Nru ceph-14.2.11/src/common/PluginRegistry.h ceph-14.2.18/src/common/PluginRegistry.h --- ceph-14.2.11/src/common/PluginRegistry.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/PluginRegistry.h 2021-03-15 17:46:20.000000000 +0000 @@ -19,6 +19,7 @@ #define CEPH_COMMON_PLUGINREGISTRY_H #include +#include #include "common/ceph_mutex.h" class CephContext; diff -Nru ceph-14.2.11/src/common/Preforker.h ceph-14.2.18/src/common/Preforker.h --- ceph-14.2.11/src/common/Preforker.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/Preforker.h 2021-03-15 17:46:20.000000000 +0000 @@ -3,6 +3,7 @@ #ifndef CEPH_COMMON_PREFORKER_H #define CEPH_COMMON_PREFORKER_H +#include #include #include #include @@ -44,6 +45,17 @@ err = oss.str(); return (errno = e, -1); } + + struct sigaction sa; + sa.sa_handler = SIG_IGN; + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + if (sigaction(SIGHUP, &sa, nullptr) != 0) { + int e = errno; + oss << "[" << getpid() << "]: unable to ignore SIGHUP: " << cpp_strerror(e); + err = oss.str(); + return (errno = e, -1); + } forked = true; diff -Nru ceph-14.2.11/src/common/random_string.cc ceph-14.2.18/src/common/random_string.cc --- ceph-14.2.11/src/common/random_string.cc 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/common/random_string.cc 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,127 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab ft=cpp + +#include +#include "auth/Crypto.h" +#include "common/armor.h" +#include "common/ceph_context.h" +#include "common/dout.h" +#include "random_string.h" + +int gen_rand_base64(CephContext *cct, char *dest, size_t size) /* size should be the required string size + 1 */ +{ + char buf[size]; + char tmp_dest[size + 4]; /* so that there's space for the extra '=' characters, and some */ + int ret; + + cct->random()->get_bytes(buf, sizeof(buf)); + + ret = ceph_armor(tmp_dest, &tmp_dest[sizeof(tmp_dest)], + (const char *)buf, ((const char *)buf) + ((size - 1) * 3 + 4 - 1) / 4); + if (ret < 0) { + lderr(cct) << "ceph_armor failed" << dendl; + return ret; + } + tmp_dest[ret] = '\0'; + memcpy(dest, tmp_dest, size); + dest[size-1] = '\0'; + + return 0; +} + +// choose 'size' random characters from the given string table +static void choose_from(CryptoRandom* random, std::string_view table, + char *dest, size_t size) +{ + random->get_bytes(dest, size); + + for (size_t i = 0; i < size; i++) { + auto pos = static_cast(dest[i]); + dest[i] = table[pos % table.size()]; + } +} + + +void gen_rand_alphanumeric(CephContext *cct, char *dest, size_t size) /* size should be the required string size + 1 */ +{ + // this is basically a modified base64 charset, url friendly + static constexpr char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; + choose_from(cct->random(), table, dest, size-1); + dest[size-1] = 0; +} + +std::string gen_rand_alphanumeric(CephContext *cct, size_t size) +{ + std::string str; + str.resize(size + 1); + gen_rand_alphanumeric(cct, str.data(), str.size()); + str.pop_back(); // pop the extra \0 + return str; +} + +void gen_rand_alphanumeric_lower(CephContext *cct, char *dest, size_t size) /* size should be the required string size + 1 */ +{ + static constexpr char table[] = "0123456789abcdefghijklmnopqrstuvwxyz"; + choose_from(cct->random(), table, dest, size-1); + dest[size-1] = 0; +} + +std::string gen_rand_alphanumeric_lower(CephContext *cct, size_t size) +{ + std::string str; + str.resize(size + 1); + gen_rand_alphanumeric_lower(cct, str.data(), str.size()); + str.pop_back(); // pop the extra \0 + return str; +} + + +void gen_rand_alphanumeric_upper(CephContext *cct, char *dest, size_t size) /* size should be the required string size + 1 */ +{ + static constexpr char table[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + choose_from(cct->random(), table, dest, size-1); + dest[size-1] = 0; +} + +std::string gen_rand_alphanumeric_upper(CephContext *cct, size_t size) +{ + std::string str; + str.resize(size + 1); + gen_rand_alphanumeric_upper(cct, str.data(), str.size()); + str.pop_back(); // pop the extra \0 + return str; +} + + +void gen_rand_alphanumeric_no_underscore(CephContext *cct, char *dest, size_t size) /* size should be the required string size + 1 */ +{ + static constexpr char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-."; + choose_from(cct->random(), table, dest, size-1); + dest[size-1] = 0; +} + +std::string gen_rand_alphanumeric_no_underscore(CephContext *cct, size_t size) +{ + std::string str; + str.resize(size + 1); + gen_rand_alphanumeric_no_underscore(cct, str.data(), str.size()); + str.pop_back(); // pop the extra \0 + return str; +} + + +void gen_rand_alphanumeric_plain(CephContext *cct, char *dest, size_t size) /* size should be the required string size + 1 */ +{ + static constexpr char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + choose_from(cct->random(), table, dest, size-1); + dest[size-1] = 0; +} + +std::string gen_rand_alphanumeric_plain(CephContext *cct, size_t size) +{ + std::string str; + str.resize(size + 1); + gen_rand_alphanumeric_plain(cct, str.data(), str.size()); + str.pop_back(); // pop the extra \0 + return str; +} diff -Nru ceph-14.2.11/src/common/random_string.h ceph-14.2.18/src/common/random_string.h --- ceph-14.2.11/src/common/random_string.h 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/common/random_string.h 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,36 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab ft=cpp + +/* + * Ceph - scalable distributed file system + * + * Copyright (C) 2004-2009 Sage Weil + * Copyright (C) 2015 Yehuda Sadeh + * + * This is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software + * Foundation. See file COPYING. + * + */ + +#pragma once + +#include + +class CephContext; + +/* size should be the required string size + 1 */ +int gen_rand_base64(CephContext *cct, char *dest, size_t size); +void gen_rand_alphanumeric(CephContext *cct, char *dest, size_t size); +void gen_rand_alphanumeric_lower(CephContext *cct, char *dest, size_t size); +void gen_rand_alphanumeric_upper(CephContext *cct, char *dest, size_t size); +void gen_rand_alphanumeric_no_underscore(CephContext *cct, char *dest, size_t size); +void gen_rand_alphanumeric_plain(CephContext *cct, char *dest, size_t size); + +// returns a std::string with 'size' random characters +std::string gen_rand_alphanumeric(CephContext *cct, size_t size); +std::string gen_rand_alphanumeric_lower(CephContext *cct, size_t size); +std::string gen_rand_alphanumeric_upper(CephContext *cct, size_t size); +std::string gen_rand_alphanumeric_no_underscore(CephContext *cct, size_t size); +std::string gen_rand_alphanumeric_plain(CephContext *cct, size_t size); diff -Nru ceph-14.2.11/src/common/WorkQueue.h ceph-14.2.18/src/common/WorkQueue.h --- ceph-14.2.11/src/common/WorkQueue.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/common/WorkQueue.h 2021-03-15 17:46:20.000000000 +0000 @@ -431,16 +431,25 @@ } void requeue_front(T *item) { std::lock_guard pool_locker(m_pool->_lock); + requeue_front(pool_locker, item); + } + void requeue_front(const std::lock_guard&, T *item) { _void_process_finish(nullptr); m_items.push_front(item); } void requeue_back(T *item) { std::lock_guard pool_locker(m_pool->_lock); + requeue_back(pool_locker, item); + } + void requeue_back(const std::lock_guard&, T *item) { _void_process_finish(nullptr); m_items.push_back(item); } void signal() { std::lock_guard pool_locker(m_pool->_lock); + signal(pool_locker); + } + void signal(const std::lock_guard&) { m_pool->_cond.notify_one(); } ceph::mutex &get_pool_lock() { diff -Nru ceph-14.2.11/src/compressor/zstd/CompressionPluginZstd.h ceph-14.2.18/src/compressor/zstd/CompressionPluginZstd.h --- ceph-14.2.11/src/compressor/zstd/CompressionPluginZstd.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/compressor/zstd/CompressionPluginZstd.h 2021-03-15 17:46:20.000000000 +0000 @@ -32,7 +32,7 @@ std::ostream *ss) override { if (compressor == 0) { - ZstdCompressor *interface = new ZstdCompressor(); + ZstdCompressor *interface = new ZstdCompressor(cct); compressor = CompressorRef(interface); } *cs = compressor; diff -Nru ceph-14.2.11/src/compressor/zstd/ZstdCompressor.h ceph-14.2.18/src/compressor/zstd/ZstdCompressor.h --- ceph-14.2.11/src/compressor/zstd/ZstdCompressor.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/compressor/zstd/ZstdCompressor.h 2021-03-15 17:46:20.000000000 +0000 @@ -22,15 +22,13 @@ #include "include/encoding.h" #include "compressor/Compressor.h" -#define COMPRESSION_LEVEL 5 - class ZstdCompressor : public Compressor { public: - ZstdCompressor() : Compressor(COMP_ALG_ZSTD, "zstd") {} + ZstdCompressor(CephContext *cct) : Compressor(COMP_ALG_ZSTD, "zstd"), cct(cct) {} int compress(const bufferlist &src, bufferlist &dst) override { ZSTD_CStream *s = ZSTD_createCStream(); - ZSTD_initCStream_srcSize(s, COMPRESSION_LEVEL, src.length()); + ZSTD_initCStream_srcSize(s, cct->_conf->compressor_zstd_level, src.length()); auto p = src.begin(); size_t left = src.length(); @@ -101,6 +99,8 @@ dst.append(dstptr, 0, outbuf.pos); return 0; } + private: + CephContext *const cct; }; #endif diff -Nru ceph-14.2.11/src/crush/CrushWrapper.h ceph-14.2.18/src/crush/CrushWrapper.h --- ceph-14.2.11/src/crush/CrushWrapper.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/crush/CrushWrapper.h 2021-03-15 17:46:20.000000000 +0000 @@ -1321,6 +1321,7 @@ crush->max_devices = name_map.rbegin()->first + 1; } have_uniform_rules = !has_legacy_rule_ids(); + build_rmaps(); } int bucket_set_alg(int id, int alg); diff -Nru ceph-14.2.11/src/.git_version ceph-14.2.18/src/.git_version --- ceph-14.2.11/src/.git_version 2020-08-10 20:17:51.000000000 +0000 +++ ceph-14.2.18/src/.git_version 2021-03-15 17:48:31.000000000 +0000 @@ -1,2 +1,2 @@ -f7fdb2f52131f54b891a2ec99d8205561242cdaf -v14.2.11 +befbc92f3c11eedd8626487211d200c0b44786d9 +v14.2.18 diff -Nru ceph-14.2.11/src/global/global_init.cc ceph-14.2.18/src/global/global_init.cc --- ceph-14.2.11/src/global/global_init.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/global/global_init.cc 2021-03-15 17:46:20.000000000 +0000 @@ -150,18 +150,6 @@ cct->_log->start(); } - if (!conf->no_mon_config) { - // make sure our mini-session gets legacy values - conf.apply_changes(nullptr); - - MonClient mc_bootstrap(g_ceph_context); - if (mc_bootstrap.get_monmap_and_config() < 0) { - cct->_log->flush(); - cerr << "failed to fetch mon config (--no-mon-config to skip)" - << std::endl; - _exit(1); - } - } if (!cct->_log->is_started()) { cct->_log->start(); } @@ -334,6 +322,28 @@ # endif #endif + // + // Utterly important to run first network connection after setuid(). + // In case of rdma transport uverbs kernel module starts returning + // -EACCESS on each operation if credentials has been changed, see + // callers of ib_safe_file_access() for details. + // + // fork() syscall also matters, so daemonization won't work in case + // of rdma. + // + if (!g_conf()->no_mon_config) { + // make sure our mini-session gets legacy values + g_conf().apply_changes(nullptr); + + MonClient mc_bootstrap(g_ceph_context); + if (mc_bootstrap.get_monmap_and_config() < 0) { + g_ceph_context->_log->flush(); + cerr << "failed to fetch mon config (--no-mon-config to skip)" + << std::endl; + _exit(1); + } + } + // Expand metavariables. Invoke configuration observers. Open log file. g_conf().apply_changes(nullptr); @@ -480,6 +490,9 @@ void global_init_postfork_start(CephContext *cct) { + // reexpand the meta in child process + cct->_conf.finalize_reexpand_meta(); + // restart log thread cct->_log->start(); cct->notify_post_fork(); diff -Nru ceph-14.2.11/src/global/signal_handler.h ceph-14.2.18/src/global/signal_handler.h --- ceph-14.2.11/src/global/signal_handler.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/global/signal_handler.h 2021-03-15 17:46:20.000000000 +0000 @@ -20,10 +20,12 @@ typedef void (*signal_handler_t)(int); -#ifndef HAVE_REENTRANT_STRSIGNAL -# define sig_str(signum) sys_siglist[signum] -#else +#ifdef HAVE_SIGDESCR_NP +# define sig_str(signum) sigdescr_np(signum) +#elif HAVE_REENTRANT_STRSIGNAL # define sig_str(signum) strsignal(signum) +#else +# define sig_str(signum) sys_siglist[signum] #endif void install_sighandler(int signum, signal_handler_t handler, int flags); diff -Nru ceph-14.2.11/src/include/ceph_features.h ceph-14.2.18/src/include/ceph_features.h --- ceph-14.2.11/src/include/ceph_features.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/include/ceph_features.h 2021-03-15 17:46:20.000000000 +0000 @@ -118,7 +118,7 @@ DEFINE_CEPH_FEATURE(21, 2, OSDMAP_PG_UPMAP) // overlap DEFINE_CEPH_FEATURE(21, 2, CRUSH_CHOOSE_ARGS) // overlap DEFINE_CEPH_FEATURE_RETIRED(22, 1, BACKFILL_RESERVATION, JEWEL, LUMINOUS) - +DEFINE_CEPH_FEATURE(22, 2, OSD_FIXED_COLLECTION_LIST) DEFINE_CEPH_FEATURE(23, 1, MSG_AUTH) // 3.19 req (unless nocephx_require_signatures) DEFINE_CEPH_FEATURE_RETIRED(24, 1, RECOVERY_RESERVATION, JEWEL, LUNINOUS) DEFINE_CEPH_FEATURE(24, 2, RECOVERY_RESERVATION_2) @@ -248,6 +248,7 @@ CEPH_FEATURE_SERVER_NAUTILUS | \ CEPH_FEATURE_CEPHX_V2 | \ CEPH_FEATURE_OSD_PGLOG_HARDLIMIT | \ + CEPH_FEATURE_OSD_FIXED_COLLECTION_LIST | \ 0ULL) #define CEPH_FEATURES_SUPPORTED_DEFAULT CEPH_FEATURES_ALL diff -Nru ceph-14.2.11/src/include/config-h.in.cmake ceph-14.2.18/src/include/config-h.in.cmake --- ceph-14.2.11/src/include/config-h.in.cmake 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/include/config-h.in.cmake 2021-03-15 17:46:20.000000000 +0000 @@ -235,6 +235,9 @@ /* Define to 1 if you have sched.h. */ #cmakedefine HAVE_SCHED 1 +/* Define to 1 if you have sigdescr_np. */ +#cmakedefine HAVE_SIGDESCR_NP 1 + /* Support SSE (Streaming SIMD Extensions) instructions */ #cmakedefine HAVE_SSE diff -Nru ceph-14.2.11/src/include/encoding.h ceph-14.2.18/src/include/encoding.h --- ceph-14.2.11/src/include/encoding.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/include/encoding.h 2021-03-15 17:46:20.000000000 +0000 @@ -91,10 +91,6 @@ WRITE_RAW_ENCODER(ceph_le32) WRITE_RAW_ENCODER(ceph_le16) -// FIXME: we need to choose some portable floating point encoding here -WRITE_RAW_ENCODER(float) -WRITE_RAW_ENCODER(double) - inline void encode(const bool &v, bufferlist& bl) { __u8 vv = v; encode_raw(vv, bl); @@ -128,6 +124,37 @@ WRITE_INTTYPE_ENCODER(uint16_t, le16) WRITE_INTTYPE_ENCODER(int16_t, le16) +// ----------------------------------- +// float types +// +// NOTE: The following code assumes all supported platforms use IEEE binary32 +// as float and IEEE binary64 as double floating-point format. The assumption +// is verified by the assertions below. +// +// Under this assumption, we can use raw encoding of floating-point types +// on little-endian machines, but we still need to perform a byte swap +// on big-endian machines to ensure cross-architecture compatibility. +// To achive that, we reinterpret the values as integers first, which are +// byte-swapped via the ceph_le types as above. The extra conversions +// are optimized away on little-endian machines by the compiler. +#define WRITE_FLTTYPE_ENCODER(type, itype, etype) \ + static_assert(sizeof(type) == sizeof(itype)); \ + static_assert(std::numeric_limits::is_iec559, \ + "floating-point type not using IEEE754 format"); \ + inline void encode(type v, ::ceph::bufferlist& bl, uint64_t features=0) { \ + ceph_##etype e; \ + e = *reinterpret_cast(&v); \ + ::ceph::encode_raw(e, bl); \ + } \ + inline void decode(type &v, ::ceph::bufferlist::const_iterator& p) { \ + ceph_##etype e; \ + ::ceph::decode_raw(e, p); \ + *reinterpret_cast(&v) = e; \ + } + +WRITE_FLTTYPE_ENCODER(float, uint32_t, le32) +WRITE_FLTTYPE_ENCODER(double, uint64_t, le64) + // see denc.h for ENCODE_DUMP_PATH discussion and definition. #ifdef ENCODE_DUMP_PATH # define ENCODE_DUMP_PRE() \ diff -Nru ceph-14.2.11/src/include/krbd.h ceph-14.2.18/src/include/krbd.h --- ceph-14.2.11/src/include/krbd.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/include/krbd.h 2021-03-15 17:46:20.000000000 +0000 @@ -15,13 +15,46 @@ #include "rados/librados.h" +/* + * Don't wait for udev add uevents in krbd_map() and udev remove + * uevents in krbd_unmap*(). Instead, make do with the respective + * kernel uevents and return as soon as they are received. + * + * systemd-udevd sends out udev uevents after it finishes processing + * the respective kernel uevents, which mostly boils down to executing + * all matching udev rules. With this flag set, on return from + * krbd_map() systemd-udevd may still be poking at the device: it + * may still be open with tools such as blkid and various ioctls to + * be run against it, none of the persistent symlinks to the device + * node may be there, etc. udev used to be responsible for creating + * the device node as well, but that has been handled by devtmpfs in + * the kernel for many years now, so the device node (as returned + * through @pdevnode) is guaranteed to be there. + * + * If set, krbd_map() and krbd_unmap*() can be invoked from any + * network namespace that is owned by the initial user namespace + * (which is a formality because things like loading kernel modules + * and creating block devices are not namespaced and require global + * privileges, i.e. capabilities in the initial user namespace). + * Otherwise, krbd_map() and krbd_unmap*() must be invoked from + * the initial network namespace. + * + * If set, krbd_unmap*() doesn't attempt to settle the udev queue + * before retrying unmap for the last time. Some EBUSY errors due + * to systemd-udevd poking at the device at the time krbd_unmap*() + * is invoked that are otherwise covered by the retry logic may be + * returned. + */ +#define KRBD_CTX_F_NOUDEV (1U << 0) + #ifdef __cplusplus extern "C" { #endif struct krbd_ctx; -int krbd_create_from_context(rados_config_t cct, struct krbd_ctx **pctx); +int krbd_create_from_context(rados_config_t cct, uint32_t flags, + struct krbd_ctx **pctx); void krbd_destroy(struct krbd_ctx *ctx); int krbd_map(struct krbd_ctx *ctx, diff -Nru ceph-14.2.11/src/include/mempool.h ceph-14.2.18/src/include/mempool.h --- ceph-14.2.11/src/include/mempool.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/include/mempool.h 2021-03-15 17:46:20.000000000 +0000 @@ -150,12 +150,20 @@ f(bluestore_alloc) \ f(bluestore_cache_data) \ f(bluestore_cache_onode) \ + f(bluestore_cache_meta) \ f(bluestore_cache_other) \ + f(bluestore_Buffer) \ + f(bluestore_Extent) \ + f(bluestore_Blob) \ + f(bluestore_SharedBlob) \ + f(bluestore_inline_bl) \ f(bluestore_fsck) \ f(bluestore_txc) \ - f(bluestore_writing_deferred) \ + f(bluestore_writing_deferred) \ f(bluestore_writing) \ f(bluefs) \ + f(bluefs_file_reader) \ + f(bluefs_file_writer) \ f(buffer_anon) \ f(buffer_meta) \ f(osd) \ @@ -246,11 +254,16 @@ void adjust_count(ssize_t items, ssize_t bytes); - shard_t* pick_a_shard() { + static size_t pick_a_shard_int() { // Dirt cheap, see: - // http://fossies.org/dox/glibc-2.24/pthread__self_8c_source.html + // https://fossies.org/dox/glibc-2.32/pthread__self_8c_source.html size_t me = (size_t)pthread_self(); - size_t i = (me >> 3) & ((1 << num_shard_bits) - 1); + size_t i = (me >> 12) & ((1 << num_shard_bits) - 1); + return i; + } + + shard_t* pick_a_shard() { + size_t i = pick_a_shard_int(); return &shard[i]; } diff -Nru ceph-14.2.11/src/include/rados/librados.h ceph-14.2.18/src/include/rados/librados.h --- ceph-14.2.11/src/include/rados/librados.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/include/rados/librados.h 2021-03-15 17:46:20.000000000 +0000 @@ -49,6 +49,7 @@ #define LIBRADOS_SUPPORTS_WATCH 1 #define LIBRADOS_SUPPORTS_SERVICES 1 +#define LIBRADOS_SUPPORTS_GETADDRS 1 #define LIBRADOS_SUPPORTS_APP_METADATA 1 /* RADOS lock flags @@ -219,7 +220,7 @@ * * An iterator for listing the objects in a pool. * Used with rados_nobjects_list_open(), - * rados_nobjects_list_next(), and + * rados_nobjects_list_next(), rados_nobjects_list_next2(), and * rados_nobjects_list_close(). */ typedef void *rados_list_ctx_t; @@ -1135,6 +1136,32 @@ const char **nspace); /** + * Get the next object name, locator and their sizes in the pool + * + * The sizes allow to list objects with \0 (the NUL character) + * in .e.g *entry. Is is unusual see such object names but a bug + * in a client has risen the need to handle them as well. + * *entry and *key are valid until next call to rados_nobjects_list_* + * + * @param ctx iterator marking where you are in the listing + * @param entry where to store the name of the entry + * @param key where to store the object locator (set to NULL to ignore) + * @param nspace where to store the object namespace (set to NULL to ignore) + * @param entry_size where to store the size of name of the entry + * @param key_size where to store the size of object locator (set to NULL to ignore) + * @param nspace_size where to store the size of object namespace (set to NULL to ignore) + * @returns 0 on success, negative error code on failure + * @returns -ENOENT when there are no more objects to list + */ +CEPH_RADOS_API int rados_nobjects_list_next2(rados_list_ctx_t ctx, + const char **entry, + const char **key, + const char **nspace, + size_t *entry_size, + size_t *key_size, + size_t *nspace_size); + +/** * Close the object listing handle. * * This should be called when the handle is no longer needed. @@ -3628,6 +3655,15 @@ char *client_address, uint32_t expire_seconds); +/** + * Gets addresses of the RADOS session, suitable for blacklisting. + * + * @param cluster cluster handle + * @param addrs the output string. + * @returns 0 on success, negative error code on failure + */ +CEPH_RADOS_API int rados_getaddrs(rados_t cluster, char** addrs); + CEPH_RADOS_API void rados_set_osdmap_full_try(rados_ioctx_t io); CEPH_RADOS_API void rados_unset_osdmap_full_try(rados_ioctx_t io); diff -Nru ceph-14.2.11/src/include/rbd/librbd.h ceph-14.2.18/src/include/rbd/librbd.h --- ceph-14.2.11/src/include/rbd/librbd.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/include/rbd/librbd.h 2021-03-15 17:46:20.000000000 +0000 @@ -270,6 +270,7 @@ RBD_IMAGE_MIGRATION_STATE_PREPARED = 2, RBD_IMAGE_MIGRATION_STATE_EXECUTING = 3, RBD_IMAGE_MIGRATION_STATE_EXECUTED = 4, + RBD_IMAGE_MIGRATION_STATE_ABORTING = 5, } rbd_image_migration_state_t; typedef struct { @@ -979,7 +980,7 @@ const char *buf, size_t data_len, int op_flags); CEPH_RBD_API ssize_t rbd_write_zeroes(rbd_image_t image, uint64_t ofs, - uint64_t len, int zero_flags, + size_t len, int zero_flags, int op_flags); CEPH_RBD_API ssize_t rbd_compare_and_write(rbd_image_t image, uint64_t ofs, size_t len, const char *cmp_buf, diff -Nru ceph-14.2.11/src/krbd.cc ceph-14.2.18/src/krbd.cc --- ceph-14.2.11/src/krbd.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/krbd.cc 2021-03-15 17:46:20.000000000 +0000 @@ -42,6 +42,8 @@ #include "mon/MonMap.h" #include +#include +#include #include static const int UDEV_BUF_SIZE = 1 << 20; /* doubled to 2M (SO_RCVBUFFORCE) */ @@ -49,6 +51,7 @@ struct krbd_ctx { CephContext *cct; struct udev *udev; + uint32_t flags; /* KRBD_CTX_F_* */ }; static const std::string SNAP_HEAD_NAME("-"); @@ -158,24 +161,39 @@ } static int build_map_buf(CephContext *cct, const krbd_spec& spec, - const char *options, string *pbuf) + const string& options, string *pbuf) { + bool msgr2 = false; ostringstream oss; int r; + boost::char_separator sep(","); + boost::tokenizer> tok(options, sep); + for (const auto& t : tok) { + if (boost::starts_with(t, "ms_mode=")) { + /* msgr2 unless ms_mode=legacy */ + msgr2 = t.compare(8, t.npos, "legacy"); + } + } + MonMap monmap; r = monmap.build_initial(cct, false, cerr); if (r < 0) return r; - list mon_addr; - monmap.list_addrs(mon_addr); - - for (const auto &p : mon_addr) { - if (oss.tellp() > 0) { - oss << ","; + /* + * If msgr2, filter TYPE_MSGR2 addresses. Otherwise, filter + * TYPE_LEGACY addresses. + */ + for (const auto& p : monmap.mon_info) { + for (const auto& a : p.second.public_addrs.v) { + if ((msgr2 && a.is_msgr2()) || (!msgr2 && a.is_legacy())) { + if (oss.tellp() > 0) { + oss << ","; + } + oss << a.get_sockaddr(); + } } - oss << p.get_sockaddr(); } oss << " name=" << cct->_conf->name.get_id(); @@ -218,7 +236,7 @@ oss << ",key=" << key_name; } - if (strcmp(options, "") != 0) + if (!options.empty()) oss << "," << options; if (!spec.nspace_name.empty()) oss << ",_pool_ns=" << spec.nspace_name; @@ -369,7 +387,39 @@ std::string *m_pdevnode; }; -static int do_map(struct udev *udev, const krbd_spec& spec, const string& buf, +static const char *get_event_source(const krbd_ctx *ctx) +{ + if (ctx->flags & KRBD_CTX_F_NOUDEV) { + /* + * For block devices (unlike network interfaces, they don't + * carry any namespace tags), the kernel broadcasts uevents + * into all network namespaces that are owned by the initial + * user namespace. This restriction is new in 4.18: starting + * with 2.6.35 and through 4.17 the kernel broadcast uevents + * into all network namespaces, period. + * + * However, when invoked from a non-initial user namespace, + * udev_monitor_receive_device() has always ignored both kernel + * and udev uevents by virtue of requiring SCM_CREDENTIALS and + * checking that ucred->uid == 0. When UIDs and GIDs are sent to + * a process in a user namespace, they are translated according + * to that process's UID and GID mappings and, unless root in the + * user namespace is mapped to the global root, that check fails. + * Normally they show up as 65534(nobody) because the global root + * is not mapped. + */ + return "kernel"; + } + + /* + * Like most netlink messages, udev uevents don't cross network + * namespace boundaries and are therefore confined to the initial + * network namespace. + */ + return "udev"; +} + +static int do_map(krbd_ctx *ctx, const krbd_spec& spec, const string& buf, string *pname) { struct udev_monitor *mon; @@ -378,7 +428,7 @@ int fds[2]; int r; - mon = udev_monitor_new_from_netlink(udev, "udev"); + mon = udev_monitor_new_from_netlink(ctx->udev, get_event_source(ctx)); if (!mon) return -ENOMEM; @@ -464,7 +514,7 @@ } } - return do_map(ctx->udev, spec, buf, pname); + return do_map(ctx, spec, buf, pname); } static int devno_to_krbd_id(struct udev *udev, dev_t devno, string *pid) @@ -703,7 +753,7 @@ dev_t m_devno; }; -static int do_unmap(struct udev *udev, dev_t devno, const string& buf) +static int do_unmap(krbd_ctx *ctx, dev_t devno, const string& buf) { struct udev_monitor *mon; std::thread unmapper; @@ -711,7 +761,7 @@ int fds[2]; int r; - mon = udev_monitor_new_from_netlink(udev, "udev"); + mon = udev_monitor_new_from_netlink(ctx->udev, get_event_source(ctx)); if (!mon) return -ENOMEM; @@ -735,7 +785,8 @@ goto out_mon; } - unmapper = make_named_thread("unmapper", [&buf, sysfs_r_fd = fds[1]]() { + unmapper = make_named_thread( + "unmapper", [&buf, sysfs_r_fd = fds[1], flags = ctx->flags]() { /* * On final device close(), kernel sends a block change event, in * response to which udev apparently runs blkid on the device. This @@ -747,7 +798,7 @@ if (sysfs_r == -EBUSY && tries < 2) { if (!tries) { usleep(250 * 1000); - } else { + } else if (!(flags & KRBD_CTX_F_NOUDEV)) { /* * libudev does not provide the "wait until the queue is empty" * API or the sufficient amount of primitives to build it from. @@ -832,7 +883,7 @@ } } - return do_unmap(ctx->udev, wholedevno, build_unmap_buf(id, options)); + return do_unmap(ctx, wholedevno, build_unmap_buf(id, options)); } static int unmap_image(struct krbd_ctx *ctx, const krbd_spec& spec, @@ -863,7 +914,7 @@ } } - return do_unmap(ctx->udev, devno, build_unmap_buf(id, options)); + return do_unmap(ctx, devno, build_unmap_buf(id, options)); } static bool dump_one_image(Formatter *f, TextTable *tbl, @@ -997,7 +1048,7 @@ return r; } -extern "C" int krbd_create_from_context(rados_config_t cct, +extern "C" int krbd_create_from_context(rados_config_t cct, uint32_t flags, struct krbd_ctx **pctx) { struct krbd_ctx *ctx = new struct krbd_ctx(); @@ -1008,6 +1059,7 @@ delete ctx; return -ENOMEM; } + ctx->flags = flags; *pctx = ctx; return 0; diff -Nru ceph-14.2.11/src/kv/RocksDBStore.cc ceph-14.2.18/src/kv/RocksDBStore.cc --- ceph-14.2.11/src/kv/RocksDBStore.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/kv/RocksDBStore.cc 2021-03-15 17:46:20.000000000 +0000 @@ -255,6 +255,9 @@ rocksdb::Options& opt, function interp) { + // keep aligned with func tryInterpret + const set need_interp_keys = {"compaction_threads", "flusher_threads", "compact_on_mount", "disableWAL"}; + map str_map; int r = get_str_map(opt_str, &str_map, ",\n;"); if (r < 0) @@ -265,7 +268,11 @@ rocksdb::Status status = rocksdb::GetOptionsFromString(opt, this_opt, &opt); if (!status.ok()) { - r = interp != nullptr ? interp(it->first, it->second, opt) : -1; + if (interp != nullptr) { + r = interp(it->first, it->second, opt); + } else if (!need_interp_keys.count(it->first)) { + r = -1; + } if (r < 0) { derr << status.ToString() << dendl; return -EINVAL; diff -Nru ceph-14.2.11/src/librados/librados_c.cc ceph-14.2.18/src/librados/librados_c.cc --- ceph-14.2.11/src/librados/librados_c.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librados/librados_c.cc 2021-03-15 17:46:20.000000000 +0000 @@ -442,6 +442,15 @@ } LIBRADOS_C_API_BASE_DEFAULT(rados_blacklist_add); +extern "C" int _rados_getaddrs(rados_t cluster, char** addrs) +{ + librados::RadosClient *radosp = (librados::RadosClient *)cluster; + auto s = radosp->get_addrs(); + *addrs = strdup(s.c_str()); + return 0; +} +LIBRADOS_C_API_BASE_DEFAULT(rados_getaddrs); + extern "C" void _rados_set_osdmap_full_try(rados_ioctx_t io) { librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io; @@ -2095,6 +2104,22 @@ extern "C" int _rados_nobjects_list_next(rados_list_ctx_t listctx, const char **entry, const char **key, const char **nspace) { tracepoint(librados, rados_nobjects_list_next_enter, listctx); + uint32_t retval = rados_nobjects_list_next2(listctx, entry, key, nspace, NULL, NULL, NULL); + tracepoint(librados, rados_nobjects_list_next_exit, 0, *entry, key, nspace); + return retval; +} +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_next); + +extern "C" int _rados_nobjects_list_next2( + rados_list_ctx_t listctx, + const char **entry, + const char **key, + const char **nspace, + size_t *entry_size, + size_t *key_size, + size_t *nspace_size) +{ + tracepoint(librados, rados_nobjects_list_next2_enter, listctx); librados::ObjListCtx *lh = (librados::ObjListCtx *)listctx; Objecter::NListContext *h = lh->nlc; @@ -2106,11 +2131,11 @@ if (h->list.empty()) { int ret = lh->ctx->nlist(lh->nlc, RADOS_LIST_MAX_ENTRIES); if (ret < 0) { - tracepoint(librados, rados_nobjects_list_next_exit, ret, NULL, NULL, NULL); + tracepoint(librados, rados_nobjects_list_next2_exit, ret, NULL, NULL, NULL, NULL, NULL, NULL); return ret; } if (h->list.empty()) { - tracepoint(librados, rados_nobjects_list_next_exit, -ENOENT, NULL, NULL, NULL); + tracepoint(librados, rados_nobjects_list_next2_exit, -ENOENT, NULL, NULL, NULL, NULL, NULL, NULL); return -ENOENT; } } @@ -2125,10 +2150,19 @@ } if (nspace) *nspace = h->list.front().nspace.c_str(); - tracepoint(librados, rados_nobjects_list_next_exit, 0, *entry, key, nspace); + + if (entry_size) + *entry_size = h->list.front().oid.size(); + if (key_size) + *key_size = h->list.front().locator.size(); + if (nspace_size) + *nspace_size = h->list.front().nspace.size(); + + tracepoint(librados, rados_nobjects_list_next2_exit, 0, entry, key, nspace, + entry_size, key_size, nspace_size); return 0; } -LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_next); +LIBRADOS_C_API_BASE_DEFAULT(rados_nobjects_list_next2); /* diff -Nru ceph-14.2.11/src/librados/librados_cxx.cc ceph-14.2.18/src/librados/librados_cxx.cc --- ceph-14.2.11/src/librados/librados_cxx.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librados/librados_cxx.cc 2021-03-15 17:46:20.000000000 +0000 @@ -755,22 +755,24 @@ void librados::NObjectIteratorImpl::get_next() { const char *entry, *key, *nspace; + size_t entry_size, key_size, nspace_size; if (ctx->nlc->at_end()) return; - int ret = rados_nobjects_list_next(ctx.get(), &entry, &key, &nspace); + int ret = rados_nobjects_list_next2(ctx.get(), &entry, &key, &nspace, + &entry_size, &key_size, &nspace_size); if (ret == -ENOENT) { return; } else if (ret) { throw std::system_error(-ret, std::system_category(), - "rados_nobjects_list_next"); + "rados_nobjects_list_next2"); } if (cur_obj.impl == NULL) cur_obj.impl = new ListObjectImpl(); - cur_obj.impl->nspace = nspace; - cur_obj.impl->oid = entry; - cur_obj.impl->locator = key ? key : string(); + cur_obj.impl->nspace = string{nspace, nspace_size}; + cur_obj.impl->oid = string{entry, entry_size}; + cur_obj.impl->locator = key ? string(key, key_size) : string(); } uint32_t librados::NObjectIteratorImpl::get_pg_hash_position() const diff -Nru ceph-14.2.11/src/librados/RadosClient.cc ceph-14.2.18/src/librados/RadosClient.cc --- ceph-14.2.11/src/librados/RadosClient.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librados/RadosClient.cc 2021-03-15 17:46:20.000000000 +0000 @@ -821,6 +821,12 @@ objecter->blacklist_self(set); } +std::string librados::RadosClient::get_addrs() const { + CachedStackStringStream cos; + *cos << messenger->get_myaddrs(); + return std::string(cos->strv()); +} + int librados::RadosClient::blacklist_add(const string& client_address, uint32_t expire_seconds) { diff -Nru ceph-14.2.11/src/librados/RadosClient.h ceph-14.2.18/src/librados/RadosClient.h --- ceph-14.2.11/src/librados/RadosClient.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librados/RadosClient.h 2021-03-15 17:46:20.000000000 +0000 @@ -165,6 +165,8 @@ bool put(); void blacklist_self(bool set); + std::string get_addrs() const; + int service_daemon_register( const std::string& service, ///< service name (e.g., 'rgw') const std::string& name, ///< daemon name (e.g., 'gwfoo') diff -Nru ceph-14.2.11/src/librbd/api/Config.cc ceph-14.2.18/src/librbd/api/Config.cc --- ceph-14.2.11/src/librbd/api/Config.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/api/Config.cc 2021-03-15 17:46:20.000000000 +0000 @@ -34,7 +34,8 @@ "rbd_tracing", "rbd_validate_names", "rbd_validate_pool", - "rbd_mirror_pool_replayers_refresh_interval" + "rbd_mirror_pool_replayers_refresh_interval", + "rbd_config_pool_override_update_timestamp" }; static std::set EXCLUDE_IMAGE_OPTIONS { "rbd_default_clone_format", diff -Nru ceph-14.2.11/src/librbd/api/Image.cc ceph-14.2.18/src/librbd/api/Image.cc --- ceph-14.2.11/src/librbd/api/Image.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/api/Image.cc 2021-03-15 17:46:20.000000000 +0000 @@ -547,7 +547,7 @@ return -EBUSY; } - features = (src->features & ~RBD_FEATURES_IMPLICIT_ENABLE); + features = src->features; src_size = src->get_image_size(src->snap_id); } uint64_t format = 2; @@ -680,7 +680,7 @@ C_SaferCond cond; SnapSeqs snap_seqs; auto req = DeepCopyRequest::create(src, dest, snap_id_start, snap_id_end, - flatten, boost::none, op_work_queue, + 0U, flatten, boost::none, op_work_queue, &snap_seqs, &prog_ctx, &cond); req->send(); int r = cond.wait(); diff -Nru ceph-14.2.11/src/librbd/api/Migration.cc ceph-14.2.18/src/librbd/api/Migration.cc --- ceph-14.2.11/src/librbd/api/Migration.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/api/Migration.cc 2021-03-15 17:46:20.000000000 +0000 @@ -17,6 +17,7 @@ #include "librbd/api/Image.h" #include "librbd/api/Snapshot.h" #include "librbd/api/Trash.h" +#include "librbd/deep_copy/ImageCopyRequest.h" #include "librbd/deep_copy/MetadataCopyRequest.h" #include "librbd/deep_copy/SnapshotCopyRequest.h" #include "librbd/exclusive_lock/Policy.h" @@ -335,6 +336,30 @@ return 0; } +class SteppedProgressContext : public ProgressContext { +public: + SteppedProgressContext(ProgressContext* progress_ctx, size_t total_steps) + : m_progress_ctx(progress_ctx), m_total_steps(total_steps) { + } + + void next_step() { + ceph_assert(m_current_step < m_total_steps); + ++m_current_step; + } + + int update_progress(uint64_t object_number, + uint64_t object_count) override { + return m_progress_ctx->update_progress( + object_number + (object_count * (m_current_step - 1)), + object_count * m_total_steps); + } + +private: + ProgressContext* m_progress_ctx; + size_t m_total_steps; + size_t m_current_step = 1; +}; + } // anonymous namespace template @@ -399,7 +424,6 @@ return -ENOSYS; } features &= ~RBD_FEATURES_INTERNAL; - features |= RBD_FEATURE_MIGRATING; opts.set(RBD_IMAGE_OPTION_FEATURES, features); uint64_t order = image_ctx->order; @@ -431,9 +455,6 @@ false, cls::rbd::MIGRATION_STATE_PREPARING, "", nullptr); r = migration.prepare(); - features &= ~RBD_FEATURE_MIGRATING; - opts.set(RBD_IMAGE_OPTION_FEATURES, features); - return r; } @@ -777,8 +798,41 @@ ldout(m_cct, 1) << "failed to open destination image: " << cpp_strerror(r) << dendl; } else { - ldout(m_cct, 10) << "relinking children" << dendl; + BOOST_SCOPE_EXIT_TPL(&dst_image_ctx) { + if (dst_image_ctx != nullptr) { + dst_image_ctx->state->close(); + } + } BOOST_SCOPE_EXIT_END; + + std::list watchers; + int flags = librbd::image::LIST_WATCHERS_FILTER_OUT_MY_INSTANCE | + librbd::image::LIST_WATCHERS_FILTER_OUT_MIRROR_INSTANCES; + C_SaferCond on_list_watchers; + auto list_watchers_request = librbd::image::ListWatchersRequest::create( + *dst_image_ctx, flags, &watchers, &on_list_watchers); + list_watchers_request->send(); + r = on_list_watchers.wait(); + if (r < 0) { + lderr(m_cct) << "failed listing watchers:" << cpp_strerror(r) << dendl; + return r; + } + if (!watchers.empty()) { + lderr(m_cct) << "image has watchers - cannot abort migration" << dendl; + return -EBUSY; + } + + // ensure destination image is now read-only + r = set_state(cls::rbd::MIGRATION_STATE_ABORTING, ""); + if (r < 0) { + return r; + } + + // copy dst HEAD -> src HEAD + SteppedProgressContext progress_ctx(m_prog_ctx, 2); + revert_data(dst_image_ctx, m_src_image_ctx, &progress_ctx); + progress_ctx.next_step(); + ldout(m_cct, 10) << "relinking children" << dendl; r = relink_children(dst_image_ctx, m_src_image_ctx); if (r < 0) { return r; @@ -786,12 +840,6 @@ ldout(m_cct, 10) << "removing dst image snapshots" << dendl; - BOOST_SCOPE_EXIT_TPL(&dst_image_ctx) { - if (dst_image_ctx != nullptr) { - dst_image_ctx->state->close(); - } - } BOOST_SCOPE_EXIT_END; - std::vector snaps; r = snap_list(dst_image_ctx, snaps); if (r < 0) { @@ -827,7 +875,7 @@ ImageCtx::get_thread_pool_instance(m_cct, &thread_pool, &op_work_queue); C_SaferCond on_remove; auto req = librbd::image::RemoveRequest<>::create( - m_dst_io_ctx, dst_image_ctx, false, false, *m_prog_ctx, op_work_queue, + m_dst_io_ctx, dst_image_ctx, false, false, progress_ctx, op_work_queue, &on_remove); req->send(); r = on_remove.wait(); @@ -839,7 +887,7 @@ << m_dst_io_ctx.get_pool_name() << "/" << m_dst_image_name << " (" << m_dst_image_id << ")': " << cpp_strerror(r) << dendl; - // not fatal + return r; } } @@ -1275,7 +1323,7 @@ C_SaferCond on_snapshot_copy; auto snapshot_copy_req = librbd::deep_copy::SnapshotCopyRequest::create( - m_src_image_ctx, dst_image_ctx, CEPH_NOSNAP, m_flatten, + m_src_image_ctx, dst_image_ctx, 0, CEPH_NOSNAP, 0, m_flatten, m_src_image_ctx->op_work_queue, &snap_seqs, &on_snapshot_copy); snapshot_copy_req->send(); r = on_snapshot_copy.wait(); @@ -1775,6 +1823,60 @@ } return 0; +} + +template +int Migration::revert_data(I* src_image_ctx, I* dst_image_ctx, + ProgressContext* prog_ctx) { + ldout(m_cct, 10) << dendl; + + cls::rbd::MigrationSpec migration_spec; + int r = cls_client::migration_get(&src_image_ctx->md_ctx, + src_image_ctx->header_oid, + &migration_spec); + + if (r < 0) { + lderr(m_cct) << "failed retrieving migration header: " << cpp_strerror(r) + << dendl; + return r; + } + + if (migration_spec.header_type != cls::rbd::MIGRATION_HEADER_TYPE_DST) { + lderr(m_cct) << "unexpected migration header type: " + << migration_spec.header_type << dendl; + return -EINVAL; + } + + uint64_t src_snap_id_start = 0; + uint64_t src_snap_id_end = CEPH_NOSNAP; + uint64_t dst_snap_id_start = 0; + if (!migration_spec.snap_seqs.empty()) { + src_snap_id_start = migration_spec.snap_seqs.rbegin()->second; + } + + // we only care about the HEAD revision so only add a single mapping to + // represent the most recent state + SnapSeqs snap_seqs; + snap_seqs[CEPH_NOSNAP] = CEPH_NOSNAP; + + ldout(m_cct, 20) << "src_snap_id_start=" << src_snap_id_start << ", " + << "src_snap_id_end=" << src_snap_id_end << ", " + << "snap_seqs=" << snap_seqs << dendl; + + C_SaferCond ctx; + auto request = deep_copy::ImageCopyRequest::create( + src_image_ctx, dst_image_ctx, src_snap_id_start, src_snap_id_end, + dst_snap_id_start, false, {}, snap_seqs, prog_ctx, &ctx); + request->send(); + + r = ctx.wait(); + if (r < 0) { + lderr(m_cct) << "error reverting destination image data blocks back to " + << "source image: " << cpp_strerror(r) << dendl; + return r; + } + + return 0; } } // namespace api diff -Nru ceph-14.2.11/src/librbd/api/Migration.h ceph-14.2.18/src/librbd/api/Migration.h --- ceph-14.2.11/src/librbd/api/Migration.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/api/Migration.h 2021-03-15 17:46:20.000000000 +0000 @@ -92,6 +92,9 @@ const librbd::snap_info_t &src_snap, const librbd::linked_image_spec_t &child_image, bool migration_abort, bool reattach_child); + + int revert_data(ImageCtxT* src_image_ctx, ImageCtxT* dst_image_ctx, + ProgressContext *prog_ctx); }; } // namespace api diff -Nru ceph-14.2.11/src/librbd/api/PoolMetadata.cc ceph-14.2.18/src/librbd/api/PoolMetadata.cc --- ceph-14.2.11/src/librbd/api/PoolMetadata.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/api/PoolMetadata.cc 2021-03-15 17:46:20.000000000 +0000 @@ -15,6 +15,32 @@ namespace librbd { namespace api { +namespace { + +void update_pool_timestamp(librados::IoCtx& io_ctx) { + CephContext *cct = (CephContext *)io_ctx.cct(); + + auto now = ceph_clock_now(); + std::string cmd = + R"({)" + R"("prefix": "config set", )" + R"("who": "global", )" + R"("name": "rbd_config_pool_override_update_timestamp", )" + R"("value": ")" + stringify(now.sec()) + R"(")" + R"(})"; + + librados::Rados rados(io_ctx); + bufferlist in_bl; + std::string ss; + int r = rados.mon_command(cmd, in_bl, nullptr, &ss); + if (r < 0) { + lderr(cct) << "failed to notify clients of pool config update: " + << cpp_strerror(r) << dendl; + } +} + +} // anonymous namespace + template int PoolMetadata::get(librados::IoCtx& io_ctx, const std::string &key, std::string *value) { @@ -34,6 +60,8 @@ const std::string &value) { CephContext *cct = (CephContext *)io_ctx.cct(); + bool need_update_pool_timestamp = false; + std::string config_key; if (util::is_metadata_config_override(key, &config_key)) { if (!librbd::api::Config::is_option_name(io_ctx, config_key)) { @@ -47,6 +75,8 @@ << dendl; return -EINVAL; } + + need_update_pool_timestamp = true; } ceph::bufferlist bl; @@ -59,6 +89,10 @@ return r; } + if (need_update_pool_timestamp) { + update_pool_timestamp(io_ctx); + } + return 0; } @@ -85,6 +119,11 @@ return r; } + std::string config_key; + if (util::is_metadata_config_override(key, &config_key)) { + update_pool_timestamp(io_ctx); + } + return 0; } diff -Nru ceph-14.2.11/src/librbd/api/PoolMetadata.h ceph-14.2.18/src/librbd/api/PoolMetadata.h --- ceph-14.2.11/src/librbd/api/PoolMetadata.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/api/PoolMetadata.h 2021-03-15 17:46:20.000000000 +0000 @@ -8,6 +8,7 @@ #include "include/rados/librados_fwd.hpp" #include +#include namespace librbd { diff -Nru ceph-14.2.11/src/librbd/CMakeLists.txt ceph-14.2.18/src/librbd/CMakeLists.txt --- ceph-14.2.11/src/librbd/CMakeLists.txt 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/CMakeLists.txt 2021-03-15 17:46:20.000000000 +0000 @@ -1,3 +1,7 @@ +if(Boost_VERSION VERSION_GREATER 1.73) + add_definitions(-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +endif() + add_library(rbd_types STATIC journal/Types.cc mirroring_watcher/Types.cc @@ -8,6 +12,7 @@ set(librbd_internal_srcs AsyncObjectThrottle.cc AsyncRequest.cc + ConfigWatcher.cc DeepCopyRequest.cc ExclusiveLock.cc ImageCtx.cc diff -Nru ceph-14.2.11/src/librbd/ConfigWatcher.cc ceph-14.2.18/src/librbd/ConfigWatcher.cc --- ceph-14.2.11/src/librbd/ConfigWatcher.cc 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/librbd/ConfigWatcher.cc 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,116 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#include "librbd/ConfigWatcher.h" +#include "common/config_obs.h" +#include "common/dout.h" +#include "common/errno.h" +#include "librbd/ImageCtx.h" +#include "librbd/ImageState.h" +#include "librbd/api/Config.h" +#include +#include +#include +#include + +#define dout_subsys ceph_subsys_rbd +#undef dout_prefix +#define dout_prefix *_dout << "librbd::ConfigWatcher: " \ + << __func__ << ": " + +namespace librbd { + +template +struct ConfigWatcher::Observer : public md_config_obs_t { + ConfigWatcher* m_config_watcher; + + std::deque m_config_key_strs; + mutable std::vector m_config_keys; + + Observer(CephContext* cct, ConfigWatcher* config_watcher) + : m_config_watcher(config_watcher) { + const std::string rbd_key_prefix("rbd_"); + auto& schema = cct->_conf.get_schema(); + for (auto& pair : schema) { + // watch all "rbd_" keys for simplicity + if (!boost::starts_with(pair.first, rbd_key_prefix)) { + continue; + } + + m_config_key_strs.emplace_back(pair.first); + } + + m_config_keys.reserve(m_config_key_strs.size()); + for (auto& key : m_config_key_strs) { + m_config_keys.emplace_back(key.c_str()); + } + m_config_keys.emplace_back(nullptr); + } + + const char** get_tracked_conf_keys() const override { + ceph_assert(!m_config_keys.empty()); + return &m_config_keys[0]; + } + + void handle_conf_change(const ConfigProxy& conf, + const std::set &changed) override { + m_config_watcher->handle_global_config_change(changed); + } +}; + +template +ConfigWatcher::ConfigWatcher(I& image_ctx) + : m_image_ctx(image_ctx) { +} + +template +ConfigWatcher::~ConfigWatcher() { + ceph_assert(m_observer == nullptr); +} + +template +void ConfigWatcher::init() { + auto cct = m_image_ctx.cct; + ldout(cct, 10) << dendl; + + m_observer = new Observer(cct, this); + cct->_conf.add_observer(m_observer); +} + +template +void ConfigWatcher::shut_down() { + auto cct = m_image_ctx.cct; + ldout(cct, 10) << dendl; + + ceph_assert(m_observer != nullptr); + cct->_conf.remove_observer(m_observer); + + delete m_observer; + m_observer = nullptr; +} + +template +void ConfigWatcher::handle_global_config_change( + std::set changed_keys) { + + { + // ignore any global changes that are being overridden + RWLock::RLocker md_locker(m_image_ctx.md_lock); + for (auto& key : m_image_ctx.config_overrides) { + changed_keys.erase(key); + } + } + if (changed_keys.empty()) { + return; + } + + auto cct = m_image_ctx.cct; + ldout(cct, 10) << "changed_keys=" << changed_keys << dendl; + + // refresh the image to pick up any global config overrides + m_image_ctx.state->handle_update_notification(); +} + +} // namespace librbd + +template class librbd::ConfigWatcher; diff -Nru ceph-14.2.11/src/librbd/ConfigWatcher.h ceph-14.2.18/src/librbd/ConfigWatcher.h --- ceph-14.2.11/src/librbd/ConfigWatcher.h 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/librbd/ConfigWatcher.h 2021-03-15 17:46:20.000000000 +0000 @@ -0,0 +1,47 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#ifndef CEPH_LIBRBD_CONFIG_WATCHER_H +#define CEPH_LIBRBD_CONFIG_WATCHER_H + +#include +#include + +struct Context; + +namespace librbd { + +struct ImageCtx; + +template +class ConfigWatcher { +public: + static ConfigWatcher* create(ImageCtxT& image_ctx) { + return new ConfigWatcher(image_ctx); + } + + ConfigWatcher(ImageCtxT& image_ctx); + ~ConfigWatcher(); + + ConfigWatcher(const ConfigWatcher&) = delete; + ConfigWatcher& operator=(const ConfigWatcher&) = delete; + + void init(); + void shut_down(); + +private: + struct Observer; + + ImageCtxT& m_image_ctx; + + Observer* m_observer = nullptr; + + void handle_global_config_change(std::set changed); + +}; + +} // namespace librbd + +extern template class librbd::ConfigWatcher; + +#endif // CEPH_LIBRBD_CONFIG_WATCHER_H diff -Nru ceph-14.2.11/src/librbd/deep_copy/ImageCopyRequest.cc ceph-14.2.18/src/librbd/deep_copy/ImageCopyRequest.cc --- ceph-14.2.11/src/librbd/deep_copy/ImageCopyRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/ImageCopyRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -23,25 +23,30 @@ template ImageCopyRequest::ImageCopyRequest(I *src_image_ctx, I *dst_image_ctx, - librados::snap_t snap_id_start, - librados::snap_t snap_id_end, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, bool flatten, const ObjectNumber &object_number, const SnapSeqs &snap_seqs, ProgressContext *prog_ctx, Context *on_finish) : RefCountedObject(dst_image_ctx->cct, 1), m_src_image_ctx(src_image_ctx), - m_dst_image_ctx(dst_image_ctx), m_snap_id_start(snap_id_start), - m_snap_id_end(snap_id_end), m_flatten(flatten), - m_object_number(object_number), m_snap_seqs(snap_seqs), + m_dst_image_ctx(dst_image_ctx), m_src_snap_id_start(src_snap_id_start), + m_src_snap_id_end(src_snap_id_end), m_dst_snap_id_start(dst_snap_id_start), + m_flatten(flatten), m_object_number(object_number), m_snap_seqs(snap_seqs), m_prog_ctx(prog_ctx), m_on_finish(on_finish), m_cct(dst_image_ctx->cct), m_lock(unique_lock_name("ImageCopyRequest::m_lock", this)) { } template void ImageCopyRequest::send() { - util::compute_snap_map(m_snap_id_start, m_snap_id_end, m_snap_seqs, + m_dst_image_ctx->snap_lock.get_read(); + util::compute_snap_map(m_dst_image_ctx->cct, m_src_snap_id_start, + m_src_snap_id_end, m_dst_image_ctx->snaps, m_snap_seqs, &m_snap_map); + m_dst_image_ctx->snap_lock.put_read(); + if (m_snap_map.empty()) { lderr(m_cct) << "failed to map snapshots within boundary" << dendl; finish(-EINVAL); @@ -122,7 +127,8 @@ handle_object_copy(ono, r); }); ObjectCopyRequest *req = ObjectCopyRequest::create( - m_src_image_ctx, m_dst_image_ctx, m_snap_map, ono, m_flatten, ctx); + m_src_image_ctx, m_dst_image_ctx, m_src_snap_id_start, m_dst_snap_id_start, + m_snap_map, ono, m_flatten, ctx); req->send(); } diff -Nru ceph-14.2.11/src/librbd/deep_copy/ImageCopyRequest.h ceph-14.2.18/src/librbd/deep_copy/ImageCopyRequest.h --- ceph-14.2.11/src/librbd/deep_copy/ImageCopyRequest.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/ImageCopyRequest.h 2021-03-15 17:46:20.000000000 +0000 @@ -30,19 +30,23 @@ public: static ImageCopyRequest* create(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, - librados::snap_t snap_id_start, - librados::snap_t snap_id_end, bool flatten, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, + bool flatten, const ObjectNumber &object_number, const SnapSeqs &snap_seqs, ProgressContext *prog_ctx, Context *on_finish) { - return new ImageCopyRequest(src_image_ctx, dst_image_ctx, snap_id_start, - snap_id_end, flatten, object_number, snap_seqs, - prog_ctx, on_finish); + return new ImageCopyRequest(src_image_ctx, dst_image_ctx, src_snap_id_start, + src_snap_id_end, dst_snap_id_start, flatten, + object_number, snap_seqs, prog_ctx, on_finish); } ImageCopyRequest(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, - librados::snap_t snap_id_start, librados::snap_t snap_id_end, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, bool flatten, const ObjectNumber &object_number, const SnapSeqs &snap_seqs, ProgressContext *prog_ctx, Context *on_finish); @@ -68,8 +72,9 @@ ImageCtxT *m_src_image_ctx; ImageCtxT *m_dst_image_ctx; - librados::snap_t m_snap_id_start; - librados::snap_t m_snap_id_end; + librados::snap_t m_src_snap_id_start; + librados::snap_t m_src_snap_id_end; + librados::snap_t m_dst_snap_id_start; bool m_flatten; ObjectNumber m_object_number; SnapSeqs m_snap_seqs; diff -Nru ceph-14.2.11/src/librbd/deep_copy/ObjectCopyRequest.cc ceph-14.2.18/src/librbd/deep_copy/ObjectCopyRequest.cc --- ceph-14.2.11/src/librbd/deep_copy/ObjectCopyRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/ObjectCopyRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -43,13 +43,17 @@ template ObjectCopyRequest::ObjectCopyRequest(I *src_image_ctx, I *dst_image_ctx, + librados::snap_t src_snap_id_start, + librados::snap_t dst_snap_id_start, const SnapMap &snap_map, uint64_t dst_object_number, bool flatten, Context *on_finish) : m_src_image_ctx(src_image_ctx), m_dst_image_ctx(dst_image_ctx), m_cct(dst_image_ctx->cct), - m_snap_map(snap_map), m_dst_object_number(dst_object_number), - m_flatten(flatten), m_on_finish(on_finish) { + m_src_snap_id_start(src_snap_id_start), + m_dst_snap_id_start(dst_snap_id_start), m_snap_map(snap_map), + m_dst_object_number(dst_object_number), m_flatten(flatten), + m_on_finish(on_finish) { ceph_assert(src_image_ctx->data_ctx.is_valid()); ceph_assert(dst_image_ctx->data_ctx.is_valid()); ceph_assert(!m_snap_map.empty()); @@ -321,12 +325,15 @@ } // write snapshot context should be before actual snapshot - if (snap_map_it != m_snap_map.begin()) { - --snap_map_it; - ceph_assert(!snap_map_it->second.empty()); - dst_snap_seq = snap_map_it->second.front(); - dst_snap_ids = snap_map_it->second; + ceph_assert(!snap_map_it->second.empty()); + auto dst_snap_ids_it = snap_map_it->second.begin(); + ++dst_snap_ids_it; + + dst_snap_ids = SnapIds{dst_snap_ids_it, snap_map_it->second.end()}; + if (!dst_snap_ids.empty()) { + dst_snap_seq = dst_snap_ids.front(); } + ceph_assert(dst_snap_seq != CEPH_NOSNAP); } ldout(m_cct, 20) << "dst_snap_seq=" << dst_snap_seq << ", " @@ -585,10 +592,10 @@ m_src_image_ctx->parent_lock.put_read(); librados::snap_t src_copy_point_snap_id = m_snap_map.rbegin()->first; - bool prev_exists = hide_parent; + bool prev_exists = (hide_parent || m_src_snap_id_start > 0); uint64_t prev_end_size = prev_exists ? m_src_image_ctx->layout.object_size : 0; - librados::snap_t start_src_snap_id = 0; + librados::snap_t start_src_snap_id = m_src_snap_id_start; for (auto &pair : m_snap_map) { ceph_assert(!pair.second.empty()); diff -Nru ceph-14.2.11/src/librbd/deep_copy/ObjectCopyRequest.h ceph-14.2.18/src/librbd/deep_copy/ObjectCopyRequest.h --- ceph-14.2.11/src/librbd/deep_copy/ObjectCopyRequest.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/ObjectCopyRequest.h 2021-03-15 17:46:20.000000000 +0000 @@ -29,16 +29,20 @@ public: static ObjectCopyRequest* create(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, + librados::snap_t src_snap_id_start, + librados::snap_t dst_snap_id_start, const SnapMap &snap_map, uint64_t object_number, bool flatten, Context *on_finish) { - return new ObjectCopyRequest(src_image_ctx, dst_image_ctx, snap_map, + return new ObjectCopyRequest(src_image_ctx, dst_image_ctx, + src_snap_id_start, dst_snap_id_start, snap_map, object_number, flatten, on_finish); } ObjectCopyRequest(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, - const SnapMap &snap_map, uint64_t object_number, - bool flatten, Context *on_finish); + librados::snap_t src_snap_id_start, + librados::snap_t dst_snap_id_start, const SnapMap &snap_map, + uint64_t object_number, bool flatten, Context *on_finish); void send(); @@ -136,6 +140,8 @@ ImageCtxT *m_src_image_ctx; ImageCtxT *m_dst_image_ctx; CephContext *m_cct; + librados::snap_t m_src_snap_id_start; + librados::snap_t m_dst_snap_id_start; SnapMap m_snap_map; uint64_t m_dst_object_number; bool m_flatten; diff -Nru ceph-14.2.11/src/librbd/deep_copy/SnapshotCopyRequest.cc ceph-14.2.18/src/librbd/deep_copy/SnapshotCopyRequest.cc --- ceph-14.2.11/src/librbd/deep_copy/SnapshotCopyRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/SnapshotCopyRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -45,22 +45,34 @@ template SnapshotCopyRequest::SnapshotCopyRequest(I *src_image_ctx, I *dst_image_ctx, - librados::snap_t snap_id_end, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, bool flatten, ContextWQ *work_queue, SnapSeqs *snap_seqs, Context *on_finish) : RefCountedObject(dst_image_ctx->cct, 1), m_src_image_ctx(src_image_ctx), - m_dst_image_ctx(dst_image_ctx), m_snap_id_end(snap_id_end), + m_dst_image_ctx(dst_image_ctx), m_src_snap_id_start(src_snap_id_start), + m_src_snap_id_end(src_snap_id_end), m_dst_snap_id_start(dst_snap_id_start), m_flatten(flatten), m_work_queue(work_queue), m_snap_seqs_result(snap_seqs), m_snap_seqs(*snap_seqs), m_on_finish(on_finish), m_cct(dst_image_ctx->cct), m_lock(unique_lock_name("SnapshotCopyRequest::m_lock", this)) { + ceph_assert((m_src_snap_id_start == 0 && m_dst_snap_id_start == 0) || + (m_src_snap_id_start > 0 && m_dst_snap_id_start > 0)); + // snap ids ordered from oldest to newest + m_src_image_ctx->snap_lock.get_read(); m_src_snap_ids.insert(src_image_ctx->snaps.begin(), src_image_ctx->snaps.end()); + m_src_image_ctx->snap_lock.put_read(); + + m_dst_image_ctx->snap_lock.get_read(); m_dst_snap_ids.insert(dst_image_ctx->snaps.begin(), dst_image_ctx->snaps.end()); - if (m_snap_id_end != CEPH_NOSNAP) { - m_src_snap_ids.erase(m_src_snap_ids.upper_bound(m_snap_id_end), + m_dst_image_ctx->snap_lock.put_read(); + + if (m_src_snap_id_end != CEPH_NOSNAP) { + m_src_snap_ids.erase(m_src_snap_ids.upper_bound(m_src_snap_id_end), m_src_snap_ids.end()); } } @@ -99,6 +111,8 @@ SnapIdSet::iterator snap_id_it = m_dst_snap_ids.begin(); if (m_prev_snap_id != CEPH_NOSNAP) { snap_id_it = m_dst_snap_ids.upper_bound(m_prev_snap_id); + } else if (m_dst_snap_id_start > 0) { + snap_id_it = m_dst_snap_ids.upper_bound(m_dst_snap_id_start); } for (; snap_id_it != m_dst_snap_ids.end(); ++snap_id_it) { @@ -197,7 +211,7 @@ if (r < 0) { lderr(m_cct) << "failed to unprotect snapshot '" << m_snap_name << "': " - << cpp_strerror(r) << dendl; + << cpp_strerror(r) << dendl; finish(r); return; } @@ -224,6 +238,8 @@ SnapIdSet::iterator snap_id_it = m_dst_snap_ids.begin(); if (m_prev_snap_id != CEPH_NOSNAP) { snap_id_it = m_dst_snap_ids.upper_bound(m_prev_snap_id); + } else if (m_dst_snap_id_start > 0) { + snap_id_it = m_dst_snap_ids.upper_bound(m_dst_snap_id_start); } for (; snap_id_it != m_dst_snap_ids.end(); ++snap_id_it) { @@ -310,6 +326,8 @@ SnapIdSet::iterator snap_id_it = m_src_snap_ids.begin(); if (m_prev_snap_id != CEPH_NOSNAP) { snap_id_it = m_src_snap_ids.upper_bound(m_prev_snap_id); + } else if (m_src_snap_id_start > 0) { + snap_id_it = m_src_snap_ids.upper_bound(m_src_snap_id_start); } for (; snap_id_it != m_src_snap_ids.end(); ++snap_id_it) { @@ -326,10 +344,17 @@ return; } - // if the source snapshot isn't in our mapping table, create it - if (m_snap_seqs.find(src_snap_id) == m_snap_seqs.end() && - boost::get(&snap_namespace) != nullptr) { - break; + if (m_snap_seqs.find(src_snap_id) == m_snap_seqs.end()) { + // the source snapshot is not in our mapping table, ... + if (boost::get(&snap_namespace) != + nullptr) { + // ... create it since it's a user snapshot + break; + } else if (src_snap_id == m_src_snap_id_end) { + // ... map it to destination HEAD since it's not a user snapshot that we + // will create (e.g. MirrorPrimarySnapshotNamespace) + m_snap_seqs[src_snap_id] = CEPH_NOSNAP; + } } } @@ -396,7 +421,7 @@ if (r < 0) { lderr(m_cct) << "failed to create snapshot '" << m_snap_name << "': " - << cpp_strerror(r) << dendl; + << cpp_strerror(r) << dendl; finish(r); return; } @@ -423,6 +448,8 @@ SnapIdSet::iterator snap_id_it = m_src_snap_ids.begin(); if (m_prev_snap_id != CEPH_NOSNAP) { snap_id_it = m_src_snap_ids.upper_bound(m_prev_snap_id); + } else if (m_src_snap_id_start > 0) { + snap_id_it = m_src_snap_ids.upper_bound(m_src_snap_id_start); } for (; snap_id_it != m_src_snap_ids.end(); ++snap_id_it) { @@ -449,6 +476,11 @@ // if destination snapshot is not protected, protect it auto snap_seq_it = m_snap_seqs.find(src_snap_id); ceph_assert(snap_seq_it != m_snap_seqs.end()); + if (snap_seq_it->second == CEPH_NOSNAP) { + // implies src end snapshot is mapped to a non-copyable snapshot + ceph_assert(src_snap_id == m_src_snap_id_end); + break; + } m_dst_image_ctx->snap_lock.get_read(); bool dst_protected; @@ -516,7 +548,11 @@ template void SnapshotCopyRequest::send_set_head() { - if (m_snap_id_end != CEPH_NOSNAP) { + auto snap_seq_it = m_snap_seqs.find(m_src_snap_id_end); + if (m_src_snap_id_end != CEPH_NOSNAP && + (snap_seq_it == m_snap_seqs.end() || + snap_seq_it->second != CEPH_NOSNAP)) { + // not copying to src nor dst HEAD revision finish(0); return; } @@ -528,10 +564,20 @@ uint64_t parent_overlap = 0; { RWLock::RLocker src_locker(m_src_image_ctx->snap_lock); - size = m_src_image_ctx->size; - if (!m_flatten) { - parent_spec = m_src_image_ctx->parent_md.spec; - parent_overlap = m_src_image_ctx->parent_md.overlap; + auto snap_info_it = m_src_image_ctx->snap_info.find(m_src_snap_id_end); + if (snap_info_it != m_src_image_ctx->snap_info.end()) { + auto& snap_info = snap_info_it->second; + size = snap_info.size; + if (!m_flatten) { + parent_spec = snap_info.parent.spec; + parent_overlap = snap_info.parent.overlap; + } + } else { + size = m_src_image_ctx->size; + if (!m_flatten) { + parent_spec = m_src_image_ctx->parent_md.spec; + parent_overlap = m_src_image_ctx->parent_md.overlap; + } } } @@ -563,8 +609,7 @@ void SnapshotCopyRequest::send_resize_object_map() { int r = 0; - if (m_snap_id_end == CEPH_NOSNAP && - m_dst_image_ctx->test_features(RBD_FEATURE_OBJECT_MAP)) { + if (m_dst_image_ctx->test_features(RBD_FEATURE_OBJECT_MAP)) { RWLock::RLocker owner_locker(m_dst_image_ctx->owner_lock); RWLock::RLocker snap_locker(m_dst_image_ctx->snap_lock); diff -Nru ceph-14.2.11/src/librbd/deep_copy/SnapshotCopyRequest.h ceph-14.2.18/src/librbd/deep_copy/SnapshotCopyRequest.h --- ceph-14.2.11/src/librbd/deep_copy/SnapshotCopyRequest.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/SnapshotCopyRequest.h 2021-03-15 17:46:20.000000000 +0000 @@ -25,16 +25,22 @@ public: static SnapshotCopyRequest* create(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, - librados::snap_t snap_id_end, bool flatten, - ContextWQ *work_queue, SnapSeqs *snap_seqs, - Context *on_finish) { - return new SnapshotCopyRequest(src_image_ctx, dst_image_ctx, snap_id_end, - flatten, work_queue, snap_seqs, on_finish); + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, + bool flatten, ContextWQ *work_queue, + SnapSeqs *snap_seqs, Context *on_finish) { + return new SnapshotCopyRequest(src_image_ctx, dst_image_ctx, + src_snap_id_start, src_snap_id_end, + dst_snap_id_start, flatten, work_queue, + snap_seqs, on_finish); } SnapshotCopyRequest(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, - librados::snap_t snap_id_end, bool flatten, - ContextWQ *work_queue, SnapSeqs *snap_seqs, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, + bool flatten, ContextWQ *work_queue, SnapSeqs *snap_seqs, Context *on_finish); void send(); @@ -82,7 +88,9 @@ ImageCtxT *m_src_image_ctx; ImageCtxT *m_dst_image_ctx; - librados::snap_t m_snap_id_end; + librados::snap_t m_src_snap_id_start; + librados::snap_t m_src_snap_id_end; + librados::snap_t m_dst_snap_id_start; bool m_flatten; ContextWQ *m_work_queue; SnapSeqs *m_snap_seqs_result; diff -Nru ceph-14.2.11/src/librbd/deep_copy/Utils.cc ceph-14.2.18/src/librbd/deep_copy/Utils.cc --- ceph-14.2.11/src/librbd/deep_copy/Utils.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/Utils.cc 2021-03-15 17:46:20.000000000 +0000 @@ -1,29 +1,61 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab +#include "common/debug.h" #include "Utils.h" +#include namespace librbd { namespace deep_copy { namespace util { -void compute_snap_map(librados::snap_t snap_id_start, - librados::snap_t snap_id_end, +#define dout_subsys ceph_subsys_rbd +#undef dout_prefix +#define dout_prefix *_dout << "librbd::deep_copy::util::" << __func__ << ": " + +void compute_snap_map(CephContext* cct, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + const SnapIds& dst_snap_ids, const SnapSeqs &snap_seqs, SnapMap *snap_map) { + std::set ordered_dst_snap_ids{ + dst_snap_ids.begin(), dst_snap_ids.end()}; + auto dst_snap_id_it = ordered_dst_snap_ids.begin(); + SnapIds snap_ids; for (auto &it : snap_seqs) { + // ensure all dst snap ids are included in the mapping table since + // deep copy will skip non-user snapshots + while (dst_snap_id_it != ordered_dst_snap_ids.end()) { + if (*dst_snap_id_it < it.second) { + snap_ids.insert(snap_ids.begin(), *dst_snap_id_it); + } else if (*dst_snap_id_it > it.second) { + break; + } + ++dst_snap_id_it; + } + + // we should only have the HEAD revision in the the last snap seq + ceph_assert(snap_ids.empty() || snap_ids[0] != CEPH_NOSNAP); snap_ids.insert(snap_ids.begin(), it.second); - if (it.first < snap_id_start) { + + if (it.first < src_snap_id_start) { continue; - } else if (it.first > snap_id_end) { + } else if (it.first > src_snap_id_end) { break; } (*snap_map)[it.first] = snap_ids; } + + ldout(cct, 10) << "src_snap_id_start=" << src_snap_id_start << ", " + << "src_snap_id_end=" << src_snap_id_end << ", " + << "dst_snap_ids=" << dst_snap_ids << ", " + << "snap_seqs=" << snap_seqs << ", " + << "snap_map=" << *snap_map << dendl; } -} // util +} // namespace util } // namespace deep_copy } // namespace librbd diff -Nru ceph-14.2.11/src/librbd/deep_copy/Utils.h ceph-14.2.18/src/librbd/deep_copy/Utils.h --- ceph-14.2.11/src/librbd/deep_copy/Utils.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/deep_copy/Utils.h 2021-03-15 17:46:20.000000000 +0000 @@ -10,12 +10,16 @@ #include +struct CephContext; + namespace librbd { namespace deep_copy { namespace util { -void compute_snap_map(librados::snap_t snap_id_start, - librados::snap_t snap_id_end, +void compute_snap_map(CephContext* cct, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + const SnapIds& dst_snap_ids, const SnapSeqs &snap_seqs, SnapMap *snap_map); diff -Nru ceph-14.2.11/src/librbd/DeepCopyRequest.cc ceph-14.2.18/src/librbd/DeepCopyRequest.cc --- ceph-14.2.11/src/librbd/DeepCopyRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/DeepCopyRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -27,18 +27,20 @@ template DeepCopyRequest::DeepCopyRequest(I *src_image_ctx, I *dst_image_ctx, - librados::snap_t snap_id_start, - librados::snap_t snap_id_end, bool flatten, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, + bool flatten, const ObjectNumber &object_number, ContextWQ *work_queue, SnapSeqs *snap_seqs, ProgressContext *prog_ctx, Context *on_finish) : RefCountedObject(dst_image_ctx->cct, 1), m_src_image_ctx(src_image_ctx), - m_dst_image_ctx(dst_image_ctx), m_snap_id_start(snap_id_start), - m_snap_id_end(snap_id_end), m_flatten(flatten), - m_object_number(object_number), m_work_queue(work_queue), - m_snap_seqs(snap_seqs), m_prog_ctx(prog_ctx), m_on_finish(on_finish), - m_cct(dst_image_ctx->cct), + m_dst_image_ctx(dst_image_ctx), m_src_snap_id_start(src_snap_id_start), + m_src_snap_id_end(src_snap_id_end), m_dst_snap_id_start(dst_snap_id_start), + m_flatten(flatten), m_object_number(object_number), + m_work_queue(work_queue), m_snap_seqs(snap_seqs), m_prog_ctx(prog_ctx), + m_on_finish(on_finish), m_cct(dst_image_ctx->cct), m_lock(unique_lock_name("DeepCopyRequest::m_lock", this)) { } @@ -102,8 +104,8 @@ Context *ctx = create_context_callback< DeepCopyRequest, &DeepCopyRequest::handle_copy_snapshots>(this); m_snapshot_copy_request = SnapshotCopyRequest::create( - m_src_image_ctx, m_dst_image_ctx, m_snap_id_end, m_flatten, m_work_queue, - m_snap_seqs, ctx); + m_src_image_ctx, m_dst_image_ctx, m_src_snap_id_start, m_src_snap_id_end, + m_dst_snap_id_start, m_flatten, m_work_queue, m_snap_seqs, ctx); m_snapshot_copy_request->get(); m_lock.Unlock(); @@ -134,7 +136,7 @@ return; } - if (m_snap_id_end == CEPH_NOSNAP) { + if (m_src_snap_id_end == CEPH_NOSNAP) { (*m_snap_seqs)[CEPH_NOSNAP] = CEPH_NOSNAP; } @@ -155,8 +157,9 @@ Context *ctx = create_context_callback< DeepCopyRequest, &DeepCopyRequest::handle_copy_image>(this); m_image_copy_request = ImageCopyRequest::create( - m_src_image_ctx, m_dst_image_ctx, m_snap_id_start, m_snap_id_end, - m_flatten, m_object_number, *m_snap_seqs, m_prog_ctx, ctx); + m_src_image_ctx, m_dst_image_ctx, m_src_snap_id_start, m_src_snap_id_end, + m_dst_snap_id_start, m_flatten, m_object_number, *m_snap_seqs, m_prog_ctx, + ctx); m_image_copy_request->get(); m_lock.Unlock(); @@ -201,7 +204,7 @@ send_copy_metadata(); return; } - if (m_snap_id_end == CEPH_NOSNAP) { + if (m_src_snap_id_end == CEPH_NOSNAP) { m_dst_image_ctx->snap_lock.put_read(); m_dst_image_ctx->owner_lock.put_read(); send_refresh_object_map(); @@ -231,8 +234,8 @@ handle_copy_object_map(r); finish_op_ctx->complete(0); }); - ceph_assert(m_snap_seqs->count(m_snap_id_end) > 0); - librados::snap_t copy_snap_id = (*m_snap_seqs)[m_snap_id_end]; + ceph_assert(m_snap_seqs->count(m_src_snap_id_end) > 0); + librados::snap_t copy_snap_id = (*m_snap_seqs)[m_src_snap_id_end]; m_dst_image_ctx->object_map->rollback(copy_snap_id, ctx); m_dst_image_ctx->snap_lock.put_read(); m_dst_image_ctx->owner_lock.put_read(); @@ -329,17 +332,17 @@ int DeepCopyRequest::validate_copy_points() { RWLock::RLocker snap_locker(m_src_image_ctx->snap_lock); - if (m_snap_id_start != 0 && - m_src_image_ctx->snap_info.find(m_snap_id_start) == + if (m_src_snap_id_start != 0 && + m_src_image_ctx->snap_info.find(m_src_snap_id_start) == m_src_image_ctx->snap_info.end()) { - lderr(m_cct) << "invalid start snap_id " << m_snap_id_start << dendl; + lderr(m_cct) << "invalid start snap_id " << m_src_snap_id_start << dendl; return -EINVAL; } - if (m_snap_id_end != CEPH_NOSNAP && - m_src_image_ctx->snap_info.find(m_snap_id_end) == + if (m_src_snap_id_end != CEPH_NOSNAP && + m_src_image_ctx->snap_info.find(m_src_snap_id_end) == m_src_image_ctx->snap_info.end()) { - lderr(m_cct) << "invalid end snap_id " << m_snap_id_end << dendl; + lderr(m_cct) << "invalid end snap_id " << m_src_snap_id_end << dendl; return -EINVAL; } diff -Nru ceph-14.2.11/src/librbd/DeepCopyRequest.h ceph-14.2.18/src/librbd/DeepCopyRequest.h --- ceph-14.2.11/src/librbd/DeepCopyRequest.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/DeepCopyRequest.h 2021-03-15 17:46:20.000000000 +0000 @@ -32,20 +32,25 @@ public: static DeepCopyRequest* create(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, - librados::snap_t snap_id_start, - librados::snap_t snap_id_end, bool flatten, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, + bool flatten, const deep_copy::ObjectNumber &object_number, ContextWQ *work_queue, SnapSeqs *snap_seqs, ProgressContext *prog_ctx, Context *on_finish) { - return new DeepCopyRequest(src_image_ctx, dst_image_ctx, snap_id_start, - snap_id_end, flatten, object_number, work_queue, - snap_seqs, prog_ctx, on_finish); + return new DeepCopyRequest(src_image_ctx, dst_image_ctx, src_snap_id_start, + src_snap_id_end, dst_snap_id_start, flatten, + object_number, work_queue, snap_seqs, prog_ctx, + on_finish); } DeepCopyRequest(ImageCtxT *src_image_ctx, ImageCtxT *dst_image_ctx, - librados::snap_t snap_id_start, librados::snap_t snap_id_end, + librados::snap_t src_snap_id_start, + librados::snap_t src_snap_id_end, + librados::snap_t dst_snap_id_start, bool flatten, const deep_copy::ObjectNumber &object_number, ContextWQ *work_queue, SnapSeqs *snap_seqs, ProgressContext *prog_ctx, Context *on_finish); @@ -86,8 +91,9 @@ ImageCtxT *m_src_image_ctx; ImageCtxT *m_dst_image_ctx; - librados::snap_t m_snap_id_start; - librados::snap_t m_snap_id_end; + librados::snap_t m_src_snap_id_start; + librados::snap_t m_src_snap_id_end; + librados::snap_t m_dst_snap_id_start; bool m_flatten; deep_copy::ObjectNumber m_object_number; ContextWQ *m_work_queue; diff -Nru ceph-14.2.11/src/librbd/image/CloseRequest.cc ceph-14.2.18/src/librbd/image/CloseRequest.cc --- ceph-14.2.11/src/librbd/image/CloseRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/image/CloseRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -4,6 +4,7 @@ #include "librbd/image/CloseRequest.h" #include "common/dout.h" #include "common/errno.h" +#include "librbd/ConfigWatcher.h" #include "librbd/ExclusiveLock.h" #include "librbd/ImageCtx.h" #include "librbd/ImageState.h" @@ -34,6 +35,13 @@ template void CloseRequest::send() { + if (m_image_ctx->config_watcher != nullptr) { + m_image_ctx->config_watcher->shut_down(); + + delete m_image_ctx->config_watcher; + m_image_ctx->config_watcher = nullptr; + } + send_block_image_watcher(); } diff -Nru ceph-14.2.11/src/librbd/image/CreateRequest.cc ceph-14.2.18/src/librbd/image/CreateRequest.cc --- ceph-14.2.11/src/librbd/image/CreateRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/image/CreateRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -38,7 +38,7 @@ lderr(cct) << "librbd does not support requested features." << dendl; return -ENOSYS; } - if ((features & RBD_FEATURE_OPERATIONS) != 0) { + if ((features & RBD_FEATURES_INTERNAL) != 0) { lderr(cct) << "cannot use internally controlled features" << dendl; return -EINVAL; } @@ -155,6 +155,7 @@ m_features |= features_set; m_features &= ~features_clear; + m_features &= ~RBD_FEATURES_IMPLICIT_ENABLE; if ((m_features & RBD_FEATURE_OBJECT_MAP) == RBD_FEATURE_OBJECT_MAP) { m_features |= RBD_FEATURE_FAST_DIFF; } @@ -200,14 +201,11 @@ m_features |= RBD_FEATURE_DATA_POOL; } else { m_data_pool.clear(); - m_features &= ~RBD_FEATURE_DATA_POOL; } if ((m_stripe_unit != 0 && m_stripe_unit != (1ULL << m_order)) || (m_stripe_count != 0 && m_stripe_count != 1)) { m_features |= RBD_FEATURE_STRIPINGV2; - } else { - m_features &= ~RBD_FEATURE_STRIPINGV2; } ldout(m_cct, 10) << "name=" << m_image_name << ", " diff -Nru ceph-14.2.11/src/librbd/image/ListWatchersRequest.cc ceph-14.2.18/src/librbd/image/ListWatchersRequest.cc --- ceph-14.2.11/src/librbd/image/ListWatchersRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/image/ListWatchersRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -17,6 +17,13 @@ #define dout_prefix *_dout << "librbd::image::ListWatchersRequest: " << this \ << " " << __func__ << ": " +static std::ostream& operator<<(std::ostream& os, const obj_watch_t& watch) { + os << "{addr=" << watch.addr << ", " + << "watcher_id=" << watch.watcher_id << ", " + << "cookie=" << watch.cookie << "}"; + return os; +} + namespace librbd { namespace image { @@ -69,6 +76,7 @@ return; } + ldout(m_cct, 20) << "object_watchers=" << m_object_watchers << dendl; list_mirror_watchers(); } @@ -107,6 +115,8 @@ ldout(m_cct, 1) << "error listing mirror watchers: " << cpp_strerror(r) << dendl; } + + ldout(m_cct, 20) << "mirror_watchers=" << m_mirror_watchers << dendl; finish(0); } @@ -125,6 +135,7 @@ for (auto &w : m_object_watchers) { if ((m_flags & LIST_WATCHERS_FILTER_OUT_MY_INSTANCE) != 0) { if (w.cookie == watch_handle) { + ldout(m_cct, 20) << "filtering out my instance: " << w << dendl; continue; } } @@ -136,6 +147,7 @@ sizeof(w.addr)) == 0); }); if (it != m_mirror_watchers.end()) { + ldout(m_cct, 20) << "filtering out mirror instance: " << w << dendl; continue; } } diff -Nru ceph-14.2.11/src/librbd/image/OpenRequest.cc ceph-14.2.18/src/librbd/image/OpenRequest.cc --- ceph-14.2.11/src/librbd/image/OpenRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/image/OpenRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -5,6 +5,7 @@ #include "common/dout.h" #include "common/errno.h" #include "cls/rbd/cls_rbd_client.h" +#include "librbd/ConfigWatcher.h" #include "librbd/ImageCtx.h" #include "librbd/Utils.h" #include "librbd/cache/ObjectCacherObjectDispatch.h" @@ -497,6 +498,9 @@ CephContext *cct = m_image_ctx->cct; ldout(cct, 10) << this << " " << __func__ << dendl; + m_image_ctx->config_watcher = ConfigWatcher::create(*m_image_ctx); + m_image_ctx->config_watcher->init(); + using klass = OpenRequest; RefreshRequest *req = RefreshRequest::create( *m_image_ctx, false, m_skip_open_parent_image, diff -Nru ceph-14.2.11/src/librbd/image/RefreshRequest.cc ceph-14.2.18/src/librbd/image/RefreshRequest.cc --- ceph-14.2.11/src/librbd/image/RefreshRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/image/RefreshRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -130,13 +130,29 @@ case cls::rbd::MIGRATION_HEADER_TYPE_DST: ldout(cct, 1) << this << " " << __func__ << ": migrating from: " << m_migration_spec << dendl; - if (m_migration_spec.state != cls::rbd::MIGRATION_STATE_PREPARED && - m_migration_spec.state != cls::rbd::MIGRATION_STATE_EXECUTING && - m_migration_spec.state != cls::rbd::MIGRATION_STATE_EXECUTED) { + switch (m_migration_spec.state) { + case cls::rbd::MIGRATION_STATE_PREPARING: ldout(cct, 5) << this << " " << __func__ << ": current migration state: " << m_migration_spec.state << ", retrying" << dendl; send(); return nullptr; + case cls::rbd::MIGRATION_STATE_PREPARED: + case cls::rbd::MIGRATION_STATE_EXECUTING: + case cls::rbd::MIGRATION_STATE_EXECUTED: + break; + case cls::rbd::MIGRATION_STATE_ABORTING: + if (!m_image_ctx.read_only) { + lderr(cct) << this << " " << __func__ << ": migration is being aborted" + << dendl; + *result = -EROFS; + return m_on_finish; + } + break; + default: + lderr(cct) << this << " " << __func__ << ": migration is in an " + << "unexpected state" << dendl; + *result = -EINVAL; + return m_on_finish; } break; default: @@ -1327,8 +1343,14 @@ m_image_ctx.operations_disabled = ( (m_op_features & ~RBD_OPERATION_FEATURES_ALL) != 0ULL); m_image_ctx.group_spec = m_group_spec; - if (get_migration_info(&m_image_ctx.parent_md, - &m_image_ctx.migration_info)) { + + bool migration_info_valid; + int r = get_migration_info(&m_image_ctx.parent_md, + &m_image_ctx.migration_info, + &migration_info_valid); + ceph_assert(r == 0); // validated in refresh parent step + + if (migration_info_valid) { for (auto it : m_image_ctx.migration_info.snap_map) { migration_reverse_snap_seq[it.second.front()] = it.first; } @@ -1437,7 +1459,13 @@ int RefreshRequest::get_parent_info(uint64_t snap_id, ParentImageInfo *parent_md, MigrationInfo *migration_info) { - if (get_migration_info(parent_md, migration_info)) { + bool migration_info_valid; + int r = get_migration_info(parent_md, migration_info, &migration_info_valid); + if (r < 0) { + return r; + } + + if (migration_info_valid) { return 0; } else if (snap_id == CEPH_NOSNAP) { *parent_md = m_parent_md; @@ -1456,17 +1484,24 @@ } template -bool RefreshRequest::get_migration_info(ParentImageInfo *parent_md, - MigrationInfo *migration_info) { +int RefreshRequest::get_migration_info(ParentImageInfo *parent_md, + MigrationInfo *migration_info, + bool* migration_info_valid) { + CephContext *cct = m_image_ctx.cct; if (m_migration_spec.header_type != cls::rbd::MIGRATION_HEADER_TYPE_DST || (m_migration_spec.state != cls::rbd::MIGRATION_STATE_PREPARED && - m_migration_spec.state != cls::rbd::MIGRATION_STATE_EXECUTING)) { - ceph_assert(m_migration_spec.header_type == - cls::rbd::MIGRATION_HEADER_TYPE_SRC || - m_migration_spec.pool_id == -1 || - m_migration_spec.state == cls::rbd::MIGRATION_STATE_EXECUTED); + m_migration_spec.state != cls::rbd::MIGRATION_STATE_EXECUTING && + m_migration_spec.state != cls::rbd::MIGRATION_STATE_ABORTING)) { + if (m_migration_spec.header_type != cls::rbd::MIGRATION_HEADER_TYPE_SRC && + m_migration_spec.pool_id != -1 && + m_migration_spec.state != cls::rbd::MIGRATION_STATE_EXECUTED) { + lderr(cct) << this << " " << __func__ << ": invalid migration spec" + << dendl; + return -EINVAL; + } - return false; + *migration_info_valid = false; + return 0; } parent_md->spec.pool_id = m_migration_spec.pool_id; @@ -1503,10 +1538,11 @@ *migration_info = {m_migration_spec.pool_id, m_migration_spec.pool_namespace, m_migration_spec.image_name, m_migration_spec.image_id, {}, overlap, m_migration_spec.flatten}; + *migration_info_valid = true; - deep_copy::util::compute_snap_map(0, CEPH_NOSNAP, snap_seqs, - &migration_info->snap_map); - return true; + deep_copy::util::compute_snap_map(m_image_ctx.cct, 0, CEPH_NOSNAP, {}, + snap_seqs, &migration_info->snap_map); + return 0; } } // namespace image diff -Nru ceph-14.2.11/src/librbd/image/RefreshRequest.h ceph-14.2.18/src/librbd/image/RefreshRequest.h --- ceph-14.2.11/src/librbd/image/RefreshRequest.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/image/RefreshRequest.h 2021-03-15 17:46:20.000000000 +0000 @@ -257,8 +257,9 @@ void apply(); int get_parent_info(uint64_t snap_id, ParentImageInfo *parent_md, MigrationInfo *migration_info); - bool get_migration_info(ParentImageInfo *parent_md, - MigrationInfo *migration_info); + int get_migration_info(ParentImageInfo *parent_md, + MigrationInfo *migration_info, + bool* migration_info_valid); }; } // namespace image diff -Nru ceph-14.2.11/src/librbd/ImageCtx.cc ceph-14.2.18/src/librbd/ImageCtx.cc --- ceph-14.2.11/src/librbd/ImageCtx.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/ImageCtx.cc 2021-03-15 17:46:20.000000000 +0000 @@ -161,6 +161,7 @@ } ImageCtx::~ImageCtx() { + ceph_assert(config_watcher == nullptr); ceph_assert(image_watcher == NULL); ceph_assert(exclusive_lock == NULL); ceph_assert(object_map == NULL); @@ -735,6 +736,8 @@ bool thread_safe) { ldout(cct, 20) << __func__ << dendl; + RWLock::WLocker md_locker(md_lock); + // reset settings back to global defaults for (auto& key : config_overrides) { std::string value; @@ -773,6 +776,8 @@ } } + md_locker.unlock(); + #define ASSIGN_OPTION(param, type) \ param = config.get_val("rbd_"#param) diff -Nru ceph-14.2.11/src/librbd/ImageCtx.h ceph-14.2.18/src/librbd/ImageCtx.h --- ceph-14.2.11/src/librbd/ImageCtx.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/ImageCtx.h 2021-03-15 17:46:20.000000000 +0000 @@ -39,6 +39,7 @@ namespace librbd { + template class ConfigWatcher; template class ExclusiveLock; template class ImageState; template class ImageWatcher; @@ -91,6 +92,8 @@ cls::rbd::SnapshotNamespace snap_namespace; std::string snap_name; IoCtx data_ctx, md_ctx; + + ConfigWatcher *config_watcher = nullptr; ImageWatcher *image_watcher; Journal *journal; diff -Nru ceph-14.2.11/src/librbd/ImageWatcher.cc ceph-14.2.18/src/librbd/ImageWatcher.cc --- ceph-14.2.11/src/librbd/ImageWatcher.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/ImageWatcher.cc 2021-03-15 17:46:20.000000000 +0000 @@ -86,6 +86,9 @@ cancel_async_requests(); + on_finish = new FunctionContext([this, on_finish](int r) { + m_async_op_tracker.wait_for_ops(on_finish); + }); FunctionContext *ctx = new FunctionContext([this, on_finish](int r) { m_task_finisher->cancel_all(on_finish); }); @@ -127,6 +130,7 @@ template void ImageWatcher::schedule_async_complete(const AsyncRequestId &request, int r) { + m_async_op_tracker.start_op(); FunctionContext *ctx = new FunctionContext( boost::bind(&ImageWatcher::notify_async_complete, this, request, r)); m_task_finisher->queue(ctx); @@ -152,13 +156,16 @@ if (ret_val < 0) { lderr(m_image_ctx.cct) << this << " failed to notify async complete: " << cpp_strerror(ret_val) << dendl; - if (ret_val == -ETIMEDOUT) { + if (ret_val == -ETIMEDOUT && !is_unregistered()) { schedule_async_complete(request, r); + m_async_op_tracker.finish_op(); + return; } - } else { - RWLock::WLocker async_request_locker(m_async_request_lock); - m_async_pending.erase(request); } + + RWLock::WLocker async_request_locker(m_async_request_lock); + m_async_pending.erase(request); + m_async_op_tracker.finish_op(); } template diff -Nru ceph-14.2.11/src/librbd/ImageWatcher.h ceph-14.2.18/src/librbd/ImageWatcher.h --- ceph-14.2.11/src/librbd/ImageWatcher.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/ImageWatcher.h 2021-03-15 17:46:20.000000000 +0000 @@ -7,6 +7,7 @@ #include "cls/rbd/cls_rbd_types.h" #include "common/Mutex.h" #include "common/RWLock.h" +#include "common/AsyncOpTracker.h" #include "include/Context.h" #include "include/rbd/librbd.hpp" #include "librbd/Watcher.h" @@ -172,6 +173,8 @@ Mutex m_owner_client_id_lock; watch_notify::ClientId m_owner_client_id; + AsyncOpTracker m_async_op_tracker; + void handle_register_watch(int r); void schedule_cancel_async_requests(); diff -Nru ceph-14.2.11/src/librbd/io/CopyupRequest.cc ceph-14.2.18/src/librbd/io/CopyupRequest.cc --- ceph-14.2.11/src/librbd/io/CopyupRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/io/CopyupRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -235,8 +235,8 @@ auto ctx = util::create_context_callback< CopyupRequest, &CopyupRequest::handle_deep_copy>(this); auto req = deep_copy::ObjectCopyRequest::create( - m_image_ctx->parent, m_image_ctx, m_image_ctx->migration_info.snap_map, - m_object_no, m_flatten, ctx); + m_image_ctx->parent, m_image_ctx, 0, 0, + m_image_ctx->migration_info.snap_map, m_object_no, m_flatten, ctx); req->send(); } diff -Nru ceph-14.2.11/src/librbd/io/ImageRequestWQ.cc ceph-14.2.18/src/librbd/io/ImageRequestWQ.cc --- ceph-14.2.11/src/librbd/io/ImageRequestWQ.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/io/ImageRequestWQ.cc 2021-03-15 17:46:20.000000000 +0000 @@ -730,21 +730,23 @@ } template -void ImageRequestWQ::handle_throttle_ready(int r, ImageDispatchSpec *item, uint64_t flag) { +void ImageRequestWQ::handle_throttle_ready(int r, ImageDispatchSpec *item, + uint64_t flag) { CephContext *cct = m_image_ctx.cct; ldout(cct, 15) << "r=" << r << ", " << "req=" << item << dendl; + std::lock_guard pool_locker{this->get_pool_lock()}; ceph_assert(m_io_throttled.load() > 0); item->set_throttled(flag); if (item->were_all_throttled()) { - this->requeue_back(item); + this->requeue_back(pool_locker, item); --m_io_throttled; - this->signal(); + this->signal(pool_locker); } } template -bool ImageRequestWQ::needs_throttle(ImageDispatchSpec *item) { +bool ImageRequestWQ::needs_throttle(ImageDispatchSpec *item) { uint64_t tokens = 0; uint64_t flag = 0; bool blocked = false; diff -Nru ceph-14.2.11/src/librbd/operation/DisableFeaturesRequest.cc ceph-14.2.18/src/librbd/operation/DisableFeaturesRequest.cc --- ceph-14.2.11/src/librbd/operation/DisableFeaturesRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/operation/DisableFeaturesRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -481,7 +481,7 @@ CephContext *cct = image_ctx.cct; ldout(cct, 20) << this << " " << __func__ << ": r=" << *result << dendl; - if (*result < 0) { + if (*result < 0 && *result != -ENOENT) { lderr(cct) << "failed to remove object map: " << cpp_strerror(*result) << dendl; return handle_finish(*result); } diff -Nru ceph-14.2.11/src/librbd/operation/MigrateRequest.cc ceph-14.2.18/src/librbd/operation/MigrateRequest.cc --- ceph-14.2.11/src/librbd/operation/MigrateRequest.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/librbd/operation/MigrateRequest.cc 2021-03-15 17:46:20.000000000 +0000 @@ -131,7 +131,7 @@ ceph_assert(image_ctx.parent != nullptr); auto req = deep_copy::ObjectCopyRequest::create( - image_ctx.parent, &image_ctx, image_ctx.migration_info.snap_map, + image_ctx.parent, &image_ctx, 0, 0, image_ctx.migration_info.snap_map, m_object_no, image_ctx.migration_info.flatten, ctx); ldout(cct, 20) << "deep copy object req " << req << ", object_no " diff -Nru ceph-14.2.11/src/log/Entry.h ceph-14.2.18/src/log/Entry.h --- ceph-14.2.11/src/log/Entry.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/log/Entry.h 2021-03-15 17:46:20.000000000 +0000 @@ -41,7 +41,6 @@ pthread_t m_thread; short m_prio, m_subsys; -private: static log_clock& clock() { static log_clock clock; return clock; diff -Nru ceph-14.2.11/src/log/Log.cc ceph-14.2.18/src/log/Log.cc --- ceph-14.2.11/src/log/Log.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/log/Log.cc 2021-03-15 17:46:20.000000000 +0000 @@ -61,9 +61,9 @@ void Log::set_coarse_timestamps(bool coarse) { std::scoped_lock lock(m_flush_mutex); if (coarse) - clock.coarsen(); + Entry::clock().coarsen(); else - clock.refine(); + Entry::clock().refine(); } void Log::set_flush_on_exit() diff -Nru ceph-14.2.11/src/log/Log.h ceph-14.2.18/src/log/Log.h --- ceph-14.2.11/src/log/Log.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/log/Log.h 2021-03-15 17:46:20.000000000 +0000 @@ -33,7 +33,6 @@ static const std::size_t DEFAULT_MAX_RECENT = 10000; Log **m_indirect_this; - log_clock clock; const SubsystemMap *m_subs; diff -Nru ceph-14.2.11/src/mds/CDir.cc ceph-14.2.18/src/mds/CDir.cc --- ceph-14.2.11/src/mds/CDir.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/CDir.cc 2021-03-15 17:46:20.000000000 +0000 @@ -2198,7 +2198,7 @@ op.priority = op_prio; // don't create new dirfrag blindly - if (!is_new() && !state_test(CDir::STATE_FRAGMENTING)) + if (!is_new()) op.stat(NULL, (ceph::real_time*) NULL, NULL); if (!to_set.empty()) @@ -2216,7 +2216,7 @@ } }; - if (state_test(CDir::STATE_FRAGMENTING)) { + if (state_test(CDir::STATE_FRAGMENTING) && is_new()) { assert(committed_version == 0); for (auto p = items.begin(); p != items.end(); ) { CDentry *dn = p->second; @@ -2237,7 +2237,7 @@ op.priority = op_prio; // don't create new dirfrag blindly - if (!is_new() && !state_test(CDir::STATE_FRAGMENTING)) + if (!is_new()) op.stat(NULL, (ceph::real_time*)NULL, NULL); /* diff -Nru ceph-14.2.11/src/mds/CDir.h ceph-14.2.18/src/mds/CDir.h --- ceph-14.2.11/src/mds/CDir.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/CDir.h 2021-03-15 17:46:20.000000000 +0000 @@ -554,7 +554,7 @@ // for giving to clients void get_dist_spec(std::set& ls, mds_rank_t auth) { - if (is_rep()) { + if (is_auth()) { list_replicas(ls); if (!ls.empty()) ls.insert(auth); diff -Nru ceph-14.2.11/src/mds/CInode.cc ceph-14.2.18/src/mds/CInode.cc --- ceph-14.2.11/src/mds/CInode.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/CInode.cc 2021-03-15 17:46:20.000000000 +0000 @@ -544,18 +544,20 @@ } } -void CInode::record_snaprealm_parent_dentry(sr_t *new_snap, SnapRealm *newparent, +void CInode::record_snaprealm_parent_dentry(sr_t *new_snap, SnapRealm *oldparent, CDentry *dn, bool primary_dn) { ceph_assert(new_snap->is_parent_global()); - SnapRealm *oldparent = dn->get_dir()->inode->find_snaprealm(); + + if (!oldparent) + oldparent = dn->get_dir()->inode->find_snaprealm(); auto& snaps = oldparent->get_snaps(); if (!primary_dn) { auto p = snaps.lower_bound(dn->first); if (p != snaps.end()) new_snap->past_parent_snaps.insert(p, snaps.end()); - } else if (newparent != oldparent) { + } else { // 'last_destroyed' is used as 'current_parent_since' auto p = snaps.lower_bound(new_snap->last_destroyed); if (p != snaps.end()) diff -Nru ceph-14.2.11/src/mds/CInode.h ceph-14.2.18/src/mds/CInode.h --- ceph-14.2.11/src/mds/CInode.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/CInode.h 2021-03-15 17:46:20.000000000 +0000 @@ -600,6 +600,9 @@ ls.push_back(dir); } } + int get_num_subtree_roots() const { + return num_subtree_roots; + } CDir *get_or_open_dirfrag(MDCache *mdcache, frag_t fg); CDir *add_dirfrag(CDir *dir); diff -Nru ceph-14.2.11/src/mds/MDCache.cc ceph-14.2.18/src/mds/MDCache.cc --- ceph-14.2.11/src/mds/MDCache.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/MDCache.cc 2021-03-15 17:46:20.000000000 +0000 @@ -188,7 +188,7 @@ } since = now-upkeep_last_release; auto release_interval = clock::duration(g_conf().get_val("mds_cache_release_free_interval")); - if (since >= release_interval) { + if (since >= release_interval*.90) { /* XXX not necessary once MDCache uses PriorityCache */ dout(10) << "releasing free memory" << dendl; ceph_heap_release_free_memory(); @@ -6706,9 +6706,7 @@ if (!diri->is_auth()) { if (dir->get_num_ref() > 1) // only subtree pin continue; - list ls; - diri->get_subtree_dirfrags(ls); - if (diri->get_num_ref() > (int)ls.size()) // only pinned by subtrees + if (diri->get_num_ref() > diri->get_num_subtree_roots()) continue; // don't trim subtree root if its auth MDS is recovering. @@ -9418,7 +9416,9 @@ void MDCache::request_forward(MDRequestRef& mdr, mds_rank_t who, int port) { - mdr->mark_event("forwarding request"); + CachedStackStringStream css; + *css << "forwarding request to mds." << who; + mdr->mark_event(css->strv()); if (mdr->client_request && mdr->client_request->get_source().is_client()) { dout(7) << "request_forward " << *mdr << " to mds." << who << " req " << *mdr->client_request << dendl; @@ -11676,6 +11676,9 @@ CDir *dir = *p; dout(10) << " storing result frag " << *dir << dendl; + dir->mark_dirty(dir->pre_dirty(), mdr->ls); + dir->mark_new(mdr->ls); + // freeze and store them too dir->auth_pin(this); dir->state_set(CDir::STATE_FRAGMENTING); @@ -11985,10 +11988,13 @@ } } -void MDCache::wait_for_uncommitted_fragments(MDSGather *gather) +void MDCache::wait_for_uncommitted_fragments(MDSContext* finisher) { - for (auto& p : uncommitted_fragments) - p.second.waiters.push_back(gather->new_sub()); + MDSGatherBuilder gather(g_ceph_context, finisher); + for (auto& p : uncommitted_fragments) { + p.second.waiters.push_back(gather.new_sub()); + } + gather.activate(); } void MDCache::rollback_uncommitted_fragments() diff -Nru ceph-14.2.11/src/mds/MDCache.h ceph-14.2.18/src/mds/MDCache.h --- ceph-14.2.11/src/mds/MDCache.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/MDCache.h 2021-03-15 17:46:20.000000000 +0000 @@ -1254,7 +1254,7 @@ bool is_any_uncommitted_fragment() const { return !uncommitted_fragments.empty(); } - void wait_for_uncommitted_fragments(MDSGather *gather); + void wait_for_uncommitted_fragments(MDSContext* finisher); void rollback_uncommitted_fragments(); void split_dir(CDir *dir, int byn); diff -Nru ceph-14.2.11/src/mds/MDSDaemon.cc ceph-14.2.18/src/mds/MDSDaemon.cc --- ceph-14.2.11/src/mds/MDSDaemon.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/MDSDaemon.cc 2021-03-15 17:46:20.000000000 +0000 @@ -1056,6 +1056,17 @@ /* * high priority messages we always process */ + +#define ALLOW_MESSAGES_FROM(peers) \ + do { \ + if (m->get_connection() && (m->get_connection()->get_peer_type() & (peers)) == 0) { \ + dout(0) << __FILE__ << "." << __LINE__ << ": filtered out request, peer=" \ + << m->get_connection()->get_peer_type() << " allowing=" \ + << #peers << " message=" << *m << dendl; \ + return true; \ + } \ + } while (0) + bool MDSDaemon::handle_core_message(const Message::const_ref &m) { switch (m->get_type()) { diff -Nru ceph-14.2.11/src/mds/MDSMap.cc ceph-14.2.18/src/mds/MDSMap.cc --- ceph-14.2.11/src/mds/MDSMap.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/MDSMap.cc 2021-03-15 17:46:20.000000000 +0000 @@ -549,7 +549,9 @@ decode(name, bl); decode(rank, bl); decode(inc, bl); - decode((int32_t&)(state), bl); + int32_t raw_state; + decode(raw_state, bl); + state = (MDSMap::DaemonState)raw_state; decode(state_seq, bl); decode(addrs, bl); decode(laggy_since, bl); diff -Nru ceph-14.2.11/src/mds/MDSRank.cc ceph-14.2.18/src/mds/MDSRank.cc --- ceph-14.2.11/src/mds/MDSRank.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/MDSRank.cc 2021-03-15 17:46:20.000000000 +0000 @@ -148,26 +148,25 @@ dout(20) << __func__ << dendl; // Attach contexts to wait for all expiring segments to expire - MDSGatherBuilder *expiry_gather = new MDSGatherBuilder(g_ceph_context); + MDSGatherBuilder expiry_gather(g_ceph_context); const auto &expiring_segments = mdlog->get_expiring_segments(); for (auto p : expiring_segments) { - p->wait_for_expiry(expiry_gather->new_sub()); + p->wait_for_expiry(expiry_gather.new_sub()); } - dout(5) << __func__ << ": waiting for " << expiry_gather->num_subs_created() + dout(5) << __func__ << ": waiting for " << expiry_gather.num_subs_created() << " segments to expire" << dendl; - if (!expiry_gather->has_subs()) { + if (!expiry_gather.has_subs()) { trim_segments(); - delete expiry_gather; return; } Context *ctx = new FunctionContext([this](int r) { handle_expire_segments(r); }); - expiry_gather->set_finisher(new MDSInternalContextWrapper(mds, ctx)); - expiry_gather->activate(); + expiry_gather.set_finisher(new MDSInternalContextWrapper(mds, ctx)); + expiry_gather.activate(); } void handle_expire_segments(int r) { @@ -329,9 +328,9 @@ auto now = mono_clock::now(); auto duration = std::chrono::duration(now-recall_start).count(); - MDSGatherBuilder *gather = new MDSGatherBuilder(g_ceph_context); + MDSGatherBuilder gather(g_ceph_context); auto flags = Server::RecallFlags::STEADY|Server::RecallFlags::TRIM; - auto [throttled, count] = server->recall_client_state(gather, flags); + auto [throttled, count] = server->recall_client_state(&gather, flags); dout(10) << __func__ << (throttled ? " (throttled)" : "") << " recalled " << count << " caps" << dendl; @@ -343,17 +342,16 @@ recall_client_state(); })); ctx->start_timer(); - gather->set_finisher(new MDSInternalContextWrapper(mds, ctx)); - gather->activate(); + gather.set_finisher(new MDSInternalContextWrapper(mds, ctx)); + gather.activate(); mdlog->flush(); /* use down-time to incrementally flush log */ do_trim(); /* use down-time to incrementally trim cache */ } else { - if (!gather->has_subs()) { - delete gather; + if (!gather.has_subs()) { return handle_recall_client_state(0); } else if (recall_timeout > 0 && duration > recall_timeout) { - gather->set_finisher(new C_MDSInternalNoop); - gather->activate(); + gather.set_finisher(new C_MDSInternalNoop); + gather.activate(); return handle_recall_client_state(-ETIMEDOUT); } else { uint64_t remaining = (recall_timeout == 0 ? 0 : recall_timeout-duration); @@ -363,8 +361,8 @@ })); ctx->start_timer(); - gather->set_finisher(new MDSInternalContextWrapper(mds, ctx)); - gather->activate(); + gather.set_finisher(new MDSInternalContextWrapper(mds, ctx)); + gather.activate(); } } } @@ -1030,6 +1028,10 @@ if (is_stale_message(m)) { return true; } + // do not proceed if this message cannot be handled + if (!is_valid_message(m)) { + return false; + } if (beacon.is_laggy()) { dout(5) << " laggy, deferring " << *m << dendl; @@ -1038,10 +1040,7 @@ dout(5) << " there are deferred messages, deferring " << *m << dendl; waiting_for_nolaggy.push_back(m); } else { - if (!handle_deferrable_message(m)) { - return false; - } - + handle_message(m); heartbeat_reset(); } @@ -1158,10 +1157,45 @@ } } +// message types that the mds can handle +bool MDSRank::is_valid_message(const Message::const_ref &m) { + int port = m->get_type() & 0xff00; + int type = m->get_type(); + + if (port == MDS_PORT_CACHE || + port == MDS_PORT_MIGRATOR || + type == CEPH_MSG_CLIENT_SESSION || + type == CEPH_MSG_CLIENT_RECONNECT || + type == CEPH_MSG_CLIENT_RECLAIM || + type == CEPH_MSG_CLIENT_REQUEST || + type == MSG_MDS_SLAVE_REQUEST || + type == MSG_MDS_HEARTBEAT || + type == MSG_MDS_TABLE_REQUEST || + type == MSG_MDS_LOCK || + type == MSG_MDS_INODEFILECAPS || + type == CEPH_MSG_CLIENT_CAPS || + type == CEPH_MSG_CLIENT_CAPRELEASE || + type == CEPH_MSG_CLIENT_LEASE) { + return true; + } + + return false; +} + /* * lower priority messages we defer if we seem laggy */ -bool MDSRank::handle_deferrable_message(const Message::const_ref &m) + +#define ALLOW_MESSAGES_FROM(peers) \ + do { \ + if (m->get_connection() && (m->get_connection()->get_peer_type() & (peers)) == 0) { \ + dout(0) << __FILE__ << "." << __LINE__ << ": filtered out request, peer=" << m->get_connection()->get_peer_type() \ + << " allowing=" << #peers << " message=" << *m << dendl; \ + return; \ + } \ + } while (0) + +void MDSRank::handle_message(const Message::const_ref &m) { int port = m->get_type() & 0xff00; @@ -1225,11 +1259,9 @@ break; default: - return false; + derr << "unrecognized message " << *m << dendl; } } - - return true; } /** @@ -1265,9 +1297,8 @@ if (!is_stale_message(old)) { dout(7) << " processing laggy deferred " << *old << dendl; - if (!handle_deferrable_message(old)) { - dout(0) << "unrecognized message " << *old << dendl; - } + ceph_assert(is_valid_message(old)); + handle_message(old); } heartbeat_reset(); @@ -1683,8 +1714,6 @@ if (is_standby_replay()) standby_replaying = true; - calc_recovery_set(); - // Check if we need to wait for a newer OSD map before starting Context *fin = new C_IO_Wrapper(this, new C_MDS_BootStart(this, MDS_BOOT_INITIAL)); bool const ready = objecter->wait_for_map( @@ -1853,6 +1882,8 @@ reopen_log(); + calc_recovery_set(); + mdcache->resolve_start(new C_MDS_VoidFn(this, &MDSRank::resolve_done)); finish_contexts(g_ceph_context, waiting_for_resolve); } @@ -1918,9 +1949,7 @@ if (mdcache->is_any_uncommitted_fragment()) { dout(1) << " waiting for uncommitted fragments" << dendl; - MDSGatherBuilder gather(g_ceph_context, new C_MDS_VoidFn(this, &MDSRank::rejoin_done)); - mdcache->wait_for_uncommitted_fragments(gather.get()); - gather.activate(); + mdcache->wait_for_uncommitted_fragments(new C_MDS_VoidFn(this, &MDSRank::rejoin_done)); return; } @@ -1950,7 +1979,6 @@ { dout(1) << "clientreplay_start" << dendl; finish_contexts(g_ceph_context, waiting_for_replay); // kick waiters - mdcache->start_files_to_recover(); queue_one_replay(); } @@ -2003,7 +2031,6 @@ mdcache->clean_open_file_lists(); mdcache->export_remaining_imported_caps(); finish_contexts(g_ceph_context, waiting_for_replay); // kick waiters - mdcache->start_files_to_recover(); mdcache->reissue_all_caps(); @@ -2019,7 +2046,7 @@ return; mdcache->start_recovered_truncates(); - mdcache->do_file_recover(); + mdcache->start_files_to_recover(); // tell connected clients //bcast_mds_map(); // not anymore, they get this from the monitor @@ -3715,6 +3742,11 @@ "mds_request_load_average_decay_rate", "mds_session_cache_liveness_decay_rate", "mds_replay_unsafe_with_closed_session", + "mds_session_cap_acquisition_decay_rate", + "mds_max_caps_per_client", + "mds_session_cap_acquisition_throttle", + "mds_session_max_caps_throttle_ratio", + "mds_cap_acquisition_throttle_retry_request_time", NULL }; return KEYS; diff -Nru ceph-14.2.11/src/mds/MDSRank.h ceph-14.2.18/src/mds/MDSRank.h --- ceph-14.2.11/src/mds/MDSRank.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/MDSRank.h 2021-03-15 17:46:20.000000000 +0000 @@ -266,7 +266,8 @@ void inc_dispatch_depth() { ++dispatch_depth; } void dec_dispatch_depth() { --dispatch_depth; } void retry_dispatch(const Message::const_ref &m); - bool handle_deferrable_message(const Message::const_ref &m); + bool is_valid_message(const Message::const_ref &m); + void handle_message(const Message::const_ref &m); void _advance_queues(); bool _dispatch(const Message::const_ref &m, bool new_msg); @@ -668,15 +669,5 @@ Context *suicide_hook_); }; -// This utility for MDS and MDSRank dispatchers. -#define ALLOW_MESSAGES_FROM(peers) \ -do { \ - if (m->get_connection() && (m->get_connection()->get_peer_type() & (peers)) == 0) { \ - dout(0) << __FILE__ << "." << __LINE__ << ": filtered out request, peer=" << m->get_connection()->get_peer_type() \ - << " allowing=" << #peers << " message=" << *m << dendl; \ - return true; \ - } \ -} while (0) - #endif // MDS_RANK_H_ diff -Nru ceph-14.2.11/src/mds/Mutation.cc ceph-14.2.18/src/mds/Mutation.cc --- ceph-14.2.11/src/mds/Mutation.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/Mutation.cc 2021-03-15 17:46:20.000000000 +0000 @@ -366,6 +366,7 @@ msg_lock.lock(); MClientRequest::const_ref req; req.swap(client_request); + client_request = req; msg_lock.unlock(); return req; } diff -Nru ceph-14.2.11/src/mds/PurgeQueue.cc ceph-14.2.18/src/mds/PurgeQueue.cc --- ceph-14.2.11/src/mds/PurgeQueue.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/PurgeQueue.cc 2021-03-15 17:46:20.000000000 +0000 @@ -65,7 +65,9 @@ decode(stamp, p); decode(pad_size, p); p.advance(pad_size); - decode((uint8_t&)action, p); + uint8_t raw_action; + decode(raw_action, p); + action = (Action)raw_action; decode(ino, p); decode(size, p); decode(layout, p); @@ -80,7 +82,9 @@ } } if (!done) { - decode((uint8_t&)action, p); + uint8_t raw_action; + decode(raw_action, p); + action = (Action)raw_action; decode(ino, p); decode(size, p); decode(layout, p); @@ -363,14 +367,12 @@ ops_required = 1 + leaves.size(); } else { // File, work out concurrent Filer::purge deletes + // Account for removing (or zeroing) backtrace const uint64_t num = (item.size > 0) ? Striper::get_num_objects(item.layout, item.size) : 1; ops_required = std::min(num, g_conf()->filer_max_purge_ops); - // Account for removing (or zeroing) backtrace - ops_required += 1; - // Account for deletions for old pools if (item.action != PurgeItem::TRUNCATE_FILE) { ops_required += item.old_pools.size(); diff -Nru ceph-14.2.11/src/mds/Server.cc ceph-14.2.18/src/mds/Server.cc --- ceph-14.2.11/src/mds/Server.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/Server.cc 2021-03-15 17:46:20.000000000 +0000 @@ -112,6 +112,9 @@ PerfCountersBuilder::PRIO_INTERESTING); plb.add_u64_counter(l_mdss_cap_revoke_eviction, "cap_revoke_eviction", "Cap Revoke Client Eviction", "cre", PerfCountersBuilder::PRIO_INTERESTING); + plb.add_u64_counter(l_mdss_cap_acquisition_throttle, + "cap_acquisition_throttle", "Cap acquisition throttle counter", "cat", + PerfCountersBuilder::PRIO_INTERESTING); // fop latencies are useful plb.set_prio_default(PerfCountersBuilder::PRIO_USEFUL); @@ -196,6 +199,10 @@ max_snaps_per_dir = g_conf().get_val("mds_max_snaps_per_dir"); replay_unsafe_with_closed_session = g_conf().get_val("mds_replay_unsafe_with_closed_session"); cap_revoke_eviction_timeout = g_conf().get_val("mds_cap_revoke_eviction_timeout"); + max_caps_per_client = g_conf().get_val("mds_max_caps_per_client"); + cap_acquisition_throttle = g_conf().get_val("mds_session_cap_acquisition_throttle"); + max_caps_throttle_ratio = g_conf().get_val("mds_session_max_caps_throttle_ratio"); + caps_throttle_retry_request_timeout = g_conf().get_val("mds_cap_acquisition_throttle_retry_request_timeout"); supported_features = feature_bitset_t(CEPHFS_FEATURES_MDS_SUPPORTED); } @@ -679,24 +686,24 @@ } -void Server::flush_session(Session *session, MDSGatherBuilder *gather) { +void Server::flush_session(Session *session, MDSGatherBuilder& gather) { if (!session->is_open() || !session->get_connection() || !session->get_connection()->has_feature(CEPH_FEATURE_EXPORT_PEER)) { return; } - version_t seq = session->wait_for_flush(gather->new_sub()); + version_t seq = session->wait_for_flush(gather.new_sub()); mds->send_message_client( MClientSession::create(CEPH_SESSION_FLUSHMSG, seq), session); } void Server::flush_client_sessions(set& client_set, MDSGatherBuilder& gather) { - for (set::iterator p = client_set.begin(); p != client_set.end(); ++p) { - Session *session = mds->sessionmap.get_session(entity_name_t::CLIENT(p->v)); + for (const auto& client : client_set) { + Session *session = mds->sessionmap.get_session(entity_name_t::CLIENT(client.v)); ceph_assert(session); - flush_session(session, &gather); + flush_session(session, gather); } } @@ -744,11 +751,12 @@ } else if (session->is_closing() || session->is_killing()) { // kill any lingering capabilities, leases, requests + bool killing = session->is_killing(); while (!session->caps.empty()) { Capability *cap = session->caps.front(); CInode *in = cap->get_inode(); dout(20) << " killing capability " << ccap_string(cap->issued()) << " on " << *in << dendl; - mds->locker->remove_client_cap(in, cap, true); + mds->locker->remove_client_cap(in, cap, killing); } while (!session->leases.empty()) { ClientLease *r = session->leases.front(); @@ -1116,6 +1124,18 @@ dout(20) << __func__ << " max snapshots per directory changed to " << max_snaps_per_dir << dendl; } + if (changed.count("mds_max_caps_per_client")) { + max_caps_per_client = g_conf().get_val("mds_max_caps_per_client"); + } + if (changed.count("mds_session_cap_acquisition_throttle")) { + cap_acquisition_throttle = g_conf().get_val("mds_session_cap_acquisition_throttle"); + } + if (changed.count("mds_session_max_caps_throttle_ratio")) { + max_caps_throttle_ratio = g_conf().get_val("mds_session_max_caps_throttle_ratio"); + } + if (changed.count("mds_cap_acquisition_throttle_retry_request_timeout")) { + caps_throttle_retry_request_timeout = g_conf().get_val("mds_cap_acquisition_throttle_retry_request_timeout"); + } } /* @@ -1706,7 +1726,7 @@ m->head.max_caps = newlim; mds->send_message_client(m, session); if (gather) { - flush_session(session, gather); + flush_session(session, *gather); } caps_recalled += session->notify_recall_sent(newlim); recall_throttle.hit(recall); @@ -4259,6 +4279,7 @@ void Server::handle_client_readdir(MDRequestRef& mdr) { const MClientRequest::const_ref &req = mdr->client_request; + Session *session = mds->get_session(req); client_t client = req->get_source().num(); MutationImpl::LockOpVec lov; CInode *diri = rdlock_path_pin_ref(mdr, 0, lov, false, true); @@ -4272,6 +4293,19 @@ return; } + auto num_caps = session->get_num_caps(); + auto session_cap_acquisition = session->get_cap_acquisition(); + + if (num_caps > static_cast(max_caps_per_client * max_caps_throttle_ratio) && session_cap_acquisition >= cap_acquisition_throttle) { + dout(20) << "readdir throttled. max_caps_per_client: " << max_caps_per_client << " num_caps: " << num_caps + << " session_cap_acquistion: " << session_cap_acquisition << " cap_acquisition_throttle: " << cap_acquisition_throttle << dendl; + if (logger) + logger->inc(l_mdss_cap_acquisition_throttle); + + mds->timer.add_event_after(caps_throttle_retry_request_timeout, new C_MDS_RetryRequest(mdcache, mdr)); + return; + } + lov.add_rdlock(&diri->filelock); lov.add_rdlock(&diri->dirfragtreelock); @@ -4469,6 +4503,8 @@ mdcache->lru.lru_touch(dn); } + session->touch_readdir_cap(numfiles); + __u16 flags = 0; if (end) { flags = CEPH_READDIR_FRAG_END; @@ -4512,15 +4548,17 @@ */ class C_MDS_inode_update_finish : public ServerLogContext { CInode *in; - bool truncating_smaller, changed_ranges, new_realm; + bool truncating_smaller, changed_ranges, adjust_realm; public: C_MDS_inode_update_finish(Server *s, MDRequestRef& r, CInode *i, - bool sm=false, bool cr=false, bool nr=false) : + bool sm=false, bool cr=false, bool ar=false) : ServerLogContext(s, r), in(i), - truncating_smaller(sm), changed_ranges(cr), new_realm(nr) { } + truncating_smaller(sm), changed_ranges(cr), adjust_realm(ar) { } void finish(int r) override { ceph_assert(r == 0); + int snap_op = (in->snaprealm ? CEPH_SNAP_OP_UPDATE : CEPH_SNAP_OP_SPLIT); + // apply in->pop_and_dirty_projected_inode(mdr->ls); mdr->apply(); @@ -4533,10 +4571,9 @@ mds->mdcache->truncate_inode(in, mdr->ls); } - if (new_realm) { - int op = CEPH_SNAP_OP_SPLIT; - mds->mdcache->send_snap_update(in, 0, op); - mds->mdcache->do_realm_invalidate_and_update_notify(in, op); + if (adjust_realm) { + mds->mdcache->send_snap_update(in, 0, snap_op); + mds->mdcache->do_realm_invalidate_and_update_notify(in, snap_op); } get_mds()->balancer->hit_inode(in, META_POP_IWR); @@ -5298,7 +5335,7 @@ return; } - bool new_realm = false; + bool adjust_realm = false; if (name.compare(0, 15, "ceph.dir.layout") == 0) { if (!cur->is_dir()) { respond_to_request(mdr, -EINVAL); @@ -5367,28 +5404,76 @@ lov.add_xlock(&cur->policylock); if (quota.is_enable() && !cur->get_projected_srnode()) { lov.add_xlock(&cur->snaplock); - new_realm = true; + adjust_realm = true; } if (!mds->locker->acquire_locks(mdr, lov)) return; - auto &pi = cur->project_inode(false, new_realm); + if (cur->get_projected_inode()->quota == quota) { + respond_to_request(mdr, 0); + return; + } + + auto &pi = cur->project_inode(false, adjust_realm); pi.inode.quota = quota; - if (new_realm) { - SnapRealm *realm = cur->find_snaprealm(); - auto seq = realm->get_newest_seq(); - auto &newsnap = *pi.snapnode; - newsnap.created = seq; - newsnap.seq = seq; - } + if (adjust_realm) + pi.snapnode->created = pi.snapnode->seq = cur->find_snaprealm()->get_newest_seq(); + mdr->no_early_reply = true; pip = &pi.inode; client_t exclude_ct = mdr->get_client(); mdcache->broadcast_quota_to_client(cur, exclude_ct, true); - } else if (name.find("ceph.dir.pin") == 0) { + } else if (name == "ceph.dir.subvolume"sv) { + if (!cur->is_dir()) { + respond_to_request(mdr, -EINVAL); + return; + } + + bool val; + try { + val = boost::lexical_cast(value); + } catch (boost::bad_lexical_cast const&) { + dout(10) << "bad vxattr value, unable to parse bool for " << name << dendl; + respond_to_request(mdr, -EINVAL); + return; + } + + lov.add_xlock(&cur->policylock); + lov.add_xlock(&cur->snaplock); + if (!mds->locker->acquire_locks(mdr, lov)) + return; + + SnapRealm *realm = cur->find_snaprealm(); + if (val) { + inodeno_t subvol_ino = realm->get_subvolume_ino(); + // can't create subvolume inside another subvolume + if (subvol_ino && subvol_ino != cur->ino()) { + respond_to_request(mdr, -EINVAL); + return; + } + } + + const auto srnode = cur->get_projected_srnode(); + if (val == (srnode && srnode->is_subvolume())) { + respond_to_request(mdr, 0); + return; + } + + auto& pi = cur->project_inode(false, true); + if (!srnode) + pi.snapnode->created = pi.snapnode->seq = realm->get_newest_seq(); + if (val) + pi.snapnode->mark_subvolume(); + else + pi.snapnode->clear_subvolume(); + + mdr->no_early_reply = true; + pip = &pi.inode; + adjust_realm = true; + } else if (name == "ceph.dir.pin"sv) { if (!cur->is_dir() || cur->is_root()) { respond_to_request(mdr, -EINVAL); return; @@ -5434,7 +5519,7 @@ mdcache->journal_dirty_inode(mdr.get(), &le->metablob, cur); journal_and_reply(mdr, cur, 0, le, new C_MDS_inode_update_finish(this, mdr, cur, - false, false, new_realm)); + false, false, adjust_realm)); return; } @@ -6026,12 +6111,22 @@ return; } + CInode* target_pin = targeti->get_projected_parent_dir()->inode; + SnapRealm *target_realm = target_pin->find_snaprealm(); + if (target_pin != dir->inode && + target_realm->get_subvolume_ino() != + dir->inode->find_snaprealm()->get_subvolume_ino()) { + dout(7) << "target is in different subvolume, failing..." << dendl; + respond_to_request(mdr, -EXDEV); + return; + } + // go! ceph_assert(g_conf()->mds_kill_link_at != 1); // local or remote? if (targeti->is_auth()) - _link_local(mdr, dn, targeti); + _link_local(mdr, dn, targeti, target_realm); else _link_remote(mdr, true, dn, targeti); mds->balancer->maybe_fragment(dir, false); @@ -6056,7 +6151,7 @@ }; -void Server::_link_local(MDRequestRef& mdr, CDentry *dn, CInode *targeti) +void Server::_link_local(MDRequestRef& mdr, CDentry *dn, CInode *targeti, SnapRealm *target_realm) { dout(10) << "_link_local " << *dn << " to " << *targeti << dendl; @@ -6076,10 +6171,10 @@ pi.inode.version = tipv; bool adjust_realm = false; - if (!targeti->is_projected_snaprealm_global()) { + if (!target_realm->get_subvolume_ino() && !targeti->is_projected_snaprealm_global()) { sr_t *newsnap = targeti->project_snaprealm(); targeti->mark_snaprealm_global(newsnap); - targeti->record_snaprealm_parent_dentry(newsnap, NULL, targeti->get_projected_parent_dn(), true); + targeti->record_snaprealm_parent_dentry(newsnap, target_realm, targeti->get_projected_parent_dn(), true); adjust_realm = true; } @@ -6332,10 +6427,13 @@ if (mdr->slave_request->get_op() == MMDSSlaveRequest::OP_LINKPREP) { inc = true; pi.inode.nlink++; - if (!targeti->is_projected_snaprealm_global()) { + + CDentry *target_pdn = targeti->get_projected_parent_dn(); + SnapRealm *target_realm = target_pdn->get_dir()->inode->find_snaprealm(); + if (!target_realm->get_subvolume_ino() && !targeti->is_projected_snaprealm_global()) { sr_t *newsnap = targeti->project_snaprealm(); targeti->mark_snaprealm_global(newsnap); - targeti->record_snaprealm_parent_dentry(newsnap, NULL, targeti->get_projected_parent_dn(), true); + targeti->record_snaprealm_parent_dentry(newsnap, target_realm, target_pdn, true); adjust_realm = true; realm_projected = true; } @@ -6752,7 +6850,7 @@ if (!mdr->more()->desti_srnode) { if (in->is_projected_snaprealm_global()) { sr_t *new_srnode = in->prepare_new_srnode(0); - in->record_snaprealm_parent_dentry(new_srnode, NULL, dn, dnl->is_primary()); + in->record_snaprealm_parent_dentry(new_srnode, nullptr, dn, dnl->is_primary()); // dropping the last linkage or dropping the last remote linkage, // detch the inode from global snaprealm auto nlink = in->get_projected_inode()->nlink; @@ -7694,6 +7792,21 @@ } */ + SnapRealm *dest_realm = nullptr; + SnapRealm *src_realm = nullptr; + if (!linkmerge) { + dest_realm = destdir->inode->find_snaprealm(); + if (srcdir->inode == destdir->inode) + src_realm = dest_realm; + else + src_realm = srcdir->inode->find_snaprealm(); + if (src_realm != dest_realm && + src_realm->get_subvolume_ino() != dest_realm->get_subvolume_ino()) { + respond_to_request(mdr, -EXDEV); + return; + } + } + ceph_assert(g_conf()->mds_kill_rename_at != 1); // -- open all srcdn inode frags, if any -- @@ -7724,7 +7837,7 @@ srci->get_projected_inode()->nlink == 1 && srci->is_projected_snaprealm_global()) { sr_t *new_srnode = srci->prepare_new_srnode(0); - srci->record_snaprealm_parent_dentry(new_srnode, NULL, destdn, false); + srci->record_snaprealm_parent_dentry(new_srnode, nullptr, destdn, false); srci->clear_snaprealm_global(new_srnode); mdr->more()->srci_srnode = new_srnode; @@ -7733,7 +7846,7 @@ if (oldin && !mdr->more()->desti_srnode) { if (oldin->is_projected_snaprealm_global()) { sr_t *new_srnode = oldin->prepare_new_srnode(0); - oldin->record_snaprealm_parent_dentry(new_srnode, NULL, destdn, destdnl->is_primary()); + oldin->record_snaprealm_parent_dentry(new_srnode, dest_realm, destdn, destdnl->is_primary()); // dropping the last linkage or dropping the last remote linkage, // detch the inode from global snaprealm auto nlink = oldin->get_projected_inode()->nlink; @@ -7743,7 +7856,6 @@ oldin->clear_snaprealm_global(new_srnode); mdr->more()->desti_srnode = new_srnode; } else if (destdnl->is_primary()) { - SnapRealm *dest_realm = destdir->inode->find_snaprealm(); snapid_t follows = dest_realm->get_newest_seq(); if (oldin->snaprealm || follows + 1 > oldin->get_oldest_snap()) { sr_t *new_srnode = oldin->prepare_new_srnode(follows); @@ -7753,13 +7865,11 @@ } } if (!mdr->more()->srci_srnode) { - SnapRealm *dest_realm = destdir->inode->find_snaprealm(); if (srci->is_projected_snaprealm_global()) { sr_t *new_srnode = srci->prepare_new_srnode(0); - srci->record_snaprealm_parent_dentry(new_srnode, dest_realm, srcdn, srcdnl->is_primary()); + srci->record_snaprealm_parent_dentry(new_srnode, src_realm, srcdn, srcdnl->is_primary()); mdr->more()->srci_srnode = new_srnode; } else if (srcdnl->is_primary()) { - SnapRealm *src_realm = srcdir->inode->find_snaprealm(); snapid_t follows = src_realm->get_newest_seq(); if (src_realm != dest_realm && (srci->snaprealm || follows + 1 > srci->get_oldest_snap())) { @@ -9690,6 +9800,12 @@ if (!check_access(mdr, diri, MAY_WRITE|MAY_SNAPSHOT)) return; + if (inodeno_t subvol_ino = diri->find_snaprealm()->get_subvolume_ino(); + (subvol_ino && subvol_ino != diri->ino())) { + respond_to_request(mdr, -EPERM); + return; + } + // check if we can create any more snapshots // we don't allow any more if we are already at or beyond the limit if (diri->snaprealm && diff -Nru ceph-14.2.11/src/mds/Server.h ceph-14.2.18/src/mds/Server.h --- ceph-14.2.11/src/mds/Server.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/Server.h 2021-03-15 17:46:20.000000000 +0000 @@ -76,6 +76,7 @@ l_mdss_req_symlink_latency, l_mdss_req_unlink_latency, l_mdss_cap_revoke_eviction, + l_mdss_cap_acquisition_throttle, l_mdss_last, }; @@ -274,7 +275,7 @@ // link void handle_client_link(MDRequestRef& mdr); - void _link_local(MDRequestRef& mdr, CDentry *dn, CInode *targeti); + void _link_local(MDRequestRef& mdr, CDentry *dn, CInode *targeti, SnapRealm *target_realm); void _link_local_finish(MDRequestRef& mdr, CDentry *dn, CInode *targeti, version_t, version_t, bool); @@ -351,10 +352,16 @@ private: void reply_client_request(MDRequestRef& mdr, const MClientReply::ref &reply); - void flush_session(Session *session, MDSGatherBuilder *gather); + void flush_session(Session *session, MDSGatherBuilder& gather); DecayCounter recall_throttle; time last_recall_state; + + // Cache cap acquisition throttle configs + uint64_t max_caps_per_client; + uint64_t cap_acquisition_throttle; + double max_caps_throttle_ratio; + double caps_throttle_retry_request_timeout; }; static inline constexpr auto operator|(Server::RecallFlags a, Server::RecallFlags b) { diff -Nru ceph-14.2.11/src/mds/SessionMap.cc ceph-14.2.18/src/mds/SessionMap.cc --- ceph-14.2.11/src/mds/SessionMap.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/SessionMap.cc 2021-03-15 17:46:20.000000000 +0000 @@ -589,6 +589,7 @@ f->dump_object("recall_caps_throttle", recall_caps_throttle); f->dump_object("recall_caps_throttle2o", recall_caps_throttle2o); f->dump_object("session_cache_liveness", session_cache_liveness); + f->dump_object("cap_acquisition", cap_acquisition); info.dump(f); } @@ -1015,7 +1016,8 @@ // track total and per session load void SessionMap::hit_session(Session *session) { uint64_t sessions = get_session_count_in_state(Session::STATE_OPEN) + - get_session_count_in_state(Session::STATE_STALE); + get_session_count_in_state(Session::STATE_STALE) + + get_session_count_in_state(Session::STATE_CLOSING); ceph_assert(sessions != 0); double total_load = total_load_avg.hit(); @@ -1076,6 +1078,13 @@ }; apply_to_open_sessions(mut); } + if (changed.count("mds_session_cap_acquisition_decay_rate")) { + auto d = g_conf().get_val("mds_session_cap_acquisition_decay_rate"); + auto mut = [d](auto s) { + s->cap_acquisition = DecayCounter(d); + }; + apply_to_open_sessions(mut); + } } void SessionMap::update_average_session_age() { diff -Nru ceph-14.2.11/src/mds/SessionMap.h ceph-14.2.18/src/mds/SessionMap.h --- ceph-14.2.11/src/mds/SessionMap.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/SessionMap.h 2021-03-15 17:46:20.000000000 +0000 @@ -131,6 +131,9 @@ // session caps liveness DecayCounter session_cache_liveness; + // cap acquisition via readdir + DecayCounter cap_acquisition; + // session start time -- used to track average session time // note that this is initialized in the constructor rather // than at the time of adding a session to the sessionmap @@ -210,6 +213,9 @@ auto get_session_cache_liveness() const { return session_cache_liveness.get(); } + auto get_cap_acquisition() const { + return cap_acquisition.get(); + } inodeno_t next_ino() const { if (info.prealloc_inos.empty()) @@ -311,6 +317,10 @@ } } + void touch_readdir_cap(uint32_t count) { + cap_acquisition.hit(count); + } + void touch_cap(Capability *cap) { session_cache_liveness.hit(1.0); caps.push_front(&cap->item_session_caps); @@ -426,6 +436,7 @@ recall_caps_throttle(g_conf().get_val("mds_recall_max_decay_rate")), recall_caps_throttle2o(0.5), session_cache_liveness(g_conf().get_val("mds_session_cache_liveness_decay_rate")), + cap_acquisition(g_conf().get_val("mds_session_cap_acquisition_decay_rate")), birth_time(clock::now()), auth_caps(g_ceph_context), item_session_list(this), diff -Nru ceph-14.2.11/src/mds/snap.h ceph-14.2.18/src/mds/snap.h --- ceph-14.2.11/src/mds/snap.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/snap.h 2021-03-15 17:46:20.000000000 +0000 @@ -87,13 +87,18 @@ __u32 flags; enum { - PARENT_GLOBAL = 1 << 0, + PARENT_GLOBAL = 1 << 0, + SUBVOLUME = 1 << 1, }; void mark_parent_global() { flags |= PARENT_GLOBAL; } void clear_parent_global() { flags &= ~PARENT_GLOBAL; } bool is_parent_global() const { return flags & PARENT_GLOBAL; } + void mark_subvolume() { flags |= SUBVOLUME; } + void clear_subvolume() { flags &= ~SUBVOLUME; } + bool is_subvolume() const { return flags & SUBVOLUME; } + sr_t() : seq(0), created(0), last_created(0), last_destroyed(0), diff -Nru ceph-14.2.11/src/mds/SnapRealm.cc ceph-14.2.18/src/mds/SnapRealm.cc --- ceph-14.2.11/src/mds/SnapRealm.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/SnapRealm.cc 2021-03-15 17:46:20.000000000 +0000 @@ -333,6 +333,13 @@ cached_seq = seq; cached_last_created = last_created; cached_last_destroyed = last_destroyed; + + cached_subvolume_ino = 0; + if (parent) + cached_subvolume_ino = parent->get_subvolume_ino(); + if (!cached_subvolume_ino && srnode.is_subvolume()) + cached_subvolume_ino = inode->ino(); + build_snap_set(); build_snap_trace(); diff -Nru ceph-14.2.11/src/mds/SnapRealm.h ceph-14.2.18/src/mds/SnapRealm.h --- ceph-14.2.11/src/mds/SnapRealm.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mds/SnapRealm.h 2021-03-15 17:46:20.000000000 +0000 @@ -33,6 +33,7 @@ mutable set cached_snaps; mutable SnapContext cached_snap_context; mutable bufferlist cached_snap_trace; + mutable inodeno_t cached_subvolume_ino = 0; void check_cache() const; @@ -133,6 +134,11 @@ return (p != s.end() && *p <= last); } + inodeno_t get_subvolume_ino() { + check_cache(); + return cached_subvolume_ino; + } + void adjust_parent(); void split_at(SnapRealm *child); diff -Nru ceph-14.2.11/src/messages/MMDSBeacon.h ceph-14.2.18/src/messages/MMDSBeacon.h --- ceph-14.2.11/src/messages/MMDSBeacon.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/messages/MMDSBeacon.h 2021-03-15 17:46:20.000000000 +0000 @@ -131,9 +131,13 @@ void decode(bufferlist::const_iterator& bl) { DECODE_START(1, bl); - decode((uint16_t&)type, bl); + uint16_t raw_type; + decode(raw_type, bl); + type = (mds_metric_t)raw_type; ceph_assert(type != MDS_HEALTH_NULL); - decode((uint8_t&)sev, bl); + uint8_t raw_sev; + decode(raw_sev, bl); + sev = (health_status_t)raw_sev; decode(message, bl); decode(metadata, bl); DECODE_FINISH(bl); @@ -264,7 +268,9 @@ paxos_decode(p); decode(fsid, p); decode(global_id, p); - decode((__u32&)state, p); + __u32 raw_state; + decode(raw_state, p); + state = (MDSMap::DaemonState)raw_state; decode(seq, p); decode(name, p); { diff -Nru ceph-14.2.11/src/messages/MMgrReport.h ceph-14.2.18/src/messages/MMgrReport.h --- ceph-14.2.11/src/messages/MMgrReport.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/messages/MMgrReport.h 2021-03-15 17:46:20.000000000 +0000 @@ -59,12 +59,16 @@ decode(path, p); decode(description, p); decode(nick, p); - decode((uint8_t&)type, p); + uint8_t raw_type; + decode(raw_type, p); + type = (enum perfcounter_type_d)raw_type; if (struct_v >= 2) { decode(priority, p); } if (struct_v >= 3) { - decode((uint8_t&)unit, p); + uint8_t raw_unit; + decode(raw_unit, p); + unit = (enum unit_t)raw_unit; } DECODE_FINISH(p); } diff -Nru ceph-14.2.11/src/messages/MMonCommandAck.h ceph-14.2.18/src/messages/MMonCommandAck.h --- ceph-14.2.11/src/messages/MMonCommandAck.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/messages/MMonCommandAck.h 2021-03-15 17:46:20.000000000 +0000 @@ -15,6 +15,7 @@ #ifndef CEPH_MMONCOMMANDACK_H #define CEPH_MMONCOMMANDACK_H +#include "common/cmdparse.h" #include "messages/PaxosServiceMessage.h" class MMonCommandAck : public MessageInstance { @@ -35,7 +36,28 @@ public: std::string_view get_type_name() const override { return "mon_command"; } void print(ostream& o) const override { - o << "mon_command_ack(" << cmd << "=" << r << " " << rs << " v" << version << ")"; + cmdmap_t cmdmap; + stringstream ss; + string prefix; + cmdmap_from_json(cmd, &cmdmap, ss); + cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); + // Some config values contain sensitive data, so don't log them + o << "mon_command_ack("; + if (prefix == "config set") { + string name; + cmd_getval(g_ceph_context, cmdmap, "name", name); + o << "[{prefix=" << prefix + << ", name=" << name << "}]" + << "=" << r << " " << rs << " v" << version << ")"; + } else if (prefix == "config-key set") { + string key; + cmd_getval(g_ceph_context, cmdmap, "key", key); + o << "[{prefix=" << prefix << ", key=" << key << "}]" + << "=" << r << " " << rs << " v" << version << ")"; + } else { + o << cmd; + } + o << "=" << r << " " << rs << " v" << version << ")"; } void encode_payload(uint64_t features) override { diff -Nru ceph-14.2.11/src/messages/MMonCommand.h ceph-14.2.18/src/messages/MMonCommand.h --- ceph-14.2.11/src/messages/MMonCommand.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/messages/MMonCommand.h 2021-03-15 17:46:20.000000000 +0000 @@ -15,6 +15,7 @@ #ifndef CEPH_MMONCOMMAND_H #define CEPH_MMONCOMMAND_H +#include "common/cmdparse.h" #include "messages/PaxosServiceMessage.h" #include @@ -39,10 +40,26 @@ public: std::string_view get_type_name() const override { return "mon_command"; } void print(ostream& o) const override { + cmdmap_t cmdmap; + stringstream ss; + string prefix; + cmdmap_from_json(cmd, &cmdmap, ss); + cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); + // Some config values contain sensitive data, so don't log them o << "mon_command("; - for (unsigned i=0; ipMyThreadState, true); @@ -76,6 +81,11 @@ void ActivePyModule::notify_clog(const LogEntry &log_entry) { + if (is_dead()) { + dout(5) << "cancelling notify_clog" << dendl; + return; + } + ceph_assert(pClassInstance != nullptr); Gil gil(py_module->pMyThreadState, true); @@ -159,6 +169,11 @@ void ActivePyModule::config_notify() { + if (is_dead()) { + dout(5) << "cancelling config_notify" << dendl; + return; + } + Gil gil(py_module->pMyThreadState, true); dout(20) << "Calling " << py_module->get_name() << ".config_notify..." << dendl; @@ -234,6 +249,10 @@ void ActivePyModule::get_health_checks(health_check_map_t *checks) { + if (is_dead()) { + dout(5) << "cancelling get_health_checks" << dendl; + return; + } checks->merge(health_checks); } diff -Nru ceph-14.2.11/src/mgr/ActivePyModules.cc ceph-14.2.18/src/mgr/ActivePyModules.cc --- ceph-14.2.11/src/mgr/ActivePyModules.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/ActivePyModules.cc 2021-03-15 17:46:20.000000000 +0000 @@ -435,22 +435,23 @@ { std::lock_guard l(lock); - ceph_assert(modules.count(py_module->get_name()) == 0); - const auto name = py_module->get_name(); - modules[name].reset(new ActivePyModule(py_module, clog)); - auto active_module = modules.at(name).get(); + auto active_module = std::make_shared(py_module, clog); + pending_modules.insert(name); // Send all python calls down a Finisher to avoid blocking // C++ code, and avoid any potential lock cycles. finisher.queue(new FunctionContext([this, active_module, name](int) { int r = active_module->load(this); + std::lock_guard l(lock); + pending_modules.erase(name); if (r != 0) { derr << "Failed to run module in active mode ('" << name << "')" << dendl; - std::lock_guard l(lock); - modules.erase(name); } else { + auto em = modules.emplace(name, active_module); + ceph_assert(em.second); // actually inserted + dout(4) << "Starting thread for " << name << dendl; active_module->thread.create(active_module->get_thread_name()); } @@ -462,10 +463,7 @@ std::lock_guard locker(lock); // Signal modules to drop out of serve() and/or tear down resources - for (auto &i : modules) { - auto module = i.second.get(); - const auto& name = i.first; - + for (auto& [name, module] : modules) { lock.Unlock(); dout(10) << "calling module " << name << " shutdown()" << dendl; module->shutdown(); @@ -475,11 +473,11 @@ // For modules implementing serve(), finish the threads where we // were running that. - for (auto &i : modules) { + for (auto& [name, module] : modules) { lock.Unlock(); - dout(10) << "joining module " << i.first << dendl; - i.second->thread.join(); - dout(10) << "joined module " << i.first << dendl; + dout(10) << "joining module " << name << dendl; + module->thread.join(); + dout(10) << "joined module " << name << dendl; lock.Lock(); } @@ -495,10 +493,10 @@ std::lock_guard l(lock); dout(10) << __func__ << ": notify_all " << notify_type << dendl; - for (auto& i : modules) { - auto module = i.second.get(); + for (auto& [name, module] : modules) { // Send all python calls down a Finisher to avoid blocking // C++ code, and avoid any potential lock cycles. + dout(15) << "queuing notify to " << name << dendl; finisher.queue(new FunctionContext([module, notify_type, notify_id](int r){ module->notify(notify_type, notify_id); })); @@ -510,14 +508,14 @@ std::lock_guard l(lock); dout(10) << __func__ << ": notify_all (clog)" << dendl; - for (auto& i : modules) { - auto module = i.second.get(); + for (auto& [name, module] : modules) { // Send all python calls down a Finisher to avoid blocking // C++ code, and avoid any potential lock cycles. // // Note intentional use of non-reference lambda binding on // log_entry: we take a copy because caller's instance is // probably ephemeral. + dout(15) << "queuing notify (clog) to " << name << dendl; finisher.queue(new FunctionContext([module, log_entry](int r){ module->notify_clog(log_entry); })); @@ -601,7 +599,10 @@ derr << "Module '" << module_name << "' is not available" << dendl; Py_RETURN_NONE; } - dout(10) << __func__ << " " << final_key << " found: " << value << dendl; + // removing value to hide sensitive data going into mgr logs + // leaving this for debugging purposes + // dout(10) << __func__ << " " << final_key << " found: " << value << dendl; + dout(10) << __func__ << " " << final_key << " found" << dendl; return module->get_typed_option_value(key, value); } PyEval_RestoreThread(tstate); @@ -689,11 +690,10 @@ { std::map result; std::lock_guard l(lock); - for (const auto& i : modules) { - const auto &module = i.second.get(); + for (const auto& [name, module] : modules) { std::string svc_str = module->get_uri(); if (!svc_str.empty()) { - result[module->get_name()] = svc_str; + result[name] = svc_str; } } @@ -912,7 +912,6 @@ PyThreadState *tstate = PyEval_SaveThread(); { - std::lock_guard l(lock); cluster_state.with_osdmap([&](const OSDMap& o) { newmap->deepish_copy_from(o); }); @@ -974,8 +973,9 @@ void ActivePyModules::get_health_checks(health_check_map_t *checks) { std::lock_guard l(lock); - for (auto& p : modules) { - p.second->get_health_checks(checks); + for (auto& [name, module] : modules) { + dout(15) << "getting health checks for" << name << dendl; + module->get_health_checks(checks); } } @@ -1011,10 +1011,10 @@ void ActivePyModules::config_notify() { std::lock_guard l(lock); - for (auto& i : modules) { - auto module = i.second.get(); + for (auto& [name, module] : modules) { // Send all python calls down a Finisher to avoid blocking // C++ code, and avoid any potential lock cycles. + dout(15) << "notify (config) " << name << dendl; finisher.queue(new FunctionContext([module](int r){ module->config_notify(); })); @@ -1028,7 +1028,7 @@ dout(4) << " module " << module_name << " set URI '" << uri << "'" << dendl; - modules[module_name]->set_uri(uri); + modules.at(module_name)->set_uri(uri); } OSDPerfMetricQueryID ActivePyModules::add_osd_perf_query( diff -Nru ceph-14.2.11/src/mgr/ActivePyModules.h ceph-14.2.18/src/mgr/ActivePyModules.h --- ceph-14.2.11/src/mgr/ActivePyModules.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/ActivePyModules.h 2021-03-15 17:46:20.000000000 +0000 @@ -39,7 +39,10 @@ class ActivePyModules { - std::map> modules; + // module class instances not yet created + std::set> pending_modules; + // module class instances already created + std::map> modules; PyModuleConfig &module_config; std::map store_cache; DaemonStateIndex &daemon_state; @@ -155,6 +158,9 @@ const std::string ¬ify_id); void notify_all(const LogEntry &log_entry); + bool is_pending(std::string_view name) const { + return pending_modules.count(name) > 0; + } bool module_exists(const std::string &name) const { return modules.count(name) > 0; diff -Nru ceph-14.2.11/src/mgr/BaseMgrModule.cc ceph-14.2.18/src/mgr/BaseMgrModule.cc --- ceph-14.2.11/src/mgr/BaseMgrModule.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/BaseMgrModule.cc 2021-03-15 17:46:20.000000000 +0000 @@ -123,12 +123,20 @@ char *cmd_json = nullptr; char *tag = nullptr; + char *inbuf_ptr = nullptr; + Py_ssize_t inbuf_len = 0; + bufferlist inbuf = {}; + PyObject *completion = nullptr; - if (!PyArg_ParseTuple(args, "Ossss:ceph_send_command", - &completion, &type, &name, &cmd_json, &tag)) { + if (!PyArg_ParseTuple(args, "Ossssz#:ceph_send_command", + &completion, &type, &name, &cmd_json, &tag, &inbuf_ptr, &inbuf_len)) { return nullptr; } + if (inbuf_ptr) { + inbuf.append(inbuf_ptr, (unsigned)inbuf_len); + } + auto set_fn = PyObject_GetAttrString(completion, "complete"); if (set_fn == nullptr) { ceph_abort(); // TODO raise python exception instead @@ -162,7 +170,7 @@ self->py_modules->get_monc().start_mon_command( name, {cmd_json}, - {}, + inbuf, &command_c->outbl, &command_c->outs, new C_OnFinisher(c, &self->py_modules->cmd_finisher)); @@ -182,7 +190,7 @@ self->py_modules->get_objecter().osd_command( osd_id, {cmd_json}, - {}, + inbuf, &tid, &command_c->outbl, &command_c->outs, @@ -191,7 +199,7 @@ int r = self->py_modules->get_client().mds_command( name, {cmd_json}, - {}, + inbuf, &command_c->outbl, &command_c->outs, new C_OnFinisher(command_c, &self->py_modules->cmd_finisher)); @@ -217,7 +225,7 @@ self->py_modules->get_objecter().pg_command( pgid, {cmd_json}, - {}, + inbuf, &tid, &command_c->outbl, &command_c->outs, @@ -337,7 +345,7 @@ self->py_modules->set_health_checks(self->this_module->get_name(), std::move(out_checks)); PyEval_RestoreThread(tstate); - + Py_RETURN_NONE; } diff -Nru ceph-14.2.11/src/mgr/ClusterState.cc ceph-14.2.18/src/mgr/ClusterState.cc --- ceph-14.2.11/src/mgr/ClusterState.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/ClusterState.cc 2021-03-15 17:46:20.000000000 +0000 @@ -73,7 +73,17 @@ std::lock_guard l(lock); const int from = stats->get_orig_source().num(); - pending_inc.update_stat(from, std::move(stats->osd_stat)); + bool is_in = with_osdmap([from](const OSDMap& osdmap) { + return osdmap.is_in(from); + }); + + if (is_in) { + pending_inc.update_stat(from, std::move(stats->osd_stat)); + } else { + osd_stat_t empty_stat; + empty_stat.seq = stats->osd_stat.seq; + pending_inc.update_stat(from, std::move(empty_stat)); + } for (auto p : stats->pg_stat) { pg_t pgid = p.first; diff -Nru ceph-14.2.11/src/mgr/DaemonHealthMetricCollector.cc ceph-14.2.18/src/mgr/DaemonHealthMetricCollector.cc --- ceph-14.2.11/src/mgr/DaemonHealthMetricCollector.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/DaemonHealthMetricCollector.cc 2021-03-15 17:46:20.000000000 +0000 @@ -55,6 +55,8 @@ return; } static const char* fmt = "%1% slow ops, oldest one blocked for %2% sec, %3%"; + // Note this message format is used in mgr/prometheus, so any change in format + // requires a corresponding change in the mgr/prometheus module. ostringstream ss; if (daemons.size() > 1) { if (daemons.size() > 10) { diff -Nru ceph-14.2.11/src/mgr/DaemonServer.cc ceph-14.2.18/src/mgr/DaemonServer.cc --- ceph-14.2.11/src/mgr/DaemonServer.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/DaemonServer.cc 2021-03-15 17:46:20.000000000 +0000 @@ -2787,12 +2787,13 @@ // we just started up dout(10) << "got initial map e" << service_map.epoch << dendl; pending_service_map = service_map; + pending_service_map.epoch = service_map.epoch + 1; } else { // we we already active and therefore must have persisted it, // which means ours is the same or newer. dout(10) << "got updated map e" << service_map.epoch << dendl; + ceph_assert(pending_service_map.epoch > service_map.epoch); } - pending_service_map.epoch = service_map.epoch + 1; }); // cull missing daemons, populate new ones diff -Nru ceph-14.2.11/src/mgr/Mgr.cc ceph-14.2.18/src/mgr/Mgr.cc --- ceph-14.2.11/src/mgr/Mgr.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/Mgr.cc 2021-03-15 17:46:20.000000000 +0000 @@ -509,6 +509,19 @@ names_exist.insert(monmap.get_name(i)); } }); + for (const auto& name : names_exist) { + const auto k = DaemonKey{"osd", name}; + if (daemon_state.is_updating(k)) { + continue; + } + auto c = new MetadataUpdate(daemon_state, k); + std::ostringstream cmd; + cmd << "{\"prefix\": \"mon metadata\", \"id\": \"" + << name << "\"}"; + monc->start_mon_command( + {cmd.str()}, + {}, &c->outbl, &c->outs, c); + } daemon_state.cull("mon", names_exist); } diff -Nru ceph-14.2.11/src/mgr/MgrStandby.cc ceph-14.2.18/src/mgr/MgrStandby.cc --- ceph-14.2.11/src/mgr/MgrStandby.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/MgrStandby.cc 2021-03-15 17:46:20.000000000 +0000 @@ -133,7 +133,10 @@ // We must register our config callback before calling init(), so // that we see the initial configuration message monc.register_config_callback([this](const std::string &k, const std::string &v){ - dout(10) << "config_callback: " << k << " : " << v << dendl; + // removing value to hide sensitive data going into mgr logs + // leaving this for debugging purposes + // dout(10) << "config_callback: " << k << " : " << v << dendl; + dout(10) << "config_callback: " << k << " : " << dendl; if (k.substr(0, 4) == "mgr/") { const std::string global_key = PyModule::config_prefix + k.substr(4); py_module_registry.handle_config(global_key, v); @@ -387,6 +390,7 @@ // this MgrMap is changing its set of enabled modules bool need_respawn = py_module_registry.handle_mgr_map(map); if (need_respawn) { + dout(1) << "respawning because set of enabled modules changed!" << dendl; respawn(); } diff -Nru ceph-14.2.11/src/mgr/PyModule.cc ceph-14.2.18/src/mgr/PyModule.cc --- ceph-14.2.11/src/mgr/PyModule.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/PyModule.cc 2021-03-15 17:46:20.000000000 +0000 @@ -147,16 +147,6 @@ { const std::string global_key = PyModule::config_prefix + module_name + "/" + key; - { - std::lock_guard l(lock); - - if (val) { - config[global_key] = *val; - } else { - config.erase(global_key); - } - } - Command set_cmd; { std::ostringstream cmd_json; @@ -164,23 +154,33 @@ jf.open_object_section("cmd"); if (val) { jf.dump_string("prefix", "config set"); - jf.dump_string("who", "mgr"); - jf.dump_string("name", global_key); jf.dump_string("value", *val); } else { jf.dump_string("prefix", "config rm"); - jf.dump_string("name", "mgr"); - jf.dump_string("key", global_key); } + jf.dump_string("who", "mgr"); + jf.dump_string("name", global_key); jf.close_section(); jf.flush(cmd_json); set_cmd.run(monc, cmd_json.str()); } set_cmd.wait(); - if (set_cmd.r != 0) { - dout(0) << "`config set mgr" << global_key << " " << val << "` failed: " - << cpp_strerror(set_cmd.r) << dendl; + if (set_cmd.r == 0) { + std::lock_guard l(lock); + if (val) { + config[global_key] = *val; + } else { + config.erase(global_key); + } + } else { + if (val) { + dout(0) << "`config set mgr " << global_key << " " << val << "` failed: " + << cpp_strerror(set_cmd.r) << dendl; + } else { + dout(0) << "`config rm mgr " << global_key << "` failed: " + << cpp_strerror(set_cmd.r) << dendl; + } dout(0) << "mon returned " << set_cmd.r << ": " << set_cmd.outs << dendl; } } diff -Nru ceph-14.2.11/src/mgr/PyModuleRegistry.cc ceph-14.2.18/src/mgr/PyModuleRegistry.cc --- ceph-14.2.11/src/mgr/PyModuleRegistry.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/PyModuleRegistry.cc 2021-03-15 17:46:20.000000000 +0000 @@ -32,7 +32,9 @@ #undef dout_prefix #define dout_prefix *_dout << "mgr[py] " - +std::set obsolete_modules = { + "orchestrator_cli", +}; void PyModuleRegistry::init() { @@ -370,6 +372,12 @@ // report failed always_on modules as health errors for (const auto& name : mgr_map.get_always_on_modules()) { + if (obsolete_modules.count(name)) { + continue; + } + if (active_modules->is_pending(name)) { + continue; + } if (!active_modules->module_exists(name)) { if (failed_modules.find(name) == failed_modules.end() && dependency_modules.find(name) == dependency_modules.end()) { @@ -419,7 +427,10 @@ std::lock_guard l(module_config.lock); if (!v.empty()) { - dout(4) << "Loaded module_config entry " << k << ":" << v << dendl; + // removing value to hide sensitive data going into mgr logs + // leaving this for debugging purposes + // dout(10) << "Loaded module_config entry " << k << ":" << v << dendl; + dout(4) << "Loaded module_config entry " << k << ":" << dendl; module_config.config[k] = v; } else { module_config.config.erase(k); diff -Nru ceph-14.2.11/src/mgr/PyModuleRunner.cc ceph-14.2.18/src/mgr/PyModuleRunner.cc --- ceph-14.2.11/src/mgr/PyModuleRunner.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/PyModuleRunner.cc 2021-03-15 17:46:20.000000000 +0000 @@ -88,6 +88,8 @@ derr << "Failed to invoke shutdown() on " << get_name() << dendl; derr << handle_pyerror() << dendl; } + + dead = true; } void PyModuleRunner::log(int level, const std::string &record) diff -Nru ceph-14.2.11/src/mgr/PyModuleRunner.h ceph-14.2.18/src/mgr/PyModuleRunner.h --- ceph-14.2.11/src/mgr/PyModuleRunner.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/PyModuleRunner.h 2021-03-15 17:46:20.000000000 +0000 @@ -47,6 +47,8 @@ void *entry() override; }; + bool is_dead() const { return dead; } + std::string thread_name; public: @@ -79,6 +81,9 @@ PyModuleRunnerThread thread; std::string const &get_name() const { return py_module->get_name(); } + +private: + bool dead = false; }; diff -Nru ceph-14.2.11/src/mgr/StandbyPyModules.cc ceph-14.2.18/src/mgr/StandbyPyModules.cc --- ceph-14.2.11/src/mgr/StandbyPyModules.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mgr/StandbyPyModules.cc 2021-03-15 17:46:20.000000000 +0000 @@ -79,11 +79,7 @@ { std::lock_guard l(lock); const auto name = py_module->get_name(); - - ceph_assert(modules.count(name) == 0); - - modules[name].reset(new StandbyPyModule(state, py_module, clog)); - auto standby_module = modules.at(name).get(); + auto standby_module = new StandbyPyModule(state, py_module, clog); // Send all python calls down a Finisher to avoid blocking // C++ code, and avoid any potential lock cycles. @@ -92,9 +88,12 @@ if (r != 0) { derr << "Failed to run module in standby mode ('" << name << "')" << dendl; - std::lock_guard l(lock); - modules.erase(name); + delete standby_module; } else { + std::lock_guard l(lock); + auto em = modules.emplace(name, standby_module); + ceph_assert(em.second); // actually inserted + dout(4) << "Starting thread for " << name << dendl; standby_module->thread.create(standby_module->get_thread_name()); } diff -Nru ceph-14.2.11/src/mon/ConfigMonitor.cc ceph-14.2.18/src/mon/ConfigMonitor.cc --- ceph-14.2.11/src/mon/ConfigMonitor.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/ConfigMonitor.cc 2021-03-15 17:46:20.000000000 +0000 @@ -800,13 +800,6 @@ it->next(); } dout(10) << __func__ << " got " << num << " keys" << dendl; - dout(20) << __func__ << " config map:\n"; - JSONFormatter jf(true); - jf.open_object_section("config_map"); - config_map.dump(&jf); - jf.close_section(); - jf.flush(*_dout); - *_dout << dendl; // refresh our own config { @@ -887,8 +880,9 @@ dout(20) << __func__ << " no change, " << out << dendl; return false; } - - dout(20) << __func__ << " " << out << dendl; + // removing this to hide sensitive data going into logs + // leaving this for debugging purposes + // dout(20) << __func__ << " " << out << dendl; s->last_config = out; s->any_config = true; return true; diff -Nru ceph-14.2.11/src/mon/MDSMonitor.cc ceph-14.2.18/src/mon/MDSMonitor.cc --- ceph-14.2.11/src/mon/MDSMonitor.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/MDSMonitor.cc 2021-03-15 17:46:20.000000000 +0000 @@ -220,7 +220,7 @@ metric.sev, mds_metric_summary(metric.type)); ostringstream ss; - ss << "mds" << info.name << "(mds." << rank << "): " << metric.message; + ss << "mds." << info.name << "(mds." << rank << "): " << metric.message; bool first = true; for (auto &p : metric.metadata) { if (first) { @@ -389,6 +389,10 @@ dout(10) << __func__ << ": GID exists in map: " << gid << dendl; info = fsmap.get_info_gid(gid); + if (state == MDSMap::STATE_DNE) { + return false; + } + // old seq? if (info.state_seq > seq) { dout(7) << "mds_beacon " << *m << " has old seq, ignoring" << dendl; diff -Nru ceph-14.2.11/src/mon/MonCap.cc ceph-14.2.18/src/mon/MonCap.cc --- ceph-14.2.11/src/mon/MonCap.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/MonCap.cc 2021-03-15 17:46:20.000000000 +0000 @@ -192,7 +192,7 @@ profile_grants.push_back(MonCapGrant("mds", MON_CAP_R | MON_CAP_W)); profile_grants.push_back(MonCapGrant("fs", MON_CAP_R | MON_CAP_W)); profile_grants.push_back(MonCapGrant("osd", MON_CAP_R | MON_CAP_W)); - profile_grants.push_back(MonCapGrant("auth", MON_CAP_R | MON_CAP_X)); + profile_grants.push_back(MonCapGrant("auth", MON_CAP_R | MON_CAP_W | MON_CAP_X)); profile_grants.push_back(MonCapGrant("config-key", MON_CAP_R | MON_CAP_W)); profile_grants.push_back(MonCapGrant("config", MON_CAP_R | MON_CAP_W)); } diff -Nru ceph-14.2.11/src/mon/MonClient.cc ceph-14.2.18/src/mon/MonClient.cc --- ceph-14.2.11/src/mon/MonClient.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/MonClient.cc 2021-03-15 17:46:20.000000000 +0000 @@ -402,6 +402,8 @@ } } + cct->set_mon_addrs(monmap); + sub.got("monmap", monmap.get_epoch()); map_cond.Signal(); want_monmap = false; @@ -863,11 +865,13 @@ void MonClient::schedule_tick() { auto do_tick = make_lambda_context([this]() { tick(); }); - if (_hunting()) { + if (!is_connected()) { + // start another round of hunting const auto hunt_interval = (cct->_conf->mon_client_hunt_interval * reopen_interval_multiplier); timer.add_event_after(hunt_interval, do_tick); } else { + // keep in touch timer.add_event_after(cct->_conf->mon_client_ping_interval, do_tick); } } @@ -1425,13 +1429,8 @@ } auto ac = &auth_meta->authorizer_challenge; - if (!HAVE_FEATURE(con->get_features(), CEPHX_V2)) { - if (cct->_conf->cephx_service_require_version >= 2) { - ldout(cct,10) << __func__ << " client missing CEPHX_V2 (" - << "cephx_service_requre_version = " - << cct->_conf->cephx_service_require_version << ")" << dendl; - return -EACCES; - } + if (auth_meta->skip_authorizer_challenge) { + ldout(cct, 10) << __func__ << " skipping challenge on " << con << dendl; ac = nullptr; } diff -Nru ceph-14.2.11/src/mon/Monitor.cc ceph-14.2.18/src/mon/Monitor.cc --- ceph-14.2.11/src/mon/Monitor.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/Monitor.cc 2021-03-15 17:46:20.000000000 +0000 @@ -2777,7 +2777,16 @@ summary == health_status_cache.summary && level == health_status_cache.overall) return; - clog->health(level) << "overall " << summary; + + if (g_conf()->mon_health_detail_to_clog && + summary != health_status_cache.summary && + level != HEALTH_OK) { + string details; + level = get_health_status(true, nullptr, &details); + clog->health(level) << "Health detail: " << details; + } else { + clog->health(level) << "overall " << summary; + } health_status_cache.summary = summary; health_status_cache.overall = level; } @@ -2955,7 +2964,7 @@ mono_clock::now() - quorum_since).count()); } f->open_object_section("monmap"); - monmap->dump(f); + monmap->dump_summary(f); f->close_section(); f->open_object_section("osdmap"); osdmon()->osdmap.print_summary(f, cout, string(12, ' ')); @@ -3337,18 +3346,20 @@ if (!_allowed_command(session, service, prefix, cmdmap, param_str_map, mon_cmd)) { dout(1) << __func__ << " access denied" << dendl; - (cmd_is_rw ? audit_clog->info() : audit_clog->debug()) - << "from='" << session->name << " " << session->addrs << "' " - << "entity='" << session->entity_name << "' " - << "cmd=" << m->cmd << ": access denied"; + if (prefix != "config set" && prefix != "config-key set") + (cmd_is_rw ? audit_clog->info() : audit_clog->debug()) + << "from='" << session->name << " " << session->addrs << "' " + << "entity='" << session->entity_name << "' " + << "cmd=" << m->cmd << ": access denied"; reply_command(op, -EACCES, "access denied", 0); return; } - (cmd_is_rw ? audit_clog->info() : audit_clog->debug()) - << "from='" << session->name << " " << session->addrs << "' " - << "entity='" << session->entity_name << "' " - << "cmd=" << m->cmd << ": dispatch"; + if (prefix != "config set" && prefix != "config-key set") + (cmd_is_rw ? audit_clog->info() : audit_clog->debug()) + << "from='" << session->name << " " << session->addrs << "' " + << "entity='" << session->entity_name << "' " + << "cmd=" << m->cmd << ": dispatch"; if (mon_cmd->is_mgr()) { const auto& hdr = m->get_header(); diff -Nru ceph-14.2.11/src/mon/Monitor.h ceph-14.2.18/src/mon/Monitor.h --- ceph-14.2.11/src/mon/Monitor.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/Monitor.h 2021-03-15 17:46:20.000000000 +0000 @@ -41,6 +41,7 @@ #include "MonCommand.h" +#include "common/cmdparse.h" #include "common/config_obs.h" #include "common/LogClient.h" #include "auth/AuthClient.h" @@ -849,7 +850,13 @@ ss << "session dropped for command "; } } - ss << "cmd='" << m->cmd << "': finished"; + cmdmap_t cmdmap; + stringstream ds; + string prefix; + cmdmap_from_json(m->cmd, &cmdmap, ds); + cmd_getval(g_ceph_context, cmdmap, "prefix", prefix); + if (prefix != "config set" && prefix != "config-key set") + ss << "cmd='" << m->cmd << "': finished"; mon->audit_clog->info() << ss.str(); mon->reply_command(op, rc, rs, rdata, version); diff -Nru ceph-14.2.11/src/mon/MonMap.cc ceph-14.2.18/src/mon/MonMap.cc --- ceph-14.2.11/src/mon/MonMap.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/MonMap.cc 2021-03-15 17:46:20.000000000 +0000 @@ -360,6 +360,14 @@ f->close_section(); } +void MonMap::dump_summary(Formatter *f) const +{ + f->dump_unsigned("epoch", epoch); + f->dump_string("min_mon_release_name", std::to_string(min_mon_release)); + f->dump_unsigned("num_mons", ranks.size()); +} + + // an ambiguous mon addr may be legacy or may be msgr2--we aren' sure. // when that happens we need to try them both (unless we can // reasonably infer from the port number which it is). @@ -449,9 +457,27 @@ } } +void MonMap::init_with_addrs(const std::vector& addrs, + bool for_mkfs, + std::string_view prefix) +{ + char id = 'a'; + for (auto& addr : addrs) { + string name{prefix}; + name += id++; + if (addr.v.size() == 1) { + _add_ambiguous_addr(name, addr.front(), 0, for_mkfs); + } else { + // they specified an addrvec, so let's assume they also specified + // the addr *type* and *port*. (we could possibly improve this?) + add(name, addr, 0); + } + } +} + int MonMap::init_with_ips(const std::string& ips, bool for_mkfs, - const std::string &prefix) + std::string_view prefix) { vector addrs; if (!parse_ip_port_vec( @@ -461,27 +487,13 @@ } if (addrs.empty()) return -ENOENT; - for (unsigned i=0; i_conf; + + // mon_host_override? + auto mon_host_override = conf.get_val("mon_host_override"); + if (!mon_host_override.empty()) { + lgeneric_dout(cct, 1) << "Using mon_host_override " << mon_host_override << dendl; + auto ret = init_with_ips(mon_host_override, for_mkfs, "noname-"); + if (ret == -EINVAL) { + ret = init_with_hosts(mon_host_override, for_mkfs, "noname-"); + } + if (ret < 0) { + errout << "unable to parse addrs in '" << mon_host_override << "'" + << std::endl; + } + return ret; + } + + // cct? + auto addrs = cct->get_mon_addrs(); + if (addrs != nullptr && (addrs->size() > 0)) { + init_with_addrs(*addrs, for_mkfs, "noname-"); + return 0; + } + // file? if (const auto monmap = conf.get_val("monmap"); !monmap.empty()) { diff -Nru ceph-14.2.11/src/mon/MonMap.h ceph-14.2.18/src/mon/MonMap.h --- ceph-14.2.11/src/mon/MonMap.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/MonMap.h 2021-03-15 17:46:20.000000000 +0000 @@ -433,10 +433,22 @@ void print(ostream& out) const; void print_summary(ostream& out) const; void dump(ceph::Formatter *f) const; + void dump_summary(ceph::Formatter *f) const; static void generate_test_instances(list& o); protected: /** + * build a monmap from a list of entity_addrvec_t's + * + * Give mons dummy names. + * + * @param addrs list of entity_addrvec_t's + * @param prefix prefix to prepend to generated mon names + */ + void init_with_addrs(const std::vector& addrs, + bool for_mkfs, + std::string_view prefix); + /** * build a monmap from a list of ips * * Give mons dummy names. @@ -447,7 +459,7 @@ */ int init_with_ips(const std::string& ips, bool for_mkfs, - const std::string &prefix); + std::string_view prefix); /** * build a monmap from a list of hostnames * @@ -459,7 +471,7 @@ */ int init_with_hosts(const std::string& hostlist, bool for_mkfs, - const std::string& prefix); + std::string_view prefix); int init_with_config_file(const ConfigProxy& conf, std::ostream& errout); #if WITH_SEASTAR seastar::future<> read_monmap(const std::string& monmap); diff -Nru ceph-14.2.11/src/mon/MonmapMonitor.cc ceph-14.2.18/src/mon/MonmapMonitor.cc --- ceph-14.2.11/src/mon/MonmapMonitor.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/MonmapMonitor.cc 2021-03-15 17:46:20.000000000 +0000 @@ -277,10 +277,29 @@ boost::scoped_ptr f(Formatter::create(format)); if (prefix == "mon stat") { - mon->monmap->print_summary(ss); - ss << ", election epoch " << mon->get_epoch() << ", leader " - << mon->get_leader() << " " << mon->get_leader_name() - << ", quorum " << mon->get_quorum() << " " << mon->get_quorum_names(); + if (f) { + f->open_object_section("monmap"); + mon->monmap->dump_summary(f.get()); + f->dump_string("leader", mon->get_leader_name()); + f->open_array_section("quorum"); + for (auto rank: mon->get_quorum()) { + std::string name = mon->monmap->get_name(rank); + f->open_object_section("mon"); + f->dump_int("rank", rank); + f->dump_string("name", name); + f->close_section(); // mon + } + f->close_section(); // quorum + f->close_section(); // monmap + f->flush(ss); + } else { + mon->monmap->print_summary(ss); + ss << ", election epoch " << mon->get_epoch() << ", leader " + << mon->get_leader() << " " << mon->get_leader_name() + << ", quorum " << mon->get_quorum() + << " " << mon->get_quorum_names(); + } + rdata.append(ss); ss.str(""); r = 0; diff -Nru ceph-14.2.11/src/mon/OSDMonitor.cc ceph-14.2.18/src/mon/OSDMonitor.cc --- ceph-14.2.11/src/mon/OSDMonitor.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/OSDMonitor.cc 2021-03-15 17:46:20.000000000 +0000 @@ -2090,7 +2090,7 @@ // don't trim past the oldest reported osd epoch for (auto& osd_epoch : osd_epochs) { if (osd_epoch.second < floor && - osdmap.is_out(osd_epoch.first)) { + osdmap.is_in(osd_epoch.first)) { floor = osd_epoch.second; } } @@ -3848,6 +3848,7 @@ return true; ignore: + mon->no_reply(op); return true; } @@ -10430,6 +10431,18 @@ err = parse_erasure_code_profile(profile, &profile_map, &ss); if (err) goto reply; + if (auto found = profile_map.find("crush-failure-domain"); + found != profile_map.end()) { + const auto& failure_domain = found->second; + int failure_domain_type = osdmap.crush->get_type_id(failure_domain); + if (failure_domain_type < 0) { + ss << "erasure-code-profile " << profile_map + << " contains an invalid failure-domain " << std::quoted(failure_domain); + err = -EINVAL; + goto reply; + } + } + if (profile_map.find("plugin") == profile_map.end()) { ss << "erasure-code-profile " << profile_map << " must contain a plugin entry" << std::endl; @@ -12184,22 +12197,38 @@ goto reply; } - if (expected_num_objects > 0 && - cct->_conf->osd_objectstore == "filestore" && - cct->_conf->filestore_merge_threshold > 0) { + set osds; + osdmap.get_all_osds(osds); + bool has_filestore_osd = std::any_of(osds.begin(), osds.end(), [this](int osd) { + string type; + if (!get_osd_objectstore_type(osd, &type)) { + return type == "filestore"; + } else { + return false; + } + }); + + if (has_filestore_osd && + expected_num_objects > 0 && + cct->_conf->filestore_merge_threshold > 0) { ss << "'expected_num_objects' requires 'filestore_merge_threshold < 0'"; err = -EINVAL; goto reply; } - if (expected_num_objects == 0 && - cct->_conf->osd_objectstore == "filestore" && - cct->_conf->filestore_merge_threshold < 0) { + if (has_filestore_osd && + expected_num_objects == 0 && + cct->_conf->filestore_merge_threshold < 0) { int osds = osdmap.get_num_osds(); - if (osds && (pg_num >= 1024 || pg_num / osds >= 100)) { + bool sure = false; + cmd_getval(cct, cmdmap, "yes_i_really_mean_it", sure); + if (!sure && osds && (pg_num >= 1024 || pg_num / osds >= 100)) { ss << "For better initial performance on pools expected to store a " - << "large number of objects, consider supplying the " - << "expected_num_objects parameter when creating the pool.\n"; + << "large number of objects, consider supplying the " + << "expected_num_objects parameter when creating the pool." + << " Pass --yes-i-really-mean-it to ignore it"; + err = -EPERM; + goto reply; } } diff -Nru ceph-14.2.11/src/mon/Paxos.cc ceph-14.2.18/src/mon/Paxos.cc --- ceph-14.2.11/src/mon/Paxos.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/Paxos.cc 2021-03-15 17:46:20.000000000 +0000 @@ -1332,7 +1332,6 @@ finish_contexts(g_ceph_context, committing_finishers, -ECANCELED); if (logger) g_ceph_context->get_perfcounters_collection()->remove(logger); - delete logger; } void Paxos::leader_init() diff -Nru ceph-14.2.11/src/mon/Paxos.h ceph-14.2.18/src/mon/Paxos.h --- ceph-14.2.11/src/mon/Paxos.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/Paxos.h 2021-03-15 17:46:20.000000000 +0000 @@ -1045,7 +1045,7 @@ * @param name A name for the paxos service. It serves as the naming space * of the underlying persistent storage for this service. */ - Paxos(Monitor *m, const string &name) + Paxos(Monitor *m, const string &name) : mon(m), logger(NULL), paxos_name(name), @@ -1065,6 +1065,10 @@ clock_drift_warned(0), trimming(false) { } + ~Paxos() { + delete logger; + } + const string get_name() const { return paxos_name; } diff -Nru ceph-14.2.11/src/mon/PGMap.cc ceph-14.2.18/src/mon/PGMap.cc --- ceph-14.2.11/src/mon/PGMap.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/PGMap.cc 2021-03-15 17:46:20.000000000 +0000 @@ -759,6 +759,7 @@ } else { tbl.define_column("POOL", TextTable::LEFT, TextTable::LEFT); tbl.define_column("ID", TextTable::LEFT, TextTable::RIGHT); + tbl.define_column("PGS", TextTable::LEFT, TextTable::RIGHT); tbl.define_column("STORED", TextTable::LEFT, TextTable::RIGHT); tbl.define_column("OBJECTS", TextTable::LEFT, TextTable::RIGHT); tbl.define_column("USED", TextTable::LEFT, TextTable::RIGHT); @@ -782,6 +783,7 @@ continue; const string& pool_name = osd_map.get_pool_name(pool_id); + auto pool_pg_num = osd_map.get_pg_num(pool_id); const pool_stat_t &stat = pg_pool_sum.at(pool_id); const pg_pool_t *pool = osd_map.get_pg_pool(pool_id); @@ -805,7 +807,8 @@ f->open_object_section("stats"); } else { tbl << pool_name - << pool_id; + << pool_id + << pool_pg_num; } float raw_used_rate = osd_map.pool_raw_used_rate(pool_id); bool per_pool = use_per_pool_stats(); @@ -933,6 +936,7 @@ f->dump_int("compress_under_bytes", statfs.data_compressed_original); // Stored by user amplified by replication f->dump_int("stored_raw", pool_stat.get_user_bytes(1.0, per_pool)); + f->dump_unsigned("avail_raw", avail); } } else { tbl << stringify(byte_u_t(stored_normalized)); @@ -1143,7 +1147,7 @@ auto pool_statfs_iter = pool_statfs.find(std::make_pair(update_pool, update_osd)); - if (pg_pool_sum.count(update_pool)) { + if (pg_pool_sum.count(update_pool)) { pool_stat_t &pool_sum_ref = pg_pool_sum[update_pool]; if (pool_statfs_iter == pool_statfs.end()) { pool_statfs.emplace(std::make_pair(update_pool, update_osd), statfs_inc); @@ -1179,6 +1183,13 @@ bool pool_erased = false; if (s != pg_stat.end()) { pool_erased = stat_pg_sub(removed_pg, s->second); + + // decrease pool stats if pg was removed + auto pool_stats_it = pg_pool_sum.find(removed_pg.pool()); + if (pool_stats_it != pg_pool_sum.end()) { + pool_stats_it->second.sub(s->second); + } + pg_stat.erase(s); if (pool_erased) { deleted_pools.insert(removed_pg.pool()); @@ -2770,6 +2781,7 @@ list detail_back; list detail_front; + list detail; set back_sorted, front_sorted; for (auto i : osd_stat) { for (auto j : i.second.hb_pingtime) { @@ -2800,6 +2812,18 @@ front_sorted.emplace(front); } } + if (i.second.num_shards_repaired > + cct->_conf.get_val("mon_osd_warn_num_repaired")) { + ostringstream ss; + ss << "osd." << i.first << " had " << i.second.num_shards_repaired << " reads repaired"; + detail.push_back(ss.str()); + } + } + if (!detail.empty()) { + ostringstream ss; + ss << "Too many repaired reads on " << detail.size() << " OSDs"; + auto& d = checks->add("OSD_TOO_MANY_REPAIRS", HEALTH_WARN, ss.str()); + d.detail.swap(detail); } int max_detail = 10; for (auto &sback : boost::adaptors::reverse(back_sorted)) { diff -Nru ceph-14.2.11/src/mon/Session.h ceph-14.2.18/src/mon/Session.h --- ceph-14.2.11/src/mon/Session.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mon/Session.h 2021-03-15 17:46:20.000000000 +0000 @@ -162,6 +162,9 @@ } void add_session(MonSession *s) { + s->session_timeout = ceph_clock_now(); + s->session_timeout += g_conf()->mon_session_timeout; + sessions.push_back(&s->item); s->get(); if (s->name.is_osd() && diff -Nru ceph-14.2.11/src/mount/conf.cc ceph-14.2.18/src/mount/conf.cc --- ceph-14.2.11/src/mount/conf.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mount/conf.cc 2021-03-15 17:46:20.000000000 +0000 @@ -16,6 +16,7 @@ extern "C" void mount_ceph_get_config_info(const char *config_file, const char *name, + bool v2_addrs, struct ceph_config_info *cci) { int err; @@ -48,9 +49,17 @@ for (const auto& mon : monc.monmap.addr_mons) { auto& eaddr = mon.first; - // For now, kernel client only accepts legacy addrs - if (!eaddr.is_legacy()) - continue; + /* + * Filter v1 addrs if we're running in ms_mode=legacy. Filter + * v2 addrs for any other ms_mode. + */ + if (v2_addrs) { + if (!eaddr.is_msgr2()) + continue; + } else { + if (!eaddr.is_legacy()) + continue; + } std::string addr; addr += eaddr.ip_only_to_str(); diff -Nru ceph-14.2.11/src/mount/mount.ceph.c ceph-14.2.18/src/mount/mount.ceph.c --- ceph-14.2.11/src/mount/mount.ceph.c 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mount/mount.ceph.c 2021-03-15 17:46:20.000000000 +0000 @@ -19,6 +19,7 @@ bool verboseflag = false; bool skip_mtab_flag = false; +bool v2_addrs = false; static const char * const EMPTY_STRING = ""; /* TODO duplicates logic from kernel */ @@ -155,7 +156,7 @@ ret = drop_capabilities(); if (ret) exit(1); - mount_ceph_get_config_info(cmi->cmi_conf, cmi->cmi_name, cci); + mount_ceph_get_config_info(cmi->cmi_conf, cmi->cmi_name, v2_addrs, cci); exit(0); } else { /* parent */ @@ -308,6 +309,14 @@ /* keep pointer to value */ name = value; skip = false; + } else if (strcmp(data, "ms_mode") == 0) { + if (!value || !*value) { + fprintf(stderr, "mount option ms_mode requires a value.\n"); + return -EINVAL; + } + /* Only legacy ms_mode needs v1 addrs */ + v2_addrs = strcmp(value, "legacy"); + skip = false; } else { skip = false; mount_ceph_debug("mount.ceph: unrecognized mount option \"%s\", passing to kernel.\n", diff -Nru ceph-14.2.11/src/mount/mount.ceph.h ceph-14.2.18/src/mount/mount.ceph.h --- ceph-14.2.11/src/mount/mount.ceph.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/mount/mount.ceph.h 2021-03-15 17:46:20.000000000 +0000 @@ -32,7 +32,7 @@ }; void mount_ceph_get_config_info(const char *config_file, const char *name, - struct ceph_config_info *cci); + bool v2_addrs, struct ceph_config_info *cci); #ifdef __cplusplus } diff -Nru ceph-14.2.11/src/msg/async/ProtocolV1.cc ceph-14.2.18/src/msg/async/ProtocolV1.cc --- ceph-14.2.11/src/msg/async/ProtocolV1.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/msg/async/ProtocolV1.cc 2021-03-15 17:46:20.000000000 +0000 @@ -1936,7 +1936,8 @@ // require signatures for cephx? if (connect_msg.authorizer_protocol == CEPH_AUTH_CEPHX) { if (connection->peer_type == CEPH_ENTITY_TYPE_OSD || - connection->peer_type == CEPH_ENTITY_TYPE_MDS) { + connection->peer_type == CEPH_ENTITY_TYPE_MDS || + connection->peer_type == CEPH_ENTITY_TYPE_MGR) { if (cct->_conf->cephx_require_signatures || cct->_conf->cephx_cluster_require_signatures) { ldout(cct, 10) @@ -1945,6 +1946,14 @@ << dendl; connection->policy.features_required |= CEPH_FEATURE_MSG_AUTH; } + if (cct->_conf->cephx_require_version >= 2 || + cct->_conf->cephx_cluster_require_version >= 2) { + ldout(cct, 10) + << __func__ + << " using cephx, requiring cephx v2 feature bit for cluster" + << dendl; + connection->policy.features_required |= CEPH_FEATUREMASK_CEPHX_V2; + } } else { if (cct->_conf->cephx_require_signatures || cct->_conf->cephx_service_require_signatures) { @@ -1954,9 +1963,14 @@ << dendl; connection->policy.features_required |= CEPH_FEATURE_MSG_AUTH; } - } - if (cct->_conf->cephx_service_require_version >= 2) { - connection->policy.features_required |= CEPH_FEATURE_CEPHX_V2; + if (cct->_conf->cephx_require_version >= 2 || + cct->_conf->cephx_service_require_version >= 2) { + ldout(cct, 10) + << __func__ + << " using cephx, requiring cephx v2 feature bit for service" + << dendl; + connection->policy.features_required |= CEPH_FEATUREMASK_CEPHX_V2; + } } } diff -Nru ceph-14.2.11/src/msg/async/ProtocolV2.cc ceph-14.2.18/src/msg/async/ProtocolV2.cc --- ceph-14.2.11/src/msg/async/ProtocolV2.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/msg/async/ProtocolV2.cc 2021-03-15 17:46:20.000000000 +0000 @@ -740,7 +740,7 @@ if (unlikely(pre_auth.enabled) && r >= 0) { pre_auth.rxbuf.append(*next.node); ceph_assert(!cct->_conf->ms_die_on_bug || - pre_auth.rxbuf.length() < 1000000); + pre_auth.rxbuf.length() < 20000000); } next.r = r; run_continuation(next); @@ -750,7 +750,7 @@ if (unlikely(pre_auth.enabled) && r >= 0) { pre_auth.rxbuf.append(*next.node); ceph_assert(!cct->_conf->ms_die_on_bug || - pre_auth.rxbuf.length() < 1000000); + pre_auth.rxbuf.length() < 20000000); } next.r = r; return &next; @@ -782,7 +782,7 @@ if (unlikely(pre_auth.enabled)) { pre_auth.txbuf.append(buffer); ceph_assert(!cct->_conf->ms_die_on_bug || - pre_auth.txbuf.length() < 1000000); + pre_auth.txbuf.length() < 20000000); } ssize_t r = diff -Nru ceph-14.2.11/src/msg/msg_types.cc ceph-14.2.18/src/msg/msg_types.cc --- ceph-14.2.11/src/msg/msg_types.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/msg/msg_types.cc 2021-03-15 17:46:20.000000000 +0000 @@ -317,7 +317,21 @@ __u32 elen; decode(elen, bl); if (elen) { - bl.copy(elen, (char*)addr.get_sockaddr()); + struct sockaddr *sa = (struct sockaddr *)addr.get_sockaddr(); +#if defined(__FreeBSD__) || defined(__APPLE__) + sa->sa_len = 0; +#endif + uint16_t ss_family; + if (elen < sizeof(ss_family)) { + throw ceph::buffer::malformed_input("elen smaller than family len"); + } + decode(ss_family, bl); + sa->sa_family = ss_family; + elen -= sizeof(ss_family); + if (elen > addr.get_sockaddr_len() - sizeof(sa->sa_family)) { + throw ceph::buffer::malformed_input("elen exceeds sockaddr len"); + } + bl.copy(elen, sa->sa_data); } DECODE_FINISH(bl); v.clear(); diff -Nru ceph-14.2.11/src/ocf/rbd.in ceph-14.2.18/src/ocf/rbd.in --- ceph-14.2.11/src/ocf/rbd.in 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/ocf/rbd.in 2021-03-15 17:46:20.000000000 +0000 @@ -41,6 +41,12 @@ RBD device name + + + Name of the RADOS pool namespace where the RBD has been created + + RADOS pool namespace name + Name of the RADOS pool where the RBD has been created @@ -108,9 +114,7 @@ EOF } -# rbd command wrapper: builds an option string for invoking RBD based -# on resource parameters, and invokes rbd through ocf_run. -do_rbd() { +get_rbd_options() { local rbd_options if [ -n "${OCF_RESKEY_cephconf}" ]; then @@ -120,25 +124,36 @@ rbd_options="$rbd_options -m ${OCF_RESKEY_mon}" fi + echo "${rbd_options}" +} + + +# rbd command wrapper: builds an option string for invoking RBD based +# on resource parameters, and invokes rbd through ocf_run. +do_rbd() { + local rbd_options="$(get_rbd_options)" + ocf_run rbd $rbd_options $@ } # Convenience function that uses "rbd device list" to retrieve the # mapped device name from the pool, RBD name, and snapshot. find_rbd_dev() { + local rbd_options="$(get_rbd_options)" local sedpat # Example output from "rbd device list" (tab separated): - # id pool image snap device - # 0 rbd test - /dev/rbd0 + # id pool namespace image snap device + # 0 rbd test - /dev/rbd0 + # 1 rbd ns1 test - /dev/rbd1 # Build the sed pattern, substituting "-" for the snapshot name if # it's unset - sedpat="[0-9]\+[ \t]\+${OCF_RESKEY_pool}[ \t]\+${OCF_RESKEY_name}[ \t]\+${OCF_RESKEY_snap:--}[ \t]\+\(/dev/rbd[0-9]\+\).*" + sedpat="[0-9]\+[ \t]\+${OCF_RESKEY_pool}[ \t]\+${OCF_RESKEY_pool_namespace}[ \t]\+${OCF_RESKEY_name}[ \t]\+${OCF_RESKEY_snap:--}[ \t]\+\(/dev/rbd[0-9]\+\).*" # Run "rbd device list", filter out the header line, then try to # extract the device name - rbd device list | tail -n +2 | sed -n -e "s,$sedpat,\1,p" + rbd $rbd_options device list | tail -n +2 | sed -n -e "s,$sedpat,\1,p" } rbd_validate_all() { @@ -206,9 +221,13 @@ rbd_map_options="$rbd_map_options --keyfile ${OCF_RESKEY_secret}" fi - rbd_name="${OCF_RESKEY_pool}/${OCF_RESKEY_name}" + rbd_name="${OCF_RESKEY_pool}" + if [ -n "${OCF_RESKEY_pool_namespace}" ]; then + rbd_name="${rbd_name}/${OCF_RESKEY_pool_namespace}" + fi + rbd_name="${rbd_name}/${OCF_RESKEY_name}" if [ -n "${OCF_RESKEY_snap}" ]; then - rbd_name="$rbd_name@${OCF_RESKEY_snap}" + rbd_name="${rbd_name}@${OCF_RESKEY_snap}" fi do_rbd device map $rbd_name $rbd_map_options || exit $OCF_ERR_GENERIC diff -Nru ceph-14.2.11/src/os/bluestore/AvlAllocator.cc ceph-14.2.18/src/os/bluestore/AvlAllocator.cc --- ceph-14.2.11/src/os/bluestore/AvlAllocator.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/AvlAllocator.cc 2021-03-15 17:46:20.000000000 +0000 @@ -240,7 +240,15 @@ max_size < range_size_alloc_threshold || free_pct < range_size_alloc_free_pct) { *cursor = 0; - start = _block_picker(range_size_tree, cursor, size, unit); + do { + start = _block_picker(range_size_tree, cursor, size, unit); + if (start != -1ULL || !force_range_size_alloc) { + break; + } + // try to collect smaller extents as we could fail to retrieve + // that large block due to misaligned extents + size = p2align(size >> 1, unit); + } while (size >= unit); } else { start = _block_picker(range_tree, cursor, size, unit); } diff -Nru ceph-14.2.11/src/os/bluestore/BlockDevice.cc ceph-14.2.18/src/os/bluestore/BlockDevice.cc --- ceph-14.2.11/src/os/bluestore/BlockDevice.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/BlockDevice.cc 2021-03-15 17:46:20.000000000 +0000 @@ -64,9 +64,7 @@ // that to the bytes value. uint64_t ios = 0; #if defined(HAVE_LIBAIO) || defined(HAVE_POSIXAIO) - for (auto& p : pending_aios) { - ios += p.iov.size(); - } + ios += pending_aios.size(); #endif #ifdef HAVE_SPDK ios += total_nseg; diff -Nru ceph-14.2.11/src/os/bluestore/BlueFS.cc ceph-14.2.18/src/os/bluestore/BlueFS.cc --- ceph-14.2.11/src/os/bluestore/BlueFS.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/BlueFS.cc 2021-03-15 17:46:20.000000000 +0000 @@ -19,10 +19,10 @@ MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::File, bluefs_file, bluefs); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::Dir, bluefs_dir, bluefs); -MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileWriter, bluefs_file_writer, bluefs); +MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileWriter, bluefs_file_writer, bluefs_file_writer); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileReaderBuffer, - bluefs_file_reader_buffer, bluefs); -MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileReader, bluefs_file_reader, bluefs); + bluefs_file_reader_buffer, bluefs_file_reader); +MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileReader, bluefs_file_reader, bluefs_file_reader); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileLock, bluefs_file_lock, bluefs); static void wal_discard_cb(void *priv, void* priv2) { @@ -68,6 +68,11 @@ hook, "Dump internal statistics for bluefs."); ceph_assert(r == 0); + r = admin_socket->register_command("bluefs debug_inject_read_zeros", + "bluefs debug_inject_read_zeros", + hook, + "Injects 8K zeros into next BlueFS read. Debug only."); + ceph_assert(r == 0); } } return hook; @@ -114,6 +119,8 @@ } else if (command == "bluestore bluefs stats") { bluefs->dump_block_extents(ss); bluefs->dump_volume_selector(ss); + } else if (command == "bluefs debug_inject_read_zeros") { + bluefs->inject_read_zeros++; } else { ss << "Invalid command" << std::endl; r = false; @@ -235,6 +242,10 @@ b.add_u64_counter(l_bluefs_read_prefetch_bytes, "read_prefetch_bytes", "Bytes requested in prefetch read mode", NULL, PerfCountersBuilder::PRIO_USEFUL, unit_t(UNIT_BYTES)); + b.add_u64(l_bluefs_read_zeros_candidate, "read_zeros_candidate", + "How many times bluefs read found page with all 0s"); + b.add_u64(l_bluefs_read_zeros_errors, "read_zeros_errors", + "How many times bluefs read found transient page with all 0s"); logger = b.create_perf_counters(); cct->get_perfcounters_collection()->add(logger); @@ -603,6 +614,147 @@ alloc.clear(); } +int BlueFS::read(uint8_t ndev, uint64_t off, uint64_t len, + ceph::buffer::list *pbl, IOContext *ioc, bool buffered) +{ + dout(10) << __func__ << " dev " << int(ndev) + << ": 0x" << std::hex << off << "~" << len << std::dec + << (buffered ? " buffered" : "") + << dendl; + int r; + bufferlist bl; + r = bdev[ndev]->read(off, len, &bl, ioc, buffered); + if (r != 0) { + return r; + } + uint64_t block_size = bdev[ndev]->get_block_size(); + if (inject_read_zeros) { + if (len >= block_size * 2) { + derr << __func__ << " injecting error, zeros at " + << int(ndev) << ": 0x" << std::hex << (off + len / 2) + << "~" << (block_size * 2) << std::dec << dendl; + //use beginning, replace 8K in the middle with zeros, use tail + bufferlist temp; + bl.splice(0, len / 2 - block_size, &temp); + temp.append_zero(block_size * 2); + bl.splice(block_size * 2, len / 2 - block_size, &temp); + bl = temp; + inject_read_zeros--; + } + } + //make a check if there is a block with all 0 + uint64_t to_check_len = len; + uint64_t skip = p2nphase(off, block_size); + if (skip >= to_check_len) { + return r; + } + auto it = bl.begin(); + it.seek(skip); + to_check_len -= skip; + bool all_zeros = false; + while (all_zeros == false && to_check_len >= block_size) { + // checking 0s step + unsigned block_left = block_size; + unsigned avail; + const char* data; + all_zeros = true; + while (all_zeros && block_left > 0) { + avail = it.get_ptr_and_advance(block_left, &data); + block_left -= avail; + all_zeros = mem_is_zero(data, avail); + } + // skipping step + while (block_left > 0) { + avail = it.get_ptr_and_advance(block_left, &data); + block_left -= avail; + } + to_check_len -= block_size; + } + if (all_zeros) { + logger->inc(l_bluefs_read_zeros_candidate, 1); + bufferlist bl_reread; + r = bdev[ndev]->read(off, len, &bl_reread, ioc, buffered); + if (r != 0) { + return r; + } + // check if both read gave the same + if (!bl.contents_equal(bl_reread)) { + // report problems to log, but continue, maybe it will be good now... + derr << __func__ << " initial read of " << int(ndev) + << ": 0x" << std::hex << off << "~" << len + << std::dec << ": different then re-read " << dendl; + logger->inc(l_bluefs_read_zeros_errors, 1); + } + // use second read will be better if is different + pbl->append(bl_reread); + } else { + pbl->append(bl); + } + return r; +} + +int BlueFS::read_random(uint8_t ndev, uint64_t off, uint64_t len, char *buf, bool buffered) +{ + dout(10) << __func__ << " dev " << int(ndev) + << ": 0x" << std::hex << off << "~" << len << std::dec + << (buffered ? " buffered" : "") + << dendl; + int r; + r = bdev[ndev]->read_random(off, len, buf, buffered); + if (r != 0) { + return r; + } + uint64_t block_size = bdev[ndev]->get_block_size(); + if (inject_read_zeros) { + if (len >= block_size * 2) { + derr << __func__ << " injecting error, zeros at " + << int(ndev) << ": 0x" << std::hex << (off + len / 2) + << "~" << (block_size * 2) << std::dec << dendl; + //zero middle 8K + memset(buf + len / 2 - block_size, 0, block_size * 2); + inject_read_zeros--; + } + } + //make a check if there is a block with all 0 + uint64_t to_check_len = len; + const char* data = buf; + uint64_t skip = p2nphase(off, block_size); + if (skip >= to_check_len) { + return r; + } + to_check_len -= skip; + data += skip; + + bool all_zeros = false; + while (all_zeros == false && to_check_len >= block_size) { + if (mem_is_zero(data, block_size)) { + // at least one block is all zeros + all_zeros = true; + break; + } + data += block_size; + to_check_len -= block_size; + } + if (all_zeros) { + logger->inc(l_bluefs_read_zeros_candidate, 1); + std::unique_ptr data_reread(new char[len]); + r = bdev[ndev]->read_random(off, len, &data_reread[0], buffered); + if (r != 0) { + return r; + } + // check if both read gave the same + if (memcmp(buf, &data_reread[0], len) != 0) { + derr << __func__ << " initial read of " << int(ndev) + << ": 0x" << std::hex << off << "~" << len + << std::dec << ": different then re-read " << dendl; + logger->inc(l_bluefs_read_zeros_errors, 1); + // second read is probably better + memcpy(buf, &data_reread[0], len); + } + } + return r; +} + int BlueFS::mount() { dout(1) << __func__ << dendl; @@ -814,7 +966,10 @@ { int r = _read(log_reader, &log_reader->buf, read_pos, super.block_size, &bl, NULL); - ceph_assert(r == (int)super.block_size); + if (r != (int)super.block_size && cct->_conf->bluefs_replay_recovery) { + r += do_replay_recovery_read(log_reader, pos, read_pos + r, super.block_size - r, &bl); + } + assert(r == (int)super.block_size); read_pos += r; } uint64_t more = 0; @@ -854,7 +1009,14 @@ dout(10) << __func__ << " 0x" << std::hex << pos << ": stop: len is 0x" << bl.length() + more << std::dec << ", which is past eof" << dendl; - break; + if (cct->_conf->bluefs_replay_recovery) { + //try to search for more data + r += do_replay_recovery_read(log_reader, pos, read_pos + r, more - r, &t); + if (r < (int)more) { + //in normal mode we must read r==more, for recovery it is too strict + break; + } + } } ceph_assert(r == (int)more); bl.claim_append(t); @@ -1513,7 +1675,7 @@ } } -int BlueFS::_read_random( +int64_t BlueFS::_read_random( FileReader *h, ///< [in] read from here uint64_t off, ///< [in] offset size_t len, ///< [in] this many bytes @@ -1521,7 +1683,7 @@ { auto* buf = &h->buf; - int ret = 0; + int64_t ret = 0; dout(10) << __func__ << " h " << h << " 0x" << std::hex << off << "~" << len << std::dec << " from " << h->file->fnode << dendl; @@ -1541,17 +1703,27 @@ logger->inc(l_bluefs_read_random_bytes, len); std::shared_lock s_lock(h->lock); + buf->bl.reassign_to_mempool(mempool::mempool_bluefs_file_reader); while (len > 0) { if (off < buf->bl_off || off >= buf->get_buf_end()) { s_lock.unlock(); uint64_t x_off = 0; auto p = h->file->fnode.seek(off, &x_off); + ceph_assert(p != h->file->fnode.extents.end()); uint64_t l = std::min(p->length - x_off, static_cast(len)); + //hard cap to 1GB + l = std::min(l, uint64_t(1) << 30); dout(20) << __func__ << " read random 0x" << std::hex << x_off << "~" << l << std::dec << " of " << *p << dendl; - int r = bdev[p->bdev]->read_random(p->offset + x_off, l, out, - cct->_conf->bluefs_buffered_io); + int r; + if (!cct->_conf->bluefs_check_for_zeros) { + r = bdev[p->bdev]->read_random(p->offset + x_off, l, out, + cct->_conf->bluefs_buffered_io); + } else { + r = read_random(p->bdev, p->offset + x_off, l, out, + cct->_conf->bluefs_buffered_io); + } ceph_assert(r == 0); off += l; len -= l; @@ -1565,7 +1737,7 @@ } } else { auto left = buf->get_buf_remaining(off); - int r = std::min(len, left); + int64_t r = std::min(len, left); logger->inc(l_bluefs_read_random_buffer_count, 1); logger->inc(l_bluefs_read_random_buffer_bytes, r); dout(20) << __func__ << " left 0x" << std::hex << left @@ -1596,7 +1768,7 @@ return ret; } -int BlueFS::_read( +int64_t BlueFS::_read( FileReader *h, ///< [in] read from here FileReaderBuffer *buf, ///< [in] reader state uint64_t off, ///< [in] offset @@ -1632,23 +1804,32 @@ if (outbl) outbl->clear(); - int ret = 0; + int64_t ret = 0; std::shared_lock s_lock(h->lock); while (len > 0) { size_t left; if (off < buf->bl_off || off >= buf->get_buf_end()) { s_lock.unlock(); std::unique_lock u_lock(h->lock); + buf->bl.reassign_to_mempool(mempool::mempool_bluefs_file_reader); if (off < buf->bl_off || off >= buf->get_buf_end()) { // if precondition hasn't changed during locking upgrade. buf->bl.clear(); buf->bl_off = off & super.block_mask(); uint64_t x_off = 0; auto p = h->file->fnode.seek(buf->bl_off, &x_off); + if (p == h->file->fnode.extents.end()) { + dout(5) << __func__ << " reading less then required " + << ret << "<" << ret + len << dendl; + break; + } + uint64_t want = round_up_to(len + (off & ~super.block_mask()), super.block_size); want = std::max(want, buf->max_prefetch); uint64_t l = std::min(p->length - x_off, want); + //hard cap to 1GB + l = std::min(l, uint64_t(1) << 30); uint64_t eof_offset = round_up_to(h->file->fnode.size, super.block_size); if (!h->ignore_eof && buf->bl_off + l > eof_offset) { @@ -1657,8 +1838,14 @@ dout(20) << __func__ << " fetching 0x" << std::hex << x_off << "~" << l << std::dec << " of " << *p << dendl; - int r = bdev[p->bdev]->read(p->offset + x_off, l, &buf->bl, ioc[p->bdev], - cct->_conf->bluefs_buffered_io); + int r; + if (!cct->_conf->bluefs_check_for_zeros) { + r = bdev[p->bdev]->read(p->offset + x_off, l, &buf->bl, ioc[p->bdev], + cct->_conf->bluefs_buffered_io); + } else { + r = read(p->bdev, p->offset + x_off, l, &buf->bl, ioc[p->bdev], + cct->_conf->bluefs_buffered_io); + } ceph_assert(r == 0); } u_lock.unlock(); @@ -1670,7 +1857,7 @@ dout(20) << __func__ << " left 0x" << std::hex << left << " len 0x" << len << std::dec << dendl; - int r = std::min(len, left); + int64_t r = std::min(len, left); if (outbl) { bufferlist t; t.substr_of(buf->bl, off - buf->bl_off, r); @@ -1694,7 +1881,6 @@ ret += r; buf->pos += r; } - dout(20) << __func__ << " got " << ret << dendl; ceph_assert(!outbl || (int)outbl->length() == ret); --h->file->num_reading; @@ -1737,11 +1923,13 @@ void BlueFS::compact_log() { - std::unique_lock l(lock); - if (cct->_conf->bluefs_compact_log_sync) { - _compact_log_sync(); - } else { - _compact_log_async(l); + std::unique_lock l(lock); + if (!cct->_conf->bluefs_replay_recovery_disable_compact) { + if (cct->_conf->bluefs_compact_log_sync) { + _compact_log_sync(); + } else { + _compact_log_async(l); + } } } @@ -2008,7 +2196,6 @@ flush_bdev(); // FIXME? _flush_and_sync_log(l, 0, old_log_jump_to); - vselector->sub_usage(log_file->vselector_hint, log_file->fnode); // 2. prepare compacted log bluefs_transaction_t t; @@ -2084,6 +2271,8 @@ ++from; } + vselector->sub_usage(log_file->vselector_hint, log_file->fnode); + // clear the extents from old log file, they are added to new log log_file->fnode.clear_extents(); // swap the log files. New log file is the log file now. @@ -2182,6 +2371,7 @@ // allocate some more space (before we run out)? int64_t runway = log_writer->file->fnode.get_allocated() - log_writer->get_effective_write_pos(); + bool just_expanded_log = false; if (runway < (int64_t)cct->_conf->bluefs_min_log_runway) { dout(10) << __func__ << " allocating more log runway (0x" << std::hex << runway << std::dec << " remaining)" << dendl; @@ -2197,6 +2387,7 @@ ceph_assert(r == 0); vselector->add_usage(log_writer->file->vselector_hint, log_writer->file->fnode); log_t.op_file_update(log_writer->file->fnode); + just_expanded_log = true; } bufferlist bl; @@ -2209,6 +2400,10 @@ logger->inc(l_bluefs_logged_bytes, bl.length()); + if (just_expanded_log) { + ceph_assert(bl.length() <= runway); // if we write this, we will have an unrecoverable data loss + } + log_writer->append(bl); log_t.clear(); @@ -2520,11 +2715,24 @@ } #endif -int BlueFS::_flush(FileWriter *h, bool force) +int BlueFS::_flush(FileWriter *h, bool force, std::unique_lock& l) +{ + bool flushed = false; + int r = _flush(h, force, &flushed); + if (r == 0 && flushed) { + _maybe_compact_log(l); + } + return r; +} + +int BlueFS::_flush(FileWriter *h, bool force, bool *flushed) { h->buffer_appender.flush(); uint64_t length = h->buffer.length(); uint64_t offset = h->pos; + if (flushed) { + *flushed = false; + } if (!force && length < cct->_conf->bluefs_min_flush_size) { dout(10) << __func__ << " " << h << " ignoring, length " << length @@ -2541,7 +2749,11 @@ << std::hex << offset << "~" << length << std::dec << " to " << h->file->fnode << dendl; ceph_assert(h->pos <= h->file->fnode.size); - return _flush_range(h, offset, length); + int r = _flush_range(h, offset, length); + if (flushed) { + *flushed = true; + } + return r; } int BlueFS::_truncate(FileWriter *h, uint64_t offset) @@ -2829,7 +3041,15 @@ dout(10) << __func__ << " done in " << (ceph_clock_now() - start) << dendl; } - if (!avoid_compact && _should_compact_log()) { + if (!avoid_compact) { + _maybe_compact_log(l); + } +} + +void BlueFS::_maybe_compact_log(std::unique_lock& l) +{ + if (!cct->_conf->bluefs_replay_recovery_disable_compact && + _should_compact_log()) { if (cct->_conf->bluefs_compact_log_sync) { _compact_log_sync(); } else { @@ -2938,6 +3158,7 @@ void BlueFS::_close_writer(FileWriter *h) { dout(10) << __func__ << " " << h << " type " << h->writer_type << dendl; + h->buffer.reassign_to_mempool(mempool::mempool_bluefs_file_writer); for (unsigned i=0; iiocv[i]) { @@ -3214,6 +3435,191 @@ return bdev[BDEV_SLOW]->is_rotational(); } +/* + Algorithm. + do_replay_recovery_read is used when bluefs log abruptly ends, but it seems that more data should be there. + Idea is to search disk for definiton of extents that will be accompanied with bluefs log in future, + and try if using it will produce healthy bluefs transaction. + We encode already known bluefs log extents and search disk for these bytes. + When we find it, we decode following bytes as extent. + We read that whole extent and then check if merged with existing log part gives a proper bluefs transaction. + */ +int BlueFS::do_replay_recovery_read(FileReader *log_reader, + size_t replay_pos, + size_t read_offset, + size_t read_len, + bufferlist* bl) { + dout(1) << __func__ << " replay_pos=0x" << std::hex << replay_pos << + " needs 0x" << read_offset << "~" << read_len << std::dec << dendl; + + bluefs_fnode_t& log_fnode = log_reader->file->fnode; + bufferlist bin_extents; + encode(log_fnode.extents, bin_extents); + dout(2) << __func__ << " log file encoded extents length = " << bin_extents.length() << dendl; + + // cannot process if too small to effectively search + ceph_assert(bin_extents.length() >= 32); + bufferlist last_32; + last_32.substr_of(bin_extents, bin_extents.length() - 32, 32); + + //read fixed part from replay_pos to end of bluefs_log extents + bufferlist fixed; + uint64_t e_off = 0; + auto e = log_fnode.seek(replay_pos, &e_off); + ceph_assert(e != log_fnode.extents.end()); + int r = bdev[e->bdev]->read(e->offset + e_off, e->length - e_off, &fixed, ioc[e->bdev], + cct->_conf->bluefs_buffered_io); + ceph_assert(r == 0); + //capture dev of last good extent + uint8_t last_e_dev = e->bdev; + uint64_t last_e_off = e->offset; + ++e; + while (e != log_fnode.extents.end()) { + r = bdev[e->bdev]->read(e->offset, e->length, &fixed, ioc[e->bdev], + cct->_conf->bluefs_buffered_io); + ceph_assert(r == 0); + last_e_dev = e->bdev; + ++e; + } + ceph_assert(replay_pos + fixed.length() == read_offset); + + dout(2) << __func__ << " valid data in log = " << fixed.length() << dendl; + + struct compare { + bool operator()(const bluefs_extent_t& a, const bluefs_extent_t& b) const { + if (a.bdev < b.bdev) return true; + if (a.offset < b.offset) return true; + return a.length < b.length; + } + }; + std::set extents_rejected; + for (int dcnt = 0; dcnt < 3; dcnt++) { + uint8_t dev = (last_e_dev + dcnt) % MAX_BDEV; + if (bdev[dev] == nullptr) continue; + dout(2) << __func__ << " processing " << get_device_name(dev) << dendl; + interval_set disk_regions; + disk_regions.insert(0, bdev[dev]->get_size()); + for (auto f : file_map) { + auto& e = f.second->fnode.extents; + for (auto& p : e) { + if (p.bdev == dev) { + disk_regions.erase(p.offset, p.length); + } + } + } + size_t disk_regions_count = disk_regions.num_intervals(); + dout(5) << __func__ << " " << disk_regions_count << " regions to scan on " << get_device_name(dev) << dendl; + + auto reg = disk_regions.lower_bound(last_e_off); + //for all except first, start from beginning + last_e_off = 0; + if (reg == disk_regions.end()) { + reg = disk_regions.begin(); + } + const uint64_t chunk_size = 4 * 1024 * 1024; + const uint64_t page_size = 4096; + const uint64_t max_extent_size = 16; + uint64_t overlay_size = last_32.length() + max_extent_size; + for (size_t i = 0; i < disk_regions_count; reg++, i++) { + if (reg == disk_regions.end()) { + reg = disk_regions.begin(); + } + uint64_t pos = reg.get_start(); + uint64_t len = reg.get_len(); + + std::unique_ptr raw_data_p{new char[page_size + chunk_size]}; + char* raw_data = raw_data_p.get(); + memset(raw_data, 0, page_size); + + while (len > last_32.length()) { + uint64_t chunk_len = len > chunk_size ? chunk_size : len; + dout(5) << __func__ << " read " + << get_device_name(dev) << ":0x" << std::hex << pos << "+" << chunk_len << std::dec << dendl; + r = bdev[dev]->read_random(pos, chunk_len, raw_data + page_size, cct->_conf->bluefs_buffered_io); + ceph_assert(r == 0); + + //search for fixed_last_32 + char* chunk_b = raw_data + page_size; + char* chunk_e = chunk_b + chunk_len; + + char* search_b = chunk_b - overlay_size; + char* search_e = chunk_e; + + for (char* sp = search_b; ; sp += last_32.length()) { + sp = (char*)memmem(sp, search_e - sp, last_32.c_str(), last_32.length()); + if (sp == nullptr) { + break; + } + + char* n = sp + last_32.length(); + dout(5) << __func__ << " checking location 0x" << std::hex << pos + (n - chunk_b) << std::dec << dendl; + bufferlist test; + test.append(n, std::min(max_extent_size, chunk_e - n)); + bluefs_extent_t ne; + try { + bufferlist::const_iterator p = test.begin(); + decode(ne, p); + } catch (buffer::error& e) { + continue; + } + if (extents_rejected.count(ne) != 0) { + dout(5) << __func__ << " extent " << ne << " already refected" <= MAX_BDEV || + bdev[ne.bdev] == nullptr || + ne.length > 16 * 1024 * 1024 || + (ne.length & 4095) != 0 || + ne.offset + ne.length > bdev[ne.bdev]->get_size() || + (ne.offset & 4095) != 0) { + dout(5) << __func__ << " refusing extent " << ne << dendl; + continue; + } + dout(5) << __func__ << " checking extent " << ne << dendl; + + //read candidate extent - whole + bufferlist candidate; + candidate.append(fixed); + r = bdev[ne.bdev]->read(ne.offset, ne.length, &candidate, ioc[ne.bdev], + cct->_conf->bluefs_buffered_io); + ceph_assert(r == 0); + + //check if transaction & crc is ok + bluefs_transaction_t t; + try { + bufferlist::const_iterator p = candidate.begin(); + decode(t, p); + } + catch (buffer::error& e) { + dout(5) << __func__ << " failed match" << dendl; + continue; + } + + //success, it seems a probable candidate + uint64_t l = std::min(ne.length, read_len); + //trim to required size + bufferlist requested_read; + requested_read.substr_of(candidate, fixed.length(), l); + bl->append(requested_read); + dout(5) << __func__ << " successful extension of log " << l << "/" << read_len << dendl; + log_fnode.append_extent(ne); + log_fnode.recalc_allocated(); + log_reader->buf.pos += l; + return l; + } + //save overlay for next search + memcpy(search_b, chunk_e - overlay_size, overlay_size); + pos += chunk_len; + len -= chunk_len; + } + } + } + return 0; +} + // =============================================== // OriginalVolumeSelector diff -Nru ceph-14.2.11/src/os/bluestore/BlueFS.h ceph-14.2.18/src/os/bluestore/BlueFS.h --- ceph-14.2.11/src/os/bluestore/BlueFS.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/BlueFS.h 2021-03-15 17:46:20.000000000 +0000 @@ -5,6 +5,7 @@ #include #include +#include #include "bluefs_types.h" #include "common/RefCountedObj.h" @@ -49,6 +50,8 @@ l_bluefs_read_bytes, l_bluefs_read_prefetch_count, l_bluefs_read_prefetch_bytes, + l_bluefs_read_zeros_candidate, + l_bluefs_read_zeros_errors, l_bluefs_last, }; @@ -208,11 +211,15 @@ // to use buffer_appender exclusively here (e.g., it's notion of // offset will remain accurate). void append(const char *buf, size_t len) { + uint64_t l0 = buffer.length(); + ceph_assert(l0 + len <= std::numeric_limits::max()); buffer_appender.append(buf, len); } // note: used internally only, for ino 1 or 0. - void append(bufferlist& bl) { + void append(ceph::buffer::list& bl) { + uint64_t l0 = buffer.length(); + ceph_assert(l0 + bl.length() <= std::numeric_limits::max()); buffer.claim_append(bl); } @@ -338,6 +345,8 @@ class SocketHook; SocketHook* asok_hook = nullptr; + // used to trigger zeros into read (debug / verify) + std::atomic inject_read_zeros{0}; void _init_logger(); void _shutdown_logger(); @@ -362,7 +371,8 @@ PExtentVector* extents); int _flush_range(FileWriter *h, uint64_t offset, uint64_t length); - int _flush(FileWriter *h, bool force); + int _flush(FileWriter *h, bool focce, std::unique_lock& l); + int _flush(FileWriter *h, bool force, bool *flushed = nullptr); int _fsync(FileWriter *h, std::unique_lock& l); #ifdef HAVE_LIBAIO @@ -402,14 +412,14 @@ int _preallocate(FileRef f, uint64_t off, uint64_t len); int _truncate(FileWriter *h, uint64_t off); - int _read( + int64_t _read( FileReader *h, ///< [in] read from here FileReaderBuffer *buf, ///< [in] reader state uint64_t offset, ///< [in] offset size_t len, ///< [in] this many bytes bufferlist *outbl, ///< [out] optional: reference the result here char *out); ///< [out] optional: or copy it here - int _read_random( + int64_t _read_random( FileReader *h, ///< [in] read from here uint64_t offset, ///< [in] offset size_t len, ///< [in] this many bytes @@ -513,6 +523,8 @@ /// sync any uncommitted state to disk void sync_metadata(bool avoid_compact); + /// test and compact log, if necessary + void _maybe_compact_log(std::unique_lock& l); void set_slow_device_expander(BlueFSDeviceExpander* a) { slow_dev_expander = a; @@ -549,9 +561,31 @@ // handler for discard event void handle_discard(unsigned dev, interval_set& to_release); - void flush(FileWriter *h) { - std::lock_guard l(lock); - _flush(h, false); + void flush(FileWriter *h, bool force = false) { + std::unique_lock l(lock); + int r = _flush(h, force, l); + ceph_assert(r == 0); + } + + void append_try_flush(FileWriter *h, const char* buf, size_t len) { + size_t max_size = 1ull << 30; // cap to 1GB + while (len > 0) { + bool need_flush = true; + auto l0 = h->buffer.length(); + if (l0 < max_size) { + size_t l = std::min(len, max_size - l0); + h->append(buf, l); + buf += l; + len -= l; + need_flush = h->buffer.length() >= cct->_conf->bluefs_min_flush_size; + } + if (need_flush) { + flush(h, true); + // make sure we've made any progress with flush hence the + // loop doesn't iterate forever + ceph_assert(h->buffer.length() < max_size); + } + } } void flush_range(FileWriter *h, uint64_t offset, uint64_t length) { std::lock_guard l(lock); @@ -559,16 +593,18 @@ } int fsync(FileWriter *h) { std::unique_lock l(lock); - return _fsync(h, l); + int r = _fsync(h, l); + _maybe_compact_log(l); + return r; } - int read(FileReader *h, FileReaderBuffer *buf, uint64_t offset, size_t len, + int64_t read(FileReader *h, FileReaderBuffer *buf, uint64_t offset, size_t len, bufferlist *outbl, char *out) { // no need to hold the global lock here; we only touch h and // h->file, and read vs write or delete is already protected (via // atomics and asserts). return _read(h, buf, offset, len, outbl, out); } - int read_random(FileReader *h, uint64_t offset, size_t len, + int64_t read_random(FileReader *h, uint64_t offset, size_t len, char *out) { // no need to hold the global lock here; we only touch h and // h->file, and read vs write or delete is already protected (via @@ -587,11 +623,23 @@ std::lock_guard l(lock); return _truncate(h, offset); } + int do_replay_recovery_read(FileReader *log, + size_t log_pos, + size_t read_offset, + size_t read_len, + bufferlist* bl); /// test purpose methods const PerfCounters* get_perf_counters() const { return logger; } + +private: + // Wrappers for BlockDevice::read(...) and BlockDevice::read_random(...) + // They are used for checking if read values are all 0, and reread if so. + int read(uint8_t ndev, uint64_t off, uint64_t len, + ceph::buffer::list *pbl, IOContext *ioc, bool buffered); + int read_random(uint8_t ndev, uint64_t off, uint64_t len, char *buf, bool buffered); }; class OriginalVolumeSelector : public BlueFSVolumeSelector { diff -Nru ceph-14.2.11/src/os/bluestore/BlueRocksEnv.cc ceph-14.2.18/src/os/bluestore/BlueRocksEnv.cc --- ceph-14.2.11/src/os/bluestore/BlueRocksEnv.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/BlueRocksEnv.cc 2021-03-15 17:46:20.000000000 +0000 @@ -47,7 +47,7 @@ // // REQUIRES: External synchronization rocksdb::Status Read(size_t n, rocksdb::Slice* result, char* scratch) override { - int r = fs->read(h, &h->buf, h->buf.pos, n, NULL, scratch); + int64_t r = fs->read(h, &h->buf, h->buf.pos, n, NULL, scratch); ceph_assert(r >= 0); *result = rocksdb::Slice(scratch, r); return rocksdb::Status::OK(); @@ -95,7 +95,7 @@ // Safe for concurrent use by multiple threads. rocksdb::Status Read(uint64_t offset, size_t n, rocksdb::Slice* result, char* scratch) const override { - int r = fs->read_random(h, offset, n, scratch); + int64_t r = fs->read_random(h, offset, n, scratch); ceph_assert(r >= 0); *result = rocksdb::Slice(scratch, r); return rocksdb::Status::OK(); @@ -171,7 +171,7 @@ }*/ rocksdb::Status Append(const rocksdb::Slice& data) override { - h->append(data.data(), data.size()); + fs->append_try_flush(h, data.data(), data.size()); return rocksdb::Status::OK(); } diff -Nru ceph-14.2.11/src/os/bluestore/BlueStore.cc ceph-14.2.18/src/os/bluestore/BlueStore.cc --- ceph-14.2.11/src/os/bluestore/BlueStore.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/BlueStore.cc 2021-03-15 17:46:20.000000000 +0000 @@ -54,13 +54,13 @@ // bluestore_cache_other MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::Buffer, bluestore_buffer, - bluestore_cache_other); + bluestore_Buffer); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::Extent, bluestore_extent, - bluestore_cache_other); + bluestore_Extent); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::Blob, bluestore_blob, - bluestore_cache_other); + bluestore_Blob); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::SharedBlob, bluestore_shared_blob, - bluestore_cache_other); + bluestore_SharedBlob); // bluestore_txc MEMPOOL_DEFINE_OBJECT_FACTORY(BlueStore::TransContext, bluestore_transcontext, @@ -144,6 +144,11 @@ * We use ! as a terminator for strings; this works because it is < # * and will get escaped if it is present in the string. * + * NOTE: There is a bug in this implementation: due to implicit + * character type conversion in comparison it may produce unexpected + * ordering. Unfortunately fixing the bug would mean invalidating the + * keys in existing deployments. Instead we do additional sorting + * where it is needed. */ template static void append_escaped(const string &in, S *out) @@ -151,11 +156,11 @@ char hexbyte[in.length() * 3 + 1]; char* ptr = &hexbyte[0]; for (string::const_iterator i = in.begin(); i != in.end(); ++i) { - if (*i <= '#') { + if (*i <= '#') { // bug: unexpected result for *i > 0x7f *ptr++ = '#'; *ptr++ = "0123456789abcdef"[(*i >> 4) & 0x0f]; *ptr++ = "0123456789abcdef"[*i & 0x0f]; - } else if (*i >= '~') { + } else if (*i >= '~') { // bug: unexpected result for *i > 0x7f *ptr++ = '~'; *ptr++ = "0123456789abcdef"[(*i >> 4) & 0x0f]; *ptr++ = "0123456789abcdef"[*i & 0x0f]; @@ -277,47 +282,48 @@ return key + 1; } -static void get_coll_key_range(const coll_t& cid, int bits, - string *temp_start, string *temp_end, - string *start, string *end) -{ - temp_start->clear(); - temp_end->clear(); - start->clear(); - end->clear(); - +static void get_coll_range(const coll_t& cid, int bits, + ghobject_t *temp_start, ghobject_t *temp_end, + ghobject_t *start, ghobject_t *end) +{ spg_t pgid; if (cid.is_pg(&pgid)) { - _key_encode_shard(pgid.shard, start); + start->shard_id = pgid.shard; *temp_start = *start; - _key_encode_u64(pgid.pool() + 0x8000000000000000ull, start); - _key_encode_u64((-2ll - pgid.pool()) + 0x8000000000000000ull, temp_start); + start->hobj.pool = pgid.pool(); + temp_start->hobj.pool = -2ll - pgid.pool(); *end = *start; *temp_end = *temp_start; uint32_t reverse_hash = hobject_t::_reverse_bits(pgid.ps()); - _key_encode_u32(reverse_hash, start); - _key_encode_u32(reverse_hash, temp_start); + start->hobj.set_bitwise_key_u32(reverse_hash); + temp_start->hobj.set_bitwise_key_u32(reverse_hash); uint64_t end_hash = reverse_hash + (1ull << (32 - bits)); if (end_hash > 0xffffffffull) end_hash = 0xffffffffull; - _key_encode_u32(end_hash, end); - _key_encode_u32(end_hash, temp_end); + end->hobj.set_bitwise_key_u32(end_hash); + temp_end->hobj.set_bitwise_key_u32(end_hash); } else { - _key_encode_shard(shard_id_t::NO_SHARD, start); - _key_encode_u64(-1ull + 0x8000000000000000ull, start); + start->shard_id = shard_id_t::NO_SHARD; + start->hobj.pool = -1ull; + *end = *start; - _key_encode_u32(0, start); - _key_encode_u32(0xffffffff, end); + start->hobj.set_bitwise_key_u32(0); + end->hobj.set_bitwise_key_u32(0xffffffff); // no separate temp section *temp_start = *end; *temp_end = *end; } + + start->generation = 0; + end->generation = 0; + temp_start->generation = 0; + temp_end->generation = 0; } static void get_shared_blob_key(uint64_t sbid, string *key) @@ -336,13 +342,15 @@ } template -static int get_key_object(const S& key, ghobject_t *oid) +static void _key_encode_prefix(const ghobject_t& oid, S *key) { - int r; - const char *p = key.c_str(); + _key_encode_shard(oid.shard_id, key); + _key_encode_u64(oid.hobj.pool + 0x8000000000000000ull, key); + _key_encode_u32(oid.hobj.get_bitwise_key_u32(), key); +} - if (key.length() < 1 + 8 + 4) - return -1; +static const char *_key_decode_prefix(const char *p, ghobject_t *oid) +{ p = _key_decode_shard(p, &oid->shard_id); uint64_t pool; @@ -354,6 +362,25 @@ oid->hobj.set_bitwise_key_u32(hash); + return p; +} + +#define ENCODED_KEY_PREFIX_LEN (1 + 8 + 4) + +template +static int get_key_object(const S& key, ghobject_t *oid) +{ + int r; + const char *p = key.c_str(); + + if (key.length() < ENCODED_KEY_PREFIX_LEN) + return -1; + + p = _key_decode_prefix(p, oid); + + if (key.length() == ENCODED_KEY_PREFIX_LEN) + return -2; + r = decode_escaped(p, &oid->hobj.nspace); if (r < 0) return -2; @@ -402,7 +429,7 @@ { key->clear(); - size_t max_len = 1 + 8 + 4 + + size_t max_len = ENCODED_KEY_PREFIX_LEN + (oid.hobj.nspace.length() * 3 + 1) + (oid.hobj.get_key().length() * 3 + 1) + 1 + // for '<', '=', or '>' @@ -410,9 +437,7 @@ 8 + 8 + 1; key->reserve(max_len); - _key_encode_shard(oid.shard_id, key); - _key_encode_u64(oid.hobj.pool + 0x8000000000000000ull, key); - _key_encode_u32(oid.hobj.get_bitwise_key_u32(), key); + _key_encode_prefix(oid, key); append_escaped(oid.hobj.nspace, key); @@ -669,6 +694,226 @@ return out << ")"; } +namespace { + +/* + * Due to a bug in key string encoding (see a comment for append_escaped) + * the KeyValueDB iterator does not lexicographically sort the same + * way that ghobject_t does: objects with the same hash may have wrong order. + * + * This is the iterator wrapper that fixes the keys order. + */ + +class CollectionListIterator { +public: + CollectionListIterator(const KeyValueDB::Iterator &it) + : m_it(it) { + } + virtual ~CollectionListIterator() { + } + + virtual bool valid() const = 0; + virtual const ghobject_t &oid() const = 0; + virtual void lower_bound(const ghobject_t &oid) = 0; + virtual void upper_bound(const ghobject_t &oid) = 0; + virtual void next() = 0; + + virtual int cmp(const ghobject_t &oid) const = 0; + + bool is_ge(const ghobject_t &oid) const { + return cmp(oid) >= 0; + } + + bool is_lt(const ghobject_t &oid) const { + return cmp(oid) < 0; + } + +protected: + KeyValueDB::Iterator m_it; +}; + +class SimpleCollectionListIterator : public CollectionListIterator { +public: + SimpleCollectionListIterator(CephContext *cct, const KeyValueDB::Iterator &it) + : CollectionListIterator(it), m_cct(cct) { + } + + bool valid() const override { + return m_it->valid(); + } + + const ghobject_t &oid() const override { + ceph_assert(valid()); + + return m_oid; + } + + void lower_bound(const ghobject_t &oid) override { + string key; + get_object_key(m_cct, oid, &key); + + m_it->lower_bound(key); + get_oid(); + } + + void upper_bound(const ghobject_t &oid) override { + string key; + get_object_key(m_cct, oid, &key); + + m_it->upper_bound(key); + get_oid(); + } + + void next() override { + ceph_assert(valid()); + + m_it->next(); + get_oid(); + } + + int cmp(const ghobject_t &oid) const override { + ceph_assert(valid()); + + string key; + get_object_key(m_cct, oid, &key); + + return m_it->key().compare(key); + } + +private: + CephContext *m_cct; + ghobject_t m_oid; + + void get_oid() { + if (!valid()) { + return; + } + + if (is_extent_shard_key(m_it->key())) { + next(); + return; + } + + m_oid = ghobject_t(); + int r = get_key_object(m_it->key(), &m_oid); + ceph_assert(r == 0); + } +}; + +class SortedCollectionListIterator : public CollectionListIterator { +public: + SortedCollectionListIterator(const KeyValueDB::Iterator &it) + : CollectionListIterator(it), m_chunk_iter(m_chunk.end()) { + } + + bool valid() const override { + return m_chunk_iter != m_chunk.end(); + } + + const ghobject_t &oid() const override { + ceph_assert(valid()); + + return m_chunk_iter->first; + } + + void lower_bound(const ghobject_t &oid) override { + std::string key; + _key_encode_prefix(oid, &key); + + m_it->lower_bound(key); + m_chunk_iter = m_chunk.end(); + if (!get_next_chunk()) { + return; + } + + if (this->oid().shard_id != oid.shard_id || + this->oid().hobj.pool != oid.hobj.pool || + this->oid().hobj.get_bitwise_key_u32() != oid.hobj.get_bitwise_key_u32()) { + return; + } + + m_chunk_iter = m_chunk.lower_bound(oid); + if (m_chunk_iter == m_chunk.end()) { + get_next_chunk(); + } + } + + void upper_bound(const ghobject_t &oid) override { + lower_bound(oid); + + if (valid() && this->oid() == oid) { + next(); + } + } + + void next() override { + ceph_assert(valid()); + + m_chunk_iter++; + if (m_chunk_iter == m_chunk.end()) { + get_next_chunk(); + } + } + + int cmp(const ghobject_t &oid) const override { + ceph_assert(valid()); + + if (this->oid() < oid) { + return -1; + } + if (this->oid() > oid) { + return 1; + } + return 0; + } + +private: + std::map m_chunk; + std::map::iterator m_chunk_iter; + + bool get_next_chunk() { + while (m_it->valid() && is_extent_shard_key(m_it->key())) { + m_it->next(); + } + + if (!m_it->valid()) { + return false; + } + + ghobject_t oid; + int r = get_key_object(m_it->key(), &oid); + ceph_assert(r == 0); + + m_chunk.clear(); + while (true) { + m_chunk.insert({oid, m_it->key()}); + + do { + m_it->next(); + } while (m_it->valid() && is_extent_shard_key(m_it->key())); + + if (!m_it->valid()) { + break; + } + + ghobject_t next; + r = get_key_object(m_it->key(), &next); + ceph_assert(r == 0); + if (next.shard_id != oid.shard_id || + next.hobj.pool != oid.hobj.pool || + next.hobj.get_bitwise_key_u32() != oid.hobj.get_bitwise_key_u32()) { + break; + } + oid = next; + } + + m_chunk_iter = m_chunk.begin(); + return true; + } +}; + +} // anonymous namespace + // Garbage Collector void BlueStore::GarbageCollector::process_protrusive_extents( @@ -925,12 +1170,14 @@ } // onodes - if (onode_max >= onode_lru.size()) { + if (onode_max >= onode_lru.size() || + last_pinned == onode_lru.begin()) { return; // don't even try } uint64_t num = onode_lru.size() - onode_max; - auto p = onode_lru.end(); + auto p = last_pinned; + last_pinned = onode_lru.end(); ceph_assert(p != onode_lru.begin()); --p; int skipped = 0; @@ -942,8 +1189,9 @@ dout(20) << __func__ << " " << o->oid << " has " << refs << " refs, skipping" << dendl; if (++skipped >= max_skipped) { - dout(20) << __func__ << " maximum skip pinned reached; stopping with " + dout(15) << __func__ << " maximum skip pinned reached; stopping with " << num << " left to trim" << dendl; + last_pinned = p; break; } @@ -957,10 +1205,11 @@ } dout(30) << __func__ << " rm " << o->oid << dendl; if (p != onode_lru.begin()) { - onode_lru.erase(p--); + _onode_lru_erase(p--); } else { - onode_lru.erase(p); - ceph_assert(num == 1); + _onode_lru_erase(p); + num = 1; // fake num to end the loop + // in we might still have some pinned onodes } o->get(); // paranoia o->c->onode_map.remove(o->oid); @@ -998,7 +1247,7 @@ void BlueStore::TwoQCache::_touch_onode(OnodeRef& o) { auto p = onode_lru.iterator_to(*o); - onode_lru.erase(p); + _onode_lru_erase(p); onode_lru.push_front(*o); } @@ -1222,12 +1471,14 @@ } // onodes - if (onode_max >= onode_lru.size()) { + if (onode_max >= onode_lru.size() || + last_pinned == onode_lru.begin()) { return; // don't even try } uint64_t num = onode_lru.size() - onode_max; - auto p = onode_lru.end(); + auto p = last_pinned; + last_pinned = onode_lru.end(); ceph_assert(p != onode_lru.begin()); --p; int skipped = 0; @@ -1240,8 +1491,9 @@ dout(20) << __func__ << " " << o->oid << " has " << refs << " refs; skipping" << dendl; if (++skipped >= max_skipped) { - dout(20) << __func__ << " maximum skip pinned reached; stopping with " + dout(15) << __func__ << " maximum skip pinned reached; stopping with " << num << " left to trim" << dendl; + last_pinned = p; break; } @@ -1255,10 +1507,11 @@ } dout(30) << __func__ << " " << o->oid << " num=" << num <<" lru size="<get(); // paranoia o->c->onode_map.remove(o->oid); @@ -1621,7 +1874,7 @@ OnodeRef& oldo, const ghobject_t& old_oid, const ghobject_t& new_oid, - const mempool::bluestore_cache_other::string& new_okey) + const mempool::bluestore_cache_meta::string& new_okey) { std::lock_guard l(cache->lock); ldout(cache->cct, 30) << __func__ << " " << old_oid << " -> " << new_oid @@ -2034,7 +2287,7 @@ BlobRef& b) { OldExtent* oe = new OldExtent(lo, o, l, b); b->put_ref(c.get(), o, l, &(oe->r)); - oe->blob_empty = b->get_referenced_bytes() == 0; + oe->blob_empty = !b->is_referenced(); return oe; } @@ -2164,7 +2417,7 @@ unsigned n; // we need to encode inline_bl to measure encoded length bool never_happen = encode_some(0, OBJECT_MAX_SIZE, inline_bl, &n); - inline_bl.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + inline_bl.reassign_to_mempool(mempool::mempool_bluestore_inline_bl); ceph_assert(!never_happen); size_t len = inline_bl.length(); dout(20) << __func__ << " inline shard " << len << " bytes from " << n @@ -2483,6 +2736,14 @@ shard_end = sp->offset; } Extent dummy(needs_reshard_begin); + + bool was_too_many_blobs_check = false; + auto too_many_blobs_threshold = + g_conf()->bluestore_debug_too_many_blobs_threshold; + auto& dumped_onodes = onode->c->cache->dumped_onodes; + decltype(onode->c->cache->dumped_onodes)::value_type* oid_slot = nullptr; + decltype(onode->c->cache->dumped_onodes)::value_type* oldest_slot = nullptr; + for (auto e = extent_map.lower_bound(dummy); e != extent_map.end(); ++e) { if (e->logical_offset >= needs_reshard_end) { break; @@ -2500,6 +2761,7 @@ dout(30) << __func__ << " shard 0x" << std::hex << shard_start << " to 0x" << shard_end << std::dec << dendl; } + if (e->blob_escapes_range(shard_start, shard_end - shard_start)) { if (!e->blob->is_spanning()) { // We have two options: (1) split the blob into pieces at the @@ -2539,6 +2801,22 @@ b->id = bid; spanning_blob_map[b->id] = b; dout(20) << __func__ << " adding spanning " << *b << dendl; + if (!was_too_many_blobs_check && + too_many_blobs_threshold && + spanning_blob_map.size() >= size_t(too_many_blobs_threshold)) { + + was_too_many_blobs_check = true; + for (size_t i = 0; i < dumped_onodes.size(); ++i) { + if (dumped_onodes[i].first == onode->oid) { + oid_slot = &dumped_onodes[i]; + break; + } + if (!oldest_slot || (oldest_slot && + dumped_onodes[i].second < oldest_slot->second)) { + oldest_slot = &dumped_onodes[i]; + } + } + } } } } else { @@ -2549,6 +2827,23 @@ } } } + bool do_dump = (!oid_slot && was_too_many_blobs_check) || + (oid_slot && + (mono_clock::now() - oid_slot->second >= make_timespan(5 * 60))); + if (do_dump) { + dout(0) << __func__ + << " spanning blob count exceeds threshold, " + << spanning_blob_map.size() << " spanning blobs" + << dendl; + _dump_onode<0>(cct, *onode); + if (oid_slot) { + oid_slot->second = mono_clock::now(); + } else { + ceph_assert(oldest_slot); + oldest_slot->first = onode->oid; + oldest_slot->second = mono_clock::now(); + } + } } clear_needs_reshard(); @@ -3145,7 +3440,7 @@ auto p = v.front().begin_deep(); on->onode.decode(p); for (auto& i : on->onode.attrs) { - i.second.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + i.second.reassign_to_mempool(mempool::mempool_bluestore_cache_meta); } // initialize extent_map @@ -3154,7 +3449,7 @@ denc(on->extent_map.inline_bl, p); on->extent_map.decode_some(on->extent_map.inline_bl); on->extent_map.inline_bl.reassign_to_mempool( - mempool::mempool_bluestore_cache_other); + mempool::mempool_bluestore_cache_data); } else { on->extent_map.init_shards(false, false); @@ -3683,6 +3978,10 @@ (meta_alloc / (double) num_shards) / meta_cache->get_bytes_per_onode()); uint64_t max_shard_buffer = static_cast(data_alloc / num_shards); + auto debug_max_onodes = g_conf()->bluestore_debug_max_cached_onodes; + if (debug_max_onodes) { + max_shard_onodes = debug_max_onodes; + } ldout(cct, 30) << __func__ << " max_shard_onodes: " << max_shard_onodes << " max_shard_buffer: " << max_shard_buffer << dendl; @@ -4418,8 +4717,15 @@ "Average omap iterator lower_bound call latency"); b.add_time_avg(l_bluestore_omap_next_lat, "omap_next_lat", "Average omap iterator next call latency"); + b.add_time_avg(l_bluestore_omap_get_keys_lat, "omap_get_keys_lat", + "Average omap get_keys call latency"); + b.add_time_avg(l_bluestore_omap_get_values_lat, "omap_get_values_lat", + "Average omap get_values call latency"); b.add_time_avg(l_bluestore_clist_lat, "clist_lat", "Average collection listing latency"); + b.add_time_avg(l_bluestore_remove_lat, "remove_lat", + "Average removal latency"); + logger = b.create_perf_counters(); cct->get_perfcounters_collection()->add(logger); } @@ -7156,6 +7462,35 @@ *res_statfs); } } // for (auto& i : ref_map) + + { + auto &sbm = o->extent_map.spanning_blob_map; + size_t broken = 0; + BlobRef first_broken; + for (auto it = sbm.begin(); it != sbm.end();) { + auto it1 = it++; + if (ref_map.count(it1->second) == 0) { + if (!broken) { + first_broken = it1->second; + ++errors; + } + broken++; + if (repairer) { + sbm.erase(it1); + } + } + } + if (broken) { + derr << "fsck error: " << oid << " - " << broken + << " zombie spanning blob(s) found, the first one: " + << *first_broken << dendl; + if(repairer) { + auto txn = repairer->fix_spanning_blobs(db); + _record_onode(o, txn); + } + } + } + return o; } @@ -8548,6 +8883,30 @@ db->submit_transaction_sync(txn); } +void BlueStore::inject_zombie_spanning_blob(coll_t cid, ghobject_t oid, + int16_t blob_id) +{ + OnodeRef o; + CollectionRef c = _get_collection(cid); + ceph_assert(c); + { + RWLock::WLocker l(c->lock); // just to avoid internal asserts + o = c->get_onode(oid, false); + ceph_assert(o); + o->extent_map.fault_range(db, 0, OBJECT_MAX_SIZE); + } + + BlobRef b = c->new_blob(); + b->id = blob_id; + o->extent_map.spanning_blob_map[blob_id] = b; + + KeyValueDB::Transaction txn; + txn = db->get_transaction(); + + _record_onode(o, txn); + db->submit_transaction_sync(txn); +} + void BlueStore::collect_metadata(map *pm) { dout(10) << __func__ << dendl; @@ -9593,7 +9952,7 @@ int r; { RWLock::RLocker l(c->lock); - mempool::bluestore_cache_other::string k(name); + mempool::bluestore_cache_meta::string k(name); OnodeRef o = c->get_onode(oid, false); if (!o || !o->exists) { @@ -9707,7 +10066,28 @@ int r; { RWLock::RLocker l(c->lock); - r = _collection_list(c, start, end, max, ls, pnext); + r = _collection_list(c, start, end, max, false, ls, pnext); + } + + dout(10) << __func__ << " " << c->cid + << " start " << start << " end " << end << " max " << max + << " = " << r << ", ls.size() = " << ls->size() + << ", next = " << (pnext ? *pnext : ghobject_t()) << dendl; + return r; +} + +int BlueStore::collection_list_legacy( + CollectionHandle &c_, const ghobject_t& start, const ghobject_t& end, int max, + vector *ls, ghobject_t *pnext) +{ + Collection *c = static_cast(c_.get()); + c->flush(); + dout(15) << __func__ << " " << c->cid + << " start " << start << " end " << end << " max " << max << dendl; + int r; + { + RWLock::RLocker l(c->lock); + r = _collection_list(c, start, end, max, true, ls, pnext); } dout(10) << __func__ << " " << c->cid @@ -9719,7 +10099,7 @@ int BlueStore::_collection_list( Collection *c, const ghobject_t& start, const ghobject_t& end, int max, - vector *ls, ghobject_t *pnext) + bool legacy, vector *ls, ghobject_t *pnext) { if (!c->exists) @@ -9728,11 +10108,11 @@ auto start_time = mono_clock::now(); int r = 0; ghobject_t static_next; - KeyValueDB::Iterator it; - string temp_start_key, temp_end_key; - string start_key, end_key; + std::unique_ptr it; + ghobject_t coll_range_temp_start, coll_range_temp_end; + ghobject_t coll_range_start, coll_range_end; bool set_next = false; - string pend; + ghobject_t pend; bool temp; if (!pnext) @@ -9741,84 +10121,88 @@ if (start.is_max() || start.hobj.is_max()) { goto out; } - get_coll_key_range(c->cid, c->cnode.bits, &temp_start_key, &temp_end_key, - &start_key, &end_key); + get_coll_range(c->cid, c->cnode.bits, &coll_range_temp_start, + &coll_range_temp_end, &coll_range_start, &coll_range_end); dout(20) << __func__ - << " range " << pretty_binary_string(temp_start_key) - << " to " << pretty_binary_string(temp_end_key) - << " and " << pretty_binary_string(start_key) - << " to " << pretty_binary_string(end_key) + << " range " << coll_range_temp_start + << " to " << coll_range_temp_end + << " and " << coll_range_start + << " to " << coll_range_end << " start " << start << dendl; - it = db->get_iterator(PREFIX_OBJ); + if (legacy) { + it = std::make_unique( + cct, db->get_iterator(PREFIX_OBJ)); + } else { + it = std::make_unique( + db->get_iterator(PREFIX_OBJ)); + } if (start == ghobject_t() || start.hobj == hobject_t() || start == c->cid.get_min_hobj()) { - it->upper_bound(temp_start_key); + it->upper_bound(coll_range_temp_start); temp = true; } else { - string k; - get_object_key(cct, start, &k); if (start.hobj.is_temp()) { temp = true; - ceph_assert(k >= temp_start_key && k < temp_end_key); + ceph_assert(start >= coll_range_temp_start && start < coll_range_temp_end); } else { temp = false; - ceph_assert(k >= start_key && k < end_key); + ceph_assert(start >= coll_range_start && start < coll_range_end); } - dout(20) << __func__ << " start from " << pretty_binary_string(k) - << " temp=" << (int)temp << dendl; - it->lower_bound(k); + dout(20) << __func__ << " temp=" << (int)temp << dendl; + it->lower_bound(start); } if (end.hobj.is_max()) { - pend = temp ? temp_end_key : end_key; + pend = temp ? coll_range_temp_end : coll_range_end; } else { - get_object_key(cct, end, &end_key); if (end.hobj.is_temp()) { if (temp) - pend = end_key; + pend = end; else - goto out; + goto out; } else { - pend = temp ? temp_end_key : end_key; + pend = temp ? coll_range_temp_end : end; } } - dout(20) << __func__ << " pend " << pretty_binary_string(pend) << dendl; + dout(20) << __func__ << " pend " << pend << dendl; while (true) { - if (!it->valid() || it->key() >= pend) { + if (!it->valid() || it->is_ge(pend)) { if (!it->valid()) dout(20) << __func__ << " iterator not valid (end of db?)" << dendl; else - dout(20) << __func__ << " key " << pretty_binary_string(it->key()) - << " >= " << end << dendl; + dout(20) << __func__ << " oid " << it->oid() << " >= " << pend << dendl; if (temp) { if (end.hobj.is_temp()) { + if (it->valid() && it->is_lt(coll_range_temp_end)) { + *pnext = it->oid(); + set_next = true; + } break; } dout(30) << __func__ << " switch to non-temp namespace" << dendl; temp = false; - it->upper_bound(start_key); - pend = end_key; - dout(30) << __func__ << " pend " << pretty_binary_string(pend) << dendl; + it->upper_bound(coll_range_start); + if (end.hobj.is_max()) + pend = coll_range_end; + else + pend = end; + dout(30) << __func__ << " pend " << pend << dendl; continue; } + if (it->valid() && it->is_lt(coll_range_end)) { + *pnext = it->oid(); + set_next = true; + } break; } - dout(30) << __func__ << " key " << pretty_binary_string(it->key()) << dendl; - if (is_extent_shard_key(it->key())) { - it->next(); - continue; - } - ghobject_t oid; - int r = get_key_object(it->key(), &oid); - ceph_assert(r == 0); - dout(20) << __func__ << " oid " << oid << " end " << end << dendl; + dout(20) << __func__ << " oid " << it->oid() << " end " << end << dendl; if (ls->size() >= (unsigned)max) { dout(20) << __func__ << " reached max " << max << dendl; - *pnext = oid; + *pnext = it->oid(); set_next = true; break; } - ls->push_back(oid); + ls->push_back(it->oid()); it->next(); } out: @@ -9941,6 +10325,7 @@ dout(15) << __func__ << " " << c->get_cid() << " oid " << oid << dendl; if (!c->exists) return -ENOENT; + auto start1 = mono_clock::now(); RWLock::RLocker l(c->lock); int r = 0; OnodeRef o = c->get_onode(oid, false); @@ -9973,6 +10358,12 @@ } } out: + c->store->log_latency( + __func__, + l_bluestore_omap_get_keys_lat, + mono_clock::now() - start1, + c->store->cct->_conf->bluestore_log_omap_iterator_age); + dout(10) << __func__ << " " << c->get_cid() << " oid " << oid << " = " << r << dendl; return r; @@ -9990,6 +10381,7 @@ if (!c->exists) return -ENOENT; RWLock::RLocker l(c->lock); + auto start1 = mono_clock::now(); int r = 0; string final_key; OnodeRef o = c->get_onode(oid, false); @@ -10017,6 +10409,12 @@ } } out: + c->store->log_latency( + __func__, + l_bluestore_omap_get_values_lat, + mono_clock::now() - start1, + c->store->cct->_conf->bluestore_log_omap_iterator_age); + dout(10) << __func__ << " " << c->get_cid() << " oid " << oid << " = " << r << dendl; return r; @@ -10962,7 +11360,25 @@ ceph_assert(!kv_sync_started); kv_sync_started = true; kv_cond.notify_all(); + + auto t0 = mono_clock::now(); + timespan twait = ceph::make_timespan(0); + size_t kv_submitted = 0; + while (true) { + auto period = cct->_conf->bluestore_kv_sync_util_logging_s; + auto observation_period = + ceph::make_timespan(period); + auto elapsed = mono_clock::now() - t0; + if (period && elapsed >= observation_period) { + dout(5) << __func__ << " utilization: idle " + << twait << " of " << elapsed + << ", submitted: " << kv_submitted + < kv_submitting; @@ -11066,6 +11485,7 @@ txc->log_state_latency(logger, l_bluestore_state_kv_queued_lat); int r = cct->_conf->bluestore_debug_omit_kv_commit ? 0 : db->submit_transaction(txc->t); ceph_assert(r == 0); + ++kv_submitted; txc->state = TransContext::STATE_KV_SUBMITTED; _txc_applied_kv(txc); --txc->osr->kv_committing_serially; @@ -12673,12 +13093,23 @@ if (wi.compressed) { final_length = wi.compressed_bl.length(); csum_length = final_length; + unsigned csum_order = ctz(csum_length); l = &wi.compressed_bl; dblob.set_compressed(wi.blob_length, wi.compressed_len); + if (csum != Checksummer::CSUM_NONE) { + dout(20) << __func__ << " initialize csum setting for compressed blob " << *b + << " csum_type " << Checksummer::get_csum_type_string(csum) + << " csum_order " << csum_order + << " csum_length 0x" << std::hex << csum_length + << " blob_length 0x" << wi.blob_length + << " compressed_length 0x" << wi.compressed_len << std::dec + << dendl; + dblob.init_csum(csum, csum_order, csum_length); + } } else if (wi.new_blob) { + unsigned csum_order; // initialize newly created blob only ceph_assert(dblob.is_mutable()); - unsigned csum_order; if (l->length() != wi.blob_length) { // hrm, maybe we could do better here, but let's not bother. dout(20) << __func__ << " forcing csum_order to block_size_order " @@ -13402,7 +13833,23 @@ dout(15) << __func__ << " " << c->cid << " " << o->oid << " onode " << o.get() << " txc "<< txc << dendl; + + auto start_time = mono_clock::now(); int r = _do_remove(txc, c, o); + log_latency_fn( + __func__, + l_bluestore_remove_lat, + mono_clock::now() - start_time, + cct->_conf->bluestore_log_op_age, + [&](const ceph::timespan& lat) { + ostringstream ostr; + ostr << ", lat = " << timespan_str(lat) + << " cid =" << c->cid + << " oid =" << o->oid; + return ostr.str(); + } + ); + dout(10) << __func__ << " " << c->cid << " " << o->oid << " = " << r << dendl; return r; } @@ -13420,10 +13867,10 @@ if (val.is_partial()) { auto& b = o->onode.attrs[name.c_str()] = bufferptr(val.c_str(), val.length()); - b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta); } else { auto& b = o->onode.attrs[name.c_str()] = val; - b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta); } txc->write_onode(o); dout(10) << __func__ << " " << c->cid << " " << o->oid @@ -13446,10 +13893,10 @@ if (p->second.is_partial()) { auto& b = o->onode.attrs[p->first.c_str()] = bufferptr(p->second.c_str(), p->second.length()); - b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta); } else { auto& b = o->onode.attrs[p->first.c_str()] = p->second; - b.reassign_to_mempool(mempool::mempool_bluestore_cache_other); + b.reassign_to_mempool(mempool::mempool_bluestore_cache_meta); } } txc->write_onode(o); @@ -13870,7 +14317,7 @@ << new_oid << dendl; int r; ghobject_t old_oid = oldo->oid; - mempool::bluestore_cache_other::string new_okey; + mempool::bluestore_cache_meta::string new_okey; if (newo) { if (newo->exists) { @@ -13984,7 +14431,7 @@ // then check if all of them are marked as non-existent. // Bypass the check if (next != ghobject_t::get_max()) r = _collection_list(c->get(), ghobject_t(), ghobject_t::get_max(), - nonexistent_count + 1, &ls, &next); + nonexistent_count + 1, false, &ls, &next); if (r >= 0) { // If true mean collecton has more objects than nonexistent_count, // so bypass check. @@ -14615,6 +15062,14 @@ ++to_repair_cnt; return true; } +KeyValueDB::Transaction BlueStoreRepairer::fix_spanning_blobs(KeyValueDB* db) +{ + if (!fix_onode_txn) { + fix_onode_txn = db->get_transaction(); + } + ++to_repair_cnt; + return fix_onode_txn; +} bool BlueStoreRepairer::preprocess_misreference(KeyValueDB *db) { @@ -14647,6 +15102,10 @@ db->submit_transaction_sync(fix_misreferences_txn); fix_misreferences_txn = nullptr; } + if (fix_onode_txn) { + db->submit_transaction_sync(fix_onode_txn); + fix_onode_txn = nullptr; + } if (fix_shared_blob_txn) { db->submit_transaction_sync(fix_shared_blob_txn); fix_shared_blob_txn = nullptr; diff -Nru ceph-14.2.11/src/os/bluestore/BlueStore.h ceph-14.2.18/src/os/bluestore/BlueStore.h --- ceph-14.2.11/src/os/bluestore/BlueStore.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/BlueStore.h 2021-03-15 17:46:20.000000000 +0000 @@ -129,7 +129,10 @@ l_bluestore_omap_upper_bound_lat, l_bluestore_omap_lower_bound_lat, l_bluestore_omap_next_lat, + l_bluestore_omap_get_keys_lat, + l_bluestore_omap_get_values_lat, l_bluestore_clist_lat, + l_bluestore_remove_lat, l_bluestore_last }; @@ -270,7 +273,7 @@ boost::intrusive::list_member_hook<>, &Buffer::state_item> > state_list_t; - mempool::bluestore_cache_other::map> + mempool::bluestore_cache_meta::map> buffer_map; // we use a bare intrusive list here instead of std::map because @@ -454,7 +457,7 @@ // we use a bare pointer because we don't want to affect the ref // count - mempool::bluestore_cache_other::unordered_map sb_map; + mempool::bluestore_cache_meta::unordered_map sb_map; SharedBlobRef lookup(uint64_t sbid) { std::lock_guard l(lock); @@ -668,7 +671,7 @@ #endif }; typedef boost::intrusive_ptr BlobRef; - typedef mempool::bluestore_cache_other::map blob_map_t; + typedef mempool::bluestore_cache_meta::map blob_map_t; /// a logical extent, pointing to (some portion of) a blob typedef boost::intrusive::set_base_hook > ExtentBase; //making an alias to avoid build warnings @@ -774,7 +777,7 @@ bool loaded = false; ///< true if shard is loaded bool dirty = false; ///< true if shard is dirty and needs reencoding }; - mempool::bluestore_cache_other::vector shards; ///< shards + mempool::bluestore_cache_meta::vector shards; ///< shards bufferlist inline_bl; ///< cached encoded map, if unsharded; empty=>dirty @@ -1041,7 +1044,7 @@ ghobject_t oid; /// key under PREFIX_OBJ where we are stored - mempool::bluestore_cache_other::string key; + mempool::bluestore_cache_meta::string key; boost::intrusive::list_member_hook<> lru_item; @@ -1058,7 +1061,7 @@ ceph::condition_variable flush_cond; ///< wait here for uncommitted txns Onode(Collection *c, const ghobject_t& o, - const mempool::bluestore_cache_other::string& k) + const mempool::bluestore_cache_meta::string& k) : nref(0), c(c), oid(o), @@ -1115,6 +1118,8 @@ std::atomic num_extents = {0}; std::atomic num_blobs = {0}; + std::array, 64> dumped_onodes; + static Cache *create(CephContext* cct, string type, PerfCounters *logger); Cache(CephContext* cct) : cct(cct), logger(nullptr) {} @@ -1187,12 +1192,20 @@ &Buffer::lru_item> > buffer_lru_list_t; onode_lru_list_t onode_lru; + onode_lru_list_t::iterator last_pinned; buffer_lru_list_t buffer_lru; uint64_t buffer_size = 0; + void _onode_lru_erase(onode_lru_list_t::iterator it) { + if (it == last_pinned) { + last_pinned = onode_lru.end(); + } + onode_lru.erase(it); + } + public: - LRUCache(CephContext* cct) : Cache(cct) {} + LRUCache(CephContext* cct) : Cache(cct), last_pinned(onode_lru.end()){} uint64_t _get_num_onodes() override { return onode_lru.size(); } @@ -1204,7 +1217,7 @@ } void _rm_onode(OnodeRef& o) override { auto q = onode_lru.iterator_to(*o); - onode_lru.erase(q); + _onode_lru_erase(q); } void _touch_onode(OnodeRef& o) override; @@ -1280,6 +1293,7 @@ &Buffer::lru_item> > buffer_list_t; onode_lru_list_t onode_lru; + onode_lru_list_t::iterator last_pinned; buffer_list_t buffer_hot; ///< "Am" hot buffers buffer_list_t buffer_warm_in; ///< "A1in" newly warm buffers @@ -1296,8 +1310,14 @@ uint64_t buffer_list_bytes[BUFFER_TYPE_MAX] = {0}; ///< bytes per type + void _onode_lru_erase(onode_lru_list_t::iterator it) { + if (it == last_pinned) { + last_pinned = onode_lru.end(); + } + onode_lru.erase(it); + } public: - TwoQCache(CephContext* cct) : Cache(cct) {} + TwoQCache(CephContext* cct) : Cache(cct), last_pinned(onode_lru.end()){} uint64_t _get_num_onodes() override { return onode_lru.size(); } @@ -1309,7 +1329,7 @@ } void _rm_onode(OnodeRef& o) override { auto q = onode_lru.iterator_to(*o); - onode_lru.erase(q); + _onode_lru_erase(q); } void _touch_onode(OnodeRef& o) override; @@ -1362,7 +1382,7 @@ Cache *cache; /// forward lookups - mempool::bluestore_cache_other::unordered_map onode_map; + mempool::bluestore_cache_meta::unordered_map onode_map; friend class Collection; // for split_cache() @@ -1379,7 +1399,7 @@ } void rename(OnodeRef& o, const ghobject_t& old_oid, const ghobject_t& new_oid, - const mempool::bluestore_cache_other::string& new_okey); + const mempool::bluestore_cache_meta::string& new_okey); void clear(); bool empty(); @@ -2120,8 +2140,14 @@ MetaCache(BlueStore *s) : MempoolCache(s) {}; virtual uint64_t _get_used_bytes() const { - return mempool::bluestore_cache_other::allocated_bytes() + - mempool::bluestore_cache_onode::allocated_bytes(); + return mempool::bluestore_Buffer::allocated_bytes() + + mempool::bluestore_Blob::allocated_bytes() + + mempool::bluestore_Extent::allocated_bytes() + + mempool::bluestore_cache_meta::allocated_bytes() + + mempool::bluestore_cache_other::allocated_bytes() + + mempool::bluestore_cache_onode::allocated_bytes() + + mempool::bluestore_SharedBlob::allocated_bytes() + + mempool::bluestore_inline_bl::allocated_bytes(); } virtual string get_cache_name() const { @@ -2377,7 +2403,7 @@ int _collection_list( Collection *c, const ghobject_t& start, const ghobject_t& end, - int max, vector *ls, ghobject_t *next); + int max, bool legacy, vector *ls, ghobject_t *next); template T select_option(const std::string& opt_name, T val1, F f) { @@ -2598,6 +2624,13 @@ int max, vector *ls, ghobject_t *next) override; + int collection_list_legacy(CollectionHandle &c, + const ghobject_t& start, + const ghobject_t& end, + int max, + vector *ls, + ghobject_t *next) override; + int omap_get( CollectionHandle &c, ///< [in] Collection containing oid const ghobject_t &oid, ///< [in] Object containing omap @@ -2703,6 +2736,8 @@ void inject_misreference(coll_t cid1, ghobject_t oid1, coll_t cid2, ghobject_t oid2, uint64_t offset); + void inject_zombie_spanning_blob(coll_t cid, ghobject_t oid, int16_t blob_id); + // resets global per_pool_omap in DB void compact() override { ceph_assert(db); @@ -3334,6 +3369,7 @@ FreelistManager* fm, uint64_t offset, uint64_t len); bool fix_bluefs_extents(std::atomic& out_of_sync_flag); + KeyValueDB::Transaction fix_spanning_blobs(KeyValueDB* db); void init(uint64_t total_space, uint64_t lres_tracking_unit_size); @@ -3370,6 +3406,7 @@ KeyValueDB::Transaction fix_shared_blob_txn; KeyValueDB::Transaction fix_misreferences_txn; + KeyValueDB::Transaction fix_onode_txn; StoreSpaceTracker space_usage_tracker; diff -Nru ceph-14.2.11/src/os/bluestore/bluestore_types.cc ceph-14.2.18/src/os/bluestore/bluestore_types.cc --- ceph-14.2.11/src/os/bluestore/bluestore_types.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/bluestore_types.cc 2021-03-15 17:46:20.000000000 +0000 @@ -358,6 +358,10 @@ { ceph_assert(num_au != 0); bytes_per_au = new uint32_t[num_au]; + mempool::get_pool( + mempool::pool_index_t(mempool::mempool_bluestore_cache_other)). + adjust_count(1, sizeof(uint32_t) * num_au); + for (uint32_t i = 0; i < num_au; ++i) { bytes_per_au[i] = 0; } @@ -1000,6 +1004,8 @@ } // bluestore_shared_blob_t +MEMPOOL_DEFINE_OBJECT_FACTORY(bluestore_shared_blob_t, bluestore_shared_blob_t, + bluestore_cache_other); void bluestore_shared_blob_t::dump(Formatter *f) const { diff -Nru ceph-14.2.11/src/os/bluestore/bluestore_types.h ceph-14.2.18/src/os/bluestore/bluestore_types.h --- ceph-14.2.11/src/os/bluestore/bluestore_types.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/bluestore_types.h 2021-03-15 17:46:20.000000000 +0000 @@ -264,6 +264,9 @@ void clear() { if (num_au != 0) { delete[] bytes_per_au; + mempool::get_pool( + mempool::pool_index_t(mempool::mempool_bluestore_cache_other)). + adjust_count(-1, -sizeof(uint32_t) * num_au); } bytes_per_au = 0; au_size = 0; @@ -864,6 +867,7 @@ /// shared blob state struct bluestore_shared_blob_t { + MEMPOOL_CLASS_HELPERS(); uint64_t sbid; ///> shared blob id bluestore_extent_ref_map_t ref_map; ///< shared blob extents @@ -894,7 +898,8 @@ struct bluestore_onode_t { uint64_t nid = 0; ///< numeric id (locally unique) uint64_t size = 0; ///< object size - map attrs; ///< attrs + // mempool to be assigned to buffer::ptr manually + std::map attrs; struct shard_info { uint32_t offset = 0; ///< logical offset for start of shard diff -Nru ceph-14.2.11/src/os/bluestore/fastbmap_allocator_impl.cc ceph-14.2.18/src/os/bluestore/fastbmap_allocator_impl.cc --- ceph-14.2.11/src/os/bluestore/fastbmap_allocator_impl.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/fastbmap_allocator_impl.cc 2021-03-15 17:46:20.000000000 +0000 @@ -678,6 +678,9 @@ int64_t pos = l0_pos_start; slot_t bits = (slot_t)1 << (pos % d0); size_t idx = pos / d0; + if (idx >= l0.size()) { + return pos; + } slot_t* val_s = l0.data() + idx; int64_t pos_e = p2roundup(pos + 1, d0); diff -Nru ceph-14.2.11/src/os/bluestore/fastbmap_allocator_impl.h ceph-14.2.18/src/os/bluestore/fastbmap_allocator_impl.h --- ceph-14.2.11/src/os/bluestore/fastbmap_allocator_impl.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/fastbmap_allocator_impl.h 2021-03-15 17:46:20.000000000 +0000 @@ -708,7 +708,7 @@ return; } if (hint != 0) { - last_pos = (hint / d) < l2.size() ? p2align(hint, d) : 0; + last_pos = (hint / (d * l2_granularity)) < l2.size() ? p2align(hint / l2_granularity, d) : 0; } auto l2_pos = last_pos; auto last_pos0 = last_pos; diff -Nru ceph-14.2.11/src/os/bluestore/HybridAllocator.cc ceph-14.2.18/src/os/bluestore/HybridAllocator.cc --- ceph-14.2.11/src/os/bluestore/HybridAllocator.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/HybridAllocator.cc 2021-03-15 17:46:20.000000000 +0000 @@ -204,7 +204,7 @@ bmap_alloc = new BitmapAllocator(cct, get_capacity(), get_block_size(), - get_name()); + get_name() + ".fallback"); } bmap_alloc->init_add_free(start, size); } diff -Nru ceph-14.2.11/src/os/bluestore/KernelDevice.cc ceph-14.2.18/src/os/bluestore/KernelDevice.cc --- ceph-14.2.11/src/os/bluestore/KernelDevice.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/bluestore/KernelDevice.cc 2021-03-15 17:46:20.000000000 +0000 @@ -59,12 +59,36 @@ int KernelDevice::_lock() { dout(10) << __func__ << " " << fd_directs[WRITE_LIFE_NOT_SET] << dendl; - int r = ::flock(fd_directs[WRITE_LIFE_NOT_SET], LOCK_EX | LOCK_NB); - if (r < 0) { - derr << __func__ << " flock failed on " << path << dendl; - return -errno; + // When the block changes, systemd-udevd will open the block, + // read some information and close it. Then a failure occurs here. + // So we need to try again here. + int fd = fd_directs[WRITE_LIFE_NOT_SET]; + uint64_t nr_tries = 0; + for (;;) { + struct flock fl = { F_WRLCK, + SEEK_SET }; + int r = ::fcntl(fd, F_OFD_SETLK, &fl); + if (r < 0) { + if (errno == EINVAL) { + r = ::flock(fd, LOCK_EX | LOCK_NB); + } + } + if (r == 0) { + return 0; + } + if (errno != EAGAIN) { + return -errno; + } + dout(1) << __func__ << " flock busy on " << path << dendl; + if (const uint64_t max_retry = + cct->_conf.get_val("bdev_flock_retry"); + max_retry > 0 && nr_tries++ == max_retry) { + return -EAGAIN; + } + double retry_interval = + cct->_conf.get_val("bdev_flock_retry_interval"); + std::this_thread::sleep_for(ceph::make_timespan(retry_interval)); } - return 0; } int KernelDevice::open(const string& p) diff -Nru ceph-14.2.11/src/os/kstore/KStore.cc ceph-14.2.18/src/os/kstore/KStore.cc --- ceph-14.2.11/src/os/kstore/KStore.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/kstore/KStore.cc 2021-03-15 17:46:20.000000000 +0000 @@ -89,10 +89,10 @@ { char hexbyte[8]; for (string::const_iterator i = in.begin(); i != in.end(); ++i) { - if (*i <= '#') { + if ((unsigned char)*i <= '#') { snprintf(hexbyte, sizeof(hexbyte), "#%02x", (uint8_t)*i); out->append(hexbyte); - } else if (*i >= '~') { + } else if ((unsigned char)*i >= '~') { snprintf(hexbyte, sizeof(hexbyte), "~%02x", (uint8_t)*i); out->append(hexbyte); } else { @@ -1531,14 +1531,16 @@ if (end.hobj.is_max()) { pend = temp ? temp_end_key : end_key; } else { - get_object_key(cct, end, &end_key); if (end.hobj.is_temp()) { if (temp) - pend = end_key; + get_object_key(cct, end, &pend); else goto out; } else { - pend = temp ? temp_end_key : end_key; + if (temp) + pend = temp_end_key; + else + get_object_key(cct, end, &pend); } } dout(20) << __func__ << " pend " << pretty_binary_string(pend) << dendl; @@ -1551,15 +1553,28 @@ << " > " << end << dendl; if (temp) { if (end.hobj.is_temp()) { + if (it->valid() && it->key() < temp_end_key) { + int r = get_key_object(it->key(), pnext); + ceph_assert(r == 0); + set_next = true; + } break; } dout(30) << __func__ << " switch to non-temp namespace" << dendl; temp = false; it->upper_bound(start_key); - pend = end_key; + if (end.hobj.is_max()) + pend = end_key; + else + get_object_key(cct, end, &pend); dout(30) << __func__ << " pend " << pretty_binary_string(pend) << dendl; continue; } + if (it->valid() && it->key() < end_key) { + int r = get_key_object(it->key(), pnext); + ceph_assert(r == 0); + set_next = true; + } break; } dout(20) << __func__ << " key " << pretty_binary_string(it->key()) << dendl; diff -Nru ceph-14.2.11/src/os/ObjectStore.h ceph-14.2.18/src/os/ObjectStore.h --- ceph-14.2.11/src/os/ObjectStore.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/os/ObjectStore.h 2021-03-15 17:46:20.000000000 +0000 @@ -1827,6 +1827,13 @@ int max, vector *ls, ghobject_t *next) = 0; + virtual int collection_list_legacy(CollectionHandle &c, + const ghobject_t& start, + const ghobject_t& end, int max, + std::vector *ls, + ghobject_t *next) { + return collection_list(c, start, end, max, ls, next); + } /// OMAP /// Get omap contents diff -Nru ceph-14.2.11/src/osd/OSDCap.cc ceph-14.2.18/src/osd/OSDCap.cc --- ceph-14.2.11/src/osd/OSDCap.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/OSDCap.cc 2021-03-15 17:46:20.000000000 +0000 @@ -332,6 +332,8 @@ if (profile.name == "rbd") { // RBD read-write grant + profile_grants.emplace_back(OSDCapMatch(string(), "rbd_info"), + OSDCapSpec(osd_rwxa_t(OSD_CAP_R))); profile_grants.emplace_back(OSDCapMatch(string(), "rbd_children"), OSDCapSpec(osd_rwxa_t(OSD_CAP_CLS_R))); profile_grants.emplace_back(OSDCapMatch(string(), "rbd_mirroring"), diff -Nru ceph-14.2.11/src/osd/OSD.cc ceph-14.2.18/src/osd/OSD.cc --- ceph-14.2.11/src/osd/OSD.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/OSD.cc 2021-03-15 17:46:20.000000000 +0000 @@ -982,6 +982,13 @@ return; } +void OSDService::set_osd_stat_repaired(int64_t count) +{ + std::lock_guard l(stat_lock); + osd_stat.num_shards_repaired = count; + return; +} + float OSDService::compute_adjusted_ratio(osd_stat_t new_stat, float *pratio, uint64_t adjust_used) { @@ -6750,6 +6757,10 @@ "name=message,type=CephString,n=N", "log a message to the cluster log", "osd", "rw") +COMMAND("clear_shards_repaired " \ + "name=count,type=CephInt,req=false", + "clear num_shards_repaired to clear health warning", + "osd", "rw") COMMAND("bench " \ "name=count,type=CephInt,req=false " \ "name=size,type=CephInt,req=false " \ @@ -6968,6 +6979,11 @@ } clog->do_log(level, message); } + else if (prefix == "clear_shards_repaired") { + int64_t count; + cmd_getval(cct, cmdmap, "count", count, (int64_t) 0); + service.set_osd_stat_repaired(count); + } // either 'pg ' or // 'tell ' (which comes in without any of that prefix)? diff -Nru ceph-14.2.11/src/osd/OSD.h ceph-14.2.18/src/osd/OSD.h --- ceph-14.2.11/src/osd/OSD.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/OSD.h 2021-03-15 17:46:20.000000000 +0000 @@ -909,6 +909,7 @@ osd_alert_list_t& alerts); osd_stat_t set_osd_stat(vector& hb_peers, int num_pgs); void inc_osd_stat_repaired(void); + void set_osd_stat_repaired(int64_t); float compute_adjusted_ratio(osd_stat_t new_stat, float *pratio, uint64_t adjust_used = 0); osd_stat_t get_osd_stat() { std::lock_guard l(stat_lock); diff -Nru ceph-14.2.11/src/osd/OSDMap.cc ceph-14.2.18/src/osd/OSDMap.cc --- ceph-14.2.11/src/osd/OSDMap.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/OSDMap.cc 2021-03-15 17:46:20.000000000 +0000 @@ -5111,7 +5111,7 @@ *kb_used_meta = p->statfs.kb_used_internal_metadata(); *kb_avail = p->statfs.kb_avail(); - return *kb > 0; + return true; } bool get_bucket_utilization(int id, int64_t* kb, int64_t* kb_used, @@ -5155,7 +5155,7 @@ *kb_used_meta += kb_used_meta_i; *kb_avail += kb_avail_i; } - return *kb > 0; + return true; } protected: diff -Nru ceph-14.2.11/src/osd/PGBackend.cc ceph-14.2.18/src/osd/PGBackend.cc --- ceph-14.2.11/src/osd/PGBackend.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/PGBackend.cc 2021-03-15 17:46:20.000000000 +0000 @@ -350,13 +350,24 @@ while (!_next.is_max() && ls->size() < (unsigned)min) { vector objects; - r = store->collection_list( - ch, - _next, - ghobject_t::get_max(), - max - ls->size(), - &objects, - &_next); + if (HAVE_FEATURE(parent->min_upacting_features(), + OSD_FIXED_COLLECTION_LIST)) { + r = store->collection_list( + ch, + _next, + ghobject_t::get_max(), + max - ls->size(), + &objects, + &_next); + } else { + r = store->collection_list_legacy( + ch, + _next, + ghobject_t::get_max(), + max - ls->size(), + &objects, + &_next); + } if (r != 0) { derr << __func__ << " list collection " << ch << " got: " << cpp_strerror(r) << dendl; break; @@ -385,13 +396,25 @@ { ceph_assert(ls); vector objects; - int r = store->collection_list( - ch, - ghobject_t(start, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), - ghobject_t(end, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), - INT_MAX, - &objects, - NULL); + int r; + if (HAVE_FEATURE(parent->min_upacting_features(), + OSD_FIXED_COLLECTION_LIST)) { + r = store->collection_list( + ch, + ghobject_t(start, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), + ghobject_t(end, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), + INT_MAX, + &objects, + NULL); + } else { + r = store->collection_list_legacy( + ch, + ghobject_t(start, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), + ghobject_t(end, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), + INT_MAX, + &objects, + NULL); + } ls->reserve(objects.size()); for (vector::iterator i = objects.begin(); i != objects.end(); diff -Nru ceph-14.2.11/src/osd/PGBackend.h ceph-14.2.18/src/osd/PGBackend.h --- ceph-14.2.11/src/osd/PGBackend.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/PGBackend.h 2021-03-15 17:46:20.000000000 +0000 @@ -273,6 +273,7 @@ virtual spg_t primary_spg_t() const = 0; virtual pg_shard_t primary_shard() const = 0; + virtual uint64_t min_upacting_features() const = 0; virtual hobject_t get_temp_recovery_object(const hobject_t& target, eversion_t version) = 0; @@ -298,6 +299,7 @@ virtual bool pg_is_repair() = 0; virtual void inc_osd_stat_repaired() = 0; + virtual void set_osd_stat_repaired(int64_t) = 0; virtual bool pg_is_remote_backfilling() = 0; virtual void pg_add_local_num_bytes(int64_t num_bytes) = 0; virtual void pg_sub_local_num_bytes(int64_t num_bytes) = 0; diff -Nru ceph-14.2.11/src/osd/PG.cc ceph-14.2.18/src/osd/PG.cc --- ceph-14.2.11/src/osd/PG.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/PG.cc 2021-03-15 17:46:20.000000000 +0000 @@ -3349,7 +3349,8 @@ // Primary should not be in the peer_info, skip if it is. if (peer.first == pg_whoami) continue; int64_t missing = 0; - int64_t peer_num_objects = peer.second.stats.stats.sum.num_objects; + int64_t peer_num_objects = + std::max((int64_t)0, peer.second.stats.stats.sum.num_objects); // Backfill targets always track num_objects accurately // all other peers track missing accurately. if (is_backfill_targets(peer.first)) { @@ -5344,24 +5345,6 @@ */ void PG::chunky_scrub(ThreadPool::TPHandle &handle) { - // Since repair is only by request and we need to scrub afterward - // treat the same as req_scrub. - if (!scrubber.req_scrub) { - if (state_test(PG_STATE_DEEP_SCRUB)) { - if (get_osdmap()->test_flag(CEPH_OSDMAP_NODEEP_SCRUB) || - pool.info.has_flag(pg_pool_t::FLAG_NODEEP_SCRUB)) { - dout(10) << "nodeep_scrub set, aborting" << dendl; - abort_scrub(); - return; - } - } else if (state_test(PG_STATE_SCRUBBING)) { - if (get_osdmap()->test_flag(CEPH_OSDMAP_NOSCRUB) || pool.info.has_flag(pg_pool_t::FLAG_NOSCRUB)) { - dout(10) << "noscrub set, aborting" << dendl; - abort_scrub(); - return; - } - } - } // check for map changes if (scrubber.is_chunky_scrub_active()) { if (scrubber.epoch_start != info.history.same_interval_since) { @@ -5445,6 +5428,7 @@ * left end of the range if we are a tier because they may legitimately * not exist (see _scrub). */ + ceph_assert(scrubber.preempt_divisor > 0); int min = std::max(3, cct->_conf->osd_scrub_chunk_min / scrubber.preempt_divisor); int max = std::max(min, cct->_conf->osd_scrub_chunk_max / @@ -5604,6 +5588,24 @@ done = true; break; } + // Since repair is only by request and we need to scrub afterward + // treat the same as req_scrub. + if (!scrubber.req_scrub) { + if (state_test(PG_STATE_DEEP_SCRUB)) { + if (get_osdmap()->test_flag(CEPH_OSDMAP_NODEEP_SCRUB) || + pool.info.has_flag(pg_pool_t::FLAG_NODEEP_SCRUB)) { + dout(10) << "nodeep_scrub set, aborting" << dendl; + abort_scrub(); + return; + } + } else if (state_test(PG_STATE_SCRUBBING)) { + if (get_osdmap()->test_flag(CEPH_OSDMAP_NOSCRUB) || pool.info.has_flag(pg_pool_t::FLAG_NOSCRUB)) { + dout(10) << "noscrub set, aborting" << dendl; + abort_scrub(); + return; + } + } + } // end (possible) preemption window scrub_can_preempt = false; if (scrub_preempted) { @@ -7092,7 +7094,8 @@ } }; -void PG::_delete_some(ObjectStore::Transaction *t) +ghobject_t PG::_delete_some(ObjectStore::Transaction *t, + ghobject_t _next) { dout(10) << __func__ << dendl; @@ -7119,25 +7122,45 @@ osd->sleep_timer.add_event_at(delete_schedule_time, delete_requeue_callback); dout(20) << __func__ << " Delete scheduled at " << delete_schedule_time << dendl; - return; + return _next; } } delete_needs_sleep = true; + ghobject_t next; + vector olist; int max = std::min(osd->store->get_ideal_list_max(), (int)cct->_conf->osd_target_transaction_size); - ghobject_t next; + osd->store->collection_list( ch, - next, + _next, ghobject_t::get_max(), max, &olist, &next); dout(20) << __func__ << " " << olist << dendl; + // make sure we've removed everything + // by one more listing from the beginning + if (_next != ghobject_t() && olist.empty()) { + next = ghobject_t(); + osd->store->collection_list( + ch, + next, + ghobject_t::get_max(), + max, + &olist, + &next); + if (!olist.empty()) { + dout(0) << __func__ << " additional unexpected onode list" + <<" (new onodes has appeared since PG removal started" + << olist << dendl; + } + } + OSDriver::OSTransaction _t(osdriver.get_transaction(t)); int64_t num = 0; for (auto& oid : olist) { @@ -7197,6 +7220,7 @@ osd->logger->dec(l_osd_pg_removing); } } + return next; } // Compute pending backfill data @@ -9239,7 +9263,10 @@ : my_base(ctx), NamedState(context< RecoveryMachine >().pg, "Started/ToDelete/Deleting") { + start = ceph::mono_clock::now(); + context< RecoveryMachine >().log_enter(state_name); + PG *pg = context< RecoveryMachine >().pg; pg->deleting = true; ObjectStore::Transaction* t = context().get_cur_transaction(); @@ -9251,7 +9278,8 @@ const DeleteSome& evt) { PG *pg = context< RecoveryMachine >().pg; - pg->_delete_some(context().get_cur_transaction()); + next = pg->_delete_some(context().get_cur_transaction(), + next); return discard_event(); } @@ -9261,6 +9289,9 @@ PG *pg = context< RecoveryMachine >().pg; pg->deleting = false; pg->osd->local_reserver.cancel_reservation(pg->info.pgid); + ldout(pg->cct, 20) << "Deleting::" << __func__ << this <<" finished in " + << ceph::mono_clock::now() - start + << dendl; } /*--------GetInfo---------*/ diff -Nru ceph-14.2.11/src/osd/PG.h ceph-14.2.18/src/osd/PG.h --- ceph-14.2.11/src/osd/PG.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/PG.h 2021-03-15 17:46:20.000000000 +0000 @@ -499,7 +499,8 @@ virtual void on_removal(ObjectStore::Transaction *t) = 0; - void _delete_some(ObjectStore::Transaction *t); + ghobject_t _delete_some(ObjectStore::Transaction *t, + ghobject_t _next); virtual void set_dynamic_perf_stats_queries( const std::list &queries) { @@ -2744,6 +2745,8 @@ boost::statechart::custom_reaction< DeleteSome >, boost::statechart::transition > reactions; + ghobject_t next; + ceph::mono_clock::time_point start; explicit Deleting(my_context ctx); boost::statechart::result react(const DeleteSome &evt); void exit(); diff -Nru ceph-14.2.11/src/osd/PrimaryLogPG.h ceph-14.2.18/src/osd/PrimaryLogPG.h --- ceph-14.2.11/src/osd/PrimaryLogPG.h 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osd/PrimaryLogPG.h 2021-03-15 17:46:20.000000000 +0000 @@ -410,6 +410,9 @@ void inc_osd_stat_repaired() override { osd->inc_osd_stat_repaired(); } + void set_osd_stat_repaired(int64_t count) override { + osd->set_osd_stat_repaired(count); + } bool pg_is_remote_backfilling() override { return is_remote_backfilling(); } @@ -497,6 +500,9 @@ pg_shard_t primary_shard() const override { return primary; } + uint64_t min_upacting_features() const override { + return get_min_upacting_features(); + } void send_message_osd_cluster( int peer, Message *m, epoch_t from_epoch) override; diff -Nru ceph-14.2.11/src/osdc/Journaler.cc ceph-14.2.18/src/osdc/Journaler.cc --- ceph-14.2.11/src/osdc/Journaler.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osdc/Journaler.cc 2021-03-15 17:46:20.000000000 +0000 @@ -704,7 +704,8 @@ { lock_guard l(lock); if (is_stopping()) { - onsafe->complete(-EAGAIN); + if (onsafe) + onsafe->complete(-EAGAIN); return; } _wait_for_flush(onsafe); @@ -737,7 +738,8 @@ { lock_guard l(lock); if (is_stopping()) { - onsafe->complete(-EAGAIN); + if (onsafe) + onsafe->complete(-EAGAIN); return; } _flush(wrap_finisher(onsafe)); diff -Nru ceph-14.2.11/src/osdc/ObjectCacher.cc ceph-14.2.18/src/osdc/ObjectCacher.cc --- ceph-14.2.11/src/osdc/ObjectCacher.cc 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/osdc/ObjectCacher.cc 2021-03-15 17:46:20.000000000 +0000 @@ -559,6 +559,7 @@ ceph_assert(oc->lock.is_locked()); ldout(oc->cct, 10) << "truncate " << *this << " to " << s << dendl; + std::list waiting_for_read; while (!data.empty()) { BufferHead *bh = data.rbegin()->second; if (bh->end() <= s) @@ -573,11 +574,18 @@ // remove bh entirely ceph_assert(bh->start() >= s); - ceph_assert(bh->waitfor_read.empty()); + for ([[maybe_unused]] auto& [off, ctxs] : bh->waitfor_read) { + waiting_for_read.splice(waiting_for_read.end(), ctxs); + } + bh->waitfor_read.clear(); replace_journal_tid(bh, 0); oc->bh_remove(this, bh); delete bh; } + if (!waiting_for_read.empty()) { + ldout(oc->cct, 10) << "restarting reads post-truncate" << dendl; + } + finish_contexts(oc->cct, waiting_for_read, 0); } void ObjectCacher::Object::discard(loff_t off, loff_t len, @@ -596,6 +604,7 @@ complete = false; } + std::list waiting_for_read; map::const_iterator p = data_lower_bound(off); while (p != data.end()) { BufferHead *bh = p->second; @@ -633,12 +642,19 @@ // we should mark all Rx bh to zero continue; } else { - ceph_assert(bh->waitfor_read.empty()); + for ([[maybe_unused]] auto& [off, ctxs] : bh->waitfor_read) { + waiting_for_read.splice(waiting_for_read.end(), ctxs); + } + bh->waitfor_read.clear(); } oc->bh_remove(this, bh); delete bh; } + if (!waiting_for_read.empty()) { + ldout(oc->cct, 10) << "restarting reads post-discard" << dendl; + } + finish_contexts(oc->cct, waiting_for_read, 0); /* restart reads */ } @@ -1719,6 +1735,7 @@ trace.event("start"); } + list wait_for_reads; for (vector::iterator ex_it = wr->extents.begin(); ex_it != wr->extents.end(); ++ex_it) { @@ -1732,6 +1749,12 @@ bool missing = bh->is_missing(); bh->snapc = wr->snapc; + // readers that need to be woken up due to an overwrite + for (auto& [_, wait_for_read] : bh->waitfor_read) { + wait_for_reads.splice(wait_for_reads.end(), wait_for_read); + } + bh->waitfor_read.clear(); + bytes_written += ex_it->length; if (bh->is_tx()) { bytes_written_in_flush += ex_it->length; @@ -1791,6 +1814,8 @@ int r = _wait_for_write(wr, bytes_written, oset, &trace, onfreespace); delete wr; + finish_contexts(cct, wait_for_reads, 0); + //verify_stats(); trim(); return r; diff -Nru ceph-14.2.11/src/pybind/cephfs/cephfs.pyx ceph-14.2.18/src/pybind/cephfs/cephfs.pyx --- ceph-14.2.11/src/pybind/cephfs/cephfs.pyx 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/cephfs/cephfs.pyx 2021-03-15 17:46:20.000000000 +0000 @@ -505,13 +505,18 @@ raise Error("libcephfs_initialize failed with error code: %d" % ret) self.state = "configuring" - def create(self, conf=None, conffile=None, auth_id=None): + NO_CONF_FILE = -1 + "special value that indicates no conffile should be read when creating a mount handle" + DEFAULT_CONF_FILES = -2 + "special value that indicates the default conffiles should be read when creating a mount handle" + + def create(self, conf=None, conffile=NO_CONF_FILE, auth_id=None): """ Create a mount handle for interacting with Ceph. All libcephfs functions operate on a mount info handle. :param conf dict opt: settings overriding the default ones and conffile - :param conffile str opt: the path to ceph.conf to override the default settings + :param conffile Union[int,str], optional: the path to ceph.conf to override the default settings :auth_id str opt: the id used to authenticate the client entity """ if conf is not None and not isinstance(conf, dict): @@ -529,10 +534,11 @@ raise Error("libcephfs_initialize failed with error code: %d" % ret) self.state = "configuring" - if conffile is not None: - # read the default conf file when '' is given - if conffile == '': - conffile = None + if conffile in (self.NO_CONF_FILE, None): + pass + elif conffile in (self.DEFAULT_CONF_FILES, ''): + self.conf_read_file(None) + else: self.conf_read_file(conffile) if conf is not None: for key, value in conf.iteritems(): @@ -1395,7 +1401,7 @@ ret = ceph_readlink(self.cluster, _path, buf, _size) if ret < 0: raise make_ex(ret, "error in readlink") - return buf + return buf[:ret] finally: free(buf) diff -Nru ceph-14.2.11/src/pybind/ceph_volume_client.py ceph-14.2.18/src/pybind/ceph_volume_client.py --- ceph-14.2.11/src/pybind/ceph_volume_client.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/ceph_volume_client.py 2021-03-15 17:46:20.000000000 +0000 @@ -167,10 +167,10 @@ )) ret, outb, outs = self._volume_client.fs.mds_command( "%s" % self.gid, - [json.dumps({ + json.dumps({ "prefix": "session evict", "filters": self._client_spec - })], "") + }), "") log.debug("mds_command: complete {0} {1}".format(ret, outs)) # If we get a clean response, great, it's gone from that rank. @@ -215,6 +215,8 @@ * 2 - Added get_object, put_object, delete_object methods to CephFSVolumeClient * 3 - Allow volumes to be created without RADOS namespace isolation * 4 - Added get_object_and_version, put_object_versioned method to CephFSVolumeClient + * 5 - Disallow authorize API for users not created by CephFSVolumeClient + * 6 - The 'volumes' key in auth-metadata-file is changed to 'subvolumes'. """ @@ -238,7 +240,7 @@ """ # Current version - version = 4 + version = 6 # Where shall we create our volumes? POOL_PREFIX = "fsvolume_" @@ -334,7 +336,10 @@ for auth_id in auth_ids: with self._auth_lock(auth_id): auth_meta = self._auth_metadata_get(auth_id) - if not auth_meta or not auth_meta['volumes']: + # Update 'volumes' key (old style auth metadata file) to 'subvolumes' key + if auth_meta and 'volumes' in auth_meta: + auth_meta['subvolumes'] = auth_meta.pop('volumes') + if not auth_meta or not auth_meta['subvolumes']: # Clean up auth meta file self.fs.unlink(self._auth_metadata_path(auth_id)) continue @@ -350,12 +355,12 @@ """ remove_volumes = [] - for volume, volume_data in auth_meta['volumes'].items(): + for volume, volume_data in auth_meta['subvolumes'].items(): if not volume_data['dirty']: continue (group_id, volume_id) = volume.split('/') - group_id = group_id if group_id is not 'None' else None + group_id = group_id if group_id != 'None' else None volume_path = VolumePath(group_id, volume_id) access_level = volume_data['access_level'] @@ -376,20 +381,33 @@ # VMeta update looks clean. Ceph auth update must have been # clean. if vol_meta['auths'][auth_id] == want_auth: + auth_meta['subvolumes'][volume]['dirty'] = False + self._auth_metadata_set(auth_id, auth_meta) continue - readonly = True if access_level is 'r' else False - self._authorize_volume(volume_path, auth_id, readonly) + readonly = access_level == 'r' + client_entity = "client.{0}".format(auth_id) + try: + existing_caps = self._rados_command( + 'auth get', + { + 'entity': client_entity + } + ) + # FIXME: rados raising Error instead of ObjectNotFound in auth get failure + except rados.Error: + existing_caps = None + self._authorize_volume(volume_path, auth_id, readonly, existing_caps) # Recovered from partial auth updates for the auth ID's access # to a volume. - auth_meta['volumes'][volume]['dirty'] = False + auth_meta['subvolumes'][volume]['dirty'] = False self._auth_metadata_set(auth_id, auth_meta) for volume in remove_volumes: - del auth_meta['volumes'][volume] + del auth_meta['subvolumes'][volume] - if not auth_meta['volumes']: + if not auth_meta['subvolumes']: # Clean up auth meta file self.fs.unlink(self._auth_metadata_path(auth_id)) return @@ -904,7 +922,7 @@ decode the metadata, and 'version', the CephFSVolumeClient version that encoded the metadata. """ - data['compat_version'] = 1 + data['compat_version'] = 6 data['version'] = self.version return self._metadata_set(self._auth_metadata_path(auth_id), data) @@ -961,7 +979,27 @@ data['version'] = self.version return self._metadata_set(self._volume_metadata_path(volume_path), data) - def authorize(self, volume_path, auth_id, readonly=False, tenant_id=None): + def _prepare_updated_caps_list(self, existing_caps, mds_cap_str, osd_cap_str, authorize=True): + caps_list = [] + for k, v in existing_caps['caps'].items(): + if k == 'mds' or k == 'osd': + continue + elif k == 'mon': + if not authorize and v == 'allow r': + continue + caps_list.extend((k,v)) + + if mds_cap_str: + caps_list.extend(('mds', mds_cap_str)) + if osd_cap_str: + caps_list.extend(('osd', osd_cap_str)) + + if authorize and 'mon' not in caps_list: + caps_list.extend(('mon', 'allow r')) + + return caps_list + + def authorize(self, volume_path, auth_id, readonly=False, tenant_id=None, allow_existing_id=False): """ Get-or-create a Ceph auth identity for `auth_id` and grant them access to @@ -971,16 +1009,30 @@ :param tenant_id: Optionally provide a stringizable object to restrict any created cephx IDs to other callers passing the same tenant ID. + :allow_existing_id: Optionally authorize existing auth-ids not + created by ceph_volume_client :return: """ with self._auth_lock(auth_id): + client_entity = "client.{0}".format(auth_id) + try: + existing_caps = self._rados_command( + 'auth get', + { + 'entity': client_entity + } + ) + # FIXME: rados raising Error instead of ObjectNotFound in auth get failure + except rados.Error: + existing_caps = None + # Existing meta, or None, to be updated auth_meta = self._auth_metadata_get(auth_id) - # volume data to be inserted + # subvolume data to be inserted volume_path_str = str(volume_path) - volume = { + subvolume = { volume_path_str : { # The access level at which the auth_id is authorized to # access the volume. @@ -988,7 +1040,14 @@ 'dirty': True, } } + if auth_meta is None: + if not allow_existing_id and existing_caps is not None: + msg = "auth ID: {0} exists and not created by ceph_volume_client. Not allowed to modify".format(auth_id) + log.error(msg) + raise CephFSVolumeClientError(msg) + + # non-existent auth IDs sys.stderr.write("Creating meta for ID {0} with tenant {1}\n".format( auth_id, tenant_id )) @@ -996,17 +1055,13 @@ auth_meta = { 'dirty': True, 'tenant_id': tenant_id.__str__() if tenant_id else None, - 'volumes': volume + 'subvolumes': subvolume } - - # Note: this is *not* guaranteeing that the key doesn't already - # exist in Ceph: we are allowing VolumeClient tenants to - # 'claim' existing Ceph keys. In order to prevent VolumeClient - # tenants from reading e.g. client.admin keys, you need to - # have configured your VolumeClient user (e.g. Manila) to - # have mon auth caps that prevent it from accessing those keys - # (e.g. limit it to only access keys with a manila.* prefix) else: + # Update 'volumes' key (old style auth metadata file) to 'subvolumes' key + if 'volumes' in auth_meta: + auth_meta['subvolumes'] = auth_meta.pop('volumes') + # Disallow tenants to share auth IDs if auth_meta['tenant_id'].__str__() != tenant_id.__str__(): msg = "auth ID: {0} is already in use".format(auth_id) @@ -1020,15 +1075,15 @@ tenant=auth_meta['tenant_id'] )) auth_meta['dirty'] = True - auth_meta['volumes'].update(volume) + auth_meta['subvolumes'].update(subvolume) self._auth_metadata_set(auth_id, auth_meta) with self._volume_lock(volume_path): - key = self._authorize_volume(volume_path, auth_id, readonly) + key = self._authorize_volume(volume_path, auth_id, readonly, existing_caps) auth_meta['dirty'] = False - auth_meta['volumes'][volume_path_str]['dirty'] = False + auth_meta['subvolumes'][volume_path_str]['dirty'] = False self._auth_metadata_set(auth_id, auth_meta) if tenant_id: @@ -1042,7 +1097,7 @@ 'auth_key': None } - def _authorize_volume(self, volume_path, auth_id, readonly): + def _authorize_volume(self, volume_path, auth_id, readonly, existing_caps): vol_meta = self._volume_metadata_get(volume_path) access_level = 'r' if readonly else 'rw' @@ -1061,14 +1116,14 @@ vol_meta['auths'].update(auth) self._volume_metadata_set(volume_path, vol_meta) - key = self._authorize_ceph(volume_path, auth_id, readonly) + key = self._authorize_ceph(volume_path, auth_id, readonly, existing_caps) vol_meta['auths'][auth_id]['dirty'] = False self._volume_metadata_set(volume_path, vol_meta) return key - def _authorize_ceph(self, volume_path, auth_id, readonly): + def _authorize_ceph(self, volume_path, auth_id, readonly, existing_caps): path = self._get_path(volume_path) log.debug("Authorizing Ceph id '{0}' for path '{1}'".format( auth_id, path @@ -1096,15 +1151,7 @@ want_osd_cap = 'allow {0} pool={1}'.format(want_access_level, pool_name) - try: - existing = self._rados_command( - 'auth get', - { - 'entity': client_entity - } - ) - # FIXME: rados raising Error instead of ObjectNotFound in auth get failure - except rados.Error: + if existing_caps is None: caps = self._rados_command( 'auth get-or-create', { @@ -1116,11 +1163,11 @@ }) else: # entity exists, update it - cap = existing[0] + cap = existing_caps[0] # Construct auth caps that if present might conflict with the desired # auth caps. - unwanted_access_level = 'r' if want_access_level is 'rw' else 'rw' + unwanted_access_level = 'r' if want_access_level == 'rw' else 'rw' unwanted_mds_cap = 'allow {0} path={1}'.format(unwanted_access_level, path) if namespace: unwanted_osd_cap = 'allow {0} pool={1} namespace={2}'.format( @@ -1136,8 +1183,8 @@ if not orig_mds_caps: return want_mds_cap, want_osd_cap - mds_cap_tokens = orig_mds_caps.split(",") - osd_cap_tokens = orig_osd_caps.split(",") + mds_cap_tokens = [x.strip() for x in orig_mds_caps.split(",")] + osd_cap_tokens = [x.strip() for x in orig_osd_caps.split(",")] if want_mds_cap in mds_cap_tokens: return orig_mds_caps, orig_osd_caps @@ -1158,15 +1205,14 @@ orig_mds_caps, orig_osd_caps, want_mds_cap, want_osd_cap, unwanted_mds_cap, unwanted_osd_cap) + caps_list = self._prepare_updated_caps_list(cap, mds_cap_str, osd_cap_str) caps = self._rados_command( 'auth caps', { 'entity': client_entity, - 'caps': [ - 'mds', mds_cap_str, - 'osd', osd_cap_str, - 'mon', cap['caps'].get('mon', 'allow r')] + 'caps': caps_list }) + caps = self._rados_command( 'auth get', { @@ -1194,9 +1240,13 @@ # Existing meta, or None, to be updated auth_meta = self._auth_metadata_get(auth_id) + # Update 'volumes' key (old style auth metadata file) to 'subvolumes' key + if auth_meta and 'volumes' in auth_meta: + auth_meta['subvolumes'] = auth_meta.pop('volumes') + volume_path_str = str(volume_path) - if (auth_meta is None) or (not auth_meta['volumes']): - log.warn("deauthorized called for already-removed auth" + if (auth_meta is None) or (not auth_meta['subvolumes']): + log.warning("deauthorized called for already-removed auth" "ID '{auth_id}' for volume ID '{volume}'".format( auth_id=auth_id, volume=volume_path.volume_id )) @@ -1204,8 +1254,8 @@ self.fs.unlink(self._auth_metadata_path(auth_id)) return - if volume_path_str not in auth_meta['volumes']: - log.warn("deauthorized called for already-removed auth" + if volume_path_str not in auth_meta['subvolumes']: + log.warning("deauthorized called for already-removed auth" "ID '{auth_id}' for volume ID '{volume}'".format( auth_id=auth_id, volume=volume_path.volume_id )) @@ -1215,16 +1265,16 @@ self._recover_auth_meta(auth_id, auth_meta) auth_meta['dirty'] = True - auth_meta['volumes'][volume_path_str]['dirty'] = True + auth_meta['subvolumes'][volume_path_str]['dirty'] = True self._auth_metadata_set(auth_id, auth_meta) self._deauthorize_volume(volume_path, auth_id) # Filter out the volume we're deauthorizing - del auth_meta['volumes'][volume_path_str] + del auth_meta['subvolumes'][volume_path_str] # Clean up auth meta file - if not auth_meta['volumes']: + if not auth_meta['subvolumes']: self.fs.unlink(self._auth_metadata_path(auth_id)) return @@ -1236,7 +1286,7 @@ vol_meta = self._volume_metadata_get(volume_path) if (vol_meta is None) or (auth_id not in vol_meta['auths']): - log.warn("deauthorized called for already-removed auth" + log.warning("deauthorized called for already-removed auth" "ID '{auth_id}' for volume ID '{volume}'".format( auth_id=auth_id, volume=volume_path.volume_id )) @@ -1291,8 +1341,8 @@ ) def cap_remove(orig_mds_caps, orig_osd_caps, want_mds_caps, want_osd_caps): - mds_cap_tokens = orig_mds_caps.split(",") - osd_cap_tokens = orig_osd_caps.split(",") + mds_cap_tokens = [x.strip() for x in orig_mds_caps.split(",")] + osd_cap_tokens = [x.strip() for x in orig_osd_caps.split(",")] for want_mds_cap, want_osd_cap in zip(want_mds_caps, want_osd_caps): if want_mds_cap in mds_cap_tokens: @@ -1308,17 +1358,15 @@ mds_cap_str, osd_cap_str = cap_remove(orig_mds_caps, orig_osd_caps, want_mds_caps, want_osd_caps) - if not mds_cap_str: + caps_list = self._prepare_updated_caps_list(cap, mds_cap_str, osd_cap_str, authorize=False) + if not caps_list: self._rados_command('auth del', {'entity': client_entity}, decode=False) else: self._rados_command( 'auth caps', { 'entity': client_entity, - 'caps': [ - 'mds', mds_cap_str, - 'osd', osd_cap_str, - 'mon', cap['caps'].get('mon', 'allow r')] + 'caps': caps_list }) # FIXME: rados raising Error instead of ObjectNotFound in auth get failure @@ -1410,7 +1458,7 @@ try: self.fs.rmdir(self._snapshot_path(dir_path, snapshot_name)) except cephfs.ObjectNotFound: - log.warn("Snapshot was already gone: {0}".format(snapshot_name)) + log.warning("Snapshot was already gone: {0}".format(snapshot_name)) def create_snapshot_volume(self, volume_path, snapshot_name, mode=0o755): self._snapshot_create(self._get_path(volume_path), snapshot_name, mode) @@ -1533,6 +1581,6 @@ try: ioctx.remove_object(object_name) except rados.ObjectNotFound: - log.warn("Object '{0}' was already removed".format(object_name)) + log.warning("Object '{0}' was already removed".format(object_name)) finally: ioctx.close() diff -Nru ceph-14.2.11/src/pybind/mgr/ansible/requirements.txt ceph-14.2.18/src/pybind/mgr/ansible/requirements.txt --- ceph-14.2.11/src/pybind/mgr/ansible/requirements.txt 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/ansible/requirements.txt 2021-03-15 17:46:20.000000000 +0000 @@ -1 +1,2 @@ tox==2.9.1 +importlib_metadata==2.1.0 diff -Nru ceph-14.2.11/src/pybind/mgr/balancer/module.py ceph-14.2.18/src/pybind/mgr/balancer/module.py --- ceph-14.2.11/src/pybind/mgr/balancer/module.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/balancer/module.py 2021-03-15 17:46:20.000000000 +0000 @@ -458,7 +458,7 @@ return (0, '', '') elif command['prefix'] == 'balancer pool ls': pool_ids = self.get_module_option('pool_ids') - if pool_ids is '': + if pool_ids == '': return (0, '', '') pool_ids = pool_ids.split(',') pool_ids = [int(p) for p in pool_ids] @@ -484,7 +484,7 @@ to_add = [str(pool_id_by_name[p]) for p in raw_names if p in pool_id_by_name] existing = self.get_module_option('pool_ids') final = to_add - if existing is not '': + if existing != '': existing = existing.split(',') final = set(to_add) | set(existing) self.set_module_option('pool_ids', ','.join(final)) @@ -492,7 +492,7 @@ elif command['prefix'] == 'balancer pool rm': raw_names = command['pools'] existing = self.get_module_option('pool_ids') - if existing is '': # for idempotence + if existing == '': # for idempotence return (0, '', '') existing = existing.split(',') osdmap = self.get_osdmap() @@ -640,7 +640,7 @@ osdmap = self.get_osdmap() allow = self.get_module_option('pool_ids') final = [] - if allow is not '': + if allow != '': allow = allow.split(',') valid = [str(p['pool']) for p in osdmap.dump().get('pools', [])] final = set(allow) & set(valid) diff -Nru ceph-14.2.11/src/pybind/mgr/crash/module.py ceph-14.2.18/src/pybind/mgr/crash/module.py --- ceph-14.2.11/src/pybind/mgr/crash/module.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/crash/module.py 2021-03-15 17:46:20.000000000 +0000 @@ -4,7 +4,7 @@ import json from collections import defaultdict from prettytable import PrettyTable -from threading import Event +from threading import Event, Lock DATEFMT = '%Y-%m-%d %H:%M:%S.%f' @@ -33,6 +33,7 @@ def __init__(self, *args, **kwargs): super(Module, self).__init__(*args, **kwargs) self.crashes = None + self.crashes_lock = Lock() self.run = True self.event = Event() @@ -43,8 +44,9 @@ def serve(self): self.config_notify() while self.run: - self._refresh_health_checks() - self._prune(self.retain_interval) + with self.crashes_lock: + self._refresh_health_checks() + self._prune(self.retain_interval) wait = min(MAX_WAIT, max(self.warn_recent_interval / 100, MIN_WAIT)) self.event.wait(wait) self.event.clear() @@ -91,16 +93,17 @@ self.set_health_checks(health_checks) def handle_command(self, inbuf, command): - if not self.crashes: - self._load_crashes() - for cmd in self.COMMANDS: - if cmd['cmd'].startswith(command['prefix']): - handler = cmd['handler'] - break - if handler is None: - return errno.EINVAL, '', 'unknown command %s' % command['prefix'] + with self.crashes_lock: + if not self.crashes: + self._load_crashes() + for cmd in self.COMMANDS: + if cmd['cmd'].startswith(command['prefix']): + handler = cmd['handler'] + break + if handler is None: + return errno.EINVAL, '', 'unknown command %s' % command['prefix'] - return handler(self, command, inbuf) + return handler(self, command, inbuf) def time_from_string(self, timestr): # drop the 'Z' timezone indication, it's always UTC diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/cherrypy_backports.py ceph-14.2.18/src/pybind/mgr/dashboard/cherrypy_backports.py --- ceph-14.2.11/src/pybind/mgr/dashboard/cherrypy_backports.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/cherrypy_backports.py 2021-03-15 17:46:20.000000000 +0000 @@ -95,11 +95,16 @@ # Check if it's one of the known errors # Errors that are caught by PyOpenSSL, but thrown by # built-in ssl - _block_errors = ('unknown protocol', 'unknown ca', - 'unknown_ca', 'inappropriate fallback', + _block_errors = ('unknown protocol', 'unknown ca', 'unknown_ca', + 'unknown error', + 'https proxy request', 'inappropriate fallback', 'wrong version number', 'no shared cipher', 'certificate unknown', - 'ccs received early') + 'ccs received early', + 'certificate verify failed', # client cert w/o trusted CA + 'version too low', # caused by SSL3 connections + 'unsupported protocol', # caused by TLS1 connections + 'sslv3 alert bad certificate') for error_text in _block_errors: if error_text in e.args[1].lower(): # Accepted error, let's pass diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/constraints.txt ceph-14.2.18/src/pybind/mgr/dashboard/constraints.txt --- ceph-14.2.11/src/pybind/mgr/dashboard/constraints.txt 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/constraints.txt 2021-03-15 17:46:20.000000000 +0000 @@ -1,8 +1,7 @@ CherryPy==13.1.0 enum34==1.1.6 more-itertools==4.1.0 -PyJWT==1.6.4 -pyopenssl==17.5.0 +PyJWT==2.0.1 bcrypt==3.1.4 python3-saml==1.4.1 requests==2.20.0 diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/auth.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/auth.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/auth.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/auth.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,14 +1,23 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import -import cherrypy +try: + import Cookie +except ImportError: + import http.cookies as Cookie +import sys import jwt -from . import ApiController, RESTController +from . import ApiController, RESTController, \ + allow_empty_body, set_cookies from .. import logger, mgr from ..exceptions import DashboardException from ..services.auth import AuthManager, JwtManager from ..services.access_control import UserDoesNotExist +# Python 3.8 introduced `samesite` attribute: +# https://docs.python.org/3/library/http.cookies.html#morsel-objects +if sys.version_info < (3, 8): + Cookie.Morsel._reserved["samesite"] = "SameSite" # type: ignore # pylint: disable=W0212 @ApiController('/auth', secure=False) @@ -20,10 +29,14 @@ def create(self, username, password): user_perms = AuthManager.authenticate(username, password) if user_perms is not None: + url_prefix = 'https' if mgr.get_localized_module_option('ssl') else 'http' logger.debug('Login successful') token = JwtManager.gen_token(username) - token = token.decode('utf-8') - cherrypy.response.headers['Authorization'] = "Bearer: {}".format(token) + + # For backward-compatibility: PyJWT versions < 2.0.0 return bytes. + token = token.decode('utf-8') if isinstance(token, bytes) else token + + set_cookies(url_prefix, token) return { 'token': token, 'username': username, @@ -36,6 +49,7 @@ component='auth') @RESTController.Collection('POST') + @allow_empty_body def logout(self): logger.debug('Logout successful') token = JwtManager.get_token_from_header() diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/docs.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/docs.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/docs.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/docs.py 2021-03-15 17:46:20.000000000 +0000 @@ -3,7 +3,8 @@ import cherrypy -from . import Controller, BaseController, Endpoint, ENDPOINT_MAP +from . import Controller, BaseController, Endpoint, ENDPOINT_MAP, \ + allow_empty_body from .. import logger, mgr from ..tools import str_to_bool @@ -373,8 +374,11 @@ spec_url = "{}/docs/api.json".format(base) auth_header = cherrypy.request.headers.get('authorization') + auth_cookie = cherrypy.request.cookie['token'] jwt_token = "" - if auth_header is not None: + if auth_cookie is not None: + jwt_token = auth_cookie.value + elif auth_header is not None: scheme, params = auth_header.split(' ', 1) if scheme.lower() == 'bearer': jwt_token = params @@ -444,5 +448,6 @@ @Endpoint('POST', path="/", json_response=False, query_params="{all_endpoints}") + @allow_empty_body def _with_token(self, token, all_endpoints=False): return self._swagger_ui_page(all_endpoints, token) diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/grafana.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/grafana.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/grafana.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/grafana.py 2021-03-15 17:46:20.000000000 +0000 @@ -3,6 +3,7 @@ from . import (ApiController, BaseController, Endpoint, ReadPermission, UpdatePermission) +from .. import mgr from ..exceptions import DashboardException from ..grafana import GrafanaRestClient, push_local_dashboards from ..security import Scope @@ -11,11 +12,17 @@ @ApiController('/grafana', Scope.GRAFANA) class Grafana(BaseController): - @Endpoint() @ReadPermission def url(self): - response = {'instance': Settings.GRAFANA_API_URL} + grafana_url = mgr.get_module_option('GRAFANA_API_URL') + grafana_frontend_url = mgr.get_module_option('GRAFANA_FRONTEND_API_URL') + if grafana_frontend_url != '' and grafana_url == '': + url = '' + else: + url = (mgr.get_module_option('GRAFANA_FRONTEND_API_URL') + or mgr.get_module_option('GRAFANA_API_URL')).rstrip('/') + response = {'instance': url} return response @Endpoint() @@ -23,7 +30,7 @@ def validation(self, params): grafana = GrafanaRestClient() method = 'GET' - url = Settings.GRAFANA_API_URL.rstrip('/') + \ + url = str(Settings.GRAFANA_API_URL).rstrip('/') + \ '/api/dashboards/uid/' + params response = grafana.url_validation(method, url) return response diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/__init__.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/__init__.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/__init__.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/__init__.py 2021-03-15 17:46:20.000000000 +0000 @@ -477,6 +477,7 @@ """ An instance of this class represents an endpoint. """ + def __init__(self, ctrl, func): self.ctrl = ctrl self.inst = None @@ -931,3 +932,26 @@ def UpdatePermission(func): _set_func_permissions(func, Permission.UPDATE) return func + + +# Empty request body decorator + +def allow_empty_body(func): # noqa: N802 + """ + The POST/PUT request methods decorated with ``@allow_empty_body`` + are allowed to send empty request body. + """ + try: + func._cp_config['tools.json_in.force'] = False + except (AttributeError, KeyError): + func._cp_config = {'tools.json_in.force': False} + return func + + +def set_cookies(url_prefix, token): + cherrypy.response.cookie['token'] = token + if url_prefix == 'https': + cherrypy.response.cookie['token']['secure'] = True + cherrypy.response.cookie['token']['HttpOnly'] = True + cherrypy.response.cookie['token']['path'] = '/' + cherrypy.response.cookie['token']['SameSite'] = 'Strict' diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/iscsi.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/iscsi.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/iscsi.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/iscsi.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # pylint: disable=too-many-branches +# pylint: disable=too-many-lines from __future__ import absolute_import from copy import deepcopy @@ -323,6 +324,8 @@ deleted_portal_names = list(old_portal_names - new_portal_names) validate_rest_api(deleted_portal_names) IscsiTarget._validate(new_target_iqn, target_controls, portals, disks, groups, settings) + IscsiTarget._validate_delete(gateway, target_iqn, config, new_target_iqn, target_controls, + disks, clients, groups) config = IscsiTarget._delete(target_iqn, config, 0, 50, new_target_iqn, target_controls, portals, disks, clients, groups) IscsiTarget._create(new_target_iqn, target_controls, acl_enabled, auth, portals, disks, @@ -356,31 +359,53 @@ deleted_groups = [] for group_id in list(target_config['groups'].keys()): if IscsiTarget._group_deletion_required(target, new_target_iqn, new_target_controls, - new_groups, group_id, new_clients, - new_disks): + new_groups, group_id): deleted_groups.append(group_id) IscsiClient.instance(gateway_name=gateway_name).delete_group(target_iqn, group_id) + else: + group = IscsiTarget._get_group(new_groups, group_id) + + old_group_disks = set(target_config['groups'][group_id]['disks'].keys()) + new_group_disks = {'{}/{}'.format(x['pool'], x['image']) for x in group['disks']} + local_deleted_disks = list(old_group_disks - new_group_disks) + + old_group_members = set(target_config['groups'][group_id]['members']) + new_group_members = set(group['members']) + local_deleted_members = list(old_group_members - new_group_members) + + if local_deleted_disks or local_deleted_members: + IscsiClient.instance(gateway_name=gateway_name).update_group( + target_iqn, group_id, local_deleted_members, local_deleted_disks) TaskManager.current_task().inc_progress(task_progress_inc) deleted_clients = [] - for client_iqn in list(target_config['clients'].keys()): + deleted_client_luns = [] + for client_iqn, client_config in target_config['clients'].items(): if IscsiTarget._client_deletion_required(target, new_target_iqn, new_target_controls, - new_clients, client_iqn, - new_groups, deleted_groups): + new_clients, client_iqn): deleted_clients.append(client_iqn) IscsiClient.instance(gateway_name=gateway_name).delete_client(target_iqn, client_iqn) + else: + for image_id in list(client_config.get('luns', {}).keys()): + if IscsiTarget._client_lun_deletion_required(target, client_iqn, image_id, + new_clients, new_groups): + deleted_client_luns.append((client_iqn, image_id)) + IscsiClient.instance(gateway_name=gateway_name).delete_client_lun( + target_iqn, client_iqn, image_id) TaskManager.current_task().inc_progress(task_progress_inc) for image_id in target_config['disks']: if IscsiTarget._target_lun_deletion_required(target, new_target_iqn, - new_target_controls, - new_disks, image_id): + new_target_controls, new_disks, image_id): all_clients = target_config['clients'].keys() - not_deleted_clients = [c for c in all_clients if c not in deleted_clients] + not_deleted_clients = [c for c in all_clients if c not in deleted_clients + and not IscsiTarget._client_in_group(target['groups'], c) + and not IscsiTarget._client_in_group(new_groups, c)] for client_iqn in not_deleted_clients: client_image_ids = target_config['clients'][client_iqn]['luns'].keys() for client_image_id in client_image_ids: - if image_id == client_image_id: + if image_id == client_image_id and \ + (client_iqn, client_image_id) not in deleted_client_luns: IscsiClient.instance(gateway_name=gateway_name).delete_client_lun( target_iqn, client_iqn, client_image_id) IscsiClient.instance(gateway_name=gateway_name).delete_target_lun(target_iqn, @@ -410,28 +435,12 @@ @staticmethod def _group_deletion_required(target, new_target_iqn, new_target_controls, - new_groups, group_id, new_clients, new_disks): + new_groups, group_id): if IscsiTarget._target_deletion_required(target, new_target_iqn, new_target_controls): return True new_group = IscsiTarget._get_group(new_groups, group_id) if not new_group: return True - old_group = IscsiTarget._get_group(target['groups'], group_id) - if new_group != old_group: - return True - # Check if any client inside this group has changed - for client_iqn in new_group['members']: - if IscsiTarget._client_deletion_required(target, new_target_iqn, new_target_controls, - new_clients, client_iqn, - new_groups, []): - return True - # Check if any disk inside this group has changed - for disk in new_group['disks']: - image_id = '{}/{}'.format(disk['pool'], disk['image']) - if IscsiTarget._target_lun_deletion_required(target, new_target_iqn, - new_target_controls, - new_disks, image_id): - return True return False @staticmethod @@ -443,26 +452,49 @@ @staticmethod def _client_deletion_required(target, new_target_iqn, new_target_controls, - new_clients, client_iqn, new_groups, deleted_groups): + new_clients, client_iqn): if IscsiTarget._target_deletion_required(target, new_target_iqn, new_target_controls): return True - new_client = deepcopy(IscsiTarget._get_client(new_clients, client_iqn)) + new_client = IscsiTarget._get_client(new_clients, client_iqn) if not new_client: return True - # Disks inherited from groups must be considered - for group in new_groups: + return False + + @staticmethod + def _client_in_group(groups, client_iqn): + for group in groups: if client_iqn in group['members']: - new_client['luns'] += group['disks'] - old_client = IscsiTarget._get_client(target['clients'], client_iqn) - if new_client != old_client: - return True - # Check if client belongs to a groups that has been deleted - for group in target['groups']: - if group['group_id'] in deleted_groups and client_iqn in group['members']: return True return False @staticmethod + def _client_lun_deletion_required(target, client_iqn, image_id, new_clients, new_groups): + new_client = IscsiTarget._get_client(new_clients, client_iqn) + if not new_client: + return True + + # Disks inherited from groups must be considered + was_in_group = IscsiTarget._client_in_group(target['groups'], client_iqn) + is_in_group = IscsiTarget._client_in_group(new_groups, client_iqn) + + if not was_in_group and is_in_group: + return True + + if is_in_group: + return False + + new_lun = IscsiTarget._get_disk(new_client.get('luns', []), image_id) + if not new_lun: + return True + + old_client = IscsiTarget._get_client(target['clients'], client_iqn) + if not old_client: + return False + + old_lun = IscsiTarget._get_disk(old_client.get('luns', []), image_id) + return new_lun != old_lun + + @staticmethod def _get_disk(disks, image_id): for disk in disks: if '{}/{}'.format(disk['pool'], disk['image']) == image_id: @@ -620,6 +652,27 @@ component='iscsi') @staticmethod + def _validate_delete(gateway, target_iqn, config, new_target_iqn=None, new_target_controls=None, + new_disks=None, new_clients=None, new_groups=None): + new_target_controls = new_target_controls or {} + new_disks = new_disks or [] + new_clients = new_clients or [] + new_groups = new_groups or [] + + target_config = config['targets'][target_iqn] + target = IscsiTarget._config_to_target(target_iqn, config) + for client_iqn in list(target_config['clients'].keys()): + if IscsiTarget._client_deletion_required(target, new_target_iqn, new_target_controls, + new_clients, client_iqn): + client_info = IscsiClient.instance(gateway_name=gateway).get_clientinfo(target_iqn, + client_iqn) + if client_info.get('state', {}).get('LOGGED_IN', []): + raise DashboardException(msg="Client '{}' cannot be deleted until it's logged " + "out".format(client_iqn), + code='client_logged_in', + component='iscsi') + + @staticmethod def _update_targetauth(config, target_iqn, auth, gateway_name): # Target level authentication was introduced in ceph-iscsi config v11 if config['version'] > 10: @@ -641,11 +694,11 @@ targetauth_action) @staticmethod - def _is_auth_equal(target_auth, auth): - return auth['user'] == target_auth['username'] and \ - auth['password'] == target_auth['password'] and \ - auth['mutual_user'] == target_auth['mutual_username'] and \ - auth['mutual_password'] == target_auth['mutual_password'] + def _is_auth_equal(auth_config, auth): + return auth['user'] == auth_config['username'] and \ + auth['password'] == auth_config['password'] and \ + auth['mutual_user'] == auth_config['mutual_username'] and \ + auth['mutual_password'] == auth_config['mutual_password'] @staticmethod def _create(target_iqn, target_controls, acl_enabled, @@ -723,6 +776,9 @@ if not target_config or client_iqn not in target_config['clients']: IscsiClient.instance(gateway_name=gateway_name).create_client(target_iqn, client_iqn) + if not target_config or client_iqn not in target_config['clients'] or \ + not IscsiTarget._is_auth_equal(target_config['clients'][client_iqn]['auth'], + client['auth']): user = client['auth']['user'] password = client['auth']['password'] m_user = client['auth']['mutual_user'] @@ -733,8 +789,15 @@ pool = lun['pool'] image = lun['image'] image_id = '{}/{}'.format(pool, image) + # Disks inherited from groups must be considered + group_disks = [] + for group in groups: + if client_iqn in group['members']: + group_disks = ['{}/{}'.format(x['pool'], x['image']) + for x in group['disks']] if not target_config or client_iqn not in target_config['clients'] or \ - image_id not in target_config['clients'][client_iqn]['luns']: + (image_id not in target_config['clients'][client_iqn]['luns'] + and image_id not in group_disks): IscsiClient.instance(gateway_name=gateway_name).create_client_lun( target_iqn, client_iqn, image_id) TaskManager.current_task().inc_progress(task_progress_inc) @@ -744,7 +807,14 @@ image_ids = [] for disk in group['disks']: image_ids.append('{}/{}'.format(disk['pool'], disk['image'])) - if not target_config or group_id not in target_config['groups']: + + if target_config and group_id in target_config['groups']: + old_members = target_config['groups'][group_id]['members'] + old_disks = target_config['groups'][group_id]['disks'].keys() + + if not target_config or group_id not in target_config['groups'] or \ + list(set(group['members']) - set(old_members)) or \ + list(set(image_ids) - set(old_disks)): IscsiClient.instance(gateway_name=gateway_name).create_group( target_iqn, group_id, members, image_ids) TaskManager.current_task().inc_progress(task_progress_inc) diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/mgr_modules.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/mgr_modules.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/mgr_modules.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/mgr_modules.py 2021-03-15 17:46:20.000000000 +0000 @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- from __future__ import absolute_import -from . import ApiController, RESTController +from . import ApiController, RESTController, \ + allow_empty_body from .. import mgr from ..security import Scope from ..services.ceph_service import CephService @@ -69,6 +70,7 @@ @RESTController.Resource('POST') @handle_send_command_error('mgr_modules') + @allow_empty_body def enable(self, module_name): """ Enable the specified Ceph Mgr module. @@ -81,6 +83,7 @@ @RESTController.Resource('POST') @handle_send_command_error('mgr_modules') + @allow_empty_body def disable(self, module_name): """ Disable the specified Ceph Mgr module. diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/nfsganesha.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/nfsganesha.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/nfsganesha.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/nfsganesha.py 2021-03-15 17:46:20.000000000 +0000 @@ -231,7 +231,7 @@ ganesha_conf.reload_daemons(export.daemons) -@ApiController('/nfs-ganesha/daemon') +@ApiController('/nfs-ganesha/daemon', Scope.NFS_GANESHA) @ControllerDoc(group="NFS-Ganesha") class NFSGaneshaService(RESTController): @@ -266,18 +266,21 @@ return result -@UiApiController('/nfs-ganesha') +@UiApiController('/nfs-ganesha', Scope.NFS_GANESHA) class NFSGaneshaUi(BaseController): @Endpoint('GET', '/cephx/clients') + @ReadPermission def cephx_clients(self): return [client for client in CephX.list_clients()] @Endpoint('GET', '/fsals') + @ReadPermission def fsals(self): return Ganesha.fsals_available() @Endpoint('GET', '/lsdir') - def lsdir(self, root_dir=None, depth=1): + @ReadPermission + def lsdir(self, root_dir=None, depth=1): # pragma: no cover if root_dir is None: root_dir = "/" depth = int(depth) @@ -297,13 +300,16 @@ return {'paths': []} @Endpoint('GET', '/cephfs/filesystems') + @ReadPermission def filesystems(self): return CephFS.list_filesystems() @Endpoint('GET', '/rgw/buckets') + @ReadPermission def buckets(self, user_id=None): return RgwClient.instance(user_id).get_buckets() @Endpoint('GET', '/clusters') + @ReadPermission def clusters(self): return Ganesha.get_ganesha_clusters() diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/osd.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/osd.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/osd.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/osd.py 2021-03-15 17:46:20.000000000 +0000 @@ -3,7 +3,8 @@ from mgr_util import get_most_recent_rate -from . import ApiController, RESTController, UpdatePermission +from . import ApiController, RESTController, UpdatePermission, \ + allow_empty_body from .. import mgr, logger from ..security import Scope from ..services.ceph_service import CephService, SendCommandError @@ -92,23 +93,28 @@ @RESTController.Resource('POST', query_params=['deep']) @UpdatePermission + @allow_empty_body def scrub(self, svc_id, deep=False): api_scrub = "osd deep-scrub" if str_to_bool(deep) else "osd scrub" CephService.send_command("mon", api_scrub, who=svc_id) @RESTController.Resource('POST') + @allow_empty_body def mark_out(self, svc_id): CephService.send_command('mon', 'osd out', ids=[svc_id]) @RESTController.Resource('POST') + @allow_empty_body def mark_in(self, svc_id): CephService.send_command('mon', 'osd in', ids=[svc_id]) @RESTController.Resource('POST') + @allow_empty_body def mark_down(self, svc_id): CephService.send_command('mon', 'osd down', ids=[svc_id]) @RESTController.Resource('POST') + @allow_empty_body def reweight(self, svc_id, weight): """ Reweights the OSD temporarily. @@ -130,6 +136,7 @@ weight=float(weight)) @RESTController.Resource('POST') + @allow_empty_body def mark_lost(self, svc_id): """ Note: osd must be marked `down` before marking lost. @@ -155,6 +162,7 @@ } @RESTController.Resource('POST') + @allow_empty_body def purge(self, svc_id): """ Note: osd must be marked `down` before removal. @@ -163,6 +171,7 @@ yes_i_really_mean_it=True) @RESTController.Resource('POST') + @allow_empty_body def destroy(self, svc_id): """ Mark osd as being destroyed. Keeps the ID intact (allowing reuse), but diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/pool.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/pool.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/pool.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/pool.py 2021-03-15 17:46:20.000000000 +0000 @@ -83,6 +83,8 @@ @pool_task('edit', ['{pool_name}']) def set(self, pool_name, flags=None, application_metadata=None, configuration=None, **kwargs): self._set_pool_values(pool_name, application_metadata, flags, True, kwargs) + if kwargs.get('pool'): + pool_name = kwargs['pool'] RbdConfiguration(pool_name).set_configuration(configuration) self._wait_for_pgs(pool_name) diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/rbd.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/rbd.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/rbd.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/rbd.py 2021-03-15 17:46:20.000000000 +0000 @@ -12,7 +12,7 @@ import rbd from . import ApiController, RESTController, Task, UpdatePermission, \ - DeletePermission, CreatePermission, ReadPermission + DeletePermission, CreatePermission, ReadPermission, allow_empty_body from .. import mgr, logger from ..security import Scope from ..services.ceph_service import CephService @@ -307,6 +307,7 @@ 'dest_pool_name': '{dest_pool_name}', 'dest_image_name': '{dest_image_name}'}, 2.0) @RESTController.Resource('POST') + @allow_empty_body def copy(self, pool_name, image_name, dest_pool_name, dest_image_name, snapshot_name=None, obj_size=None, features=None, stripe_unit=None, stripe_count=None, data_pool=None, configuration=None): @@ -336,6 +337,7 @@ @RbdTask('flatten', ['{pool_name}', '{image_name}'], 2.0) @RESTController.Resource('POST') @UpdatePermission + @allow_empty_body def flatten(self, pool_name, image_name): def _flatten(ioctx, image): @@ -350,6 +352,7 @@ @RbdTask('trash/move', ['{pool_name}', '{image_name}'], 2.0) @RESTController.Resource('POST') + @allow_empty_body def move_trash(self, pool_name, image_name, delay=0): """Move an image to the trash. Images, even ones actively in-use by clones, @@ -408,6 +411,7 @@ ['{pool_name}', '{image_name}', '{snapshot_name}'], 5.0) @RESTController.Resource('POST') @UpdatePermission + @allow_empty_body def rollback(self, pool_name, image_name, snapshot_name): def _rollback(ioctx, img, snapshot_name): img.rollback_to_snap(snapshot_name) @@ -420,6 +424,7 @@ 'child_pool_name': '{child_pool_name}', 'child_image_name': '{child_image_name}'}, 2.0) @RESTController.Resource('POST') + @allow_empty_body def clone(self, pool_name, image_name, snapshot_name, child_pool_name, child_image_name, obj_size=None, features=None, stripe_unit=None, stripe_count=None, data_pool=None, configuration=None): @@ -491,6 +496,7 @@ @RbdTask('trash/purge', ['{pool_name}'], 2.0) @RESTController.Collection('POST', query_params=['pool_name']) @DeletePermission + @allow_empty_body def purge(self, pool_name=None): """Remove all expired images from trash.""" now = "{}Z".format(datetime.utcnow().isoformat()) @@ -506,6 +512,7 @@ @RbdTask('trash/restore', ['{pool_name}', '{image_id}', '{new_image_name}'], 2.0) @RESTController.Resource('POST') @CreatePermission + @allow_empty_body def restore(self, pool_name, image_id, new_image_name): """Restore an image from trash.""" return _rbd_call(pool_name, self.rbd_inst.trash_restore, image_id, new_image_name) diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/rgw.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/rgw.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/rgw.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/rgw.py 2021-03-15 17:46:20.000000000 +0000 @@ -6,7 +6,7 @@ import cherrypy from . import ApiController, BaseController, RESTController, Endpoint, \ - ReadPermission + ReadPermission, allow_empty_body from .. import logger from ..exceptions import DashboardException from ..rest_client import RequestException @@ -24,9 +24,23 @@ def status(self): status = {'available': False, 'message': None} try: + if not CephService.get_service_list('rgw'): + raise LookupError('No RGW service is running.') instance = RgwClient.admin_instance() # Check if the service is online. - if not instance.is_service_online(): + try: + is_online = instance.is_service_online() + except RequestException as e: + # Drop this instance because the RGW client seems not to + # exist anymore (maybe removed via orchestrator). Removing + # the instance from the cache will result in the correct + # error message next time when the backend tries to + # establish a new connection (-> 'No RGW found' instead + # of 'RGW REST API failed request ...'). + # Note, this only applies to auto-detected RGW clients. + RgwClient.drop_instance(instance.userid) + raise e + if not is_online: msg = 'Failed to connect to the Object Gateway\'s Admin Ops API.' raise RequestException(msg) # Ensure the API user ID is known by the RGW. @@ -142,13 +156,20 @@ return bucket_name - def list(self): - return self.proxy('GET', 'bucket') + def list(self, stats=False): + query_params = '?stats' if stats else '' + result = self.proxy('GET', 'bucket{}'.format(query_params)) + + if stats: + result = [self._append_bid(bucket) for bucket in result] + + return result def get(self, bucket): result = self.proxy('GET', 'bucket', {'bucket': bucket}) return self._append_bid(result) + @allow_empty_body def create(self, bucket, uid): try: rgw_client = RgwClient.instance(uid) @@ -156,6 +177,7 @@ except RequestException as e: raise DashboardException(e, http_status_code=500, component='rgw') + @allow_empty_body def set(self, bucket, bucket_id, uid): result = self.proxy('PUT', 'bucket', { 'bucket': RgwBucket.strip_tenant_from_bucket_name(bucket, uid), @@ -231,6 +253,7 @@ emails.append(user["email"]) return emails + @allow_empty_body def create(self, uid, display_name, email=None, max_buckets=None, suspended=None, generate_key=None, access_key=None, secret_key=None): @@ -252,6 +275,7 @@ result = self.proxy('PUT', 'user', params) return self._append_uid(result) + @allow_empty_body def set(self, uid, display_name=None, email=None, max_buckets=None, suspended=None): params = {'uid': uid} @@ -281,6 +305,7 @@ # pylint: disable=redefined-builtin @RESTController.Resource(method='POST', path='/capability', status=201) + @allow_empty_body def create_cap(self, uid, type, perm): return self.proxy('PUT', 'user?caps', { 'uid': uid, @@ -296,6 +321,7 @@ }) @RESTController.Resource(method='POST', path='/key', status=201) + @allow_empty_body def create_key(self, uid, key_type='s3', subuser=None, generate_key='true', access_key=None, secret_key=None): params = {'uid': uid, 'key-type': key_type, 'generate-key': generate_key} @@ -321,6 +347,7 @@ return self.proxy('GET', 'user?quota', {'uid': uid}) @RESTController.Resource(method='PUT', path='/quota') + @allow_empty_body def set_quota(self, uid, quota_type, enabled, max_size_kb, max_objects): return self.proxy('PUT', 'user?quota', { 'uid': uid, @@ -331,6 +358,7 @@ }, json_response=False) @RESTController.Resource(method='POST', path='/subuser', status=201) + @allow_empty_body def create_subuser(self, uid, subuser, access, key_type='s3', generate_secret='true', access_key=None, secret_key=None): diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/controllers/saml2.py ceph-14.2.18/src/pybind/mgr/dashboard/controllers/saml2.py --- ceph-14.2.11/src/pybind/mgr/dashboard/controllers/saml2.py 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/controllers/saml2.py 2021-03-15 17:46:20.000000000 +0000 @@ -17,7 +17,7 @@ from ..exceptions import UserDoesNotExist from ..services.auth import JwtManager from ..tools import prepare_url_prefix -from . import Controller, Endpoint, BaseController +from . import BaseController, Controller, Endpoint, allow_empty_body, set_cookies @Controller('/auth/saml2', secure=False) @@ -46,6 +46,7 @@ raise cherrypy.HTTPError(400, 'Single Sign-On is not configured.') @Endpoint('POST', path="") + @allow_empty_body def auth_response(self, **kwargs): Saml2._check_python_saml() req = Saml2._build_req(self._request, kwargs) @@ -73,6 +74,7 @@ token = JwtManager.gen_token(username) JwtManager.set_user(JwtManager.decode_token(token)) token = token.decode('utf-8') + set_cookies(url_prefix, token) raise cherrypy.HTTPRedirect("{}/#/login?access_token={}".format(url_prefix, token)) else: return { @@ -106,5 +108,6 @@ # pylint: disable=unused-argument Saml2._check_python_saml() JwtManager.reset_user() + cherrypy.response.cookie['token'] = {'expires': 0, 'max-age': 0} url_prefix = prepare_url_prefix(mgr.get_module_option('url_prefix', default='')) raise cherrypy.HTTPRedirect("{}/#/login".format(url_prefix)) diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/2.22b12bf9358f95829e55.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/2.22b12bf9358f95829e55.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/2.22b12bf9358f95829e55.js 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/2.22b12bf9358f95829e55.js 2021-03-15 17:51:46.000000000 +0000 @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+lcs":function(l,n,e){"use strict";e.d(n,"a",function(){return a});var t=e("gIcY"),u=e("K9Ia"),i=(e("F83c"),e("sne2"),e("QFaf")),o=e("kvvV"),a=(e("9nlD"),e("VXsX"),function(){function l(l,n,e,t,u,i){this.modalRef=l,this.rbdService=n,this.taskManagerService=e,this.notificationService=t,this.i18n=u,this.actionLabels=i,this.editing=!1,this.action=this.actionLabels.CREATE,this.resource=this.i18n("RBD Snapshot"),this.createForm()}return l.prototype.createForm=function(){this.snapshotForm=new i.a({snapshotName:new t.i("",{validators:[t.A.required]})})},l.prototype.ngOnInit=function(){this.onSubmit=new u.a},l.prototype.setSnapName=function(l){this.snapName=l,this.snapshotForm.get("snapshotName").setValue(l)},l.prototype.setEditing=function(l){void 0===l&&(l=!0),this.editing=l,this.action=this.editing?this.actionLabels.RENAME:this.actionLabels.CREATE},l.prototype.editAction=function(){var l=this,n=this.snapshotForm.getValue("snapshotName"),e=new o.a;e.name="rbd/snap/edit",e.metadata={pool_name:this.poolName,image_name:this.imageName,snapshot_name:n},this.rbdService.renameSnapshot(this.poolName,this.imageName,this.snapName,n).toPromise().then(function(){l.taskManagerService.subscribe(e.name,e.metadata,function(n){l.notificationService.notifyTask(n)}),l.modalRef.hide(),l.onSubmit.next(l.snapName)}).catch(function(){l.snapshotForm.setErrors({cdSubmitButton:!0})})},l.prototype.createAction=function(){var l=this,n=this.snapshotForm.getValue("snapshotName"),e=new o.a;e.name="rbd/snap/create",e.metadata={pool_name:this.poolName,image_name:this.imageName,snapshot_name:n},this.rbdService.createSnapshot(this.poolName,this.imageName,n).toPromise().then(function(){l.taskManagerService.subscribe(e.name,e.metadata,function(n){l.notificationService.notifyTask(n)}),l.modalRef.hide(),l.onSubmit.next(n)}).catch(function(){l.snapshotForm.setErrors({cdSubmitButton:!0})})},l.prototype.submit=function(){this.editing?this.editAction():this.createAction()},l}())},"0rTx":function(l,n,e){"use strict";var t=e("CcnG"),u=e("EEJc"),i=e("ajRT"),o=e("gIcY"),a=e("Ip0R"),r=e("IZUe"),s=e("ANnk"),d=e("f/UV"),c=e("aexS"),p=e("gp3X"),m=e("sb0X"),f=e("KVJa"),g=e("Z21x"),h=e("sne2"),v=e("2GqK"),b=e("F83c"),y=e("DQlY"),C=e("2EZI"),_=e("kn/O");e.d(n,"a",function(){return k});var w=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,45,"cd-modal",[],null,null,null,u.c,u.b)),t["\u0275did"](1,49152,null,0,i.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Restore Image"])),(l()(),t["\u0275eld"](4,0,null,1,41,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,40,"form",[["class","form"],["name","restoreForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,o.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,o.d,null,[o.l]),t["\u0275did"](9,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,28,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To restore"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](16,null,["","/","@",""])),(l()(),t["\u0275ted"](-1,null,[",\xa0 "])),(l()(),t["\u0275eld"](18,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["type the image's new name and click"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](21,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Restore Image"])),(l()(),t["\u0275ted"](-1,null,[". "])),(l()(),t["\u0275eld"](24,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](25,278528,null,0,a.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](26,{"has-error":0}),(l()(),t["\u0275eld"](27,0,null,null,1,"label",[["for","name"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["New Name"])),(l()(),t["\u0275eld"](29,0,null,null,7,"input",[["autocomplete","off"],["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,30)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,30).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,30)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,30)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](30,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),t["\u0275did"](32,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,o.q,null,[o.j]),t["\u0275did"](34,16384,null,0,o.r,[[4,o.q]],null,null),t["\u0275did"](35,4210688,null,0,r.a,[t.ElementRef],null,null),t["\u0275did"](36,4210688,null,0,s.a,[[2,d.a],c.a,t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](38,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](39,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](40,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](41,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.restore()&&t),t},p.b,p.a)),t["\u0275did"](42,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Restore Image"])),(l()(),t["\u0275eld"](44,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,f.b,f.a)),t["\u0275did"](45,49152,null,0,g.a,[a.Location,h.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.restoreForm);var u=l(n,26,0,e.restoreForm.showError("name",t["\u0275nov"](n,7)));l(n,25,0,"form-group",u),l(n,32,0,"name"),l(n,38,0,e.restoreForm.showError("name",t["\u0275nov"](n,7),"required")),l(n,42,0,e.restoreForm),l(n,45,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,16,0,e.poolName,e.imageName,e.imageId),l(n,29,0,t["\u0275nov"](n,34).ngClassUntouched,t["\u0275nov"](n,34).ngClassTouched,t["\u0275nov"](n,34).ngClassPristine,t["\u0275nov"](n,34).ngClassDirty,t["\u0275nov"](n,34).ngClassValid,t["\u0275nov"](n,34).ngClassInvalid,t["\u0275nov"](n,34).ngClassPending)})}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-trash-restore-modal",[],null,null,null,I,w)),t["\u0275did"](1,114688,null,0,v.a,[b.a,y.a,C.a,_.a],null,null)],function(l,n){l(n,1,0)},null)}var k=t["\u0275ccf"]("cd-rbd-trash-restore-modal",v.a,S,{},{},[])},"2GqK":function(l,n,e){"use strict";e.d(n,"a",function(){return u}),e("F83c"),e("2EZI");var t=e("kvvV"),u=(e("kn/O"),function(){function l(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t}return l.prototype.ngOnInit=function(){this.restoreForm=this.fb.group({name:this.imageName})},l.prototype.restore=function(){var l=this,n=this.restoreForm.getValue("name");this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/restore",{pool_name:this.poolName,image_id:this.imageId,new_image_name:n}),call:this.rbdService.restoreTrash(this.poolName,this.imageId,n)}).subscribe(void 0,function(){l.restoreForm.setErrors({cdSubmitButton:!0})},function(){l.modalRef.hide()})},l}())},"2JDI":function(l,n,e){"use strict";e.d(n,"a",function(){return o});var t=e("wd/R"),u=(e("F83c"),e("2EZI"),e("1Ni5")),i=e("kvvV"),o=(e("kn/O"),function(){function l(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t,this.minDate=new Date,this.bsConfig={dateInputFormat:"YYYY-MM-DD HH:mm:ss",containerClass:"theme-default"},this.createForm()}return l.prototype.createForm=function(){this.moveForm=this.fb.group({expiresAt:["",[u.a.custom("format",function(l){return!(""===l||t(l,"YYYY-MM-DD HH:mm:ss").isValid())}),u.a.custom("expired",function(l){return t().isAfter(l)})]]})},l.prototype.ngOnInit=function(){this.pattern=this.poolName+"/"+this.imageName},l.prototype.moveImage=function(){var l=this,n=0,e=this.moveForm.getValue("expiresAt");e&&(n=t(e).diff(t(),"seconds",!0)),n<0&&(n=0),this.taskWrapper.wrapTaskAroundCall({task:new i.a("rbd/trash/move",{pool_name:this.poolName,image_name:this.imageName}),call:this.rbdService.moveTrash(this.poolName,this.imageName,n)}).subscribe(void 0,void 0,function(){l.modalRef.hide()})},l}())},"3ris":function(l,n,e){"use strict";e.d(n,"a",function(){return u});var t=e("LvDl"),u=(e("uIqm"),e("vCyI"),e("iExv"),e("uYzU"),function(){function l(l,n,e){this.i18n=l,this.iscsiBackstorePipe=n,this.booleanTextPipe=e,this.metadata={}}return Object.defineProperty(l.prototype,"content",{set:function(l){this.detailTable=l,l&&l.updateColumns()},enumerable:!0,configurable:!0}),l.prototype.ngOnInit=function(){this.columns=[{prop:"displayName",name:this.i18n("Name"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"current",name:this.i18n("Current"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"default",name:this.i18n("Default"),flexGrow:1,cellTemplate:this.highlightTpl}]},l.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.generateTree()),this.data=void 0},l.prototype.generateTree=function(){var l=this,n=t.cloneDeep(this.selectedItem.target_controls);this.cephIscsiConfigVersion>10&&t.extend(n,t.cloneDeep(this.selectedItem.auth)),this.metadata={root:n};var e={target:{expanded:this.selectedItem.cdExecuting?"fa fa-fw fa-spinner fa-spin fa-lg":"fa fa-fw fa-bullseye fa-lg"},initiators:{expanded:"fa fa-fw fa-user fa-lg",leaf:"fa fa-fw fa-user"},groups:{expanded:"fa fa-fw fa-users fa-lg",leaf:"fa fa-fw fa-users"},disks:{expanded:"fa fa-fw fa-hdd-o fa-lg",leaf:"fa fa-fw fa-hdd-o"},portals:{expanded:"fa fa-fw fa-server fa-lg",leaf:"fa fa-fw fa-server fa-lg"}},u=[];t.forEach(this.selectedItem.disks,function(n){var e="disk_"+n.pool+"_"+n.image;l.metadata[e]={controls:n.controls,backstore:n.backstore},["wwn","lun"].forEach(function(t){t in n&&(l.metadata[e][t]=n[t])}),u.push({value:n.pool+"/"+n.image,id:e})});var i=[];t.forEach(this.selectedItem.portals,function(l){i.push({value:l.host+":"+l.ip})});var o=[];t.forEach(this.selectedItem.clients,function(n){var u=t.cloneDeep(n.auth);n.info&&(t.extend(u,n.info),delete u.state,t.forEach(Object.keys(n.info.state),function(l){u[l.toLowerCase()]=n.info.state[l]})),l.metadata["client_"+n.client_iqn]=u;var i=[];n.luns.forEach(function(l){i.push({value:l.pool+"/"+l.image,id:"disk_"+l.pool+"_"+l.image,settings:{cssClasses:e.disks}})});var a="";n.info&&(a=Object.keys(n.info.state).includes("LOGGED_IN")?"logged_in":"logged_out"),o.push({value:n.client_iqn,status:a,id:"client_"+n.client_iqn,children:i})});var a=[];t.forEach(this.selectedItem.groups,function(l){var n=[];l.disks.forEach(function(l){n.push({value:l.pool+"/"+l.image,id:"disk_"+l.pool+"_"+l.image})});var t=[];l.members.forEach(function(l){t.push({value:l,id:"client_"+l})}),a.push({value:l.group_id,children:[{value:"Disks",children:n,settings:{selectionAllowed:!1,cssClasses:e.disks}},{value:"Initiators",children:t,settings:{selectionAllowed:!1,cssClasses:e.initiators}}]})}),this.tree={value:this.selectedItem.target_iqn,id:"root",settings:{static:!0,cssClasses:e.target},children:[{value:"Disks",children:u,settings:{selectionAllowed:!1,cssClasses:e.disks}},{value:"Portals",children:i,settings:{selectionAllowed:!1,cssClasses:e.portals}},{value:"Initiators",children:o,settings:{selectionAllowed:!1,cssClasses:e.initiators}},{value:"Groups",children:a,settings:{selectionAllowed:!1,cssClasses:e.groups}}]}},l.prototype.format=function(l){return"boolean"==typeof l?this.booleanTextPipe.transform(l):l},l.prototype.onNodeSelected=function(l){var n=this;if(l.node.id){this.title=l.node.value;var e=this.metadata[l.node.id]||{};"root"===l.node.id?(this.columns[2].isHidden=!1,this.data=t.map(this.settings.target_default_controls,function(l,u){return{displayName:u,default:l=n.format(l),current:t.isUndefined(e[u])?l:n.format(e[u])}}),this.cephIscsiConfigVersion>10&&["user","password","mutual_user","mutual_password"].forEach(function(l){n.data.push({displayName:l,default:null,current:e[l]})})):l.node.id.toString().startsWith("disk_")?(this.columns[2].isHidden=!1,this.data=t.map(this.settings.disk_default_controls[e.backstore],function(l,u){return{displayName:u,default:l=n.format(l),current:t.isUndefined(e.controls[u])?l:n.format(e.controls[u])}}),this.data.push({displayName:"backstore",default:this.iscsiBackstorePipe.transform(this.settings.default_backstore),current:this.iscsiBackstorePipe.transform(e.backstore)}),["wwn","lun"].forEach(function(l){l in e&&n.data.push({displayName:l,default:void 0,current:e[l]})})):(this.columns[2].isHidden=!0,this.data=t.map(e,function(l,e){return{displayName:e,default:void 0,current:n.format(l)}}))}else this.data=void 0;this.detailTable&&this.detailTable.updateColumns()},l}())},BH9v:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("aXbf"),o=function(){function l(l,n){this.control=l,this.formatter=n}return l.prototype.setValue=function(l){var n=this.formatter.toMilliseconds(l);this.control.control.setValue(n+" ms")},l.prototype.ngOnInit=function(){var l=this;this.setValue(this.control.value),this.ngDataReady&&this.ngDataReady.subscribe(function(){return l.setValue(l.control.value)})},l.prototype.onUpdate=function(l){this.setValue(l)},l}(),a=e("ANnk"),r=e("f/UV"),s=e("aexS"),d=e("LvDl"),c=e("IzCI"),p=function(){function l(l,n,e,u){this.elementRef=l,this.control=n,this.dimlessBinaryPerSecondPipe=e,this.formatter=u,this.ngModelChange=new t.EventEmitter,this.el=this.elementRef.nativeElement}return l.prototype.ngOnInit=function(){var l=this;this.setValue(this.el.value),this.ngDataReady&&this.ngDataReady.subscribe(function(){return l.setValue(l.el.value)})},l.prototype.setValue=function(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");var n=this.formatter.toBytes(l,0),e=this.round(n);this.el.value=this.dimlessBinaryPerSecondPipe.transform(e),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))},l.prototype.round=function(l){if(null!==l&&0!==l){if(!d.isUndefined(this.minBytes)&&lthis.maxBytes)return this.maxBytes;if(!d.isUndefined(this.roundPower)){var n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l},l.prototype.onBlur=function(l){this.setValue(l)},l}(),m=function(){function l(l,n){this.formatter=l,this.ngControl=n}return l.prototype.setValue=function(l){var n=this.formatter.toIops(l);this.ngControl.control.setValue(n+" IOPS")},l.prototype.ngOnInit=function(){var l=this;this.setValue(this.ngControl.value),this.ngDataReady&&this.ngDataReady.subscribe(function(){return l.setValue(l.ngControl.value)})},l.prototype.onUpdate=function(l){this.setValue(l)},l}(),f=e("Ip0R"),g=e("4HWh"),h=e("p4Cf");e("rFfW"),e("o8EM"),e.d(n,"a",function(){return v}),e.d(n,"b",function(){return I});var v=t["\u0275crt"]({encapsulation:0,styles:[[".collapsible[_ngcontent-%COMP%]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]],data:{}});function b(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,7,"input",[["cdMilliseconds",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,2)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionEnd(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,7).onUpdate(e.target.value)&&u),u},null,null)),t["\u0275did"](2,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](7,81920,null,0,o,[u.q,i.a],{ngDataReady:[0,"ngDataReady"]},null),t["\u0275did"](8,4210688,null,0,a.a,[[2,r.a],s.a,t.ElementRef],null,null)],function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady)},function(l,n){l(n,1,0,n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,7,"input",[["cdDimlessBinaryPerSecond",""],["class","form-control"],["defaultUnit","b"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,2)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionEnd(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,7).onBlur(e.target.value)&&u),u},null,null)),t["\u0275did"](2,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](7,81920,null,0,p,[t.ElementRef,u.q,c.a,i.a],{ngDataReady:[0,"ngDataReady"],defaultUnit:[1,"defaultUnit"]},null),t["\u0275did"](8,4210688,null,0,a.a,[[2,r.a],s.a,t.ElementRef],null,null)],function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady,"b")},function(l,n){l(n,1,0,n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,7,"input",[["cdIops",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,2)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionEnd(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,7).onUpdate(e.target.value)&&u),u},null,null)),t["\u0275did"](2,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](7,81920,null,0,m,[i.a,u.q],{ngDataReady:[0,"ngDataReady"]},null),t["\u0275did"](8,4210688,null,0,a.a,[[2,r.a],s.a,t.ElementRef],null,null)],function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady)},function(l,n){l(n,1,0,n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The mininum value is 0"]))],null,null)}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,f.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](4,null,["",""])),(l()(),t["\u0275eld"](5,0,null,null,2,"cd-helper",[],null,null,null,g.b,g.a)),t["\u0275did"](6,49152,null,0,h.a,[],null,null),(l()(),t["\u0275ted"](7,0,["",""])),(l()(),t["\u0275eld"](8,0,null,null,16,"div",[],[[8,"className",0]],null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,13,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,7,null,null,null,null,null,null,null)),t["\u0275did"](11,16384,null,0,f.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,b)),t["\u0275did"](13,278528,null,0,f.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,f.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](15,278528,null,0,f.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,f.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,C)),t["\u0275did"](17,278528,null,0,f.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,f.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275eld"](18,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,3,"button",[["class","btn btn-default"],["data-toggle","button"],["title","Remove the local configuration value. The parent configuration value will be inherited and used instead."],["type","button"]],null,[[null,"click"]],function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.reset(l.context.$implicit.name)&&t),t},null,null)),t["\u0275did"](20,278528,null,0,f.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](21,{active:0}),(l()(),t["\u0275eld"](22,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-eraser"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,_)),t["\u0275did"](24,16384,null,0,f.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,u=l(n,2,0,e.form.showError("configuration."+n.context.$implicit.name,t["\u0275nov"](n.parent.parent,0)));l(n,1,0,"form-group",u),l(n,11,0,n.context.$implicit.type),l(n,13,0,e.configurationType.milliseconds),l(n,15,0,e.configurationType.bps),l(n,17,0,e.configurationType.iops);var i=l(n,21,0,e.isDisabled(n.context.$implicit.name));l(n,20,0,"btn btn-default",i),l(n,24,0,e.form.showError("configuration."+n.context.$implicit.name,t["\u0275nov"](n.parent.parent,0),"min"))},function(l,n){l(n,3,0,n.context.$implicit.name),l(n,4,0,n.context.$implicit.displayName),l(n,7,0,n.context.$implicit.description),l(n,8,0,t["\u0275inlineInterpolate"](1,"col-sm-9 ",n.parent.context.$implicit.heading,""))})}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,5,"h3",[["class","page-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,4,"span",[["class","collapsible"]],null,[[null,"click"]],function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.toggleSectionVisibility(l.context.$implicit.class)&&t),t},null,null)),(l()(),t["\u0275ted"](3,null,[""," "])),(l()(),t["\u0275eld"](4,0,null,null,2,"i",[["aria-hidden","true"],["class","fa"]],null,null,null,null,null)),t["\u0275did"](5,278528,null,0,f.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](6,{"fa-plus-circle":0,"fa-minus-circle":1}),(l()(),t["\u0275eld"](7,0,null,null,2,"div",[],[[8,"className",0],[8,"hidden",0]],null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,w)),t["\u0275did"](9,278528,null,0,f.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component,t=l(n,6,0,!e.sectionVisibility[n.context.$implicit.class],e.sectionVisibility[n.context.$implicit.class]);l(n,5,0,"fa",t),l(n,9,0,n.context.$implicit.options)},function(l,n){var e=n.component;l(n,3,0,n.context.$implicit.heading),l(n,7,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.class,""),!e.sectionVisibility[n.context.$implicit.class])})}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,[["cfgFormGroup",1]],null,7,"fieldset",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,1).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,1).onReset()&&u),u},null,null)),t["\u0275did"](1,540672,null,0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](3,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["RBD Configuration"])),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](7,278528,null,0,f.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,1,0,e.form.get("configuration")),l(n,7,0,e.rbdConfigurationService.sections)},function(l,n){l(n,0,0,t["\u0275nov"](n,3).ngClassUntouched,t["\u0275nov"](n,3).ngClassTouched,t["\u0275nov"](n,3).ngClassPristine,t["\u0275nov"](n,3).ngClassDirty,t["\u0275nov"](n,3).ngClassValid,t["\u0275nov"](n,3).ngClassInvalid,t["\u0275nov"](n,3).ngClassPending)})}},EFGL:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("IzCI"),o=e("aXbf"),a=e("dEH0"),r=e("BQkM"),s=e("25BL"),d=e("uIqm");e("aAWM"),e("o8EM"),e("Jm/i"),e.d(n,"a",function(){return c}),e.d(n,"b",function(){return _});var c=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function p(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Global"]))],null,null)}function m(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Image"]))],null,null)}function f(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pool"]))],null,null)}function g(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,"div",[],null,null,null,null,null)),t["\u0275did"](1,16384,null,0,u.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,p)),t["\u0275did"](3,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,m)),t["\u0275did"](5,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,f)),t["\u0275did"](7,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null)],function(l,n){l(n,1,0,n.context.value),l(n,3,0,"global"),l(n,5,0,"image"),l(n,7,0,"pool")},null)}function h(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""])),t["\u0275ppd"](2,1)],null,function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)})}function v(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""])),t["\u0275ppd"](2,1)],null,function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,1),n.parent.context.value));l(n,1,0,e)})}function b(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""])),t["\u0275ppd"](2,1)],null,function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,2),n.parent.context.value));l(n,1,0,e)})}function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"div",[],null,null,null,null,null)),t["\u0275did"](1,16384,null,0,u.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,h)),t["\u0275did"](3,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,v)),t["\u0275did"](5,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,b)),t["\u0275did"](7,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](9,16384,null,0,u.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],null,null)],function(l,n){var e=n.component;l(n,1,0,n.context.row.type),l(n,3,0,e.typeField.bps),l(n,5,0,e.typeField.milliseconds),l(n,7,0,e.typeField.iops)},null)}function _(l){return t["\u0275vid"](0,[t["\u0275pid"](0,i.a,[o.a]),t["\u0275pid"](0,a.a,[]),t["\u0275pid"](0,r.a,[]),t["\u0275qud"](402653184,1,{configurationSourceTpl:0}),t["\u0275qud"](402653184,2,{configurationValueTpl:0}),t["\u0275qud"](402653184,3,{poolConfTable:0}),(l()(),t["\u0275eld"](6,0,null,null,1,"cd-table",[["identifier","name"]],null,null,null,s.b,s.a)),t["\u0275did"](7,2867200,[[3,4],["poolConfTable",4]],0,d.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"]},null),(l()(),t["\u0275and"](0,[[1,2],["configurationSourceTpl",2]],null,0,null,g)),(l()(),t["\u0275and"](0,[[2,2],["configurationValueTpl",2]],null,0,null,C))],function(l,n){var e=n.component;l(n,7,0,e.data,e.poolConfigurationColumns,"name")},null)}},Ekvf:function(l,n,e){"use strict";e.d(n,"a",function(){return d});var t=e("mrSG"),u=e("t/Na"),i=e("67Y/"),o=e("xTzq"),a=e("o8EM"),r=e("CcnG"),s=e("pL04"),d=function(){function l(l,n){this.http=l,this.rbdConfigurationService=n,this.apiPath="api/pool"}return l.prototype.create=function(l){return this.http.post(this.apiPath,l,{observe:"response"})},l.prototype.update=function(l){var n;return l.hasOwnProperty("srcpool")?(n=l.srcpool,delete l.srcpool):(n=l.pool,delete l.pool),this.http.put(this.apiPath+"/"+encodeURIComponent(n),l,{observe:"response"})},l.prototype.delete=function(l){return this.http.delete(this.apiPath+"/"+l,{observe:"response"})},l.prototype.get=function(l){return this.http.get(this.apiPath+"/"+l)},l.prototype.getList=function(){return this.http.get(this.apiPath+"?stats=true")},l.prototype.getConfiguration=function(l){var n=this;return this.http.get(this.apiPath+"/"+l+"/configuration").pipe(Object(i.a)(function(l){return l.map(function(l){return Object.assign(l,n.rbdConfigurationService.getOptionByName(l.name))})}))},l.prototype.getInfo=function(l){return this.http.get(this.apiPath+"/_info"+(l?"?pool_name="+l:""))},l.prototype.list=function(l){void 0===l&&(l=[]);var n=l.join(",");return this.http.get(this.apiPath+"?attrs="+n).toPromise().then(function(l){return l})},l.ngInjectableDef=r.defineInjectable({factory:function(){return new l(r.inject(u.c),r.inject(a.a))},token:l,providedIn:s.a}),l=t.__decorate([o.a,t.__metadata("design:paramtypes",[u.c,a.a])],l)}()},EmSq:function(l,n,e){"use strict";e.d(n,"a",function(){return i});var t=e("CcnG"),u=e("LvDl"),i=(e("Fgil"),e("aXbf"),function(){function l(l,n,e,u){this.elementRef=l,this.control=n,this.dimlessBinaryPipe=e,this.formatter=u,this.ngModelChange=new t.EventEmitter,this.el=this.elementRef.nativeElement}return l.prototype.ngOnInit=function(){this.setValue(this.el.value)},l.prototype.setValue=function(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");var n=this.formatter.toBytes(l),e=this.round(n);this.el.value=this.dimlessBinaryPipe.transform(e),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))},l.prototype.round=function(l){if(null!==l&&0!==l){if(!u.isUndefined(this.minBytes)&&lthis.maxBytes)return this.maxBytes;if(!u.isUndefined(this.roundPower)){var n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l},l.prototype.onBlur=function(l){this.setValue(l)},l}())},F83c:function(l,n,e){"use strict";e.d(n,"a",function(){return d});var t=e("mrSG"),u=e("t/Na"),i=e("67Y/"),o=e("xTzq"),a=e("o8EM"),r=e("CcnG"),s=e("pL04"),d=function(){function l(l,n){this.http=l,this.rbdConfigurationService=n}return l.prototype.create=function(l){return this.http.post("api/block/image",l,{observe:"response"})},l.prototype.delete=function(l,n){return this.http.delete("api/block/image/"+l+"/"+n,{observe:"response"})},l.prototype.update=function(l,n,e){return this.http.put("api/block/image/"+l+"/"+n,e,{observe:"response"})},l.prototype.get=function(l,n){return this.http.get("api/block/image/"+l+"/"+n)},l.prototype.list=function(){var l=this;return this.http.get("api/block/image").pipe(Object(i.a)(function(n){return n.map(function(n){return n.value.map(function(n){return n.configuration?(n.configuration.map(function(n){return Object.assign(n,l.rbdConfigurationService.getOptionByName(n.name))}),n):n}),n})}))},l.prototype.copy=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/copy",e,{observe:"response"})},l.prototype.flatten=function(l,n){return this.http.post("api/block/image/"+l+"/"+n+"/flatten",null,{observe:"response"})},l.prototype.defaultFeatures=function(){return this.http.get("api/block/image/default_features")},l.prototype.createSnapshot=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/snap",{snapshot_name:e},{observe:"response"})},l.prototype.renameSnapshot=function(l,n,e,t){return this.http.put("api/block/image/"+l+"/"+n+"/snap/"+e,{new_snap_name:t},{observe:"response"})},l.prototype.protectSnapshot=function(l,n,e,t){return this.http.put("api/block/image/"+l+"/"+n+"/snap/"+e,{is_protected:t},{observe:"response"})},l.prototype.rollbackSnapshot=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/snap/"+e+"/rollback",null,{observe:"response"})},l.prototype.cloneSnapshot=function(l,n,e,t){return this.http.post("api/block/image/"+l+"/"+n+"/snap/"+e+"/clone",t,{observe:"response"})},l.prototype.deleteSnapshot=function(l,n,e){return this.http.delete("api/block/image/"+l+"/"+n+"/snap/"+e,{observe:"response"})},l.prototype.listTrash=function(){return this.http.get("api/block/image/trash/")},l.prototype.moveTrash=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/move_trash",{delay:e},{observe:"response"})},l.prototype.purgeTrash=function(l){return this.http.post("api/block/image/trash/purge/?pool_name="+l,null,{observe:"response"})},l.prototype.restoreTrash=function(l,n,e){return this.http.post("api/block/image/trash/"+l+"/"+n+"/restore",{new_image_name:e},{observe:"response"})},l.prototype.removeTrash=function(l,n,e,t){return void 0===t&&(t=!1),this.http.delete("api/block/image/trash/"+l+"/"+n+"/?image_name="+e+"&force="+t,{observe:"response"})},l.ngInjectableDef=r.defineInjectable({factory:function(){return new l(r.inject(u.c),r.inject(a.a))},token:l,providedIn:s.a}),t.__decorate([t.__param(2,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"createSnapshot",null),t.__decorate([t.__param(3,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"renameSnapshot",null),t.__decorate([t.__param(3,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"protectSnapshot",null),t.__decorate([t.__param(2,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"restoreTrash",null),l=t.__decorate([o.a,t.__metadata("design:paramtypes",[u.c,a.a])],l)}()},I4Qz:function(l,n,e){"use strict";var t=e("CcnG"),u=e("EEJc"),i=e("ajRT"),o=e("gIcY"),a=e("Ip0R"),r=e("ARl4"),s=e("lqqz"),d=e("ANnk"),c=e("f/UV"),p=e("aexS"),m=e("gp3X"),f=e("sb0X"),g=e("KVJa"),h=e("Z21x"),v=e("sne2"),b=e("2JDI"),y=e("F83c"),C=e("DQlY"),_=e("2EZI"),w=e("kn/O");e.d(n,"a",function(){return F});var R=t["\u0275crt"]({encapsulation:0,styles:[[".bs-datepicker-head bs-datepicker-navigation-view{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}"]],data:{}});function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,['Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".']))],null,null)}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Protection has already expired. Please pick a future date or leave it empty."]))],null,null)}function k(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,44,"cd-modal",[],null,null,null,u.c,u.b)),t["\u0275did"](1,49152,null,0,i.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Move an image to trash"])),(l()(),t["\u0275eld"](4,0,null,1,40,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,39,"form",[["class","form"],["name","moveForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,o.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,o.d,null,[o.l]),t["\u0275did"](9,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,27,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,7,"p",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To move "])),(l()(),t["\u0275eld"](13,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](14,null,["","/",""])),(l()(),t["\u0275ted"](-1,null,[" to trash, click "])),(l()(),t["\u0275eld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Move Image"])),(l()(),t["\u0275ted"](-1,null,[". Optionally, you can pick an expiration date."])),(l()(),t["\u0275eld"](19,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](20,278528,null,0,a.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](21,{"has-error":0}),(l()(),t["\u0275eld"](22,0,null,null,1,"label",[["for","expires"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Protection expires at"])),(l()(),t["\u0275eld"](24,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","expiresAt"],["placeholder","NOT PROTECTED"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,25)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,25).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,27).onChange(e)&&u),"keyup.esc"===n&&(u=!1!==t["\u0275nov"](l,27).hide()&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,27).onBlur()&&u),u},null,null)),t["\u0275did"](25,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["\u0275did"](26,737280,null,0,r.c,[r.a,t.ElementRef,t.Renderer2,t.ViewContainerRef,s.a],{bsConfig:[0,"bsConfig"],minDate:[1,"minDate"]},null),t["\u0275did"](27,16384,null,0,r.f,[r.c,r.j,t.Renderer2,t.ElementRef,t.ChangeDetectorRef],null,null),t["\u0275prd"](1024,null,o.o,function(l){return[l]},[r.f]),t["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,r.f]),t["\u0275did"](30,671744,null,0,o.j,[[3,o.d],[6,o.o],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,o.q,null,[o.j]),t["\u0275did"](32,16384,null,0,o.r,[[4,o.q]],null,null),t["\u0275did"](33,4210688,null,0,d.a,[[2,c.a],p.a,t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,I)),t["\u0275did"](35,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](37,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](38,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](40,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.moveImage()&&t),t},m.b,m.a)),t["\u0275did"](41,114688,null,0,f.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Move Image"])),(l()(),t["\u0275eld"](43,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,g.b,g.a)),t["\u0275did"](44,49152,null,0,h.a,[a.Location,v.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.moveForm);var u=l(n,21,0,e.moveForm.showError("expiresAt",t["\u0275nov"](n,7)));l(n,20,0,"form-group",u),l(n,26,0,e.bsConfig,e.minDate),l(n,30,0,"expiresAt"),l(n,35,0,e.moveForm.showError("expiresAt",t["\u0275nov"](n,7),"format")),l(n,37,0,e.moveForm.showError("expiresAt",t["\u0275nov"](n,7),"expired")),l(n,41,0,e.moveForm),l(n,44,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,14,0,e.poolName,e.imageName),l(n,24,0,t["\u0275nov"](n,32).ngClassUntouched,t["\u0275nov"](n,32).ngClassTouched,t["\u0275nov"](n,32).ngClassPristine,t["\u0275nov"](n,32).ngClassDirty,t["\u0275nov"](n,32).ngClassValid,t["\u0275nov"](n,32).ngClassInvalid,t["\u0275nov"](n,32).ngClassPending)})}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-trash-move-modal",[],null,null,null,k,R)),t["\u0275did"](1,114688,null,0,b.a,[y.a,C.a,_.a,w.a],null,null)],function(l,n){l(n,1,0)},null)}var F=t["\u0275ccf"]("cd-rbd-trash-move-modal",b.a,E,{},{},[])},JBea:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("vCyI");var t=function(){function l(){}return l.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first())},l}()},"JIi+":function(l,n,e){"use strict";var t=e("CcnG"),u=e("eajB"),i=e("lqqz"),o=e("NJnL"),a=e("pKUh"),r=e("YAQW"),s=e("Ip0R"),d=e("25BL"),c=e("uIqm"),p=e("NUGo"),m=e("S7zO"),f=e("VTlA"),g=e("ufoC"),h=e("mSOc"),v=e("wd/R"),b=e("F/XL"),y=e("F83c"),C=e("OLbh"),_=e("0+/T"),w=e("sne2"),R=e("x38r"),I=e("vCyI"),S=e("QTAa"),k=e("kvvV"),E=e("a0VL"),F=e("Fgil"),D=e("aexS"),V=e("9nlD"),T=e("VXsX"),N=e("+lcs"),P=function(){return function(l,n){this.i18n=l,this.create={permission:"create",icon:"fa-plus",name:n.CREATE},this.rename={permission:"update",icon:"fa-pencil",name:n.RENAME},this.protect={permission:"update",icon:"fa-lock",visible:function(l){return l.hasSingleSelection&&!l.first().is_protected},name:n.PROTECT},this.unprotect={permission:"update",icon:"fa-unlock",visible:function(l){return l.hasSingleSelection&&l.first().is_protected},name:n.UNPROTECT},this.clone={permission:"create",canBePrimary:function(l){return l.hasSingleSelection},disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting},icon:"fa-clone",name:n.CLONE},this.copy={permission:"create",canBePrimary:function(l){return l.hasSingleSelection},disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting},icon:"fa-copy",name:n.COPY},this.rollback={permission:"update",icon:"fa-undo",name:n.ROLLBACK},this.deleteSnap={permission:"delete",icon:"fa-times",disable:function(l){var n=l.first();return!l.hasSingleSelection||n.cdExecuting||n.is_protected},name:n.DELETE},this.ordering=[this.create,this.rename,this.protect,this.unprotect,this.clone,this.copy,this.rollback,this.deleteSnap]}}(),x=function(){return function(){}}(),O=function(){function l(l,n,e,t,u,i,o,a,r,s,d){var c=this;this.authStorageService=l,this.modalService=n,this.dimlessBinaryPipe=e,this.cdDatePipe=t,this.rbdService=u,this.taskManagerService=i,this.notificationService=o,this.summaryService=a,this.taskListService=r,this.i18n=s,this.actionLabels=d,this.snapshots=[],this.selection=new I.a,this.builders={"rbd/snap/create":function(l){var n=new x;return n.name=l.snapshot_name,n}},this.permission=this.authStorageService.getPermissions().rbdImage;var p=new P(this.i18n,this.actionLabels);p.create.click=function(){return c.openCreateSnapshotModal()},p.rename.click=function(){return c.openEditSnapshotModal()},p.protect.click=function(){return c.toggleProtection()},p.unprotect.click=function(){return c.toggleProtection()};var m=function(){return c.selection.first()&&encodeURIComponent(c.poolName)+"/"+encodeURIComponent(c.rbdName)+"/"+encodeURIComponent(c.selection.first().name)};p.clone.routerLink=function(){return"/block/rbd/clone/"+m()},p.copy.routerLink=function(){return"/block/rbd/copy/"+m()},p.rollback.click=function(){return c.rollbackModal()},p.deleteSnap.click=function(){return c.deleteSnapshotModal()},this.tableActions=p.ordering}return l.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"name",cellTransformation:R.a.executing,flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("State"),prop:"is_protected",flexGrow:1,cellClass:"text-center",cellTemplate:this.protectTpl},{name:this.i18n("Created"),prop:"timestamp",flexGrow:1,pipe:this.cdDatePipe}]},l.prototype.ngOnChanges=function(){var l=this;this.taskListService.init(function(){return Object(b.a)(l.snapshots)},null,function(n){return l.data=n},function(){return l.data=l.snapshots},function(n){return["rbd/snap/create","rbd/snap/delete","rbd/snap/edit","rbd/snap/rollback"].includes(n.name)&&l.poolName===n.metadata.pool_name&&l.rbdName===n.metadata.image_name},function(l,n){return l.name===n.metadata.snapshot_name},this.builders)},l.prototype.openSnapshotModal=function(l,n){var e=this;void 0===n&&(n=null),this.modalRef=this.modalService.show(N.a),this.modalRef.content.poolName=this.poolName,this.modalRef.content.imageName=this.rbdName,n?this.modalRef.content.setEditing():n=this.rbdName+"_"+v().toISOString(!0),this.modalRef.content.setSnapName(n),this.modalRef.content.onSubmit.subscribe(function(n){var t=new S.a;t.name=l,t.metadata={image_name:e.rbdName,pool_name:e.poolName,snapshot_name:n},e.summaryService.addRunningTask(t),e.ngOnChanges()})},l.prototype.openCreateSnapshotModal=function(){this.openSnapshotModal("rbd/snap/create")},l.prototype.openEditSnapshotModal=function(){this.openSnapshotModal("rbd/snap/edit",this.selection.first().name)},l.prototype.toggleProtection=function(){var l=this,n=this.selection.first().name,e=this.selection.first().is_protected,t=new k.a;t.name="rbd/snap/edit",t.metadata={pool_name:this.poolName,image_name:this.rbdName,snapshot_name:n},this.rbdService.protectSnapshot(this.poolName,this.rbdName,n,!e).toPromise().then(function(){var n=new S.a;n.name=t.name,n.metadata=t.metadata,l.summaryService.addRunningTask(n),l.ngOnChanges(),l.taskManagerService.subscribe(t.name,t.metadata,function(n){l.notificationService.notifyTask(n)})})},l.prototype._asyncTask=function(l,n,e){var t=this,u=new k.a;u.name=n,u.metadata={pool_name:this.poolName,image_name:this.rbdName,snapshot_name:e},this.rbdService[l](this.poolName,this.rbdName,e).toPromise().then(function(){var l=new S.a;l.name=u.name,l.metadata=u.metadata,t.summaryService.addRunningTask(l),t.modalRef.hide(),t.ngOnChanges(),t.taskManagerService.subscribe(l.name,l.metadata,function(l){t.notificationService.notifyTask(l)})}).catch(function(){t.modalRef.content.stopLoadingSpinner()})},l.prototype.rollbackModal=function(){var l=this,n=this.selection.selected[0].name,e={titleText:this.i18n("RBD snapshot rollback"),buttonText:this.i18n("Rollback"),bodyTpl:this.rollbackTpl,bodyData:{snapName:this.poolName+"/"+this.rbdName+"@"+n},onSubmit:function(){l._asyncTask("rollbackSnapshot","rbd/snap/rollback",n)}};this.modalRef=this.modalService.show(C.a,{initialState:e})},l.prototype.deleteSnapshotModal=function(){var l=this,n=this.selection.selected[0].name;this.modalRef=this.modalService.show(_.a,{initialState:{itemDescription:this.i18n("RBD snapshot"),itemNames:[n],submitAction:function(){return l._asyncTask("deleteSnapshot","rbd/snap/delete",n)}}})},l.prototype.updateSelection=function(l){this.selection=l},l}(),q=e("DQlY"),M=e("Jm/i"),A=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function B(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","label label-success"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["PROTECTED"]))],null,null)}function j(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","label label-info"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["UNPROTECTED"]))],null,null)}function U(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,B)),t["\u0275did"](1,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,j)),t["\u0275did"](3,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.context.value),l(n,3,0,!n.context.value)},null)}function G(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["You are about to rollback"])),(l()(),t["\u0275eld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](3,null,["",""])),(l()(),t["\u0275ted"](-1,null,[".\n"]))],null,function(l,n){l(n,3,0,n.context.$implicit.snapName)})}function L(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{nameTpl:0}),t["\u0275qud"](402653184,2,{protectTpl:0}),t["\u0275qud"](402653184,3,{rollbackTpl:0}),(l()(),t["\u0275eld"](3,0,null,null,3,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,e){var t=!0;return"updateSelection"===n&&(t=!1!==l.component.updateSelection(e)&&t),t},d.b,d.a)),t["\u0275did"](4,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](5,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,p.b,p.a)),t["\u0275did"](6,114688,null,0,m.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275and"](0,[[2,2],["protectTpl",2]],null,0,null,U)),(l()(),t["\u0275and"](0,[[3,2],["rollbackTpl",2]],null,0,null,G))],function(l,n){var e=n.component;l(n,4,0,e.data,e.columns,"flex","single"),l(n,6,0,e.permission,e.selection,e.tableActions)},null)}var z=e("EFGL"),W=e("aAWM"),$=e("aXbf"),X=e("o8EM"),Y=e("nSDx"),K=e("o4+5"),J=e("JBea");e.d(n,"b",function(){return Z}),e.d(n,"c",function(){return dl}),e.d(n,"a",function(){return pl});var Z=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Q(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Only available for RBD images with "])),(l()(),t["\u0275eld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["fast-diff"])),(l()(),t["\u0275ted"](-1,null,[" enabled"]))],null,null)}function H(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","badge badge-pill badge-primary margin-right-sm"]],null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["",""]))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function ll(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,16777216,null,null,2,"span",[["class","text-muted"],["placement","top"]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](2,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["\u0275ted"](-1,null,["N/A"]))],function(l,n){l(n,2,0,t["\u0275nov"](n.parent.parent,5),"top")},function(l,n){l(n,1,0,t["\u0275nov"](n,2).ariaDescribedby)})}function nl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var e=n.component,u=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,2),e.selectedItem.disk_usage));l(n,1,0,u)})}function el(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,16777216,null,null,2,"span",[["class","text-muted"],["placement","top"]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](2,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["\u0275ted"](-1,null,["N/A"]))],function(l,n){l(n,2,0,t["\u0275nov"](n.parent.parent,5),"top")},function(l,n){l(n,1,0,t["\u0275nov"](n,2).ariaDescribedby)})}function tl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var e=n.component,u=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,2),e.selectedItem.total_disk_usage));l(n,1,0,u)})}function ul(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[""," /"," @",""]))],null,function(l,n){var e=n.component;l(n,1,0,e.selectedItem.parent.pool_name,e.selectedItem.parent.image_name,e.selectedItem.parent.snap_name)})}function il(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["-"]))],null,null)}function ol(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,110,"tabset",[],[[2,"tab-container",null]],null,null,a.b,a.a)),t["\u0275did"](1,180224,null,0,r.d,[r.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,99,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,r.b,[r.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](4,0,null,null,97,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,96,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275eld"](9,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](10,null,["",""])),(l()(),t["\u0275eld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pool"])),(l()(),t["\u0275eld"](14,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](15,null,["",""])),(l()(),t["\u0275eld"](16,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Data Pool"])),(l()(),t["\u0275eld"](19,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](20,null,["",""])),t["\u0275ppd"](21,1),(l()(),t["\u0275eld"](22,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](23,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Created"])),(l()(),t["\u0275eld"](25,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](26,null,["",""])),t["\u0275ppd"](27,1),(l()(),t["\u0275eld"](28,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](29,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Size"])),(l()(),t["\u0275eld"](31,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](32,null,["",""])),t["\u0275ppd"](33,1),(l()(),t["\u0275eld"](34,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](35,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Objects"])),(l()(),t["\u0275eld"](37,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](38,null,["",""])),t["\u0275ppd"](39,1),(l()(),t["\u0275eld"](40,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](41,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Object size"])),(l()(),t["\u0275eld"](43,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](44,null,["",""])),t["\u0275ppd"](45,1),(l()(),t["\u0275eld"](46,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](47,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Features"])),(l()(),t["\u0275eld"](49,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,H)),t["\u0275did"](51,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](52,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](53,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Provisioned"])),(l()(),t["\u0275eld"](55,0,null,null,4,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,ll)),t["\u0275did"](57,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,nl)),t["\u0275did"](59,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](60,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](61,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Total provisioned"])),(l()(),t["\u0275eld"](63,0,null,null,4,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,el)),t["\u0275did"](65,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,tl)),t["\u0275did"](67,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](68,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](69,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Striping unit"])),(l()(),t["\u0275eld"](71,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](72,null,["",""])),t["\u0275ppd"](73,1),(l()(),t["\u0275eld"](74,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](75,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Striping count"])),(l()(),t["\u0275eld"](77,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](78,null,["",""])),(l()(),t["\u0275eld"](79,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](80,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Parent"])),(l()(),t["\u0275eld"](82,0,null,null,4,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,ul)),t["\u0275did"](84,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,il)),t["\u0275did"](86,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](87,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](88,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Block name prefix"])),(l()(),t["\u0275eld"](90,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](91,null,["",""])),(l()(),t["\u0275eld"](92,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](93,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Order"])),(l()(),t["\u0275eld"](95,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](96,null,["",""])),(l()(),t["\u0275eld"](97,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](98,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Format Version"])),(l()(),t["\u0275eld"](100,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](101,null,["",""])),(l()(),t["\u0275eld"](102,0,null,0,4,"tab",[["heading","Snapshots"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](103,212992,null,0,r.b,[r.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](104,0,null,null,2,"cd-rbd-snapshot-list",[],null,null,null,L,A)),t["\u0275prd"](131584,null,f.a,f.a,[g.a,h.a]),t["\u0275did"](106,638976,null,0,O,[D.a,q.b,F.a,E.a,y.a,T.a,V.a,h.a,f.a,M.a,w.b],{snapshots:[0,"snapshots"],poolName:[1,"poolName"],rbdName:[2,"rbdName"]},null),(l()(),t["\u0275eld"](107,0,null,0,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](108,212992,null,0,r.b,[r.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](109,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,z.b,z.a)),t["\u0275did"](110,638976,null,0,W.a,[$.a,X.a,M.a],{data:[0,"data"]},null)],function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,51,0,e.selectedItem.features_name),l(n,57,0,-1===(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,59,0,-1!==(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,65,0,-1===(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,67,0,-1!==(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,84,0,e.selectedItem.parent),l(n,86,0,!e.selectedItem.parent),l(n,103,0,"Snapshots"),l(n,106,0,e.selectedItem.snapshots,e.selectedItem.pool_name,e.selectedItem.name),l(n,108,0,"Configuration"),l(n,110,0,e.selectedItem.configuration)},function(l,n){var e=n.component;l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass),l(n,10,0,e.selectedItem.name),l(n,15,0,e.selectedItem.pool_name);var u=t["\u0275unv"](n,20,0,l(n,21,0,t["\u0275nov"](n.parent,0),e.selectedItem.data_pool));l(n,20,0,u);var i=t["\u0275unv"](n,26,0,l(n,27,0,t["\u0275nov"](n.parent,1),e.selectedItem.timestamp));l(n,26,0,i);var o=t["\u0275unv"](n,32,0,l(n,33,0,t["\u0275nov"](n.parent,2),e.selectedItem.size));l(n,32,0,o);var a=t["\u0275unv"](n,38,0,l(n,39,0,t["\u0275nov"](n.parent,3),e.selectedItem.num_objs));l(n,38,0,a);var r=t["\u0275unv"](n,44,0,l(n,45,0,t["\u0275nov"](n.parent,2),e.selectedItem.obj_size));l(n,44,0,r);var s=t["\u0275unv"](n,72,0,l(n,73,0,t["\u0275nov"](n.parent,2),e.selectedItem.stripe_unit));l(n,72,0,s),l(n,78,0,e.selectedItem.stripe_count),l(n,91,0,e.selectedItem.block_name_prefix),l(n,96,0,e.selectedItem.order),l(n,101,0,e.selection.image_format),l(n,102,0,t["\u0275nov"](n,103).id,t["\u0275nov"](n,103).active,t["\u0275nov"](n,103).addClass),l(n,107,0,t["\u0275nov"](n,108).id,t["\u0275nov"](n,108).active,t["\u0275nov"](n,108).addClass)})}function al(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,16777216,null,null,2,"strong",[["tooltip","This setting overrides the global value"]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](2,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275ted"](-1,null,["Image"])),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,2,0,"This setting overrides the global value")},function(l,n){l(n,1,0,t["\u0275nov"](n,2).ariaDescribedby)})}function rl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,16777216,null,null,2,"span",[["tooltip","This is the global value. No value for this option has been set for this image."]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](1,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275ted"](-1,null,["Global"])),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"This is the global value. No value for this option has been set for this image.")},function(l,n){l(n,0,0,t["\u0275nov"](n,1).ariaDescribedby)})}function sl(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,al)),t["\u0275did"](1,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),t["\u0275and"](0,[["global",2]],null,0,null,rl))],function(l,n){l(n,1,0,n.context.value-0,t["\u0275nov"](n,2))},null)}function dl(l){return t["\u0275vid"](0,[t["\u0275pid"](0,Y.a,[]),t["\u0275pid"](0,E.a,[s.DatePipe]),t["\u0275pid"](0,F.a,[$.a]),t["\u0275pid"](0,K.a,[$.a]),t["\u0275qud"](402653184,1,{poolConfigurationSourceTpl:0}),(l()(),t["\u0275and"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,Q)),(l()(),t["\u0275and"](16777216,null,null,1,null,ol)),t["\u0275did"](7,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,[[1,2],["poolConfigurationSourceTpl",2]],null,0,null,sl))],function(l,n){var e=n.component;l(n,7,0,null==e.selection?null:e.selection.hasSingleSelection)},null)}function cl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-details",[],null,null,null,dl,Z)),t["\u0275did"](1,573440,null,0,J.a,[],null,null)],null,null)}var pl=t["\u0275ccf"]("cd-rbd-details",J.a,cl,{selection:"selection",images:"images"},{},[])},L4us:function(l,n,e){"use strict";var t=e("gIcY"),u=(e("XED3"),e("QFaf")),i=e("kvvV"),o=(e("kn/O"),function(){return function(){}}());e.d(n,"a",function(){return a});var a=function(){function l(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.bsConfig={containerClass:"theme-default"},this.createForm()}return l.prototype.createForm=function(){this.editPeerForm=new u.a({clusterName:new t.i("",{validators:[t.A.required,this.validateClusterName]}),clientID:new t.i("",{validators:[t.A.required,this.validateClientID]}),monAddr:new t.i("",{validators:[this.validateMonAddr]}),key:new t.i("",{validators:[this.validateKey]})})},l.prototype.ngOnInit=function(){var l=this;this.pattern=this.poolName+"/"+this.peerUUID,"edit"===this.mode&&this.rbdMirroringService.getPeer(this.poolName,this.peerUUID).subscribe(function(n){l.setResponse(n)})},l.prototype.validateClusterName=function(l){if(!l.value.match(/^[\w\-_]*$/))return{invalidClusterName:{value:l.value}}},l.prototype.validateClientID=function(l){if(!l.value.match(/^(?!client\.)[\w\-_.]*$/))return{invalidClientID:{value:l.value}}},l.prototype.validateMonAddr=function(l){if(!l.value.match(/^[,; ]*([\w.\-_\[\]]+(:[\d]+)?[,; ]*)*$/))return{invalidMonAddr:{value:l.value}}},l.prototype.validateKey=function(l){try{if(""===l.value||atob(l.value))return null}catch(n){}return{invalidKey:{value:l.value}}},l.prototype.setResponse=function(l){this.response=l,this.editPeerForm.get("clusterName").setValue(l.cluster_name),this.editPeerForm.get("clientID").setValue(l.client_id),this.editPeerForm.get("monAddr").setValue(l.mon_host),this.editPeerForm.get("key").setValue(l.key)},l.prototype.update=function(){var l=this,n=new o;n.cluster_name=this.editPeerForm.getValue("clusterName"),n.client_id=this.editPeerForm.getValue("clientID"),n.mon_host=this.editPeerForm.getValue("monAddr"),n.key=this.editPeerForm.getValue("key"),this.taskWrapper.wrapTaskAroundCall("edit"===this.mode?{task:new i.a("rbd/mirroring/peer/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePeer(this.poolName,this.peerUUID,n)}:{task:new i.a("rbd/mirroring/peer/add",{pool_name:this.poolName}),call:this.rbdMirroringService.addPeer(this.poolName,n)}).subscribe(void 0,function(){return l.editPeerForm.setErrors({cdSubmitButton:!0})},function(){l.rbdMirroringService.refresh(),l.modalRef.hide()})},l}()},MyVl:function(l,n,e){"use strict";var t,u=e("CcnG"),i=e("gIcY"),o=e("LvDl"),a=e("svcd"),r=e("15JJ"),s=(e("Ekvf"),e("F83c"),e("sne2"),e("QFaf")),d=e("PhyI"),c=e("kvvV"),p=(e("Fgil"),e("aexS"),e("aXbf"),e("kn/O"),e("u0yg")),m=function(){return function(){this.features=[]}}(),f=function(){return function(){this.features=[]}}(),g=e("mrSG"),h=function(l){function n(){var n=null!==l&&l.apply(this,arguments)||this;return n.features=[],n}return g.__extends(n,l),n}(function(){return function(){}}()),v=function(){return function(){this.features=[]}}();!function(l){l.editing="editing",l.cloning="cloning",l.copying="copying"}(t||(t={})),e.d(n,"a",function(){return b});var b=function(){function l(l,n,e,i,o,r,s,d,c,p){this.authStorageService=l,this.route=n,this.poolService=e,this.rbdService=i,this.formatter=o,this.taskWrapper=r,this.dimlessBinaryPipe=s,this.i18n=d,this.actionLabels=c,this.router=p,this.pools=null,this.allPools=null,this.dataPools=null,this.allDataPools=null,this.featuresList=[],this.initializeConfigData=new u.EventEmitter,this.advancedEnabled=!1,this.rbdFormMode=t,this.defaultObjectSize="4 MiB",this.objectSizes=["4 KiB","8 KiB","16 KiB","32 KiB","64 KiB","128 KiB","256 KiB","512 KiB","1 MiB","2 MiB","4 MiB","8 MiB","16 MiB","32 MiB"],this.rbdImage=new a.a,this.poolPermission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("RBD"),this.features={"deep-flatten":{desc:this.i18n("Deep flatten"),requires:null,allowEnable:!1,allowDisable:!0},layering:{desc:this.i18n("Layering"),requires:null,allowEnable:!1,allowDisable:!1},"exclusive-lock":{desc:this.i18n("Exclusive lock"),requires:null,allowEnable:!0,allowDisable:!0},"object-map":{desc:this.i18n("Object map (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},journaling:{desc:this.i18n("Journaling (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},"fast-diff":{desc:this.i18n("Fast diff (interlocked with object-map)"),requires:"object-map",allowEnable:!0,allowDisable:!0,interlockedWith:"object-map",initDisabled:!0}},this.featuresList=this.objToArray(this.features),this.createForm()}return l.prototype.objToArray=function(l){return o.map(l,function(l,n){return Object.assign(l,{key:n})})},l.prototype.createForm=function(){this.rbdForm=new s.a({parent:new i.i(""),name:new i.i("",{validators:[i.A.required,i.A.pattern(/^[^@\/]+?$/)]}),pool:new i.i(null,{validators:[i.A.required]}),useDataPool:new i.i(!1),dataPool:new i.i(null),size:new i.i(null,{updateOn:"blur"}),obj_size:new i.i(this.defaultObjectSize),features:new s.a(this.featuresList.reduce(function(l,n){return l[n.key]=new i.i({value:!1,disabled:!!n.initDisabled}),l},{})),stripingUnit:new i.i(null),stripingCount:new i.i(null,{updateOn:"blur"})},this.validateRbdForm(this.formatter))},l.prototype.disableForEdit=function(){var l=this;this.rbdForm.get("parent").disable(),this.rbdForm.get("pool").disable(),this.rbdForm.get("useDataPool").disable(),this.rbdForm.get("dataPool").disable(),this.rbdForm.get("obj_size").disable(),this.rbdForm.get("stripingUnit").disable(),this.rbdForm.get("stripingCount").disable(),this.rbdImage.subscribe(function(n){n.image_format===p.a.V1&&(l.rbdForm.get("deep-flatten").disable(),l.rbdForm.get("layering").disable(),l.rbdForm.get("exclusive-lock").disable())})},l.prototype.disableForClone=function(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()},l.prototype.disableForCopy=function(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()},l.prototype.ngOnInit=function(){var l=this;this.router.url.startsWith("/block/rbd/edit")?(this.mode=this.rbdFormMode.editing,this.action=this.actionLabels.EDIT,this.disableForEdit()):this.router.url.startsWith("/block/rbd/clone")?(this.mode=this.rbdFormMode.cloning,this.disableForClone(),this.action=this.actionLabels.CLONE):this.router.url.startsWith("/block/rbd/copy")?(this.mode=this.rbdFormMode.copying,this.action=this.actionLabels.COPY,this.disableForCopy()):this.action=this.actionLabels.CREATE,this.mode===this.rbdFormMode.editing||this.mode===this.rbdFormMode.cloning||this.mode===this.rbdFormMode.copying?this.route.params.subscribe(function(n){var e=decodeURIComponent(n.pool),t=decodeURIComponent(n.name);n.snap&&(l.snapName=decodeURIComponent(n.snap)),l.rbdService.get(e,t).subscribe(function(n){l.setResponse(n,l.snapName),l.rbdImage.next(n)})}):this.rbdService.defaultFeatures().subscribe(function(n){l.setFeatures(n)}),this.mode!==this.rbdFormMode.editing&&this.poolPermission.read&&this.poolService.list(["pool_name","type","flags_names","application_metadata"]).then(function(n){for(var e=[],t=[],u=0,i=n;ul.toBytes(o.value)&&(c={invalidSizeObject:!0}),o.setErrors(c);var p=e.get("stripingUnit"),m=null;null===p.value&&null!==s.value?m={required:!0}:null!==p.value&&l.toBytes(p.value)>r&&(m={invalidStripingUnit:!0}),p.setErrors(m);var f=null;return null===s.value&&null!==p.value?f={required:!0}:d<1&&(f={min:!0}),s.setErrors(f),null}},l.prototype.getDependendChildFeatures=function(l){return o.filter(this.features,function(n){return n.requires===l})||[]},l.prototype.deepBoxCheck=function(l,n){var e=this;this.getDependendChildFeatures(l).forEach(function(l){var t=e.rbdForm.get(l.key);n?t.enable({emitEvent:!1}):(t.disable({emitEvent:!1}),t.setValue(!1,{emitEvent:!1}),e.deepBoxCheck(l.key,n));var u=e.rbdForm.get("features");e.mode===e.rbdFormMode.editing&&u.get(l.key).enabled&&((-1===e.response.features_name.indexOf(l.key)||l.allowDisable)&&(-1!==e.response.features_name.indexOf(l.key)||l.allowEnable)||u.get(l.key).disable())})},l.prototype.interlockCheck=function(l,n){var e=this,t=this.featuresList.find(function(n){return n.key===l});if(this.response){var u=null!=t.interlockedWith,i=this.featuresList.find(function(l){return l.interlockedWith===t.key}),a=!!this.response.features_name.find(function(l){return l===t.key});if(u){if(a!==!!this.response.features_name.find(function(l){return l===t.interlockedWith}))return}else if(i&&!!this.response.features_name.find(function(l){return l===i.key})!==a)return}n?o.filter(this.features,function(n){return n.interlockedWith===l}).forEach(function(l){return e.rbdForm.get(l.key).setValue(!0,{emitEvent:!1})}):t.interlockedWith&&this.rbdForm.get("features").get(t.interlockedWith).setValue(!1)},l.prototype.featureFormUpdate=function(l,n){if(n){var e=this.features[l].requires;if(e&&!this.rbdForm.getValue(e))return void this.rbdForm.get("features."+l).setValue(!1)}this.deepBoxCheck(l,n),this.interlockCheck(l,n)},l.prototype.setFeatures=function(l){var n=this,e=this.rbdForm.get("features");o.forIn(this.features,function(t){-1!==l.indexOf(t.key)&&e.get(t.key).setValue(!0),n.featureFormUpdate(t.key,e.get(t.key).value)})},l.prototype.setResponse=function(l,n){if(this.response=l,this.mode===this.rbdFormMode.cloning)this.rbdForm.get("parent").setValue(l.pool_name+"/"+l.name+"@"+n);else if(this.mode===this.rbdFormMode.copying)n?this.rbdForm.get("parent").setValue(l.pool_name+"/"+l.name+"@"+n):this.rbdForm.get("parent").setValue(l.pool_name+"/"+l.name);else if(l.parent){var e=l.parent;this.rbdForm.get("parent").setValue(e.pool_name+"/"+e.image_name+"@"+e.snap_name)}this.mode===this.rbdFormMode.editing&&this.rbdForm.get("name").setValue(l.name),this.rbdForm.get("pool").setValue(l.pool_name),l.data_pool&&(this.rbdForm.get("useDataPool").setValue(!0),this.rbdForm.get("dataPool").setValue(l.data_pool)),this.rbdForm.get("size").setValue(this.dimlessBinaryPipe.transform(l.size)),this.rbdForm.get("obj_size").setValue(this.dimlessBinaryPipe.transform(l.obj_size)),this.setFeatures(l.features_name),this.rbdForm.get("stripingUnit").setValue(this.dimlessBinaryPipe.transform(l.stripe_unit)),this.rbdForm.get("stripingCount").setValue(l.stripe_count),this.initializeConfigData.emit({initialData:this.response.configuration,sourceType:d.a.image})},l.prototype.createRequest=function(){var l=this,n=new h;return n.pool_name=this.rbdForm.getValue("pool"),n.name=this.rbdForm.getValue("name"),n.size=this.formatter.toBytes(this.rbdForm.getValue("size")),n.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),n.stripe_count=this.rbdForm.getValue("stripingCount"),n.data_pool=this.rbdForm.getValue("dataPool"),n.configuration=this.getDirtyConfigurationValues(),n},l.prototype.createAction=function(){var l=this.createRequest();return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/create",{pool_name:l.pool_name,image_name:l.name}),call:this.rbdService.create(l)})},l.prototype.editRequest=function(){var l=this,n=new v;return n.name=this.rbdForm.getValue("name"),n.size=this.formatter.toBytes(this.rbdForm.getValue("size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.configuration=this.getDirtyConfigurationValues(),n},l.prototype.cloneRequest=function(){var l=this,n=new m;return n.child_pool_name=this.rbdForm.getValue("pool"),n.child_image_name=this.rbdForm.getValue("name"),n.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),n.stripe_count=this.rbdForm.getValue("stripingCount"),n.data_pool=this.rbdForm.getValue("dataPool"),n.configuration=this.getDirtyConfigurationValues(!0,d.a.image),n},l.prototype.editAction=function(){return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/edit",{pool_name:this.response.pool_name,image_name:this.response.name}),call:this.rbdService.update(this.response.pool_name,this.response.name,this.editRequest())})},l.prototype.cloneAction=function(){var l=this.cloneRequest();return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/clone",{parent_pool_name:this.response.pool_name,parent_image_name:this.response.name,parent_snap_name:this.snapName,child_pool_name:l.child_pool_name,child_image_name:l.child_image_name}),call:this.rbdService.cloneSnapshot(this.response.pool_name,this.response.name,this.snapName,l)})},l.prototype.copyRequest=function(){var l=this,n=new f;return this.snapName&&(n.snapshot_name=this.snapName),n.dest_pool_name=this.rbdForm.getValue("pool"),n.dest_image_name=this.rbdForm.getValue("name"),n.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),n.stripe_count=this.rbdForm.getValue("stripingCount"),n.data_pool=this.rbdForm.getValue("dataPool"),n.configuration=this.getDirtyConfigurationValues(!0,d.a.image),n},l.prototype.copyAction=function(){var l=this.copyRequest();return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/copy",{src_pool_name:this.response.pool_name,src_image_name:this.response.name,dest_pool_name:l.dest_pool_name,dest_image_name:l.dest_image_name}),call:this.rbdService.copy(this.response.pool_name,this.response.name,l)})},l.prototype.submit=function(){var l=this;this.mode||this.rbdImage.next("create"),this.rbdImage.complete(),this.rbdImage.pipe(Object(r.a)(function(){return l.mode===l.rbdFormMode.editing?l.editAction():l.mode===l.rbdFormMode.cloning?l.cloneAction():l.mode===l.rbdFormMode.copying?l.copyAction():l.createAction()})).subscribe(function(){},function(){return l.rbdForm.setErrors({cdSubmitButton:!0})},function(){return l.router.navigate(["/block/rbd"])})},l}()},OcYo:function(l,n,e){"use strict";e.d(n,"a",function(){return t});var t=function(){function l(l,n,e){this.elementRef=l,this.renderer=n,this.toastr=e}return l.prototype.ngOnInit=function(){var l=this.renderer.createElement("i");this.renderer.addClass(l,"icon-prepend"),this.renderer.addClass(l,"fa"),this.renderer.addClass(l,"fa-clipboard"),this.renderer.appendChild(this.elementRef.nativeElement,l)},l.prototype.getInputElement=function(){return document.getElementById(this.cdCopy2ClipboardButton)},l.prototype.onClick=function(){try{var l=document.createElement("input");l.value=this.getInputElement().value,document.body.appendChild(l),l.select(),document.execCommand("copy"),document.body.removeChild(l),this.toastr.success("Copied text to the clipboard successfully.")}catch(n){this.toastr.error("Failed to copy text to the clipboard.")}},l}()},PhyI:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e.d(n,"b",function(){return u});var t=function(l){return l[l.global=0]="global",l[l.pool=1]="pool",l[l.image=2]="image",l}({}),u=function(l){return l[l.bps=0]="bps",l[l.iops=1]="iops",l[l.milliseconds=2]="milliseconds",l}({})},RIVN:function(l,n,e){"use strict";var t=e("CcnG"),u=e("C6Ij"),i=e("AWcq"),o=e("Ip0R"),a=function(){function l(){}return l.prototype.transform=function(l){return"warning"===l?"label label-warning":"error"===l?"label label-danger":"success"===l?"label label-success":"label label-info"},l}(),r=e("25BL"),s=e("uIqm"),d=e("XED3"),c=e("85J/"),p=function(){function l(l,n,e){this.rbdMirroringService=l,this.cephShortVersionPipe=n,this.i18n=e}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{prop:"instance_id",name:this.i18n("Instance"),flexGrow:2},{prop:"id",name:this.i18n("ID"),flexGrow:2},{prop:"server_hostname",name:this.i18n("Hostname"),flexGrow:2},{prop:"version",name:this.i18n("Version"),pipe:this.cephShortVersionPipe,flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.data=n.content_data.daemons)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.refresh=function(){this.rbdMirroringService.refresh()},l}(),m=e("Jm/i"),f=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function g(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{ngClass:[0,"ngClass"]},null),t["\u0275ppd"](2,1),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent,0),n.context.row.health_color));l(n,1,0,e)},function(l,n){l(n,3,0,n.context.value)})}function h(l){return t["\u0275vid"](0,[t["\u0275pid"](0,a,[]),t["\u0275qud"](402653184,1,{healthTmpl:0}),(l()(),t["\u0275eld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},r.b,r.a)),t["\u0275did"](3,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275and"](0,[[1,2],["healthTmpl",2]],null,0,null,g))],function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",0)},null)}var v=e("NUGo"),b=e("S7zO"),y=e("6blF"),C=e("0+/T"),_=e("vCyI"),w=e("kvvV"),R=e("aexS"),I=e("kn/O"),S=e("aa9H"),k=e("L4us"),E=function(){function l(l,n,e,t,u){var i=this;this.authStorageService=l,this.rbdMirroringService=n,this.modalService=e,this.taskWrapper=t,this.i18n=u,this.selection=new _.a,this.data=[],this.permission=this.authStorageService.getPermissions().rbdMirroring;var o={permission:"update",icon:"fa-edit",click:function(){return i.editModeModal()},name:this.i18n("Edit Mode"),canBePrimary:function(){return!0}},a={permission:"create",icon:"fa-plus",name:this.i18n("Add Peer"),click:function(){return i.editPeersModal("add")},disable:function(){return!i.selection.first()||"disabled"===i.selection.first().mirror_mode},visible:function(){return!i.getPeerUUID()},canBePrimary:function(){return!1}},r={permission:"update",icon:"fa-exchange",name:this.i18n("Edit Peer"),click:function(){return i.editPeersModal("edit")},visible:function(){return!!i.getPeerUUID()}},s={permission:"delete",icon:"fa-times",name:this.i18n("Delete Peer"),click:function(){return i.deletePeersModal()},visible:function(){return!!i.getPeerUUID()}};this.tableActions=[o,a,r,s]}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{prop:"name",name:this.i18n("Name"),flexGrow:2},{prop:"mirror_mode",name:this.i18n("Mode"),flexGrow:2},{prop:"leader_id",name:this.i18n("Leader"),flexGrow:2},{prop:"image_local_count",name:this.i18n("# Local"),flexGrow:2},{prop:"image_remote_count",name:this.i18n("# Remote"),flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.data=n.content_data.pools)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.refresh=function(){this.rbdMirroringService.refresh()},l.prototype.editModeModal=function(){var l={poolName:this.selection.first().name};this.modalRef=this.modalService.show(S.a,{initialState:l})},l.prototype.editPeersModal=function(l){var n={poolName:this.selection.first().name,mode:l};"edit"===l&&(n.peerUUID=this.getPeerUUID()),this.modalRef=this.modalService.show(k.a,{initialState:n})},l.prototype.deletePeersModal=function(){var l=this,n=this.selection.first().name,e=this.getPeerUUID();this.modalRef=this.modalService.show(C.a,{initialState:{itemDescription:this.i18n("mirror peer"),itemNames:[n+" ("+e+")"],submitActionObservable:function(){return new y.a(function(t){l.taskWrapper.wrapTaskAroundCall({task:new w.a("rbd/mirroring/peer/delete",{pool_name:n}),call:l.rbdMirroringService.deletePeer(n,e)}).subscribe(void 0,function(l){return t.error(l)},function(){l.rbdMirroringService.refresh(),t.complete()})})}}})},l.prototype.getPeerUUID=function(){var l=this.selection.first(),n=this.data.find(function(n){return l&&l.name===n.name});if(n&&n.peer_uuids)return n.peer_uuids[0]},l.prototype.updateSelection=function(l){this.selection=l},l}(),F=e("DQlY"),D=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function V(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{ngClass:[0,"ngClass"]},null),t["\u0275ppd"](2,1),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent,0),n.context.row.health_color));l(n,1,0,e)},function(l,n){l(n,3,0,n.context.value)})}function T(l){return t["\u0275vid"](0,[t["\u0275pid"](0,a,[]),t["\u0275qud"](402653184,1,{healthTmpl:0}),(l()(),t["\u0275eld"](2,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(l,n,e){var t=!0,u=l.component;return"fetchData"===n&&(t=!1!==u.refresh()&&t),"updateSelection"===n&&(t=!1!==u.updateSelection(e)&&t),t},r.b,r.a)),t["\u0275did"](3,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](4,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,v.b,v.a)),t["\u0275did"](5,114688,null,0,b.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275and"](0,[[1,2],["healthTmpl",2]],null,0,null,V))],function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",0,"name","true","single"),l(n,5,0,e.permission,e.selection,e.tableActions)},null)}var N=e("Da1D"),P=t["\u0275crt"]({encapsulation:2,styles:[],data:{}});function x(l){return t["\u0275vid"](0,[t["\u0275ncd"](null,0)],null,null)}var O=t["\u0275crt"]({encapsulation:0,styles:["[_nghost-%COMP%] {\n width: 100%;\n display: flex;\n }"],data:{}});function q(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[8,"className",0],[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"]],null,null,x,P)),t["\u0275did"](1,245760,null,0,N.a,[N.b],{type:[0,"type"],value:[1,"value"]},null),t["\u0275ncd"](0,0)],function(l,n){var e=n.component;l(n,1,0,e.type,e._value)},function(l,n){l(n,0,0,"progress-bar "+(t["\u0275nov"](n,1).type?"progress-bar-"+t["\u0275nov"](n,1).type+" bg-"+t["\u0275nov"](n,1).type:""),!t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).striped,t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).value,t["\u0275nov"](n,1).percent?t["\u0275nov"](n,1).percent.toFixed(0)+"%":"",t["\u0275nov"](n,1).max,"100",t["\u0275nov"](n,1).setBarWidth)})}function M(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[8,"className",0],[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"]],null,null,x,P)),t["\u0275did"](1,245760,null,0,N.a,[N.b],{type:[0,"type"],value:[1,"value"]},null),(l()(),t["\u0275ted"](2,0,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.type,n.context.$implicit.value)},function(l,n){l(n,0,0,"progress-bar "+(t["\u0275nov"](n,1).type?"progress-bar-"+t["\u0275nov"](n,1).type+" bg-"+t["\u0275nov"](n,1).type:""),!t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).striped,t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).value,t["\u0275nov"](n,1).percent?t["\u0275nov"](n,1).percent.toFixed(0)+"%":"",t["\u0275nov"](n,1).max,"100",t["\u0275nov"](n,1).setBarWidth),l(n,2,0,n.context.$implicit.label)})}function A(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,M)),t["\u0275did"](1,278528,null,0,o.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.component._value)},null)}function B(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,q)),t["\u0275did"](1,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,A)),t["\u0275did"](3,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,1,0,!e.isStacked),l(n,3,0,e.isStacked)},null)}var j=e("pKUh"),U=e("YAQW"),G=function(){function l(l,n){this.rbdMirroringService=l,this.i18n=n,this.image_error={data:[],columns:{}},this.image_syncing={data:[],columns:{}},this.image_ready={data:[],columns:{}}}return l.prototype.ngOnInit=function(){var l=this;this.image_error.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Issue"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.image_syncing.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"progress",name:this.i18n("Progress"),cellTemplate:this.progressTmpl,flexGrow:2},{prop:"state",name:this.i18n("State"),cellTemplate:this.syncTmpl,flexGrow:1}],this.image_ready.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Description"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.image_error.data=n.content_data.image_error,l.image_syncing.data=n.content_data.image_syncing,l.image_ready.data=n.content_data.image_ready)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.refresh=function(){this.rbdMirroringService.refresh()},l}(),L=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function z(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{ngClass:[0,"ngClass"]},null),t["\u0275ppd"](2,1),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent,0),n.context.row.state_color));l(n,1,0,e)},function(l,n){l(n,3,0,n.context.value)})}function W(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","label label-info"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Syncing"]))],null,null)}function $(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"progressbar",[["type","info"]],[[1,"max",0],[2,"progress",null]],null,null,B,O)),t["\u0275did"](1,49152,null,0,N.b,[N.c],{type:[0,"type"],value:[1,"value"]},null)],function(l,n){l(n,1,0,"info",n.context.value)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).max,t["\u0275nov"](n,1).addClass)})}function X(l){return t["\u0275vid"](0,[t["\u0275pid"](0,a,[]),t["\u0275qud"](402653184,1,{stateTmpl:0}),t["\u0275qud"](402653184,2,{syncTmpl:0}),t["\u0275qud"](402653184,3,{progressTmpl:0}),(l()(),t["\u0275eld"](4,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,j.b,j.a)),t["\u0275did"](5,180224,null,0,U.d,[U.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](6,0,null,0,3,"tab",[["heading","Issues"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](7,212992,null,0,U.b,[U.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](8,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},r.b,r.a)),t["\u0275did"](9,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275eld"](10,0,null,0,3,"tab",[["heading","Syncing"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](11,212992,null,0,U.b,[U.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](12,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},r.b,r.a)),t["\u0275did"](13,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275eld"](14,0,null,0,3,"tab",[["heading","Ready"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](15,212992,null,0,U.b,[U.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](16,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},r.b,r.a)),t["\u0275did"](17,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275and"](0,[[1,2],["stateTmpl",2]],null,0,null,z)),(l()(),t["\u0275and"](0,[[2,2],["syncTmpl",2]],null,0,null,W)),(l()(),t["\u0275and"](0,[[3,2],["progressTmpl",2]],null,0,null,$))],function(l,n){var e=n.component;l(n,7,0,"Issues"),l(n,9,0,e.image_error.data,e.image_error.columns,"flex",0),l(n,11,0,"Syncing"),l(n,13,0,e.image_syncing.data,e.image_syncing.columns,"flex",0),l(n,15,0,"Ready"),l(n,17,0,e.image_ready.data,e.image_ready.columns,"flex",0)},function(l,n){l(n,4,0,t["\u0275nov"](n,5).clazz),l(n,6,0,t["\u0275nov"](n,7).id,t["\u0275nov"](n,7).active,t["\u0275nov"](n,7).addClass),l(n,10,0,t["\u0275nov"](n,11).id,t["\u0275nov"](n,11).active,t["\u0275nov"](n,11).addClass),l(n,14,0,t["\u0275nov"](n,15).id,t["\u0275nov"](n,15).active,t["\u0275nov"](n,15).addClass)})}var Y=e("cxJu");e.d(n,"a",function(){return Q});var K=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function J(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,u.b,u.a)),t["\u0275did"](1,114688,null,0,i.a,[],{status:[0,"status"]},null),(l()(),t["\u0275eld"](2,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Daemons"])),(l()(),t["\u0275eld"](6,0,null,null,1,"cd-mirroring-daemons",[],null,null,null,h,f)),t["\u0275did"](7,245760,null,0,p,[d.a,c.a,m.a],null,null),(l()(),t["\u0275eld"](8,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pools"])),(l()(),t["\u0275eld"](11,0,null,null,1,"cd-mirroring-pools",[],null,null,null,T,D)),t["\u0275did"](12,245760,null,0,E,[R.a,d.a,F.b,I.a,m.a],null,null),(l()(),t["\u0275eld"](13,0,null,null,5,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](14,0,null,null,4,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](15,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Images"])),(l()(),t["\u0275eld"](17,0,null,null,1,"cd-mirroring-images",[],null,null,null,X,L)),t["\u0275did"](18,245760,null,0,G,[d.a,m.a],null,null)],function(l,n){l(n,1,0,n.component.status),l(n,7,0),l(n,12,0),l(n,18,0)},null)}function Z(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-mirroring",[],null,null,null,J,K)),t["\u0275did"](1,245760,null,0,Y.a,[d.a],null,null)],function(l,n){l(n,1,0)},null)}var Q=t["\u0275ccf"]("cd-mirroring",Y.a,Z,{},{},[])},Sofw:function(l,n,e){"use strict";e.d(n,"a",function(){return a});var t=e("gIcY"),u=(e("my5R"),e("mtw6")),i=e("QFaf"),o=e("1Ni5"),a=(e("aexS"),e("9nlD"),function(){function l(l,n,e,t,u){this.authStorageService=l,this.bsModalRef=n,this.iscsiService=e,this.notificationService=t,this.i18n=u,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.permission=this.authStorageService.getPermissions().iscsi}return l.prototype.ngOnInit=function(){var l=this;this.hasPermission=this.permission.update,this.createForm(),this.iscsiService.getDiscovery().subscribe(function(n){l.discoveryForm.patchValue(n)})},l.prototype.createForm=function(){var l=this;this.discoveryForm=new i.a({user:new t.i({value:"",disabled:!this.hasPermission}),password:new t.i({value:"",disabled:!this.hasPermission}),mutual_user:new t.i({value:"",disabled:!this.hasPermission}),mutual_password:new t.i({value:"",disabled:!this.hasPermission})}),o.a.validateIf(this.discoveryForm.get("user"),function(){return l.discoveryForm.getValue("password")||l.discoveryForm.getValue("mutual_user")||l.discoveryForm.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),o.a.validateIf(this.discoveryForm.get("password"),function(){return l.discoveryForm.getValue("user")||l.discoveryForm.getValue("mutual_user")||l.discoveryForm.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),o.a.validateIf(this.discoveryForm.get("mutual_user"),function(){return l.discoveryForm.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_password")]),o.a.validateIf(this.discoveryForm.get("mutual_password"),function(){return l.discoveryForm.getValue("mutual_user")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user")])},l.prototype.submitAction=function(){var l=this;this.iscsiService.updateDiscovery(this.discoveryForm.value).subscribe(function(){l.notificationService.show(u.a.success,l.i18n("Updated discovery authentication")),l.bsModalRef.hide()},function(){l.discoveryForm.setErrors({cdSubmitButton:!0})})},l}())},Ur3J:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("8xTl"),o=e("gIcY"),a=e("IZUe"),r=e("ANnk"),s=e("f/UV"),d=e("aexS"),c=e("gp3X"),p=e("sb0X"),m=e("KVJa"),f=e("Z21x"),g=e("sne2"),h=e("+lcs"),v=e("DQlY"),b=e("F83c"),y=e("VXsX"),C=e("9nlD"),_=e("Jm/i");e.d(n,"a",function(){return k});var w=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function I(l){return t["\u0275vid"](0,[t["\u0275pid"](0,u.TitleCasePipe,[]),t["\u0275pid"](0,i.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,[""," ",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.modalRef.hide()&&t),t},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,32,"form",[["class","form-horizontal"],["name","snapshotForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,12).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,12).onReset()&&u),u},null,null)),t["\u0275did"](11,16384,null,0,o.D,[],null,null),t["\u0275did"](12,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,o.d,null,[o.l]),t["\u0275did"](14,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,18,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,u.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","snapshotName"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275eld"](22,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](23,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","snapshotName"],["id","snapshotName"],["name","snapshotName"],["placeholder","Snapshot name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,25)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,25).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](25,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),t["\u0275did"](27,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,o.q,null,[o.j]),t["\u0275did"](29,16384,null,0,o.r,[[4,o.q]],null,null),t["\u0275did"](30,4210688,null,0,a.a,[t.ElementRef],null,null),t["\u0275did"](31,4210688,null,0,r.a,[[2,s.a],d.a,t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](33,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](34,0,null,null,8,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](35,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](36,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submit()&&t),t},c.b,c.a)),t["\u0275did"](37,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](38,0,[""," ",""])),t["\u0275ppd"](39,1),t["\u0275ppd"](40,1),(l()(),t["\u0275eld"](41,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,m.b,m.a)),t["\u0275did"](42,49152,null,0,f.a,[u.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,12,0,e.snapshotForm);var u=l(n,18,0,e.snapshotForm.showError("snapshotName",t["\u0275nov"](n,12)));l(n,17,0,"form-group",u),l(n,27,0,"snapshotName"),l(n,33,0,e.snapshotForm.showError("snapshotName",t["\u0275nov"](n,12),"required")),l(n,37,0,e.snapshotForm),l(n,42,0,"Close",e.modalRef.hide)},function(l,n){var e=n.component,u=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),e.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),e.resource));l(n,4,0,u,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,24,0,t["\u0275nov"](n,29).ngClassUntouched,t["\u0275nov"](n,29).ngClassTouched,t["\u0275nov"](n,29).ngClassPristine,t["\u0275nov"](n,29).ngClassDirty,t["\u0275nov"](n,29).ngClassValid,t["\u0275nov"](n,29).ngClassInvalid,t["\u0275nov"](n,29).ngClassPending);var o=t["\u0275unv"](n,38,0,l(n,39,0,t["\u0275nov"](n,0),e.action)),a=t["\u0275unv"](n,38,1,l(n,40,0,t["\u0275nov"](n,1),e.resource));l(n,38,0,o,a)})}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-snapshot-form",[],null,null,null,I,w)),t["\u0275did"](1,114688,null,0,h.a,[v.a,b.a,y.a,C.a,_.a,g.b],null,null)],function(l,n){l(n,1,0)},null)}var k=t["\u0275ccf"]("cd-rbd-snapshot-form",h.a,S,{},{},[])},VBM6:function(l,n,e){"use strict";var t=e("CcnG"),u=e("EEJc"),i=e("ajRT"),o=e("Ip0R"),a=e("gIcY"),r=e("IZUe"),s=e("ANnk"),d=e("f/UV"),c=e("aexS"),p=e("gp3X"),m=e("sb0X"),f=e("KVJa"),g=e("Z21x"),h=e("sne2"),v=e("L4us"),b=e("DQlY"),y=e("XED3"),C=e("kn/O");e.d(n,"a",function(){return x});var _=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Edit"]))],null,null)}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Add"]))],null,null)}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Edit"]))],null,null)}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Add"]))],null,null)}function k(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The cluster name is not valid."]))],null,null)}function F(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function D(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The CephX ID is not valid."]))],null,null)}function V(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The monitory address is not valid."]))],null,null)}function T(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["CephX key must be base64 encoded."]))],null,null)}function N(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,105,"cd-modal",[],null,null,null,u.c,u.b)),t["\u0275did"](1,49152,null,0,i.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,7,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,5,null,null,null,null,null,null,null)),t["\u0275did"](4,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,w)),t["\u0275did"](6,278528,null,0,o.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](8,16384,null,0,o.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],null,null),(l()(),t["\u0275ted"](-1,null,[" pool mirror peer"])),(l()(),t["\u0275eld"](10,0,null,1,95,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,94,"form",[["class","form"],["name","editPeerForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,13).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,13).onReset()&&u),u},null,null)),t["\u0275did"](12,16384,null,0,a.D,[],null,null),t["\u0275did"](13,540672,[["formDir",4]],0,a.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,a.d,null,[a.l]),t["\u0275did"](15,16384,null,0,a.s,[[4,a.d]],null,null),(l()(),t["\u0275eld"](16,0,null,null,82,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,14,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,13,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,5,null,null,null,null,null,null,null)),t["\u0275did"](20,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,I)),t["\u0275did"](22,278528,null,0,o.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](24,16384,null,0,o.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],null,null),(l()(),t["\u0275ted"](-1,null,[" the pool mirror peer attributes for pool "])),(l()(),t["\u0275eld"](26,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](27,null,["",""])),(l()(),t["\u0275ted"](-1,null,[" and click "])),(l()(),t["\u0275eld"](29,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Submit"])),(l()(),t["\u0275ted"](-1,null,["."])),(l()(),t["\u0275eld"](32,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](33,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](34,{"has-error":0}),(l()(),t["\u0275eld"](35,0,null,null,3,"label",[["class","control-label"],["for","clusterName"]],null,null,null,null,null)),(l()(),t["\u0275eld"](36,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Cluster Name"])),(l()(),t["\u0275eld"](38,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","clusterName"],["id","clusterName"],["name","clusterName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,42)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,42).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,42)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,42)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](40,4210688,null,0,r.a,[t.ElementRef],null,null),t["\u0275did"](41,4210688,null,0,s.a,[[2,d.a],c.a,t.ElementRef],null,null),t["\u0275did"](42,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](44,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](46,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,k)),t["\u0275did"](48,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,E)),t["\u0275did"](50,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](51,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](52,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](53,{"has-error":0}),(l()(),t["\u0275eld"](54,0,null,null,3,"label",[["class","control-label"],["for","clientID"]],null,null,null,null,null)),(l()(),t["\u0275eld"](55,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["CephX ID"])),(l()(),t["\u0275eld"](57,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](58,0,null,null,6,"input",[["class","form-control"],["formControlName","clientID"],["id","clientID"],["name","clientID"],["placeholder","CephX ID..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,60)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,60).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,60)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,60)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](59,4210688,null,0,s.a,[[2,d.a],c.a,t.ElementRef],null,null),t["\u0275did"](60,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](62,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](64,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,F)),t["\u0275did"](66,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,D)),t["\u0275did"](68,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](69,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](70,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](71,{"has-error":0}),(l()(),t["\u0275eld"](72,0,null,null,2,"label",[["class","control-label"],["for","monAddr"]],null,null,null,null,null)),(l()(),t["\u0275eld"](73,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Monitor Addresses"])),(l()(),t["\u0275eld"](75,0,null,null,6,"input",[["class","form-control"],["formControlName","monAddr"],["id","monAddr"],["name","monAddr"],["placeholder","Comma-delimited addresses..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,77)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,77).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,77)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,77)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](76,4210688,null,0,s.a,[[2,d.a],c.a,t.ElementRef],null,null),t["\u0275did"](77,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](79,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](81,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,V)),t["\u0275did"](83,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](84,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](85,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](86,{"has-error":0}),(l()(),t["\u0275eld"](87,0,null,null,2,"label",[["class","control-label"],["for","key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](88,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["CephX Key"])),(l()(),t["\u0275eld"](90,0,null,null,6,"input",[["class","form-control"],["formControlName","key"],["id","key"],["name","key"],["placeholder","Base64-encoded key..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,92)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,92).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,92)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,92)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](91,4210688,null,0,s.a,[[2,d.a],c.a,t.ElementRef],null,null),t["\u0275did"](92,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](94,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](96,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,T)),t["\u0275did"](98,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](99,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](100,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](101,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t},p.b,p.a)),t["\u0275did"](102,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Submit"])),(l()(),t["\u0275eld"](104,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,f.b,f.a)),t["\u0275did"](105,49152,null,0,g.a,[o.Location,h.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,4,0,e.mode),l(n,6,0,"edit"),l(n,13,0,e.editPeerForm),l(n,20,0,e.mode),l(n,22,0,"edit");var u=l(n,34,0,e.editPeerForm.showError("clusterName",t["\u0275nov"](n,13)));l(n,33,0,"form-group",u),l(n,44,0,"clusterName"),l(n,48,0,e.editPeerForm.showError("clusterName",t["\u0275nov"](n,13),"required")),l(n,50,0,e.editPeerForm.showError("clusterName",t["\u0275nov"](n,13),"invalidClusterName"));var i=l(n,53,0,e.editPeerForm.showError("clientID",t["\u0275nov"](n,13)));l(n,52,0,"form-group",i),l(n,62,0,"clientID"),l(n,66,0,e.editPeerForm.showError("clientID",t["\u0275nov"](n,13),"required")),l(n,68,0,e.editPeerForm.showError("clientID",t["\u0275nov"](n,13),"invalidClientID"));var o=l(n,71,0,e.editPeerForm.showError("monAddr",t["\u0275nov"](n,13)));l(n,70,0,"form-group",o),l(n,79,0,"monAddr"),l(n,83,0,e.editPeerForm.showError("monAddr",t["\u0275nov"](n,13),"invalidMonAddr"));var a=l(n,86,0,e.editPeerForm.showError("key",t["\u0275nov"](n,13)));l(n,85,0,"form-group",a),l(n,94,0,"key"),l(n,98,0,e.editPeerForm.showError("key",t["\u0275nov"](n,13),"invalidKey")),l(n,102,0,e.editPeerForm),l(n,105,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,11,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending),l(n,27,0,e.poolName),l(n,39,0,t["\u0275nov"](n,46).ngClassUntouched,t["\u0275nov"](n,46).ngClassTouched,t["\u0275nov"](n,46).ngClassPristine,t["\u0275nov"](n,46).ngClassDirty,t["\u0275nov"](n,46).ngClassValid,t["\u0275nov"](n,46).ngClassInvalid,t["\u0275nov"](n,46).ngClassPending),l(n,58,0,t["\u0275nov"](n,64).ngClassUntouched,t["\u0275nov"](n,64).ngClassTouched,t["\u0275nov"](n,64).ngClassPristine,t["\u0275nov"](n,64).ngClassDirty,t["\u0275nov"](n,64).ngClassValid,t["\u0275nov"](n,64).ngClassInvalid,t["\u0275nov"](n,64).ngClassPending),l(n,75,0,t["\u0275nov"](n,81).ngClassUntouched,t["\u0275nov"](n,81).ngClassTouched,t["\u0275nov"](n,81).ngClassPristine,t["\u0275nov"](n,81).ngClassDirty,t["\u0275nov"](n,81).ngClassValid,t["\u0275nov"](n,81).ngClassInvalid,t["\u0275nov"](n,81).ngClassPending),l(n,90,0,t["\u0275nov"](n,96).ngClassUntouched,t["\u0275nov"](n,96).ngClassTouched,t["\u0275nov"](n,96).ngClassPristine,t["\u0275nov"](n,96).ngClassDirty,t["\u0275nov"](n,96).ngClassValid,t["\u0275nov"](n,96).ngClassInvalid,t["\u0275nov"](n,96).ngClassPending)})}function P(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-pool-edit-peer-modal",[],null,null,null,N,_)),t["\u0275did"](1,114688,null,0,v.a,[b.a,y.a,C.a],null,null)],function(l,n){l(n,1,0)},null)}var x=t["\u0275ccf"]("cd-pool-edit-peer-modal",v.a,P,{},{},[])},WxU5:function(l,n,e){"use strict";e.d(n,"a",function(){return u}),e("Ekvf"),e("F83c"),e("2EZI");var t=e("kvvV"),u=(e("aexS"),e("kn/O"),function(){function l(l,n,e,t,u,i){this.authStorageService=l,this.rbdService=n,this.modalRef=e,this.fb=t,this.poolService=u,this.taskWrapper=i,this.poolPermission=this.authStorageService.getPermissions().pool}return l.prototype.createForm=function(){this.purgeForm=this.fb.group({poolName:""})},l.prototype.ngOnInit=function(){var l=this;this.poolPermission.read&&this.poolService.list(["pool_name","application_metadata"]).then(function(n){l.pools=n.filter(function(l){return l.application_metadata.includes("rbd")}).map(function(l){return l.pool_name})}),this.createForm()},l.prototype.purge=function(){var l=this,n=this.purgeForm.getValue("poolName")||"";this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/purge",{pool_name:n}),call:this.rbdService.purgeTrash(n)}).subscribe(void 0,function(){l.purgeForm.setErrors({cdSubmitButton:!0})},function(){l.modalRef.hide()})},l}())},XED3:function(l,n,e){"use strict";e.d(n,"a",function(){return a});var t=e("26FU"),u=e("CcnG"),i=e("t/Na"),o=e("pL04"),a=function(){function l(l,n){this.http=l,this.ngZone=n,this.summaryDataSource=new t.a(null),this.summaryData$=this.summaryDataSource.asObservable(),this.refreshAndSchedule()}return l.prototype.refresh=function(){var l=this;this.http.get("api/block/mirroring/summary").subscribe(function(n){l.summaryDataSource.next(n)})},l.prototype.refreshAndSchedule=function(){var l=this;this.refresh(),this.ngZone.runOutsideAngular(function(){setTimeout(function(){l.ngZone.run(function(){l.refreshAndSchedule()})},3e4)})},l.prototype.getCurrentSummary=function(){return this.summaryDataSource.getValue()},l.prototype.subscribeSummary=function(l,n){return this.summaryData$.subscribe(l,n)},l.prototype.getPool=function(l){return this.http.get("api/block/mirroring/pool/"+l)},l.prototype.updatePool=function(l,n){return this.http.put("api/block/mirroring/pool/"+l,n,{observe:"response"})},l.prototype.getPeer=function(l,n){return this.http.get("api/block/mirroring/pool/"+l+"/peer/"+n)},l.prototype.addPeer=function(l,n){return this.http.post("api/block/mirroring/pool/"+l+"/peer",n,{observe:"response"})},l.prototype.updatePeer=function(l,n,e){return this.http.put("api/block/mirroring/pool/"+l+"/peer/"+n,e,{observe:"response"})},l.prototype.deletePeer=function(l,n){return this.http.delete("api/block/mirroring/pool/"+l+"/peer/"+n,{observe:"response"})},l.ngInjectableDef=u.defineInjectable({factory:function(){return new l(u.inject(i.c),u.inject(u.NgZone))},token:l,providedIn:o.a}),l}()},Z4cD:function(l,n,e){"use strict";e.d(n,"a",function(){return a});var t=e("mrSG"),u=e("gIcY"),i=e("LvDl"),o=(e("my5R"),e("QFaf")),a=function(){function l(l,n){this.modalRef=l,this.iscsiService=n}return l.prototype.ngOnInit=function(){var l=this,n={backstore:new u.i(this.imagesSettings[this.image].backstore),lun:new u.i(this.imagesSettings[this.image].lun),wwn:new u.i(this.imagesSettings[this.image].wwn)};i.forEach(this.backstores,function(e){var t=l.imagesSettings[l.image][e]||{};i.forIn(l.disk_default_controls[e],function(l,e){n[e]=new u.i(t[e])})}),this.settingsForm=new o.a(n)},l.prototype.getDiskControlLimits=function(l,n){return this.disk_controls_limits?this.disk_controls_limits[l][n]:{type:"int"}},l.prototype.save=function(){var l=this,n=this.settingsForm.controls.backstore.value,e=this.settingsForm.controls.lun.value,u=this.settingsForm.controls.wwn.value,o={};i.forIn(this.settingsForm.controls,function(e,t){""!==e.value&&null!==e.value&&t in l.disk_default_controls[l.settingsForm.value.backstore]&&(o[t]=e.value,i.forEach(l.backstores,function(u){u!==n&&t in(l.imagesSettings[l.image][u]||{})&&(l.imagesSettings[l.image][u][t]=e.value)}))}),this.imagesSettings[this.image].backstore=n,this.imagesSettings[this.image].lun=e,this.imagesSettings[this.image].wwn=u,this.imagesSettings[this.image][n]=o,this.imagesSettings=t.__assign({},this.imagesSettings),this.control.updateValueAndValidity({emitEvent:!1}),this.modalRef.hide()},l}()},a6qe:function(l,n,e){"use strict";e.d(n,"a",function(){return o});var t=e("gIcY"),u=e("LvDl"),i=(e("my5R"),e("QFaf")),o=function(){function l(l,n){this.modalRef=l,this.iscsiService=n}return l.prototype.ngOnInit=function(){var l=this,n={};u.forIn(this.target_default_controls,function(e,u){n[u]=new t.i(l.target_controls.value[u])}),this.settingsForm=new i.a(n)},l.prototype.save=function(){var l={};u.forIn(this.settingsForm.controls,function(n,e){""!==n.value&&null!==n.value&&(l[e]=n.value)}),this.target_controls.setValue(l),this.modalRef.hide()},l.prototype.getTargetControlLimits=function(l){return this.target_controls_limits?this.target_controls_limits[l]:["Yes","No"].includes(this.target_default_controls[l])?{type:"bool"}:{type:"int"}},l}()},aAWM:function(l,n,e){"use strict";e("uIqm");var t=e("PhyI"),u=function(){function l(){}return l.prototype.transform=function(l){return{0:"global",1:"pool",2:"image"}[l]},l}();e("aXbf"),e("o8EM"),e.d(n,"a",function(){return i});var i=function(){function l(l,n,e){this.formatterService=l,this.rbdConfigurationService=n,this.i18n=e,this.sourceField=t.a,this.typeField=t.b}return l.prototype.ngOnInit=function(){this.poolConfigurationColumns=[{prop:"displayName",name:this.i18n("Name")},{prop:"description",name:this.i18n("Description")},{prop:"name",name:this.i18n("Key")},{prop:"source",name:this.i18n("Source"),cellTemplate:this.configurationSourceTpl,pipe:new u},{prop:"value",name:this.i18n("Value"),cellTemplate:this.configurationValueTpl}]},l.prototype.ngOnChanges=function(){var l=this;this.data&&(this.data=this.data.filter(function(n){return l.rbdConfigurationService.getOptionFields().map(function(l){return l.name}).includes(n.name)}))},l}()},aa9H:function(l,n,e){"use strict";var t=e("gIcY"),u=(e("XED3"),e("QFaf")),i=e("kvvV"),o=(e("kn/O"),function(){return function(){}}());e.d(n,"a",function(){return a});var a=function(){function l(l,n,e,t){this.modalRef=l,this.i18n=n,this.rbdMirroringService=e,this.taskWrapper=t,this.bsConfig={containerClass:"theme-default"},this.peerExists=!1,this.mirrorModes=[{id:"disabled",name:this.i18n("Disabled")},{id:"pool",name:this.i18n("Pool")},{id:"image",name:this.i18n("Image")}],this.createForm()}return l.prototype.createForm=function(){this.editModeForm=new u.a({mirrorMode:new t.i("",{validators:[t.A.required,this.validateMode.bind(this)]})})},l.prototype.ngOnInit=function(){var l=this;this.pattern=""+this.poolName,this.rbdMirroringService.getPool(this.poolName).subscribe(function(n){l.setResponse(n)}),this.subs=this.rbdMirroringService.subscribeSummary(function(n){if(l.peerExists=!1,n){var e=n.content_data.pools.find(function(n){return l.poolName===n.name});l.peerExists=e&&e.peer_uuids.length}})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.validateMode=function(l){return"disabled"===l.value&&this.peerExists?{cannotDisable:{value:l.value}}:null},l.prototype.setResponse=function(l){this.editModeForm.get("mirrorMode").setValue(l.mirror_mode)},l.prototype.update=function(){var l=this,n=new o;n.mirror_mode=this.editModeForm.getValue("mirrorMode"),this.taskWrapper.wrapTaskAroundCall({task:new i.a("rbd/mirroring/pool/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePool(this.poolName,n)}).subscribe(void 0,function(){return l.editModeForm.setErrors({cdSubmitButton:!0})},function(){l.rbdMirroringService.refresh(),l.modalRef.hide()})},l}()},bUo2:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gp3X"),i=e("sb0X"),o=e("EEJc"),a=e("ajRT"),r=e("gIcY"),s=e("Ip0R"),d=e("ANnk"),c=e("f/UV"),p=e("aexS"),m=e("D4zM"),f=e("OcYo"),g=e("SZbH"),h=e("KVJa"),v=e("Z21x"),b=e("sne2"),y=e("Sofw"),C=e("DQlY"),_=e("my5R"),w=e("9nlD"),R=e("Jm/i");e.d(n,"a",function(){return q});var I=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function k(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function F(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function D(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function V(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function T(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function N(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function P(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submitAction()&&t),t},u.b,u.a)),t["\u0275did"](1,114688,null,0,i.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Submit"]))],function(l,n){l(n,1,0,n.component.discoveryForm)},null)}function x(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,97,"cd-modal",[],null,null,null,o.c,o.b)),t["\u0275did"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Discovery Authentication"])),(l()(),t["\u0275eld"](4,0,null,1,93,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,92,"form",[["class","form-horizontal"],["name","discoveryForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,r.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,r.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,r.d,null,[r.l]),t["\u0275did"](9,16384,null,0,r.s,[[4,r.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,81,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](12,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](13,{"has-error":0}),(l()(),t["\u0275eld"](14,0,null,null,1,"label",[["class","control-label col-sm-4"],["for","user"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["User"])),(l()(),t["\u0275eld"](16,0,null,null,11,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,6,"input",[["autocomplete","off"],["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,18)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,18).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,18)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,18)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](18,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](20,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](22,16384,null,0,r.r,[[4,r.q]],null,null),t["\u0275did"](23,4210688,null,0,d.a,[[2,c.a],p.a,t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](25,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,k)),t["\u0275did"](27,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](28,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](29,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](30,{"has-error":0}),(l()(),t["\u0275eld"](31,0,null,null,1,"label",[["class","control-label col-sm-4"],["for","password"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Password"])),(l()(),t["\u0275eld"](33,0,null,null,17,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](34,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](35,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,36)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,36).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,36)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,36)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](36,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](38,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](40,16384,null,0,r.r,[[4,r.q]],null,null),t["\u0275did"](41,4210688,null,0,d.a,[[2,c.a],p.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](42,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](43,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,44).onClick()&&u),u},null,null)),t["\u0275did"](44,81920,null,0,m.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](45,0,null,null,1,"button",[["cdCopy2ClipboardButton","password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,46).onClick()&&u),u},null,null)),t["\u0275did"](46,81920,null,0,f.a,[t.ElementRef,t.Renderer2,g.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,E)),t["\u0275did"](48,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,F)),t["\u0275did"](50,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](51,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](52,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](53,{"has-error":0}),(l()(),t["\u0275eld"](54,0,null,null,2,"label",[["class","control-label col-sm-4"],["for","mutual_user"]],null,null,null,null,null)),(l()(),t["\u0275eld"](55,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Mutual User"])),(l()(),t["\u0275eld"](57,0,null,null,11,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](58,0,null,null,6,"input",[["autocomplete","off"],["class","form-control"],["formControlName","mutual_user"],["id","mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,59)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,59).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,59)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,59)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](59,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](61,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](63,16384,null,0,r.r,[[4,r.q]],null,null),t["\u0275did"](64,4210688,null,0,d.a,[[2,c.a],p.a,t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,D)),t["\u0275did"](66,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,V)),t["\u0275did"](68,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](69,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](70,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](71,{"has-error":0}),(l()(),t["\u0275eld"](72,0,null,null,1,"label",[["class","control-label col-sm-4"],["for","mutual_password"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Mutual Password"])),(l()(),t["\u0275eld"](74,0,null,null,17,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](75,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](76,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","mutual_password"],["id","mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,77)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,77).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,77)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,77)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](77,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](79,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](81,16384,null,0,r.r,[[4,r.q]],null,null),t["\u0275did"](82,4210688,null,0,d.a,[[2,c.a],p.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](83,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](84,0,null,null,1,"button",[["cdPasswordButton","mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,85).onClick()&&u),u},null,null)),t["\u0275did"](85,81920,null,0,m.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](86,0,null,null,1,"button",[["cdCopy2ClipboardButton","mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,87).onClick()&&u),u},null,null)),t["\u0275did"](87,81920,null,0,f.a,[t.ElementRef,t.Renderer2,g.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,T)),t["\u0275did"](89,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,N)),t["\u0275did"](91,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](92,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](93,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,P)),t["\u0275did"](95,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](96,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),t["\u0275did"](97,49152,null,0,v.a,[s.Location,b.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.bsModalRef),l(n,7,0,e.discoveryForm);var u=l(n,13,0,e.discoveryForm.showError("user",t["\u0275nov"](n,7)));l(n,12,0,"form-group",u),l(n,20,0,"user"),l(n,25,0,e.discoveryForm.showError("user",t["\u0275nov"](n,7),"required")),l(n,27,0,e.discoveryForm.showError("user",t["\u0275nov"](n,7),"pattern"));var i=l(n,30,0,e.discoveryForm.showError("password",t["\u0275nov"](n,7)));l(n,29,0,"form-group",i),l(n,38,0,"password"),l(n,44,0,"password"),l(n,46,0,"password"),l(n,48,0,e.discoveryForm.showError("password",t["\u0275nov"](n,7),"required")),l(n,50,0,e.discoveryForm.showError("password",t["\u0275nov"](n,7),"pattern"));var o=l(n,53,0,e.discoveryForm.showError("mutual_user",t["\u0275nov"](n,7)));l(n,52,0,"form-group",o),l(n,61,0,"mutual_user"),l(n,66,0,e.discoveryForm.showError("mutual_user",t["\u0275nov"](n,7),"required")),l(n,68,0,e.discoveryForm.showError("mutual_user",t["\u0275nov"](n,7),"pattern"));var a=l(n,71,0,e.discoveryForm.showError("mutual_password",t["\u0275nov"](n,7)));l(n,70,0,"form-group",a),l(n,79,0,"mutual_password"),l(n,85,0,"mutual_password"),l(n,87,0,"mutual_password"),l(n,89,0,e.discoveryForm.showError("mutual_password",t["\u0275nov"](n,7),"required")),l(n,91,0,e.discoveryForm.showError("mutual_password",t["\u0275nov"](n,7),"pattern")),l(n,95,0,e.hasPermission),l(n,97,0,"Cancel",e.bsModalRef.hide)},function(l,n){l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,17,0,t["\u0275nov"](n,22).ngClassUntouched,t["\u0275nov"](n,22).ngClassTouched,t["\u0275nov"](n,22).ngClassPristine,t["\u0275nov"](n,22).ngClassDirty,t["\u0275nov"](n,22).ngClassValid,t["\u0275nov"](n,22).ngClassInvalid,t["\u0275nov"](n,22).ngClassPending),l(n,35,0,t["\u0275nov"](n,40).ngClassUntouched,t["\u0275nov"](n,40).ngClassTouched,t["\u0275nov"](n,40).ngClassPristine,t["\u0275nov"](n,40).ngClassDirty,t["\u0275nov"](n,40).ngClassValid,t["\u0275nov"](n,40).ngClassInvalid,t["\u0275nov"](n,40).ngClassPending),l(n,58,0,t["\u0275nov"](n,63).ngClassUntouched,t["\u0275nov"](n,63).ngClassTouched,t["\u0275nov"](n,63).ngClassPristine,t["\u0275nov"](n,63).ngClassDirty,t["\u0275nov"](n,63).ngClassValid,t["\u0275nov"](n,63).ngClassInvalid,t["\u0275nov"](n,63).ngClassPending),l(n,76,0,t["\u0275nov"](n,81).ngClassUntouched,t["\u0275nov"](n,81).ngClassTouched,t["\u0275nov"](n,81).ngClassPristine,t["\u0275nov"](n,81).ngClassDirty,t["\u0275nov"](n,81).ngClassValid,t["\u0275nov"](n,81).ngClassInvalid,t["\u0275nov"](n,81).ngClassPending)})}function O(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-discovery-modal",[],null,null,null,x,I)),t["\u0275did"](1,114688,null,0,y.a,[p.a,C.a,_.a,w.a,R.a],null,null)],function(l,n){l(n,1,0)},null)}var q=t["\u0275ccf"]("cd-iscsi-target-discovery-modal",y.a,O,{},{},[])},cxJu:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("XED3");var t=function(){function l(l){this.rbdMirroringService=l}return l.prototype.ngOnInit=function(){var l=this;this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.status=n.content_data.status)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l}()},"e/kN":function(l,n,e){"use strict";e.d(n,"a",function(){return s});var t=e("LvDl"),u=(e("my5R"),e("0+/T")),i=(e("sne2"),e("uIqm"),e("x38r")),o=e("vCyI"),a=e("kvvV"),r=(e("+0ag"),e("uhwM"),e("G1/K"),e("aexS"),e("mSOc"),e("VTlA"),e("kn/O"),e("Sofw")),s=function(){function l(l,n,e,u,i,a,r,s,d,c,p){var m=this;this.authStorageService=l,this.i18n=n,this.iscsiService=e,this.listPipe=u,this.taskListService=i,this.cephReleaseNamePipe=a,this.notAvailablePipe=r,this.summaryservice=s,this.modalService=d,this.taskWrapper=c,this.actionLabels=p,this.available=void 0,this.selection=new o.a,this.targets=[],this.builders={"iscsi/target/create":function(l){return{target_iqn:l.target_iqn}}},this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return"/block/iscsi/targets/create"},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return"/block/iscsi/targets/edit/"+m.selection.first().target_iqn},name:this.actionLabels.EDIT,disable:function(){return!m.selection.first()||!t.isUndefined(m.getEditDisableDesc())},disableDesc:function(){return m.getEditDisableDesc()}},{permission:"delete",icon:"fa-times",click:function(){return m.deleteIscsiTargetModal()},name:this.actionLabels.DELETE,disable:function(){return!m.selection.first()||!t.isUndefined(m.getDeleteDisableDesc())},disableDesc:function(){return m.getDeleteDisableDesc()}}]}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{name:this.i18n("Target"),prop:"target_iqn",flexGrow:2,cellTransformation:i.a.executing},{name:this.i18n("Portals"),prop:"cdPortals",pipe:this.listPipe,flexGrow:2},{name:this.i18n("Images"),prop:"cdImages",pipe:this.listPipe,flexGrow:2},{name:this.i18n("# Sessions"),prop:"info.num_sessions",pipe:this.notAvailablePipe,flexGrow:1}],this.iscsiService.status().subscribe(function(n){if(l.available=n.available,n.available)l.iscsiService.version().subscribe(function(n){l.cephIscsiConfigVersion=n.ceph_iscsi_config_version,l.taskListService.init(function(){return l.iscsiService.listTargets()},function(n){return l.prepareResponse(n)},function(n){return l.targets=n},function(){return l.onFetchError()},l.taskFilter,l.itemFilter,l.builders)}),l.iscsiService.settings().subscribe(function(n){l.settings=n});else{var e=l.summaryservice.getCurrentSummary(),t=l.cephReleaseNamePipe.transform(e.version);l.docsUrl="http://docs.ceph.com/docs/"+t+"/mgr/dashboard/#enabling-iscsi-management",l.status=n.message}})},l.prototype.ngOnDestroy=function(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()},l.prototype.getEditDisableDesc=function(){var l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):void 0},l.prototype.getDeleteDisableDesc=function(){var l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):l&&l.info&&l.info.num_sessions?this.i18n("Target has active sessions"):void 0},l.prototype.prepareResponse=function(l){return l.forEach(function(l){l.cdPortals=l.portals.map(function(l){return l.host+":"+l.ip}),l.cdImages=l.disks.map(function(l){return l.pool+"/"+l.image})}),l},l.prototype.onFetchError=function(){this.table.reset()},l.prototype.itemFilter=function(l,n){return l.target_iqn===n.metadata.target_iqn},l.prototype.taskFilter=function(l){return["iscsi/target/create","iscsi/target/edit","iscsi/target/delete"].includes(l.name)},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.deleteIscsiTargetModal=function(){var l=this,n=this.selection.first().target_iqn;this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:this.i18n("iSCSI target"),itemNames:[n],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new a.a("iscsi/target/delete",{target_iqn:n}),call:l.iscsiService.deleteTarget(n)})}}})},l.prototype.configureDiscoveryAuth=function(){this.modalService.show(r.a,{})},l}()},eF8U:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("ANnk"),o=e("f/UV"),a=e("aexS"),r=e("Ip0R");e("jMP8"),e.d(n,"a",function(){return s}),e.d(n,"b",function(){return b});var s=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function d(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function c(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"select",[["class","form-control custom-select"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,1).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](6,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](7,0,null,null,2,"option",[],null,null,null,null,null)),t["\u0275did"](8,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](9,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,d)),t["\u0275did"](11,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,3,0,e.setting),l(n,8,0,null),l(n,9,0,null),l(n,11,0,e.limits.values)},function(l,n){var e=n.component;l(n,0,0,t["\u0275inlineInterpolate"](1,"",e.setting,""),t["\u0275inlineInterpolate"](1,"",e.setting,""),t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function p(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,1)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,2).onChange(e.target.value)&&u),"input"===n&&(u=!1!==t["\u0275nov"](l,2).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](2,16384,null,0,u.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.C]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](7,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null)],function(l,n){l(n,4,0,n.component.setting)},function(l,n){l(n,0,0,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function m(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,1)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](6,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null)],function(l,n){l(n,3,0,n.component.setting)},function(l,n){l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function f(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,23,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,10,"div",[["class","radio radio-inline"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,7,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,4)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,4).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,4)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,4)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,5).onChange()&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,5).onTouched()&&u),u},null,null)),t["\u0275did"](4,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](5,212992,null,0,u.w,[t.Renderer2,t.ElementRef,u.E,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.w]),t["\u0275did"](7,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](9,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](10,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](11,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Yes"])),(l()(),t["\u0275eld"](13,0,null,null,10,"div",[["class","radio radio-inline"]],null,null,null,null,null)),(l()(),t["\u0275eld"](14,0,null,null,7,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,15)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,15).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,15)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,15)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,16).onChange()&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,16).onTouched()&&u),u},null,null)),t["\u0275did"](15,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](16,212992,null,0,u.w,[t.Renderer2,t.ElementRef,u.E,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.w]),t["\u0275did"](18,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](20,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](21,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](22,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["No"]))],function(l,n){var e=n.component;l(n,5,0,e.setting,!0),l(n,7,0,e.setting),l(n,16,0,e.setting,!1),l(n,18,0,e.setting)},function(l,n){var e=n.component;l(n,3,0,e.setting+"True",t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,11,0,e.setting+"True"),l(n,14,0,e.setting+"False",t["\u0275nov"](n,20).ngClassUntouched,t["\u0275nov"](n,20).ngClassTouched,t["\u0275nov"](n,20).ngClassPristine,t["\u0275nov"](n,20).ngClassDirty,t["\u0275nov"](n,20).ngClassValid,t["\u0275nov"](n,20).ngClassInvalid,t["\u0275nov"](n,20).ngClassPending),l(n,22,0,e.setting+"False")})}function g(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,p)),t["\u0275did"](2,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,m)),t["\u0275did"](4,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,f)),t["\u0275did"](6,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,2,0,"int"===e.limits.type),l(n,4,0,"str"===e.limits.type),l(n,6,0,"bool"===e.limits.type)},null)}function h(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["Must be greater than or equal to ","."]))],null,function(l,n){l(n,2,0,n.component.limits.min)})}function v(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["Must be less than or equal to ","."]))],null,function(l,n){l(n,2,0,n.component.limits.max)})}function b(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,15,"div",[["class","form-group"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,3).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,3).onReset()&&u),u},null,null)),t["\u0275did"](1,278528,null,0,r.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),t["\u0275did"](3,540672,null,0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](5,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](6,0,null,null,1,"label",[["class","col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](7,null,["",""])),(l()(),t["\u0275and"](16777216,null,null,1,null,c)),t["\u0275did"](9,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,g)),t["\u0275did"](11,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,h)),t["\u0275did"](13,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,v)),t["\u0275did"](15,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.settingsForm.showError(e.setting,e.formDir));l(n,1,0,"form-group",t),l(n,3,0,e.settingsForm),l(n,9,0,"enum"===e.limits.type),l(n,11,0,"enum"!==e.limits.type),l(n,13,0,e.settingsForm.showError(e.setting,e.formDir,"min")),l(n,15,0,e.settingsForm.showError(e.setting,e.formDir,"max"))},function(l,n){var e=n.component;l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending),l(n,6,0,t["\u0275inlineInterpolate"](1,"",e.setting,"")),l(n,7,0,e.setting)})}},gr3l:function(l,n,e){"use strict";e.d(n,"a",function(){return m});var t=e("gIcY"),u=e("LvDl"),i=e("VNr4"),o=(e("my5R"),e("F83c"),e("DNAf")),a=e("a96k"),r=(e("sne2"),e("QFaf")),s=e("1Ni5"),d=e("kvvV"),c=(e("kn/O"),e("Z4cD")),p=e("a6qe"),m=function(){function l(l,n,e,t,u,i,a,r){this.iscsiService=l,this.modalService=n,this.rbdService=e,this.router=t,this.route=u,this.i18n=i,this.taskWrapper=a,this.actionLabels=r,this.api_version=0,this.minimum_gateways=1,this.isEdit=!1,this.portalsSelections=[],this.imagesInitiatorSelections=[],this.groupDiskSelections=[],this.groupMembersSelections=[],this.imagesSettings={},this.messages={portals:new o.a({noOptions:this.i18n("There are no portals available.")},this.i18n),images:new o.a({noOptions:this.i18n("There are no images available.")},this.i18n),initiatorImage:new o.a({noOptions:this.i18n("There are no images available. Please make sure you add an image to the target.")},this.i18n),groupInitiator:new o.a({noOptions:this.i18n("There are no initiators available. Please make sure you add an initiator to the target.")},this.i18n)},this.IQN_REGEX=/^iqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+)*$/,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.resource=this.i18n("target")}return l.prototype.ngOnInit=function(){var l=this,n=[this.iscsiService.listTargets(),this.rbdService.list(),this.iscsiService.portals(),this.iscsiService.settings(),this.iscsiService.version()];this.router.url.startsWith("/block/iscsi/targets/edit")&&(this.isEdit=!0,this.route.params.subscribe(function(e){l.target_iqn=decodeURIComponent(e.target_iqn),n.push(l.iscsiService.getTarget(l.target_iqn))})),this.action=this.isEdit?this.actionLabels.EDIT:this.actionLabels.CREATE,Object(i.a)(n).subscribe(function(n){var e=u(n[0]).filter(function(n){return n.target_iqn!==l.target_iqn}).flatMap(function(l){return l.disks}).map(function(l){return l.pool+"/"+l.image}).value();"api_version"in n[3]&&(l.api_version=n[3].api_version),l.minimum_gateways=n[3].config.minimum_gateways,l.target_default_controls=n[3].target_default_controls,l.target_controls_limits=n[3].target_controls_limits,l.disk_default_controls=n[3].disk_default_controls,l.disk_controls_limits=n[3].disk_controls_limits,l.backstores=n[3].backstores,l.default_backstore=n[3].default_backstore,l.unsupported_rbd_features=n[3].unsupported_rbd_features,l.required_rbd_features=n[3].required_rbd_features,l.imagesAll=u(n[1]).flatMap(function(l){return l.value}).filter(function(n){return-1===e.indexOf(n.pool_name+"/"+n.name)&&0!==l.getValidBackstores(n).length}).value(),l.imagesSelections=l.imagesAll.map(function(l){return new a.a(!1,l.pool_name+"/"+l.name,"")});var t=[];n[2].forEach(function(l){l.ip_addresses.forEach(function(n){t.push(new a.a(!1,l.name+":"+n,""))})}),l.portalsSelections=t.slice(),l.cephIscsiConfigVersion=n[4].ceph_iscsi_config_version,l.createForm(),n[5]&&l.resolveModel(n[5])})},l.prototype.createForm=function(){var l=this;if(this.targetForm=new r.a({target_iqn:new t.i("iqn.2001-07.com.ceph:"+Date.now(),{validators:[t.A.required,t.A.pattern(this.IQN_REGEX)]}),target_controls:new t.i({}),portals:new t.i([],{validators:[s.a.custom("minGateways",function(n){return u.uniq(n.map(function(l){return l.split(":")[0]})).length10){var n=new r.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")});this.setAuthValidator(n),this.targetForm.addControl("auth",n)}},l.prototype.resolveModel=function(l){var n=this;this.targetForm.patchValue({target_iqn:l.target_iqn,target_controls:l.target_controls,acl_enabled:l.acl_enabled}),this.cephIscsiConfigVersion>10&&this.targetForm.patchValue({auth:l.auth});var e=[];u.forEach(l.portals,function(l){e.push(l.host+":"+l.ip)}),this.targetForm.patchValue({portals:e});var t=[];u.forEach(l.disks,function(l){var e=l.pool+"/"+l.image;t.push(e),n.imagesSettings[e]={backstore:l.backstore},n.imagesSettings[e][l.backstore]=l.controls,"lun"in l&&(n.imagesSettings[e].lun=l.lun),"wwn"in l&&(n.imagesSettings[e].wwn=l.wwn),n.onImageSelection({option:{name:e,selected:!0}})}),this.targetForm.patchValue({disks:t}),u.forEach(l.clients,function(l){var e=n.addInitiator();l.luns=u.map(l.luns,function(l){return l.pool+"/"+l.image}),e.patchValue(l)}),u.forEach(l.groups,function(l){var e=n.addGroup();l.disks=u.map(l.disks,function(l){return l.pool+"/"+l.image}),e.patchValue(l),u.forEach(l.members,function(l){n.onGroupMemberSelection({option:new a.a(!0,l,"")})})})},l.prototype.hasAdvancedSettings=function(l){return Object.values(l).length>0},Object.defineProperty(l.prototype,"portals",{get:function(){return this.targetForm.get("portals")},enumerable:!0,configurable:!0}),l.prototype.onPortalSelection=function(){this.portals.setValue(this.portals.value)},l.prototype.removePortal=function(l,n){return this.portalsSelections.forEach(function(l){l.name===n&&(l.selected=!1)}),this.portals.value.splice(l,1),this.portals.setValue(this.portals.value),!1},Object.defineProperty(l.prototype,"disks",{get:function(){return this.targetForm.get("disks")},enumerable:!0,configurable:!0}),l.prototype.removeImage=function(l,n){return this.imagesSelections.forEach(function(l){l.name===n&&(l.selected=!1)}),this.disks.value.splice(l,1),this.removeImageRefs(n),this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1}),!1},l.prototype.removeImageRefs=function(l){var n=this;this.initiators.controls.forEach(function(n){var e=n.value.luns.filter(function(n){return n!==l});n.get("luns").setValue(e)}),this.groups.controls.forEach(function(n){var e=n.value.disks.filter(function(n){return n!==l});n.get("disks").setValue(e)}),u.forEach(this.imagesInitiatorSelections,function(e,t){n.imagesInitiatorSelections[t]=e.filter(function(n){return n.name!==l})}),u.forEach(this.groupDiskSelections,function(e,t){n.groupDiskSelections[t]=e.filter(function(n){return n.name!==l})})},l.prototype.getDefaultBackstore=function(l){var n=this,e=this.default_backstore,t=this.getImageById(l);return this.validFeatures(t,this.default_backstore)||this.backstores.forEach(function(l){l!==n.default_backstore&&n.validFeatures(t,l)&&(e=l)}),e},l.prototype.isLunIdInUse=function(l,n){var e=this.disks.value.filter(function(l){return l!==n});return this.getLunIds(e).includes(l)},l.prototype.getLunIds=function(l){var n=this;return u.map(l,function(l){return n.imagesSettings[l].lun})},l.prototype.nextLunId=function(l){for(var n=this.disks.value.filter(function(n){return n!==l}),e=this.getLunIds(n),t=0;e.includes(t);)t++;return t},l.prototype.getWwns=function(l){var n=this;return u.map(l,function(l){return n.imagesSettings[l].wwn}).filter(function(l){return u.isString(l)&&""!==l})},l.prototype.onImageSelection=function(l){var n=this,e=l.option;if(e.selected){if(this.imagesSettings[e.name])this.isLunIdInUse(this.imagesSettings[e.name].lun,e.name)&&(this.imagesSettings[e.name].lun=this.nextLunId(e.name));else{var t=this.getDefaultBackstore(e.name);this.imagesSettings[e.name]={backstore:t,lun:this.nextLunId(e.name)},this.imagesSettings[e.name][t]={}}u.forEach(this.imagesInitiatorSelections,function(l,t){l.push(new a.a(!1,e.name,"")),n.imagesInitiatorSelections[t]=l.slice()}),u.forEach(this.groupDiskSelections,function(l,t){l.push(new a.a(!1,e.name,"")),n.groupDiskSelections[t]=l.slice()})}else this.removeImageRefs(e.name);this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1})},Object.defineProperty(l.prototype,"initiators",{get:function(){return this.targetForm.get("initiators")},enumerable:!0,configurable:!0}),l.prototype.addInitiator=function(){var l=this,n=new r.a({client_iqn:new t.i("",{validators:[t.A.required,s.a.custom("notUnique",function(n){var e=l.initiators.controls.reduce(function(l,n){return l.concat(n.value.client_iqn)},[]);return e.indexOf(n)!==e.lastIndexOf(n)}),t.A.pattern(this.IQN_REGEX)]}),auth:new r.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")}),luns:new t.i([]),cdIsInGroup:new t.i(!1)});this.setAuthValidator(n),this.initiators.push(n),u.forEach(this.groupMembersSelections,function(n,e){n.push(new a.a(!1,"","")),l.groupMembersSelections[e]=n.slice()});var e=u.map(this.targetForm.getValue("disks"),function(l){return new a.a(!1,l,"")});return this.imagesInitiatorSelections.push(e),n},l.prototype.setAuthValidator=function(l){s.a.validateIf(l.get("user"),function(){return l.getValue("password")||l.getValue("mutual_user")||l.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[l.get("password"),l.get("mutual_user"),l.get("mutual_password")]),s.a.validateIf(l.get("password"),function(){return l.getValue("user")||l.getValue("mutual_user")||l.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("mutual_user"),l.get("mutual_password")]),s.a.validateIf(l.get("mutual_user"),function(){return l.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_password")]),s.a.validateIf(l.get("mutual_password"),function(){return l.getValue("mutual_user")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_user")])},l.prototype.removeInitiator=function(l){var n=this,e=this.initiators.value[l];this.initiators.removeAt(l),u.forEach(this.groupMembersSelections,function(e,t){e.splice(l,1),n.groupMembersSelections[t]=e.slice()}),this.groups.controls.forEach(function(l){var n=l.value.members.filter(function(l){return l!==e.client_iqn});l.get("members").setValue(n)}),this.imagesInitiatorSelections.splice(l,1)},l.prototype.updatedInitiatorSelector=function(){var l=this;this.initiators.controls.forEach(function(l){l.get("client_iqn").updateValueAndValidity({emitEvent:!1})}),u.forEach(this.groupMembersSelections,function(n,e){u.forEach(n,function(n,e){var t=n.name;n.name=l.initiators.controls[e].value.client_iqn,l.groups.controls.forEach(function(l){var e=l.value.members,u=e.indexOf(t);-1!==u&&(e[u]=n.name),l.get("members").setValue(e)})}),l.groupMembersSelections[e]=l.groupMembersSelections[e].slice()})},l.prototype.removeInitiatorImage=function(l,n,e,t){var u=l.getValue("luns");return u.splice(n,1),l.patchValue({luns:u}),this.imagesInitiatorSelections[e].forEach(function(l){l.name===t&&(l.selected=!1)}),!1},Object.defineProperty(l.prototype,"groups",{get:function(){return this.targetForm.get("groups")},enumerable:!0,configurable:!0}),l.prototype.addGroup=function(){var l=new r.a({group_id:new t.i("",{validators:[t.A.required]}),members:new t.i([]),disks:new t.i([])});this.groups.push(l);var n=u.map(this.targetForm.getValue("disks"),function(l){return new a.a(!1,l,"")});this.groupDiskSelections.push(n);var e=u.map(this.initiators.value,function(l){return new a.a(!1,l.client_iqn,"",!l.cdIsInGroup)});return this.groupMembersSelections.push(e),l},l.prototype.removeGroup=function(l){this.groups.removeAt(l),this.groupDiskSelections.splice(l,1)},l.prototype.onGroupMemberSelection=function(l){var n,e=l.option;this.initiators.controls.forEach(function(l,t){l.value.client_iqn===e.name&&(l.patchValue({luns:[]}),l.get("cdIsInGroup").setValue(e.selected),n=t)}),u.forEach(this.groupMembersSelections,function(l){l[n].enabled=!e.selected})},l.prototype.removeGroupInitiator=function(l,n,e){var t=l.getValue("members")[n];l.getValue("members").splice(n,1),this.groupMembersSelections[e].forEach(function(l){l.name===t&&(l.selected=!1)}),this.groupMembersSelections[e]=this.groupMembersSelections[e].slice(),this.onGroupMemberSelection({option:new a.a(!1,t,"")})},l.prototype.removeGroupDisk=function(l,n,e){var t=l.getValue("disks")[n];l.getValue("disks").splice(n,1),this.groupDiskSelections[e].forEach(function(l){l.name===t&&(l.selected=!1)}),this.groupDiskSelections[e]=this.groupDiskSelections[e].slice()},l.prototype.submit=function(){var l,n=this,e=u.cloneDeep(this.targetForm.value),t={target_iqn:this.targetForm.getValue("target_iqn"),target_controls:this.targetForm.getValue("target_controls"),acl_enabled:this.targetForm.getValue("acl_enabled"),portals:[],disks:[],clients:[],groups:[]};if(this.cephIscsiConfigVersion>10){var i=this.targetForm.get("auth");i.getValue("user")||i.get("user").setValue(""),i.getValue("password")||i.get("password").setValue(""),i.getValue("mutual_user")||i.get("mutual_user").setValue(""),i.getValue("mutual_password")||i.get("mutual_password").setValue("");var o=this.targetForm.getValue("acl_enabled");t.auth={user:o?"":i.getValue("user"),password:o?"":i.getValue("password"),mutual_user:o?"":i.getValue("mutual_user"),mutual_password:o?"":i.getValue("mutual_password")}}e.disks.forEach(function(l){var e=l.split("/"),u=n.imagesSettings[l].backstore;t.disks.push({pool:e[0],image:e[1],backstore:u,controls:n.imagesSettings[l][u],lun:n.imagesSettings[l].lun,wwn:n.imagesSettings[l].wwn})}),e.portals.forEach(function(l){var n=l.indexOf(":");t.portals.push({host:l.substring(0,n),ip:l.substring(n+1)})}),t.acl_enabled&&(e.initiators.forEach(function(l){l.auth.user||(l.auth.user=""),l.auth.password||(l.auth.password=""),l.auth.mutual_user||(l.auth.mutual_user=""),l.auth.mutual_password||(l.auth.mutual_password=""),delete l.cdIsInGroup;var n=[];l.luns.forEach(function(l){var e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.luns=n}),t.clients=e.initiators),t.acl_enabled&&(e.groups.forEach(function(l){var n=[];l.disks.forEach(function(l){var e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.disks=n}),t.groups=e.groups),this.isEdit?(t.new_target_iqn=t.target_iqn,t.target_iqn=this.target_iqn,l=this.taskWrapper.wrapTaskAroundCall({task:new d.a("iscsi/target/edit",{target_iqn:t.target_iqn}),call:this.iscsiService.updateTarget(this.target_iqn,t)})):l=this.taskWrapper.wrapTaskAroundCall({task:new d.a("iscsi/target/create",{target_iqn:t.target_iqn}),call:this.iscsiService.createTarget(t)}),l.subscribe(void 0,function(){n.targetForm.setErrors({cdSubmitButton:!0})},function(){return n.router.navigate(["/block/iscsi/targets"])})},l.prototype.targetSettingsModal=function(){var l={target_controls:this.targetForm.get("target_controls"),target_default_controls:this.target_default_controls,target_controls_limits:this.target_controls_limits};this.modalRef=this.modalService.show(p.a,{initialState:l})},l.prototype.imageSettingsModal=function(l){var n={imagesSettings:this.imagesSettings,image:l,api_version:this.api_version,disk_default_controls:this.disk_default_controls,disk_controls_limits:this.disk_controls_limits,backstores:this.getValidBackstores(this.getImageById(l)),control:this.targetForm.get("disks")};this.modalRef=this.modalService.show(c.a,{initialState:n})},l.prototype.validFeatures=function(l,n){var e=l.features,t=this.required_rbd_features[n];return(e&t)===t&&0==(e&this.unsupported_rbd_features[n])},l.prototype.getImageById=function(l){return this.imagesAll.find(function(n){return l===n.pool_name+"/"+n.name})},l.prototype.getValidBackstores=function(l){var n=this;return this.backstores.filter(function(e){return n.validFeatures(l,e)})},l}()},jMP8:function(l,n,e){"use strict";e.d(n,"a",function(){return u});var t=e("gIcY"),u=(e("QFaf"),function(){function l(){}return l.prototype.ngOnInit=function(){var l=[];"min"in this.limits&&l.push(t.A.min(this.limits.min)),"max"in this.limits&&l.push(t.A.max(this.limits.max)),this.settingsForm.get(this.setting).setValidators(l)},l}())},"k/xb":function(l,n,e){"use strict";e.d(n,"a",function(){return u}),e.d(n,"b",function(){return v}),e.d(n,"c",function(){return i}),e.d(n,"d",function(){return o}),e.d(n,"g",function(){return a}),e.d(n,"h",function(){return r}),e.d(n,"i",function(){return s}),e.d(n,"j",function(){return d}),e.d(n,"k",function(){return c}),e.d(n,"l",function(){return p}),e.d(n,"m",function(){return m}),e.d(n,"n",function(){return f}),e.d(n,"e",function(){return g}),e.d(n,"f",function(){return h});var t=e("sne2"),u=(e("Vhfg"),e("gr3l"),e("e/kN"),e("roDX"),e("cxJu"),e("MyVl"),e("wG1H"),function(){return function(){}}()),i={breadcrumbs:"Images"},o={breadcrumbs:t.a.CREATE},a={breadcrumbs:t.a.EDIT},r={breadcrumbs:t.a.CLONE},s={breadcrumbs:t.a.COPY},d={breadcrumbs:t.a.COPY},c={breadcrumbs:"Mirroring"},p={breadcrumbs:"iSCSI"},m={breadcrumbs:"Overview"},f={breadcrumbs:"Targets"},g={breadcrumbs:t.a.CREATE},h={breadcrumbs:t.a.EDIT},v=function(){return function(){}}()},kccj:function(l,n,e){"use strict";e.d(n,"a",function(){return t});var t=function(){return function(){}}()},l7Jr:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("eF8U"),o=e("jMP8"),a=e("EEJc"),r=e("ajRT"),s=e("gIcY"),d=e("gp3X"),c=e("sb0X"),p=e("KVJa"),m=e("Z21x"),f=e("sne2"),g=e("a6qe"),h=e("DQlY"),v=e("my5R");e.d(n,"a",function(){return w});var b=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"div",[["class","form-group row"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,u.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"cd-iscsi-setting",[],null,null,null,i.b,i.a)),t["\u0275did"](5,114688,null,0,o.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],function(l,n){var e=n.component,u=l(n,2,0,e.settingsForm.showError(n.context.$implicit.key,t["\u0275nov"](n.parent,7)));l(n,1,0,"form-group row",u),l(n,5,0,e.settingsForm,t["\u0275nov"](n.parent,7),n.context.$implicit.key,e.getTargetControlLimits(n.context.$implicit.key))},null)}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,22,"cd-modal",[],null,null,null,a.c,a.b)),t["\u0275did"](1,49152,null,0,r.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Advanced Settings"])),(l()(),t["\u0275eld"](4,0,null,1,18,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,17,"form",[["class","form"],["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,s.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,s.d,null,[s.l]),t["\u0275did"](9,16384,null,0,s.s,[[4,s.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,5,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["\u0275and"](16777216,null,null,2,null,y)),t["\u0275did"](14,278528,null,0,u.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pid"](0,u.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["\u0275eld"](16,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t},d.b,d.a)),t["\u0275did"](19,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Confirm"])),(l()(),t["\u0275eld"](21,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,p.b,p.a)),t["\u0275did"](22,49152,null,0,m.a,[u.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.settingsForm),l(n,14,0,t["\u0275unv"](n,14,0,t["\u0275nov"](n,15).transform(e.settingsForm.controls))),l(n,19,0,e.settingsForm),l(n,22,0,"Cancel",e.modalRef.hide)},function(l,n){l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-iqn-settings-modal",[],null,null,null,C,b)),t["\u0275did"](1,114688,null,0,g.a,[h.a,v.a],null,null)],function(l,n){l(n,1,0)},null)}var w=t["\u0275ccf"]("cd-iscsi-target-iqn-settings-modal",g.a,_,{},{},[])},"lz+O":function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("ANnk"),o=e("f/UV"),a=e("aexS"),r=e("Ip0R"),s=e("EEJc"),d=e("ajRT"),c=e("gp3X"),p=e("sb0X"),m=e("KVJa"),f=e("Z21x"),g=e("sne2"),h=e("WxU5"),v=e("F83c"),b=e("DQlY"),y=e("2EZI"),C=e("Ekvf"),_=e("kn/O");e.d(n,"a",function(){return F});var w=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","poolName"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,1)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](6,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null)],function(l,n){l(n,3,0,"poolName")},function(l,n){l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,12,"select",[["class","form-control"],["formControlName","poolName"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,1).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](6,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](7,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),t["\u0275did"](8,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](9,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["All"])),(l()(),t["\u0275and"](16777216,null,null,1,null,I)),t["\u0275did"](12,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,3,0,"poolName"),l(n,8,0,""),l(n,9,0,""),l(n,12,0,e.pools)},function(l,n){l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function k(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,37,"cd-modal",[],null,null,null,s.c,s.b)),t["\u0275did"](1,49152,null,0,d.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Purge Trash"])),(l()(),t["\u0275eld"](4,0,null,1,33,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,32,"form",[["class","form"],["name","purgeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,u.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](9,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,20,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To purge, select one or"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["All"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](18,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["pools and click"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](21,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Purge Trash"])),(l()(),t["\u0275ted"](-1,null,[".\xa0 "])),(l()(),t["\u0275eld"](24,0,null,null,6,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](25,0,null,null,1,"label",[["class","center-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pool:"])),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](28,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](30,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](31,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](32,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](33,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.purge()&&t),t},c.b,c.a)),t["\u0275did"](34,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Purge Trash"])),(l()(),t["\u0275eld"](36,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["\u0275did"](37,49152,null,0,f.a,[r.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.purgeForm),l(n,28,0,!e.poolPermission.read),l(n,30,0,e.poolPermission.read),l(n,34,0,e.purgeForm),l(n,37,0,"Cancel",e.modalRef.hide)},function(l,n){l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-trash-purge-modal",[],null,null,null,k,w)),t["\u0275did"](1,114688,null,0,h.a,[a.a,v.a,b.a,y.a,C.a,_.a],null,null)],function(l,n){l(n,1,0)},null)}var F=t["\u0275ccf"]("cd-rbd-trash-purge-modal",h.a,E,{},{},[])},my5R:function(l,n,e){"use strict";e.d(n,"a",function(){return r});var t=e("mrSG"),u=e("t/Na"),i=e("xTzq"),o=e("CcnG"),a=e("pL04"),r=function(){function l(l){this.http=l}return l.prototype.listTargets=function(){return this.http.get("api/iscsi/target")},l.prototype.getTarget=function(l){return this.http.get("api/iscsi/target/"+l)},l.prototype.updateTarget=function(l,n){return this.http.put("api/iscsi/target/"+l,n,{observe:"response"})},l.prototype.status=function(){return this.http.get("ui-api/iscsi/status")},l.prototype.settings=function(){return this.http.get("ui-api/iscsi/settings")},l.prototype.version=function(){return this.http.get("ui-api/iscsi/version")},l.prototype.portals=function(){return this.http.get("ui-api/iscsi/portals")},l.prototype.createTarget=function(l){return this.http.post("api/iscsi/target",l,{observe:"response"})},l.prototype.deleteTarget=function(l){return this.http.delete("api/iscsi/target/"+l,{observe:"response"})},l.prototype.getDiscovery=function(){return this.http.get("api/iscsi/discoveryauth")},l.prototype.updateDiscovery=function(l){return this.http.put("api/iscsi/discoveryauth",l)},l.prototype.overview=function(){return this.http.get("ui-api/iscsi/overview")},l.ngInjectableDef=o.defineInjectable({factory:function(){return new l(o.inject(u.c))},token:l,providedIn:a.a}),l=t.__decorate([i.a,t.__metadata("design:paramtypes",[u.c])],l)}()},nP0W:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("EEJc"),o=e("ajRT"),a=e("Ip0R"),r=e("ANnk"),s=e("f/UV"),d=e("aexS"),c=e("gp3X"),p=e("sb0X"),m=e("KVJa"),f=e("Z21x"),g=e("sne2"),h=e("aa9H"),v=e("DQlY"),b=e("Jm/i"),y=e("XED3"),C=e("kn/O");e.d(n,"a",function(){return k});var _=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.id),l(n,2,0,n.context.$implicit.id)},function(l,n){l(n,3,0,n.context.$implicit.name)})}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Peer clusters must be removed prior to disabling mirror."]))],null,null)}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,43,"cd-modal",[],null,null,null,i.c,i.b)),t["\u0275did"](1,49152,null,0,o.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Edit pool mirror mode"])),(l()(),t["\u0275eld"](4,0,null,1,39,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,38,"form",[["class","form"],["name","editModeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,u.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](9,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,26,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,8,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,7,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To edit the mirror mode for pool\xa0 "])),(l()(),t["\u0275eld"](14,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](15,null,["",""])),(l()(),t["\u0275ted"](-1,null,[", select a new mode from the list and click\xa0 "])),(l()(),t["\u0275eld"](17,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Update"])),(l()(),t["\u0275ted"](-1,null,["."])),(l()(),t["\u0275eld"](20,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](21,278528,null,0,a.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](22,{"has-error":0}),(l()(),t["\u0275eld"](23,0,null,null,2,"label",[["class","control-label"],["for","mirrorMode"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Mode"])),(l()(),t["\u0275eld"](26,0,null,null,8,"select",[["class","form-control"],["formControlName","mirrorMode"],["id","mirrorMode"],["name","mirrorMode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,28).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,28).onTouched()&&u),u},null,null)),t["\u0275did"](27,4210688,null,0,r.a,[[2,s.a],d.a,t.ElementRef],null,null),t["\u0275did"](28,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](30,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](32,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,w)),t["\u0275did"](34,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](36,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](37,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t},c.b,c.a)),t["\u0275did"](40,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Update"])),(l()(),t["\u0275eld"](42,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["\u0275did"](43,49152,null,0,f.a,[a.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.editModeForm);var u=l(n,22,0,e.editModeForm.showError("mirrorMode",t["\u0275nov"](n,7)));l(n,21,0,"form-group",u),l(n,30,0,"mirrorMode"),l(n,34,0,e.mirrorModes),l(n,36,0,e.editModeForm.showError("mirrorMode",t["\u0275nov"](n,7),"cannotDisable")),l(n,40,0,e.editModeForm),l(n,43,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,15,0,e.poolName),l(n,26,0,t["\u0275nov"](n,32).ngClassUntouched,t["\u0275nov"](n,32).ngClassTouched,t["\u0275nov"](n,32).ngClassPristine,t["\u0275nov"](n,32).ngClassDirty,t["\u0275nov"](n,32).ngClassValid,t["\u0275nov"](n,32).ngClassInvalid,t["\u0275nov"](n,32).ngClassPending)})}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-pool-edit-mode-modal",[],null,null,null,I,_)),t["\u0275did"](1,245760,null,0,h.a,[v.a,b.a,y.a,C.a],null,null)],function(l,n){l(n,1,0)},null)}var k=t["\u0275ccf"]("cd-pool-edit-mode-modal",h.a,S,{},{},[])},nhAp:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("ANnk"),o=e("f/UV"),a=e("aexS"),r=e("Ip0R"),s=e("eF8U"),d=e("jMP8"),c=e("uYzU"),p=e("EEJc"),m=e("ajRT"),f=e("gp3X"),g=e("sb0X"),h=e("KVJa"),v=e("Z21x"),b=e("sne2"),y=e("Z4cD"),C=e("DQlY"),_=e("my5R");e.d(n,"a",function(){return T});var w=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,29,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Identifier"])),(l()(),t["\u0275eld"](3,0,null,null,15,"div",[["class","form-group row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,14,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,3,"label",[["class","col-form-label"],["for","lun"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["lun"])),(l()(),t["\u0275eld"](8,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,7,"input",[["class","form-control"],["formControlName","lun"],["id","lun"],["name","lun"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,10)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,10).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,10)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,10)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,11).onChange(e.target.value)&&u),"input"===n&&(u=!1!==t["\u0275nov"](l,11).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,11).onTouched()&&u),u},null,null)),t["\u0275did"](10,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](11,16384,null,0,u.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.C]),t["\u0275did"](13,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](15,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](16,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](18,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](19,0,null,null,10,"div",[["class","form-group row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,9,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](21,0,null,null,1,"label",[["class","col-form-label"],["for","wwn"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["wwn"])),(l()(),t["\u0275eld"](23,0,null,null,6,"input",[["class","form-control"],["formControlName","wwn"],["id","wwn"],["name","wwn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,24)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,24).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,24)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,24)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](24,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](26,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](28,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](29,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null)],function(l,n){var e=n.component;l(n,13,0,"lun"),l(n,18,0,e.settingsForm.showError("lun",t["\u0275nov"](n.parent,12),"required")),l(n,26,0,"wwn")},function(l,n){l(n,9,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending),l(n,23,0,t["\u0275nov"](n,28).ngClassUntouched,t["\u0275nov"](n,28).ngClassTouched,t["\u0275nov"](n,28).ngClassPristine,t["\u0275nov"](n,28).ngClassDirty,t["\u0275nov"](n,28).ngClassValid,t["\u0275nov"](n,28).ngClassInvalid,t["\u0275nov"](n,28).ngClassPending)})}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""])),t["\u0275ppd"](4,1)],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){var e=t["\u0275unv"](n,3,0,l(n,4,0,t["\u0275nov"](n.parent,0),n.context.$implicit));l(n,3,0,e)})}function k(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"div",[["class","form-group row"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,r.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"cd-iscsi-setting",[],null,null,null,s.b,s.a)),t["\u0275did"](5,114688,null,0,d.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],function(l,n){var e=n.component,u=l(n,2,0,e.settingsForm.showError(n.context.$implicit.key,t["\u0275nov"](n.parent.parent.parent,12)));l(n,1,0,"form-group row",u),l(n,5,0,e.settingsForm,t["\u0275nov"](n.parent.parent.parent,12),n.context.$implicit.key,e.getDiskControlLimits(n.parent.parent.context.$implicit,n.context.$implicit.key))},null)}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,2,null,k)),t["\u0275did"](2,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pid"](0,r.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){var e=n.component;l(n,2,0,t["\u0275unv"](n,2,0,t["\u0275nov"](n,3).transform(e.disk_default_controls[n.parent.context.$implicit])))},null)}function F(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,E)),t["\u0275did"](2,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,2,0,n.component.settingsForm.value.backstore===n.context.$implicit)},null)}function D(l){return t["\u0275vid"](0,[t["\u0275pid"](0,c.a,[]),(l()(),t["\u0275eld"](1,0,null,null,42,"cd-modal",[],null,null,null,p.c,p.b)),t["\u0275did"](2,49152,null,0,m.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](3,0,null,0,5,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Configure"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](7,0,null,null,1,"small",[],null,null,null,null,null)),(l()(),t["\u0275ted"](8,null,["",""])),(l()(),t["\u0275eld"](9,0,null,1,34,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,33,"form",[["class","form"],["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,12).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,12).onReset()&&u),u},null,null)),t["\u0275did"](11,16384,null,0,u.D,[],null,null),t["\u0275did"](12,540672,[["formDir",4]],0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](14,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,21,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["\u0275and"](16777216,null,null,1,null,I)),t["\u0275did"](19,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](20,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Settings"])),(l()(),t["\u0275eld"](22,0,null,null,12,"div",[["class","form-group row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](23,0,null,null,11,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,1,"label",[["class","control-label"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Backstore"])),(l()(),t["\u0275eld"](26,0,null,null,8,"select",[["class","form-control"],["formControlName","backstore"],["id","backstore"],["name","backstore"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,27).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,27).onTouched()&&u),u},null,null)),t["\u0275did"](27,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](29,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](31,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](32,4210688,null,0,i.a,[[2,o.a],a.a,t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](34,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,F)),t["\u0275did"](36,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](37,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t},f.b,f.a)),t["\u0275did"](40,114688,null,0,g.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Confirm"])),(l()(),t["\u0275eld"](42,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),t["\u0275did"](43,49152,null,0,v.a,[r.Location,b.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,2,0,e.modalRef),l(n,12,0,e.settingsForm),l(n,19,0,e.api_version>=1),l(n,29,0,"backstore"),l(n,34,0,e.backstores),l(n,36,0,e.backstores),l(n,40,0,e.settingsForm),l(n,43,0,"Cancel",e.modalRef.hide)},function(l,n){l(n,8,0,n.component.image),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,26,0,t["\u0275nov"](n,31).ngClassUntouched,t["\u0275nov"](n,31).ngClassTouched,t["\u0275nov"](n,31).ngClassPristine,t["\u0275nov"](n,31).ngClassDirty,t["\u0275nov"](n,31).ngClassValid,t["\u0275nov"](n,31).ngClassInvalid,t["\u0275nov"](n,31).ngClassPending)})}function V(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-image-settings-modal",[],null,null,null,D,w)),t["\u0275did"](1,114688,null,0,y.a,[C.a,_.a],null,null)],function(l,n){l(n,1,0)},null)}var T=t["\u0275ccf"]("cd-iscsi-target-image-settings-modal",y.a,V,{},{},[])},o8EM:function(l,n,e){"use strict";e.d(n,"a",function(){return o});var t=e("PhyI"),u=e("CcnG"),i=e("Jm/i"),o=function(){function l(l){this.i18n=l,this.sections=[{heading:this.i18n("Quality of Service"),class:"quality-of-service",options:[{name:"rbd_qos_bps_limit",displayName:this.i18n("BPS Limit"),description:this.i18n("The desired limit of IO bytes per second."),type:t.b.bps},{name:"rbd_qos_iops_limit",displayName:this.i18n("IOPS Limit"),description:this.i18n("The desired limit of IO operations per second."),type:t.b.iops},{name:"rbd_qos_read_bps_limit",displayName:this.i18n("Read BPS Limit"),description:this.i18n("The desired limit of read bytes per second."),type:t.b.bps},{name:"rbd_qos_read_iops_limit",displayName:this.i18n("Read IOPS Limit"),description:this.i18n("The desired limit of read operations per second."),type:t.b.iops},{name:"rbd_qos_write_bps_limit",displayName:this.i18n("Write BPS Limit"),description:this.i18n("The desired limit of write bytes per second."),type:t.b.bps},{name:"rbd_qos_write_iops_limit",displayName:this.i18n("Write IOPS Limit"),description:this.i18n("The desired limit of write operations per second."),type:t.b.iops},{name:"rbd_qos_bps_burst",displayName:this.i18n("BPS Burst"),description:this.i18n("The desired burst limit of IO bytes."),type:t.b.bps},{name:"rbd_qos_iops_burst",displayName:this.i18n("IOPS Burst"),description:this.i18n("The desired burst limit of IO operations."),type:t.b.iops},{name:"rbd_qos_read_bps_burst",displayName:this.i18n("Read BPS Burst"),description:this.i18n("The desired burst limit of read bytes."),type:t.b.bps},{name:"rbd_qos_read_iops_burst",displayName:this.i18n("Read IOPS Burst"),description:this.i18n("The desired burst limit of read operations."),type:t.b.iops},{name:"rbd_qos_write_bps_burst",displayName:this.i18n("Write BPS Burst"),description:this.i18n("The desired burst limit of write bytes."),type:t.b.bps},{name:"rbd_qos_write_iops_burst",displayName:this.i18n("Write IOPS Burst"),description:this.i18n("The desired burst limit of write operations."),type:t.b.iops}]}]}return l.getOptionsFromSections=function(l){return l.map(function(l){return l.options}).reduce(function(l,n){return l.concat(n)})},l.prototype.filterConfigOptionsByName=function(n){return l.getOptionsFromSections(this.sections).filter(function(l){return l.name===n})},l.prototype.getOptionValueByName=function(l,n,e){void 0===e&&(e="");var t=this.filterConfigOptionsByName(l);return 1===t.length?t.pop()[n]:e},l.prototype.getWritableSections=function(){return this.sections.map(function(l){return l.options=l.options.filter(function(l){return!l.readOnly}),l})},l.prototype.getOptionFields=function(){return l.getOptionsFromSections(this.sections)},l.prototype.getWritableOptionFields=function(){return l.getOptionsFromSections(this.getWritableSections())},l.prototype.getOptionByName=function(l){return this.filterConfigOptionsByName(l).pop()},l.prototype.getDisplayName=function(l){return this.getOptionValueByName(l,"displayName")},l.prototype.getDescription=function(l){return this.getOptionValueByName(l,"description")},l.ngInjectableDef=u.defineInjectable({factory:function(){return new l(u.inject(i.a))},token:l,providedIn:"root"}),l}()},rFfW:function(l,n,e){"use strict";e.d(n,"a",function(){return a});var t=e("CcnG"),u=e("gIcY"),i=e("QFaf"),o=e("PhyI"),a=(e("aXbf"),e("o8EM"),function(){function l(l,n){this.formatterService=l,this.rbdConfigurationService=n,this.changes=new t.EventEmitter,this.ngDataReady=new t.EventEmitter,this.configurationType=o.b,this.sectionVisibility={}}return l.prototype.ngOnInit=function(){var l=this,n=this.createConfigurationFormGroup();this.form.addControl("configuration",n),n.valueChanges.subscribe(function(){l.changes.emit(l.getDirtyValues.bind(l))}),this.initializeData&&this.initializeData.subscribe(function(n){l.initialData=n.initialData;var e=n.sourceType;l.rbdConfigurationService.getWritableOptionFields().forEach(function(t){var u=n.initialData.filter(function(l){return l.name===t.name}).pop();u&&u.source===e&&l.form.get("configuration."+t.name).setValue(u.value)}),l.ngDataReady.emit()}),this.rbdConfigurationService.getWritableSections().forEach(function(n){return l.sectionVisibility[n.class]=!1})},l.prototype.getDirtyValues=function(l,n){var e=this;if(void 0===l&&(l=!1),l&&!n)throw new Error("ProgrammingError: If local values shall be included, a proper localFieldType argument has to be provided, too");var t={};return this.rbdConfigurationService.getWritableOptionFields().forEach(function(u){var i=e.form.get("configuration").get(u.name);e.initialData&&e.initialData[u.name]===i.value||(i.dirty||l&&i.source===n)&&(t[u.name]=null===i.value?i.value:u.type===o.b.bps?e.formatterService.toBytes(i.value):u.type===o.b.milliseconds?e.formatterService.toMilliseconds(i.value):u.type===o.b.iops?e.formatterService.toIops(i.value):i.value)}),t},l.prototype.createConfigurationFormGroup=function(){var l=new i.a({});return this.rbdConfigurationService.getWritableOptionFields().forEach(function(n){var e;if(n.type!==o.b.milliseconds&&n.type!==o.b.iops&&n.type!==o.b.bps)throw new Error("Type "+n.type+" is unknown, you may need to add it to RbdConfiguration class");e=new u.i(0,u.A.min(0)),l.addControl(n.name,e)}),l},l.prototype.reset=function(l){var n=this.form.get("configuration").get(l);n.disabled?(n.setValue(n.previousValue||0),n.enable(),n.previousValue||n.markAsPristine()):(n.previousValue=n.value,n.setValue(null),n.markAsDirty(),n.disable())},l.prototype.isDisabled=function(l){return this.form.get("configuration").get(l).disabled},l.prototype.toggleSectionVisibility=function(l){this.sectionVisibility[l]=!this.sectionVisibility[l]},l}())},roDX:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("my5R"),e("o4+5"),e("uYzU");var t=function(){function l(l,n,e,t){this.iscsiService=l,this.dimlessPipe=n,this.iscsiBackstorePipe=e,this.i18n=t,this.gateways=[],this.images=[]}return l.prototype.ngOnInit=function(){this.gatewaysColumns=[{name:this.i18n("Name"),prop:"name"},{name:this.i18n("State"),prop:"state",cellTemplate:this.statusColorTpl},{name:this.i18n("# Targets"),prop:"num_targets"},{name:this.i18n("# Sessions"),prop:"num_sessions"}],this.imagesColumns=[{name:this.i18n("Pool"),prop:"pool"},{name:this.i18n("Image"),prop:"image"},{name:this.i18n("Backstore"),prop:"backstore",pipe:this.iscsiBackstorePipe},{name:this.i18n("Read Bytes"),prop:"stats_history.rd_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Write Bytes"),prop:"stats_history.wr_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Read Ops"),prop:"stats.rd",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("Write Ops"),prop:"stats.wr",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("A/O Since"),prop:"optimized_since",cellTemplate:this.iscsiRelativeDateTpl}]},l.prototype.refresh=function(){var l=this;this.iscsiService.overview().subscribe(function(n){l.gateways=n.gateways,l.images=n.images,l.images.map(function(l){return l.stats_history&&(l.stats_history.rd_bytes=l.stats_history.rd_bytes.map(function(l){return l[1]}),l.stats_history.wr_bytes=l.stats_history.wr_bytes.map(function(l){return l[1]})),l.cdIsBinary=!0,l})})},l}()},u0yg:function(l,n,e){"use strict";e.d(n,"b",function(){return t}),e.d(n,"a",function(){return u});var t=function(){return function(){}}(),u=function(l){return l[l.V1=1]="V1",l[l.V2=2]="V2",l}({})},u2XS:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("25BL"),o=e("uIqm"),a=e("nuQ0"),r=e("Tff5"),s=e("urB8"),d=e("xtUU"),c=e("3ris"),p=e("Jm/i"),m=e("uYzU"),f=e("iExv");e.d(n,"b",function(){return g}),e.d(n,"c",function(){return _}),e.d(n,"a",function(){return R});var g=t["\u0275crt"]({encapsulation:0,styles:[["tree .fa{font-weight:unset!important}"]],data:{}});function h(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xa0"])),(l()(),t["\u0275eld"](3,0,null,null,5,"span",[["class","label"]],null,null,null,null,null)),t["\u0275did"](4,278528,null,0,u.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pad"](5,1),t["\u0275pad"](6,1),t["\u0275pod"](7,{"label-success":0,"label-danger":1}),(l()(),t["\u0275ted"](8,null,[" "," "]))],function(l,n){var e=l(n,7,0,l(n,5,0,"logged_in").includes(n.context.$implicit.status),l(n,6,0,"logged_out").includes(n.context.$implicit.status));l(n,4,0,"label",e)},function(l,n){l(n,0,0,n.context.$implicit.value),l(n,8,0,n.context.$implicit.status)})}function v(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"div",[["class","col-sm-6 col-lg-6 metadata"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["",""])),(l()(),t["\u0275eld"](3,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,i.b,i.a)),t["\u0275did"](4,2867200,[[2,4],["detailTable",4]],0,o.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],limit:[3,"limit"]},null)],function(l,n){var e=n.component;l(n,4,0,e.data,e.columns,"flex",0)},function(l,n){l(n,2,0,n.component.title)})}function b(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,b)),t["\u0275did"](1,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](3,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,void 0===n.context.row.default||n.context.row.default===n.context.row.current),l(n,3,0,void 0!==n.context.row.default&&n.context.row.default!==n.context.row.current)},null)}function _(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{highlightTpl:0}),t["\u0275qud"](671088640,2,{content:0}),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","col-sm-6 col-lg-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["iSCSI Topology"])),(l()(),t["\u0275eld"](5,0,null,null,4,"tree",[],null,[[null,"nodeSelected"]],function(l,n,e){var t=!0;return"nodeSelected"===n&&(t=!1!==l.component.onNodeSelected(e)&&t),t},a.b,a.a)),t["\u0275prd"](512,null,r.TreeService,r.TreeService,[s.NodeDraggableService]),t["\u0275did"](7,770048,null,1,d.TreeComponent,[r.TreeService],{treeModel:[0,"treeModel"]},{nodeSelected:"nodeSelected"}),t["\u0275qud"](335544320,3,{template:0}),(l()(),t["\u0275and"](0,[[3,2]],null,0,null,h)),(l()(),t["\u0275and"](16777216,null,null,1,null,v)),t["\u0275did"](11,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,[[1,2],["highlightTpl",2]],null,0,null,C))],function(l,n){var e=n.component;l(n,7,0,e.tree),l(n,11,0,e.data)},null)}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-details",[],null,null,null,_,g)),t["\u0275did"](1,638976,null,0,c.a,[p.a,m.a,f.a],null,null)],function(l,n){l(n,1,0)},null)}var R=t["\u0275ccf"]("cd-iscsi-target-details",c.a,w,{selection:"selection",settings:"settings",cephIscsiConfigVersion:"cephIscsiConfigVersion"},{},[])},wG1H:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("aexS");var t=function(){function l(l){this.authStorageService=l,this.grafanaPermission=this.authStorageService.getPermissions().grafana}return l.prototype.ngOnInit=function(){},l}()}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/2.6b39f7993dea306e22fe.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/2.6b39f7993dea306e22fe.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/2.6b39f7993dea306e22fe.js 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/2.6b39f7993dea306e22fe.js 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+lcs":function(l,n,e){"use strict";e.d(n,"a",function(){return r});var t=e("gIcY"),u=e("K9Ia"),i=(e("F83c"),e("sne2"),e("QFaf")),o=e("kvvV"),r=(e("9nlD"),e("VXsX"),function(){function l(l,n,e,t,u,i){this.modalRef=l,this.rbdService=n,this.taskManagerService=e,this.notificationService=t,this.i18n=u,this.actionLabels=i,this.editing=!1,this.action=this.actionLabels.CREATE,this.resource=this.i18n("RBD Snapshot"),this.createForm()}return l.prototype.createForm=function(){this.snapshotForm=new i.a({snapshotName:new t.i("",{validators:[t.A.required]})})},l.prototype.ngOnInit=function(){this.onSubmit=new u.a},l.prototype.setSnapName=function(l){this.snapName=l,this.snapshotForm.get("snapshotName").setValue(l)},l.prototype.setEditing=function(l){void 0===l&&(l=!0),this.editing=l,this.action=this.editing?this.actionLabels.RENAME:this.actionLabels.CREATE},l.prototype.editAction=function(){var l=this,n=this.snapshotForm.getValue("snapshotName"),e=new o.a;e.name="rbd/snap/edit",e.metadata={pool_name:this.poolName,image_name:this.imageName,snapshot_name:n},this.rbdService.renameSnapshot(this.poolName,this.imageName,this.snapName,n).toPromise().then(function(){l.taskManagerService.subscribe(e.name,e.metadata,function(n){l.notificationService.notifyTask(n)}),l.modalRef.hide(),l.onSubmit.next(l.snapName)}).catch(function(){l.snapshotForm.setErrors({cdSubmitButton:!0})})},l.prototype.createAction=function(){var l=this,n=this.snapshotForm.getValue("snapshotName"),e=new o.a;e.name="rbd/snap/create",e.metadata={pool_name:this.poolName,image_name:this.imageName,snapshot_name:n},this.rbdService.createSnapshot(this.poolName,this.imageName,n).toPromise().then(function(){l.taskManagerService.subscribe(e.name,e.metadata,function(n){l.notificationService.notifyTask(n)}),l.modalRef.hide(),l.onSubmit.next(n)}).catch(function(){l.snapshotForm.setErrors({cdSubmitButton:!0})})},l.prototype.submit=function(){this.editing?this.editAction():this.createAction()},l}())},"0rTx":function(l,n,e){"use strict";var t=e("CcnG"),u=e("EEJc"),i=e("ajRT"),o=e("gIcY"),r=e("Ip0R"),a=e("IZUe"),s=e("gp3X"),d=e("sb0X"),c=e("KVJa"),p=e("Z21x"),m=e("sne2"),f=e("2GqK"),g=e("F83c"),h=e("DQlY"),v=e("2EZI"),b=e("kn/O");e.d(n,"a",function(){return I});var y=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,44,"cd-modal",[],null,null,null,u.c,u.b)),t["\u0275did"](1,49152,null,0,i.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Restore Image"])),(l()(),t["\u0275eld"](4,0,null,1,40,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,39,"form",[["class","form"],["name","restoreForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,o.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,o.d,null,[o.l]),t["\u0275did"](9,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,27,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To restore"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](16,null,["","/","@",""])),(l()(),t["\u0275ted"](-1,null,[",\xa0 "])),(l()(),t["\u0275eld"](18,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["type the image's new name and click"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](21,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Restore Image"])),(l()(),t["\u0275ted"](-1,null,[". "])),(l()(),t["\u0275eld"](24,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](25,278528,null,0,r.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](26,{"has-error":0}),(l()(),t["\u0275eld"](27,0,null,null,1,"label",[["for","name"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["New Name"])),(l()(),t["\u0275eld"](29,0,null,null,6,"input",[["autocomplete","off"],["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,30)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,30).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,30)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,30)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](30,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),t["\u0275did"](32,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,o.q,null,[o.j]),t["\u0275did"](34,16384,null,0,o.r,[[4,o.q]],null,null),t["\u0275did"](35,4210688,null,0,a.a,[t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,C)),t["\u0275did"](37,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](38,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](40,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.restore()&&t),t},s.b,s.a)),t["\u0275did"](41,114688,null,0,d.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Restore Image"])),(l()(),t["\u0275eld"](43,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,c.b,c.a)),t["\u0275did"](44,49152,null,0,p.a,[r.Location,m.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.restoreForm);var u=l(n,26,0,e.restoreForm.showError("name",t["\u0275nov"](n,7)));l(n,25,0,"form-group",u),l(n,32,0,"name"),l(n,37,0,e.restoreForm.showError("name",t["\u0275nov"](n,7),"required")),l(n,41,0,e.restoreForm),l(n,44,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,16,0,e.poolName,e.imageName,e.imageId),l(n,29,0,t["\u0275nov"](n,34).ngClassUntouched,t["\u0275nov"](n,34).ngClassTouched,t["\u0275nov"](n,34).ngClassPristine,t["\u0275nov"](n,34).ngClassDirty,t["\u0275nov"](n,34).ngClassValid,t["\u0275nov"](n,34).ngClassInvalid,t["\u0275nov"](n,34).ngClassPending)})}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-trash-restore-modal",[],null,null,null,_,y)),t["\u0275did"](1,114688,null,0,f.a,[g.a,h.a,v.a,b.a],null,null)],function(l,n){l(n,1,0)},null)}var I=t["\u0275ccf"]("cd-rbd-trash-restore-modal",f.a,w,{},{},[])},"2GqK":function(l,n,e){"use strict";e.d(n,"a",function(){return u}),e("F83c"),e("2EZI");var t=e("kvvV"),u=(e("kn/O"),function(){function l(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t}return l.prototype.ngOnInit=function(){this.restoreForm=this.fb.group({name:this.imageName})},l.prototype.restore=function(){var l=this,n=this.restoreForm.getValue("name");this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/restore",{pool_name:this.poolName,image_id:this.imageId,new_image_name:n}),call:this.rbdService.restoreTrash(this.poolName,this.imageId,n)}).subscribe(void 0,function(){l.restoreForm.setErrors({cdSubmitButton:!0})},function(){l.modalRef.hide()})},l}())},"2JDI":function(l,n,e){"use strict";e.d(n,"a",function(){return o});var t=e("wd/R"),u=(e("F83c"),e("2EZI"),e("1Ni5")),i=e("kvvV"),o=(e("kn/O"),function(){function l(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t,this.minDate=new Date,this.bsConfig={dateInputFormat:"YYYY-MM-DD HH:mm:ss",containerClass:"theme-default"},this.createForm()}return l.prototype.createForm=function(){this.moveForm=this.fb.group({expiresAt:["",[u.a.custom("format",function(l){return!(""===l||t(l,"YYYY-MM-DD HH:mm:ss").isValid())}),u.a.custom("expired",function(l){return t().isAfter(l)})]]})},l.prototype.ngOnInit=function(){this.pattern=this.poolName+"/"+this.imageName},l.prototype.moveImage=function(){var l=this,n=0,e=this.moveForm.getValue("expiresAt");e&&(n=t(e).diff(t(),"seconds",!0)),n<0&&(n=0),this.taskWrapper.wrapTaskAroundCall({task:new i.a("rbd/trash/move",{pool_name:this.poolName,image_name:this.imageName}),call:this.rbdService.moveTrash(this.poolName,this.imageName,n)}).subscribe(void 0,void 0,function(){l.modalRef.hide()})},l}())},"3ris":function(l,n,e){"use strict";e.d(n,"a",function(){return u});var t=e("LvDl"),u=(e("uIqm"),e("vCyI"),e("iExv"),e("uYzU"),function(){function l(l,n,e){this.i18n=l,this.iscsiBackstorePipe=n,this.booleanTextPipe=e,this.metadata={}}return Object.defineProperty(l.prototype,"content",{set:function(l){this.detailTable=l,l&&l.updateColumns()},enumerable:!0,configurable:!0}),l.prototype.ngOnInit=function(){this.columns=[{prop:"displayName",name:this.i18n("Name"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"current",name:this.i18n("Current"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"default",name:this.i18n("Default"),flexGrow:1,cellTemplate:this.highlightTpl}]},l.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.generateTree()),this.data=void 0},l.prototype.generateTree=function(){var l=this,n=t.cloneDeep(this.selectedItem.target_controls);this.cephIscsiConfigVersion>10&&t.extend(n,t.cloneDeep(this.selectedItem.auth)),this.metadata={root:n};var e={target:{expanded:this.selectedItem.cdExecuting?"fa fa-fw fa-spinner fa-spin fa-lg":"fa fa-fw fa-bullseye fa-lg"},initiators:{expanded:"fa fa-fw fa-user fa-lg",leaf:"fa fa-fw fa-user"},groups:{expanded:"fa fa-fw fa-users fa-lg",leaf:"fa fa-fw fa-users"},disks:{expanded:"fa fa-fw fa-hdd-o fa-lg",leaf:"fa fa-fw fa-hdd-o"},portals:{expanded:"fa fa-fw fa-server fa-lg",leaf:"fa fa-fw fa-server fa-lg"}},u=[];t.forEach(this.selectedItem.disks,function(n){var e="disk_"+n.pool+"_"+n.image;l.metadata[e]={controls:n.controls,backstore:n.backstore},["wwn","lun"].forEach(function(t){t in n&&(l.metadata[e][t]=n[t])}),u.push({value:n.pool+"/"+n.image,id:e})});var i=[];t.forEach(this.selectedItem.portals,function(l){i.push({value:l.host+":"+l.ip})});var o=[];t.forEach(this.selectedItem.clients,function(n){var u=t.cloneDeep(n.auth);n.info&&(t.extend(u,n.info),delete u.state,t.forEach(Object.keys(n.info.state),function(l){u[l.toLowerCase()]=n.info.state[l]})),l.metadata["client_"+n.client_iqn]=u;var i=[];n.luns.forEach(function(l){i.push({value:l.pool+"/"+l.image,id:"disk_"+l.pool+"_"+l.image,settings:{cssClasses:e.disks}})});var r="";n.info&&(r=Object.keys(n.info.state).includes("LOGGED_IN")?"logged_in":"logged_out"),o.push({value:n.client_iqn,status:r,id:"client_"+n.client_iqn,children:i})});var r=[];t.forEach(this.selectedItem.groups,function(l){var n=[];l.disks.forEach(function(l){n.push({value:l.pool+"/"+l.image,id:"disk_"+l.pool+"_"+l.image})});var t=[];l.members.forEach(function(l){t.push({value:l,id:"client_"+l})}),r.push({value:l.group_id,children:[{value:"Disks",children:n,settings:{selectionAllowed:!1,cssClasses:e.disks}},{value:"Initiators",children:t,settings:{selectionAllowed:!1,cssClasses:e.initiators}}]})}),this.tree={value:this.selectedItem.target_iqn,id:"root",settings:{static:!0,cssClasses:e.target},children:[{value:"Disks",children:u,settings:{selectionAllowed:!1,cssClasses:e.disks}},{value:"Portals",children:i,settings:{selectionAllowed:!1,cssClasses:e.portals}},{value:"Initiators",children:o,settings:{selectionAllowed:!1,cssClasses:e.initiators}},{value:"Groups",children:r,settings:{selectionAllowed:!1,cssClasses:e.groups}}]}},l.prototype.format=function(l){return"boolean"==typeof l?this.booleanTextPipe.transform(l):l},l.prototype.onNodeSelected=function(l){var n=this;if(l.node.id){this.title=l.node.value;var e=this.metadata[l.node.id]||{};"root"===l.node.id?(this.columns[2].isHidden=!1,this.data=t.map(this.settings.target_default_controls,function(l,u){return{displayName:u,default:l=n.format(l),current:t.isUndefined(e[u])?l:n.format(e[u])}}),this.cephIscsiConfigVersion>10&&["user","password","mutual_user","mutual_password"].forEach(function(l){n.data.push({displayName:l,default:null,current:e[l]})})):l.node.id.toString().startsWith("disk_")?(this.columns[2].isHidden=!1,this.data=t.map(this.settings.disk_default_controls[e.backstore],function(l,u){return{displayName:u,default:l=n.format(l),current:t.isUndefined(e.controls[u])?l:n.format(e.controls[u])}}),this.data.push({displayName:"backstore",default:this.iscsiBackstorePipe.transform(this.settings.default_backstore),current:this.iscsiBackstorePipe.transform(e.backstore)}),["wwn","lun"].forEach(function(l){l in e&&n.data.push({displayName:l,default:void 0,current:e[l]})})):(this.columns[2].isHidden=!0,this.data=t.map(e,function(l,e){return{displayName:e,default:void 0,current:n.format(l)}}))}else this.data=void 0;this.detailTable&&this.detailTable.updateColumns()},l}())},BH9v:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("aXbf"),o=function(){function l(l,n){this.control=l,this.formatter=n}return l.prototype.setValue=function(l){var n=this.formatter.toMilliseconds(l);this.control.control.setValue(n+" ms")},l.prototype.ngOnInit=function(){var l=this;this.setValue(this.control.value),this.ngDataReady&&this.ngDataReady.subscribe(function(){return l.setValue(l.control.value)})},l.prototype.onUpdate=function(l){this.setValue(l)},l}(),r=e("LvDl"),a=e("IzCI"),s=function(){function l(l,n,e,u){this.elementRef=l,this.control=n,this.dimlessBinaryPerSecondPipe=e,this.formatter=u,this.ngModelChange=new t.EventEmitter,this.el=this.elementRef.nativeElement}return l.prototype.ngOnInit=function(){var l=this;this.setValue(this.el.value),this.ngDataReady&&this.ngDataReady.subscribe(function(){return l.setValue(l.el.value)})},l.prototype.setValue=function(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");var n=this.formatter.toBytes(l,0),e=this.round(n);this.el.value=this.dimlessBinaryPerSecondPipe.transform(e),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))},l.prototype.round=function(l){if(null!==l&&0!==l){if(!r.isUndefined(this.minBytes)&&lthis.maxBytes)return this.maxBytes;if(!r.isUndefined(this.roundPower)){var n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l},l.prototype.onBlur=function(l){this.setValue(l)},l}(),d=function(){function l(l,n){this.formatter=l,this.ngControl=n}return l.prototype.setValue=function(l){var n=this.formatter.toIops(l);this.ngControl.control.setValue(n+" IOPS")},l.prototype.ngOnInit=function(){var l=this;this.setValue(this.ngControl.value),this.ngDataReady&&this.ngDataReady.subscribe(function(){return l.setValue(l.ngControl.value)})},l.prototype.onUpdate=function(l){this.setValue(l)},l}(),c=e("Ip0R"),p=e("4HWh"),m=e("p4Cf");e("rFfW"),e("o8EM"),e.d(n,"a",function(){return f}),e.d(n,"b",function(){return _});var f=t["\u0275crt"]({encapsulation:0,styles:[[".collapsible[_ngcontent-%COMP%]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]],data:{}});function g(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,6,"input",[["cdMilliseconds",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,2)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionEnd(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,7).onUpdate(e.target.value)&&u),u},null,null)),t["\u0275did"](2,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](7,81920,null,0,o,[u.q,i.a],{ngDataReady:[0,"ngDataReady"]},null)],function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady)},function(l,n){l(n,1,0,n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function h(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,6,"input",[["cdDimlessBinaryPerSecond",""],["class","form-control"],["defaultUnit","b"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,2)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionEnd(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,7).onBlur(e.target.value)&&u),u},null,null)),t["\u0275did"](2,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](7,81920,null,0,s,[t.ElementRef,u.q,a.a,i.a],{ngDataReady:[0,"ngDataReady"],defaultUnit:[1,"defaultUnit"]},null)],function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady,"b")},function(l,n){l(n,1,0,n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function v(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,6,"input",[["cdIops",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,2)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,2)._compositionEnd(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,7).onUpdate(e.target.value)&&u),u},null,null)),t["\u0275did"](2,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null),t["\u0275did"](7,81920,null,0,d,[i.a,u.q],{ngDataReady:[0,"ngDataReady"]},null)],function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady)},function(l,n){l(n,1,0,n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function b(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The mininum value is 0"]))],null,null)}function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,c.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](4,null,["",""])),(l()(),t["\u0275eld"](5,0,null,null,2,"cd-helper",[],null,null,null,p.b,p.a)),t["\u0275did"](6,49152,null,0,m.a,[],null,null),(l()(),t["\u0275ted"](7,0,["",""])),(l()(),t["\u0275eld"](8,0,null,null,16,"div",[],[[8,"className",0]],null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,13,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,7,null,null,null,null,null,null,null)),t["\u0275did"](11,16384,null,0,c.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,g)),t["\u0275did"](13,278528,null,0,c.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,c.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,h)),t["\u0275did"](15,278528,null,0,c.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,c.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,v)),t["\u0275did"](17,278528,null,0,c.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,c.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275eld"](18,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,3,"button",[["class","btn btn-default"],["data-toggle","button"],["title","Remove the local configuration value. The parent configuration value will be inherited and used instead."],["type","button"]],null,[[null,"click"]],function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.reset(l.context.$implicit.name)&&t),t},null,null)),t["\u0275did"](20,278528,null,0,c.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](21,{active:0}),(l()(),t["\u0275eld"](22,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-eraser"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,b)),t["\u0275did"](24,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,u=l(n,2,0,e.form.showError("configuration."+n.context.$implicit.name,t["\u0275nov"](n.parent.parent,0)));l(n,1,0,"form-group",u),l(n,11,0,n.context.$implicit.type),l(n,13,0,e.configurationType.milliseconds),l(n,15,0,e.configurationType.bps),l(n,17,0,e.configurationType.iops);var i=l(n,21,0,e.isDisabled(n.context.$implicit.name));l(n,20,0,"btn btn-default",i),l(n,24,0,e.form.showError("configuration."+n.context.$implicit.name,t["\u0275nov"](n.parent.parent,0),"min"))},function(l,n){l(n,3,0,n.context.$implicit.name),l(n,4,0,n.context.$implicit.displayName),l(n,7,0,n.context.$implicit.description),l(n,8,0,t["\u0275inlineInterpolate"](1,"col-sm-9 ",n.parent.context.$implicit.heading,""))})}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,5,"h3",[["class","page-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,4,"span",[["class","collapsible"]],null,[[null,"click"]],function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.toggleSectionVisibility(l.context.$implicit.class)&&t),t},null,null)),(l()(),t["\u0275ted"](3,null,[""," "])),(l()(),t["\u0275eld"](4,0,null,null,2,"i",[["aria-hidden","true"],["class","fa"]],null,null,null,null,null)),t["\u0275did"](5,278528,null,0,c.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](6,{"fa-plus-circle":0,"fa-minus-circle":1}),(l()(),t["\u0275eld"](7,0,null,null,2,"div",[],[[8,"className",0],[8,"hidden",0]],null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](9,278528,null,0,c.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component,t=l(n,6,0,!e.sectionVisibility[n.context.$implicit.class],e.sectionVisibility[n.context.$implicit.class]);l(n,5,0,"fa",t),l(n,9,0,n.context.$implicit.options)},function(l,n){var e=n.component;l(n,3,0,n.context.$implicit.heading),l(n,7,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.class,""),!e.sectionVisibility[n.context.$implicit.class])})}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,[["cfgFormGroup",1]],null,7,"fieldset",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,1).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,1).onReset()&&u),u},null,null)),t["\u0275did"](1,540672,null,0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](3,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["RBD Configuration"])),(l()(),t["\u0275and"](16777216,null,null,1,null,C)),t["\u0275did"](7,278528,null,0,c.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,1,0,e.form.get("configuration")),l(n,7,0,e.rbdConfigurationService.sections)},function(l,n){l(n,0,0,t["\u0275nov"](n,3).ngClassUntouched,t["\u0275nov"](n,3).ngClassTouched,t["\u0275nov"](n,3).ngClassPristine,t["\u0275nov"](n,3).ngClassDirty,t["\u0275nov"](n,3).ngClassValid,t["\u0275nov"](n,3).ngClassInvalid,t["\u0275nov"](n,3).ngClassPending)})}},EFGL:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("IzCI"),o=e("aXbf"),r=e("dEH0"),a=e("BQkM"),s=e("25BL"),d=e("uIqm");e("aAWM"),e("o8EM"),e("Jm/i"),e.d(n,"a",function(){return c}),e.d(n,"b",function(){return _});var c=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function p(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Global"]))],null,null)}function m(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Image"]))],null,null)}function f(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pool"]))],null,null)}function g(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,"div",[],null,null,null,null,null)),t["\u0275did"](1,16384,null,0,u.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,p)),t["\u0275did"](3,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,m)),t["\u0275did"](5,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,f)),t["\u0275did"](7,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null)],function(l,n){l(n,1,0,n.context.value),l(n,3,0,"global"),l(n,5,0,"image"),l(n,7,0,"pool")},null)}function h(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""])),t["\u0275ppd"](2,1)],null,function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)})}function v(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""])),t["\u0275ppd"](2,1)],null,function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,1),n.parent.context.value));l(n,1,0,e)})}function b(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""])),t["\u0275ppd"](2,1)],null,function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,2),n.parent.context.value));l(n,1,0,e)})}function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"div",[],null,null,null,null,null)),t["\u0275did"](1,16384,null,0,u.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,h)),t["\u0275did"](3,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,v)),t["\u0275did"](5,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,b)),t["\u0275did"](7,278528,null,0,u.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](9,16384,null,0,u.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,u.NgSwitch],null,null)],function(l,n){var e=n.component;l(n,1,0,n.context.row.type),l(n,3,0,e.typeField.bps),l(n,5,0,e.typeField.milliseconds),l(n,7,0,e.typeField.iops)},null)}function _(l){return t["\u0275vid"](0,[t["\u0275pid"](0,i.a,[o.a]),t["\u0275pid"](0,r.a,[]),t["\u0275pid"](0,a.a,[]),t["\u0275qud"](402653184,1,{configurationSourceTpl:0}),t["\u0275qud"](402653184,2,{configurationValueTpl:0}),t["\u0275qud"](402653184,3,{poolConfTable:0}),(l()(),t["\u0275eld"](6,0,null,null,1,"cd-table",[["identifier","name"]],null,null,null,s.b,s.a)),t["\u0275did"](7,2867200,[[3,4],["poolConfTable",4]],0,d.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"]},null),(l()(),t["\u0275and"](0,[[1,2],["configurationSourceTpl",2]],null,0,null,g)),(l()(),t["\u0275and"](0,[[2,2],["configurationValueTpl",2]],null,0,null,C))],function(l,n){var e=n.component;l(n,7,0,e.data,e.poolConfigurationColumns,"name")},null)}},Ekvf:function(l,n,e){"use strict";e.d(n,"a",function(){return d});var t=e("mrSG"),u=e("t/Na"),i=e("67Y/"),o=e("xTzq"),r=e("o8EM"),a=e("CcnG"),s=e("pL04"),d=function(){function l(l,n){this.http=l,this.rbdConfigurationService=n,this.apiPath="api/pool"}return l.prototype.create=function(l){return this.http.post(this.apiPath,l,{observe:"response"})},l.prototype.update=function(l){var n;return l.hasOwnProperty("srcpool")?(n=l.srcpool,delete l.srcpool):(n=l.pool,delete l.pool),this.http.put(this.apiPath+"/"+encodeURIComponent(n),l,{observe:"response"})},l.prototype.delete=function(l){return this.http.delete(this.apiPath+"/"+l,{observe:"response"})},l.prototype.get=function(l){return this.http.get(this.apiPath+"/"+l)},l.prototype.getList=function(){return this.http.get(this.apiPath+"?stats=true")},l.prototype.getConfiguration=function(l){var n=this;return this.http.get(this.apiPath+"/"+l+"/configuration").pipe(Object(i.a)(function(l){return l.map(function(l){return Object.assign(l,n.rbdConfigurationService.getOptionByName(l.name))})}))},l.prototype.getInfo=function(l){return this.http.get(this.apiPath+"/_info"+(l?"?pool_name="+l:""))},l.prototype.list=function(l){void 0===l&&(l=[]);var n=l.join(",");return this.http.get(this.apiPath+"?attrs="+n).toPromise().then(function(l){return l})},l.ngInjectableDef=a.defineInjectable({factory:function(){return new l(a.inject(u.c),a.inject(r.a))},token:l,providedIn:s.a}),l=t.__decorate([o.a,t.__metadata("design:paramtypes",[u.c,r.a])],l)}()},EmSq:function(l,n,e){"use strict";e.d(n,"a",function(){return i});var t=e("CcnG"),u=e("LvDl"),i=(e("Fgil"),e("aXbf"),function(){function l(l,n,e,u){this.elementRef=l,this.control=n,this.dimlessBinaryPipe=e,this.formatter=u,this.ngModelChange=new t.EventEmitter,this.el=this.elementRef.nativeElement}return l.prototype.ngOnInit=function(){this.setValue(this.el.value)},l.prototype.setValue=function(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");var n=this.formatter.toBytes(l),e=this.round(n);this.el.value=this.dimlessBinaryPipe.transform(e),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))},l.prototype.round=function(l){if(null!==l&&0!==l){if(!u.isUndefined(this.minBytes)&&lthis.maxBytes)return this.maxBytes;if(!u.isUndefined(this.roundPower)){var n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l},l.prototype.onBlur=function(l){this.setValue(l)},l}())},F83c:function(l,n,e){"use strict";e.d(n,"a",function(){return d});var t=e("mrSG"),u=e("t/Na"),i=e("67Y/"),o=e("xTzq"),r=e("o8EM"),a=e("CcnG"),s=e("pL04"),d=function(){function l(l,n){this.http=l,this.rbdConfigurationService=n}return l.prototype.create=function(l){return this.http.post("api/block/image",l,{observe:"response"})},l.prototype.delete=function(l,n){return this.http.delete("api/block/image/"+l+"/"+n,{observe:"response"})},l.prototype.update=function(l,n,e){return this.http.put("api/block/image/"+l+"/"+n,e,{observe:"response"})},l.prototype.get=function(l,n){return this.http.get("api/block/image/"+l+"/"+n)},l.prototype.list=function(){var l=this;return this.http.get("api/block/image").pipe(Object(i.a)(function(n){return n.map(function(n){return n.value.map(function(n){return n.configuration?(n.configuration.map(function(n){return Object.assign(n,l.rbdConfigurationService.getOptionByName(n.name))}),n):n}),n})}))},l.prototype.copy=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/copy",e,{observe:"response"})},l.prototype.flatten=function(l,n){return this.http.post("api/block/image/"+l+"/"+n+"/flatten",null,{observe:"response"})},l.prototype.defaultFeatures=function(){return this.http.get("api/block/image/default_features")},l.prototype.createSnapshot=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/snap",{snapshot_name:e},{observe:"response"})},l.prototype.renameSnapshot=function(l,n,e,t){return this.http.put("api/block/image/"+l+"/"+n+"/snap/"+e,{new_snap_name:t},{observe:"response"})},l.prototype.protectSnapshot=function(l,n,e,t){return this.http.put("api/block/image/"+l+"/"+n+"/snap/"+e,{is_protected:t},{observe:"response"})},l.prototype.rollbackSnapshot=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/snap/"+e+"/rollback",null,{observe:"response"})},l.prototype.cloneSnapshot=function(l,n,e,t){return this.http.post("api/block/image/"+l+"/"+n+"/snap/"+e+"/clone",t,{observe:"response"})},l.prototype.deleteSnapshot=function(l,n,e){return this.http.delete("api/block/image/"+l+"/"+n+"/snap/"+e,{observe:"response"})},l.prototype.listTrash=function(){return this.http.get("api/block/image/trash/")},l.prototype.moveTrash=function(l,n,e){return this.http.post("api/block/image/"+l+"/"+n+"/move_trash",{delay:e},{observe:"response"})},l.prototype.purgeTrash=function(l){return this.http.post("api/block/image/trash/purge/?pool_name="+l,null,{observe:"response"})},l.prototype.restoreTrash=function(l,n,e){return this.http.post("api/block/image/trash/"+l+"/"+n+"/restore",{new_image_name:e},{observe:"response"})},l.prototype.removeTrash=function(l,n,e,t){return void 0===t&&(t=!1),this.http.delete("api/block/image/trash/"+l+"/"+n+"/?image_name="+e+"&force="+t,{observe:"response"})},l.ngInjectableDef=a.defineInjectable({factory:function(){return new l(a.inject(u.c),a.inject(r.a))},token:l,providedIn:s.a}),t.__decorate([t.__param(2,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"createSnapshot",null),t.__decorate([t.__param(3,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"renameSnapshot",null),t.__decorate([t.__param(3,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"protectSnapshot",null),t.__decorate([t.__param(2,o.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[Object,Object,Object]),t.__metadata("design:returntype",void 0)],l.prototype,"restoreTrash",null),l=t.__decorate([o.a,t.__metadata("design:paramtypes",[u.c,r.a])],l)}()},I4Qz:function(l,n,e){"use strict";var t=e("CcnG"),u=e("EEJc"),i=e("ajRT"),o=e("gIcY"),r=e("Ip0R"),a=e("ARl4"),s=e("lqqz"),d=e("gp3X"),c=e("sb0X"),p=e("KVJa"),m=e("Z21x"),f=e("sne2"),g=e("2JDI"),h=e("F83c"),v=e("DQlY"),b=e("2EZI"),y=e("kn/O");e.d(n,"a",function(){return S});var C=t["\u0275crt"]({encapsulation:0,styles:[[".bs-datepicker-head bs-datepicker-navigation-view{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}"]],data:{}});function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,['Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".']))],null,null)}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Protection has already expired. Please pick a future date or leave it empty."]))],null,null)}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,43,"cd-modal",[],null,null,null,u.c,u.b)),t["\u0275did"](1,49152,null,0,i.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Move an image to trash"])),(l()(),t["\u0275eld"](4,0,null,1,39,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,38,"form",[["class","form"],["name","moveForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,o.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,o.d,null,[o.l]),t["\u0275did"](9,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,26,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,7,"p",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To move "])),(l()(),t["\u0275eld"](13,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](14,null,["","/",""])),(l()(),t["\u0275ted"](-1,null,[" to trash, click "])),(l()(),t["\u0275eld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Move Image"])),(l()(),t["\u0275ted"](-1,null,[". Optionally, you can pick an expiration date."])),(l()(),t["\u0275eld"](19,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](20,278528,null,0,r.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](21,{"has-error":0}),(l()(),t["\u0275eld"](22,0,null,null,1,"label",[["for","expires"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Protection expires at"])),(l()(),t["\u0275eld"](24,16777216,null,null,8,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","expiresAt"],["placeholder","NOT PROTECTED"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,25)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,25).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,27).onChange(e)&&u),"keyup.esc"===n&&(u=!1!==t["\u0275nov"](l,27).hide()&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,27).onBlur()&&u),u},null,null)),t["\u0275did"](25,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["\u0275did"](26,737280,null,0,a.c,[a.a,t.ElementRef,t.Renderer2,t.ViewContainerRef,s.a],{bsConfig:[0,"bsConfig"],minDate:[1,"minDate"]},null),t["\u0275did"](27,16384,null,0,a.f,[a.c,a.j,t.Renderer2,t.ElementRef,t.ChangeDetectorRef],null,null),t["\u0275prd"](1024,null,o.o,function(l){return[l]},[a.f]),t["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,a.f]),t["\u0275did"](30,671744,null,0,o.j,[[3,o.d],[6,o.o],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,o.q,null,[o.j]),t["\u0275did"](32,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,_)),t["\u0275did"](34,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,w)),t["\u0275did"](36,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](37,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.moveImage()&&t),t},d.b,d.a)),t["\u0275did"](40,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Move Image"])),(l()(),t["\u0275eld"](42,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,p.b,p.a)),t["\u0275did"](43,49152,null,0,m.a,[r.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.moveForm);var u=l(n,21,0,e.moveForm.showError("expiresAt",t["\u0275nov"](n,7)));l(n,20,0,"form-group",u),l(n,26,0,e.bsConfig,e.minDate),l(n,30,0,"expiresAt"),l(n,34,0,e.moveForm.showError("expiresAt",t["\u0275nov"](n,7),"format")),l(n,36,0,e.moveForm.showError("expiresAt",t["\u0275nov"](n,7),"expired")),l(n,40,0,e.moveForm),l(n,43,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,14,0,e.poolName,e.imageName),l(n,24,0,t["\u0275nov"](n,32).ngClassUntouched,t["\u0275nov"](n,32).ngClassTouched,t["\u0275nov"](n,32).ngClassPristine,t["\u0275nov"](n,32).ngClassDirty,t["\u0275nov"](n,32).ngClassValid,t["\u0275nov"](n,32).ngClassInvalid,t["\u0275nov"](n,32).ngClassPending)})}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-trash-move-modal",[],null,null,null,I,C)),t["\u0275did"](1,114688,null,0,g.a,[h.a,v.a,b.a,y.a],null,null)],function(l,n){l(n,1,0)},null)}var S=t["\u0275ccf"]("cd-rbd-trash-move-modal",g.a,R,{},{},[])},JBea:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("vCyI");var t=function(){function l(){}return l.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first())},l}()},"JIi+":function(l,n,e){"use strict";var t=e("CcnG"),u=e("eajB"),i=e("lqqz"),o=e("NJnL"),r=e("pKUh"),a=e("YAQW"),s=e("Ip0R"),d=e("25BL"),c=e("uIqm"),p=e("NUGo"),m=e("S7zO"),f=e("VTlA"),g=e("ufoC"),h=e("mSOc"),v=e("wd/R"),b=e("F/XL"),y=e("F83c"),C=e("OLbh"),_=e("0+/T"),w=e("sne2"),I=e("x38r"),R=e("vCyI"),S=e("QTAa"),k=e("kvvV"),E=e("a0VL"),F=e("Fgil"),D=e("aexS"),V=e("9nlD"),T=e("VXsX"),N=e("+lcs"),P=function(){return function(l,n){this.i18n=l,this.create={permission:"create",icon:"fa-plus",name:n.CREATE},this.rename={permission:"update",icon:"fa-pencil",name:n.RENAME},this.protect={permission:"update",icon:"fa-lock",visible:function(l){return l.hasSingleSelection&&!l.first().is_protected},name:n.PROTECT},this.unprotect={permission:"update",icon:"fa-unlock",visible:function(l){return l.hasSingleSelection&&l.first().is_protected},name:n.UNPROTECT},this.clone={permission:"create",canBePrimary:function(l){return l.hasSingleSelection},disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting},icon:"fa-clone",name:n.CLONE},this.copy={permission:"create",canBePrimary:function(l){return l.hasSingleSelection},disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting},icon:"fa-copy",name:n.COPY},this.rollback={permission:"update",icon:"fa-undo",name:n.ROLLBACK},this.deleteSnap={permission:"delete",icon:"fa-times",disable:function(l){var n=l.first();return!l.hasSingleSelection||n.cdExecuting||n.is_protected},name:n.DELETE},this.ordering=[this.create,this.rename,this.protect,this.unprotect,this.clone,this.copy,this.rollback,this.deleteSnap]}}(),x=function(){return function(){}}(),O=function(){function l(l,n,e,t,u,i,o,r,a,s,d){var c=this;this.authStorageService=l,this.modalService=n,this.dimlessBinaryPipe=e,this.cdDatePipe=t,this.rbdService=u,this.taskManagerService=i,this.notificationService=o,this.summaryService=r,this.taskListService=a,this.i18n=s,this.actionLabels=d,this.snapshots=[],this.selection=new R.a,this.builders={"rbd/snap/create":function(l){var n=new x;return n.name=l.snapshot_name,n}},this.permission=this.authStorageService.getPermissions().rbdImage;var p=new P(this.i18n,this.actionLabels);p.create.click=function(){return c.openCreateSnapshotModal()},p.rename.click=function(){return c.openEditSnapshotModal()},p.protect.click=function(){return c.toggleProtection()},p.unprotect.click=function(){return c.toggleProtection()};var m=function(){return c.selection.first()&&encodeURIComponent(c.poolName)+"/"+encodeURIComponent(c.rbdName)+"/"+encodeURIComponent(c.selection.first().name)};p.clone.routerLink=function(){return"/block/rbd/clone/"+m()},p.copy.routerLink=function(){return"/block/rbd/copy/"+m()},p.rollback.click=function(){return c.rollbackModal()},p.deleteSnap.click=function(){return c.deleteSnapshotModal()},this.tableActions=p.ordering}return l.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"name",cellTransformation:I.a.executing,flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("State"),prop:"is_protected",flexGrow:1,cellClass:"text-center",cellTemplate:this.protectTpl},{name:this.i18n("Created"),prop:"timestamp",flexGrow:1,pipe:this.cdDatePipe}]},l.prototype.ngOnChanges=function(){var l=this;this.taskListService.init(function(){return Object(b.a)(l.snapshots)},null,function(n){return l.data=n},function(){return l.data=l.snapshots},function(n){return["rbd/snap/create","rbd/snap/delete","rbd/snap/edit","rbd/snap/rollback"].includes(n.name)&&l.poolName===n.metadata.pool_name&&l.rbdName===n.metadata.image_name},function(l,n){return l.name===n.metadata.snapshot_name},this.builders)},l.prototype.openSnapshotModal=function(l,n){var e=this;void 0===n&&(n=null),this.modalRef=this.modalService.show(N.a),this.modalRef.content.poolName=this.poolName,this.modalRef.content.imageName=this.rbdName,n?this.modalRef.content.setEditing():n=this.rbdName+"_"+v().toISOString(!0),this.modalRef.content.setSnapName(n),this.modalRef.content.onSubmit.subscribe(function(n){var t=new S.a;t.name=l,t.metadata={image_name:e.rbdName,pool_name:e.poolName,snapshot_name:n},e.summaryService.addRunningTask(t),e.ngOnChanges()})},l.prototype.openCreateSnapshotModal=function(){this.openSnapshotModal("rbd/snap/create")},l.prototype.openEditSnapshotModal=function(){this.openSnapshotModal("rbd/snap/edit",this.selection.first().name)},l.prototype.toggleProtection=function(){var l=this,n=this.selection.first().name,e=this.selection.first().is_protected,t=new k.a;t.name="rbd/snap/edit",t.metadata={pool_name:this.poolName,image_name:this.rbdName,snapshot_name:n},this.rbdService.protectSnapshot(this.poolName,this.rbdName,n,!e).toPromise().then(function(){var n=new S.a;n.name=t.name,n.metadata=t.metadata,l.summaryService.addRunningTask(n),l.ngOnChanges(),l.taskManagerService.subscribe(t.name,t.metadata,function(n){l.notificationService.notifyTask(n)})})},l.prototype._asyncTask=function(l,n,e){var t=this,u=new k.a;u.name=n,u.metadata={pool_name:this.poolName,image_name:this.rbdName,snapshot_name:e},this.rbdService[l](this.poolName,this.rbdName,e).toPromise().then(function(){var l=new S.a;l.name=u.name,l.metadata=u.metadata,t.summaryService.addRunningTask(l),t.modalRef.hide(),t.ngOnChanges(),t.taskManagerService.subscribe(l.name,l.metadata,function(l){t.notificationService.notifyTask(l)})}).catch(function(){t.modalRef.content.stopLoadingSpinner()})},l.prototype.rollbackModal=function(){var l=this,n=this.selection.selected[0].name,e={titleText:this.i18n("RBD snapshot rollback"),buttonText:this.i18n("Rollback"),bodyTpl:this.rollbackTpl,bodyData:{snapName:this.poolName+"/"+this.rbdName+"@"+n},onSubmit:function(){l._asyncTask("rollbackSnapshot","rbd/snap/rollback",n)}};this.modalRef=this.modalService.show(C.a,{initialState:e})},l.prototype.deleteSnapshotModal=function(){var l=this,n=this.selection.selected[0].name;this.modalRef=this.modalService.show(_.a,{initialState:{itemDescription:this.i18n("RBD snapshot"),itemNames:[n],submitAction:function(){return l._asyncTask("deleteSnapshot","rbd/snap/delete",n)}}})},l.prototype.updateSelection=function(l){this.selection=l},l}(),q=e("DQlY"),M=e("Jm/i"),A=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function B(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","label label-success"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["PROTECTED"]))],null,null)}function j(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","label label-info"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["UNPROTECTED"]))],null,null)}function U(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,B)),t["\u0275did"](1,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,j)),t["\u0275did"](3,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.context.value),l(n,3,0,!n.context.value)},null)}function G(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["You are about to rollback"])),(l()(),t["\u0275eld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](3,null,["",""])),(l()(),t["\u0275ted"](-1,null,[".\n"]))],null,function(l,n){l(n,3,0,n.context.$implicit.snapName)})}function L(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{nameTpl:0}),t["\u0275qud"](402653184,2,{protectTpl:0}),t["\u0275qud"](402653184,3,{rollbackTpl:0}),(l()(),t["\u0275eld"](3,0,null,null,3,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,e){var t=!0;return"updateSelection"===n&&(t=!1!==l.component.updateSelection(e)&&t),t},d.b,d.a)),t["\u0275did"](4,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](5,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,p.b,p.a)),t["\u0275did"](6,114688,null,0,m.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275and"](0,[[2,2],["protectTpl",2]],null,0,null,U)),(l()(),t["\u0275and"](0,[[3,2],["rollbackTpl",2]],null,0,null,G))],function(l,n){var e=n.component;l(n,4,0,e.data,e.columns,"flex","single"),l(n,6,0,e.permission,e.selection,e.tableActions)},null)}var z=e("EFGL"),W=e("aAWM"),$=e("aXbf"),X=e("o8EM"),Y=e("nSDx"),K=e("o4+5"),J=e("JBea");e.d(n,"b",function(){return Z}),e.d(n,"c",function(){return dl}),e.d(n,"a",function(){return pl});var Z=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Q(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Only available for RBD images with "])),(l()(),t["\u0275eld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["fast-diff"])),(l()(),t["\u0275ted"](-1,null,[" enabled"]))],null,null)}function H(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","badge badge-pill badge-primary margin-right-sm"]],null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["",""]))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function ll(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,16777216,null,null,2,"span",[["class","text-muted"],["placement","right"]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](2,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["\u0275ted"](-1,null,["N/A"]))],function(l,n){l(n,2,0,t["\u0275nov"](n.parent.parent,5),"right")},function(l,n){l(n,1,0,t["\u0275nov"](n,2).ariaDescribedby)})}function nl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var e=n.component,u=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,2),e.selectedItem.disk_usage));l(n,1,0,u)})}function el(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,16777216,null,null,2,"span",[["class","text-muted"],["placement","right"]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](2,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["\u0275ted"](-1,null,["N/A"]))],function(l,n){l(n,2,0,t["\u0275nov"](n.parent.parent,5),"right")},function(l,n){l(n,1,0,t["\u0275nov"](n,2).ariaDescribedby)})}function tl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var e=n.component,u=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent,2),e.selectedItem.total_disk_usage));l(n,1,0,u)})}function ul(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[""," /"," @",""]))],null,function(l,n){var e=n.component;l(n,1,0,e.selectedItem.parent.pool_name,e.selectedItem.parent.image_name,e.selectedItem.parent.snap_name)})}function il(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["-"]))],null,null)}function ol(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,110,"tabset",[],[[2,"tab-container",null]],null,null,r.b,r.a)),t["\u0275did"](1,180224,null,0,a.d,[a.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,99,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,a.b,[a.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](4,0,null,null,97,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,96,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275eld"](9,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](10,null,["",""])),(l()(),t["\u0275eld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pool"])),(l()(),t["\u0275eld"](14,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](15,null,["",""])),(l()(),t["\u0275eld"](16,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Data Pool"])),(l()(),t["\u0275eld"](19,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](20,null,["",""])),t["\u0275ppd"](21,1),(l()(),t["\u0275eld"](22,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](23,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Created"])),(l()(),t["\u0275eld"](25,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](26,null,["",""])),t["\u0275ppd"](27,1),(l()(),t["\u0275eld"](28,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](29,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Size"])),(l()(),t["\u0275eld"](31,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](32,null,["",""])),t["\u0275ppd"](33,1),(l()(),t["\u0275eld"](34,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](35,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Objects"])),(l()(),t["\u0275eld"](37,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](38,null,["",""])),t["\u0275ppd"](39,1),(l()(),t["\u0275eld"](40,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](41,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Object size"])),(l()(),t["\u0275eld"](43,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](44,null,["",""])),t["\u0275ppd"](45,1),(l()(),t["\u0275eld"](46,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](47,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Features"])),(l()(),t["\u0275eld"](49,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,H)),t["\u0275did"](51,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](52,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](53,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Provisioned"])),(l()(),t["\u0275eld"](55,0,null,null,4,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,ll)),t["\u0275did"](57,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,nl)),t["\u0275did"](59,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](60,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](61,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Total provisioned"])),(l()(),t["\u0275eld"](63,0,null,null,4,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,el)),t["\u0275did"](65,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,tl)),t["\u0275did"](67,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](68,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](69,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Striping unit"])),(l()(),t["\u0275eld"](71,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](72,null,["",""])),t["\u0275ppd"](73,1),(l()(),t["\u0275eld"](74,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](75,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Striping count"])),(l()(),t["\u0275eld"](77,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](78,null,["",""])),(l()(),t["\u0275eld"](79,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](80,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Parent"])),(l()(),t["\u0275eld"](82,0,null,null,4,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,ul)),t["\u0275did"](84,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,il)),t["\u0275did"](86,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](87,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](88,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Block name prefix"])),(l()(),t["\u0275eld"](90,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](91,null,["",""])),(l()(),t["\u0275eld"](92,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](93,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Order"])),(l()(),t["\u0275eld"](95,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](96,null,["",""])),(l()(),t["\u0275eld"](97,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](98,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Format Version"])),(l()(),t["\u0275eld"](100,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](101,null,["",""])),(l()(),t["\u0275eld"](102,0,null,0,4,"tab",[["heading","Snapshots"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](103,212992,null,0,a.b,[a.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](104,0,null,null,2,"cd-rbd-snapshot-list",[],null,null,null,L,A)),t["\u0275prd"](131584,null,f.a,f.a,[g.a,h.a]),t["\u0275did"](106,638976,null,0,O,[D.a,q.b,F.a,E.a,y.a,T.a,V.a,h.a,f.a,M.a,w.b],{snapshots:[0,"snapshots"],poolName:[1,"poolName"],rbdName:[2,"rbdName"]},null),(l()(),t["\u0275eld"](107,0,null,0,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](108,212992,null,0,a.b,[a.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](109,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,z.b,z.a)),t["\u0275did"](110,638976,null,0,W.a,[$.a,X.a,M.a],{data:[0,"data"]},null)],function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,51,0,e.selectedItem.features_name),l(n,57,0,-1===(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,59,0,-1!==(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,65,0,-1===(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,67,0,-1!==(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,84,0,e.selectedItem.parent),l(n,86,0,!e.selectedItem.parent),l(n,103,0,"Snapshots"),l(n,106,0,e.selectedItem.snapshots,e.selectedItem.pool_name,e.selectedItem.name),l(n,108,0,"Configuration"),l(n,110,0,e.selectedItem.configuration)},function(l,n){var e=n.component;l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass),l(n,10,0,e.selectedItem.name),l(n,15,0,e.selectedItem.pool_name);var u=t["\u0275unv"](n,20,0,l(n,21,0,t["\u0275nov"](n.parent,0),e.selectedItem.data_pool));l(n,20,0,u);var i=t["\u0275unv"](n,26,0,l(n,27,0,t["\u0275nov"](n.parent,1),e.selectedItem.timestamp));l(n,26,0,i);var o=t["\u0275unv"](n,32,0,l(n,33,0,t["\u0275nov"](n.parent,2),e.selectedItem.size));l(n,32,0,o);var r=t["\u0275unv"](n,38,0,l(n,39,0,t["\u0275nov"](n.parent,3),e.selectedItem.num_objs));l(n,38,0,r);var a=t["\u0275unv"](n,44,0,l(n,45,0,t["\u0275nov"](n.parent,2),e.selectedItem.obj_size));l(n,44,0,a);var s=t["\u0275unv"](n,72,0,l(n,73,0,t["\u0275nov"](n.parent,2),e.selectedItem.stripe_unit));l(n,72,0,s),l(n,78,0,e.selectedItem.stripe_count),l(n,91,0,e.selectedItem.block_name_prefix),l(n,96,0,e.selectedItem.order),l(n,101,0,e.selection.image_format),l(n,102,0,t["\u0275nov"](n,103).id,t["\u0275nov"](n,103).active,t["\u0275nov"](n,103).addClass),l(n,107,0,t["\u0275nov"](n,108).id,t["\u0275nov"](n,108).active,t["\u0275nov"](n,108).addClass)})}function rl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,16777216,null,null,2,"strong",[["tooltip","This setting overrides the global value"]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](2,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275ted"](-1,null,["Image"])),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,2,0,"This setting overrides the global value")},function(l,n){l(n,1,0,t["\u0275nov"](n,2).ariaDescribedby)})}function al(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,16777216,null,null,2,"span",[["tooltip","This is the global value. No value for this option has been set for this image."]],[[1,"aria-describedby",0]],null,null,null,null)),t["\u0275did"](1,212992,null,0,u.c,[t.ViewContainerRef,i.a,u.a,t.ElementRef,t.Renderer2,o.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275ted"](-1,null,["Global"])),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"This is the global value. No value for this option has been set for this image.")},function(l,n){l(n,0,0,t["\u0275nov"](n,1).ariaDescribedby)})}function sl(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,rl)),t["\u0275did"](1,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),t["\u0275and"](0,[["global",2]],null,0,null,al))],function(l,n){l(n,1,0,n.context.value-0,t["\u0275nov"](n,2))},null)}function dl(l){return t["\u0275vid"](0,[t["\u0275pid"](0,Y.a,[]),t["\u0275pid"](0,E.a,[s.DatePipe]),t["\u0275pid"](0,F.a,[$.a]),t["\u0275pid"](0,K.a,[$.a]),t["\u0275qud"](402653184,1,{poolConfigurationSourceTpl:0}),(l()(),t["\u0275and"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,Q)),(l()(),t["\u0275and"](16777216,null,null,1,null,ol)),t["\u0275did"](7,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,[[1,2],["poolConfigurationSourceTpl",2]],null,0,null,sl))],function(l,n){var e=n.component;l(n,7,0,null==e.selection?null:e.selection.hasSingleSelection)},null)}function cl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-details",[],null,null,null,dl,Z)),t["\u0275did"](1,573440,null,0,J.a,[],null,null)],null,null)}var pl=t["\u0275ccf"]("cd-rbd-details",J.a,cl,{selection:"selection",images:"images"},{},[])},L4us:function(l,n,e){"use strict";var t=e("gIcY"),u=(e("XED3"),e("QFaf")),i=e("kvvV"),o=(e("kn/O"),function(){return function(){}}());e.d(n,"a",function(){return r});var r=function(){function l(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.bsConfig={containerClass:"theme-default"},this.createForm()}return l.prototype.createForm=function(){this.editPeerForm=new u.a({clusterName:new t.i("",{validators:[t.A.required,this.validateClusterName]}),clientID:new t.i("",{validators:[t.A.required,this.validateClientID]}),monAddr:new t.i("",{validators:[this.validateMonAddr]}),key:new t.i("",{validators:[this.validateKey]})})},l.prototype.ngOnInit=function(){var l=this;this.pattern=this.poolName+"/"+this.peerUUID,"edit"===this.mode&&this.rbdMirroringService.getPeer(this.poolName,this.peerUUID).subscribe(function(n){l.setResponse(n)})},l.prototype.validateClusterName=function(l){if(!l.value.match(/^[\w\-_]*$/))return{invalidClusterName:{value:l.value}}},l.prototype.validateClientID=function(l){if(!l.value.match(/^(?!client\.)[\w\-_.]*$/))return{invalidClientID:{value:l.value}}},l.prototype.validateMonAddr=function(l){if(!l.value.match(/^[,; ]*([\w.\-_\[\]]+(:[\d]+)?[,; ]*)*$/))return{invalidMonAddr:{value:l.value}}},l.prototype.validateKey=function(l){try{if(""===l.value||atob(l.value))return null}catch(n){}return{invalidKey:{value:l.value}}},l.prototype.setResponse=function(l){this.response=l,this.editPeerForm.get("clusterName").setValue(l.cluster_name),this.editPeerForm.get("clientID").setValue(l.client_id),this.editPeerForm.get("monAddr").setValue(l.mon_host),this.editPeerForm.get("key").setValue(l.key)},l.prototype.update=function(){var l=this,n=new o;n.cluster_name=this.editPeerForm.getValue("clusterName"),n.client_id=this.editPeerForm.getValue("clientID"),n.mon_host=this.editPeerForm.getValue("monAddr"),n.key=this.editPeerForm.getValue("key"),this.taskWrapper.wrapTaskAroundCall("edit"===this.mode?{task:new i.a("rbd/mirroring/peer/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePeer(this.poolName,this.peerUUID,n)}:{task:new i.a("rbd/mirroring/peer/add",{pool_name:this.poolName}),call:this.rbdMirroringService.addPeer(this.poolName,n)}).subscribe(void 0,function(){return l.editPeerForm.setErrors({cdSubmitButton:!0})},function(){l.rbdMirroringService.refresh(),l.modalRef.hide()})},l}()},MyVl:function(l,n,e){"use strict";var t,u=e("CcnG"),i=e("gIcY"),o=e("LvDl"),r=e("svcd"),a=e("15JJ"),s=(e("Ekvf"),e("F83c"),e("sne2"),e("QFaf")),d=e("PhyI"),c=e("kvvV"),p=(e("Fgil"),e("aexS"),e("aXbf"),e("kn/O"),e("u0yg")),m=function(){return function(){this.features=[]}}(),f=function(){return function(){this.features=[]}}(),g=e("mrSG"),h=function(l){function n(){var n=null!==l&&l.apply(this,arguments)||this;return n.features=[],n}return g.__extends(n,l),n}(function(){return function(){}}()),v=function(){return function(){this.features=[]}}();!function(l){l.editing="editing",l.cloning="cloning",l.copying="copying"}(t||(t={})),e.d(n,"a",function(){return b});var b=function(){function l(l,n,e,i,o,a,s,d,c,p){this.authStorageService=l,this.route=n,this.poolService=e,this.rbdService=i,this.formatter=o,this.taskWrapper=a,this.dimlessBinaryPipe=s,this.i18n=d,this.actionLabels=c,this.router=p,this.pools=null,this.allPools=null,this.dataPools=null,this.allDataPools=null,this.featuresList=[],this.initializeConfigData=new u.EventEmitter,this.advancedEnabled=!1,this.rbdFormMode=t,this.defaultObjectSize="4 MiB",this.objectSizes=["4 KiB","8 KiB","16 KiB","32 KiB","64 KiB","128 KiB","256 KiB","512 KiB","1 MiB","2 MiB","4 MiB","8 MiB","16 MiB","32 MiB"],this.rbdImage=new r.a,this.poolPermission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("RBD"),this.features={"deep-flatten":{desc:this.i18n("Deep flatten"),requires:null,allowEnable:!1,allowDisable:!0},layering:{desc:this.i18n("Layering"),requires:null,allowEnable:!1,allowDisable:!1},"exclusive-lock":{desc:this.i18n("Exclusive lock"),requires:null,allowEnable:!0,allowDisable:!0},"object-map":{desc:this.i18n("Object map (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},journaling:{desc:this.i18n("Journaling (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},"fast-diff":{desc:this.i18n("Fast diff (interlocked with object-map)"),requires:"object-map",allowEnable:!0,allowDisable:!0,interlockedWith:"object-map",initDisabled:!0}},this.featuresList=this.objToArray(this.features),this.createForm()}return l.prototype.objToArray=function(l){return o.map(l,function(l,n){return Object.assign(l,{key:n})})},l.prototype.createForm=function(){this.rbdForm=new s.a({parent:new i.i(""),name:new i.i("",{validators:[i.A.required,i.A.pattern(/^[^@\/]+?$/)]}),pool:new i.i(null,{validators:[i.A.required]}),useDataPool:new i.i(!1),dataPool:new i.i(null),size:new i.i(null,{updateOn:"blur"}),obj_size:new i.i(this.defaultObjectSize),features:new s.a(this.featuresList.reduce(function(l,n){return l[n.key]=new i.i({value:!1,disabled:!!n.initDisabled}),l},{})),stripingUnit:new i.i(null),stripingCount:new i.i(null,{updateOn:"blur"})},this.validateRbdForm(this.formatter))},l.prototype.disableForEdit=function(){var l=this;this.rbdForm.get("parent").disable(),this.rbdForm.get("pool").disable(),this.rbdForm.get("useDataPool").disable(),this.rbdForm.get("dataPool").disable(),this.rbdForm.get("obj_size").disable(),this.rbdForm.get("stripingUnit").disable(),this.rbdForm.get("stripingCount").disable(),this.rbdImage.subscribe(function(n){n.image_format===p.a.V1&&(l.rbdForm.get("deep-flatten").disable(),l.rbdForm.get("layering").disable(),l.rbdForm.get("exclusive-lock").disable())})},l.prototype.disableForClone=function(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()},l.prototype.disableForCopy=function(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()},l.prototype.ngOnInit=function(){var l=this;this.router.url.startsWith("/block/rbd/edit")?(this.mode=this.rbdFormMode.editing,this.action=this.actionLabels.EDIT,this.disableForEdit()):this.router.url.startsWith("/block/rbd/clone")?(this.mode=this.rbdFormMode.cloning,this.disableForClone(),this.action=this.actionLabels.CLONE):this.router.url.startsWith("/block/rbd/copy")?(this.mode=this.rbdFormMode.copying,this.action=this.actionLabels.COPY,this.disableForCopy()):this.action=this.actionLabels.CREATE,this.mode===this.rbdFormMode.editing||this.mode===this.rbdFormMode.cloning||this.mode===this.rbdFormMode.copying?this.route.params.subscribe(function(n){var e=decodeURIComponent(n.pool),t=decodeURIComponent(n.name);n.snap&&(l.snapName=decodeURIComponent(n.snap)),l.rbdService.get(e,t).subscribe(function(n){l.setResponse(n,l.snapName),l.rbdImage.next(n)})}):this.rbdService.defaultFeatures().subscribe(function(n){l.setFeatures(n)}),this.mode!==this.rbdFormMode.editing&&this.poolPermission.read&&this.poolService.list(["pool_name","type","flags_names","application_metadata"]).then(function(n){for(var e=[],t=[],u=0,i=n;ul.toBytes(o.value)&&(c={invalidSizeObject:!0}),o.setErrors(c);var p=e.get("stripingUnit"),m=null;null===p.value&&null!==s.value?m={required:!0}:null!==p.value&&l.toBytes(p.value)>a&&(m={invalidStripingUnit:!0}),p.setErrors(m);var f=null;return null===s.value&&null!==p.value?f={required:!0}:d<1&&(f={min:!0}),s.setErrors(f),null}},l.prototype.getDependendChildFeatures=function(l){return o.filter(this.features,function(n){return n.requires===l})||[]},l.prototype.deepBoxCheck=function(l,n){var e=this;this.getDependendChildFeatures(l).forEach(function(l){var t=e.rbdForm.get(l.key);n?t.enable({emitEvent:!1}):(t.disable({emitEvent:!1}),t.setValue(!1,{emitEvent:!1}),e.deepBoxCheck(l.key,n));var u=e.rbdForm.get("features");e.mode===e.rbdFormMode.editing&&u.get(l.key).enabled&&((-1===e.response.features_name.indexOf(l.key)||l.allowDisable)&&(-1!==e.response.features_name.indexOf(l.key)||l.allowEnable)||u.get(l.key).disable())})},l.prototype.interlockCheck=function(l,n){var e=this,t=this.featuresList.find(function(n){return n.key===l});if(this.response){var u=null!=t.interlockedWith,i=this.featuresList.find(function(l){return l.interlockedWith===t.key}),r=!!this.response.features_name.find(function(l){return l===t.key});if(u){if(r!==!!this.response.features_name.find(function(l){return l===t.interlockedWith}))return}else if(i&&!!this.response.features_name.find(function(l){return l===i.key})!==r)return}n?o.filter(this.features,function(n){return n.interlockedWith===l}).forEach(function(l){return e.rbdForm.get(l.key).setValue(!0,{emitEvent:!1})}):t.interlockedWith&&this.rbdForm.get("features").get(t.interlockedWith).setValue(!1)},l.prototype.featureFormUpdate=function(l,n){if(n){var e=this.features[l].requires;if(e&&!this.rbdForm.getValue(e))return void this.rbdForm.get("features."+l).setValue(!1)}this.deepBoxCheck(l,n),this.interlockCheck(l,n)},l.prototype.setFeatures=function(l){var n=this,e=this.rbdForm.get("features");o.forIn(this.features,function(t){-1!==l.indexOf(t.key)&&e.get(t.key).setValue(!0),n.featureFormUpdate(t.key,e.get(t.key).value)})},l.prototype.setResponse=function(l,n){if(this.response=l,this.mode===this.rbdFormMode.cloning)this.rbdForm.get("parent").setValue(l.pool_name+"/"+l.name+"@"+n);else if(this.mode===this.rbdFormMode.copying)n?this.rbdForm.get("parent").setValue(l.pool_name+"/"+l.name+"@"+n):this.rbdForm.get("parent").setValue(l.pool_name+"/"+l.name);else if(l.parent){var e=l.parent;this.rbdForm.get("parent").setValue(e.pool_name+"/"+e.image_name+"@"+e.snap_name)}this.mode===this.rbdFormMode.editing&&this.rbdForm.get("name").setValue(l.name),this.rbdForm.get("pool").setValue(l.pool_name),l.data_pool&&(this.rbdForm.get("useDataPool").setValue(!0),this.rbdForm.get("dataPool").setValue(l.data_pool)),this.rbdForm.get("size").setValue(this.dimlessBinaryPipe.transform(l.size)),this.rbdForm.get("obj_size").setValue(this.dimlessBinaryPipe.transform(l.obj_size)),this.setFeatures(l.features_name),this.rbdForm.get("stripingUnit").setValue(this.dimlessBinaryPipe.transform(l.stripe_unit)),this.rbdForm.get("stripingCount").setValue(l.stripe_count),this.initializeConfigData.emit({initialData:this.response.configuration,sourceType:d.a.image})},l.prototype.createRequest=function(){var l=this,n=new h;return n.pool_name=this.rbdForm.getValue("pool"),n.name=this.rbdForm.getValue("name"),n.size=this.formatter.toBytes(this.rbdForm.getValue("size")),n.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),n.stripe_count=this.rbdForm.getValue("stripingCount"),n.data_pool=this.rbdForm.getValue("dataPool"),n.configuration=this.getDirtyConfigurationValues(),n},l.prototype.createAction=function(){var l=this.createRequest();return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/create",{pool_name:l.pool_name,image_name:l.name}),call:this.rbdService.create(l)})},l.prototype.editRequest=function(){var l=this,n=new v;return n.name=this.rbdForm.getValue("name"),n.size=this.formatter.toBytes(this.rbdForm.getValue("size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.configuration=this.getDirtyConfigurationValues(),n},l.prototype.cloneRequest=function(){var l=this,n=new m;return n.child_pool_name=this.rbdForm.getValue("pool"),n.child_image_name=this.rbdForm.getValue("name"),n.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),n.stripe_count=this.rbdForm.getValue("stripingCount"),n.data_pool=this.rbdForm.getValue("dataPool"),n.configuration=this.getDirtyConfigurationValues(!0,d.a.image),n},l.prototype.editAction=function(){return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/edit",{pool_name:this.response.pool_name,image_name:this.response.name}),call:this.rbdService.update(this.response.pool_name,this.response.name,this.editRequest())})},l.prototype.cloneAction=function(){var l=this.cloneRequest();return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/clone",{parent_pool_name:this.response.pool_name,parent_image_name:this.response.name,parent_snap_name:this.snapName,child_pool_name:l.child_pool_name,child_image_name:l.child_image_name}),call:this.rbdService.cloneSnapshot(this.response.pool_name,this.response.name,this.snapName,l)})},l.prototype.copyRequest=function(){var l=this,n=new f;return this.snapName&&(n.snapshot_name=this.snapName),n.dest_pool_name=this.rbdForm.getValue("pool"),n.dest_image_name=this.rbdForm.getValue("name"),n.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),o.forIn(this.features,function(e){l.rbdForm.getValue(e.key)&&n.features.push(e.key)}),n.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),n.stripe_count=this.rbdForm.getValue("stripingCount"),n.data_pool=this.rbdForm.getValue("dataPool"),n.configuration=this.getDirtyConfigurationValues(!0,d.a.image),n},l.prototype.copyAction=function(){var l=this.copyRequest();return this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/copy",{src_pool_name:this.response.pool_name,src_image_name:this.response.name,dest_pool_name:l.dest_pool_name,dest_image_name:l.dest_image_name}),call:this.rbdService.copy(this.response.pool_name,this.response.name,l)})},l.prototype.submit=function(){var l=this;this.mode||this.rbdImage.next("create"),this.rbdImage.complete(),this.rbdImage.pipe(Object(a.a)(function(){return l.mode===l.rbdFormMode.editing?l.editAction():l.mode===l.rbdFormMode.cloning?l.cloneAction():l.mode===l.rbdFormMode.copying?l.copyAction():l.createAction()})).subscribe(function(){},function(){return l.rbdForm.setErrors({cdSubmitButton:!0})},function(){return l.router.navigate(["/block/rbd"])})},l}()},OcYo:function(l,n,e){"use strict";e.d(n,"a",function(){return t});var t=function(){function l(l,n,e){this.elementRef=l,this.renderer=n,this.toastr=e}return l.prototype.ngOnInit=function(){var l=this.renderer.createElement("i");this.renderer.addClass(l,"icon-prepend"),this.renderer.addClass(l,"fa"),this.renderer.addClass(l,"fa-clipboard"),this.renderer.appendChild(this.elementRef.nativeElement,l)},l.prototype.getInputElement=function(){return document.getElementById(this.cdCopy2ClipboardButton)},l.prototype.onClick=function(){try{var l=document.createElement("input");l.value=this.getInputElement().value,document.body.appendChild(l),l.select(),document.execCommand("copy"),document.body.removeChild(l),this.toastr.success("Copied text to the clipboard successfully.")}catch(n){this.toastr.error("Failed to copy text to the clipboard.")}},l}()},PhyI:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e.d(n,"b",function(){return u});var t=function(l){return l[l.global=0]="global",l[l.pool=1]="pool",l[l.image=2]="image",l}({}),u=function(l){return l[l.bps=0]="bps",l[l.iops=1]="iops",l[l.milliseconds=2]="milliseconds",l}({})},RIVN:function(l,n,e){"use strict";var t=e("CcnG"),u=e("C6Ij"),i=e("AWcq"),o=e("Ip0R"),r=function(){function l(){}return l.prototype.transform=function(l){return"warning"===l?"label label-warning":"error"===l?"label label-danger":"success"===l?"label label-success":"label label-info"},l}(),a=e("25BL"),s=e("uIqm"),d=e("XED3"),c=e("85J/"),p=function(){function l(l,n,e){this.rbdMirroringService=l,this.cephShortVersionPipe=n,this.i18n=e}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{prop:"instance_id",name:this.i18n("Instance"),flexGrow:2},{prop:"id",name:this.i18n("ID"),flexGrow:2},{prop:"server_hostname",name:this.i18n("Hostname"),flexGrow:2},{prop:"version",name:this.i18n("Version"),pipe:this.cephShortVersionPipe,flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.data=n.content_data.daemons)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.refresh=function(){this.rbdMirroringService.refresh()},l}(),m=e("Jm/i"),f=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function g(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{ngClass:[0,"ngClass"]},null),t["\u0275ppd"](2,1),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent,0),n.context.row.health_color));l(n,1,0,e)},function(l,n){l(n,3,0,n.context.value)})}function h(l){return t["\u0275vid"](0,[t["\u0275pid"](0,r,[]),t["\u0275qud"](402653184,1,{healthTmpl:0}),(l()(),t["\u0275eld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},a.b,a.a)),t["\u0275did"](3,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275and"](0,[[1,2],["healthTmpl",2]],null,0,null,g))],function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",0)},null)}var v=e("NUGo"),b=e("S7zO"),y=e("6blF"),C=e("0+/T"),_=e("vCyI"),w=e("kvvV"),I=e("aexS"),R=e("kn/O"),S=e("aa9H"),k=e("L4us"),E=function(){function l(l,n,e,t,u){var i=this;this.authStorageService=l,this.rbdMirroringService=n,this.modalService=e,this.taskWrapper=t,this.i18n=u,this.selection=new _.a,this.data=[],this.permission=this.authStorageService.getPermissions().rbdMirroring;var o={permission:"update",icon:"fa-edit",click:function(){return i.editModeModal()},name:this.i18n("Edit Mode"),canBePrimary:function(){return!0}},r={permission:"create",icon:"fa-plus",name:this.i18n("Add Peer"),click:function(){return i.editPeersModal("add")},disable:function(){return!i.selection.first()||"disabled"===i.selection.first().mirror_mode},visible:function(){return!i.getPeerUUID()},canBePrimary:function(){return!1}},a={permission:"update",icon:"fa-exchange",name:this.i18n("Edit Peer"),click:function(){return i.editPeersModal("edit")},visible:function(){return!!i.getPeerUUID()}},s={permission:"delete",icon:"fa-times",name:this.i18n("Delete Peer"),click:function(){return i.deletePeersModal()},visible:function(){return!!i.getPeerUUID()}};this.tableActions=[o,r,a,s]}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{prop:"name",name:this.i18n("Name"),flexGrow:2},{prop:"mirror_mode",name:this.i18n("Mode"),flexGrow:2},{prop:"leader_id",name:this.i18n("Leader"),flexGrow:2},{prop:"image_local_count",name:this.i18n("# Local"),flexGrow:2},{prop:"image_remote_count",name:this.i18n("# Remote"),flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.data=n.content_data.pools)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.refresh=function(){this.rbdMirroringService.refresh()},l.prototype.editModeModal=function(){var l={poolName:this.selection.first().name};this.modalRef=this.modalService.show(S.a,{initialState:l})},l.prototype.editPeersModal=function(l){var n={poolName:this.selection.first().name,mode:l};"edit"===l&&(n.peerUUID=this.getPeerUUID()),this.modalRef=this.modalService.show(k.a,{initialState:n})},l.prototype.deletePeersModal=function(){var l=this,n=this.selection.first().name,e=this.getPeerUUID();this.modalRef=this.modalService.show(C.a,{initialState:{itemDescription:this.i18n("mirror peer"),itemNames:[n+" ("+e+")"],submitActionObservable:function(){return new y.a(function(t){l.taskWrapper.wrapTaskAroundCall({task:new w.a("rbd/mirroring/peer/delete",{pool_name:n}),call:l.rbdMirroringService.deletePeer(n,e)}).subscribe(void 0,function(l){return t.error(l)},function(){l.rbdMirroringService.refresh(),t.complete()})})}}})},l.prototype.getPeerUUID=function(){var l=this.selection.first(),n=this.data.find(function(n){return l&&l.name===n.name});if(n&&n.peer_uuids)return n.peer_uuids[0]},l.prototype.updateSelection=function(l){this.selection=l},l}(),F=e("DQlY"),D=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function V(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{ngClass:[0,"ngClass"]},null),t["\u0275ppd"](2,1),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent,0),n.context.row.health_color));l(n,1,0,e)},function(l,n){l(n,3,0,n.context.value)})}function T(l){return t["\u0275vid"](0,[t["\u0275pid"](0,r,[]),t["\u0275qud"](402653184,1,{healthTmpl:0}),(l()(),t["\u0275eld"](2,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(l,n,e){var t=!0,u=l.component;return"fetchData"===n&&(t=!1!==u.refresh()&&t),"updateSelection"===n&&(t=!1!==u.updateSelection(e)&&t),t},a.b,a.a)),t["\u0275did"](3,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](4,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,v.b,v.a)),t["\u0275did"](5,114688,null,0,b.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275and"](0,[[1,2],["healthTmpl",2]],null,0,null,V))],function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",0,"name","true","single"),l(n,5,0,e.permission,e.selection,e.tableActions)},null)}var N=e("Da1D"),P=t["\u0275crt"]({encapsulation:2,styles:[],data:{}});function x(l){return t["\u0275vid"](0,[t["\u0275ncd"](null,0)],null,null)}var O=t["\u0275crt"]({encapsulation:0,styles:["[_nghost-%COMP%] {\n width: 100%;\n display: flex;\n }"],data:{}});function q(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[8,"className",0],[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"]],null,null,x,P)),t["\u0275did"](1,245760,null,0,N.a,[N.b],{type:[0,"type"],value:[1,"value"]},null),t["\u0275ncd"](0,0)],function(l,n){var e=n.component;l(n,1,0,e.type,e._value)},function(l,n){l(n,0,0,"progress-bar "+(t["\u0275nov"](n,1).type?"progress-bar-"+t["\u0275nov"](n,1).type+" bg-"+t["\u0275nov"](n,1).type:""),!t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).striped,t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).value,t["\u0275nov"](n,1).percent?t["\u0275nov"](n,1).percent.toFixed(0)+"%":"",t["\u0275nov"](n,1).max,"100",t["\u0275nov"](n,1).setBarWidth)})}function M(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[8,"className",0],[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"]],null,null,x,P)),t["\u0275did"](1,245760,null,0,N.a,[N.b],{type:[0,"type"],value:[1,"value"]},null),(l()(),t["\u0275ted"](2,0,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.type,n.context.$implicit.value)},function(l,n){l(n,0,0,"progress-bar "+(t["\u0275nov"](n,1).type?"progress-bar-"+t["\u0275nov"](n,1).type+" bg-"+t["\u0275nov"](n,1).type:""),!t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).striped,t["\u0275nov"](n,1).isBs3&&t["\u0275nov"](n,1).animate,t["\u0275nov"](n,1).value,t["\u0275nov"](n,1).percent?t["\u0275nov"](n,1).percent.toFixed(0)+"%":"",t["\u0275nov"](n,1).max,"100",t["\u0275nov"](n,1).setBarWidth),l(n,2,0,n.context.$implicit.label)})}function A(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,M)),t["\u0275did"](1,278528,null,0,o.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.component._value)},null)}function B(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,q)),t["\u0275did"](1,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,A)),t["\u0275did"](3,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,1,0,!e.isStacked),l(n,3,0,e.isStacked)},null)}var j=e("pKUh"),U=e("YAQW"),G=function(){function l(l,n){this.rbdMirroringService=l,this.i18n=n,this.image_error={data:[],columns:{}},this.image_syncing={data:[],columns:{}},this.image_ready={data:[],columns:{}}}return l.prototype.ngOnInit=function(){var l=this;this.image_error.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Issue"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.image_syncing.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"progress",name:this.i18n("Progress"),cellTemplate:this.progressTmpl,flexGrow:2},{prop:"state",name:this.i18n("State"),cellTemplate:this.syncTmpl,flexGrow:1}],this.image_ready.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Description"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.image_error.data=n.content_data.image_error,l.image_syncing.data=n.content_data.image_syncing,l.image_ready.data=n.content_data.image_ready)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.refresh=function(){this.rbdMirroringService.refresh()},l}(),L=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function z(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{ngClass:[0,"ngClass"]},null),t["\u0275ppd"](2,1),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){var e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent,0),n.context.row.state_color));l(n,1,0,e)},function(l,n){l(n,3,0,n.context.value)})}function W(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","label label-info"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Syncing"]))],null,null)}function $(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"progressbar",[["type","info"]],[[1,"max",0],[2,"progress",null]],null,null,B,O)),t["\u0275did"](1,49152,null,0,N.b,[N.c],{type:[0,"type"],value:[1,"value"]},null)],function(l,n){l(n,1,0,"info",n.context.value)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).max,t["\u0275nov"](n,1).addClass)})}function X(l){return t["\u0275vid"](0,[t["\u0275pid"](0,r,[]),t["\u0275qud"](402653184,1,{stateTmpl:0}),t["\u0275qud"](402653184,2,{syncTmpl:0}),t["\u0275qud"](402653184,3,{progressTmpl:0}),(l()(),t["\u0275eld"](4,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,j.b,j.a)),t["\u0275did"](5,180224,null,0,U.d,[U.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](6,0,null,0,3,"tab",[["heading","Issues"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](7,212992,null,0,U.b,[U.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](8,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},a.b,a.a)),t["\u0275did"](9,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275eld"](10,0,null,0,3,"tab",[["heading","Syncing"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](11,212992,null,0,U.b,[U.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](12,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},a.b,a.a)),t["\u0275did"](13,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275eld"](14,0,null,0,3,"tab",[["heading","Ready"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](15,212992,null,0,U.b,[U.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](16,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t},a.b,a.a)),t["\u0275did"](17,2867200,null,0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["\u0275and"](0,[[1,2],["stateTmpl",2]],null,0,null,z)),(l()(),t["\u0275and"](0,[[2,2],["syncTmpl",2]],null,0,null,W)),(l()(),t["\u0275and"](0,[[3,2],["progressTmpl",2]],null,0,null,$))],function(l,n){var e=n.component;l(n,7,0,"Issues"),l(n,9,0,e.image_error.data,e.image_error.columns,"flex",0),l(n,11,0,"Syncing"),l(n,13,0,e.image_syncing.data,e.image_syncing.columns,"flex",0),l(n,15,0,"Ready"),l(n,17,0,e.image_ready.data,e.image_ready.columns,"flex",0)},function(l,n){l(n,4,0,t["\u0275nov"](n,5).clazz),l(n,6,0,t["\u0275nov"](n,7).id,t["\u0275nov"](n,7).active,t["\u0275nov"](n,7).addClass),l(n,10,0,t["\u0275nov"](n,11).id,t["\u0275nov"](n,11).active,t["\u0275nov"](n,11).addClass),l(n,14,0,t["\u0275nov"](n,15).id,t["\u0275nov"](n,15).active,t["\u0275nov"](n,15).addClass)})}var Y=e("cxJu");e.d(n,"a",function(){return Q});var K=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function J(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,u.b,u.a)),t["\u0275did"](1,114688,null,0,i.a,[],{status:[0,"status"]},null),(l()(),t["\u0275eld"](2,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Daemons"])),(l()(),t["\u0275eld"](6,0,null,null,1,"cd-mirroring-daemons",[],null,null,null,h,f)),t["\u0275did"](7,245760,null,0,p,[d.a,c.a,m.a],null,null),(l()(),t["\u0275eld"](8,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pools"])),(l()(),t["\u0275eld"](11,0,null,null,1,"cd-mirroring-pools",[],null,null,null,T,D)),t["\u0275did"](12,245760,null,0,E,[I.a,d.a,F.b,R.a,m.a],null,null),(l()(),t["\u0275eld"](13,0,null,null,5,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](14,0,null,null,4,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](15,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Images"])),(l()(),t["\u0275eld"](17,0,null,null,1,"cd-mirroring-images",[],null,null,null,X,L)),t["\u0275did"](18,245760,null,0,G,[d.a,m.a],null,null)],function(l,n){l(n,1,0,n.component.status),l(n,7,0),l(n,12,0),l(n,18,0)},null)}function Z(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-mirroring",[],null,null,null,J,K)),t["\u0275did"](1,245760,null,0,Y.a,[d.a],null,null)],function(l,n){l(n,1,0)},null)}var Q=t["\u0275ccf"]("cd-mirroring",Y.a,Z,{},{},[])},Sofw:function(l,n,e){"use strict";e.d(n,"a",function(){return r});var t=e("gIcY"),u=(e("my5R"),e("mtw6")),i=e("QFaf"),o=e("1Ni5"),r=(e("aexS"),e("9nlD"),function(){function l(l,n,e,t,u){this.authStorageService=l,this.bsModalRef=n,this.iscsiService=e,this.notificationService=t,this.i18n=u,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.permission=this.authStorageService.getPermissions().iscsi}return l.prototype.ngOnInit=function(){var l=this;this.hasPermission=this.permission.update,this.createForm(),this.iscsiService.getDiscovery().subscribe(function(n){l.discoveryForm.patchValue(n)})},l.prototype.createForm=function(){var l=this;this.discoveryForm=new i.a({user:new t.i({value:"",disabled:!this.hasPermission}),password:new t.i({value:"",disabled:!this.hasPermission}),mutual_user:new t.i({value:"",disabled:!this.hasPermission}),mutual_password:new t.i({value:"",disabled:!this.hasPermission})}),o.a.validateIf(this.discoveryForm.get("user"),function(){return l.discoveryForm.getValue("password")||l.discoveryForm.getValue("mutual_user")||l.discoveryForm.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),o.a.validateIf(this.discoveryForm.get("password"),function(){return l.discoveryForm.getValue("user")||l.discoveryForm.getValue("mutual_user")||l.discoveryForm.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),o.a.validateIf(this.discoveryForm.get("mutual_user"),function(){return l.discoveryForm.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_password")]),o.a.validateIf(this.discoveryForm.get("mutual_password"),function(){return l.discoveryForm.getValue("mutual_user")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user")])},l.prototype.submitAction=function(){var l=this;this.iscsiService.updateDiscovery(this.discoveryForm.value).subscribe(function(){l.notificationService.show(u.a.success,l.i18n("Updated discovery authentication")),l.bsModalRef.hide()},function(){l.discoveryForm.setErrors({cdSubmitButton:!0})})},l}())},Ur3J:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("8xTl"),o=e("gIcY"),r=e("IZUe"),a=e("gp3X"),s=e("sb0X"),d=e("KVJa"),c=e("Z21x"),p=e("sne2"),m=e("+lcs"),f=e("DQlY"),g=e("F83c"),h=e("VXsX"),v=e("9nlD"),b=e("Jm/i");e.d(n,"a",function(){return I});var y=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function _(l){return t["\u0275vid"](0,[t["\u0275pid"](0,u.TitleCasePipe,[]),t["\u0275pid"](0,i.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,["","",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.modalRef.hide()&&t),t},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,31,"form",[["class","form-horizontal"],["name","snapshotForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,12).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,12).onReset()&&u),u},null,null)),t["\u0275did"](11,16384,null,0,o.D,[],null,null),t["\u0275did"](12,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,o.d,null,[o.l]),t["\u0275did"](14,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,17,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,u.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","snapshotName"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275eld"](22,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](23,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","snapshotName"],["id","snapshotName"],["name","snapshotName"],["placeholder","Snapshot name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,25)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,25).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,25)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](25,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),t["\u0275did"](27,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,o.q,null,[o.j]),t["\u0275did"](29,16384,null,0,o.r,[[4,o.q]],null,null),t["\u0275did"](30,4210688,null,0,r.a,[t.ElementRef],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,C)),t["\u0275did"](32,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](33,0,null,null,8,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](34,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](35,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submit()&&t),t},a.b,a.a)),t["\u0275did"](36,114688,null,0,s.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](37,0,["","",""])),t["\u0275ppd"](38,1),t["\u0275ppd"](39,1),(l()(),t["\u0275eld"](40,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,d.b,d.a)),t["\u0275did"](41,49152,null,0,c.a,[u.Location,p.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,12,0,e.snapshotForm);var u=l(n,18,0,e.snapshotForm.showError("snapshotName",t["\u0275nov"](n,12)));l(n,17,0,"form-group",u),l(n,27,0,"snapshotName"),l(n,32,0,e.snapshotForm.showError("snapshotName",t["\u0275nov"](n,12),"required")),l(n,36,0,e.snapshotForm),l(n,41,0,"Close",e.modalRef.hide)},function(l,n){var e=n.component,u=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),e.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),e.resource));l(n,4,0,u,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,24,0,t["\u0275nov"](n,29).ngClassUntouched,t["\u0275nov"](n,29).ngClassTouched,t["\u0275nov"](n,29).ngClassPristine,t["\u0275nov"](n,29).ngClassDirty,t["\u0275nov"](n,29).ngClassValid,t["\u0275nov"](n,29).ngClassInvalid,t["\u0275nov"](n,29).ngClassPending);var o=t["\u0275unv"](n,37,0,l(n,38,0,t["\u0275nov"](n,0),e.action)),r=t["\u0275unv"](n,37,1,l(n,39,0,t["\u0275nov"](n,1),e.resource));l(n,37,0,o,r)})}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-snapshot-form",[],null,null,null,_,y)),t["\u0275did"](1,114688,null,0,m.a,[f.a,g.a,h.a,v.a,b.a,p.b],null,null)],function(l,n){l(n,1,0)},null)}var I=t["\u0275ccf"]("cd-rbd-snapshot-form",m.a,w,{},{},[])},VBM6:function(l,n,e){"use strict";var t=e("CcnG"),u=e("EEJc"),i=e("ajRT"),o=e("Ip0R"),r=e("gIcY"),a=e("IZUe"),s=e("gp3X"),d=e("sb0X"),c=e("KVJa"),p=e("Z21x"),m=e("sne2"),f=e("L4us"),g=e("DQlY"),h=e("XED3"),v=e("kn/O");e.d(n,"a",function(){return T});var b=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Edit"]))],null,null)}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Add"]))],null,null)}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Edit"]))],null,null)}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["Add"]))],null,null)}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The cluster name is not valid."]))],null,null)}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function k(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The CephX ID is not valid."]))],null,null)}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The monitory address is not valid."]))],null,null)}function F(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["CephX key must be base64 encoded."]))],null,null)}function D(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,101,"cd-modal",[],null,null,null,u.c,u.b)),t["\u0275did"](1,49152,null,0,i.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,7,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,5,null,null,null,null,null,null,null)),t["\u0275did"](4,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](6,278528,null,0,o.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,C)),t["\u0275did"](8,16384,null,0,o.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],null,null),(l()(),t["\u0275ted"](-1,null,[" pool mirror peer"])),(l()(),t["\u0275eld"](10,0,null,1,91,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,90,"form",[["class","form"],["name","editPeerForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,13).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,13).onReset()&&u),u},null,null)),t["\u0275did"](12,16384,null,0,r.D,[],null,null),t["\u0275did"](13,540672,[["formDir",4]],0,r.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,r.d,null,[r.l]),t["\u0275did"](15,16384,null,0,r.s,[[4,r.d]],null,null),(l()(),t["\u0275eld"](16,0,null,null,78,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,14,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,13,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,5,null,null,null,null,null,null,null)),t["\u0275did"](20,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,_)),t["\u0275did"](22,278528,null,0,o.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,w)),t["\u0275did"](24,16384,null,0,o.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,o.NgSwitch],null,null),(l()(),t["\u0275ted"](-1,null,[" the pool mirror peer attributes for pool "])),(l()(),t["\u0275eld"](26,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](27,null,["",""])),(l()(),t["\u0275ted"](-1,null,[" and click "])),(l()(),t["\u0275eld"](29,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Submit"])),(l()(),t["\u0275ted"](-1,null,["."])),(l()(),t["\u0275eld"](32,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](33,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](34,{"has-error":0}),(l()(),t["\u0275eld"](35,0,null,null,3,"label",[["class","control-label"],["for","clusterName"]],null,null,null,null,null)),(l()(),t["\u0275eld"](36,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Cluster Name"])),(l()(),t["\u0275eld"](38,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","clusterName"],["id","clusterName"],["name","clusterName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,41)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,41).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,41)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,41)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](40,4210688,null,0,a.a,[t.ElementRef],null,null),t["\u0275did"](41,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](43,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](45,16384,null,0,r.r,[[4,r.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,I)),t["\u0275did"](47,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](49,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](50,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](51,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](52,{"has-error":0}),(l()(),t["\u0275eld"](53,0,null,null,3,"label",[["class","control-label"],["for","clientID"]],null,null,null,null,null)),(l()(),t["\u0275eld"](54,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["CephX ID"])),(l()(),t["\u0275eld"](56,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](57,0,null,null,5,"input",[["class","form-control"],["formControlName","clientID"],["id","clientID"],["name","clientID"],["placeholder","CephX ID..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,58)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,58).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,58)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,58)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](58,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](60,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](62,16384,null,0,r.r,[[4,r.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](64,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,k)),t["\u0275did"](66,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](67,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](68,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](69,{"has-error":0}),(l()(),t["\u0275eld"](70,0,null,null,2,"label",[["class","control-label"],["for","monAddr"]],null,null,null,null,null)),(l()(),t["\u0275eld"](71,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Monitor Addresses"])),(l()(),t["\u0275eld"](73,0,null,null,5,"input",[["class","form-control"],["formControlName","monAddr"],["id","monAddr"],["name","monAddr"],["placeholder","Comma-delimited addresses..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,74)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,74).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,74)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,74)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](74,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](76,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](78,16384,null,0,r.r,[[4,r.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,E)),t["\u0275did"](80,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](81,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](82,278528,null,0,o.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](83,{"has-error":0}),(l()(),t["\u0275eld"](84,0,null,null,2,"label",[["class","control-label"],["for","key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](85,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["CephX Key"])),(l()(),t["\u0275eld"](87,0,null,null,5,"input",[["class","form-control"],["formControlName","key"],["id","key"],["name","key"],["placeholder","Base64-encoded key..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,88)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,88).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,88)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,88)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](88,16384,null,0,r.e,[t.Renderer2,t.ElementRef,[2,r.b]],null,null),t["\u0275prd"](1024,null,r.p,function(l){return[l]},[r.e]),t["\u0275did"](90,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,r.q,null,[r.j]),t["\u0275did"](92,16384,null,0,r.r,[[4,r.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,F)),t["\u0275did"](94,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](95,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](96,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](97,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t},s.b,s.a)),t["\u0275did"](98,114688,null,0,d.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Submit"])),(l()(),t["\u0275eld"](100,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,c.b,c.a)),t["\u0275did"](101,49152,null,0,p.a,[o.Location,m.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,4,0,e.mode),l(n,6,0,"edit"),l(n,13,0,e.editPeerForm),l(n,20,0,e.mode),l(n,22,0,"edit");var u=l(n,34,0,e.editPeerForm.showError("clusterName",t["\u0275nov"](n,13)));l(n,33,0,"form-group",u),l(n,43,0,"clusterName"),l(n,47,0,e.editPeerForm.showError("clusterName",t["\u0275nov"](n,13),"required")),l(n,49,0,e.editPeerForm.showError("clusterName",t["\u0275nov"](n,13),"invalidClusterName"));var i=l(n,52,0,e.editPeerForm.showError("clientID",t["\u0275nov"](n,13)));l(n,51,0,"form-group",i),l(n,60,0,"clientID"),l(n,64,0,e.editPeerForm.showError("clientID",t["\u0275nov"](n,13),"required")),l(n,66,0,e.editPeerForm.showError("clientID",t["\u0275nov"](n,13),"invalidClientID"));var o=l(n,69,0,e.editPeerForm.showError("monAddr",t["\u0275nov"](n,13)));l(n,68,0,"form-group",o),l(n,76,0,"monAddr"),l(n,80,0,e.editPeerForm.showError("monAddr",t["\u0275nov"](n,13),"invalidMonAddr"));var r=l(n,83,0,e.editPeerForm.showError("key",t["\u0275nov"](n,13)));l(n,82,0,"form-group",r),l(n,90,0,"key"),l(n,94,0,e.editPeerForm.showError("key",t["\u0275nov"](n,13),"invalidKey")),l(n,98,0,e.editPeerForm),l(n,101,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,11,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending),l(n,27,0,e.poolName),l(n,39,0,t["\u0275nov"](n,45).ngClassUntouched,t["\u0275nov"](n,45).ngClassTouched,t["\u0275nov"](n,45).ngClassPristine,t["\u0275nov"](n,45).ngClassDirty,t["\u0275nov"](n,45).ngClassValid,t["\u0275nov"](n,45).ngClassInvalid,t["\u0275nov"](n,45).ngClassPending),l(n,57,0,t["\u0275nov"](n,62).ngClassUntouched,t["\u0275nov"](n,62).ngClassTouched,t["\u0275nov"](n,62).ngClassPristine,t["\u0275nov"](n,62).ngClassDirty,t["\u0275nov"](n,62).ngClassValid,t["\u0275nov"](n,62).ngClassInvalid,t["\u0275nov"](n,62).ngClassPending),l(n,73,0,t["\u0275nov"](n,78).ngClassUntouched,t["\u0275nov"](n,78).ngClassTouched,t["\u0275nov"](n,78).ngClassPristine,t["\u0275nov"](n,78).ngClassDirty,t["\u0275nov"](n,78).ngClassValid,t["\u0275nov"](n,78).ngClassInvalid,t["\u0275nov"](n,78).ngClassPending),l(n,87,0,t["\u0275nov"](n,92).ngClassUntouched,t["\u0275nov"](n,92).ngClassTouched,t["\u0275nov"](n,92).ngClassPristine,t["\u0275nov"](n,92).ngClassDirty,t["\u0275nov"](n,92).ngClassValid,t["\u0275nov"](n,92).ngClassInvalid,t["\u0275nov"](n,92).ngClassPending)})}function V(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-pool-edit-peer-modal",[],null,null,null,D,b)),t["\u0275did"](1,114688,null,0,f.a,[g.a,h.a,v.a],null,null)],function(l,n){l(n,1,0)},null)}var T=t["\u0275ccf"]("cd-pool-edit-peer-modal",f.a,V,{},{},[])},WxU5:function(l,n,e){"use strict";e.d(n,"a",function(){return u}),e("Ekvf"),e("F83c"),e("2EZI");var t=e("kvvV"),u=(e("aexS"),e("kn/O"),function(){function l(l,n,e,t,u,i){this.authStorageService=l,this.rbdService=n,this.modalRef=e,this.fb=t,this.poolService=u,this.taskWrapper=i,this.poolPermission=this.authStorageService.getPermissions().pool}return l.prototype.createForm=function(){this.purgeForm=this.fb.group({poolName:""})},l.prototype.ngOnInit=function(){var l=this;this.poolPermission.read&&this.poolService.list(["pool_name","application_metadata"]).then(function(n){l.pools=n.filter(function(l){return l.application_metadata.includes("rbd")}).map(function(l){return l.pool_name})}),this.createForm()},l.prototype.purge=function(){var l=this,n=this.purgeForm.getValue("poolName")||"";this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/purge",{pool_name:n}),call:this.rbdService.purgeTrash(n)}).subscribe(void 0,function(){l.purgeForm.setErrors({cdSubmitButton:!0})},function(){l.modalRef.hide()})},l}())},XED3:function(l,n,e){"use strict";e.d(n,"a",function(){return r});var t=e("26FU"),u=e("CcnG"),i=e("t/Na"),o=e("pL04"),r=function(){function l(l,n){this.http=l,this.ngZone=n,this.summaryDataSource=new t.a(null),this.summaryData$=this.summaryDataSource.asObservable(),this.refreshAndSchedule()}return l.prototype.refresh=function(){var l=this;this.http.get("api/block/mirroring/summary").subscribe(function(n){l.summaryDataSource.next(n)})},l.prototype.refreshAndSchedule=function(){var l=this;this.refresh(),this.ngZone.runOutsideAngular(function(){setTimeout(function(){l.ngZone.run(function(){l.refreshAndSchedule()})},3e4)})},l.prototype.getCurrentSummary=function(){return this.summaryDataSource.getValue()},l.prototype.subscribeSummary=function(l,n){return this.summaryData$.subscribe(l,n)},l.prototype.getPool=function(l){return this.http.get("api/block/mirroring/pool/"+l)},l.prototype.updatePool=function(l,n){return this.http.put("api/block/mirroring/pool/"+l,n,{observe:"response"})},l.prototype.getPeer=function(l,n){return this.http.get("api/block/mirroring/pool/"+l+"/peer/"+n)},l.prototype.addPeer=function(l,n){return this.http.post("api/block/mirroring/pool/"+l+"/peer",n,{observe:"response"})},l.prototype.updatePeer=function(l,n,e){return this.http.put("api/block/mirroring/pool/"+l+"/peer/"+n,e,{observe:"response"})},l.prototype.deletePeer=function(l,n){return this.http.delete("api/block/mirroring/pool/"+l+"/peer/"+n,{observe:"response"})},l.ngInjectableDef=u.defineInjectable({factory:function(){return new l(u.inject(i.c),u.inject(u.NgZone))},token:l,providedIn:o.a}),l}()},Z4cD:function(l,n,e){"use strict";e.d(n,"a",function(){return r});var t=e("mrSG"),u=e("gIcY"),i=e("LvDl"),o=(e("my5R"),e("QFaf")),r=function(){function l(l,n){this.modalRef=l,this.iscsiService=n}return l.prototype.ngOnInit=function(){var l=this,n={backstore:new u.i(this.imagesSettings[this.image].backstore),lun:new u.i(this.imagesSettings[this.image].lun),wwn:new u.i(this.imagesSettings[this.image].wwn)};i.forEach(this.backstores,function(e){var t=l.imagesSettings[l.image][e]||{};i.forIn(l.disk_default_controls[e],function(l,e){n[e]=new u.i(t[e])})}),this.settingsForm=new o.a(n)},l.prototype.getDiskControlLimits=function(l,n){return this.disk_controls_limits?this.disk_controls_limits[l][n]:{type:"int"}},l.prototype.save=function(){var l=this,n=this.settingsForm.controls.backstore.value,e=this.settingsForm.controls.lun.value,u=this.settingsForm.controls.wwn.value,o={};i.forIn(this.settingsForm.controls,function(e,t){""!==e.value&&null!==e.value&&t in l.disk_default_controls[l.settingsForm.value.backstore]&&(o[t]=e.value,i.forEach(l.backstores,function(u){u!==n&&t in(l.imagesSettings[l.image][u]||{})&&(l.imagesSettings[l.image][u][t]=e.value)}))}),this.imagesSettings[this.image].backstore=n,this.imagesSettings[this.image].lun=e,this.imagesSettings[this.image].wwn=u,this.imagesSettings[this.image][n]=o,this.imagesSettings=t.__assign({},this.imagesSettings),this.control.updateValueAndValidity({emitEvent:!1}),this.modalRef.hide()},l}()},a6qe:function(l,n,e){"use strict";e.d(n,"a",function(){return o});var t=e("gIcY"),u=e("LvDl"),i=(e("my5R"),e("QFaf")),o=function(){function l(l,n){this.modalRef=l,this.iscsiService=n}return l.prototype.ngOnInit=function(){var l=this,n={};u.forIn(this.target_default_controls,function(e,u){n[u]=new t.i(l.target_controls.value[u])}),this.settingsForm=new i.a(n)},l.prototype.save=function(){var l={};u.forIn(this.settingsForm.controls,function(n,e){""!==n.value&&null!==n.value&&(l[e]=n.value)}),this.target_controls.setValue(l),this.modalRef.hide()},l.prototype.getTargetControlLimits=function(l){return this.target_controls_limits?this.target_controls_limits[l]:["Yes","No"].includes(this.target_default_controls[l])?{type:"bool"}:{type:"int"}},l}()},aAWM:function(l,n,e){"use strict";e("uIqm");var t=e("PhyI"),u=function(){function l(){}return l.prototype.transform=function(l){return{0:"global",1:"pool",2:"image"}[l]},l}();e("aXbf"),e("o8EM"),e.d(n,"a",function(){return i});var i=function(){function l(l,n,e){this.formatterService=l,this.rbdConfigurationService=n,this.i18n=e,this.sourceField=t.a,this.typeField=t.b}return l.prototype.ngOnInit=function(){this.poolConfigurationColumns=[{prop:"displayName",name:this.i18n("Name")},{prop:"description",name:this.i18n("Description")},{prop:"name",name:this.i18n("Key")},{prop:"source",name:this.i18n("Source"),cellTemplate:this.configurationSourceTpl,pipe:new u},{prop:"value",name:this.i18n("Value"),cellTemplate:this.configurationValueTpl}]},l.prototype.ngOnChanges=function(){var l=this;this.data&&(this.data=this.data.filter(function(n){return l.rbdConfigurationService.getOptionFields().map(function(l){return l.name}).includes(n.name)}))},l}()},aa9H:function(l,n,e){"use strict";var t=e("gIcY"),u=(e("XED3"),e("QFaf")),i=e("kvvV"),o=(e("kn/O"),function(){return function(){}}());e.d(n,"a",function(){return r});var r=function(){function l(l,n,e,t){this.modalRef=l,this.i18n=n,this.rbdMirroringService=e,this.taskWrapper=t,this.bsConfig={containerClass:"theme-default"},this.peerExists=!1,this.mirrorModes=[{id:"disabled",name:this.i18n("Disabled")},{id:"pool",name:this.i18n("Pool")},{id:"image",name:this.i18n("Image")}],this.createForm()}return l.prototype.createForm=function(){this.editModeForm=new u.a({mirrorMode:new t.i("",{validators:[t.A.required,this.validateMode.bind(this)]})})},l.prototype.ngOnInit=function(){var l=this;this.pattern=""+this.poolName,this.rbdMirroringService.getPool(this.poolName).subscribe(function(n){l.setResponse(n)}),this.subs=this.rbdMirroringService.subscribeSummary(function(n){if(l.peerExists=!1,n){var e=n.content_data.pools.find(function(n){return l.poolName===n.name});l.peerExists=e&&e.peer_uuids.length}})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l.prototype.validateMode=function(l){return"disabled"===l.value&&this.peerExists?{cannotDisable:{value:l.value}}:null},l.prototype.setResponse=function(l){this.editModeForm.get("mirrorMode").setValue(l.mirror_mode)},l.prototype.update=function(){var l=this,n=new o;n.mirror_mode=this.editModeForm.getValue("mirrorMode"),this.taskWrapper.wrapTaskAroundCall({task:new i.a("rbd/mirroring/pool/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePool(this.poolName,n)}).subscribe(void 0,function(){return l.editModeForm.setErrors({cdSubmitButton:!0})},function(){l.rbdMirroringService.refresh(),l.modalRef.hide()})},l}()},bUo2:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gp3X"),i=e("sb0X"),o=e("EEJc"),r=e("ajRT"),a=e("gIcY"),s=e("Ip0R"),d=e("D4zM"),c=e("OcYo"),p=e("SZbH"),m=e("KVJa"),f=e("Z21x"),g=e("sne2"),h=e("Sofw"),v=e("aexS"),b=e("DQlY"),y=e("my5R"),C=e("9nlD"),_=e("Jm/i");e.d(n,"a",function(){return x});var w=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function k(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function F(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function D(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function V(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function T(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submitAction()&&t),t},u.b,u.a)),t["\u0275did"](1,114688,null,0,i.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Submit"]))],function(l,n){l(n,1,0,n.component.discoveryForm)},null)}function N(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,93,"cd-modal",[],null,null,null,o.c,o.b)),t["\u0275did"](1,49152,null,0,r.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Discovery Authentication"])),(l()(),t["\u0275eld"](4,0,null,1,89,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,88,"form",[["class","form-horizontal"],["name","discoveryForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,a.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,a.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,a.d,null,[a.l]),t["\u0275did"](9,16384,null,0,a.s,[[4,a.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,77,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](12,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](13,{"has-error":0}),(l()(),t["\u0275eld"](14,0,null,null,1,"label",[["class","control-label col-sm-4"],["for","user"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["User"])),(l()(),t["\u0275eld"](16,0,null,null,10,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,5,"input",[["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,18)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,18).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,18)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,18)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](18,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](20,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](22,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,I)),t["\u0275did"](24,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](26,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](27,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](28,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](29,{"has-error":0}),(l()(),t["\u0275eld"](30,0,null,null,1,"label",[["class","control-label col-sm-4"],["for","password"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Password"])),(l()(),t["\u0275eld"](32,0,null,null,16,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](33,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](34,0,null,null,5,"input",[["class","form-control"],["formControlName","password"],["id","password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,35)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,35).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,35)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,35)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](35,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](37,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](39,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275eld"](40,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](41,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,42).onClick()&&u),u},null,null)),t["\u0275did"](42,81920,null,0,d.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](43,0,null,null,1,"button",[["cdCopy2ClipboardButton","password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,44).onClick()&&u),u},null,null)),t["\u0275did"](44,81920,null,0,c.a,[t.ElementRef,t.Renderer2,p.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](46,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,k)),t["\u0275did"](48,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](49,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](50,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](51,{"has-error":0}),(l()(),t["\u0275eld"](52,0,null,null,2,"label",[["class","control-label col-sm-4"],["for","mutual_user"]],null,null,null,null,null)),(l()(),t["\u0275eld"](53,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Mutual User"])),(l()(),t["\u0275eld"](55,0,null,null,10,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](56,0,null,null,5,"input",[["class","form-control"],["formControlName","mutual_user"],["id","mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,57)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,57).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,57)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,57)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](57,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](59,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](61,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,E)),t["\u0275did"](63,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,F)),t["\u0275did"](65,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](66,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](67,278528,null,0,s.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](68,{"has-error":0}),(l()(),t["\u0275eld"](69,0,null,null,1,"label",[["class","control-label col-sm-4"],["for","mutual_password"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Mutual Password"])),(l()(),t["\u0275eld"](71,0,null,null,16,"div",[["class","col-sm-8"]],null,null,null,null,null)),(l()(),t["\u0275eld"](72,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](73,0,null,null,5,"input",[["class","form-control"],["formControlName","mutual_password"],["id","mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,74)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,74).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,74)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,74)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](74,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["\u0275prd"](1024,null,a.p,function(l){return[l]},[a.e]),t["\u0275did"](76,671744,null,0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,a.q,null,[a.j]),t["\u0275did"](78,16384,null,0,a.r,[[4,a.q]],null,null),(l()(),t["\u0275eld"](79,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](80,0,null,null,1,"button",[["cdPasswordButton","mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,81).onClick()&&u),u},null,null)),t["\u0275did"](81,81920,null,0,d.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](82,0,null,null,1,"button",[["cdCopy2ClipboardButton","mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==t["\u0275nov"](l,83).onClick()&&u),u},null,null)),t["\u0275did"](83,81920,null,0,c.a,[t.ElementRef,t.Renderer2,p.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,D)),t["\u0275did"](85,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,V)),t["\u0275did"](87,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](88,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](89,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,T)),t["\u0275did"](91,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](92,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["\u0275did"](93,49152,null,0,f.a,[s.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.bsModalRef),l(n,7,0,e.discoveryForm);var u=l(n,13,0,e.discoveryForm.showError("user",t["\u0275nov"](n,7)));l(n,12,0,"form-group",u),l(n,20,0,"user"),l(n,24,0,e.discoveryForm.showError("user",t["\u0275nov"](n,7),"required")),l(n,26,0,e.discoveryForm.showError("user",t["\u0275nov"](n,7),"pattern"));var i=l(n,29,0,e.discoveryForm.showError("password",t["\u0275nov"](n,7)));l(n,28,0,"form-group",i),l(n,37,0,"password"),l(n,42,0,"password"),l(n,44,0,"password"),l(n,46,0,e.discoveryForm.showError("password",t["\u0275nov"](n,7),"required")),l(n,48,0,e.discoveryForm.showError("password",t["\u0275nov"](n,7),"pattern"));var o=l(n,51,0,e.discoveryForm.showError("mutual_user",t["\u0275nov"](n,7)));l(n,50,0,"form-group",o),l(n,59,0,"mutual_user"),l(n,63,0,e.discoveryForm.showError("mutual_user",t["\u0275nov"](n,7),"required")),l(n,65,0,e.discoveryForm.showError("mutual_user",t["\u0275nov"](n,7),"pattern"));var r=l(n,68,0,e.discoveryForm.showError("mutual_password",t["\u0275nov"](n,7)));l(n,67,0,"form-group",r),l(n,76,0,"mutual_password"),l(n,81,0,"mutual_password"),l(n,83,0,"mutual_password"),l(n,85,0,e.discoveryForm.showError("mutual_password",t["\u0275nov"](n,7),"required")),l(n,87,0,e.discoveryForm.showError("mutual_password",t["\u0275nov"](n,7),"pattern")),l(n,91,0,e.hasPermission),l(n,93,0,"Cancel",e.bsModalRef.hide)},function(l,n){l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,17,0,t["\u0275nov"](n,22).ngClassUntouched,t["\u0275nov"](n,22).ngClassTouched,t["\u0275nov"](n,22).ngClassPristine,t["\u0275nov"](n,22).ngClassDirty,t["\u0275nov"](n,22).ngClassValid,t["\u0275nov"](n,22).ngClassInvalid,t["\u0275nov"](n,22).ngClassPending),l(n,34,0,t["\u0275nov"](n,39).ngClassUntouched,t["\u0275nov"](n,39).ngClassTouched,t["\u0275nov"](n,39).ngClassPristine,t["\u0275nov"](n,39).ngClassDirty,t["\u0275nov"](n,39).ngClassValid,t["\u0275nov"](n,39).ngClassInvalid,t["\u0275nov"](n,39).ngClassPending),l(n,56,0,t["\u0275nov"](n,61).ngClassUntouched,t["\u0275nov"](n,61).ngClassTouched,t["\u0275nov"](n,61).ngClassPristine,t["\u0275nov"](n,61).ngClassDirty,t["\u0275nov"](n,61).ngClassValid,t["\u0275nov"](n,61).ngClassInvalid,t["\u0275nov"](n,61).ngClassPending),l(n,73,0,t["\u0275nov"](n,78).ngClassUntouched,t["\u0275nov"](n,78).ngClassTouched,t["\u0275nov"](n,78).ngClassPristine,t["\u0275nov"](n,78).ngClassDirty,t["\u0275nov"](n,78).ngClassValid,t["\u0275nov"](n,78).ngClassInvalid,t["\u0275nov"](n,78).ngClassPending)})}function P(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-discovery-modal",[],null,null,null,N,w)),t["\u0275did"](1,114688,null,0,h.a,[v.a,b.a,y.a,C.a,_.a],null,null)],function(l,n){l(n,1,0)},null)}var x=t["\u0275ccf"]("cd-iscsi-target-discovery-modal",h.a,P,{},{},[])},cxJu:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("XED3");var t=function(){function l(l){this.rbdMirroringService=l}return l.prototype.ngOnInit=function(){var l=this;this.subs=this.rbdMirroringService.subscribeSummary(function(n){n&&(l.status=n.content_data.status)})},l.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},l}()},"e/kN":function(l,n,e){"use strict";e.d(n,"a",function(){return s});var t=e("LvDl"),u=(e("my5R"),e("0+/T")),i=(e("sne2"),e("uIqm"),e("x38r")),o=e("vCyI"),r=e("kvvV"),a=(e("+0ag"),e("G1/K"),e("aexS"),e("mSOc"),e("VTlA"),e("kn/O"),e("Sofw")),s=function(){function l(l,n,e,u,i,r,a,s,d,c){var p=this;this.authStorageService=l,this.i18n=n,this.iscsiService=e,this.taskListService=u,this.cephReleaseNamePipe=i,this.notAvailablePipe=r,this.summaryservice=a,this.modalService=s,this.taskWrapper=d,this.actionLabels=c,this.available=void 0,this.selection=new o.a,this.targets=[],this.builders={"iscsi/target/create":function(l){return{target_iqn:l.target_iqn}}},this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return"/block/iscsi/targets/create"},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return"/block/iscsi/targets/edit/"+p.selection.first().target_iqn},name:this.actionLabels.EDIT,disable:function(){return!p.selection.first()||!t.isUndefined(p.getEditDisableDesc())},disableDesc:function(){return p.getEditDisableDesc()}},{permission:"delete",icon:"fa-times",click:function(){return p.deleteIscsiTargetModal()},name:this.actionLabels.DELETE,disable:function(){return!p.selection.first()||!t.isUndefined(p.getDeleteDisableDesc())},disableDesc:function(){return p.getDeleteDisableDesc()}}]}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{name:this.i18n("Target"),prop:"target_iqn",flexGrow:2,cellTransformation:i.a.executing},{name:this.i18n("Portals"),prop:"cdPortals",flexGrow:2},{name:this.i18n("Images"),prop:"cdImages",flexGrow:2},{name:this.i18n("# Sessions"),prop:"info.num_sessions",pipe:this.notAvailablePipe,flexGrow:1}],this.iscsiService.status().subscribe(function(n){if(l.available=n.available,n.available)l.iscsiService.version().subscribe(function(n){l.cephIscsiConfigVersion=n.ceph_iscsi_config_version,l.taskListService.init(function(){return l.iscsiService.listTargets()},function(n){return l.prepareResponse(n)},function(n){return l.targets=n},function(){return l.onFetchError()},l.taskFilter,l.itemFilter,l.builders)}),l.iscsiService.settings().subscribe(function(n){l.settings=n});else{var e=l.summaryservice.getCurrentSummary(),t=l.cephReleaseNamePipe.transform(e.version);l.docsUrl="http://docs.ceph.com/docs/"+t+"/mgr/dashboard/#enabling-iscsi-management",l.status=n.message}})},l.prototype.ngOnDestroy=function(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()},l.prototype.getEditDisableDesc=function(){var l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):void 0},l.prototype.getDeleteDisableDesc=function(){var l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):l&&l.info&&l.info.num_sessions?this.i18n("Target has active sessions"):void 0},l.prototype.prepareResponse=function(l){return l.forEach(function(l){l.cdPortals=l.portals.map(function(l){return l.host+":"+l.ip}),l.cdImages=l.disks.map(function(l){return l.pool+"/"+l.image})}),l},l.prototype.onFetchError=function(){this.table.reset()},l.prototype.itemFilter=function(l,n){return l.target_iqn===n.metadata.target_iqn},l.prototype.taskFilter=function(l){return["iscsi/target/create","iscsi/target/edit","iscsi/target/delete"].includes(l.name)},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.deleteIscsiTargetModal=function(){var l=this,n=this.selection.first().target_iqn;this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:this.i18n("iSCSI target"),itemNames:[n],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new r.a("iscsi/target/delete",{target_iqn:n}),call:l.iscsiService.deleteTarget(n)})}}})},l.prototype.configureDiscoveryAuth=function(){this.modalService.show(a.a,{})},l}()},eF8U:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("Ip0R");e("jMP8"),e.d(n,"a",function(){return o}),e.d(n,"b",function(){return g});var o=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function r(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function a(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"select",[["class","form-control custom-select"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,1).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275eld"](6,0,null,null,2,"option",[],null,null,null,null,null)),t["\u0275did"](7,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](8,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,r)),t["\u0275did"](10,278528,null,0,i.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,3,0,e.setting),l(n,7,0,null),l(n,8,0,null),l(n,10,0,e.limits.values)},function(l,n){var e=n.component;l(n,0,0,t["\u0275inlineInterpolate"](1,"",e.setting,""),t["\u0275inlineInterpolate"](1,"",e.setting,""),t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function s(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,1)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,2).onChange(e.target.value)&&u),"input"===n&&(u=!1!==t["\u0275nov"](l,2).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,2).onTouched()&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](2,16384,null,0,u.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.C]),t["\u0275did"](4,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](6,16384,null,0,u.r,[[4,u.q]],null,null)],function(l,n){l(n,4,0,n.component.setting)},function(l,n){l(n,0,0,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function d(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,1)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null)],function(l,n){l(n,3,0,n.component.setting)},function(l,n){l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function c(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,21,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,9,"div",[["class","radio radio-inline"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,6,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,4)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,4).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,4)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,4)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,5).onChange()&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,5).onTouched()&&u),u},null,null)),t["\u0275did"](4,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](5,212992,null,0,u.w,[t.Renderer2,t.ElementRef,u.E,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.w]),t["\u0275did"](7,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](9,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275eld"](10,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Yes"])),(l()(),t["\u0275eld"](12,0,null,null,9,"div",[["class","radio radio-inline"]],null,null,null,null,null)),(l()(),t["\u0275eld"](13,0,null,null,6,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,14)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,14).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,14)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,14)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,15).onChange()&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,15).onTouched()&&u),u},null,null)),t["\u0275did"](14,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](15,212992,null,0,u.w,[t.Renderer2,t.ElementRef,u.E,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.w]),t["\u0275did"](17,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](19,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275eld"](20,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["No"]))],function(l,n){var e=n.component;l(n,5,0,e.setting,!0),l(n,7,0,e.setting),l(n,15,0,e.setting,!1),l(n,17,0,e.setting)},function(l,n){var e=n.component;l(n,3,0,e.setting+"True",t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,10,0,e.setting+"True"),l(n,13,0,e.setting+"False",t["\u0275nov"](n,19).ngClassUntouched,t["\u0275nov"](n,19).ngClassTouched,t["\u0275nov"](n,19).ngClassPristine,t["\u0275nov"](n,19).ngClassDirty,t["\u0275nov"](n,19).ngClassValid,t["\u0275nov"](n,19).ngClassInvalid,t["\u0275nov"](n,19).ngClassPending),l(n,20,0,e.setting+"False")})}function p(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,s)),t["\u0275did"](2,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,d)),t["\u0275did"](4,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,c)),t["\u0275did"](6,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,2,0,"int"===e.limits.type),l(n,4,0,"str"===e.limits.type),l(n,6,0,"bool"===e.limits.type)},null)}function m(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["Must be greater than or equal to ","."]))],null,function(l,n){l(n,2,0,n.component.limits.min)})}function f(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["Must be less than or equal to ","."]))],null,function(l,n){l(n,2,0,n.component.limits.max)})}function g(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,15,"div",[["class","form-group"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,3).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,3).onReset()&&u),u},null,null)),t["\u0275did"](1,278528,null,0,i.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),t["\u0275did"](3,540672,null,0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](5,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](6,0,null,null,1,"label",[["class","col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["\u0275ted"](7,null,["",""])),(l()(),t["\u0275and"](16777216,null,null,1,null,a)),t["\u0275did"](9,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,p)),t["\u0275did"](11,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,m)),t["\u0275did"](13,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,f)),t["\u0275did"](15,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.settingsForm.showError(e.setting,e.formDir));l(n,1,0,"form-group",t),l(n,3,0,e.settingsForm),l(n,9,0,"enum"===e.limits.type),l(n,11,0,"enum"!==e.limits.type),l(n,13,0,e.settingsForm.showError(e.setting,e.formDir,"min")),l(n,15,0,e.settingsForm.showError(e.setting,e.formDir,"max"))},function(l,n){var e=n.component;l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending),l(n,6,0,t["\u0275inlineInterpolate"](1,"",e.setting,"")),l(n,7,0,e.setting)})}},gr3l:function(l,n,e){"use strict";e.d(n,"a",function(){return m});var t=e("gIcY"),u=e("LvDl"),i=e("VNr4"),o=(e("my5R"),e("F83c"),e("DNAf")),r=e("a96k"),a=(e("sne2"),e("QFaf")),s=e("1Ni5"),d=e("kvvV"),c=(e("kn/O"),e("Z4cD")),p=e("a6qe"),m=function(){function l(l,n,e,t,u,i,r,a){this.iscsiService=l,this.modalService=n,this.rbdService=e,this.router=t,this.route=u,this.i18n=i,this.taskWrapper=r,this.actionLabels=a,this.api_version=0,this.minimum_gateways=1,this.isEdit=!1,this.portalsSelections=[],this.imagesInitiatorSelections=[],this.groupDiskSelections=[],this.groupMembersSelections=[],this.imagesSettings={},this.messages={portals:new o.a({noOptions:this.i18n("There are no portals available.")},this.i18n),images:new o.a({noOptions:this.i18n("There are no images available.")},this.i18n),initiatorImage:new o.a({noOptions:this.i18n("There are no images available. Please make sure you add an image to the target.")},this.i18n),groupInitiator:new o.a({noOptions:this.i18n("There are no initiators available. Please make sure you add an initiator to the target.")},this.i18n)},this.IQN_REGEX=/^iqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+)*$/,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.resource=this.i18n("target")}return l.prototype.ngOnInit=function(){var l=this,n=[this.iscsiService.listTargets(),this.rbdService.list(),this.iscsiService.portals(),this.iscsiService.settings(),this.iscsiService.version()];this.router.url.startsWith("/block/iscsi/targets/edit")&&(this.isEdit=!0,this.route.params.subscribe(function(e){l.target_iqn=decodeURIComponent(e.target_iqn),n.push(l.iscsiService.getTarget(l.target_iqn))})),this.action=this.isEdit?this.actionLabels.EDIT:this.actionLabels.CREATE,Object(i.a)(n).subscribe(function(n){var e=u(n[0]).filter(function(n){return n.target_iqn!==l.target_iqn}).flatMap(function(l){return l.disks}).map(function(l){return l.pool+"/"+l.image}).value();"api_version"in n[3]&&(l.api_version=n[3].api_version),l.minimum_gateways=n[3].config.minimum_gateways,l.target_default_controls=n[3].target_default_controls,l.target_controls_limits=n[3].target_controls_limits,l.disk_default_controls=n[3].disk_default_controls,l.disk_controls_limits=n[3].disk_controls_limits,l.backstores=n[3].backstores,l.default_backstore=n[3].default_backstore,l.unsupported_rbd_features=n[3].unsupported_rbd_features,l.required_rbd_features=n[3].required_rbd_features,l.imagesAll=u(n[1]).flatMap(function(l){return l.value}).filter(function(n){return-1===e.indexOf(n.pool_name+"/"+n.name)&&0!==l.getValidBackstores(n).length}).value(),l.imagesSelections=l.imagesAll.map(function(l){return new r.a(!1,l.pool_name+"/"+l.name,"")});var t=[];n[2].forEach(function(l){l.ip_addresses.forEach(function(n){t.push(new r.a(!1,l.name+":"+n,""))})}),l.portalsSelections=t.slice(),l.cephIscsiConfigVersion=n[4].ceph_iscsi_config_version,l.createForm(),n[5]&&l.resolveModel(n[5])})},l.prototype.createForm=function(){var l=this;if(this.targetForm=new a.a({target_iqn:new t.i("iqn.2001-07.com.ceph:"+Date.now(),{validators:[t.A.required,t.A.pattern(this.IQN_REGEX)]}),target_controls:new t.i({}),portals:new t.i([],{validators:[s.a.custom("minGateways",function(n){return u.uniq(n.map(function(l){return l.split(":")[0]})).length10){var n=new a.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")});this.setAuthValidator(n),this.targetForm.addControl("auth",n)}},l.prototype.resolveModel=function(l){var n=this;this.targetForm.patchValue({target_iqn:l.target_iqn,target_controls:l.target_controls,acl_enabled:l.acl_enabled}),this.cephIscsiConfigVersion>10&&this.targetForm.patchValue({auth:l.auth});var e=[];u.forEach(l.portals,function(l){e.push(l.host+":"+l.ip)}),this.targetForm.patchValue({portals:e});var t=[];u.forEach(l.disks,function(l){var e=l.pool+"/"+l.image;t.push(e),n.imagesSettings[e]={backstore:l.backstore},n.imagesSettings[e][l.backstore]=l.controls,"lun"in l&&(n.imagesSettings[e].lun=l.lun),"wwn"in l&&(n.imagesSettings[e].wwn=l.wwn),n.onImageSelection({option:{name:e,selected:!0}})}),this.targetForm.patchValue({disks:t}),u.forEach(l.clients,function(l){var e=n.addInitiator();l.luns=u.map(l.luns,function(l){return l.pool+"/"+l.image}),e.patchValue(l)}),u.forEach(l.groups,function(l){var e=n.addGroup();l.disks=u.map(l.disks,function(l){return l.pool+"/"+l.image}),e.patchValue(l),u.forEach(l.members,function(l){n.onGroupMemberSelection({option:new r.a(!0,l,"")})})})},l.prototype.hasAdvancedSettings=function(l){return Object.values(l).length>0},Object.defineProperty(l.prototype,"portals",{get:function(){return this.targetForm.get("portals")},enumerable:!0,configurable:!0}),l.prototype.onPortalSelection=function(){this.portals.setValue(this.portals.value)},l.prototype.removePortal=function(l,n){return this.portalsSelections.forEach(function(l){l.name===n&&(l.selected=!1)}),this.portals.value.splice(l,1),this.portals.setValue(this.portals.value),!1},Object.defineProperty(l.prototype,"disks",{get:function(){return this.targetForm.get("disks")},enumerable:!0,configurable:!0}),l.prototype.removeImage=function(l,n){return this.imagesSelections.forEach(function(l){l.name===n&&(l.selected=!1)}),this.disks.value.splice(l,1),this.removeImageRefs(n),this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1}),!1},l.prototype.removeImageRefs=function(l){var n=this;this.initiators.controls.forEach(function(n){var e=n.value.luns.filter(function(n){return n!==l});n.get("luns").setValue(e)}),this.groups.controls.forEach(function(n){var e=n.value.disks.filter(function(n){return n!==l});n.get("disks").setValue(e)}),u.forEach(this.imagesInitiatorSelections,function(e,t){n.imagesInitiatorSelections[t]=e.filter(function(n){return n.name!==l})}),u.forEach(this.groupDiskSelections,function(e,t){n.groupDiskSelections[t]=e.filter(function(n){return n.name!==l})})},l.prototype.getDefaultBackstore=function(l){var n=this,e=this.default_backstore,t=this.getImageById(l);return this.validFeatures(t,this.default_backstore)||this.backstores.forEach(function(l){l!==n.default_backstore&&n.validFeatures(t,l)&&(e=l)}),e},l.prototype.isLunIdInUse=function(l,n){var e=this.disks.value.filter(function(l){return l!==n});return this.getLunIds(e).includes(l)},l.prototype.getLunIds=function(l){var n=this;return u.map(l,function(l){return n.imagesSettings[l].lun})},l.prototype.nextLunId=function(l){for(var n=this.disks.value.filter(function(n){return n!==l}),e=this.getLunIds(n),t=0;e.includes(t);)t++;return t},l.prototype.getWwns=function(l){var n=this;return u.map(l,function(l){return n.imagesSettings[l].wwn}).filter(function(l){return u.isString(l)&&""!==l})},l.prototype.onImageSelection=function(l){var n=this,e=l.option;if(e.selected){if(this.imagesSettings[e.name])this.isLunIdInUse(this.imagesSettings[e.name].lun,e.name)&&(this.imagesSettings[e.name].lun=this.nextLunId(e.name));else{var t=this.getDefaultBackstore(e.name);this.imagesSettings[e.name]={backstore:t,lun:this.nextLunId(e.name)},this.imagesSettings[e.name][t]={}}u.forEach(this.imagesInitiatorSelections,function(l,t){l.push(new r.a(!1,e.name,"")),n.imagesInitiatorSelections[t]=l.slice()}),u.forEach(this.groupDiskSelections,function(l,t){l.push(new r.a(!1,e.name,"")),n.groupDiskSelections[t]=l.slice()})}else this.removeImageRefs(e.name);this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1})},Object.defineProperty(l.prototype,"initiators",{get:function(){return this.targetForm.get("initiators")},enumerable:!0,configurable:!0}),l.prototype.addInitiator=function(){var l=this,n=new a.a({client_iqn:new t.i("",{validators:[t.A.required,s.a.custom("notUnique",function(n){var e=l.initiators.controls.reduce(function(l,n){return l.concat(n.value.client_iqn)},[]);return e.indexOf(n)!==e.lastIndexOf(n)}),t.A.pattern(this.IQN_REGEX)]}),auth:new a.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")}),luns:new t.i([]),cdIsInGroup:new t.i(!1)});this.setAuthValidator(n),this.initiators.push(n),u.forEach(this.groupMembersSelections,function(n,e){n.push(new r.a(!1,"","")),l.groupMembersSelections[e]=n.slice()});var e=u.map(this.targetForm.getValue("disks"),function(l){return new r.a(!1,l,"")});return this.imagesInitiatorSelections.push(e),n},l.prototype.setAuthValidator=function(l){s.a.validateIf(l.get("user"),function(){return l.getValue("password")||l.getValue("mutual_user")||l.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[l.get("password"),l.get("mutual_user"),l.get("mutual_password")]),s.a.validateIf(l.get("password"),function(){return l.getValue("user")||l.getValue("mutual_user")||l.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("mutual_user"),l.get("mutual_password")]),s.a.validateIf(l.get("mutual_user"),function(){return l.getValue("mutual_password")},[t.A.required],[t.A.pattern(this.USER_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_password")]),s.a.validateIf(l.get("mutual_password"),function(){return l.getValue("mutual_user")},[t.A.required],[t.A.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_user")])},l.prototype.removeInitiator=function(l){var n=this,e=this.initiators.value[l];this.initiators.removeAt(l),u.forEach(this.groupMembersSelections,function(e,t){e.splice(l,1),n.groupMembersSelections[t]=e.slice()}),this.groups.controls.forEach(function(l){var n=l.value.members.filter(function(l){return l!==e.client_iqn});l.get("members").setValue(n)}),this.imagesInitiatorSelections.splice(l,1)},l.prototype.updatedInitiatorSelector=function(){var l=this;this.initiators.controls.forEach(function(l){l.get("client_iqn").updateValueAndValidity({emitEvent:!1})}),u.forEach(this.groupMembersSelections,function(n,e){u.forEach(n,function(n,e){var t=n.name;n.name=l.initiators.controls[e].value.client_iqn,l.groups.controls.forEach(function(l){var e=l.value.members,u=e.indexOf(t);-1!==u&&(e[u]=n.name),l.get("members").setValue(e)})}),l.groupMembersSelections[e]=l.groupMembersSelections[e].slice()})},l.prototype.removeInitiatorImage=function(l,n,e,t){var u=l.getValue("luns");return u.splice(n,1),l.patchValue({luns:u}),this.imagesInitiatorSelections[e].forEach(function(l){l.name===t&&(l.selected=!1)}),!1},Object.defineProperty(l.prototype,"groups",{get:function(){return this.targetForm.get("groups")},enumerable:!0,configurable:!0}),l.prototype.addGroup=function(){var l=new a.a({group_id:new t.i("",{validators:[t.A.required]}),members:new t.i([]),disks:new t.i([])});this.groups.push(l);var n=u.map(this.targetForm.getValue("disks"),function(l){return new r.a(!1,l,"")});this.groupDiskSelections.push(n);var e=u.map(this.initiators.value,function(l){return new r.a(!1,l.client_iqn,"",!l.cdIsInGroup)});return this.groupMembersSelections.push(e),l},l.prototype.removeGroup=function(l){this.groups.removeAt(l),this.groupDiskSelections.splice(l,1)},l.prototype.onGroupMemberSelection=function(l){var n,e=l.option;this.initiators.controls.forEach(function(l,t){l.value.client_iqn===e.name&&(l.patchValue({luns:[]}),l.get("cdIsInGroup").setValue(e.selected),n=t)}),u.forEach(this.groupMembersSelections,function(l){l[n].enabled=!e.selected})},l.prototype.removeGroupInitiator=function(l,n,e){var t=l.getValue("members")[n];l.getValue("members").splice(n,1),this.groupMembersSelections[e].forEach(function(l){l.name===t&&(l.selected=!1)}),this.groupMembersSelections[e]=this.groupMembersSelections[e].slice(),this.onGroupMemberSelection({option:new r.a(!1,t,"")})},l.prototype.removeGroupDisk=function(l,n,e){var t=l.getValue("disks")[n];l.getValue("disks").splice(n,1),this.groupDiskSelections[e].forEach(function(l){l.name===t&&(l.selected=!1)}),this.groupDiskSelections[e]=this.groupDiskSelections[e].slice()},l.prototype.submit=function(){var l,n=this,e=u.cloneDeep(this.targetForm.value),t={target_iqn:this.targetForm.getValue("target_iqn"),target_controls:this.targetForm.getValue("target_controls"),acl_enabled:this.targetForm.getValue("acl_enabled"),portals:[],disks:[],clients:[],groups:[]};if(this.cephIscsiConfigVersion>10){var i=this.targetForm.get("auth");i.getValue("user")||i.get("user").setValue(""),i.getValue("password")||i.get("password").setValue(""),i.getValue("mutual_user")||i.get("mutual_user").setValue(""),i.getValue("mutual_password")||i.get("mutual_password").setValue("");var o=this.targetForm.getValue("acl_enabled");t.auth={user:o?"":i.getValue("user"),password:o?"":i.getValue("password"),mutual_user:o?"":i.getValue("mutual_user"),mutual_password:o?"":i.getValue("mutual_password")}}e.disks.forEach(function(l){var e=l.split("/"),u=n.imagesSettings[l].backstore;t.disks.push({pool:e[0],image:e[1],backstore:u,controls:n.imagesSettings[l][u],lun:n.imagesSettings[l].lun,wwn:n.imagesSettings[l].wwn})}),e.portals.forEach(function(l){var n=l.indexOf(":");t.portals.push({host:l.substring(0,n),ip:l.substring(n+1)})}),t.acl_enabled&&(e.initiators.forEach(function(l){l.auth.user||(l.auth.user=""),l.auth.password||(l.auth.password=""),l.auth.mutual_user||(l.auth.mutual_user=""),l.auth.mutual_password||(l.auth.mutual_password=""),delete l.cdIsInGroup;var n=[];l.luns.forEach(function(l){var e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.luns=n}),t.clients=e.initiators),t.acl_enabled&&(e.groups.forEach(function(l){var n=[];l.disks.forEach(function(l){var e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.disks=n}),t.groups=e.groups),this.isEdit?(t.new_target_iqn=t.target_iqn,t.target_iqn=this.target_iqn,l=this.taskWrapper.wrapTaskAroundCall({task:new d.a("iscsi/target/edit",{target_iqn:t.target_iqn}),call:this.iscsiService.updateTarget(this.target_iqn,t)})):l=this.taskWrapper.wrapTaskAroundCall({task:new d.a("iscsi/target/create",{target_iqn:t.target_iqn}),call:this.iscsiService.createTarget(t)}),l.subscribe(void 0,function(){n.targetForm.setErrors({cdSubmitButton:!0})},function(){return n.router.navigate(["/block/iscsi/targets"])})},l.prototype.targetSettingsModal=function(){var l={target_controls:this.targetForm.get("target_controls"),target_default_controls:this.target_default_controls,target_controls_limits:this.target_controls_limits};this.modalRef=this.modalService.show(p.a,{initialState:l})},l.prototype.imageSettingsModal=function(l){var n={imagesSettings:this.imagesSettings,image:l,api_version:this.api_version,disk_default_controls:this.disk_default_controls,disk_controls_limits:this.disk_controls_limits,backstores:this.getValidBackstores(this.getImageById(l)),control:this.targetForm.get("disks")};this.modalRef=this.modalService.show(c.a,{initialState:n})},l.prototype.validFeatures=function(l,n){var e=l.features,t=this.required_rbd_features[n];return(e&t)===t&&0==(e&this.unsupported_rbd_features[n])},l.prototype.getImageById=function(l){return this.imagesAll.find(function(n){return l===n.pool_name+"/"+n.name})},l.prototype.getValidBackstores=function(l){var n=this;return this.backstores.filter(function(e){return n.validFeatures(l,e)})},l}()},jMP8:function(l,n,e){"use strict";e.d(n,"a",function(){return u});var t=e("gIcY"),u=(e("QFaf"),function(){function l(){}return l.prototype.ngOnInit=function(){var l=[];"min"in this.limits&&l.push(t.A.min(this.limits.min)),"max"in this.limits&&l.push(t.A.max(this.limits.max)),this.settingsForm.get(this.setting).setValidators(l)},l}())},"k/xb":function(l,n,e){"use strict";e.d(n,"a",function(){return u}),e.d(n,"b",function(){return v}),e.d(n,"c",function(){return i}),e.d(n,"d",function(){return o}),e.d(n,"g",function(){return r}),e.d(n,"h",function(){return a}),e.d(n,"i",function(){return s}),e.d(n,"j",function(){return d}),e.d(n,"k",function(){return c}),e.d(n,"l",function(){return p}),e.d(n,"m",function(){return m}),e.d(n,"n",function(){return f}),e.d(n,"e",function(){return g}),e.d(n,"f",function(){return h});var t=e("sne2"),u=(e("Vhfg"),e("gr3l"),e("e/kN"),e("roDX"),e("cxJu"),e("MyVl"),e("wG1H"),function(){return function(){}}()),i={breadcrumbs:"Images"},o={breadcrumbs:t.a.CREATE},r={breadcrumbs:t.a.EDIT},a={breadcrumbs:t.a.CLONE},s={breadcrumbs:t.a.COPY},d={breadcrumbs:t.a.COPY},c={breadcrumbs:"Mirroring"},p={breadcrumbs:"iSCSI"},m={breadcrumbs:"Overview"},f={breadcrumbs:"Targets"},g={breadcrumbs:t.a.CREATE},h={breadcrumbs:t.a.EDIT},v=function(){return function(){}}()},kccj:function(l,n,e){"use strict";e.d(n,"a",function(){return t});var t=function(){return function(){}}()},l7Jr:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("eF8U"),o=e("jMP8"),r=e("EEJc"),a=e("ajRT"),s=e("gIcY"),d=e("gp3X"),c=e("sb0X"),p=e("KVJa"),m=e("Z21x"),f=e("sne2"),g=e("a6qe"),h=e("DQlY"),v=e("my5R");e.d(n,"a",function(){return w});var b=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"div",[["class","form-group row"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,u.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"cd-iscsi-setting",[],null,null,null,i.b,i.a)),t["\u0275did"](5,114688,null,0,o.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],function(l,n){var e=n.component,u=l(n,2,0,e.settingsForm.showError(n.context.$implicit.key,t["\u0275nov"](n.parent,7)));l(n,1,0,"form-group row",u),l(n,5,0,e.settingsForm,t["\u0275nov"](n.parent,7),n.context.$implicit.key,e.getTargetControlLimits(n.context.$implicit.key))},null)}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,22,"cd-modal",[],null,null,null,r.c,r.b)),t["\u0275did"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Advanced Settings"])),(l()(),t["\u0275eld"](4,0,null,1,18,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,17,"form",[["class","form"],["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,s.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,s.d,null,[s.l]),t["\u0275did"](9,16384,null,0,s.s,[[4,s.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,5,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["\u0275and"](16777216,null,null,2,null,y)),t["\u0275did"](14,278528,null,0,u.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pid"](0,u.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["\u0275eld"](16,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t},d.b,d.a)),t["\u0275did"](19,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Confirm"])),(l()(),t["\u0275eld"](21,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,p.b,p.a)),t["\u0275did"](22,49152,null,0,m.a,[u.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.settingsForm),l(n,14,0,t["\u0275unv"](n,14,0,t["\u0275nov"](n,15).transform(e.settingsForm.controls))),l(n,19,0,e.settingsForm),l(n,22,0,"Cancel",e.modalRef.hide)},function(l,n){l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-iqn-settings-modal",[],null,null,null,C,b)),t["\u0275did"](1,114688,null,0,g.a,[h.a,v.a],null,null)],function(l,n){l(n,1,0)},null)}var w=t["\u0275ccf"]("cd-iscsi-target-iqn-settings-modal",g.a,_,{},{},[])},"lz+O":function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("Ip0R"),o=e("EEJc"),r=e("ajRT"),a=e("gp3X"),s=e("sb0X"),d=e("KVJa"),c=e("Z21x"),p=e("sne2"),m=e("WxU5"),f=e("aexS"),g=e("F83c"),h=e("DQlY"),v=e("2EZI"),b=e("Ekvf"),y=e("kn/O");e.d(n,"a",function(){return k});var C=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"input",[["class","form-control"],["formControlName","poolName"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,1)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,1)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null)],function(l,n){l(n,3,0,"poolName")},function(l,n){l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"select",[["class","form-control"],["formControlName","poolName"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,1).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,1).onTouched()&&u),u},null,null)),t["\u0275did"](1,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](3,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](5,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275eld"](6,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),t["\u0275did"](7,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](8,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["All"])),(l()(),t["\u0275and"](16777216,null,null,1,null,w)),t["\u0275did"](11,278528,null,0,i.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,3,0,"poolName"),l(n,7,0,""),l(n,8,0,""),l(n,11,0,e.pools)},function(l,n){l(n,0,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,37,"cd-modal",[],null,null,null,o.c,o.b)),t["\u0275did"](1,49152,null,0,r.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Purge Trash"])),(l()(),t["\u0275eld"](4,0,null,1,33,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,32,"form",[["class","form"],["name","purgeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,u.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](9,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,20,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To purge, select one or"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["All"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](18,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["pools and click"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](21,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Purge Trash"])),(l()(),t["\u0275ted"](-1,null,[".\xa0 "])),(l()(),t["\u0275eld"](24,0,null,null,6,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](25,0,null,null,1,"label",[["class","center-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Pool:"])),(l()(),t["\u0275and"](16777216,null,null,1,null,_)),t["\u0275did"](28,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,I)),t["\u0275did"](30,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](31,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](32,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](33,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.purge()&&t),t},a.b,a.a)),t["\u0275did"](34,114688,null,0,s.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Purge Trash"])),(l()(),t["\u0275eld"](36,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,d.b,d.a)),t["\u0275did"](37,49152,null,0,c.a,[i.Location,p.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.purgeForm),l(n,28,0,!e.poolPermission.read),l(n,30,0,e.poolPermission.read),l(n,34,0,e.purgeForm),l(n,37,0,"Cancel",e.modalRef.hide)},function(l,n){l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rbd-trash-purge-modal",[],null,null,null,R,C)),t["\u0275did"](1,114688,null,0,m.a,[f.a,g.a,h.a,v.a,b.a,y.a],null,null)],function(l,n){l(n,1,0)},null)}var k=t["\u0275ccf"]("cd-rbd-trash-purge-modal",m.a,S,{},{},[])},my5R:function(l,n,e){"use strict";e.d(n,"a",function(){return a});var t=e("mrSG"),u=e("t/Na"),i=e("xTzq"),o=e("CcnG"),r=e("pL04"),a=function(){function l(l){this.http=l}return l.prototype.listTargets=function(){return this.http.get("api/iscsi/target")},l.prototype.getTarget=function(l){return this.http.get("api/iscsi/target/"+l)},l.prototype.updateTarget=function(l,n){return this.http.put("api/iscsi/target/"+l,n,{observe:"response"})},l.prototype.status=function(){return this.http.get("ui-api/iscsi/status")},l.prototype.settings=function(){return this.http.get("ui-api/iscsi/settings")},l.prototype.version=function(){return this.http.get("ui-api/iscsi/version")},l.prototype.portals=function(){return this.http.get("ui-api/iscsi/portals")},l.prototype.createTarget=function(l){return this.http.post("api/iscsi/target",l,{observe:"response"})},l.prototype.deleteTarget=function(l){return this.http.delete("api/iscsi/target/"+l,{observe:"response"})},l.prototype.getDiscovery=function(){return this.http.get("api/iscsi/discoveryauth")},l.prototype.updateDiscovery=function(l){return this.http.put("api/iscsi/discoveryauth",l)},l.prototype.overview=function(){return this.http.get("ui-api/iscsi/overview")},l.ngInjectableDef=o.defineInjectable({factory:function(){return new l(o.inject(u.c))},token:l,providedIn:r.a}),l=t.__decorate([i.a,t.__metadata("design:paramtypes",[u.c])],l)}()},nP0W:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("EEJc"),o=e("ajRT"),r=e("Ip0R"),a=e("gp3X"),s=e("sb0X"),d=e("KVJa"),c=e("Z21x"),p=e("sne2"),m=e("aa9H"),f=e("DQlY"),g=e("Jm/i"),h=e("XED3"),v=e("kn/O");e.d(n,"a",function(){return I});var b=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.id),l(n,2,0,n.context.$implicit.id)},function(l,n){l(n,3,0,n.context.$implicit.name)})}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Peer clusters must be removed prior to disabling mirror."]))],null,null)}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,42,"cd-modal",[],null,null,null,i.c,i.b)),t["\u0275did"](1,49152,null,0,o.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Edit pool mirror mode"])),(l()(),t["\u0275eld"](4,0,null,1,38,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,37,"form",[["class","form"],["name","editModeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,7).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,7).onReset()&&u),u},null,null)),t["\u0275did"](6,16384,null,0,u.D,[],null,null),t["\u0275did"](7,540672,[["formDir",4]],0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](9,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](10,0,null,null,25,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,8,"p",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,7,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["To edit the mirror mode for pool\xa0 "])),(l()(),t["\u0275eld"](14,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](15,null,["",""])),(l()(),t["\u0275ted"](-1,null,[", select a new mode from the list and click\xa0 "])),(l()(),t["\u0275eld"](17,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Update"])),(l()(),t["\u0275ted"](-1,null,["."])),(l()(),t["\u0275eld"](20,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](21,278528,null,0,r.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](22,{"has-error":0}),(l()(),t["\u0275eld"](23,0,null,null,2,"label",[["class","control-label"],["for","mirrorMode"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Mode"])),(l()(),t["\u0275eld"](26,0,null,null,7,"select",[["class","form-control"],["formControlName","mirrorMode"],["id","mirrorMode"],["name","mirrorMode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,27).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,27).onTouched()&&u),u},null,null)),t["\u0275did"](27,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](29,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](31,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](33,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,C)),t["\u0275did"](35,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](36,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](37,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t},a.b,a.a)),t["\u0275did"](39,114688,null,0,s.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Update"])),(l()(),t["\u0275eld"](41,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,d.b,d.a)),t["\u0275did"](42,49152,null,0,c.a,[r.Location,p.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.editModeForm);var u=l(n,22,0,e.editModeForm.showError("mirrorMode",t["\u0275nov"](n,7)));l(n,21,0,"form-group",u),l(n,29,0,"mirrorMode"),l(n,33,0,e.mirrorModes),l(n,35,0,e.editModeForm.showError("mirrorMode",t["\u0275nov"](n,7),"cannotDisable")),l(n,39,0,e.editModeForm),l(n,42,0,"Cancel",e.modalRef.hide)},function(l,n){var e=n.component;l(n,5,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending),l(n,15,0,e.poolName),l(n,26,0,t["\u0275nov"](n,31).ngClassUntouched,t["\u0275nov"](n,31).ngClassTouched,t["\u0275nov"](n,31).ngClassPristine,t["\u0275nov"](n,31).ngClassDirty,t["\u0275nov"](n,31).ngClassValid,t["\u0275nov"](n,31).ngClassInvalid,t["\u0275nov"](n,31).ngClassPending)})}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-pool-edit-mode-modal",[],null,null,null,_,b)),t["\u0275did"](1,245760,null,0,m.a,[f.a,g.a,h.a,v.a],null,null)],function(l,n){l(n,1,0)},null)}var I=t["\u0275ccf"]("cd-pool-edit-mode-modal",m.a,w,{},{},[])},nhAp:function(l,n,e){"use strict";var t=e("CcnG"),u=e("gIcY"),i=e("Ip0R"),o=e("eF8U"),r=e("jMP8"),a=e("uYzU"),s=e("EEJc"),d=e("ajRT"),c=e("gp3X"),p=e("sb0X"),m=e("KVJa"),f=e("Z21x"),g=e("sne2"),h=e("Z4cD"),v=e("DQlY"),b=e("my5R");e.d(n,"a",function(){return F});var y=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function _(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,27,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Identifier"])),(l()(),t["\u0275eld"](3,0,null,null,14,"div",[["class","form-group row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,13,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,3,"label",[["class","col-form-label"],["for","lun"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["lun"])),(l()(),t["\u0275eld"](8,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,6,"input",[["class","form-control"],["formControlName","lun"],["id","lun"],["name","lun"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,10)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,10).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,10)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,10)._compositionEnd(e.target.value)&&u),"change"===n&&(u=!1!==t["\u0275nov"](l,11).onChange(e.target.value)&&u),"input"===n&&(u=!1!==t["\u0275nov"](l,11).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,11).onTouched()&&u),u},null,null)),t["\u0275did"](10,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275did"](11,16384,null,0,u.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l,n){return[l,n]},[u.e,u.C]),t["\u0275did"](13,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](15,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,C)),t["\u0275did"](17,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](18,0,null,null,9,"div",[["class","form-group row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,8,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,1,"label",[["class","col-form-label"],["for","wwn"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["wwn"])),(l()(),t["\u0275eld"](22,0,null,null,5,"input",[["class","form-control"],["formControlName","wwn"],["id","wwn"],["name","wwn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var u=!0;return"input"===n&&(u=!1!==t["\u0275nov"](l,23)._handleInput(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,23).onTouched()&&u),"compositionstart"===n&&(u=!1!==t["\u0275nov"](l,23)._compositionStart()&&u),"compositionend"===n&&(u=!1!==t["\u0275nov"](l,23)._compositionEnd(e.target.value)&&u),u},null,null)),t["\u0275did"](23,16384,null,0,u.e,[t.Renderer2,t.ElementRef,[2,u.b]],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.e]),t["\u0275did"](25,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](27,16384,null,0,u.r,[[4,u.q]],null,null)],function(l,n){var e=n.component;l(n,13,0,"lun"),l(n,17,0,e.settingsForm.showError("lun",t["\u0275nov"](n.parent,12),"required")),l(n,25,0,"wwn")},function(l,n){l(n,9,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending),l(n,22,0,t["\u0275nov"](n,27).ngClassUntouched,t["\u0275nov"](n,27).ngClassTouched,t["\u0275nov"](n,27).ngClassPristine,t["\u0275nov"](n,27).ngClassDirty,t["\u0275nov"](n,27).ngClassValid,t["\u0275nov"](n,27).ngClassInvalid,t["\u0275nov"](n,27).ngClassPending)})}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,u.v,[t.ElementRef,t.Renderer2,[2,u.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,u.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""])),t["\u0275ppd"](4,1)],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){var e=t["\u0275unv"](n,3,0,l(n,4,0,t["\u0275nov"](n.parent,0),n.context.$implicit));l(n,3,0,e)})}function I(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"div",[["class","form-group row"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,i.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"cd-iscsi-setting",[],null,null,null,o.b,o.a)),t["\u0275did"](5,114688,null,0,r.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],function(l,n){var e=n.component,u=l(n,2,0,e.settingsForm.showError(n.context.$implicit.key,t["\u0275nov"](n.parent.parent.parent,12)));l(n,1,0,"form-group row",u),l(n,5,0,e.settingsForm,t["\u0275nov"](n.parent.parent.parent,12),n.context.$implicit.key,e.getDiskControlLimits(n.parent.parent.context.$implicit,n.context.$implicit.key))},null)}function R(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,2,null,I)),t["\u0275did"](2,278528,null,0,i.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pid"](0,i.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){var e=n.component;l(n,2,0,t["\u0275unv"](n,2,0,t["\u0275nov"](n,3).transform(e.disk_default_controls[n.parent.context.$implicit])))},null)}function S(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,R)),t["\u0275did"](2,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,2,0,n.component.settingsForm.value.backstore===n.context.$implicit)},null)}function k(l){return t["\u0275vid"](0,[t["\u0275pid"](0,a.a,[]),(l()(),t["\u0275eld"](1,0,null,null,41,"cd-modal",[],null,null,null,s.c,s.b)),t["\u0275did"](2,49152,null,0,d.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["\u0275eld"](3,0,null,0,5,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Configure"])),(l()(),t["\u0275ted"](-1,null,["\xa0 "])),(l()(),t["\u0275eld"](7,0,null,null,1,"small",[],null,null,null,null,null)),(l()(),t["\u0275ted"](8,null,["",""])),(l()(),t["\u0275eld"](9,0,null,1,33,null,null,null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,32,"form",[["class","form"],["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var u=!0;return"submit"===n&&(u=!1!==t["\u0275nov"](l,12).onSubmit(e)&&u),"reset"===n&&(u=!1!==t["\u0275nov"](l,12).onReset()&&u),u},null,null)),t["\u0275did"](11,16384,null,0,u.D,[],null,null),t["\u0275did"](12,540672,[["formDir",4]],0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,u.d,null,[u.l]),t["\u0275did"](14,16384,null,0,u.s,[[4,u.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,20,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["\u0275and"](16777216,null,null,1,null,_)),t["\u0275did"](19,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](20,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Settings"])),(l()(),t["\u0275eld"](22,0,null,null,11,"div",[["class","form-group row"]],null,null,null,null,null)),(l()(),t["\u0275eld"](23,0,null,null,10,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,1,"label",[["class","control-label"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Backstore"])),(l()(),t["\u0275eld"](26,0,null,null,7,"select",[["class","form-control"],["formControlName","backstore"],["id","backstore"],["name","backstore"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==t["\u0275nov"](l,27).onChange(e.target.value)&&u),"blur"===n&&(u=!1!==t["\u0275nov"](l,27).onTouched()&&u),u},null,null)),t["\u0275did"](27,16384,null,0,u.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,u.p,function(l){return[l]},[u.z]),t["\u0275did"](29,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,u.q,null,[u.j]),t["\u0275did"](31,16384,null,0,u.r,[[4,u.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,w)),t["\u0275did"](33,278528,null,0,i.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,S)),t["\u0275did"](35,278528,null,0,i.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](36,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](37,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t},c.b,c.a)),t["\u0275did"](39,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](-1,0,["Confirm"])),(l()(),t["\u0275eld"](41,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["\u0275did"](42,49152,null,0,f.a,[i.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],function(l,n){var e=n.component;l(n,2,0,e.modalRef),l(n,12,0,e.settingsForm),l(n,19,0,e.api_version>=1),l(n,29,0,"backstore"),l(n,33,0,e.backstores),l(n,35,0,e.backstores),l(n,39,0,e.settingsForm),l(n,42,0,"Cancel",e.modalRef.hide)},function(l,n){l(n,8,0,n.component.image),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,26,0,t["\u0275nov"](n,31).ngClassUntouched,t["\u0275nov"](n,31).ngClassTouched,t["\u0275nov"](n,31).ngClassPristine,t["\u0275nov"](n,31).ngClassDirty,t["\u0275nov"](n,31).ngClassValid,t["\u0275nov"](n,31).ngClassInvalid,t["\u0275nov"](n,31).ngClassPending)})}function E(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-image-settings-modal",[],null,null,null,k,y)),t["\u0275did"](1,114688,null,0,h.a,[v.a,b.a],null,null)],function(l,n){l(n,1,0)},null)}var F=t["\u0275ccf"]("cd-iscsi-target-image-settings-modal",h.a,E,{},{},[])},o8EM:function(l,n,e){"use strict";e.d(n,"a",function(){return o});var t=e("PhyI"),u=e("CcnG"),i=e("Jm/i"),o=function(){function l(l){this.i18n=l,this.sections=[{heading:this.i18n("Quality of Service"),class:"quality-of-service",options:[{name:"rbd_qos_bps_limit",displayName:this.i18n("BPS Limit"),description:this.i18n("The desired limit of IO bytes per second."),type:t.b.bps},{name:"rbd_qos_iops_limit",displayName:this.i18n("IOPS Limit"),description:this.i18n("The desired limit of IO operations per second."),type:t.b.iops},{name:"rbd_qos_read_bps_limit",displayName:this.i18n("Read BPS Limit"),description:this.i18n("The desired limit of read bytes per second."),type:t.b.bps},{name:"rbd_qos_read_iops_limit",displayName:this.i18n("Read IOPS Limit"),description:this.i18n("The desired limit of read operations per second."),type:t.b.iops},{name:"rbd_qos_write_bps_limit",displayName:this.i18n("Write BPS Limit"),description:this.i18n("The desired limit of write bytes per second."),type:t.b.bps},{name:"rbd_qos_write_iops_limit",displayName:this.i18n("Write IOPS Limit"),description:this.i18n("The desired limit of write operations per second."),type:t.b.iops},{name:"rbd_qos_bps_burst",displayName:this.i18n("BPS Burst"),description:this.i18n("The desired burst limit of IO bytes."),type:t.b.bps},{name:"rbd_qos_iops_burst",displayName:this.i18n("IOPS Burst"),description:this.i18n("The desired burst limit of IO operations."),type:t.b.iops},{name:"rbd_qos_read_bps_burst",displayName:this.i18n("Read BPS Burst"),description:this.i18n("The desired burst limit of read bytes."),type:t.b.bps},{name:"rbd_qos_read_iops_burst",displayName:this.i18n("Read IOPS Burst"),description:this.i18n("The desired burst limit of read operations."),type:t.b.iops},{name:"rbd_qos_write_bps_burst",displayName:this.i18n("Write BPS Burst"),description:this.i18n("The desired burst limit of write bytes."),type:t.b.bps},{name:"rbd_qos_write_iops_burst",displayName:this.i18n("Write IOPS Burst"),description:this.i18n("The desired burst limit of write operations."),type:t.b.iops}]}]}return l.getOptionsFromSections=function(l){return l.map(function(l){return l.options}).reduce(function(l,n){return l.concat(n)})},l.prototype.filterConfigOptionsByName=function(n){return l.getOptionsFromSections(this.sections).filter(function(l){return l.name===n})},l.prototype.getOptionValueByName=function(l,n,e){void 0===e&&(e="");var t=this.filterConfigOptionsByName(l);return 1===t.length?t.pop()[n]:e},l.prototype.getWritableSections=function(){return this.sections.map(function(l){return l.options=l.options.filter(function(l){return!l.readOnly}),l})},l.prototype.getOptionFields=function(){return l.getOptionsFromSections(this.sections)},l.prototype.getWritableOptionFields=function(){return l.getOptionsFromSections(this.getWritableSections())},l.prototype.getOptionByName=function(l){return this.filterConfigOptionsByName(l).pop()},l.prototype.getDisplayName=function(l){return this.getOptionValueByName(l,"displayName")},l.prototype.getDescription=function(l){return this.getOptionValueByName(l,"description")},l.ngInjectableDef=u.defineInjectable({factory:function(){return new l(u.inject(i.a))},token:l,providedIn:"root"}),l}()},rFfW:function(l,n,e){"use strict";e.d(n,"a",function(){return r});var t=e("CcnG"),u=e("gIcY"),i=e("QFaf"),o=e("PhyI"),r=(e("aXbf"),e("o8EM"),function(){function l(l,n){this.formatterService=l,this.rbdConfigurationService=n,this.changes=new t.EventEmitter,this.ngDataReady=new t.EventEmitter,this.configurationType=o.b,this.sectionVisibility={}}return l.prototype.ngOnInit=function(){var l=this,n=this.createConfigurationFormGroup();this.form.addControl("configuration",n),n.valueChanges.subscribe(function(){l.changes.emit(l.getDirtyValues.bind(l))}),this.initializeData&&this.initializeData.subscribe(function(n){l.initialData=n.initialData;var e=n.sourceType;l.rbdConfigurationService.getWritableOptionFields().forEach(function(t){var u=n.initialData.filter(function(l){return l.name===t.name}).pop();u&&u.source===e&&l.form.get("configuration."+t.name).setValue(u.value)}),l.ngDataReady.emit()}),this.rbdConfigurationService.getWritableSections().forEach(function(n){return l.sectionVisibility[n.class]=!1})},l.prototype.getDirtyValues=function(l,n){var e=this;if(void 0===l&&(l=!1),l&&!n)throw new Error("ProgrammingError: If local values shall be included, a proper localFieldType argument has to be provided, too");var t={};return this.rbdConfigurationService.getWritableOptionFields().forEach(function(u){var i=e.form.get("configuration").get(u.name);e.initialData&&e.initialData[u.name]===i.value||(i.dirty||l&&i.source===n)&&(t[u.name]=null===i.value?i.value:u.type===o.b.bps?e.formatterService.toBytes(i.value):u.type===o.b.milliseconds?e.formatterService.toMilliseconds(i.value):u.type===o.b.iops?e.formatterService.toIops(i.value):i.value)}),t},l.prototype.createConfigurationFormGroup=function(){var l=new i.a({});return this.rbdConfigurationService.getWritableOptionFields().forEach(function(n){var e;if(n.type!==o.b.milliseconds&&n.type!==o.b.iops&&n.type!==o.b.bps)throw new Error("Type "+n.type+" is unknown, you may need to add it to RbdConfiguration class");e=new u.i(0,u.A.min(0)),l.addControl(n.name,e)}),l},l.prototype.reset=function(l){var n=this.form.get("configuration").get(l);n.disabled?(n.setValue(n.previousValue||0),n.enable(),n.previousValue||n.markAsPristine()):(n.previousValue=n.value,n.setValue(null),n.markAsDirty(),n.disable())},l.prototype.isDisabled=function(l){return this.form.get("configuration").get(l).disabled},l.prototype.toggleSectionVisibility=function(l){this.sectionVisibility[l]=!this.sectionVisibility[l]},l}())},roDX:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("my5R"),e("o4+5"),e("uYzU");var t=function(){function l(l,n,e,t){this.iscsiService=l,this.dimlessPipe=n,this.iscsiBackstorePipe=e,this.i18n=t,this.gateways=[],this.images=[]}return l.prototype.ngOnInit=function(){this.gatewaysColumns=[{name:this.i18n("Name"),prop:"name"},{name:this.i18n("State"),prop:"state",cellTemplate:this.statusColorTpl},{name:this.i18n("# Targets"),prop:"num_targets"},{name:this.i18n("# Sessions"),prop:"num_sessions"}],this.imagesColumns=[{name:this.i18n("Pool"),prop:"pool"},{name:this.i18n("Image"),prop:"image"},{name:this.i18n("Backstore"),prop:"backstore",pipe:this.iscsiBackstorePipe},{name:this.i18n("Read Bytes"),prop:"stats_history.rd_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Write Bytes"),prop:"stats_history.wr_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Read Ops"),prop:"stats.rd",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("Write Ops"),prop:"stats.wr",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("A/O Since"),prop:"optimized_since",cellTemplate:this.iscsiRelativeDateTpl}]},l.prototype.refresh=function(){var l=this;this.iscsiService.overview().subscribe(function(n){l.gateways=n.gateways,l.images=n.images,l.images.map(function(l){return l.stats_history&&(l.stats_history.rd_bytes=l.stats_history.rd_bytes.map(function(l){return l[1]}),l.stats_history.wr_bytes=l.stats_history.wr_bytes.map(function(l){return l[1]})),l.cdIsBinary=!0,l})})},l}()},u0yg:function(l,n,e){"use strict";e.d(n,"b",function(){return t}),e.d(n,"a",function(){return u});var t=function(){return function(){}}(),u=function(l){return l[l.V1=1]="V1",l[l.V2=2]="V2",l}({})},u2XS:function(l,n,e){"use strict";var t=e("CcnG"),u=e("Ip0R"),i=e("25BL"),o=e("uIqm"),r=e("nuQ0"),a=e("Tff5"),s=e("urB8"),d=e("xtUU"),c=e("3ris"),p=e("Jm/i"),m=e("uYzU"),f=e("iExv");e.d(n,"b",function(){return g}),e.d(n,"c",function(){return _}),e.d(n,"a",function(){return I});var g=t["\u0275crt"]({encapsulation:0,styles:[["tree .fa{font-weight:unset!important}"]],data:{}});function h(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xa0"])),(l()(),t["\u0275eld"](3,0,null,null,5,"span",[["class","label"]],null,null,null,null,null)),t["\u0275did"](4,278528,null,0,u.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pad"](5,1),t["\u0275pad"](6,1),t["\u0275pod"](7,{"label-success":0,"label-danger":1}),(l()(),t["\u0275ted"](8,null,[" "," "]))],function(l,n){var e=l(n,7,0,l(n,5,0,"logged_in").includes(n.context.$implicit.status),l(n,6,0,"logged_out").includes(n.context.$implicit.status));l(n,4,0,"label",e)},function(l,n){l(n,0,0,n.context.$implicit.value),l(n,8,0,n.context.$implicit.status)})}function v(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"div",[["class","col-sm-6 col-lg-6 metadata"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](2,null,["",""])),(l()(),t["\u0275eld"](3,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,i.b,i.a)),t["\u0275did"](4,2867200,[[2,4],["detailTable",4]],0,o.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],limit:[3,"limit"]},null)],function(l,n){var e=n.component;l(n,4,0,e.data,e.columns,"flex",0)},function(l,n){l(n,2,0,n.component.title)})}function b(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function y(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,["",""]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function C(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,b)),t["\u0275did"](1,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,y)),t["\u0275did"](3,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,void 0===n.context.row.default||n.context.row.default===n.context.row.current),l(n,3,0,void 0!==n.context.row.default&&n.context.row.default!==n.context.row.current)},null)}function _(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{highlightTpl:0}),t["\u0275qud"](671088640,2,{content:0}),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","col-sm-6 col-lg-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["iSCSI Topology"])),(l()(),t["\u0275eld"](5,0,null,null,4,"tree",[],null,[[null,"nodeSelected"]],function(l,n,e){var t=!0;return"nodeSelected"===n&&(t=!1!==l.component.onNodeSelected(e)&&t),t},r.b,r.a)),t["\u0275prd"](512,null,a.TreeService,a.TreeService,[s.NodeDraggableService]),t["\u0275did"](7,770048,null,1,d.TreeComponent,[a.TreeService],{treeModel:[0,"treeModel"]},{nodeSelected:"nodeSelected"}),t["\u0275qud"](335544320,3,{template:0}),(l()(),t["\u0275and"](0,[[3,2]],null,0,null,h)),(l()(),t["\u0275and"](16777216,null,null,1,null,v)),t["\u0275did"](11,16384,null,0,u.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](0,[[1,2],["highlightTpl",2]],null,0,null,C))],function(l,n){var e=n.component;l(n,7,0,e.tree),l(n,11,0,e.data)},null)}function w(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-details",[],null,null,null,_,g)),t["\u0275did"](1,638976,null,0,c.a,[p.a,m.a,f.a],null,null)],function(l,n){l(n,1,0)},null)}var I=t["\u0275ccf"]("cd-iscsi-target-details",c.a,w,{selection:"selection",settings:"settings",cephIscsiConfigVersion:"cephIscsiConfigVersion"},{},[])},wG1H:function(l,n,e){"use strict";e.d(n,"a",function(){return t}),e("aexS");var t=function(){function l(l){this.authStorageService=l,this.grafanaPermission=this.authStorageService.getPermissions().grafana}return l.prototype.ngOnInit=function(){},l}()}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/3rdpartylicenses.txt ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/3rdpartylicenses.txt --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/3rdpartylicenses.txt 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/3rdpartylicenses.txt 2021-03-15 17:51:46.000000000 +0000 @@ -16,30 +16,6 @@ @angular/router MIT -@auth0/angular-jwt -MIT -The MIT License (MIT) - -Copyright (c) 2017 Auth0 Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - @ngx-translate/i18n-polyfill MIT @@ -939,52 +915,7 @@ SOFTWARE. -punycode -MIT -Copyright Mathias Bynens - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -querystring -MIT - -Copyright 2012 Irakli Gozalishvili. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - +undefined rxjs Apache-2.0 @@ -1457,31 +1388,6 @@ END OF TERMS AND CONDITIONS -url -MIT -The MIT License (MIT) - -Copyright Joyent, Inc. and other Node contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - uuid MIT The MIT License (MIT) @@ -1554,6 +1460,3 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -undefined diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/6.cb5ced2eabd8bbeda2f4.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/6.cb5ced2eabd8bbeda2f4.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/6.cb5ced2eabd8bbeda2f4.js 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/6.cb5ced2eabd8bbeda2f4.js 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{EmSq:function(l,n,u){"use strict";u.d(n,"a",function(){return i});var e=u("CcnG"),t=u("LvDl"),i=(u("Fgil"),u("aXbf"),function(){function l(l,n,u,t){this.elementRef=l,this.control=n,this.dimlessBinaryPipe=u,this.formatter=t,this.ngModelChange=new e.EventEmitter,this.el=this.elementRef.nativeElement}return l.prototype.ngOnInit=function(){this.setValue(this.el.value)},l.prototype.setValue=function(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");var n=this.formatter.toBytes(l),u=this.round(n);this.el.value=this.dimlessBinaryPipe.transform(u),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))},l.prototype.round=function(l){if(null!==l&&0!==l){if(!t.isUndefined(this.minBytes)&&lthis.maxBytes)return this.maxBytes;if(!t.isUndefined(this.roundPower)){var n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l},l.prototype.onBlur=function(l){this.setValue(l)},l}())},OcYo:function(l,n,u){"use strict";u.d(n,"a",function(){return e});var e=function(){function l(l,n,u){this.elementRef=l,this.renderer=n,this.toastr=u}return l.prototype.ngOnInit=function(){var l=this.renderer.createElement("i");this.renderer.addClass(l,"icon-prepend"),this.renderer.addClass(l,"fa"),this.renderer.addClass(l,"fa-clipboard"),this.renderer.appendChild(this.elementRef.nativeElement,l)},l.prototype.getInputElement=function(){return document.getElementById(this.cdCopy2ClipboardButton)},l.prototype.onClick=function(){try{var l=document.createElement("input");l.value=this.getInputElement().value,document.body.appendChild(l),l.select(),document.execCommand("copy"),document.body.removeChild(l),this.toastr.success("Copied text to the clipboard successfully.")}catch(n){this.toastr.error("Failed to copy text to the clipboard.")}},l}()},Znkk:function(l,n,u){"use strict";u.r(n);var e,t=u("CcnG"),i=u("sne2"),o=u("Avrn"),a=u("+0ag"),r=u("mSOc"),s=function(){function l(l,n,u){this.route=l,this.summaryService=n,this.cephReleaseNamePipe=u,this.message="The Object Gateway service is not configured."}return l.prototype.ngOnInit=function(){var l=this,n=this.summaryService.subscribe(function(u){if(u){var e=l.cephReleaseNamePipe.transform(u.version);l.docsUrl="http://docs.ceph.com/docs/"+e+"/mgr/dashboard/#enabling-the-object-gateway-management-frontend",setTimeout(function(){n.unsubscribe()},0)}});this.routeParamsSubscribe=this.route.params.subscribe(function(n){l.message=n.message})},l.prototype.ngOnDestroy=function(){this.routeParamsSubscribe.unsubscribe()},l}(),d=u("gIcY"),c=u("LvDl"),p=u("mrSG"),f=u("t/Na"),m=u("VNr4"),g=u("F/XL"),v=u("psW0"),b=u("xTzq"),h=u("pL04"),y=function(){function l(l){this.http=l,this.url="api/rgw/bucket"}return l.prototype.list=function(){var l=this;return this.enumerate().pipe(Object(v.a)(function(n){return n.length>0?Object(m.a)(n.map(function(n){return l.get(n)})):Object(g.a)([])}))},l.prototype.enumerate=function(){return this.http.get(this.url)},l.prototype.get=function(l){return this.http.get(this.url+"/"+l)},l.prototype.create=function(l,n){var u=new f.h;return u=(u=u.append("bucket",l)).append("uid",n),this.http.post(this.url,null,{params:u})},l.prototype.update=function(l,n,u){var e=new f.h;return e=(e=e.append("bucket_id",n)).append("uid",u),this.http.put(this.url+"/"+l,null,{params:e})},l.prototype.delete=function(l,n){void 0===n&&(n=!0);var u=new f.h;return u=u.append("purge_objects",n?"true":"false"),this.http.delete(this.url+"/"+l,{params:u})},l.prototype.exists=function(l){return this.enumerate().pipe(Object(v.a)(function(n){var u=c.indexOf(n,l);return Object(g.a)(-1!==u)}))},l.ngInjectableDef=t.defineInjectable({factory:function(){return new l(t.inject(f.c))},token:l,providedIn:h.a}),l=p.__decorate([b.a,p.__metadata("design:paramtypes",[f.c])],l)}(),C=u("P8lu"),_=u("mtw6"),k=u("2EZI"),R=u("9nlD"),I=function(){function l(l,n,u,e,t,o,a,r){this.route=l,this.router=n,this.formBuilder=u,this.rgwBucketService=e,this.rgwUserService=t,this.notificationService=o,this.i18n=a,this.actionLabels=r,this.editing=!1,this.error=!1,this.loading=!1,this.owners=null,this.editing=this.router.url.startsWith("/rgw/bucket/"+i.e.EDIT),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("bucket"),this.createForm()}return l.prototype.createForm=function(){this.bucketForm=this.formBuilder.group({id:[null],bid:[null,[d.A.required],[this.bucketNameValidator()]],owner:[null,[d.A.required]]})},l.prototype.ngOnInit=function(){var l=this;this.rgwUserService.enumerate().subscribe(function(n){l.owners=n.sort()}),this.route.params.subscribe(function(n){if(n.hasOwnProperty("bid")){var u=decodeURIComponent(n.bid);l.loading=!0,l.rgwBucketService.get(u).subscribe(function(n){l.loading=!1;var u=c.clone(l.bucketForm.value),e=c.pick(n,c.keys(l.bucketForm.value));e=c.merge(u,e),l.bucketForm.setValue(e)})}},function(n){l.error=n})},l.prototype.goToListView=function(){this.router.navigate(["/rgw/bucket"])},l.prototype.submit=function(){var l=this;if(this.bucketForm.pristine)this.goToListView();else{var n=this.bucketForm.get("bid"),u=this.bucketForm.get("owner");if(this.editing){var e=this.bucketForm.get("id");this.rgwBucketService.update(n.value,e.value,u.value).subscribe(function(){l.notificationService.show(_.a.success,l.i18n('Updated Object Gateway bucket "{{bid}}"',{bid:n.value})),l.goToListView()},function(){l.bucketForm.setErrors({cdSubmitButton:!0})})}else this.rgwBucketService.create(n.value,u.value).subscribe(function(){l.notificationService.show(_.a.success,l.i18n('Created Object Gateway bucket "{{bid}}"',{bid:n.value})),l.goToListView()},function(){l.bucketForm.setErrors({cdSubmitButton:!0})})}},l.prototype.bucketNameValidator=function(){var l=this.rgwBucketService;return function(n){return new Promise(function(u){n.pristine||""===n.value?u(null):/^[0-9A-Za-z][\w-\.]{2,254}$/.test(n.value)?l.exists(n.value).subscribe(function(l){u(l?{bucketNameExists:!0}:null)}):u({bucketNameInvalid:!0})})}},l}(),w=u("6blF"),x=u("0+/T"),E=u("uIqm"),T=u("vCyI"),q=u("aexS"),V=u("EgGo"),S=new V.a("rgw/bucket"),D=function(){function l(l,n,u,e,t,i){var o=this;this.authStorageService=l,this.rgwBucketService=n,this.bsModalService=u,this.i18n=e,this.urlBuilder=t,this.actionLabels=i,this.columns=[],this.buckets=[],this.selection=new T.a,this.permission=this.authStorageService.getPermissions().rgw,this.columns=[{name:this.i18n("Name"),prop:"bid",flexGrow:1},{name:this.i18n("Owner"),prop:"owner",flexGrow:1}],this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return o.urlBuilder.getCreate()},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return o.urlBuilder.getEdit(o.selection.first()&&""+encodeURIComponent(o.selection.first().bid))},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-times",click:function(){return o.deleteAction()},name:this.actionLabels.DELETE}]}return l.prototype.getBucketList=function(l){var n=this;this.rgwBucketService.list().subscribe(function(l){n.buckets=l},function(){l.error()})},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.deleteAction=function(){var l=this;this.bsModalService.show(x.a,{initialState:{itemDescription:this.i18n(this.selection.hasSingleSelection?"bucket":"buckets"),itemNames:this.selection.selected.map(function(l){return l.bid}),submitActionObservable:function(){return new w.a(function(n){Object(m.a)(l.selection.selected.map(function(n){return l.rgwBucketService.delete(n.bid)})).subscribe(null,function(u){n.error(u),l.table.refreshBtn()},function(){n.complete(),l.table.refreshBtn()})})}}})},l}(),N=function(){function l(l){this.http=l,this.url="api/rgw/daemon"}return l.prototype.list=function(){return this.http.get(this.url)},l.prototype.get=function(l){return this.http.get(this.url+"/"+l)},l.ngInjectableDef=t.defineInjectable({factory:function(){return new l(t.inject(f.c))},token:l,providedIn:h.a}),l=p.__decorate([b.a,p.__metadata("design:paramtypes",[f.c])],l)}(),F=u("85J/"),j=function(){function l(l,n,u,e){this.rgwDaemonService=l,this.authStorageService=n,this.i18n=e,this.columns=[],this.daemons=[],this.selection=new T.a,this.grafanaPermission=this.authStorageService.getPermissions().grafana,this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:2},{name:this.i18n("Hostname"),prop:"server_hostname",flexGrow:2},{name:this.i18n("Version"),prop:"version",flexGrow:1,pipe:u}]}return l.prototype.getDaemonList=function(l){var n=this;this.rgwDaemonService.list().subscribe(function(l){n.daemons=l},function(){l.error()})},l.prototype.updateSelection=function(l){this.selection=l},l}(),P=u("dEwP"),A=u("1Ni5"),z=u("aXbf");!function(l){l.USERS="users",l.BUCKETS="buckets",l.METADATA="metadata",l.USAGE="usage",l.ZONE="zone"}(e||(e={}));var B=function(){function l(){}return l.getAll=function(){return Object.values(l.capabilities)},l.capabilities=e,l}(),U=function(){function l(l,n,u,e){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=e,this.submitAction=new t.EventEmitter,this.editing=!0,this.types=[],this.resource=this.i18n("capability"),this.createForm()}return l.prototype.createForm=function(){this.formGroup=this.formBuilder.group({type:[null,[d.A.required]],perm:[null,[d.A.required]]})},l.prototype.setEditing=function(l){void 0===l&&(l=!0),this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.ADD},l.prototype.setValues=function(l,n){this.formGroup.setValue({type:l,perm:n})},l.prototype.setCapabilities=function(l){var n=this,u=[];l.forEach(function(l){u.push(l.type)}),this.types=[],B.getAll().forEach(function(l){-1===c.indexOf(u,l)&&n.types.push(l)})},l.prototype.onSubmit=function(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()},l}(),M=function(){function l(l,n,u,e){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=e,this.submitAction=new t.EventEmitter,this.viewing=!0,this.userCandidates=[],this.resource=this.i18n("S3 Key"),this.createForm()}return l.prototype.createForm=function(){this.formGroup=this.formBuilder.group({user:[null,[d.A.required]],generate_key:[!0],access_key:[null,[A.a.requiredIf({generate_key:!1})]],secret_key:[null,[A.a.requiredIf({generate_key:!1})]]})},l.prototype.setViewing=function(l){void 0===l&&(l=!0),this.viewing=l,this.action=this.viewing?this.actionLabels.SHOW:this.actionLabels.CREATE},l.prototype.setValues=function(l,n,u){this.formGroup.setValue({user:l,generate_key:c.isEmpty(n),access_key:n,secret_key:u})},l.prototype.setUserCandidates=function(l){this.userCandidates=l},l.prototype.onSubmit=function(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()},l}(),O=function(){return function(){}}(),L=function(){function l(l,n,u,e){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=e,this.submitAction=new t.EventEmitter,this.editing=!0,this.subusers=[],this.resource=this.i18n("Subuser"),this.createForm()}return l.prototype.createForm=function(){this.formGroup=this.formBuilder.group({uid:[null],subuid:[null,[d.A.required,this.subuserValidator()]],perm:[null,[d.A.required]],generate_secret:[!0],secret_key:[null,[A.a.requiredIf({generate_secret:!1})]]})},l.prototype.subuserValidator=function(){var l=this;return function(n){return l.editing?null:Object(A.b)(n.value)?null:l.subusers.some(function(u){return c.isEqual(l.getSubuserName(u.id),n.value)})?{subuserIdExists:!0}:null}},l.prototype.getSubuserName=function(l){if(c.isEmpty(l))return l;var n=l.match(/([^:]+)(:(.+))?/);return c.isUndefined(n[3])?n[1]:n[3]},l.prototype.setEditing=function(l){void 0===l&&(l=!0),this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE},l.prototype.setValues=function(l,n,u){void 0===n&&(n=""),void 0===u&&(u=""),this.formGroup.setValue({uid:l,subuid:this.getSubuserName(n),perm:u,generate_secret:!0,secret_key:null})},l.prototype.setSubusers=function(l){this.subusers=l},l.prototype.onSubmit=function(){var l=this.formGroup.value,n=new O;n.id=l.uid+":"+l.subuid,n.permissions=l.perm,n.generate_secret=l.generate_secret,n.secret_key=l.secret_key,this.submitAction.emit(n),this.bsModalRef.hide()},l}(),G=function(){function l(l,n,u){this.bsModalRef=l,this.i18n=n,this.actionLabels=u,this.resource=this.i18n("Swift Key"),this.action=this.actionLabels.SHOW}return l.prototype.setValues=function(l,n){this.user=l,this.secret_key=n},l}(),K=function(){function l(l,n,u,e,t,i,o,a){this.formBuilder=l,this.route=n,this.router=u,this.rgwUserService=e,this.bsModalService=t,this.notificationService=i,this.i18n=o,this.actionLabels=a,this.editing=!1,this.error=!1,this.loading=!1,this.submitObservables=[],this.subusers=[],this.s3Keys=[],this.swiftKeys=[],this.capabilities=[],this.resource=this.i18n("user"),this.subuserLabel=this.i18n("subuser"),this.s3keyLabel=this.i18n("S3 Key"),this.capabilityLabel=this.i18n("capability"),this.createForm()}return l.prototype.createForm=function(){this.userForm=this.formBuilder.group({uid:[null,[d.A.required],[A.a.unique(this.rgwUserService.exists,this.rgwUserService)]],display_name:[null,[d.A.required]],email:[null,[A.a.email],[A.a.unique(this.rgwUserService.emailExists,this.rgwUserService)]],max_buckets_mode:["1"],max_buckets:[1e3,[A.a.requiredIf({max_buckets_mode:"1"}),A.a.number(!1),d.A.min(1)]],suspended:[!1],generate_key:[!0],access_key:[null,[A.a.requiredIf({generate_key:!1})]],secret_key:[null,[A.a.requiredIf({generate_key:!1})]],user_quota_enabled:[!1],user_quota_max_size_unlimited:[!0],user_quota_max_size:[null,[A.a.requiredIf({user_quota_enabled:!0,user_quota_max_size_unlimited:!1}),this.quotaMaxSizeValidator]],user_quota_max_objects_unlimited:[!0],user_quota_max_objects:[null,[d.A.min(0),A.a.requiredIf({user_quota_enabled:!0,user_quota_max_objects_unlimited:!1})]],bucket_quota_enabled:[!1],bucket_quota_max_size_unlimited:[!0],bucket_quota_max_size:[null,[A.a.requiredIf({bucket_quota_enabled:!0,bucket_quota_max_size_unlimited:!1}),this.quotaMaxSizeValidator]],bucket_quota_max_objects_unlimited:[!0],bucket_quota_max_objects:[null,[d.A.min(0),A.a.requiredIf({bucket_quota_enabled:!0,bucket_quota_max_objects_unlimited:!1})]]})},l.prototype.ngOnInit=function(){var l=this;this.editing=this.router.url.startsWith("/rgw/user/"+i.e.EDIT),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.route.params.subscribe(function(n){if(n.hasOwnProperty("uid")){var u=decodeURIComponent(n.uid);l.loading=!0;var e=[];e.push(l.rgwUserService.get(u)),e.push(l.rgwUserService.getQuota(u)),Object(m.a)(e).subscribe(function(n){l.loading=!1;var u=c.clone(l.userForm.value),e=c.pick(n[0],c.keys(l.userForm.value));switch(e.max_buckets){case-1:e.max_buckets_mode="-1",e.max_buckets="";break;case 0:e.max_buckets_mode="0",e.max_buckets="";break;default:e.max_buckets_mode="1"}["user","bucket"].forEach(function(l){var u=n[1][l+"_quota"];e[l+"_quota_enabled"]=u.enabled,u.max_size<0?(e[l+"_quota_max_size_unlimited"]=!0,e[l+"_quota_max_size"]=null):(e[l+"_quota_max_size_unlimited"]=!1,e[l+"_quota_max_size"]=u.max_size+" B"),u.max_objects<0?(e[l+"_quota_max_objects_unlimited"]=!0,e[l+"_quota_max_objects"]=null):(e[l+"_quota_max_objects_unlimited"]=!1,e[l+"_quota_max_objects"]=u.max_objects)}),e=c.merge(u,e),l.userForm.setValue(e),l.subusers=n[0].subusers,l.s3Keys=n[0].keys,l.swiftKeys=n[0].swift_keys;var t={"read, write":"*"};n[0].caps.forEach(function(l){l.perm in t&&(l.perm=t[l.perm])}),l.capabilities=n[0].caps},function(n){l.error=n})}})},l.prototype.goToListView=function(){this.router.navigate(["/rgw/user"])},l.prototype.onSubmit=function(){var l,n=this;if(this.userForm.pristine)this.goToListView();else{var u=this.userForm.getValue("uid");if(this.editing){if(this._isGeneralDirty()){var e=this._getUpdateArgs();this.submitObservables.push(this.rgwUserService.update(u,e))}l=this.i18n('Updated Object Gateway user "{{uid}}"',{uid:u})}else e=this._getCreateArgs(),this.submitObservables.push(this.rgwUserService.create(e)),l=this.i18n('Created Object Gateway user "{{uid}}"',{uid:u});if(this._isUserQuotaDirty()){var t=this._getUserQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(u,t))}if(this._isBucketQuotaDirty()){var i=this._getBucketQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(u,i))}P.a.apply(void 0,this.submitObservables).subscribe({error:function(){n.userForm.setErrors({cdSubmitButton:!0})},complete:function(){n.notificationService.show(_.a.success,l),n.goToListView()}})}},l.prototype.quotaMaxSizeValidator=function(l){return Object(A.b)(l.value)?null:null===RegExp("^(\\d+(\\.\\d+)?)\\s*(B|K(B|iB)?|M(B|iB)?|G(B|iB)?|T(B|iB)?)?$","i").exec(l.value)?{quotaMaxSize:!0}:(new z.a).toBytes(l.value)<1024?{quotaMaxSize:!0}:null},l.prototype.setSubuser=function(l,n){var u={"full-control":"full","read-write":"readwrite"},e=this.userForm.getValue("uid");this.submitObservables.push(this.rgwUserService.createSubuser(e,{subuser:l.id,access:l.permissions in u?u[l.permissions]:l.permissions,key_type:"swift",secret_key:l.secret_key,generate_secret:l.generate_secret?"true":"false"})),c.isNumber(n)?this.subusers[n]=l:(this.subusers.push(l),this.swiftKeys.push({user:l.id,secret_key:l.generate_secret?"Apply your changes first...":l.secret_key})),this.userForm.markAsDirty()},l.prototype.deleteSubuser=function(l){var n=this.subusers[l];this.submitObservables.push(this.rgwUserService.deleteSubuser(this.userForm.getValue("uid"),n.id)),this.s3Keys=this.s3Keys.filter(function(l){return l.user!==n.id}),this.swiftKeys=this.swiftKeys.filter(function(l){return l.user!==n.id}),this.subusers.splice(l,1),this.userForm.markAsDirty()},l.prototype.setCapability=function(l,n){var u=this.userForm.getValue("uid");if(c.isNumber(n)){var e=this.capabilities[n];this.submitObservables.push(this.rgwUserService.deleteCapability(u,e.type,e.perm)),this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities[n]=l}else this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities.push(l);this.userForm.markAsDirty()},l.prototype.deleteCapability=function(l){var n=this.capabilities[l];this.submitObservables.push(this.rgwUserService.deleteCapability(this.userForm.getValue("uid"),n.type,n.perm)),this.capabilities.splice(l,1),this.userForm.markAsDirty()},l.prototype.hasAllCapabilities=function(){return!c.difference(B.getAll(),c.map(this.capabilities,"type")).length},l.prototype.setS3Key=function(l,n){if(c.isNumber(n));else{var u=l.user.match(/([^:]+)(:(.+))?/),e=u[1],t={subuser:u[2]?u[3]:"",generate_key:l.generate_key?"true":"false"};"false"===t.generate_key&&(c.isNil(l.access_key)||(t.access_key=l.access_key),c.isNil(l.secret_key)||(t.secret_key=l.secret_key)),this.submitObservables.push(this.rgwUserService.addS3Key(e,t)),this.s3Keys.push({user:l.user,access_key:l.generate_key?"Apply your changes first...":l.access_key,secret_key:l.generate_key?"Apply your changes first...":l.secret_key})}this.userForm.markAsDirty()},l.prototype.deleteS3Key=function(l){var n=this.s3Keys[l];this.submitObservables.push(this.rgwUserService.deleteS3Key(this.userForm.getValue("uid"),n.access_key)),this.s3Keys.splice(l,1),this.userForm.markAsDirty()},l.prototype.showSubuserModal=function(l){var n=this,u=this.userForm.getValue("uid"),e=this.bsModalService.show(L);if(c.isNumber(l)){var t=this.subusers[l];e.content.setEditing(),e.content.setValues(u,t.id,t.permissions)}else e.content.setEditing(!1),e.content.setValues(u),e.content.setSubusers(this.subusers);e.content.submitAction.subscribe(function(u){n.setSubuser(u,l)})},l.prototype.showS3KeyModal=function(l){var n=this,u=this.bsModalService.show(M);if(c.isNumber(l)){var e=this.s3Keys[l];u.content.setViewing(),u.content.setValues(e.user,e.access_key,e.secret_key)}else{var t=this._getS3KeyUserCandidates();u.content.setViewing(!1),u.content.setUserCandidates(t),u.content.submitAction.subscribe(function(l){n.setS3Key(l)})}},l.prototype.showSwiftKeyModal=function(l){var n=this.bsModalService.show(G),u=this.swiftKeys[l];n.content.setValues(u.user,u.secret_key)},l.prototype.showCapabilityModal=function(l){var n=this,u=this.bsModalService.show(U);if(c.isNumber(l)){var e=this.capabilities[l];u.content.setEditing(),u.content.setValues(e.type,e.perm)}else u.content.setEditing(!1),u.content.setCapabilities(this.capabilities);u.content.submitAction.subscribe(function(u){n.setCapability(u,l)})},l.prototype._isGeneralDirty=function(){var l=this;return["display_name","email","max_buckets_mode","max_buckets","suspended"].some(function(n){return l.userForm.get(n).dirty})},l.prototype._isUserQuotaDirty=function(){var l=this;return["user_quota_enabled","user_quota_max_size_unlimited","user_quota_max_size","user_quota_max_objects_unlimited","user_quota_max_objects"].some(function(n){return l.userForm.get(n).dirty})},l.prototype._isBucketQuotaDirty=function(){var l=this;return["bucket_quota_enabled","bucket_quota_max_size_unlimited","bucket_quota_max_size","bucket_quota_max_objects_unlimited","bucket_quota_max_objects"].some(function(n){return l.userForm.get(n).dirty})},l.prototype._getCreateArgs=function(){var l={uid:this.userForm.getValue("uid"),display_name:this.userForm.getValue("display_name"),suspended:this.userForm.getValue("suspended"),email:"",max_buckets:this.userForm.getValue("max_buckets"),generate_key:this.userForm.getValue("generate_key"),access_key:"",secret_key:""},n=this.userForm.getValue("email");c.isString(n)&&n.length>0&&c.merge(l,{email:n}),this.userForm.getValue("generate_key")||c.merge(l,{generate_key:!1,access_key:this.userForm.getValue("access_key"),secret_key:this.userForm.getValue("secret_key")});var u=parseInt(this.userForm.getValue("max_buckets_mode"),10);return c.includes([-1,0],u)&&c.merge(l,{max_buckets:u}),l},l.prototype._getUpdateArgs=function(){for(var l={},n=0,u=["display_name","email","max_buckets","suspended"];n-1),l(n,22,0,u.bucket.bucket_quota.max_objects<=-1),l(n,24,0,u.bucket.bucket_quota.max_objects>-1)},function(l,n){var u=n.component,e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent.parent.parent,1),u.bucket.bucket_quota.enabled));l(n,9,0,e)})}function Gl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,60,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,57,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,56,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](7,null,["",""])),(l()(),t["\u0275eld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["ID"])),(l()(),t["\u0275eld"](11,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](12,null,["",""])),(l()(),t["\u0275eld"](13,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](14,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Owner"])),(l()(),t["\u0275eld"](16,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](17,null,["",""])),(l()(),t["\u0275eld"](18,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Index type"])),(l()(),t["\u0275eld"](21,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](22,null,["",""])),(l()(),t["\u0275eld"](23,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Placement rule"])),(l()(),t["\u0275eld"](26,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](27,null,["",""])),(l()(),t["\u0275eld"](28,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](29,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Marker"])),(l()(),t["\u0275eld"](31,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](32,null,["",""])),(l()(),t["\u0275eld"](33,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](34,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum marker"])),(l()(),t["\u0275eld"](36,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](37,null,["",""])),(l()(),t["\u0275eld"](38,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Version"])),(l()(),t["\u0275eld"](41,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](42,null,["",""])),(l()(),t["\u0275eld"](43,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](44,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Master version"])),(l()(),t["\u0275eld"](46,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](47,null,["",""])),(l()(),t["\u0275eld"](48,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](49,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Modification time"])),(l()(),t["\u0275eld"](51,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](52,null,["",""])),t["\u0275ppd"](53,1),(l()(),t["\u0275eld"](54,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](55,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Zonegroup"])),(l()(),t["\u0275eld"](57,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](58,null,["",""])),(l()(),t["\u0275and"](16777216,null,null,1,null,Ll)),t["\u0275did"](60,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,60,0,n.component.bucket.bucket_quota)},function(l,n){var u=n.component;l(n,7,0,u.bucket.bid),l(n,12,0,u.bucket.id),l(n,17,0,u.bucket.owner),l(n,22,0,u.bucket.index_type),l(n,27,0,u.bucket.placement_rule),l(n,32,0,u.bucket.marker),l(n,37,0,u.bucket.max_marker),l(n,42,0,u.bucket.ver),l(n,47,0,u.bucket.master_ver);var e=t["\u0275unv"](n,52,0,l(n,53,0,t["\u0275nov"](n.parent.parent,0),u.bucket.mtime));l(n,52,0,e),l(n,58,0,u.bucket.zonegroup)})}function Kl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Cl.b,Cl.a)),t["\u0275did"](1,180224,null,0,ml.d,[ml.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,ml.b,[ml.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Gl)),t["\u0275did"](5,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.bucket)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass)})}function $l(l){return t["\u0275vid"](0,[t["\u0275pid"](0,Rl.a,[El.DatePipe]),t["\u0275pid"](0,jl.a,[yl.a]),t["\u0275pid"](0,Pl.a,[z.a]),(l()(),t["\u0275and"](16777216,null,null,1,null,Kl)),t["\u0275did"](4,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,4,0,n.component.selection.hasSingleSelection)},null)}function Zl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-bucket-details",[],null,null,null,$l,zl)),t["\u0275did"](1,573440,null,0,Al,[],null,null)],null,null)}var Ql=t["\u0275ccf"]("cd-rgw-bucket-details",Al,Zl,{selection:"selection"},{},[]),Hl=u("25BL"),Yl=u("xtZt"),Xl=u("lqqz"),Jl=u("TJUb"),Wl=u("Fgil"),ln=function(){function l(l,n,u){this.rgwUserService=l,this.bsModalService=n,this.i18n=u,this.keys=[],this.keysColumns=[],this.keysSelection=new T.a}return l.prototype.ngOnInit=function(){this.keysColumns=[{name:this.i18n("Username"),prop:"username",flexGrow:1},{name:this.i18n("Type"),prop:"type",flexGrow:1}],this.maxBucketsMap={"-1":this.i18n("Disabled"),0:this.i18n("Unlimited")}},l.prototype.ngOnChanges=function(){var l=this;this.selection.hasSelection&&(this.user=this.selection.first(),this.user.subusers=c.sortBy(this.user.subusers,"id"),this.user.caps=c.sortBy(this.user.caps,"type"),this.rgwUserService.getQuota(this.user.uid).subscribe(function(n){c.extend(l.user,n)}),this.keys=[],this.user.keys&&this.user.keys.forEach(function(n){l.keys.push({id:l.keys.length+1,type:"S3",username:n.user,ref:n})}),this.user.swift_keys&&this.user.swift_keys.forEach(function(n){l.keys.push({id:l.keys.length+1,type:"Swift",username:n.user,ref:n})}),this.keys=c.sortBy(this.keys,"user"))},l.prototype.updateKeysSelection=function(l){this.keysSelection=l},l.prototype.showKeyModal=function(){var l=this.keysSelection.first(),n=this.bsModalService.show("S3"===l.type?M:G);switch(l.type){case"S3":n.content.setViewing(),n.content.setValues(l.ref.user,l.ref.access_key,l.ref.secret_key);break;case"Swift":n.content.setValues(l.ref.user,l.ref.secret_key)}},l}(),nn=u("DQlY"),un=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function en(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Email address"])),(l()(),t["\u0275eld"](3,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,["",""]))],null,function(l,n){l(n,4,0,n.component.user.email)})}function tn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," (",") "]))],null,function(l,n){l(n,1,0,n.context.$implicit.id,n.context.$implicit.permissions)})}function on(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Subusers"])),(l()(),t["\u0275eld"](3,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,tn)),t["\u0275did"](5,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){l(n,5,0,n.component.user.subusers)},null)}function an(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," (",") "]))],null,function(l,n){l(n,1,0,n.context.$implicit.type,n.context.$implicit.perm)})}function rn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Capabilities"])),(l()(),t["\u0275eld"](3,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,an)),t["\u0275did"](5,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){l(n,5,0,n.component.user.caps)},null)}function sn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function dn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var u=n.component,e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent.parent.parent,2),u.user.user_quota.max_size));l(n,1,0,e)})}function cn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function pn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "]))],null,function(l,n){l(n,1,0,n.component.user.user_quota.max_objects)})}function fn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["User quota"])),(l()(),t["\u0275eld"](3,0,null,null,21,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,20,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275eld"](8,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,["",""])),t["\u0275ppd"](10,1),(l()(),t["\u0275eld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum size"])),(l()(),t["\u0275and"](16777216,null,null,1,null,sn)),t["\u0275did"](15,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,dn)),t["\u0275did"](17,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](18,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum objects"])),(l()(),t["\u0275and"](16777216,null,null,1,null,cn)),t["\u0275did"](22,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,pn)),t["\u0275did"](24,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,15,0,u.user.user_quota.max_size<=-1),l(n,17,0,u.user.user_quota.max_size>-1),l(n,22,0,u.user.user_quota.max_objects<=-1),l(n,24,0,u.user.user_quota.max_objects>-1)},function(l,n){var u=n.component,e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent.parent.parent,0),u.user.user_quota.enabled));l(n,9,0,e)})}function mn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function gn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var u=n.component,e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent.parent.parent,2),u.user.bucket_quota.max_size));l(n,1,0,e)})}function vn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function bn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "]))],null,function(l,n){l(n,1,0,n.component.user.bucket_quota.max_objects)})}function hn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Bucket quota"])),(l()(),t["\u0275eld"](3,0,null,null,21,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,20,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275eld"](8,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,["",""])),t["\u0275ppd"](10,1),(l()(),t["\u0275eld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum size"])),(l()(),t["\u0275and"](16777216,null,null,1,null,mn)),t["\u0275did"](15,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,gn)),t["\u0275did"](17,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](18,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum objects"])),(l()(),t["\u0275and"](16777216,null,null,1,null,vn)),t["\u0275did"](22,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,bn)),t["\u0275did"](24,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,15,0,u.user.bucket_quota.max_size<=-1),l(n,17,0,u.user.bucket_quota.max_size>-1),l(n,22,0,u.user.bucket_quota.max_objects<=-1),l(n,24,0,u.user.bucket_quota.max_objects>-1)},function(l,n){var u=n.component,e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent.parent.parent,0),u.user.bucket_quota.enabled));l(n,9,0,e)})}function yn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,40,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,35,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,34,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](7,null,["",""])),(l()(),t["\u0275eld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Full name"])),(l()(),t["\u0275eld"](11,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](12,null,["",""])),(l()(),t["\u0275and"](16777216,null,null,1,null,en)),t["\u0275did"](14,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](15,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Suspended"])),(l()(),t["\u0275eld"](18,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](19,null,["",""])),t["\u0275ppd"](20,1),(l()(),t["\u0275eld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](22,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["System"])),(l()(),t["\u0275eld"](24,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](25,null,["",""])),t["\u0275ppd"](26,1),(l()(),t["\u0275eld"](27,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](28,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum buckets"])),(l()(),t["\u0275eld"](30,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](31,null,["",""])),t["\u0275ppd"](32,2),(l()(),t["\u0275and"](16777216,null,null,1,null,on)),t["\u0275did"](34,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,rn)),t["\u0275did"](36,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,fn)),t["\u0275did"](38,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,hn)),t["\u0275did"](40,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,14,0,null==u.user.email?null:u.user.email.length),l(n,34,0,u.user.subusers&&u.user.subusers.length),l(n,36,0,u.user.caps&&u.user.caps.length),l(n,38,0,u.user.user_quota),l(n,40,0,u.user.bucket_quota)},function(l,n){var u=n.component;l(n,7,0,u.user.uid),l(n,12,0,u.user.display_name);var e=t["\u0275unv"](n,19,0,l(n,20,0,t["\u0275nov"](n.parent.parent,0),u.user.suspended));l(n,19,0,e);var i=t["\u0275unv"](n,25,0,l(n,26,0,t["\u0275nov"](n.parent.parent,0),"true"===u.user.system));l(n,25,0,i);var o=t["\u0275unv"](n,31,0,l(n,32,0,t["\u0275nov"](n.parent.parent,1),u.user.max_buckets,u.maxBucketsMap));l(n,31,0,o)})}function Cn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"tab",[["heading","Keys"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](1,212992,null,0,ml.b,[ml.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](2,0,null,null,9,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["selectionType","multi"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateKeysSelection(u)&&e),e},Hl.b,Hl.a)),t["\u0275did"](3,2867200,null,0,E.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](4,0,null,0,7,"div",[["class","table-actions"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,16777216,null,null,6,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),t["\u0275prd"](512,null,Yl.f,Yl.f,[]),t["\u0275did"](7,212992,null,0,Yl.c,[t.ElementRef,t.Renderer2,t.ViewContainerRef,Xl.a,Yl.a,Yl.f],null,null),(l()(),t["\u0275eld"](8,0,null,null,3,"button",[["class","btn btn-sm btn-primary"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showKeyModal()&&e),e},null,null)),(l()(),t["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-eye"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Show"]))],function(l,n){var u=n.component;l(n,1,0,"Keys"),l(n,3,0,u.keys,u.keysColumns,"flex","true","multi"),l(n,7,0)},function(l,n){var u=n.component;l(n,0,0,t["\u0275nov"](n,1).id,t["\u0275nov"](n,1).active,t["\u0275nov"](n,1).addClass),l(n,5,0,t["\u0275nov"](n,7).dropup,t["\u0275nov"](n,7).isOpen,t["\u0275nov"](n,7).isOpen&&t["\u0275nov"](n,7).isBs4),l(n,8,0,!u.keysSelection.hasSingleSelection)})}function _n(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,Cl.b,Cl.a)),t["\u0275did"](1,180224,null,0,ml.d,[ml.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,ml.b,[ml.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,yn)),t["\u0275did"](5,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,0,1,null,Cn)),t["\u0275did"](7,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.user),l(n,7,0,u.keys.length)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass)})}function kn(l){return t["\u0275vid"](0,[t["\u0275pid"](0,jl.a,[yl.a]),t["\u0275pid"](0,Jl.a,[]),t["\u0275pid"](0,Wl.a,[z.a]),t["\u0275qud"](402653184,1,{accessKeyTpl:0}),t["\u0275qud"](402653184,2,{secretKeyTpl:0}),(l()(),t["\u0275and"](16777216,null,null,1,null,_n)),t["\u0275did"](6,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,6,0,n.component.selection.hasSingleSelection)},null)}function Rn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-details",[],null,null,null,kn,un)),t["\u0275did"](1,638976,null,0,ln,[C.a,nn.b,yl.a],null,null)],function(l,n){l(n,1,0)},null)}var In=t["\u0275ccf"]("cd-rgw-user-details",ln,Rn,{selection:"selection"},{},[]),wn=u("8xTl"),xn=u("D4zM"),En=u("OcYo"),Tn=u("SZbH"),qn=u("KVJa"),Vn=u("Z21x"),Sn=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Dn(l){return t["\u0275vid"](0,[t["\u0275pid"](0,El.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,["","",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,31,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,30,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,13).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,13).onReset()&&e),e},null,null)),t["\u0275did"](12,16384,null,0,d.D,[],null,null),t["\u0275did"](13,4210688,null,0,d.t,[[8,null],[8,null]],null,null),t["\u0275prd"](2048,null,d.d,null,[d.t]),t["\u0275did"](15,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](16,0,null,null,9,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","user"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275eld"](19,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,5,"input",[["class","form-control"],["id","user"],["name","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0,i=l.component;return"input"===n&&(e=!1!==t["\u0275nov"](l,21)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,21).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,21)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,21)._compositionEnd(u.target.value)&&e),"ngModelChange"===n&&(e=!1!==(i.user=u)&&e),e},null,null)),t["\u0275did"](21,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](23,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),t["\u0275prd"](2048,null,d.q,null,[d.u]),t["\u0275did"](25,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](26,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](27,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275eld"](29,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](30,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](31,0,null,null,5,"input",[["class","form-control"],["id","secret_key"],["name","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0,i=l.component;return"input"===n&&(e=!1!==t["\u0275nov"](l,32)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,32).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,32)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,32)._compositionEnd(u.target.value)&&e),"ngModelChange"===n&&(e=!1!==(i.secret_key=u)&&e),e},null,null)),t["\u0275did"](32,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](34,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),t["\u0275prd"](2048,null,d.q,null,[d.u]),t["\u0275did"](36,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](37,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,39).onClick()&&e),e},null,null)),t["\u0275did"](39,81920,null,0,xn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](40,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,41).onClick()&&e),e},null,null)),t["\u0275did"](41,81920,null,0,En.a,[t.ElementRef,t.Renderer2,Tn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275eld"](42,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](43,0,null,null,1,"cd-back-button",[],null,null,null,qn.b,qn.a)),t["\u0275did"](44,49152,null,0,Vn.a,[El.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,23,0,"user",u.user),l(n,34,0,"secret_key",u.secret_key),l(n,39,0,"secret_key"),l(n,41,0,"secret_key"),l(n,44,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,11,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending),l(n,20,0,!0,t["\u0275nov"](n,25).ngClassUntouched,t["\u0275nov"](n,25).ngClassTouched,t["\u0275nov"](n,25).ngClassPristine,t["\u0275nov"](n,25).ngClassDirty,t["\u0275nov"](n,25).ngClassValid,t["\u0275nov"](n,25).ngClassInvalid,t["\u0275nov"](n,25).ngClassPending),l(n,31,0,!0,t["\u0275nov"](n,36).ngClassUntouched,t["\u0275nov"](n,36).ngClassTouched,t["\u0275nov"](n,36).ngClassPristine,t["\u0275nov"](n,36).ngClassDirty,t["\u0275nov"](n,36).ngClassValid,t["\u0275nov"](n,36).ngClassInvalid,t["\u0275nov"](n,36).ngClassPending)})}function Nn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-swift-key-modal",[],null,null,null,Dn,Sn)),t["\u0275did"](1,49152,null,0,G,[nn.a,yl.a,i.b],null,null)],null,null)}var Fn=t["\u0275ccf"]("cd-rgw-user-swift-key-modal",G,Nn,{},{},[]),jn=u("IZUe"),Pn=u("gp3X"),An=u("sb0X"),zn=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Bn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Un(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"input",[["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,1)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,1).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,1)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,1)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](1,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](3,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](5,16384,null,0,d.r,[[4,d.q]],null,null)],function(l,n){l(n,3,0,"user")},function(l,n){l(n,0,0,!0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function Mn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a username --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function On(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Ln(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"select",[["autofocus",""],["class","form-control"],["formControlName","user"],["id","user"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,2).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,2).onTouched()&&e),e},null,null)),t["\u0275did"](1,4210688,null,0,jn.a,[t.ElementRef],null,null),t["\u0275did"](2,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](4,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](6,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Mn)),t["\u0275did"](8,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,On)),t["\u0275did"](10,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,4,0,"user"),l(n,8,0,null!==u.userCandidates),l(n,10,0,u.userCandidates)},function(l,n){l(n,0,0,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function Gn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Kn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,5,"input",[["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,4).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,4).onTouched()&&e),e},null,null)),t["\u0275did"](4,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](6,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](8,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](9,0,null,null,1,"label",[["for","generate_key"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Auto-generate key"]))],function(l,n){l(n,6,0,"generate_key")},function(l,n){l(n,3,0,t["\u0275nov"](n,8).ngClassUntouched,t["\u0275nov"](n,8).ngClassTouched,t["\u0275nov"](n,8).ngClassPristine,t["\u0275nov"](n,8).ngClassDirty,t["\u0275nov"](n,8).ngClassValid,t["\u0275nov"](n,8).ngClassInvalid,t["\u0275nov"](n,8).ngClassPending)})}function $n(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Zn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Qn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","access_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Access key"])),(l()(),t["\u0275and"](16777216,null,null,1,null,$n)),t["\u0275did"](7,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](8,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,5,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,11)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,11).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](13,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](16,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,18).onClick()&&e),e},null,null)),t["\u0275did"](18,81920,null,0,xn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](19,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,20).onClick()&&e),e},null,null)),t["\u0275did"](20,81920,null,0,En.a,[t.ElementRef,t.Renderer2,Tn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Zn)),t["\u0275did"](22,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.formGroup.showError("access_key",t["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",e),l(n,7,0,!u.viewing),l(n,13,0,"access_key"),l(n,18,0,"access_key"),l(n,20,0,"access_key"),l(n,22,0,u.formGroup.showError("access_key",t["\u0275nov"](n.parent,12),"required"))},function(l,n){l(n,10,0,n.component.viewing,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function Hn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Yn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Xn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Hn)),t["\u0275did"](7,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](8,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,5,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,11)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,11).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](13,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](16,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,18).onClick()&&e),e},null,null)),t["\u0275did"](18,81920,null,0,xn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](19,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,20).onClick()&&e),e},null,null)),t["\u0275did"](20,81920,null,0,En.a,[t.ElementRef,t.Renderer2,Tn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Yn)),t["\u0275did"](22,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",e),l(n,7,0,!u.viewing),l(n,13,0,"secret_key"),l(n,18,0,"secret_key"),l(n,20,0,"secret_key"),l(n,22,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent,12),"required"))},function(l,n){l(n,10,0,n.component.viewing,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function Jn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},Pn.b,Pn.a)),t["\u0275did"](1,114688,null,0,An.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](2,0,["","",""])),t["\u0275ppd"](3,1),t["\u0275ppd"](4,1)],function(l,n){l(n,1,0,n.component.formGroup)},function(l,n){var u=n.component,e=t["\u0275unv"](n,2,0,l(n,3,0,t["\u0275nov"](n.parent,0),u.action)),i=t["\u0275unv"](n,2,1,l(n,4,0,t["\u0275nov"](n.parent,1),u.resource));l(n,2,0,e,i)})}function Wn(l){return t["\u0275vid"](0,[t["\u0275pid"](0,El.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,["","",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,31,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,12).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,12).onReset()&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.D,[],null,null),t["\u0275did"](12,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,21,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","user"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Bn)),t["\u0275did"](23,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](24,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Un)),t["\u0275did"](26,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ln)),t["\u0275did"](28,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Gn)),t["\u0275did"](30,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Kn)),t["\u0275did"](32,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Qn)),t["\u0275did"](34,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Xn)),t["\u0275did"](36,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](37,0,null,null,4,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Jn)),t["\u0275did"](39,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](40,0,null,null,1,"cd-back-button",[],null,null,null,qn.b,qn.a)),t["\u0275did"](41,49152,null,0,Vn.a,[El.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,12,0,u.formGroup);var e=l(n,18,0,u.formGroup.showError("user",t["\u0275nov"](n,12)));l(n,17,0,"form-group",e),l(n,23,0,!u.viewing),l(n,26,0,u.viewing),l(n,28,0,!u.viewing),l(n,30,0,u.formGroup.showError("user",t["\u0275nov"](n,12),"required")),l(n,32,0,!u.viewing),l(n,34,0,!u.formGroup.getValue("generate_key")),l(n,36,0,!u.formGroup.getValue("generate_key")),l(n,39,0,!u.viewing),l(n,41,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function lu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-s3-key-modal",[],null,null,null,Wn,zn)),t["\u0275did"](1,49152,null,0,M,[k.a,nn.a,yl.a,i.b],null,null)],null,null)}var nu=t["\u0275ccf"]("cd-rgw-user-s3-key-modal",M,lu,{},{submitAction:"submitAction"},[]),uu=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function eu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function tu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"input",[["class","form-control"],["formControlName","type"],["id","type"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,1)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,1).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,1)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,1)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](1,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](3,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](5,16384,null,0,d.r,[[4,d.q]],null,null)],function(l,n){l(n,3,0,"type")},function(l,n){l(n,0,0,!0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending)})}function iu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a type --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function ou(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function au(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"select",[["autofocus",""],["class","form-control"],["formControlName","type"],["id","type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,2).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,2).onTouched()&&e),e},null,null)),t["\u0275did"](1,4210688,null,0,jn.a,[t.ElementRef],null,null),t["\u0275did"](2,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](4,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](6,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,iu)),t["\u0275did"](8,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ou)),t["\u0275did"](10,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,4,0,"type"),l(n,8,0,null!==u.types),l(n,10,0,u.types)},function(l,n){l(n,0,0,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function ru(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function su(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function du(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function cu(l){return t["\u0275vid"](0,[t["\u0275pid"](0,El.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,["","",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,51,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,12).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,12).onReset()&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.D,[],null,null),t["\u0275did"](12,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,38,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","type"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Type"])),(l()(),t["\u0275and"](16777216,null,null,1,null,eu)),t["\u0275did"](23,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](24,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,tu)),t["\u0275did"](26,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,au)),t["\u0275did"](28,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ru)),t["\u0275did"](30,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](31,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](32,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](33,{"has-error":0}),(l()(),t["\u0275eld"](34,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","perm"]],null,null,null,null,null)),(l()(),t["\u0275eld"](35,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Permission"])),(l()(),t["\u0275eld"](37,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,12,"select",[["class","form-control"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,40).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,40).onTouched()&&e),e},null,null)),t["\u0275did"](40,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](42,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](44,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](45,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](46,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](47,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a permission --"])),(l()(),t["\u0275and"](16777216,null,null,2,null,su)),t["\u0275did"](50,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pad"](51,3),(l()(),t["\u0275and"](16777216,null,null,1,null,du)),t["\u0275did"](53,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](54,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](55,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},Pn.b,Pn.a)),t["\u0275did"](56,114688,null,0,An.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](57,0,["","",""])),t["\u0275ppd"](58,1),t["\u0275ppd"](59,1),(l()(),t["\u0275eld"](60,0,null,null,1,"cd-back-button",[],null,null,null,qn.b,qn.a)),t["\u0275did"](61,49152,null,0,Vn.a,[El.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,12,0,u.formGroup);var e=l(n,18,0,u.formGroup.showError("type",t["\u0275nov"](n,12)));l(n,17,0,"form-group",e),l(n,23,0,!u.editing),l(n,26,0,u.editing),l(n,28,0,!u.editing),l(n,30,0,u.formGroup.showError("type",t["\u0275nov"](n,12),"required"));var i=l(n,33,0,u.formGroup.showError("perm",t["\u0275nov"](n,12)));l(n,32,0,"form-group",i),l(n,42,0,"perm"),l(n,46,0,null),l(n,47,0,null);var o=l(n,51,0,"read","write","*");l(n,50,0,o),l(n,53,0,u.formGroup.showError("perm",t["\u0275nov"](n,12),"required")),l(n,56,0,u.formGroup),l(n,61,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,39,0,t["\u0275nov"](n,44).ngClassUntouched,t["\u0275nov"](n,44).ngClassTouched,t["\u0275nov"](n,44).ngClassPristine,t["\u0275nov"](n,44).ngClassDirty,t["\u0275nov"](n,44).ngClassValid,t["\u0275nov"](n,44).ngClassInvalid,t["\u0275nov"](n,44).ngClassPending);var o=t["\u0275unv"](n,57,0,l(n,58,0,t["\u0275nov"](n,0),u.action)),a=t["\u0275unv"](n,57,1,l(n,59,0,t["\u0275nov"](n,1),u.resource));l(n,57,0,o,a)})}function pu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-capability-modal",[],null,null,null,cu,uu)),t["\u0275did"](1,49152,null,0,U,[k.a,nn.a,yl.a,i.b],null,null)],null,null)}var fu=t["\u0275ccf"]("cd-rgw-user-capability-modal",U,pu,{},{submitAction:"submitAction"},[]),mu=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function gu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function vu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function bu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen subuser ID is already in use."]))],null,null)}function hu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function yu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Cu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function _u(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,5,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,10)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,10).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](10,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](12,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](14,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](15,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,17).onClick()&&e),e},null,null)),t["\u0275did"](17,81920,null,0,xn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,19).onClick()&&e),e},null,null)),t["\u0275did"](19,81920,null,0,En.a,[t.ElementRef,t.Renderer2,Tn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Cu)),t["\u0275did"](21,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent.parent,12)));l(n,1,0,"form-group",e),l(n,12,0,"secret_key"),l(n,17,0,"secret_key"),l(n,19,0,"secret_key"),l(n,21,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent.parent,12),"required"))},function(l,n){l(n,9,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function ku(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,15,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Swift key"])),(l()(),t["\u0275eld"](3,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,5,"input",[["formControlName","generate_secret"],["id","generate_secret"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,7).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,7).onTouched()&&e),e},null,null)),t["\u0275did"](7,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](9,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](11,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](12,0,null,null,1,"label",[["for","generate_secret"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Auto-generate secret"])),(l()(),t["\u0275and"](16777216,null,null,1,null,_u)),t["\u0275did"](15,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,9,0,"generate_secret"),l(n,15,0,!u.editing&&!u.formGroup.getValue("generate_secret"))},function(l,n){l(n,6,0,t["\u0275nov"](n,11).ngClassUntouched,t["\u0275nov"](n,11).ngClassTouched,t["\u0275nov"](n,11).ngClassPristine,t["\u0275nov"](n,11).ngClassDirty,t["\u0275nov"](n,11).ngClassValid,t["\u0275nov"](n,11).ngClassInvalid,t["\u0275nov"](n,11).ngClassPending)})}function Ru(l){return t["\u0275vid"](0,[t["\u0275pid"](0,El.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,["","",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,78,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,12).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,12).onReset()&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.D,[],null,null),t["\u0275did"](12,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,65,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","uid"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275eld"](21,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](22,0,null,null,5,"input",[["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,23)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,23).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,23)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,23)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](23,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](25,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](27,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](28,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](29,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](30,{"has-error":0}),(l()(),t["\u0275eld"](31,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","subuid"]],null,null,null,null,null)),(l()(),t["\u0275eld"](32,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Subuser"])),(l()(),t["\u0275and"](16777216,null,null,1,null,gu)),t["\u0275did"](35,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](36,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](37,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","subuid"],["id","subuid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,39)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,39).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,39)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,39)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](38,4210688,null,0,jn.a,[t.ElementRef],null,null),t["\u0275did"](39,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](41,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](43,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,vu)),t["\u0275did"](45,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,bu)),t["\u0275did"](47,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](48,0,null,null,30,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](49,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](50,{"has-error":0}),(l()(),t["\u0275eld"](51,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","perm"]],null,null,null,null,null)),(l()(),t["\u0275eld"](52,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Permission"])),(l()(),t["\u0275eld"](54,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](55,0,null,null,23,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](56,0,null,null,20,"select",[["class","form-control"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,57).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,57).onTouched()&&e),e},null,null)),t["\u0275did"](57,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](59,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](61,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](62,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](63,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](64,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a permission --"])),(l()(),t["\u0275and"](16777216,null,null,2,null,hu)),t["\u0275did"](67,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pad"](68,2),(l()(),t["\u0275eld"](69,0,null,null,3,"option",[["value","read-write"]],null,null,null,null,null)),t["\u0275did"](70,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](71,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["read, write"])),(l()(),t["\u0275eld"](73,0,null,null,3,"option",[["value","full-control"]],null,null,null,null,null)),t["\u0275did"](74,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](75,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["full"])),(l()(),t["\u0275and"](16777216,null,null,1,null,yu)),t["\u0275did"](78,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ku)),t["\u0275did"](80,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](81,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](82,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},Pn.b,Pn.a)),t["\u0275did"](83,114688,null,0,An.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](84,0,["","",""])),t["\u0275ppd"](85,1),t["\u0275ppd"](86,1),(l()(),t["\u0275eld"](87,0,null,null,1,"cd-back-button",[],null,null,null,qn.b,qn.a)),t["\u0275did"](88,49152,null,0,Vn.a,[El.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,12,0,u.formGroup);var e=l(n,18,0,u.formGroup.showError("uid",t["\u0275nov"](n,12)));l(n,17,0,"form-group",e),l(n,25,0,"uid");var i=l(n,30,0,u.formGroup.showError("subuid",t["\u0275nov"](n,12)));l(n,29,0,"form-group",i),l(n,35,0,!u.editing),l(n,41,0,"subuid"),l(n,45,0,u.formGroup.showError("subuid",t["\u0275nov"](n,12),"required")),l(n,47,0,u.formGroup.showError("subuid",t["\u0275nov"](n,12),"subuserIdExists"));var o=l(n,50,0,u.formGroup.showError("perm",t["\u0275nov"](n,12)));l(n,49,0,"form-group",o),l(n,59,0,"perm"),l(n,63,0,null),l(n,64,0,null);var a=l(n,68,0,"read","write");l(n,67,0,a),l(n,70,0,"read-write"),l(n,71,0,"read-write"),l(n,74,0,"full-control"),l(n,75,0,"full-control"),l(n,78,0,u.formGroup.showError("perm",t["\u0275nov"](n,12),"required")),l(n,80,0,!u.editing),l(n,83,0,u.formGroup),l(n,88,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,22,0,!0,t["\u0275nov"](n,27).ngClassUntouched,t["\u0275nov"](n,27).ngClassTouched,t["\u0275nov"](n,27).ngClassPristine,t["\u0275nov"](n,27).ngClassDirty,t["\u0275nov"](n,27).ngClassValid,t["\u0275nov"](n,27).ngClassInvalid,t["\u0275nov"](n,27).ngClassPending),l(n,37,0,u.editing,t["\u0275nov"](n,43).ngClassUntouched,t["\u0275nov"](n,43).ngClassTouched,t["\u0275nov"](n,43).ngClassPristine,t["\u0275nov"](n,43).ngClassDirty,t["\u0275nov"](n,43).ngClassValid,t["\u0275nov"](n,43).ngClassInvalid,t["\u0275nov"](n,43).ngClassPending),l(n,56,0,t["\u0275nov"](n,61).ngClassUntouched,t["\u0275nov"](n,61).ngClassTouched,t["\u0275nov"](n,61).ngClassPristine,t["\u0275nov"](n,61).ngClassDirty,t["\u0275nov"](n,61).ngClassValid,t["\u0275nov"](n,61).ngClassInvalid,t["\u0275nov"](n,61).ngClassPending);var o=t["\u0275unv"](n,84,0,l(n,85,0,t["\u0275nov"](n,0),u.action)),a=t["\u0275unv"](n,84,1,l(n,86,0,t["\u0275nov"](n,1),u.resource));l(n,84,0,o,a)})}function Iu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-subuser-modal",[],null,null,null,Ru,mu)),t["\u0275did"](1,49152,null,0,L,[k.a,nn.a,yl.a,i.b],null,null)],null,null)}var wu=t["\u0275ccf"]("cd-rgw-user-subuser-modal",L,Iu,{},{submitAction:"submitAction"},[]),xu=u("IzCI"),Eu=u("Dwqy"),Tu=u("uYzU"),qu=u("uhwM"),Vu=u("E2fk"),Su=u("nSDx"),Du=u("SB+Q"),Nu=u("TYzs"),Fu=u("BQkM"),ju=u("dEH0"),Pu=u("G1/K"),Au=u("lTVp"),zu=u("OZfm"),Bu=u("NJnL"),Uu=u("eajB"),Mu=u("FO+L"),Ou=u("nhM1"),Lu=u("BARL"),Gu=u("ZYCi"),Ku=u("9Xeq"),$u=u("xdbM"),Zu=u("yGOH"),Qu=u("V/fk"),Hu=u("F8xH"),Yu=u("ChqD"),Xu=u("PCNd"),Ju=u("G6Q+"),Wu=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function le(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](1,212992,null,0,ml.b,[ml.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","WAkugZpiz"]],null,null,null,gl.b,gl.a)),t["\u0275did"](3,638976,null,0,vl.a,[r.a,bl.DomSanitizer,hl.a,a.a,yl.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"rgw-overview?","two","WAkugZpiz")},function(l,n){l(n,0,0,t["\u0275nov"](n,1).id,t["\u0275nov"](n,1).active,t["\u0275nov"](n,1).addClass)})}function ne(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,Cl.b,Cl.a)),t["\u0275did"](1,180224,null,0,ml.d,[ml.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,5,"tab",[["heading","Daemons List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,ml.b,[ml.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](4,0,null,null,3,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"updateSelection"],[null,"fetchData"]],function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getDaemonList(u)&&e),e},Hl.b,Hl.a)),t["\u0275did"](5,2867200,null,0,E.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](6,0,null,2,1,"cd-rgw-daemon-details",[["cdTableDetail",""]],null,null,null,Dl,ql)),t["\u0275did"](7,573440,null,0,Tl,[N,q.a],{selection:[0,"selection"]},null),(l()(),t["\u0275and"](16777216,null,0,1,null,le)),t["\u0275did"](9,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,"Daemons List"),l(n,5,0,u.daemons,u.columns,"flex","single"),l(n,7,0,u.selection),l(n,9,0,u.grafanaPermission.read)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass)})}function ue(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-daemon-list",[],null,null,null,ne,Wu)),t["\u0275did"](1,49152,null,0,j,[N,q.a,F.a,yl.a],null,null)],null,null)}var ee=t["\u0275ccf"]("cd-rgw-daemon-list",j,ue,{},{},[]),te=u("NUGo"),ie=u("S7zO"),oe=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function ae(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{table:0}),(l()(),t["\u0275eld"](1,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","uid"],["selectionType","multi"]],null,[[null,"updateSelection"],[null,"fetchData"]],function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getUserList(u)&&e),e},Hl.b,Hl.a)),t["\u0275did"](2,2867200,[[1,4],["table",4]],0,E.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](3,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,te.b,te.a)),t["\u0275did"](4,114688,null,0,ie.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275eld"](5,0,null,2,1,"cd-rgw-user-details",[["cdTableDetail",""]],null,null,null,kn,un)),t["\u0275did"](6,638976,null,0,ln,[C.a,nn.b,yl.a],{selection:[0,"selection"]},null)],function(l,n){var u=n.component;l(n,2,0,u.users,u.columns,"flex",!1,"uid","multi"),l(n,4,0,u.permission,u.selection,u.tableActions),l(n,6,0,u.selection)},null)}function re(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-rgw-user-list",[],null,null,null,ae,oe)),t["\u0275prd"](256,null,V.a,Z,[]),t["\u0275did"](2,49152,null,0,Q,[q.a,C.a,nn.b,yl.a,V.a,i.b],null,null)],null,null)}var se=t["\u0275ccf"]("cd-rgw-user-list",Q,re,{},{},[]),de=u("QC43"),ce=u("XFyV"),pe=u("M/6F"),fe=u("NDi4"),me=u("EmSq"),ge=t["\u0275crt"]({encapsulation:0,styles:[["form[_ngcontent-%COMP%] .input-group-addon[_ngcontent-%COMP%]{color:#90949c!important;background-color:transparent}"]],data:{}});function ve(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,de.b,de.a)),t["\u0275did"](1,49152,null,0,ce.a,[],null,null),(l()(),t["\u0275ted"](-1,0,["Loading user data..."]))],null,null)}function be(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-error-panel",[],null,[[null,"backAction"]],function(l,n,u){var e=!0;return"backAction"===n&&(e=!1!==l.component.goToListView()&&e),e},pe.b,pe.a)),t["\u0275did"](1,49152,null,0,fe.a,[],null,{backAction:"backAction"}),(l()(),t["\u0275ted"](-1,0,["The user data could not be loaded."]))],null,null)}function he(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function ye(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ce(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen user ID is already in use."]))],null,null)}function _e(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function ke(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Re(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This is not a valid email address."]))],null,null)}function Ie(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen email address is already in use."]))],null,null)}function we(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function xe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The entered value must be >= 1."]))],null,null)}function Ee(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,0,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,6,"input",[["class","form-control"],["formControlName","max_buckets"],["id","max_buckets"],["min","1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,6)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,6).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,6)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,6)._compositionEnd(u.target.value)&&e),"change"===n&&(e=!1!==t["\u0275nov"](l,7).onChange(u.target.value)&&e),"input"===n&&(e=!1!==t["\u0275nov"](l,7).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,7).onTouched()&&e),e},null,null)),t["\u0275did"](6,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275did"](7,16384,null,0,d.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l,n){return[l,n]},[d.e,d.C]),t["\u0275did"](9,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](11,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,we)),t["\u0275did"](13,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,xe)),t["\u0275did"](15,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("max_buckets",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,9,0,"max_buckets"),l(n,13,0,u.userForm.showError("max_buckets",t["\u0275nov"](n.parent,3),"required")),l(n,15,0,u.userForm.showError("max_buckets",t["\u0275nov"](n.parent,3),"min"))},function(l,n){l(n,5,0,t["\u0275nov"](n,11).ngClassUntouched,t["\u0275nov"](n,11).ngClassTouched,t["\u0275nov"](n,11).ngClassPristine,t["\u0275nov"](n,11).ngClassDirty,t["\u0275nov"](n,11).ngClassValid,t["\u0275nov"](n,11).ngClassInvalid,t["\u0275nov"](n,11).ngClassPending)})}function Te(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function qe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","access_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Access key"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,5,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,10)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,10).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](10,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](12,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](14,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](15,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,17).onClick()&&e),e},null,null)),t["\u0275did"](17,81920,null,0,xn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,19).onClick()&&e),e},null,null)),t["\u0275did"](19,81920,null,0,En.a,[t.ElementRef,t.Renderer2,Tn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Te)),t["\u0275did"](21,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("access_key",t["\u0275nov"](n.parent.parent,3)));l(n,1,0,"form-group",e),l(n,12,0,"access_key"),l(n,17,0,"access_key"),l(n,19,0,"access_key"),l(n,21,0,u.userForm.showError("access_key",t["\u0275nov"](n.parent.parent,3),"required"))},function(l,n){l(n,9,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function Ve(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Se(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,5,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,10)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,10).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](10,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](12,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](14,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](15,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,17).onClick()&&e),e},null,null)),t["\u0275did"](17,81920,null,0,xn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,19).onClick()&&e),e},null,null)),t["\u0275did"](19,81920,null,0,En.a,[t.ElementRef,t.Renderer2,Tn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ve)),t["\u0275did"](21,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("secret_key",t["\u0275nov"](n.parent.parent,3)));l(n,1,0,"form-group",e),l(n,12,0,"secret_key"),l(n,17,0,"secret_key"),l(n,19,0,"secret_key"),l(n,21,0,u.userForm.showError("secret_key",t["\u0275nov"](n.parent.parent,3),"required"))},function(l,n){l(n,9,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function De(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,17,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["S3 key"])),(l()(),t["\u0275eld"](3,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,5,"input",[["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,7).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,7).onTouched()&&e),e},null,null)),t["\u0275did"](7,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](9,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](11,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](12,0,null,null,1,"label",[["for","generate_key"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Auto-generate key"])),(l()(),t["\u0275and"](16777216,null,null,1,null,qe)),t["\u0275did"](15,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Se)),t["\u0275did"](17,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,9,0,"generate_key"),l(n,15,0,!u.editing&&!u.userForm.getValue("generate_key")),l(n,17,0,!u.editing&&!u.userForm.getValue("generate_key"))},function(l,n){l(n,6,0,t["\u0275nov"](n,11).ngClassUntouched,t["\u0275nov"](n,11).ngClassTouched,t["\u0275nov"](n,11).ngClassPristine,t["\u0275nov"](n,11).ngClassDirty,t["\u0275nov"](n,11).ngClassValid,t["\u0275nov"](n,11).ngClassInvalid,t["\u0275nov"](n,11).ngClassPending)})}function Ne(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no subusers."]))],null,null)}function Fe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,15,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,13,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-user"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,0,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,1,"span",[["class","input-group-addon"],["style","border-left: 0; border-right: 0;"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,0,"i",[["class","icon-prepend fa fa-share-alt"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,0,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,6,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,16777216,null,null,2,"button",[["class","btn btn-default tc_showSubuserButton"],["tooltip","Edit"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal(l.context.index)&&e),e},null,null)),t["\u0275did"](10,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](11,0,null,null,0,"i",[["class","fa fa-cogs"]],null,null,null,null,null)),(l()(),t["\u0275eld"](12,16777216,null,null,2,"button",[["class","btn btn-default tc_deleteSubuserButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteSubuser(l.context.index)&&e),e},null,null)),t["\u0275did"](13,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](14,0,null,null,0,"i",[["class","fa fa-times"]],null,null,null,null,null)),(l()(),t["\u0275eld"](15,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,10,0,"Edit"),l(n,13,0,"Delete")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.id,"")),l(n,7,0,t["\u0275inlineInterpolate"](1,"","full-control"===n.context.$implicit.permissions?"full":n.context.$implicit.permissions,"")),l(n,9,0,t["\u0275nov"](n,10).ariaDescribedby),l(n,12,0,t["\u0275nov"](n,13).ariaDescribedby)})}function je(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,14,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Subusers"])),(l()(),t["\u0275eld"](3,0,null,null,11,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Ne)),t["\u0275did"](5,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Fe)),t["\u0275did"](7,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](8,0,null,null,6,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,5,"button",[["class","btn btn-sm btn-default btn-label pull-right tc_addSubuserButton"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal()&&e),e},null,null)),(l()(),t["\u0275eld"](10,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](12,null,["","",""])),t["\u0275ppd"](13,1),t["\u0275ppd"](14,1)],function(l,n){var u=n.component;l(n,5,0,0===u.subusers.length),l(n,7,0,u.subusers)},function(l,n){var u=n.component,e=t["\u0275unv"](n,12,0,l(n,13,0,t["\u0275nov"](n.parent.parent,0),u.actionLabels.CREATE)),i=t["\u0275unv"](n,12,1,l(n,14,0,t["\u0275nov"](n.parent.parent,1),u.subuserLabel));l(n,12,0,e,i)})}function Pe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no keys."]))],null,null)}function Ae(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,12,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,0,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,6,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,16777216,null,null,2,"button",[["class","btn btn-default tc_showS3KeyButton"],["tooltip","Show"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal(l.context.index)&&e),e},null,null)),t["\u0275did"](7,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](8,0,null,null,0,"i",[["class","fa fa-eye"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,16777216,null,null,2,"button",[["class","btn btn-default tc_deleteS3KeyButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteS3Key(l.context.index)&&e),e},null,null)),t["\u0275did"](10,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](11,0,null,null,0,"i",[["class","fa fa-times"]],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,7,0,"Show"),l(n,10,0,"Delete")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.user,"")),l(n,6,0,t["\u0275nov"](n,7).ariaDescribedby),l(n,9,0,t["\u0275nov"](n,10).ariaDescribedby)})}function ze(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no keys."]))],null,null)}function Be(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,7,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,0,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,3,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,16777216,null,null,2,"button",[["class","btn btn-default tc_showSwiftKeyButton"],["tooltip","Show"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSwiftKeyModal(l.context.index)&&e),e},null,null)),t["\u0275did"](7,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](8,0,null,null,0,"i",[["class","fa fa-eye"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,7,0,"Show")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.user,"")),l(n,6,0,t["\u0275nov"](n,7).ariaDescribedby)})}function Ue(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Keys"])),(l()(),t["\u0275eld"](3,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["S3"])),(l()(),t["\u0275eld"](5,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Pe)),t["\u0275did"](7,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ae)),t["\u0275did"](9,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](10,0,null,null,6,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,5,"button",[["class","btn btn-sm btn-default btn-label pull-right tc_addS3KeyButton"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal()&&e),e},null,null)),(l()(),t["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),t["\u0275eld"](13,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](14,null,["","",""])),t["\u0275ppd"](15,1),t["\u0275ppd"](16,1),(l()(),t["\u0275eld"](17,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Swift"])),(l()(),t["\u0275eld"](20,0,null,null,4,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,ze)),t["\u0275did"](22,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Be)),t["\u0275did"](24,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,7,0,0===u.s3Keys.length),l(n,9,0,u.s3Keys),l(n,22,0,0===u.swiftKeys.length),l(n,24,0,u.swiftKeys)},function(l,n){var u=n.component,e=t["\u0275unv"](n,14,0,l(n,15,0,t["\u0275nov"](n.parent.parent,0),u.actionLabels.CREATE)),i=t["\u0275unv"](n,14,1,l(n,16,0,t["\u0275nov"](n.parent.parent,1),u.s3keyLabel));l(n,14,0,e,i)})}function Me(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no capabilities."]))],null,null)}function Oe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,12,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-share-alt"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,0,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,6,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,16777216,null,null,2,"button",[["class","btn btn-default tc_editCapButton"],["tooltip","Edit"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal(l.context.index)&&e),e},null,null)),t["\u0275did"](7,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](8,0,null,null,0,"i",[["class","fa fa-cogs"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,16777216,null,null,2,"button",[["class","btn btn-default tc_deleteCapButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteCapability(l.context.index)&&e),e},null,null)),t["\u0275did"](10,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](11,0,null,null,0,"i",[["class","fa fa-times"]],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,7,0,"Edit"),l(n,10,0,"Delete")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](2,"",n.context.$implicit.type,":",n.context.$implicit.perm,"")),l(n,6,0,t["\u0275nov"](n,7).ariaDescribedby),l(n,9,0,t["\u0275nov"](n,10).ariaDescribedby)})}function Le(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,15,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Capabilities"])),(l()(),t["\u0275eld"](3,0,null,null,12,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Me)),t["\u0275did"](5,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Oe)),t["\u0275did"](7,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](8,0,null,null,7,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,16777216,null,null,6,"button",[["class","btn btn-sm btn-default btn-label pull-right tc_addCapButton"],["tooltip","All capabilities are already added."],["triggers","pointerenter pointerleave"],["type","button"]],[[8,"disabled",0],[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal()&&e),e},null,null)),t["\u0275did"](10,212992,null,0,Uu.c,[t.ViewContainerRef,Xl.a,Uu.a,t.ElementRef,t.Renderer2,Bu.a],{tooltip:[0,"tooltip"],triggers:[1,"triggers"],isDisabled:[2,"isDisabled"]},null),(l()(),t["\u0275eld"](11,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](13,null,["","",""])),t["\u0275ppd"](14,1),t["\u0275ppd"](15,1)],function(l,n){var u=n.component;l(n,5,0,0===u.capabilities.length),l(n,7,0,u.capabilities),l(n,10,0,"All capabilities are already added.","pointerenter pointerleave",!u.hasAllCapabilities())},function(l,n){var u=n.component;l(n,9,0,u.hasAllCapabilities(),t["\u0275nov"](n,10).ariaDescribedby);var e=t["\u0275unv"](n,13,0,l(n,14,0,t["\u0275nov"](n.parent.parent,0),u.actionLabels.ADD)),i=t["\u0275unv"](n,13,1,l(n,15,0,t["\u0275nov"](n.parent.parent,1),u.capabilityLabel));l(n,13,0,e,i)})}function Ge(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,5,"input",[["formControlName","user_quota_max_size_unlimited"],["id","user_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,4).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,4).onTouched()&&e),e},null,null)),t["\u0275did"](4,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](6,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](8,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](9,0,null,null,1,"label",[["for","user_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited size"]))],function(l,n){l(n,6,0,"user_quota_max_size_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,8).ngClassUntouched,t["\u0275nov"](n,8).ngClassTouched,t["\u0275nov"](n,8).ngClassPristine,t["\u0275nov"](n,8).ngClassDirty,t["\u0275nov"](n,8).ngClassValid,t["\u0275nov"](n,8).ngClassInvalid,t["\u0275nov"](n,8).ngClassPending)})}function Ke(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function $e(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The value is not valid."]))],null,null)}function Ze(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","user_quota_max_size"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. size"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,6,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","user_quota_max_size"],["id","user_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,9)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,9).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionEnd(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,13).onBlur(u.target.value)&&e),e},null,null)),t["\u0275did"](9,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](11,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](13,81920,null,0,me.a,[t.ElementRef,d.q,Wl.a,z.a],null,null),t["\u0275did"](14,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ke)),t["\u0275did"](16,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,$e)),t["\u0275did"](18,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("user_quota_max_size",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,11,0,"user_quota_max_size"),l(n,13,0),l(n,16,0,u.userForm.showError("user_quota_max_size",t["\u0275nov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("user_quota_max_size",t["\u0275nov"](n.parent,3),"quotaMaxSize"))},function(l,n){l(n,8,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function Qe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,5,"input",[["formControlName","user_quota_max_objects_unlimited"],["id","user_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,4).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,4).onTouched()&&e),e},null,null)),t["\u0275did"](4,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](6,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](8,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](9,0,null,null,1,"label",[["for","user_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited objects"]))],function(l,n){l(n,6,0,"user_quota_max_objects_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,8).ngClassUntouched,t["\u0275nov"](n,8).ngClassTouched,t["\u0275nov"](n,8).ngClassPristine,t["\u0275nov"](n,8).ngClassDirty,t["\u0275nov"](n,8).ngClassValid,t["\u0275nov"](n,8).ngClassInvalid,t["\u0275nov"](n,8).ngClassPending)})}function He(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ye(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The entered value must be >= 0."]))],null,null)}function Xe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","user_quota_max_objects"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. objects"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","user_quota_max_objects"],["id","user_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,9)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,9).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionEnd(u.target.value)&&e),"change"===n&&(e=!1!==t["\u0275nov"](l,10).onChange(u.target.value)&&e),"input"===n&&(e=!1!==t["\u0275nov"](l,10).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,10).onTouched()&&e),e},null,null)),t["\u0275did"](9,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275did"](10,16384,null,0,d.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l,n){return[l,n]},[d.e,d.C]),t["\u0275did"](12,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](14,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,He)),t["\u0275did"](16,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ye)),t["\u0275did"](18,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("user_quota_max_objects",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,12,0,"user_quota_max_objects"),l(n,16,0,u.userForm.showError("user_quota_max_objects",t["\u0275nov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("user_quota_max_objects",t["\u0275nov"](n.parent,3),"min"))},function(l,n){l(n,8,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function Je(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,5,"input",[["formControlName","bucket_quota_max_size_unlimited"],["id","bucket_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,4).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,4).onTouched()&&e),e},null,null)),t["\u0275did"](4,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](6,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](8,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](9,0,null,null,1,"label",[["for","bucket_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited size"]))],function(l,n){l(n,6,0,"bucket_quota_max_size_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,8).ngClassUntouched,t["\u0275nov"](n,8).ngClassTouched,t["\u0275nov"](n,8).ngClassPristine,t["\u0275nov"](n,8).ngClassDirty,t["\u0275nov"](n,8).ngClassValid,t["\u0275nov"](n,8).ngClassInvalid,t["\u0275nov"](n,8).ngClassPending)})}function We(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function lt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The value is not valid."]))],null,null)}function nt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","bucket_quota_max_size"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. size"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,6,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","bucket_quota_max_size"],["id","bucket_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,9)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,9).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionEnd(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,13).onBlur(u.target.value)&&e),e},null,null)),t["\u0275did"](9,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](11,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](13,81920,null,0,me.a,[t.ElementRef,d.q,Wl.a,z.a],null,null),t["\u0275did"](14,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,We)),t["\u0275did"](16,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,lt)),t["\u0275did"](18,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("bucket_quota_max_size",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,11,0,"bucket_quota_max_size"),l(n,13,0),l(n,16,0,u.userForm.showError("bucket_quota_max_size",t["\u0275nov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("bucket_quota_max_size",t["\u0275nov"](n.parent,3),"quotaMaxSize"))},function(l,n){l(n,8,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function ut(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,5,"input",[["formControlName","bucket_quota_max_objects_unlimited"],["id","bucket_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,4).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,4).onTouched()&&e),e},null,null)),t["\u0275did"](4,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](6,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](8,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](9,0,null,null,1,"label",[["for","bucket_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited objects"]))],function(l,n){l(n,6,0,"bucket_quota_max_objects_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,8).ngClassUntouched,t["\u0275nov"](n,8).ngClassTouched,t["\u0275nov"](n,8).ngClassPristine,t["\u0275nov"](n,8).ngClassDirty,t["\u0275nov"](n,8).ngClassValid,t["\u0275nov"](n,8).ngClassInvalid,t["\u0275nov"](n,8).ngClassPending)})}function et(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function tt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The entered value must be >= 0."]))],null,null)}function it(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","bucket_quota_max_objects"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. objects"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","bucket_quota_max_objects"],["id","bucket_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,9)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,9).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionEnd(u.target.value)&&e),"change"===n&&(e=!1!==t["\u0275nov"](l,10).onChange(u.target.value)&&e),"input"===n&&(e=!1!==t["\u0275nov"](l,10).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,10).onTouched()&&e),e},null,null)),t["\u0275did"](9,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275did"](10,16384,null,0,d.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l,n){return[l,n]},[d.e,d.C]),t["\u0275did"](12,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](14,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,et)),t["\u0275did"](16,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,tt)),t["\u0275did"](18,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("bucket_quota_max_objects",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,12,0,"bucket_quota_max_objects"),l(n,16,0,u.userForm.showError("bucket_quota_max_objects",t["\u0275nov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("bucket_quota_max_objects",t["\u0275nov"](n.parent,3),"min"))},function(l,n){l(n,8,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function ot(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,161,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,160,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,3).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,3).onReset()&&e),e},null,null)),t["\u0275did"](2,16384,null,0,d.D,[],null,null),t["\u0275did"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](5,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](6,0,null,null,155,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,["","",""])),t["\u0275ppd"](10,1),t["\u0275ppd"](11,1),(l()(),t["\u0275eld"](12,0,null,null,140,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](13,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](14,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](15,{"has-error":0}),(l()(),t["\u0275eld"](16,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","uid"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275and"](16777216,null,null,1,null,he)),t["\u0275did"](20,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](21,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](22,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,24)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,24).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,24)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,24)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](23,4210688,null,0,jn.a,[t.ElementRef],null,null),t["\u0275did"](24,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](26,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](28,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,ye)),t["\u0275did"](30,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ce)),t["\u0275did"](32,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](33,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](34,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](35,{"has-error":0}),(l()(),t["\u0275eld"](36,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","display_name"]],null,null,null,null,null)),(l()(),t["\u0275eld"](37,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Full name"])),(l()(),t["\u0275and"](16777216,null,null,1,null,_e)),t["\u0275did"](40,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](41,0,null,null,8,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](42,0,null,null,5,"input",[["class","form-control"],["formControlName","display_name"],["id","display_name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,43)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,43).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,43)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,43)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](43,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](45,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](47,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,ke)),t["\u0275did"](49,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](50,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](51,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](52,{"has-error":0}),(l()(),t["\u0275eld"](53,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","email"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Email address"])),(l()(),t["\u0275eld"](55,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](56,0,null,null,5,"input",[["class","form-control"],["formControlName","email"],["id","email"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,57)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,57).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,57)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,57)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](57,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](59,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](61,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Re)),t["\u0275did"](63,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ie)),t["\u0275did"](65,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](66,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](67,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","max_buckets_mode"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. buckets"])),(l()(),t["\u0275eld"](69,0,null,null,18,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](70,0,null,null,17,"select",[["class","form-control"],["formControlName","max_buckets_mode"],["id","max_buckets_mode"],["name","max_buckets_mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0,i=l.component;return"change"===n&&(e=!1!==t["\u0275nov"](l,71).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,71).onTouched()&&e),"change"===n&&(e=!1!==i.onMaxBucketsModeChange(u.target.value)&&e),e},null,null)),t["\u0275did"](71,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](73,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](75,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](76,0,null,null,3,"option",[["value","-1"]],null,null,null,null,null)),t["\u0275did"](77,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](78,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["Disabled"])),(l()(),t["\u0275eld"](80,0,null,null,3,"option",[["value","0"]],null,null,null,null,null)),t["\u0275did"](81,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](82,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["Unlimited"])),(l()(),t["\u0275eld"](84,0,null,null,3,"option",[["value","1"]],null,null,null,null,null)),t["\u0275did"](85,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](86,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["Custom"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Ee)),t["\u0275did"](89,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](90,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](91,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](92,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](93,0,null,null,5,"input",[["formControlName","suspended"],["id","suspended"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,94).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,94).onTouched()&&e),e},null,null)),t["\u0275did"](94,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](96,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](98,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](99,0,null,null,1,"label",[["for","suspended"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Suspended"])),(l()(),t["\u0275and"](16777216,null,null,1,null,De)),t["\u0275did"](102,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,je)),t["\u0275did"](104,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ue)),t["\u0275did"](106,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Le)),t["\u0275did"](108,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](109,0,null,null,21,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](110,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["User quota"])),(l()(),t["\u0275eld"](112,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](113,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](114,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](115,0,null,null,5,"input",[["formControlName","user_quota_enabled"],["id","user_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,116).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,116).onTouched()&&e),e},null,null)),t["\u0275did"](116,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](118,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](120,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](121,0,null,null,1,"label",[["for","user_quota_enabled"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Ge)),t["\u0275did"](124,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ze)),t["\u0275did"](126,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Qe)),t["\u0275did"](128,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Xe)),t["\u0275did"](130,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](131,0,null,null,21,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](132,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Bucket quota"])),(l()(),t["\u0275eld"](134,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](135,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](136,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](137,0,null,null,5,"input",[["formControlName","bucket_quota_enabled"],["id","bucket_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,138).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,138).onTouched()&&e),e},null,null)),t["\u0275did"](138,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](140,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](142,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](143,0,null,null,1,"label",[["for","bucket_quota_enabled"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Je)),t["\u0275did"](146,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,nt)),t["\u0275did"](148,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ut)),t["\u0275did"](150,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,it)),t["\u0275did"](152,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](153,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](154,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](155,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},Pn.b,Pn.a)),t["\u0275did"](156,114688,null,0,An.a,[t.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](157,0,["","",""])),t["\u0275ppd"](158,1),t["\u0275ppd"](159,1),(l()(),t["\u0275eld"](160,0,null,null,1,"cd-back-button",[],null,null,null,qn.b,qn.a)),t["\u0275did"](161,49152,null,0,Vn.a,[El.Location,i.b],null,null)],function(l,n){var u=n.component;l(n,3,0,u.userForm);var e=l(n,15,0,u.userForm.showError("uid",t["\u0275nov"](n,3)));l(n,14,0,"form-group",e),l(n,20,0,!u.editing),l(n,26,0,"uid"),l(n,30,0,u.userForm.showError("uid",t["\u0275nov"](n,3),"required")),l(n,32,0,u.userForm.showError("uid",t["\u0275nov"](n,3),"notUnique"));var i=l(n,35,0,u.userForm.showError("display_name",t["\u0275nov"](n,3)));l(n,34,0,"form-group",i),l(n,40,0,!u.editing),l(n,45,0,"display_name"),l(n,49,0,u.userForm.showError("display_name",t["\u0275nov"](n,3),"required"));var o=l(n,52,0,u.userForm.showError("email",t["\u0275nov"](n,3)));l(n,51,0,"form-group",o),l(n,59,0,"email"),l(n,63,0,u.userForm.showError("email",t["\u0275nov"](n,3),"email")),l(n,65,0,u.userForm.showError("email",t["\u0275nov"](n,3),"notUnique")),l(n,73,0,"max_buckets_mode"),l(n,77,0,"-1"),l(n,78,0,"-1"),l(n,81,0,"0"),l(n,82,0,"0"),l(n,85,0,"1"),l(n,86,0,"1"),l(n,89,0,1==u.userForm.get("max_buckets_mode").value),l(n,96,0,"suspended"),l(n,102,0,!u.editing),l(n,104,0,u.editing),l(n,106,0,u.editing),l(n,108,0,u.editing),l(n,118,0,"user_quota_enabled"),l(n,124,0,u.userForm.controls.user_quota_enabled.value),l(n,126,0,!u.userForm.getValue("user_quota_max_size_unlimited")),l(n,128,0,u.userForm.controls.user_quota_enabled.value),l(n,130,0,!u.userForm.getValue("user_quota_max_objects_unlimited")),l(n,140,0,"bucket_quota_enabled"),l(n,146,0,u.userForm.controls.bucket_quota_enabled.value),l(n,148,0,!u.userForm.getValue("bucket_quota_max_size_unlimited")),l(n,150,0,u.userForm.controls.bucket_quota_enabled.value),l(n,152,0,!u.userForm.getValue("bucket_quota_max_objects_unlimited")),l(n,156,0,u.userForm,"button")},function(l,n){var u=n.component;l(n,1,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending);var e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent,0),u.action)),i=t["\u0275unv"](n,9,1,l(n,11,0,t["\u0275nov"](n.parent,1),u.resource));l(n,9,0,e,i),l(n,22,0,u.editing,t["\u0275nov"](n,28).ngClassUntouched,t["\u0275nov"](n,28).ngClassTouched,t["\u0275nov"](n,28).ngClassPristine,t["\u0275nov"](n,28).ngClassDirty,t["\u0275nov"](n,28).ngClassValid,t["\u0275nov"](n,28).ngClassInvalid,t["\u0275nov"](n,28).ngClassPending),l(n,42,0,t["\u0275nov"](n,47).ngClassUntouched,t["\u0275nov"](n,47).ngClassTouched,t["\u0275nov"](n,47).ngClassPristine,t["\u0275nov"](n,47).ngClassDirty,t["\u0275nov"](n,47).ngClassValid,t["\u0275nov"](n,47).ngClassInvalid,t["\u0275nov"](n,47).ngClassPending),l(n,56,0,t["\u0275nov"](n,61).ngClassUntouched,t["\u0275nov"](n,61).ngClassTouched,t["\u0275nov"](n,61).ngClassPristine,t["\u0275nov"](n,61).ngClassDirty,t["\u0275nov"](n,61).ngClassValid,t["\u0275nov"](n,61).ngClassInvalid,t["\u0275nov"](n,61).ngClassPending),l(n,70,0,t["\u0275nov"](n,75).ngClassUntouched,t["\u0275nov"](n,75).ngClassTouched,t["\u0275nov"](n,75).ngClassPristine,t["\u0275nov"](n,75).ngClassDirty,t["\u0275nov"](n,75).ngClassValid,t["\u0275nov"](n,75).ngClassInvalid,t["\u0275nov"](n,75).ngClassPending),l(n,93,0,t["\u0275nov"](n,98).ngClassUntouched,t["\u0275nov"](n,98).ngClassTouched,t["\u0275nov"](n,98).ngClassPristine,t["\u0275nov"](n,98).ngClassDirty,t["\u0275nov"](n,98).ngClassValid,t["\u0275nov"](n,98).ngClassInvalid,t["\u0275nov"](n,98).ngClassPending),l(n,115,0,t["\u0275nov"](n,120).ngClassUntouched,t["\u0275nov"](n,120).ngClassTouched,t["\u0275nov"](n,120).ngClassPristine,t["\u0275nov"](n,120).ngClassDirty,t["\u0275nov"](n,120).ngClassValid,t["\u0275nov"](n,120).ngClassInvalid,t["\u0275nov"](n,120).ngClassPending),l(n,137,0,t["\u0275nov"](n,142).ngClassUntouched,t["\u0275nov"](n,142).ngClassTouched,t["\u0275nov"](n,142).ngClassPristine,t["\u0275nov"](n,142).ngClassDirty,t["\u0275nov"](n,142).ngClassValid,t["\u0275nov"](n,142).ngClassInvalid,t["\u0275nov"](n,142).ngClassPending);var o=t["\u0275unv"](n,157,0,l(n,158,0,t["\u0275nov"](n.parent,0),u.action)),a=t["\u0275unv"](n,157,1,l(n,159,0,t["\u0275nov"](n.parent,1),u.resource));l(n,157,0,o,a)})}function at(l){return t["\u0275vid"](0,[t["\u0275pid"](0,El.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275and"](16777216,null,null,1,null,ve)),t["\u0275did"](3,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,be)),t["\u0275did"](5,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ot)),t["\u0275did"](7,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,u.editing&&u.error),l(n,7,0,!u.loading&&!u.error)},null)}function rt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-form",[],null,null,null,at,ge)),t["\u0275did"](1,114688,null,0,K,[k.a,Gu.a,Gu.l,C.a,nn.b,R.a,yl.a,i.b],null,null)],function(l,n){l(n,1,0)},null)}var st=t["\u0275ccf"]("cd-rgw-user-form",K,rt,{},{},[]),dt=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function ct(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{table:0}),(l()(),t["\u0275eld"](1,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","bid"],["selectionType","multi"]],null,[[null,"updateSelection"],[null,"fetchData"]],function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getBucketList(u)&&e),e},Hl.b,Hl.a)),t["\u0275did"](2,2867200,[[1,4],["table",4]],0,E.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](3,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,te.b,te.a)),t["\u0275did"](4,114688,null,0,ie.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275eld"](5,0,null,2,1,"cd-rgw-bucket-details",[["cdTableDetail",""]],null,null,null,$l,zl)),t["\u0275did"](6,573440,null,0,Al,[],{selection:[0,"selection"]},null)],function(l,n){var u=n.component;l(n,2,0,u.buckets,u.columns,"flex",!1,"bid","multi"),l(n,4,0,u.permission,u.selection,u.tableActions),l(n,6,0,u.selection)},null)}function pt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-rgw-bucket-list",[],null,null,null,ct,dt)),t["\u0275prd"](256,null,V.a,S,[]),t["\u0275did"](2,49152,null,0,D,[q.a,y,nn.b,yl.a,V.a,i.b],null,null)],null,null)}var ft=t["\u0275ccf"]("cd-rgw-bucket-list",D,pt,{},{},[]),mt=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function gt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,de.b,de.a)),t["\u0275did"](1,49152,null,0,ce.a,[],null,null),(l()(),t["\u0275ted"](-1,0,["Loading bucket data..."]))],null,null)}function vt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-error-panel",[],null,[[null,"backAction"]],function(l,n,u){var e=!0;return"backAction"===n&&(e=!1!==l.component.goToListView()&&e),e},pe.b,pe.a)),t["\u0275did"](1,49152,null,0,fe.a,[],null,{backAction:"backAction"}),(l()(),t["\u0275ted"](-1,0,["The bucket data could not be loaded."]))],null,null)}function bt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","id"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Id"])),(l()(),t["\u0275eld"](3,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,5,"input",[["class","form-control"],["formControlName","id"],["id","id"],["name","id"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,5)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,5).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,5)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,5)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](5,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](7,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](9,16384,null,0,d.r,[[4,d.q]],null,null)],function(l,n){l(n,7,0,"id")},function(l,n){l(n,4,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function ht(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function yt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ct(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The value is not valid."]))],null,null)}function _t(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen name is already in use."]))],null,null)}function kt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Rt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a user --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function It(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function wt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function xt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,67,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,66,"form",[["class","form-horizontal"],["name","bucketForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,3).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,3).onReset()&&e),e},null,null)),t["\u0275did"](2,16384,null,0,d.D,[],null,null),t["\u0275did"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](5,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](6,0,null,null,61,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,["","",""])),t["\u0275ppd"](10,1),t["\u0275ppd"](11,1),(l()(),t["\u0275eld"](12,0,null,null,46,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,bt)),t["\u0275did"](14,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](15,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](16,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](17,{"has-error":0}),(l()(),t["\u0275eld"](18,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","bid"]],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275and"](16777216,null,null,1,null,ht)),t["\u0275did"](22,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](23,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","bid"],["id","bid"],["name","bid"],["placeholder","Name..."],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,26)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,26).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,26)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,26)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](25,4210688,null,0,jn.a,[t.ElementRef],null,null),t["\u0275did"](26,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](28,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](30,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,yt)),t["\u0275did"](32,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ct)),t["\u0275did"](34,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,_t)),t["\u0275did"](36,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](37,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](38,278528,null,0,El.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](39,{"has-error":0}),(l()(),t["\u0275eld"](40,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","owner"]],null,null,null,null,null)),(l()(),t["\u0275eld"](41,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Owner"])),(l()(),t["\u0275eld"](43,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](44,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](45,0,null,null,11,"select",[["class","form-control"],["formControlName","owner"],["id","owner"],["name","owner"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,46).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,46).onTouched()&&e),e},null,null)),t["\u0275did"](46,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](48,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](50,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,kt)),t["\u0275did"](52,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Rt)),t["\u0275did"](54,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,It)),t["\u0275did"](56,278528,null,0,El.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,wt)),t["\u0275did"](58,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](59,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](60,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](61,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e},Pn.b,Pn.a)),t["\u0275did"](62,114688,null,0,An.a,[t.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](63,0,["","",""])),t["\u0275ppd"](64,1),t["\u0275ppd"](65,1),(l()(),t["\u0275eld"](66,0,null,null,1,"cd-back-button",[],null,null,null,qn.b,qn.a)),t["\u0275did"](67,49152,null,0,Vn.a,[El.Location,i.b],null,null)],function(l,n){var u=n.component;l(n,3,0,u.bucketForm),l(n,14,0,u.editing);var e=l(n,17,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3)));l(n,16,0,"form-group",e),l(n,22,0,!u.editing),l(n,28,0,"bid"),l(n,32,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3),"required")),l(n,34,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3),"bucketNameInvalid")),l(n,36,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3),"bucketNameExists"));var i=l(n,39,0,u.bucketForm.showError("owner",t["\u0275nov"](n,3)));l(n,38,0,"form-group",i),l(n,48,0,"owner"),l(n,52,0,null===u.owners),l(n,54,0,null!==u.owners),l(n,56,0,u.owners),l(n,58,0,u.bucketForm.showError("owner",t["\u0275nov"](n,3),"required")),l(n,62,0,u.bucketForm,"button")},function(l,n){var u=n.component;l(n,1,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending);var e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent,0),u.action)),i=t["\u0275unv"](n,9,1,l(n,11,0,t["\u0275nov"](n.parent,1),u.resource));l(n,9,0,e,i),l(n,24,0,u.editing,t["\u0275nov"](n,30).ngClassUntouched,t["\u0275nov"](n,30).ngClassTouched,t["\u0275nov"](n,30).ngClassPristine,t["\u0275nov"](n,30).ngClassDirty,t["\u0275nov"](n,30).ngClassValid,t["\u0275nov"](n,30).ngClassInvalid,t["\u0275nov"](n,30).ngClassPending),l(n,45,0,t["\u0275nov"](n,50).ngClassUntouched,t["\u0275nov"](n,50).ngClassTouched,t["\u0275nov"](n,50).ngClassPristine,t["\u0275nov"](n,50).ngClassDirty,t["\u0275nov"](n,50).ngClassValid,t["\u0275nov"](n,50).ngClassInvalid,t["\u0275nov"](n,50).ngClassPending);var o=t["\u0275unv"](n,63,0,l(n,64,0,t["\u0275nov"](n.parent,0),u.action)),a=t["\u0275unv"](n,63,1,l(n,65,0,t["\u0275nov"](n.parent,1),u.resource));l(n,63,0,o,a)})}function Et(l){return t["\u0275vid"](0,[t["\u0275pid"](0,El.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275and"](16777216,null,null,1,null,gt)),t["\u0275did"](3,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,vt)),t["\u0275did"](5,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,xt)),t["\u0275did"](7,16384,null,0,El.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,u.editing&&u.error),l(n,7,0,!u.loading&&!u.error)},null)}function Tt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-bucket-form",[],null,null,null,Et,mt)),t["\u0275did"](1,114688,null,0,I,[Gu.a,Gu.l,k.a,y,C.a,R.a,yl.a,i.b],null,null)],function(l,n){l(n,1,0)},null)}var qt=t["\u0275ccf"]("cd-rgw-bucket-form",I,Tt,{},{},[]),Vt=u("TZo1"),St=u("9Kw/"),Dt=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Nt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,8,"cd-info-panel",[],null,null,null,Vt.b,Vt.a)),t["\u0275did"](1,49152,null,0,St.a,[yl.a],null,null),(l()(),t["\u0275ted"](2,0,[" ",""])),(l()(),t["\u0275eld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,0,4,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Please consult the "])),(l()(),t["\u0275eld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["documentation"])),(l()(),t["\u0275ted"](-1,null,[" on how to configure and enable the Object Gateway management functionality."]))],null,function(l,n){var u=n.component;l(n,2,0,u.message),l(n,6,0,t["\u0275inlineInterpolate"](1,"",u.docsUrl,""))})}function Ft(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-501",[],null,null,null,Nt,Dt)),t["\u0275did"](1,245760,null,0,s,[Gu.a,r.a,a.a],null,null)],function(l,n){l(n,1,0)},null)}var jt=t["\u0275ccf"]("cd-rgw-501",s,Ft,{},{},[]);u.d(n,"RgwModuleNgFactory",function(){return Pt}),u.d(n,"RoutedRgwModuleNgFactory",function(){return At});var Pt=t["\u0275cmf"](H,[],function(l){return t["\u0275mod"]([t["\u0275mpd"](512,t.ComponentFactoryResolver,t["\u0275CodegenComponentFactoryResolver"],[[8,[il.a,ol.a,al.a,rl.a,rl.b,sl.a,dl.a,cl.a,pl.a,fl.a,Fl,Ql,In,Fn,nu,fu,wu]],[3,t.ComponentFactoryResolver],t.NgModuleRef]),t["\u0275mpd"](4608,El.NgLocalization,El.NgLocaleLocalization,[t.LOCALE_ID,[2,El["\u0275angular_packages_common_common_a"]]]),t["\u0275mpd"](4608,jl.a,jl.a,[yl.a]),t["\u0275mpd"](4608,El.DatePipe,El.DatePipe,[t.LOCALE_ID]),t["\u0275mpd"](4608,F.a,F.a,[]),t["\u0275mpd"](4608,a.a,a.a,[]),t["\u0275mpd"](4608,z.a,z.a,[]),t["\u0275mpd"](4608,Wl.a,Wl.a,[z.a]),t["\u0275mpd"](4608,xu.a,xu.a,[z.a]),t["\u0275mpd"](4608,Pl.a,Pl.a,[z.a]),t["\u0275mpd"](4608,Eu.a,Eu.a,[]),t["\u0275mpd"](4608,Tu.a,Tu.a,[]),t["\u0275mpd"](4608,qu.a,qu.a,[]),t["\u0275mpd"](4608,Vu.a,Vu.a,[]),t["\u0275mpd"](4608,Rl.a,Rl.a,[El.DatePipe]),t["\u0275mpd"](4608,Su.a,Su.a,[]),t["\u0275mpd"](4608,Du.a,Du.a,[]),t["\u0275mpd"](4608,Nu.a,Nu.a,[]),t["\u0275mpd"](4608,Fu.a,Fu.a,[]),t["\u0275mpd"](4608,ju.a,ju.a,[]),t["\u0275mpd"](4608,Pu.a,Pu.a,[yl.a]),t["\u0275mpd"](4608,wn.a,wn.a,[]),t["\u0275mpd"](4608,Jl.a,Jl.a,[]),t["\u0275mpd"](4608,d.E,d.E,[]),t["\u0275mpd"](4608,d.h,d.h,[]),t["\u0275mpd"](4608,Au.b,Au.b,[]),t["\u0275mpd"](4608,zu.a,zu.a,[]),t["\u0275mpd"](4608,Bu.a,Bu.a,[t.RendererFactory2,t.PLATFORM_ID]),t["\u0275mpd"](4608,Xl.a,Xl.a,[t.ComponentFactoryResolver,t.NgZone,t.Injector,Bu.a,t.ApplicationRef]),t["\u0275mpd"](4608,Uu.a,Uu.a,[]),t["\u0275mpd"](4608,nn.b,nn.b,[t.RendererFactory2,Xl.a]),t["\u0275mpd"](4608,Mu.ScrollbarHelper,Mu.ScrollbarHelper,[bl.DOCUMENT]),t["\u0275mpd"](4608,Ou.DimensionsHelper,Ou.DimensionsHelper,[]),t["\u0275mpd"](4608,Lu.ColumnChangesService,Lu.ColumnChangesService,[]),t["\u0275mpd"](4608,Yl.f,Yl.f,[]),t["\u0275mpd"](4608,q.a,q.a,[]),t["\u0275mpd"](4608,o.a,o.a,[Gu.l,q.a]),t["\u0275mpd"](4608,ml.e,ml.e,[]),t["\u0275mpd"](1073742336,El.CommonModule,El.CommonModule,[]),t["\u0275mpd"](1073742336,Ku.a,Ku.a,[]),t["\u0275mpd"](1073742336,d.B,d.B,[]),t["\u0275mpd"](1073742336,d.n,d.n,[]),t["\u0275mpd"](1073742336,d.x,d.x,[]),t["\u0275mpd"](1073742336,Au.c,Au.c,[]),t["\u0275mpd"](1073742336,zu.d,zu.d,[]),t["\u0275mpd"](1073742336,Uu.d,Uu.d,[]),t["\u0275mpd"](1073742336,$u.ChartsModule,$u.ChartsModule,[]),t["\u0275mpd"](1073742336,nn.e,nn.e,[]),t["\u0275mpd"](1073742336,Zu.a,Zu.a,[]),t["\u0275mpd"](1073742336,Yl.e,Yl.e,[]),t["\u0275mpd"](1073742336,Qu.a,Qu.a,[]),t["\u0275mpd"](1073742336,Hu.NgxDatatableModule,Hu.NgxDatatableModule,[]),t["\u0275mpd"](1073742336,Gu.p,Gu.p,[[2,Gu.v],[2,Gu.l]]),t["\u0275mpd"](1073742336,Yu.a,Yu.a,[]),t["\u0275mpd"](1073742336,h.a,h.a,[]),t["\u0275mpd"](1073742336,Xu.a,Xu.a,[]),t["\u0275mpd"](1073742336,Ju.a,Ju.a,[]),t["\u0275mpd"](1073742336,ml.c,ml.c,[]),t["\u0275mpd"](1073742336,H,H,[]),t["\u0275mpd"](256,t.LOCALE_ID,"en-US",[]),t["\u0275mpd"](256,Yl.a,{autoClose:!0,insideClick:!1},[]),t["\u0275mpd"](256,t.TRANSLATIONS_FORMAT,"xlf",[])])}),At=t["\u0275cmf"](tl,[],function(l){return t["\u0275mod"]([t["\u0275mpd"](512,t.ComponentFactoryResolver,t["\u0275CodegenComponentFactoryResolver"],[[8,[il.a,ol.a,al.a,rl.a,rl.b,sl.a,dl.a,cl.a,pl.a,fl.a,Fl,Ql,In,Fn,nu,fu,wu,ee,se,st,ft,qt,jt]],[3,t.ComponentFactoryResolver],t.NgModuleRef]),t["\u0275mpd"](4608,El.NgLocalization,El.NgLocaleLocalization,[t.LOCALE_ID,[2,El["\u0275angular_packages_common_common_a"]]]),t["\u0275mpd"](4608,jl.a,jl.a,[yl.a]),t["\u0275mpd"](4608,El.DatePipe,El.DatePipe,[t.LOCALE_ID]),t["\u0275mpd"](4608,F.a,F.a,[]),t["\u0275mpd"](4608,a.a,a.a,[]),t["\u0275mpd"](4608,z.a,z.a,[]),t["\u0275mpd"](4608,Wl.a,Wl.a,[z.a]),t["\u0275mpd"](4608,xu.a,xu.a,[z.a]),t["\u0275mpd"](4608,Pl.a,Pl.a,[z.a]),t["\u0275mpd"](4608,Eu.a,Eu.a,[]),t["\u0275mpd"](4608,Tu.a,Tu.a,[]),t["\u0275mpd"](4608,qu.a,qu.a,[]),t["\u0275mpd"](4608,Vu.a,Vu.a,[]),t["\u0275mpd"](4608,Rl.a,Rl.a,[El.DatePipe]),t["\u0275mpd"](4608,Su.a,Su.a,[]),t["\u0275mpd"](4608,Du.a,Du.a,[]),t["\u0275mpd"](4608,Nu.a,Nu.a,[]),t["\u0275mpd"](4608,Fu.a,Fu.a,[]),t["\u0275mpd"](4608,ju.a,ju.a,[]),t["\u0275mpd"](4608,Pu.a,Pu.a,[yl.a]),t["\u0275mpd"](4608,wn.a,wn.a,[]),t["\u0275mpd"](4608,Jl.a,Jl.a,[]),t["\u0275mpd"](4608,d.E,d.E,[]),t["\u0275mpd"](4608,d.h,d.h,[]),t["\u0275mpd"](4608,Au.b,Au.b,[]),t["\u0275mpd"](4608,zu.a,zu.a,[]),t["\u0275mpd"](4608,Bu.a,Bu.a,[t.RendererFactory2,t.PLATFORM_ID]),t["\u0275mpd"](4608,Xl.a,Xl.a,[t.ComponentFactoryResolver,t.NgZone,t.Injector,Bu.a,t.ApplicationRef]),t["\u0275mpd"](4608,Uu.a,Uu.a,[]),t["\u0275mpd"](4608,nn.b,nn.b,[t.RendererFactory2,Xl.a]),t["\u0275mpd"](4608,Mu.ScrollbarHelper,Mu.ScrollbarHelper,[bl.DOCUMENT]),t["\u0275mpd"](4608,Ou.DimensionsHelper,Ou.DimensionsHelper,[]),t["\u0275mpd"](4608,Lu.ColumnChangesService,Lu.ColumnChangesService,[]),t["\u0275mpd"](4608,Yl.f,Yl.f,[]),t["\u0275mpd"](4608,q.a,q.a,[]),t["\u0275mpd"](4608,o.a,o.a,[Gu.l,q.a]),t["\u0275mpd"](4608,ml.e,ml.e,[]),t["\u0275mpd"](1073742336,El.CommonModule,El.CommonModule,[]),t["\u0275mpd"](1073742336,Ku.a,Ku.a,[]),t["\u0275mpd"](1073742336,d.B,d.B,[]),t["\u0275mpd"](1073742336,d.n,d.n,[]),t["\u0275mpd"](1073742336,d.x,d.x,[]),t["\u0275mpd"](1073742336,Au.c,Au.c,[]),t["\u0275mpd"](1073742336,zu.d,zu.d,[]),t["\u0275mpd"](1073742336,Uu.d,Uu.d,[]),t["\u0275mpd"](1073742336,$u.ChartsModule,$u.ChartsModule,[]),t["\u0275mpd"](1073742336,nn.e,nn.e,[]),t["\u0275mpd"](1073742336,Zu.a,Zu.a,[]),t["\u0275mpd"](1073742336,Yl.e,Yl.e,[]),t["\u0275mpd"](1073742336,Qu.a,Qu.a,[]),t["\u0275mpd"](1073742336,Hu.NgxDatatableModule,Hu.NgxDatatableModule,[]),t["\u0275mpd"](1073742336,Gu.p,Gu.p,[[2,Gu.v],[2,Gu.l]]),t["\u0275mpd"](1073742336,Yu.a,Yu.a,[]),t["\u0275mpd"](1073742336,h.a,h.a,[]),t["\u0275mpd"](1073742336,Xu.a,Xu.a,[]),t["\u0275mpd"](1073742336,Ju.a,Ju.a,[]),t["\u0275mpd"](1073742336,ml.c,ml.c,[]),t["\u0275mpd"](1073742336,H,H,[]),t["\u0275mpd"](1073742336,tl,tl,[]),t["\u0275mpd"](256,t.LOCALE_ID,"en-US",[]),t["\u0275mpd"](256,Yl.a,{autoClose:!0,insideClick:!1},[]),t["\u0275mpd"](1024,Gu.j,function(){return[[{path:"",redirectTo:"daemon",pathMatch:"full"},{path:"daemon",component:j,data:Y},{path:"user",data:X,children:[{path:"",component:Q},{path:"create",component:K,data:J},{path:"edit/:uid",component:K,data:W}]},{path:"bucket",data:ll,children:[{path:"",component:D},{path:"create",component:I,data:nl},{path:"edit/:bid",component:I,data:ul}]},{path:"501/:message",component:s,canActivate:[o.a],data:el}]]},[]),t["\u0275mpd"](256,t.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/6.f054f1f260c137d64363.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/6.f054f1f260c137d64363.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/6.f054f1f260c137d64363.js 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/6.f054f1f260c137d64363.js 2021-03-15 17:51:46.000000000 +0000 @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{EmSq:function(l,n,u){"use strict";u.d(n,"a",function(){return i});var e=u("CcnG"),t=u("LvDl"),i=(u("Fgil"),u("aXbf"),function(){function l(l,n,u,t){this.elementRef=l,this.control=n,this.dimlessBinaryPipe=u,this.formatter=t,this.ngModelChange=new e.EventEmitter,this.el=this.elementRef.nativeElement}return l.prototype.ngOnInit=function(){this.setValue(this.el.value)},l.prototype.setValue=function(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");var n=this.formatter.toBytes(l),u=this.round(n);this.el.value=this.dimlessBinaryPipe.transform(u),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))},l.prototype.round=function(l){if(null!==l&&0!==l){if(!t.isUndefined(this.minBytes)&&lthis.maxBytes)return this.maxBytes;if(!t.isUndefined(this.roundPower)){var n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l},l.prototype.onBlur=function(l){this.setValue(l)},l}())},OcYo:function(l,n,u){"use strict";u.d(n,"a",function(){return e});var e=function(){function l(l,n,u){this.elementRef=l,this.renderer=n,this.toastr=u}return l.prototype.ngOnInit=function(){var l=this.renderer.createElement("i");this.renderer.addClass(l,"icon-prepend"),this.renderer.addClass(l,"fa"),this.renderer.addClass(l,"fa-clipboard"),this.renderer.appendChild(this.elementRef.nativeElement,l)},l.prototype.getInputElement=function(){return document.getElementById(this.cdCopy2ClipboardButton)},l.prototype.onClick=function(){try{var l=document.createElement("input");l.value=this.getInputElement().value,document.body.appendChild(l),l.select(),document.execCommand("copy"),document.body.removeChild(l),this.toastr.success("Copied text to the clipboard successfully.")}catch(n){this.toastr.error("Failed to copy text to the clipboard.")}},l}()},Znkk:function(l,n,u){"use strict";u.r(n);var e,t=u("CcnG"),i=u("sne2"),o=u("Avrn"),a=u("+0ag"),r=u("mSOc"),s=function(){function l(l,n,u){this.route=l,this.summaryService=n,this.cephReleaseNamePipe=u,this.message="The Object Gateway service is not configured."}return l.prototype.ngOnInit=function(){var l=this,n=this.summaryService.subscribe(function(u){if(u){var e=l.cephReleaseNamePipe.transform(u.version);l.docsUrl="http://docs.ceph.com/docs/"+e+"/mgr/dashboard/#enabling-the-object-gateway-management-frontend",setTimeout(function(){n.unsubscribe()},0)}});this.routeParamsSubscribe=this.route.params.subscribe(function(n){l.message=n.message})},l.prototype.ngOnDestroy=function(){this.routeParamsSubscribe.unsubscribe()},l}(),d=u("gIcY"),c=u("LvDl"),p=u("mrSG"),f=u("t/Na"),m=u("F/XL"),g=u("psW0"),v=u("xTzq"),b=u("pL04"),h=function(){function l(l){this.http=l,this.url="api/rgw/bucket"}return l.prototype.list=function(){var l=new f.h;return l=l.append("stats","true"),this.http.get(this.url,{params:l})},l.prototype.enumerate=function(){return this.http.get(this.url)},l.prototype.get=function(l){return this.http.get(this.url+"/"+l)},l.prototype.create=function(l,n){var u=new f.h;return u=(u=u.append("bucket",l)).append("uid",n),this.http.post(this.url,null,{params:u})},l.prototype.update=function(l,n,u){var e=new f.h;return e=(e=e.append("bucket_id",n)).append("uid",u),this.http.put(this.url+"/"+l,null,{params:e})},l.prototype.delete=function(l,n){void 0===n&&(n=!0);var u=new f.h;return u=u.append("purge_objects",n?"true":"false"),this.http.delete(this.url+"/"+l,{params:u})},l.prototype.exists=function(l){return this.enumerate().pipe(Object(g.a)(function(n){var u=c.indexOf(n,l);return Object(m.a)(-1!==u)}))},l.ngInjectableDef=t.defineInjectable({factory:function(){return new l(t.inject(f.c))},token:l,providedIn:b.a}),l=p.__decorate([v.a,p.__metadata("design:paramtypes",[f.c])],l)}(),y=u("P8lu"),C=u("mtw6"),_=u("2EZI"),k=u("9nlD"),R=function(){function l(l,n,u,e,t,o,a,r){this.route=l,this.router=n,this.formBuilder=u,this.rgwBucketService=e,this.rgwUserService=t,this.notificationService=o,this.i18n=a,this.actionLabels=r,this.editing=!1,this.error=!1,this.loading=!1,this.owners=null,this.editing=this.router.url.startsWith("/rgw/bucket/"+i.e.EDIT),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("bucket"),this.createForm()}return l.prototype.createForm=function(){this.bucketForm=this.formBuilder.group({id:[null],bid:[null,[d.A.required],[this.bucketNameValidator()]],owner:[null,[d.A.required]]})},l.prototype.ngOnInit=function(){var l=this;this.rgwUserService.enumerate().subscribe(function(n){l.owners=n.sort()}),this.route.params.subscribe(function(n){if(n.hasOwnProperty("bid")){var u=decodeURIComponent(n.bid);l.loading=!0,l.rgwBucketService.get(u).subscribe(function(n){l.loading=!1;var u=c.clone(l.bucketForm.value),e=c.pick(n,c.keys(l.bucketForm.value));e=c.merge(u,e),l.bucketForm.setValue(e)})}},function(n){l.error=n})},l.prototype.goToListView=function(){this.router.navigate(["/rgw/bucket"])},l.prototype.submit=function(){var l=this;if(this.bucketForm.pristine)this.goToListView();else{var n=this.bucketForm.get("bid"),u=this.bucketForm.get("owner");if(this.editing){var e=this.bucketForm.get("id");this.rgwBucketService.update(n.value,e.value,u.value).subscribe(function(){l.notificationService.show(C.a.success,l.i18n('Updated Object Gateway bucket "{{bid}}"',{bid:n.value})),l.goToListView()},function(){l.bucketForm.setErrors({cdSubmitButton:!0})})}else this.rgwBucketService.create(n.value,u.value).subscribe(function(){l.notificationService.show(C.a.success,l.i18n('Created Object Gateway bucket "{{bid}}"',{bid:n.value})),l.goToListView()},function(){l.bucketForm.setErrors({cdSubmitButton:!0})})}},l.prototype.bucketNameValidator=function(){var l=this.rgwBucketService;return function(n){return new Promise(function(u){n.pristine||""===n.value?u(null):/^[0-9A-Za-z][\w-\.]{2,254}$/.test(n.value)?l.exists(n.value).subscribe(function(l){u(l?{bucketNameExists:!0}:null)}):u({bucketNameInvalid:!0})})}},l}(),I=u("6blF"),w=u("VNr4"),E=u("0+/T"),x=u("uIqm"),T=u("vCyI"),q=u("Fgil"),V=u("o4+5"),S=u("aexS"),D=u("EgGo"),N=new D.a("rgw/bucket"),F=function(){function l(l,n,u,e,t,i,o,a,r){var s=this;this.authStorageService=l,this.dimlessBinaryPipe=n,this.dimlessPipe=u,this.rgwBucketService=e,this.bsModalService=t,this.i18n=i,this.urlBuilder=o,this.actionLabels=a,this.changeDetectorRef=r,this.columns=[],this.buckets=[],this.selection=new T.a,this.permission=this.authStorageService.getPermissions().rgw,this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return s.urlBuilder.getCreate()},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return s.urlBuilder.getEdit(s.selection.first()&&""+encodeURIComponent(s.selection.first().bid))},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-times",click:function(){return s.deleteAction()},name:this.actionLabels.DELETE}]}return l.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"bid",flexGrow:2},{name:this.i18n("Owner"),prop:"owner",flexGrow:3},{name:this.i18n("Used Capacity"),prop:"bucket_size",flexGrow:.5,pipe:this.dimlessBinaryPipe},{name:this.i18n("Capacity Limit %"),prop:"size_usage",cellTemplate:this.bucketSizeTpl,flexGrow:1},{name:this.i18n("Objects"),prop:"num_objects",flexGrow:.5,pipe:this.dimlessPipe},{name:this.i18n("Object Limit %"),prop:"object_usage",cellTemplate:this.bucketObjectTpl,flexGrow:1}]},l.prototype.transformBucketData=function(){c.forEach(this.buckets,function(l){var n=l.bucket_quota.max_size,u=l.bucket_quota.max_objects,e=0,t=0;c.forEach(l.usage,function(l){e+=l.size_actual,t+=l.num_objects}),l.bucket_size=e,l.num_objects=t,l.size_usage=n>0?e/n:void 0,l.object_usage=u>0?t/u:void 0})},l.prototype.getBucketList=function(l){var n=this;this.rgwBucketService.list().subscribe(function(l){n.buckets=l,n.transformBucketData(),n.changeDetectorRef.detectChanges()},function(){l.error()})},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.deleteAction=function(){var l=this;this.bsModalService.show(E.a,{initialState:{itemDescription:this.i18n(this.selection.hasSingleSelection?"bucket":"buckets"),itemNames:this.selection.selected.map(function(l){return l.bid}),submitActionObservable:function(){return new I.a(function(n){Object(w.a)(l.selection.selected.map(function(n){return l.rgwBucketService.delete(n.bid)})).subscribe(null,function(u){n.error(u),l.table.refreshBtn()},function(){n.complete(),l.table.refreshBtn()})})}}})},l}(),j=function(){function l(l){this.http=l,this.url="api/rgw/daemon"}return l.prototype.list=function(){return this.http.get(this.url)},l.prototype.get=function(l){return this.http.get(this.url+"/"+l)},l.ngInjectableDef=t.defineInjectable({factory:function(){return new l(t.inject(f.c))},token:l,providedIn:b.a}),l=p.__decorate([v.a,p.__metadata("design:paramtypes",[f.c])],l)}(),P=u("85J/"),z=function(){function l(l,n,u,e){this.rgwDaemonService=l,this.authStorageService=n,this.i18n=e,this.columns=[],this.daemons=[],this.selection=new T.a,this.grafanaPermission=this.authStorageService.getPermissions().grafana,this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:2},{name:this.i18n("Hostname"),prop:"server_hostname",flexGrow:2},{name:this.i18n("Version"),prop:"version",flexGrow:1,pipe:u}]}return l.prototype.getDaemonList=function(l){var n=this;this.rgwDaemonService.list().subscribe(function(l){n.daemons=l},function(){l.error()})},l.prototype.updateSelection=function(l){this.selection=l},l}(),A=u("dEwP"),B=u("1Ni5"),U=u("aXbf");!function(l){l.USERS="users",l.BUCKETS="buckets",l.METADATA="metadata",l.USAGE="usage",l.ZONE="zone"}(e||(e={}));var M=function(){function l(){}return l.getAll=function(){return Object.values(l.capabilities)},l.capabilities=e,l}(),O=function(){function l(l,n,u,e){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=e,this.submitAction=new t.EventEmitter,this.editing=!0,this.types=[],this.resource=this.i18n("capability"),this.createForm()}return l.prototype.createForm=function(){this.formGroup=this.formBuilder.group({type:[null,[d.A.required]],perm:[null,[d.A.required]]})},l.prototype.setEditing=function(l){void 0===l&&(l=!0),this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.ADD},l.prototype.setValues=function(l,n){this.formGroup.setValue({type:l,perm:n})},l.prototype.setCapabilities=function(l){var n=this,u=[];l.forEach(function(l){u.push(l.type)}),this.types=[],M.getAll().forEach(function(l){-1===c.indexOf(u,l)&&n.types.push(l)})},l.prototype.onSubmit=function(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()},l}(),L=function(){function l(l,n,u,e){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=e,this.submitAction=new t.EventEmitter,this.viewing=!0,this.userCandidates=[],this.resource=this.i18n("S3 Key"),this.createForm()}return l.prototype.createForm=function(){this.formGroup=this.formBuilder.group({user:[null,[d.A.required]],generate_key:[!0],access_key:[null,[B.a.requiredIf({generate_key:!1})]],secret_key:[null,[B.a.requiredIf({generate_key:!1})]]})},l.prototype.setViewing=function(l){void 0===l&&(l=!0),this.viewing=l,this.action=this.viewing?this.actionLabels.SHOW:this.actionLabels.CREATE},l.prototype.setValues=function(l,n,u){this.formGroup.setValue({user:l,generate_key:c.isEmpty(n),access_key:n,secret_key:u})},l.prototype.setUserCandidates=function(l){this.userCandidates=l},l.prototype.onSubmit=function(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()},l}(),G=function(){return function(){}}(),K=function(){function l(l,n,u,e){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=e,this.submitAction=new t.EventEmitter,this.editing=!0,this.subusers=[],this.resource=this.i18n("Subuser"),this.createForm()}return l.prototype.createForm=function(){this.formGroup=this.formBuilder.group({uid:[null],subuid:[null,[d.A.required,this.subuserValidator()]],perm:[null,[d.A.required]],generate_secret:[!0],secret_key:[null,[B.a.requiredIf({generate_secret:!1})]]})},l.prototype.subuserValidator=function(){var l=this;return function(n){return l.editing?null:Object(B.b)(n.value)?null:l.subusers.some(function(u){return c.isEqual(l.getSubuserName(u.id),n.value)})?{subuserIdExists:!0}:null}},l.prototype.getSubuserName=function(l){if(c.isEmpty(l))return l;var n=l.match(/([^:]+)(:(.+))?/);return c.isUndefined(n[3])?n[1]:n[3]},l.prototype.setEditing=function(l){void 0===l&&(l=!0),this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE},l.prototype.setValues=function(l,n,u){void 0===n&&(n=""),void 0===u&&(u=""),this.formGroup.setValue({uid:l,subuid:this.getSubuserName(n),perm:u,generate_secret:!0,secret_key:null})},l.prototype.setSubusers=function(l){this.subusers=l},l.prototype.onSubmit=function(){var l=this.formGroup.value,n=new G;n.id=l.uid+":"+l.subuid,n.permissions=l.perm,n.generate_secret=l.generate_secret,n.secret_key=l.secret_key,this.submitAction.emit(n),this.bsModalRef.hide()},l}(),$=function(){function l(l,n,u){this.bsModalRef=l,this.i18n=n,this.actionLabels=u,this.resource=this.i18n("Swift Key"),this.action=this.actionLabels.SHOW}return l.prototype.setValues=function(l,n){this.user=l,this.secret_key=n},l}(),Z=function(){function l(l,n,u,e,t,o,a,r){this.formBuilder=l,this.route=n,this.router=u,this.rgwUserService=e,this.bsModalService=t,this.notificationService=o,this.i18n=a,this.actionLabels=r,this.editing=!1,this.error=!1,this.loading=!1,this.submitObservables=[],this.subusers=[],this.s3Keys=[],this.swiftKeys=[],this.capabilities=[],this.resource=this.i18n("user"),this.subuserLabel=this.i18n("subuser"),this.s3keyLabel=this.i18n("S3 Key"),this.capabilityLabel=this.i18n("capability"),this.editing=this.router.url.startsWith("/rgw/user/"+i.e.EDIT),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.createForm()}return l.prototype.createForm=function(){this.userForm=this.formBuilder.group({uid:[null,[d.A.required],this.editing?[]:[B.a.unique(this.rgwUserService.exists,this.rgwUserService)]],display_name:[null,[d.A.required]],email:[null,[B.a.email],[B.a.unique(this.rgwUserService.emailExists,this.rgwUserService)]],max_buckets_mode:["1"],max_buckets:[1e3,[B.a.requiredIf({max_buckets_mode:"1"}),B.a.number(!1),d.A.min(1)]],suspended:[!1],generate_key:[!0],access_key:[null,[B.a.requiredIf({generate_key:!1})]],secret_key:[null,[B.a.requiredIf({generate_key:!1})]],user_quota_enabled:[!1],user_quota_max_size_unlimited:[!0],user_quota_max_size:[null,[B.a.requiredIf({user_quota_enabled:!0,user_quota_max_size_unlimited:!1}),this.quotaMaxSizeValidator]],user_quota_max_objects_unlimited:[!0],user_quota_max_objects:[null,[d.A.min(0),B.a.requiredIf({user_quota_enabled:!0,user_quota_max_objects_unlimited:!1})]],bucket_quota_enabled:[!1],bucket_quota_max_size_unlimited:[!0],bucket_quota_max_size:[null,[B.a.requiredIf({bucket_quota_enabled:!0,bucket_quota_max_size_unlimited:!1}),this.quotaMaxSizeValidator]],bucket_quota_max_objects_unlimited:[!0],bucket_quota_max_objects:[null,[d.A.min(0),B.a.requiredIf({bucket_quota_enabled:!0,bucket_quota_max_objects_unlimited:!1})]]})},l.prototype.ngOnInit=function(){var l=this;this.route.params.subscribe(function(n){if(n.hasOwnProperty("uid")){var u=decodeURIComponent(n.uid);l.loading=!0;var e=[];e.push(l.rgwUserService.get(u)),e.push(l.rgwUserService.getQuota(u)),Object(w.a)(e).subscribe(function(n){l.loading=!1;var u=c.clone(l.userForm.value),e=c.pick(n[0],c.keys(l.userForm.value));switch(e.max_buckets){case-1:e.max_buckets_mode="-1",e.max_buckets="";break;case 0:e.max_buckets_mode="0",e.max_buckets="";break;default:e.max_buckets_mode="1"}["user","bucket"].forEach(function(l){var u=n[1][l+"_quota"];e[l+"_quota_enabled"]=u.enabled,u.max_size<0?(e[l+"_quota_max_size_unlimited"]=!0,e[l+"_quota_max_size"]=null):(e[l+"_quota_max_size_unlimited"]=!1,e[l+"_quota_max_size"]=u.max_size+" B"),u.max_objects<0?(e[l+"_quota_max_objects_unlimited"]=!0,e[l+"_quota_max_objects"]=null):(e[l+"_quota_max_objects_unlimited"]=!1,e[l+"_quota_max_objects"]=u.max_objects)}),e=c.merge(u,e),l.userForm.setValue(e),l.subusers=n[0].subusers,l.s3Keys=n[0].keys,l.swiftKeys=n[0].swift_keys;var t={"read, write":"*"};n[0].caps.forEach(function(l){l.perm in t&&(l.perm=t[l.perm])}),l.capabilities=n[0].caps},function(n){l.error=n})}})},l.prototype.goToListView=function(){this.router.navigate(["/rgw/user"])},l.prototype.onSubmit=function(){var l,n=this;if(this.userForm.pristine)this.goToListView();else{var u=this.userForm.getValue("uid");if(this.editing){if(this._isGeneralDirty()){var e=this._getUpdateArgs();this.submitObservables.push(this.rgwUserService.update(u,e))}l=this.i18n('Updated Object Gateway user "{{uid}}"',{uid:u})}else e=this._getCreateArgs(),this.submitObservables.push(this.rgwUserService.create(e)),l=this.i18n('Created Object Gateway user "{{uid}}"',{uid:u});if(this._isUserQuotaDirty()){var t=this._getUserQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(u,t))}if(this._isBucketQuotaDirty()){var i=this._getBucketQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(u,i))}A.a.apply(void 0,this.submitObservables).subscribe({error:function(){n.userForm.setErrors({cdSubmitButton:!0})},complete:function(){n.notificationService.show(C.a.success,l),n.goToListView()}})}},l.prototype.quotaMaxSizeValidator=function(l){return Object(B.b)(l.value)?null:null===RegExp("^(\\d+(\\.\\d+)?)\\s*(B|K(B|iB)?|M(B|iB)?|G(B|iB)?|T(B|iB)?)?$","i").exec(l.value)?{quotaMaxSize:!0}:(new U.a).toBytes(l.value)<1024?{quotaMaxSize:!0}:null},l.prototype.setSubuser=function(l,n){var u={"full-control":"full","read-write":"readwrite"},e=this.userForm.getValue("uid");this.submitObservables.push(this.rgwUserService.createSubuser(e,{subuser:l.id,access:l.permissions in u?u[l.permissions]:l.permissions,key_type:"swift",secret_key:l.secret_key,generate_secret:l.generate_secret?"true":"false"})),c.isNumber(n)?this.subusers[n]=l:(this.subusers.push(l),this.swiftKeys.push({user:l.id,secret_key:l.generate_secret?"Apply your changes first...":l.secret_key})),this.userForm.markAsDirty()},l.prototype.deleteSubuser=function(l){var n=this.subusers[l];this.submitObservables.push(this.rgwUserService.deleteSubuser(this.userForm.getValue("uid"),n.id)),this.s3Keys=this.s3Keys.filter(function(l){return l.user!==n.id}),this.swiftKeys=this.swiftKeys.filter(function(l){return l.user!==n.id}),this.subusers.splice(l,1),this.userForm.markAsDirty()},l.prototype.setCapability=function(l,n){var u=this.userForm.getValue("uid");if(c.isNumber(n)){var e=this.capabilities[n];this.submitObservables.push(this.rgwUserService.deleteCapability(u,e.type,e.perm)),this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities[n]=l}else this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities.push(l);this.userForm.markAsDirty()},l.prototype.deleteCapability=function(l){var n=this.capabilities[l];this.submitObservables.push(this.rgwUserService.deleteCapability(this.userForm.getValue("uid"),n.type,n.perm)),this.capabilities.splice(l,1),this.userForm.markAsDirty()},l.prototype.hasAllCapabilities=function(){return!c.difference(M.getAll(),c.map(this.capabilities,"type")).length},l.prototype.setS3Key=function(l,n){if(c.isNumber(n));else{var u=l.user.match(/([^:]+)(:(.+))?/),e=u[1],t={subuser:u[2]?u[3]:"",generate_key:l.generate_key?"true":"false"};"false"===t.generate_key&&(c.isNil(l.access_key)||(t.access_key=l.access_key),c.isNil(l.secret_key)||(t.secret_key=l.secret_key)),this.submitObservables.push(this.rgwUserService.addS3Key(e,t)),this.s3Keys.push({user:l.user,access_key:l.generate_key?"Apply your changes first...":l.access_key,secret_key:l.generate_key?"Apply your changes first...":l.secret_key})}this.userForm.markAsDirty()},l.prototype.deleteS3Key=function(l){var n=this.s3Keys[l];this.submitObservables.push(this.rgwUserService.deleteS3Key(this.userForm.getValue("uid"),n.access_key)),this.s3Keys.splice(l,1),this.userForm.markAsDirty()},l.prototype.showSubuserModal=function(l){var n=this,u=this.userForm.getValue("uid"),e=this.bsModalService.show(K);if(c.isNumber(l)){var t=this.subusers[l];e.content.setEditing(),e.content.setValues(u,t.id,t.permissions)}else e.content.setEditing(!1),e.content.setValues(u),e.content.setSubusers(this.subusers);e.content.submitAction.subscribe(function(u){n.setSubuser(u,l)})},l.prototype.showS3KeyModal=function(l){var n=this,u=this.bsModalService.show(L);if(c.isNumber(l)){var e=this.s3Keys[l];u.content.setViewing(),u.content.setValues(e.user,e.access_key,e.secret_key)}else{var t=this._getS3KeyUserCandidates();u.content.setViewing(!1),u.content.setUserCandidates(t),u.content.submitAction.subscribe(function(l){n.setS3Key(l)})}},l.prototype.showSwiftKeyModal=function(l){var n=this.bsModalService.show($),u=this.swiftKeys[l];n.content.setValues(u.user,u.secret_key)},l.prototype.showCapabilityModal=function(l){var n=this,u=this.bsModalService.show(O);if(c.isNumber(l)){var e=this.capabilities[l];u.content.setEditing(),u.content.setValues(e.type,e.perm)}else u.content.setEditing(!1),u.content.setCapabilities(this.capabilities);u.content.submitAction.subscribe(function(u){n.setCapability(u,l)})},l.prototype._isGeneralDirty=function(){var l=this;return["display_name","email","max_buckets_mode","max_buckets","suspended"].some(function(n){return l.userForm.get(n).dirty})},l.prototype._isUserQuotaDirty=function(){var l=this;return["user_quota_enabled","user_quota_max_size_unlimited","user_quota_max_size","user_quota_max_objects_unlimited","user_quota_max_objects"].some(function(n){return l.userForm.get(n).dirty})},l.prototype._isBucketQuotaDirty=function(){var l=this;return["bucket_quota_enabled","bucket_quota_max_size_unlimited","bucket_quota_max_size","bucket_quota_max_objects_unlimited","bucket_quota_max_objects"].some(function(n){return l.userForm.get(n).dirty})},l.prototype._getCreateArgs=function(){var l={uid:this.userForm.getValue("uid"),display_name:this.userForm.getValue("display_name"),suspended:this.userForm.getValue("suspended"),email:"",max_buckets:this.userForm.getValue("max_buckets"),generate_key:this.userForm.getValue("generate_key"),access_key:"",secret_key:""},n=this.userForm.getValue("email");c.isString(n)&&n.length>0&&c.merge(l,{email:n}),this.userForm.getValue("generate_key")||c.merge(l,{generate_key:!1,access_key:this.userForm.getValue("access_key"),secret_key:this.userForm.getValue("secret_key")});var u=parseInt(this.userForm.getValue("max_buckets_mode"),10);return c.includes([-1,0],u)&&c.merge(l,{max_buckets:u}),l},l.prototype._getUpdateArgs=function(){for(var l={},n=0,u=["display_name","email","max_buckets","suspended"];n-1),l(n,22,0,u.bucket.bucket_quota.max_objects<=-1),l(n,24,0,u.bucket.bucket_quota.max_objects>-1)},function(l,n){var u=n.component,e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent.parent.parent,1),u.bucket.bucket_quota.enabled));l(n,9,0,e)})}function Kl(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,60,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,57,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,56,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](7,null,["",""])),(l()(),t["\u0275eld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["ID"])),(l()(),t["\u0275eld"](11,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](12,null,["",""])),(l()(),t["\u0275eld"](13,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](14,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Owner"])),(l()(),t["\u0275eld"](16,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](17,null,["",""])),(l()(),t["\u0275eld"](18,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Index type"])),(l()(),t["\u0275eld"](21,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](22,null,["",""])),(l()(),t["\u0275eld"](23,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Placement rule"])),(l()(),t["\u0275eld"](26,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](27,null,["",""])),(l()(),t["\u0275eld"](28,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](29,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Marker"])),(l()(),t["\u0275eld"](31,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](32,null,["",""])),(l()(),t["\u0275eld"](33,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](34,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum marker"])),(l()(),t["\u0275eld"](36,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](37,null,["",""])),(l()(),t["\u0275eld"](38,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Version"])),(l()(),t["\u0275eld"](41,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](42,null,["",""])),(l()(),t["\u0275eld"](43,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](44,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Master version"])),(l()(),t["\u0275eld"](46,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](47,null,["",""])),(l()(),t["\u0275eld"](48,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](49,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Modification time"])),(l()(),t["\u0275eld"](51,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](52,null,["",""])),t["\u0275ppd"](53,1),(l()(),t["\u0275eld"](54,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](55,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Zonegroup"])),(l()(),t["\u0275eld"](57,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["\u0275ted"](58,null,["",""])),(l()(),t["\u0275and"](16777216,null,null,1,null,Gl)),t["\u0275did"](60,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,60,0,n.component.bucket.bucket_quota)},function(l,n){var u=n.component;l(n,7,0,u.bucket.bid),l(n,12,0,u.bucket.id),l(n,17,0,u.bucket.owner),l(n,22,0,u.bucket.index_type),l(n,27,0,u.bucket.placement_rule),l(n,32,0,u.bucket.marker),l(n,37,0,u.bucket.max_marker),l(n,42,0,u.bucket.ver),l(n,47,0,u.bucket.master_ver);var e=t["\u0275unv"](n,52,0,l(n,53,0,t["\u0275nov"](n.parent.parent,0),u.bucket.mtime));l(n,52,0,e),l(n,58,0,u.bucket.zonegroup)})}function $l(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,kl.b,kl.a)),t["\u0275did"](1,180224,null,0,vl.d,[vl.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,vl.b,[vl.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Kl)),t["\u0275did"](5,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.bucket)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass)})}function Zl(l){return t["\u0275vid"](0,[t["\u0275pid"](0,wl.a,[ql.DatePipe]),t["\u0275pid"](0,zl.a,[_l.a]),t["\u0275pid"](0,V.a,[U.a]),(l()(),t["\u0275and"](16777216,null,null,1,null,$l)),t["\u0275did"](4,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,4,0,n.component.selection.hasSingleSelection)},null)}function Ql(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-bucket-details",[],null,null,null,Zl,Bl)),t["\u0275did"](1,573440,null,0,Al,[],null,null)],null,null)}var Hl=t["\u0275ccf"]("cd-rgw-bucket-details",Al,Ql,{selection:"selection"},{},[]),Yl=u("25BL"),Xl=u("xtZt"),Jl=u("lqqz"),Wl=u("TJUb"),ln=function(){function l(l,n,u){this.rgwUserService=l,this.bsModalService=n,this.i18n=u,this.keys=[],this.keysColumns=[],this.keysSelection=new T.a}return l.prototype.ngOnInit=function(){this.keysColumns=[{name:this.i18n("Username"),prop:"username",flexGrow:1},{name:this.i18n("Type"),prop:"type",flexGrow:1}],this.maxBucketsMap={"-1":this.i18n("Disabled"),0:this.i18n("Unlimited")}},l.prototype.ngOnChanges=function(){var l=this;this.selection.hasSelection&&(this.user=this.selection.first(),this.user.subusers=c.sortBy(this.user.subusers,"id"),this.user.caps=c.sortBy(this.user.caps,"type"),this.rgwUserService.getQuota(this.user.uid).subscribe(function(n){c.extend(l.user,n)}),this.keys=[],this.user.keys&&this.user.keys.forEach(function(n){l.keys.push({id:l.keys.length+1,type:"S3",username:n.user,ref:n})}),this.user.swift_keys&&this.user.swift_keys.forEach(function(n){l.keys.push({id:l.keys.length+1,type:"Swift",username:n.user,ref:n})}),this.keys=c.sortBy(this.keys,"user"))},l.prototype.updateKeysSelection=function(l){this.keysSelection=l},l.prototype.showKeyModal=function(){var l=this.keysSelection.first(),n=this.bsModalService.show("S3"===l.type?L:$);switch(l.type){case"S3":n.content.setViewing(),n.content.setValues(l.ref.user,l.ref.access_key,l.ref.secret_key);break;case"Swift":n.content.setValues(l.ref.user,l.ref.secret_key)}},l}(),nn=u("DQlY"),un=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function en(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Email address"])),(l()(),t["\u0275eld"](3,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,["",""]))],null,function(l,n){l(n,4,0,n.component.user.email)})}function tn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," (",") "]))],null,function(l,n){l(n,1,0,n.context.$implicit.id,n.context.$implicit.permissions)})}function on(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Subusers"])),(l()(),t["\u0275eld"](3,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,tn)),t["\u0275did"](5,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){l(n,5,0,n.component.user.subusers)},null)}function an(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," (",") "]))],null,function(l,n){l(n,1,0,n.context.$implicit.type,n.context.$implicit.perm)})}function rn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Capabilities"])),(l()(),t["\u0275eld"](3,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,an)),t["\u0275did"](5,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){l(n,5,0,n.component.user.caps)},null)}function sn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function dn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var u=n.component,e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent.parent.parent,2),u.user.user_quota.max_size));l(n,1,0,e)})}function cn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function pn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "]))],null,function(l,n){l(n,1,0,n.component.user.user_quota.max_objects)})}function fn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["User quota"])),(l()(),t["\u0275eld"](3,0,null,null,21,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,20,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275eld"](8,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,["",""])),t["\u0275ppd"](10,1),(l()(),t["\u0275eld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum size"])),(l()(),t["\u0275and"](16777216,null,null,1,null,sn)),t["\u0275did"](15,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,dn)),t["\u0275did"](17,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](18,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum objects"])),(l()(),t["\u0275and"](16777216,null,null,1,null,cn)),t["\u0275did"](22,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,pn)),t["\u0275did"](24,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,15,0,u.user.user_quota.max_size<=-1),l(n,17,0,u.user.user_quota.max_size>-1),l(n,22,0,u.user.user_quota.max_objects<=-1),l(n,24,0,u.user.user_quota.max_objects>-1)},function(l,n){var u=n.component,e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent.parent.parent,0),u.user.user_quota.enabled));l(n,9,0,e)})}function mn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function gn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "])),t["\u0275ppd"](2,1)],null,function(l,n){var u=n.component,e=t["\u0275unv"](n,1,0,l(n,2,0,t["\u0275nov"](n.parent.parent.parent.parent,2),u.user.bucket_quota.max_size));l(n,1,0,e)})}function vn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited"]))],null,null)}function bn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](1,null,[" "," "]))],null,function(l,n){l(n,1,0,n.component.user.bucket_quota.max_objects)})}function hn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Bucket quota"])),(l()(),t["\u0275eld"](3,0,null,null,21,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,20,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275eld"](8,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,["",""])),t["\u0275ppd"](10,1),(l()(),t["\u0275eld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum size"])),(l()(),t["\u0275and"](16777216,null,null,1,null,mn)),t["\u0275did"](15,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,gn)),t["\u0275did"](17,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](18,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum objects"])),(l()(),t["\u0275and"](16777216,null,null,1,null,vn)),t["\u0275did"](22,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,bn)),t["\u0275did"](24,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,15,0,u.user.bucket_quota.max_size<=-1),l(n,17,0,u.user.bucket_quota.max_size>-1),l(n,22,0,u.user.bucket_quota.max_objects<=-1),l(n,24,0,u.user.bucket_quota.max_objects>-1)},function(l,n){var u=n.component,e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent.parent.parent,0),u.user.bucket_quota.enabled));l(n,9,0,e)})}function yn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,40,"div",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,35,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,34,"tbody",[],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275eld"](6,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](7,null,["",""])),(l()(),t["\u0275eld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Full name"])),(l()(),t["\u0275eld"](11,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](12,null,["",""])),(l()(),t["\u0275and"](16777216,null,null,1,null,en)),t["\u0275did"](14,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](15,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Suspended"])),(l()(),t["\u0275eld"](18,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](19,null,["",""])),t["\u0275ppd"](20,1),(l()(),t["\u0275eld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](22,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["System"])),(l()(),t["\u0275eld"](24,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](25,null,["",""])),t["\u0275ppd"](26,1),(l()(),t["\u0275eld"](27,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](28,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Maximum buckets"])),(l()(),t["\u0275eld"](30,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275ted"](31,null,["",""])),t["\u0275ppd"](32,2),(l()(),t["\u0275and"](16777216,null,null,1,null,on)),t["\u0275did"](34,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,rn)),t["\u0275did"](36,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,fn)),t["\u0275did"](38,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,hn)),t["\u0275did"](40,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,14,0,null==u.user.email?null:u.user.email.length),l(n,34,0,u.user.subusers&&u.user.subusers.length),l(n,36,0,u.user.caps&&u.user.caps.length),l(n,38,0,u.user.user_quota),l(n,40,0,u.user.bucket_quota)},function(l,n){var u=n.component;l(n,7,0,u.user.uid),l(n,12,0,u.user.display_name);var e=t["\u0275unv"](n,19,0,l(n,20,0,t["\u0275nov"](n.parent.parent,0),u.user.suspended));l(n,19,0,e);var i=t["\u0275unv"](n,25,0,l(n,26,0,t["\u0275nov"](n.parent.parent,0),"true"===u.user.system));l(n,25,0,i);var o=t["\u0275unv"](n,31,0,l(n,32,0,t["\u0275nov"](n.parent.parent,1),u.user.max_buckets,u.maxBucketsMap));l(n,31,0,o)})}function Cn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"tab",[["heading","Keys"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](1,212992,null,0,vl.b,[vl.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](2,0,null,null,9,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["selectionType","multi"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateKeysSelection(u)&&e),e},Yl.b,Yl.a)),t["\u0275did"](3,2867200,null,0,x.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](4,0,null,0,7,"div",[["class","table-actions"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,16777216,null,null,6,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),t["\u0275prd"](512,null,Xl.f,Xl.f,[]),t["\u0275did"](7,212992,null,0,Xl.c,[t.ElementRef,t.Renderer2,t.ViewContainerRef,Jl.a,Xl.a,Xl.f],null,null),(l()(),t["\u0275eld"](8,0,null,null,3,"button",[["class","btn btn-sm btn-primary"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showKeyModal()&&e),e},null,null)),(l()(),t["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-eye"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Show"]))],function(l,n){var u=n.component;l(n,1,0,"Keys"),l(n,3,0,u.keys,u.keysColumns,"flex","true","multi"),l(n,7,0)},function(l,n){var u=n.component;l(n,0,0,t["\u0275nov"](n,1).id,t["\u0275nov"](n,1).active,t["\u0275nov"](n,1).addClass),l(n,5,0,t["\u0275nov"](n,7).dropup,t["\u0275nov"](n,7).isOpen,t["\u0275nov"](n,7).isOpen&&t["\u0275nov"](n,7).isBs4),l(n,8,0,!u.keysSelection.hasSingleSelection)})}function _n(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,kl.b,kl.a)),t["\u0275did"](1,180224,null,0,vl.d,[vl.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,vl.b,[vl.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,yn)),t["\u0275did"](5,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,0,1,null,Cn)),t["\u0275did"](7,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.user),l(n,7,0,u.keys.length)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass)})}function kn(l){return t["\u0275vid"](0,[t["\u0275pid"](0,zl.a,[_l.a]),t["\u0275pid"](0,Wl.a,[]),t["\u0275pid"](0,q.a,[U.a]),t["\u0275qud"](402653184,1,{accessKeyTpl:0}),t["\u0275qud"](402653184,2,{secretKeyTpl:0}),(l()(),t["\u0275and"](16777216,null,null,1,null,_n)),t["\u0275did"](6,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,6,0,n.component.selection.hasSingleSelection)},null)}function Rn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-details",[],null,null,null,kn,un)),t["\u0275did"](1,638976,null,0,ln,[y.a,nn.b,_l.a],null,null)],function(l,n){l(n,1,0)},null)}var In=t["\u0275ccf"]("cd-rgw-user-details",ln,Rn,{selection:"selection"},{},[]),wn=u("8xTl"),En=u("ANnk"),xn=u("f/UV"),Tn=u("D4zM"),qn=u("OcYo"),Vn=u("SZbH"),Sn=u("KVJa"),Dn=u("Z21x"),Nn=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Fn(l){return t["\u0275vid"](0,[t["\u0275pid"](0,ql.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,[""," ",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,33,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,32,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,13).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,13).onReset()&&e),e},null,null)),t["\u0275did"](12,16384,null,0,d.D,[],null,null),t["\u0275did"](13,4210688,null,0,d.t,[[8,null],[8,null]],null,null),t["\u0275prd"](2048,null,d.d,null,[d.t]),t["\u0275did"](15,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](16,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","user"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275eld"](19,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,6,"input",[["class","form-control"],["id","user"],["name","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0,i=l.component;return"input"===n&&(e=!1!==t["\u0275nov"](l,22)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,22).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,22)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,22)._compositionEnd(u.target.value)&&e),"ngModelChange"===n&&(e=!1!==(i.user=u)&&e),e},null,null)),t["\u0275did"](21,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](22,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](24,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),t["\u0275prd"](2048,null,d.q,null,[d.u]),t["\u0275did"](26,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](27,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](28,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275eld"](30,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](31,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](32,0,null,null,6,"input",[["class","form-control"],["id","secret_key"],["name","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0,i=l.component;return"input"===n&&(e=!1!==t["\u0275nov"](l,34)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,34).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,34)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,34)._compositionEnd(u.target.value)&&e),"ngModelChange"===n&&(e=!1!==(i.secret_key=u)&&e),e},null,null)),t["\u0275did"](33,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](34,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](36,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),t["\u0275prd"](2048,null,d.q,null,[d.u]),t["\u0275did"](38,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](39,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](40,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,41).onClick()&&e),e},null,null)),t["\u0275did"](41,81920,null,0,Tn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](42,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,43).onClick()&&e),e},null,null)),t["\u0275did"](43,81920,null,0,qn.a,[t.ElementRef,t.Renderer2,Vn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275eld"](44,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](45,0,null,null,1,"cd-back-button",[],null,null,null,Sn.b,Sn.a)),t["\u0275did"](46,49152,null,0,Dn.a,[ql.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,24,0,"user",u.user),l(n,36,0,"secret_key",u.secret_key),l(n,41,0,"secret_key"),l(n,43,0,"secret_key"),l(n,46,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,11,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending),l(n,20,0,!0,t["\u0275nov"](n,26).ngClassUntouched,t["\u0275nov"](n,26).ngClassTouched,t["\u0275nov"](n,26).ngClassPristine,t["\u0275nov"](n,26).ngClassDirty,t["\u0275nov"](n,26).ngClassValid,t["\u0275nov"](n,26).ngClassInvalid,t["\u0275nov"](n,26).ngClassPending),l(n,32,0,!0,t["\u0275nov"](n,38).ngClassUntouched,t["\u0275nov"](n,38).ngClassTouched,t["\u0275nov"](n,38).ngClassPristine,t["\u0275nov"](n,38).ngClassDirty,t["\u0275nov"](n,38).ngClassValid,t["\u0275nov"](n,38).ngClassInvalid,t["\u0275nov"](n,38).ngClassPending)})}function jn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-swift-key-modal",[],null,null,null,Fn,Nn)),t["\u0275did"](1,49152,null,0,$,[nn.a,_l.a,i.b],null,null)],null,null)}var Pn=t["\u0275ccf"]("cd-rgw-user-swift-key-modal",$,jn,{},{},[]),zn=u("IZUe"),An=u("gp3X"),Bn=u("sb0X"),Un=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Mn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function On(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,2)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,2).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,2)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,2)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](1,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](2,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](4,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](6,16384,null,0,d.r,[[4,d.q]],null,null)],function(l,n){l(n,4,0,"user")},function(l,n){l(n,0,0,!0,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function Ln(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a username --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Gn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Kn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"select",[["autofocus",""],["class","form-control"],["formControlName","user"],["id","user"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,3).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,3).onTouched()&&e),e},null,null)),t["\u0275did"](1,4210688,null,0,zn.a,[t.ElementRef],null,null),t["\u0275did"](2,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](3,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](5,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](7,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ln)),t["\u0275did"](9,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Gn)),t["\u0275did"](11,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,5,0,"user"),l(n,9,0,null!==u.userCandidates),l(n,11,0,u.userCandidates)},function(l,n){l(n,0,0,t["\u0275nov"](n,7).ngClassUntouched,t["\u0275nov"](n,7).ngClassTouched,t["\u0275nov"](n,7).ngClassPristine,t["\u0275nov"](n,7).ngClassDirty,t["\u0275nov"](n,7).ngClassValid,t["\u0275nov"](n,7).ngClassInvalid,t["\u0275nov"](n,7).ngClassPending)})}function $n(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Zn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,6,"input",[["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,5).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,5).onTouched()&&e),e},null,null)),t["\u0275did"](4,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](5,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](7,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](9,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](10,0,null,null,1,"label",[["for","generate_key"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Auto-generate key"]))],function(l,n){l(n,7,0,"generate_key")},function(l,n){l(n,3,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function Qn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Hn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Yn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","access_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Access key"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Qn)),t["\u0275did"](7,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](8,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,6,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,12)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,12).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,12)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,12)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](11,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](12,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](14,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](16,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](17,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,19).onClick()&&e),e},null,null)),t["\u0275did"](19,81920,null,0,Tn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](20,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,21).onClick()&&e),e},null,null)),t["\u0275did"](21,81920,null,0,qn.a,[t.ElementRef,t.Renderer2,Vn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Hn)),t["\u0275did"](23,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.formGroup.showError("access_key",t["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",e),l(n,7,0,!u.viewing),l(n,14,0,"access_key"),l(n,19,0,"access_key"),l(n,21,0,"access_key"),l(n,23,0,u.formGroup.showError("access_key",t["\u0275nov"](n.parent,12),"required"))},function(l,n){l(n,10,0,n.component.viewing,t["\u0275nov"](n,16).ngClassUntouched,t["\u0275nov"](n,16).ngClassTouched,t["\u0275nov"](n,16).ngClassPristine,t["\u0275nov"](n,16).ngClassDirty,t["\u0275nov"](n,16).ngClassValid,t["\u0275nov"](n,16).ngClassInvalid,t["\u0275nov"](n,16).ngClassPending)})}function Xn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Jn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Wn(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Xn)),t["\u0275did"](7,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](8,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,12)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,12).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,12)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,12)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](11,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](12,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](14,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](16,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](17,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,19).onClick()&&e),e},null,null)),t["\u0275did"](19,81920,null,0,Tn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](20,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,21).onClick()&&e),e},null,null)),t["\u0275did"](21,81920,null,0,qn.a,[t.ElementRef,t.Renderer2,Vn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Jn)),t["\u0275did"](23,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",e),l(n,7,0,!u.viewing),l(n,14,0,"secret_key"),l(n,19,0,"secret_key"),l(n,21,0,"secret_key"),l(n,23,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent,12),"required"))},function(l,n){l(n,10,0,n.component.viewing,t["\u0275nov"](n,16).ngClassUntouched,t["\u0275nov"](n,16).ngClassTouched,t["\u0275nov"](n,16).ngClassPristine,t["\u0275nov"](n,16).ngClassDirty,t["\u0275nov"](n,16).ngClassValid,t["\u0275nov"](n,16).ngClassInvalid,t["\u0275nov"](n,16).ngClassPending)})}function lu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},An.b,An.a)),t["\u0275did"](1,114688,null,0,Bn.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](2,0,[""," ",""])),t["\u0275ppd"](3,1),t["\u0275ppd"](4,1)],function(l,n){l(n,1,0,n.component.formGroup)},function(l,n){var u=n.component,e=t["\u0275unv"](n,2,0,l(n,3,0,t["\u0275nov"](n.parent,0),u.action)),i=t["\u0275unv"](n,2,1,l(n,4,0,t["\u0275nov"](n.parent,1),u.resource));l(n,2,0,e,i)})}function nu(l){return t["\u0275vid"](0,[t["\u0275pid"](0,ql.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,[""," ",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,31,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,12).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,12).onReset()&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.D,[],null,null),t["\u0275did"](12,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,21,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","user"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Mn)),t["\u0275did"](23,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](24,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,On)),t["\u0275did"](26,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Kn)),t["\u0275did"](28,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,$n)),t["\u0275did"](30,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Zn)),t["\u0275did"](32,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Yn)),t["\u0275did"](34,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Wn)),t["\u0275did"](36,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](37,0,null,null,4,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,lu)),t["\u0275did"](39,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](40,0,null,null,1,"cd-back-button",[],null,null,null,Sn.b,Sn.a)),t["\u0275did"](41,49152,null,0,Dn.a,[ql.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,12,0,u.formGroup);var e=l(n,18,0,u.formGroup.showError("user",t["\u0275nov"](n,12)));l(n,17,0,"form-group",e),l(n,23,0,!u.viewing),l(n,26,0,u.viewing),l(n,28,0,!u.viewing),l(n,30,0,u.formGroup.showError("user",t["\u0275nov"](n,12),"required")),l(n,32,0,!u.viewing),l(n,34,0,!u.formGroup.getValue("generate_key")),l(n,36,0,!u.formGroup.getValue("generate_key")),l(n,39,0,!u.viewing),l(n,41,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending)})}function uu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-s3-key-modal",[],null,null,null,nu,Un)),t["\u0275did"](1,49152,null,0,L,[_.a,nn.a,_l.a,i.b],null,null)],null,null)}var eu=t["\u0275ccf"]("cd-rgw-user-s3-key-modal",L,uu,{},{submitAction:"submitAction"},[]),tu=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function iu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function ou(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","type"],["id","type"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,2)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,2).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,2)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,2)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](1,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](2,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](4,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](6,16384,null,0,d.r,[[4,d.q]],null,null)],function(l,n){l(n,4,0,"type")},function(l,n){l(n,0,0,!0,t["\u0275nov"](n,6).ngClassUntouched,t["\u0275nov"](n,6).ngClassTouched,t["\u0275nov"](n,6).ngClassPristine,t["\u0275nov"](n,6).ngClassDirty,t["\u0275nov"](n,6).ngClassValid,t["\u0275nov"](n,6).ngClassInvalid,t["\u0275nov"](n,6).ngClassPending)})}function au(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a type --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function ru(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function su(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"select",[["autofocus",""],["class","form-control"],["formControlName","type"],["id","type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,3).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,3).onTouched()&&e),e},null,null)),t["\u0275did"](1,4210688,null,0,zn.a,[t.ElementRef],null,null),t["\u0275did"](2,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](3,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](5,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](7,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,au)),t["\u0275did"](9,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ru)),t["\u0275did"](11,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,5,0,"type"),l(n,9,0,null!==u.types),l(n,11,0,u.types)},function(l,n){l(n,0,0,t["\u0275nov"](n,7).ngClassUntouched,t["\u0275nov"](n,7).ngClassTouched,t["\u0275nov"](n,7).ngClassPristine,t["\u0275nov"](n,7).ngClassDirty,t["\u0275nov"](n,7).ngClassValid,t["\u0275nov"](n,7).ngClassInvalid,t["\u0275nov"](n,7).ngClassPending)})}function du(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function cu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function pu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function fu(l){return t["\u0275vid"](0,[t["\u0275pid"](0,ql.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,[""," ",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,52,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,12).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,12).onReset()&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.D,[],null,null),t["\u0275did"](12,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,39,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","type"]],null,null,null,null,null)),(l()(),t["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Type"])),(l()(),t["\u0275and"](16777216,null,null,1,null,iu)),t["\u0275did"](23,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](24,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,ou)),t["\u0275did"](26,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,su)),t["\u0275did"](28,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,du)),t["\u0275did"](30,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](31,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](32,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](33,{"has-error":0}),(l()(),t["\u0275eld"](34,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","perm"]],null,null,null,null,null)),(l()(),t["\u0275eld"](35,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Permission"])),(l()(),t["\u0275eld"](37,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](39,0,null,null,13,"select",[["class","form-control"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,41).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,41).onTouched()&&e),e},null,null)),t["\u0275did"](40,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](41,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](43,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](45,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](46,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](47,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](48,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a permission --"])),(l()(),t["\u0275and"](16777216,null,null,2,null,cu)),t["\u0275did"](51,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pad"](52,3),(l()(),t["\u0275and"](16777216,null,null,1,null,pu)),t["\u0275did"](54,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](55,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](56,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},An.b,An.a)),t["\u0275did"](57,114688,null,0,Bn.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](58,0,[""," ",""])),t["\u0275ppd"](59,1),t["\u0275ppd"](60,1),(l()(),t["\u0275eld"](61,0,null,null,1,"cd-back-button",[],null,null,null,Sn.b,Sn.a)),t["\u0275did"](62,49152,null,0,Dn.a,[ql.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,12,0,u.formGroup);var e=l(n,18,0,u.formGroup.showError("type",t["\u0275nov"](n,12)));l(n,17,0,"form-group",e),l(n,23,0,!u.editing),l(n,26,0,u.editing),l(n,28,0,!u.editing),l(n,30,0,u.formGroup.showError("type",t["\u0275nov"](n,12),"required"));var i=l(n,33,0,u.formGroup.showError("perm",t["\u0275nov"](n,12)));l(n,32,0,"form-group",i),l(n,43,0,"perm"),l(n,47,0,null),l(n,48,0,null);var o=l(n,52,0,"read","write","*");l(n,51,0,o),l(n,54,0,u.formGroup.showError("perm",t["\u0275nov"](n,12),"required")),l(n,57,0,u.formGroup),l(n,62,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,39,0,t["\u0275nov"](n,45).ngClassUntouched,t["\u0275nov"](n,45).ngClassTouched,t["\u0275nov"](n,45).ngClassPristine,t["\u0275nov"](n,45).ngClassDirty,t["\u0275nov"](n,45).ngClassValid,t["\u0275nov"](n,45).ngClassInvalid,t["\u0275nov"](n,45).ngClassPending);var o=t["\u0275unv"](n,58,0,l(n,59,0,t["\u0275nov"](n,0),u.action)),a=t["\u0275unv"](n,58,1,l(n,60,0,t["\u0275nov"](n,1),u.resource));l(n,58,0,o,a)})}function mu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-capability-modal",[],null,null,null,fu,tu)),t["\u0275did"](1,49152,null,0,O,[_.a,nn.a,_l.a,i.b],null,null)],null,null)}var gu=t["\u0275ccf"]("cd-rgw-user-capability-modal",O,mu,{},{submitAction:"submitAction"},[]),vu=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function bu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function hu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function yu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen subuser ID is already in use."]))],null,null)}function Cu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function _u(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function ku(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ru(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,11)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,11).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](10,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](11,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](13,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](16,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,18).onClick()&&e),e},null,null)),t["\u0275did"](18,81920,null,0,Tn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](19,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,20).onClick()&&e),e},null,null)),t["\u0275did"](20,81920,null,0,qn.a,[t.ElementRef,t.Renderer2,Vn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ku)),t["\u0275did"](22,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent.parent,12)));l(n,1,0,"form-group",e),l(n,13,0,"secret_key"),l(n,18,0,"secret_key"),l(n,20,0,"secret_key"),l(n,22,0,u.formGroup.showError("secret_key",t["\u0275nov"](n.parent.parent,12),"required"))},function(l,n){l(n,9,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function Iu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,16,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Swift key"])),(l()(),t["\u0275eld"](3,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,6,"input",[["formControlName","generate_secret"],["id","generate_secret"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,8).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,8).onTouched()&&e),e},null,null)),t["\u0275did"](7,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](8,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](10,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](12,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](13,0,null,null,1,"label",[["for","generate_secret"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Auto-generate secret"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Ru)),t["\u0275did"](16,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,10,0,"generate_secret"),l(n,16,0,!u.editing&&!u.formGroup.getValue("generate_secret"))},function(l,n){l(n,6,0,t["\u0275nov"](n,12).ngClassUntouched,t["\u0275nov"](n,12).ngClassTouched,t["\u0275nov"](n,12).ngClassPristine,t["\u0275nov"](n,12).ngClassDirty,t["\u0275nov"](n,12).ngClassValid,t["\u0275nov"](n,12).ngClassInvalid,t["\u0275nov"](n,12).ngClassPending)})}function wu(l){return t["\u0275vid"](0,[t["\u0275pid"](0,ql.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),t["\u0275ted"](4,null,[""," ",""])),t["\u0275ppd"](5,1),t["\u0275ppd"](6,1),(l()(),t["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.bsModalRef.hide()&&e),e},null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["\xd7"])),(l()(),t["\u0275eld"](10,0,null,null,81,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,12).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,12).onReset()&&e),e},null,null)),t["\u0275did"](11,16384,null,0,d.D,[],null,null),t["\u0275did"](12,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](15,0,null,null,68,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](16,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](17,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](18,{"has-error":0}),(l()(),t["\u0275eld"](19,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","uid"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275eld"](21,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](22,0,null,null,6,"input",[["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,24)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,24).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,24)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,24)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](23,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](24,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](26,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](28,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](29,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](30,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](31,{"has-error":0}),(l()(),t["\u0275eld"](32,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","subuid"]],null,null,null,null,null)),(l()(),t["\u0275eld"](33,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Subuser"])),(l()(),t["\u0275and"](16777216,null,null,1,null,bu)),t["\u0275did"](36,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](37,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","subuid"],["id","subuid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,41)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,41).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,41)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,41)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](39,4210688,null,0,zn.a,[t.ElementRef],null,null),t["\u0275did"](40,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](41,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](43,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](45,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,hu)),t["\u0275did"](47,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,yu)),t["\u0275did"](49,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](50,0,null,null,31,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](51,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](52,{"has-error":0}),(l()(),t["\u0275eld"](53,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","perm"]],null,null,null,null,null)),(l()(),t["\u0275eld"](54,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Permission"])),(l()(),t["\u0275eld"](56,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](57,0,null,null,24,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](58,0,null,null,21,"select",[["class","form-control"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,60).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,60).onTouched()&&e),e},null,null)),t["\u0275did"](59,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](60,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](62,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](64,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](65,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](66,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](67,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a permission --"])),(l()(),t["\u0275and"](16777216,null,null,2,null,Cu)),t["\u0275did"](70,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["\u0275pad"](71,2),(l()(),t["\u0275eld"](72,0,null,null,3,"option",[["value","read-write"]],null,null,null,null,null)),t["\u0275did"](73,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](74,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["read, write"])),(l()(),t["\u0275eld"](76,0,null,null,3,"option",[["value","full-control"]],null,null,null,null,null)),t["\u0275did"](77,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](78,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["full"])),(l()(),t["\u0275and"](16777216,null,null,1,null,_u)),t["\u0275did"](81,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Iu)),t["\u0275did"](83,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](84,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](85,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},An.b,An.a)),t["\u0275did"](86,114688,null,0,Bn.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](87,0,[""," ",""])),t["\u0275ppd"](88,1),t["\u0275ppd"](89,1),(l()(),t["\u0275eld"](90,0,null,null,1,"cd-back-button",[],null,null,null,Sn.b,Sn.a)),t["\u0275did"](91,49152,null,0,Dn.a,[ql.Location,i.b],{back:[0,"back"]},null)],function(l,n){var u=n.component;l(n,12,0,u.formGroup);var e=l(n,18,0,u.formGroup.showError("uid",t["\u0275nov"](n,12)));l(n,17,0,"form-group",e),l(n,26,0,"uid");var i=l(n,31,0,u.formGroup.showError("subuid",t["\u0275nov"](n,12)));l(n,30,0,"form-group",i),l(n,36,0,!u.editing),l(n,43,0,"subuid"),l(n,47,0,u.formGroup.showError("subuid",t["\u0275nov"](n,12),"required")),l(n,49,0,u.formGroup.showError("subuid",t["\u0275nov"](n,12),"subuserIdExists"));var o=l(n,52,0,u.formGroup.showError("perm",t["\u0275nov"](n,12)));l(n,51,0,"form-group",o),l(n,62,0,"perm"),l(n,66,0,null),l(n,67,0,null);var a=l(n,71,0,"read","write");l(n,70,0,a),l(n,73,0,"read-write"),l(n,74,0,"read-write"),l(n,77,0,"full-control"),l(n,78,0,"full-control"),l(n,81,0,u.formGroup.showError("perm",t["\u0275nov"](n,12),"required")),l(n,83,0,!u.editing),l(n,86,0,u.formGroup),l(n,91,0,u.bsModalRef.hide)},function(l,n){var u=n.component,e=t["\u0275unv"](n,4,0,l(n,5,0,t["\u0275nov"](n,0),u.action)),i=t["\u0275unv"](n,4,1,l(n,6,0,t["\u0275nov"](n,1),u.resource));l(n,4,0,e,i),l(n,10,0,t["\u0275nov"](n,14).ngClassUntouched,t["\u0275nov"](n,14).ngClassTouched,t["\u0275nov"](n,14).ngClassPristine,t["\u0275nov"](n,14).ngClassDirty,t["\u0275nov"](n,14).ngClassValid,t["\u0275nov"](n,14).ngClassInvalid,t["\u0275nov"](n,14).ngClassPending),l(n,22,0,!0,t["\u0275nov"](n,28).ngClassUntouched,t["\u0275nov"](n,28).ngClassTouched,t["\u0275nov"](n,28).ngClassPristine,t["\u0275nov"](n,28).ngClassDirty,t["\u0275nov"](n,28).ngClassValid,t["\u0275nov"](n,28).ngClassInvalid,t["\u0275nov"](n,28).ngClassPending),l(n,38,0,u.editing,t["\u0275nov"](n,45).ngClassUntouched,t["\u0275nov"](n,45).ngClassTouched,t["\u0275nov"](n,45).ngClassPristine,t["\u0275nov"](n,45).ngClassDirty,t["\u0275nov"](n,45).ngClassValid,t["\u0275nov"](n,45).ngClassInvalid,t["\u0275nov"](n,45).ngClassPending),l(n,58,0,t["\u0275nov"](n,64).ngClassUntouched,t["\u0275nov"](n,64).ngClassTouched,t["\u0275nov"](n,64).ngClassPristine,t["\u0275nov"](n,64).ngClassDirty,t["\u0275nov"](n,64).ngClassValid,t["\u0275nov"](n,64).ngClassInvalid,t["\u0275nov"](n,64).ngClassPending);var o=t["\u0275unv"](n,87,0,l(n,88,0,t["\u0275nov"](n,0),u.action)),a=t["\u0275unv"](n,87,1,l(n,89,0,t["\u0275nov"](n,1),u.resource));l(n,87,0,o,a)})}function Eu(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-subuser-modal",[],null,null,null,wu,vu)),t["\u0275did"](1,49152,null,0,K,[_.a,nn.a,_l.a,i.b],null,null)],null,null)}var xu=t["\u0275ccf"]("cd-rgw-user-subuser-modal",K,Eu,{},{submitAction:"submitAction"},[]),Tu=u("IzCI"),qu=u("Dwqy"),Vu=u("uYzU"),Su=u("uhwM"),Du=u("E2fk"),Nu=u("nSDx"),Fu=u("SB+Q"),ju=u("TYzs"),Pu=u("BQkM"),zu=u("dEH0"),Au=u("G1/K"),Bu=u("lTVp"),Uu=u("OZfm"),Mu=u("NJnL"),Ou=u("eajB"),Lu=u("FO+L"),Gu=u("nhM1"),Ku=u("BARL"),$u=u("ZYCi"),Zu=u("9Xeq"),Qu=u("xdbM"),Hu=u("yGOH"),Yu=u("V/fk"),Xu=u("F8xH"),Ju=u("ChqD"),Wu=u("PCNd"),le=u("G6Q+"),ne=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function ue(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](1,212992,null,0,vl.b,[vl.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","WAkugZpiz"]],null,null,null,bl.b,bl.a)),t["\u0275did"](3,638976,null,0,hl.a,[r.a,yl.DomSanitizer,Cl.a,a.a,_l.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"rgw-overview?","two","WAkugZpiz")},function(l,n){l(n,0,0,t["\u0275nov"](n,1).id,t["\u0275nov"](n,1).active,t["\u0275nov"](n,1).addClass)})}function ee(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,kl.b,kl.a)),t["\u0275did"](1,180224,null,0,vl.d,[vl.e,t.Renderer2,t.ElementRef],null,null),(l()(),t["\u0275eld"](2,0,null,0,5,"tab",[["heading","Daemons List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["\u0275did"](3,212992,null,0,vl.b,[vl.d,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["\u0275eld"](4,0,null,null,3,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"updateSelection"],[null,"fetchData"]],function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getDaemonList(u)&&e),e},Yl.b,Yl.a)),t["\u0275did"](5,2867200,null,0,x.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](6,0,null,2,1,"cd-rgw-daemon-details",[["cdTableDetail",""]],null,null,null,Fl,Sl)),t["\u0275did"](7,573440,null,0,Vl,[j,S.a],{selection:[0,"selection"]},null),(l()(),t["\u0275and"](16777216,null,0,1,null,ue)),t["\u0275did"](9,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,"Daemons List"),l(n,5,0,u.daemons,u.columns,"flex","single"),l(n,7,0,u.selection),l(n,9,0,u.grafanaPermission.read)},function(l,n){l(n,0,0,t["\u0275nov"](n,1).clazz),l(n,2,0,t["\u0275nov"](n,3).id,t["\u0275nov"](n,3).active,t["\u0275nov"](n,3).addClass)})}function te(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-daemon-list",[],null,null,null,ee,ne)),t["\u0275did"](1,49152,null,0,z,[j,S.a,P.a,_l.a],null,null)],null,null)}var ie=t["\u0275ccf"]("cd-rgw-daemon-list",z,te,{},{},[]),oe=u("NUGo"),ae=u("S7zO"),re=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function se(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{table:0}),(l()(),t["\u0275eld"](1,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","uid"],["selectionType","multi"]],null,[[null,"updateSelection"],[null,"fetchData"]],function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getUserList(u)&&e),e},Yl.b,Yl.a)),t["\u0275did"](2,2867200,[[1,4],["table",4]],0,x.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](3,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,oe.b,oe.a)),t["\u0275did"](4,114688,null,0,ae.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275eld"](5,0,null,2,1,"cd-rgw-user-details",[["cdTableDetail",""]],null,null,null,kn,un)),t["\u0275did"](6,638976,null,0,ln,[y.a,nn.b,_l.a],{selection:[0,"selection"]},null)],function(l,n){var u=n.component;l(n,2,0,u.users,u.columns,"flex",!1,"uid","multi"),l(n,4,0,u.permission,u.selection,u.tableActions),l(n,6,0,u.selection)},null)}function de(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-rgw-user-list",[],null,null,null,se,re)),t["\u0275prd"](256,null,D.a,H,[]),t["\u0275did"](2,49152,null,0,Y,[S.a,y.a,nn.b,_l.a,D.a,i.b],null,null)],null,null)}var ce=t["\u0275ccf"]("cd-rgw-user-list",Y,de,{},{},[]),pe=u("QC43"),fe=u("XFyV"),me=u("M/6F"),ge=u("NDi4"),ve=u("EmSq"),be=t["\u0275crt"]({encapsulation:0,styles:[["form[_ngcontent-%COMP%] .input-group-addon[_ngcontent-%COMP%]{color:#90949c!important;background-color:transparent}"]],data:{}});function he(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,pe.b,pe.a)),t["\u0275did"](1,49152,null,0,fe.a,[],null,null),(l()(),t["\u0275ted"](-1,0,["Loading user data..."]))],null,null)}function ye(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-error-panel",[],null,[[null,"backAction"]],function(l,n,u){var e=!0;return"backAction"===n&&(e=!1!==l.component.goToListView()&&e),e},me.b,me.a)),t["\u0275did"](1,49152,null,0,ge.a,[],null,{backAction:"backAction"}),(l()(),t["\u0275ted"](-1,0,["The user data could not be loaded."]))],null,null)}function Ce(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function _e(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function ke(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen user ID is already in use."]))],null,null)}function Re(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Ie(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function we(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This is not a valid email address."]))],null,null)}function Ee(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen email address is already in use."]))],null,null)}function xe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Te(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The entered value must be >= 1."]))],null,null)}function qe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,0,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,7,"input",[["class","form-control"],["formControlName","max_buckets"],["id","max_buckets"],["min","1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,7)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,7).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,7)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,7)._compositionEnd(u.target.value)&&e),"change"===n&&(e=!1!==t["\u0275nov"](l,8).onChange(u.target.value)&&e),"input"===n&&(e=!1!==t["\u0275nov"](l,8).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,8).onTouched()&&e),e},null,null)),t["\u0275did"](6,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](7,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275did"](8,16384,null,0,d.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l,n){return[l,n]},[d.e,d.C]),t["\u0275did"](10,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](12,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,xe)),t["\u0275did"](14,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Te)),t["\u0275did"](16,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("max_buckets",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,10,0,"max_buckets"),l(n,14,0,u.userForm.showError("max_buckets",t["\u0275nov"](n.parent,3),"required")),l(n,16,0,u.userForm.showError("max_buckets",t["\u0275nov"](n.parent,3),"min"))},function(l,n){l(n,5,0,t["\u0275nov"](n,12).ngClassUntouched,t["\u0275nov"](n,12).ngClassTouched,t["\u0275nov"](n,12).ngClassPristine,t["\u0275nov"](n,12).ngClassDirty,t["\u0275nov"](n,12).ngClassValid,t["\u0275nov"](n,12).ngClassInvalid,t["\u0275nov"](n,12).ngClassPending)})}function Ve(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Se(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","access_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Access key"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,6,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,11)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,11).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](10,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](11,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](13,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](16,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,18).onClick()&&e),e},null,null)),t["\u0275did"](18,81920,null,0,Tn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](19,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,20).onClick()&&e),e},null,null)),t["\u0275did"](20,81920,null,0,qn.a,[t.ElementRef,t.Renderer2,Vn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ve)),t["\u0275did"](22,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("access_key",t["\u0275nov"](n.parent.parent,3)));l(n,1,0,"form-group",e),l(n,13,0,"access_key"),l(n,18,0,"access_key"),l(n,20,0,"access_key"),l(n,22,0,u.userForm.showError("access_key",t["\u0275nov"](n.parent.parent,3),"required"))},function(l,n){l(n,9,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function De(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ne(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","secret_key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Secret key"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,11)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,11).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,11)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](10,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](11,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](13,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](16,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,18).onClick()&&e),e},null,null)),t["\u0275did"](18,81920,null,0,Tn.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["\u0275eld"](19,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==t["\u0275nov"](l,20).onClick()&&e),e},null,null)),t["\u0275did"](20,81920,null,0,qn.a,[t.ElementRef,t.Renderer2,Vn.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,De)),t["\u0275did"](22,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("secret_key",t["\u0275nov"](n.parent.parent,3)));l(n,1,0,"form-group",e),l(n,13,0,"secret_key"),l(n,18,0,"secret_key"),l(n,20,0,"secret_key"),l(n,22,0,u.userForm.showError("secret_key",t["\u0275nov"](n.parent.parent,3),"required"))},function(l,n){l(n,9,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function Fe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,18,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["S3 key"])),(l()(),t["\u0275eld"](3,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](5,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](6,0,null,null,6,"input",[["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,8).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,8).onTouched()&&e),e},null,null)),t["\u0275did"](7,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](8,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](10,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](12,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](13,0,null,null,1,"label",[["for","generate_key"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Auto-generate key"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Se)),t["\u0275did"](16,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ne)),t["\u0275did"](18,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,10,0,"generate_key"),l(n,16,0,!u.editing&&!u.userForm.getValue("generate_key")),l(n,18,0,!u.editing&&!u.userForm.getValue("generate_key"))},function(l,n){l(n,6,0,t["\u0275nov"](n,12).ngClassUntouched,t["\u0275nov"](n,12).ngClassTouched,t["\u0275nov"](n,12).ngClassPristine,t["\u0275nov"](n,12).ngClassDirty,t["\u0275nov"](n,12).ngClassValid,t["\u0275nov"](n,12).ngClassInvalid,t["\u0275nov"](n,12).ngClassPending)})}function je(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no subusers."]))],null,null)}function Pe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,17,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,15,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-user"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),t["\u0275did"](5,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](6,0,null,null,1,"span",[["class","input-group-addon"],["style","border-left: 0; border-right: 0;"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,0,"i",[["class","icon-prepend fa fa-share-alt"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,1,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),t["\u0275did"](9,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](10,0,null,null,6,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,16777216,null,null,2,"button",[["class","btn btn-default tc_showSubuserButton"],["tooltip","Edit"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal(l.context.index)&&e),e},null,null)),t["\u0275did"](12,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](13,0,null,null,0,"i",[["class","fa fa-cogs"]],null,null,null,null,null)),(l()(),t["\u0275eld"](14,16777216,null,null,2,"button",[["class","btn btn-default tc_deleteSubuserButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteSubuser(l.context.index)&&e),e},null,null)),t["\u0275did"](15,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](16,0,null,null,0,"i",[["class","fa fa-times"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,12,0,"Edit"),l(n,15,0,"Delete")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.id,"")),l(n,8,0,t["\u0275inlineInterpolate"](1,"","full-control"===n.context.$implicit.permissions?"full":n.context.$implicit.permissions,"")),l(n,11,0,t["\u0275nov"](n,12).ariaDescribedby),l(n,14,0,t["\u0275nov"](n,15).ariaDescribedby)})}function ze(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,14,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Subusers"])),(l()(),t["\u0275eld"](3,0,null,null,11,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,je)),t["\u0275did"](5,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Pe)),t["\u0275did"](7,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](8,0,null,null,6,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,0,null,null,5,"button",[["class","btn btn-sm btn-default btn-label pull-right tc_addSubuserButton"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal()&&e),e},null,null)),(l()(),t["\u0275eld"](10,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](12,null,[""," ",""])),t["\u0275ppd"](13,1),t["\u0275ppd"](14,1)],function(l,n){var u=n.component;l(n,5,0,0===u.subusers.length),l(n,7,0,u.subusers)},function(l,n){var u=n.component,e=t["\u0275unv"](n,12,0,l(n,13,0,t["\u0275nov"](n.parent.parent,0),u.actionLabels.CREATE)),i=t["\u0275unv"](n,12,1,l(n,14,0,t["\u0275nov"](n.parent.parent,1),u.subuserLabel));l(n,12,0,e,i)})}function Ae(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no keys."]))],null,null)}function Be(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,13,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),t["\u0275did"](5,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](6,0,null,null,6,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,16777216,null,null,2,"button",[["class","btn btn-default tc_showS3KeyButton"],["tooltip","Show"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal(l.context.index)&&e),e},null,null)),t["\u0275did"](8,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-eye"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,16777216,null,null,2,"button",[["class","btn btn-default tc_deleteS3KeyButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteS3Key(l.context.index)&&e),e},null,null)),t["\u0275did"](11,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-times"]],null,null,null,null,null)),(l()(),t["\u0275eld"](13,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,8,0,"Show"),l(n,11,0,"Delete")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.user,"")),l(n,7,0,t["\u0275nov"](n,8).ariaDescribedby),l(n,10,0,t["\u0275nov"](n,11).ariaDescribedby)})}function Ue(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no keys."]))],null,null)}function Me(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,8,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-key"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),t["\u0275did"](5,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](6,0,null,null,3,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,16777216,null,null,2,"button",[["class","btn btn-default tc_showSwiftKeyButton"],["tooltip","Show"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSwiftKeyModal(l.context.index)&&e),e},null,null)),t["\u0275did"](8,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-eye"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,8,0,"Show")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](1,"",n.context.$implicit.user,"")),l(n,7,0,t["\u0275nov"](n,8).ariaDescribedby)})}function Oe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,24,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Keys"])),(l()(),t["\u0275eld"](3,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["S3"])),(l()(),t["\u0275eld"](5,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Ae)),t["\u0275did"](7,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Be)),t["\u0275did"](9,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](10,0,null,null,6,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](11,0,null,null,5,"button",[["class","btn btn-sm btn-default btn-label pull-right tc_addS3KeyButton"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal()&&e),e},null,null)),(l()(),t["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),t["\u0275eld"](13,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](14,null,[""," ",""])),t["\u0275ppd"](15,1),t["\u0275ppd"](16,1),(l()(),t["\u0275eld"](17,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),t["\u0275eld"](18,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Swift"])),(l()(),t["\u0275eld"](20,0,null,null,4,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Ue)),t["\u0275did"](22,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Me)),t["\u0275did"](24,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,7,0,0===u.s3Keys.length),l(n,9,0,u.s3Keys),l(n,22,0,0===u.swiftKeys.length),l(n,24,0,u.swiftKeys)},function(l,n){var u=n.component,e=t["\u0275unv"](n,14,0,l(n,15,0,t["\u0275nov"](n.parent.parent,0),u.actionLabels.CREATE)),i=t["\u0275unv"](n,14,1,l(n,16,0,t["\u0275nov"](n.parent.parent,1),u.s3keyLabel));l(n,14,0,e,i)})}function Le(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["There are no capabilities."]))],null,null)}function Ge(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,13,"span",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,0,"i",[["class","icon-prepend fa fa-share-alt"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,"input",[["class","form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),t["\u0275did"](5,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),(l()(),t["\u0275eld"](6,0,null,null,6,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,16777216,null,null,2,"button",[["class","btn btn-default tc_editCapButton"],["tooltip","Edit"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal(l.context.index)&&e),e},null,null)),t["\u0275did"](8,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-cogs"]],null,null,null,null,null)),(l()(),t["\u0275eld"](10,16777216,null,null,2,"button",[["class","btn btn-default tc_deleteCapButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteCapability(l.context.index)&&e),e},null,null)),t["\u0275did"](11,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"]},null),(l()(),t["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-times"]],null,null,null,null,null)),(l()(),t["\u0275eld"](13,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],function(l,n){l(n,8,0,"Edit"),l(n,11,0,"Delete")},function(l,n){l(n,4,0,t["\u0275inlineInterpolate"](2,"",n.context.$implicit.type,":",n.context.$implicit.perm,"")),l(n,7,0,t["\u0275nov"](n,8).ariaDescribedby),l(n,10,0,t["\u0275nov"](n,11).ariaDescribedby)})}function Ke(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,15,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Capabilities"])),(l()(),t["\u0275eld"](3,0,null,null,12,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,Le)),t["\u0275did"](5,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ge)),t["\u0275did"](7,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275eld"](8,0,null,null,7,"span",[["class","form-control no-border"]],null,null,null,null,null)),(l()(),t["\u0275eld"](9,16777216,null,null,6,"button",[["class","btn btn-sm btn-default btn-label pull-right tc_addCapButton"],["tooltip","All capabilities are already added."],["triggers","pointerenter pointerleave"],["type","button"]],[[8,"disabled",0],[1,"aria-describedby",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal()&&e),e},null,null)),t["\u0275did"](10,212992,null,0,Ou.c,[t.ViewContainerRef,Jl.a,Ou.a,t.ElementRef,t.Renderer2,Mu.a],{tooltip:[0,"tooltip"],triggers:[1,"triggers"],isDisabled:[2,"isDisabled"]},null),(l()(),t["\u0275eld"](11,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),t["\u0275eld"](12,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](13,null,[""," ",""])),t["\u0275ppd"](14,1),t["\u0275ppd"](15,1)],function(l,n){var u=n.component;l(n,5,0,0===u.capabilities.length),l(n,7,0,u.capabilities),l(n,10,0,"All capabilities are already added.","pointerenter pointerleave",!u.hasAllCapabilities())},function(l,n){var u=n.component;l(n,9,0,u.hasAllCapabilities(),t["\u0275nov"](n,10).ariaDescribedby);var e=t["\u0275unv"](n,13,0,l(n,14,0,t["\u0275nov"](n.parent.parent,0),u.actionLabels.ADD)),i=t["\u0275unv"](n,13,1,l(n,15,0,t["\u0275nov"](n.parent.parent,1),u.capabilityLabel));l(n,13,0,e,i)})}function $e(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,6,"input",[["formControlName","user_quota_max_size_unlimited"],["id","user_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,5).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,5).onTouched()&&e),e},null,null)),t["\u0275did"](4,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](5,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](7,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](9,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](10,0,null,null,1,"label",[["for","user_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited size"]))],function(l,n){l(n,7,0,"user_quota_max_size_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function Ze(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Qe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The value is not valid."]))],null,null)}function He(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","user_quota_max_size"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. size"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","user_quota_max_size"],["id","user_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,9)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,9).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionEnd(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,13).onBlur(u.target.value)&&e),e},null,null)),t["\u0275did"](9,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](11,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](13,81920,null,0,ve.a,[t.ElementRef,d.q,q.a,U.a],null,null),t["\u0275did"](14,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ze)),t["\u0275did"](17,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Qe)),t["\u0275did"](19,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("user_quota_max_size",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,11,0,"user_quota_max_size"),l(n,13,0),l(n,17,0,u.userForm.showError("user_quota_max_size",t["\u0275nov"](n.parent,3),"required")),l(n,19,0,u.userForm.showError("user_quota_max_size",t["\u0275nov"](n.parent,3),"quotaMaxSize"))},function(l,n){l(n,8,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function Ye(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,6,"input",[["formControlName","user_quota_max_objects_unlimited"],["id","user_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,5).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,5).onTouched()&&e),e},null,null)),t["\u0275did"](4,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](5,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](7,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](9,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](10,0,null,null,1,"label",[["for","user_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited objects"]))],function(l,n){l(n,7,0,"user_quota_max_objects_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function Xe(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Je(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The entered value must be >= 0."]))],null,null)}function We(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","user_quota_max_objects"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. objects"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,7,"input",[["class","form-control"],["formControlName","user_quota_max_objects"],["id","user_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,10)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,10).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionEnd(u.target.value)&&e),"change"===n&&(e=!1!==t["\u0275nov"](l,11).onChange(u.target.value)&&e),"input"===n&&(e=!1!==t["\u0275nov"](l,11).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,11).onTouched()&&e),e},null,null)),t["\u0275did"](9,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](10,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275did"](11,16384,null,0,d.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l,n){return[l,n]},[d.e,d.C]),t["\u0275did"](13,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Xe)),t["\u0275did"](17,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Je)),t["\u0275did"](19,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("user_quota_max_objects",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,13,0,"user_quota_max_objects"),l(n,17,0,u.userForm.showError("user_quota_max_objects",t["\u0275nov"](n.parent,3),"required")),l(n,19,0,u.userForm.showError("user_quota_max_objects",t["\u0275nov"](n.parent,3),"min"))},function(l,n){l(n,8,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function lt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,6,"input",[["formControlName","bucket_quota_max_size_unlimited"],["id","bucket_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,5).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,5).onTouched()&&e),e},null,null)),t["\u0275did"](4,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](5,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](7,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](9,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](10,0,null,null,1,"label",[["for","bucket_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited size"]))],function(l,n){l(n,7,0,"bucket_quota_max_size_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function nt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function ut(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The value is not valid."]))],null,null)}function et(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","bucket_quota_max_size"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. size"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","bucket_quota_max_size"],["id","bucket_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,9)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,9).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,9)._compositionEnd(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,13).onBlur(u.target.value)&&e),e},null,null)),t["\u0275did"](9,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](11,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](13,81920,null,0,ve.a,[t.ElementRef,d.q,q.a,U.a],null,null),t["\u0275did"](14,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,nt)),t["\u0275did"](17,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ut)),t["\u0275did"](19,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("bucket_quota_max_size",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,11,0,"bucket_quota_max_size"),l(n,13,0),l(n,17,0,u.userForm.showError("bucket_quota_max_size",t["\u0275nov"](n.parent,3),"required")),l(n,19,0,u.userForm.showError("bucket_quota_max_size",t["\u0275nov"](n.parent,3),"quotaMaxSize"))},function(l,n){l(n,8,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function tt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](2,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](3,0,null,null,6,"input",[["formControlName","bucket_quota_max_objects_unlimited"],["id","bucket_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,5).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,5).onTouched()&&e),e},null,null)),t["\u0275did"](4,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](5,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](7,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](9,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](10,0,null,null,1,"label",[["for","bucket_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Unlimited objects"]))],function(l,n){l(n,7,0,"bucket_quota_max_objects_unlimited")},function(l,n){l(n,3,0,t["\u0275nov"](n,9).ngClassUntouched,t["\u0275nov"](n,9).ngClassTouched,t["\u0275nov"](n,9).ngClassPristine,t["\u0275nov"](n,9).ngClassDirty,t["\u0275nov"](n,9).ngClassValid,t["\u0275nov"](n,9).ngClassInvalid,t["\u0275nov"](n,9).ngClassPending)})}function it(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function ot(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The entered value must be >= 0."]))],null,null)}function at(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](1,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](2,{"has-error":0}),(l()(),t["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","bucket_quota_max_objects"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. objects"])),(l()(),t["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,7,"input",[["class","form-control"],["formControlName","bucket_quota_max_objects"],["id","bucket_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,10)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,10).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,10)._compositionEnd(u.target.value)&&e),"change"===n&&(e=!1!==t["\u0275nov"](l,11).onChange(u.target.value)&&e),"input"===n&&(e=!1!==t["\u0275nov"](l,11).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,11).onTouched()&&e),e},null,null)),t["\u0275did"](9,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](10,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275did"](11,16384,null,0,d.C,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l,n){return[l,n]},[d.e,d.C]),t["\u0275did"](13,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](15,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,it)),t["\u0275did"](17,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ot)),t["\u0275did"](19,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,e=l(n,2,0,u.userForm.showError("bucket_quota_max_objects",t["\u0275nov"](n.parent,3)));l(n,1,0,"form-group",e),l(n,13,0,"bucket_quota_max_objects"),l(n,17,0,u.userForm.showError("bucket_quota_max_objects",t["\u0275nov"](n.parent,3),"required")),l(n,19,0,u.userForm.showError("bucket_quota_max_objects",t["\u0275nov"](n.parent,3),"min"))},function(l,n){l(n,8,0,t["\u0275nov"](n,15).ngClassUntouched,t["\u0275nov"](n,15).ngClassTouched,t["\u0275nov"](n,15).ngClassPristine,t["\u0275nov"](n,15).ngClassDirty,t["\u0275nov"](n,15).ngClassValid,t["\u0275nov"](n,15).ngClassInvalid,t["\u0275nov"](n,15).ngClassPending)})}function rt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,168,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,167,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,3).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,3).onReset()&&e),e},null,null)),t["\u0275did"](2,16384,null,0,d.D,[],null,null),t["\u0275did"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](5,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](6,0,null,null,162,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,[""," ",""])),t["\u0275ppd"](10,1),t["\u0275ppd"](11,1),(l()(),t["\u0275eld"](12,0,null,null,147,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),t["\u0275eld"](13,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](14,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](15,{"has-error":0}),(l()(),t["\u0275eld"](16,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","uid"]],null,null,null,null,null)),(l()(),t["\u0275eld"](17,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Username"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Ce)),t["\u0275did"](20,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](21,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](22,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,25)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,25).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,25)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,25)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](23,4210688,null,0,zn.a,[t.ElementRef],null,null),t["\u0275did"](24,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](25,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](27,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](29,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,_e)),t["\u0275did"](31,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ke)),t["\u0275did"](33,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](34,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](35,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](36,{"has-error":0}),(l()(),t["\u0275eld"](37,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","display_name"]],null,null,null,null,null)),(l()(),t["\u0275eld"](38,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Full name"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Re)),t["\u0275did"](41,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](42,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](43,0,null,null,6,"input",[["class","form-control"],["formControlName","display_name"],["id","display_name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,45)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,45).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,45)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,45)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](44,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](45,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](47,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](49,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ie)),t["\u0275did"](51,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](52,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](53,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](54,{"has-error":0}),(l()(),t["\u0275eld"](55,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","email"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Email address"])),(l()(),t["\u0275eld"](57,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](58,0,null,null,6,"input",[["class","form-control"],["formControlName","email"],["id","email"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,60)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,60).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,60)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,60)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](59,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](60,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](62,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](64,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,we)),t["\u0275did"](66,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ee)),t["\u0275did"](68,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](69,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](70,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","max_buckets_mode"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Max. buckets"])),(l()(),t["\u0275eld"](72,0,null,null,19,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](73,0,null,null,18,"select",[["class","form-control"],["formControlName","max_buckets_mode"],["id","max_buckets_mode"],["name","max_buckets_mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0,i=l.component;return"change"===n&&(e=!1!==t["\u0275nov"](l,75).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,75).onTouched()&&e),"change"===n&&(e=!1!==i.onMaxBucketsModeChange(u.target.value)&&e),e},null,null)),t["\u0275did"](74,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](75,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](77,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](79,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](80,0,null,null,3,"option",[["value","-1"]],null,null,null,null,null)),t["\u0275did"](81,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](82,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["Disabled"])),(l()(),t["\u0275eld"](84,0,null,null,3,"option",[["value","0"]],null,null,null,null,null)),t["\u0275did"](85,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](86,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["Unlimited"])),(l()(),t["\u0275eld"](88,0,null,null,3,"option",[["value","1"]],null,null,null,null,null)),t["\u0275did"](89,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](90,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](-1,null,["Custom"])),(l()(),t["\u0275and"](16777216,null,null,1,null,qe)),t["\u0275did"](93,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](94,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](95,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](96,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](97,0,null,null,6,"input",[["formControlName","suspended"],["id","suspended"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,99).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,99).onTouched()&&e),e},null,null)),t["\u0275did"](98,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](99,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](101,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](103,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](104,0,null,null,1,"label",[["for","suspended"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Suspended"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Fe)),t["\u0275did"](107,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ze)),t["\u0275did"](109,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Oe)),t["\u0275did"](111,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ke)),t["\u0275did"](113,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](114,0,null,null,22,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](115,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["User quota"])),(l()(),t["\u0275eld"](117,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](118,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](119,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](120,0,null,null,6,"input",[["formControlName","user_quota_enabled"],["id","user_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,122).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,122).onTouched()&&e),e},null,null)),t["\u0275did"](121,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](122,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](124,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](126,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](127,0,null,null,1,"label",[["for","user_quota_enabled"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275and"](16777216,null,null,1,null,$e)),t["\u0275did"](130,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,He)),t["\u0275did"](132,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ye)),t["\u0275did"](134,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,We)),t["\u0275did"](136,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](137,0,null,null,22,"fieldset",[],null,null,null,null,null)),(l()(),t["\u0275eld"](138,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Bucket quota"])),(l()(),t["\u0275eld"](140,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](141,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](142,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),t["\u0275eld"](143,0,null,null,6,"input",[["formControlName","bucket_quota_enabled"],["id","bucket_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,145).onChange(u.target.checked)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,145).onTouched()&&e),e},null,null)),t["\u0275did"](144,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](145,16384,null,0,d.c,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.c]),t["\u0275did"](147,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](149,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275eld"](150,0,null,null,1,"label",[["for","bucket_quota_enabled"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Enabled"])),(l()(),t["\u0275and"](16777216,null,null,1,null,lt)),t["\u0275did"](153,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,et)),t["\u0275did"](155,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,tt)),t["\u0275did"](157,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,at)),t["\u0275did"](159,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](160,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](161,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](162,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e},An.b,An.a)),t["\u0275did"](163,114688,null,0,Bn.a,[t.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](164,0,[""," ",""])),t["\u0275ppd"](165,1),t["\u0275ppd"](166,1),(l()(),t["\u0275eld"](167,0,null,null,1,"cd-back-button",[],null,null,null,Sn.b,Sn.a)),t["\u0275did"](168,49152,null,0,Dn.a,[ql.Location,i.b],null,null)],function(l,n){var u=n.component;l(n,3,0,u.userForm);var e=l(n,15,0,u.userForm.showError("uid",t["\u0275nov"](n,3)));l(n,14,0,"form-group",e),l(n,20,0,!u.editing),l(n,27,0,"uid"),l(n,31,0,u.userForm.showError("uid",t["\u0275nov"](n,3),"required")),l(n,33,0,u.userForm.showError("uid",t["\u0275nov"](n,3),"notUnique"));var i=l(n,36,0,u.userForm.showError("display_name",t["\u0275nov"](n,3)));l(n,35,0,"form-group",i),l(n,41,0,!u.editing),l(n,47,0,"display_name"),l(n,51,0,u.userForm.showError("display_name",t["\u0275nov"](n,3),"required"));var o=l(n,54,0,u.userForm.showError("email",t["\u0275nov"](n,3)));l(n,53,0,"form-group",o),l(n,62,0,"email"),l(n,66,0,u.userForm.showError("email",t["\u0275nov"](n,3),"email")),l(n,68,0,u.userForm.showError("email",t["\u0275nov"](n,3),"notUnique")),l(n,77,0,"max_buckets_mode"),l(n,81,0,"-1"),l(n,82,0,"-1"),l(n,85,0,"0"),l(n,86,0,"0"),l(n,89,0,"1"),l(n,90,0,"1"),l(n,93,0,1==u.userForm.get("max_buckets_mode").value),l(n,101,0,"suspended"),l(n,107,0,!u.editing),l(n,109,0,u.editing),l(n,111,0,u.editing),l(n,113,0,u.editing),l(n,124,0,"user_quota_enabled"),l(n,130,0,u.userForm.controls.user_quota_enabled.value),l(n,132,0,!u.userForm.getValue("user_quota_max_size_unlimited")),l(n,134,0,u.userForm.controls.user_quota_enabled.value),l(n,136,0,!u.userForm.getValue("user_quota_max_objects_unlimited")),l(n,147,0,"bucket_quota_enabled"),l(n,153,0,u.userForm.controls.bucket_quota_enabled.value),l(n,155,0,!u.userForm.getValue("bucket_quota_max_size_unlimited")),l(n,157,0,u.userForm.controls.bucket_quota_enabled.value),l(n,159,0,!u.userForm.getValue("bucket_quota_max_objects_unlimited")),l(n,163,0,u.userForm,"button")},function(l,n){var u=n.component;l(n,1,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending);var e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent,0),u.action)),i=t["\u0275unv"](n,9,1,l(n,11,0,t["\u0275nov"](n.parent,1),u.resource));l(n,9,0,e,i),l(n,22,0,u.editing,t["\u0275nov"](n,29).ngClassUntouched,t["\u0275nov"](n,29).ngClassTouched,t["\u0275nov"](n,29).ngClassPristine,t["\u0275nov"](n,29).ngClassDirty,t["\u0275nov"](n,29).ngClassValid,t["\u0275nov"](n,29).ngClassInvalid,t["\u0275nov"](n,29).ngClassPending),l(n,43,0,t["\u0275nov"](n,49).ngClassUntouched,t["\u0275nov"](n,49).ngClassTouched,t["\u0275nov"](n,49).ngClassPristine,t["\u0275nov"](n,49).ngClassDirty,t["\u0275nov"](n,49).ngClassValid,t["\u0275nov"](n,49).ngClassInvalid,t["\u0275nov"](n,49).ngClassPending),l(n,58,0,t["\u0275nov"](n,64).ngClassUntouched,t["\u0275nov"](n,64).ngClassTouched,t["\u0275nov"](n,64).ngClassPristine,t["\u0275nov"](n,64).ngClassDirty,t["\u0275nov"](n,64).ngClassValid,t["\u0275nov"](n,64).ngClassInvalid,t["\u0275nov"](n,64).ngClassPending),l(n,73,0,t["\u0275nov"](n,79).ngClassUntouched,t["\u0275nov"](n,79).ngClassTouched,t["\u0275nov"](n,79).ngClassPristine,t["\u0275nov"](n,79).ngClassDirty,t["\u0275nov"](n,79).ngClassValid,t["\u0275nov"](n,79).ngClassInvalid,t["\u0275nov"](n,79).ngClassPending),l(n,97,0,t["\u0275nov"](n,103).ngClassUntouched,t["\u0275nov"](n,103).ngClassTouched,t["\u0275nov"](n,103).ngClassPristine,t["\u0275nov"](n,103).ngClassDirty,t["\u0275nov"](n,103).ngClassValid,t["\u0275nov"](n,103).ngClassInvalid,t["\u0275nov"](n,103).ngClassPending),l(n,120,0,t["\u0275nov"](n,126).ngClassUntouched,t["\u0275nov"](n,126).ngClassTouched,t["\u0275nov"](n,126).ngClassPristine,t["\u0275nov"](n,126).ngClassDirty,t["\u0275nov"](n,126).ngClassValid,t["\u0275nov"](n,126).ngClassInvalid,t["\u0275nov"](n,126).ngClassPending),l(n,143,0,t["\u0275nov"](n,149).ngClassUntouched,t["\u0275nov"](n,149).ngClassTouched,t["\u0275nov"](n,149).ngClassPristine,t["\u0275nov"](n,149).ngClassDirty,t["\u0275nov"](n,149).ngClassValid,t["\u0275nov"](n,149).ngClassInvalid,t["\u0275nov"](n,149).ngClassPending);var o=t["\u0275unv"](n,164,0,l(n,165,0,t["\u0275nov"](n.parent,0),u.action)),a=t["\u0275unv"](n,164,1,l(n,166,0,t["\u0275nov"](n.parent,1),u.resource));l(n,164,0,o,a)})}function st(l){return t["\u0275vid"](0,[t["\u0275pid"](0,ql.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275and"](16777216,null,null,1,null,he)),t["\u0275did"](3,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,ye)),t["\u0275did"](5,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,rt)),t["\u0275did"](7,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,u.editing&&u.error),l(n,7,0,!u.loading&&!u.error)},null)}function dt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-user-form",[],null,null,null,st,be)),t["\u0275did"](1,114688,null,0,Z,[_.a,$u.a,$u.l,y.a,nn.b,k.a,_l.a,i.b],null,null)],function(l,n){l(n,1,0)},null)}var ct=t["\u0275ccf"]("cd-rgw-user-form",Z,dt,{},{},[]),pt=u("xSw7"),ft=u("GgAd"),mt=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function gt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,pt.b,pt.a)),t["\u0275did"](1,573440,null,0,ft.a,[],{total:[0,"total"],used:[1,"used"]},null)],function(l,n){l(n,1,0,n.parent.context.row.bucket_quota.max_size,n.parent.context.row.bucket_size)},null)}function vt(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["No Limit"]))],null,null)}function bt(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,gt)),t["\u0275did"](1,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),t["\u0275and"](0,[["noSizeQuota",2]],null,0,null,vt))],function(l,n){l(n,1,0,n.context.row.bucket_quota.max_size>0&&n.context.row.bucket_quota.enabled,t["\u0275nov"](n,2))},null)}function ht(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,pt.b,pt.a)),t["\u0275did"](1,573440,null,0,ft.a,[],{total:[0,"total"],used:[1,"used"],isBinary:[2,"isBinary"]},null)],function(l,n){l(n,1,0,n.parent.context.row.bucket_quota.max_objects,n.parent.context.row.num_objects,!1)},null)}function yt(l){return t["\u0275vid"](0,[(l()(),t["\u0275ted"](-1,null,["No Limit"]))],null,null)}function Ct(l){return t["\u0275vid"](0,[(l()(),t["\u0275and"](16777216,null,null,1,null,ht)),t["\u0275did"](1,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),t["\u0275and"](0,[["noObjectQuota",2]],null,0,null,yt))],function(l,n){l(n,1,0,n.context.row.bucket_quota.max_objects>0&&n.context.row.bucket_quota.enabled,t["\u0275nov"](n,2))},null)}function _t(l){return t["\u0275vid"](0,[t["\u0275qud"](402653184,1,{table:0}),t["\u0275qud"](402653184,2,{bucketSizeTpl:0}),t["\u0275qud"](402653184,3,{bucketObjectTpl:0}),(l()(),t["\u0275eld"](3,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","bid"],["selectionType","multi"]],null,[[null,"updateSelection"],[null,"fetchData"]],function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getBucketList(u)&&e),e},Yl.b,Yl.a)),t["\u0275did"](4,2867200,[[1,4],["table",4]],0,x.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["\u0275eld"](5,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,oe.b,oe.a)),t["\u0275did"](6,114688,null,0,ae.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["\u0275eld"](7,0,null,2,1,"cd-rgw-bucket-details",[["cdTableDetail",""]],null,null,null,Zl,Bl)),t["\u0275did"](8,573440,null,0,Al,[],{selection:[0,"selection"]},null),(l()(),t["\u0275and"](0,[[2,2],["bucketSizeTpl",2]],null,0,null,bt)),(l()(),t["\u0275and"](0,[[3,2],["bucketObjectTpl",2]],null,0,null,Ct))],function(l,n){var u=n.component;l(n,4,0,u.buckets,u.columns,"flex",!1,"bid","multi"),l(n,6,0,u.permission,u.selection,u.tableActions),l(n,8,0,u.selection)},null)}function kt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-rgw-bucket-list",[],null,null,null,_t,mt)),t["\u0275prd"](256,null,D.a,N,[]),t["\u0275did"](2,114688,null,0,F,[S.a,q.a,V.a,h,nn.b,_l.a,D.a,i.b,t.ChangeDetectorRef],null,null)],function(l,n){l(n,2,0)},null)}var Rt=t["\u0275ccf"]("cd-rgw-bucket-list",F,kt,{},{},[]),It=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function wt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,pe.b,pe.a)),t["\u0275did"](1,49152,null,0,fe.a,[],null,null),(l()(),t["\u0275ted"](-1,0,["Loading bucket data..."]))],null,null)}function Et(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,2,"cd-error-panel",[],null,[[null,"backAction"]],function(l,n,u){var e=!0;return"backAction"===n&&(e=!1!==l.component.goToListView()&&e),e},me.b,me.a)),t["\u0275did"](1,49152,null,0,ge.a,[],null,{backAction:"backAction"}),(l()(),t["\u0275ted"](-1,0,["The bucket data could not be loaded."]))],null,null)}function xt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","id"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Id"])),(l()(),t["\u0275eld"](3,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,null,6,"input",[["class","form-control"],["formControlName","id"],["id","id"],["name","id"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,6)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,6).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,6)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,6)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](5,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](6,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](8,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](10,16384,null,0,d.r,[[4,d.q]],null,null)],function(l,n){l(n,8,0,"id")},function(l,n){l(n,4,0,t["\u0275nov"](n,10).ngClassUntouched,t["\u0275nov"](n,10).ngClassTouched,t["\u0275nov"](n,10).ngClassPristine,t["\u0275nov"](n,10).ngClassDirty,t["\u0275nov"](n,10).ngClassValid,t["\u0275nov"](n,10).ngClassInvalid,t["\u0275nov"](n,10).ngClassPending)})}function Tt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function qt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Vt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The value is not valid."]))],null,null)}function St(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["The chosen name is already in use."]))],null,null)}function Dt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Nt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{ngValue:[0,"ngValue"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["\u0275ted"](-1,null,["-- Select a user --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Ft(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["\u0275did"](1,147456,null,0,d.v,[t.ElementRef,t.Renderer2,[2,d.z]],{value:[0,"value"]},null),t["\u0275did"](2,147456,null,0,d.G,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function jt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Pt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,69,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),t["\u0275eld"](1,0,null,null,68,"form",[["class","form-horizontal"],["name","bucketForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var e=!0;return"submit"===n&&(e=!1!==t["\u0275nov"](l,3).onSubmit(u)&&e),"reset"===n&&(e=!1!==t["\u0275nov"](l,3).onReset()&&e),e},null,null)),t["\u0275did"](2,16384,null,0,d.D,[],null,null),t["\u0275did"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["\u0275prd"](2048,null,d.d,null,[d.l]),t["\u0275did"](5,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),t["\u0275eld"](6,0,null,null,63,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),t["\u0275eld"](7,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),t["\u0275eld"](8,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),t["\u0275ted"](9,null,[""," ",""])),t["\u0275ppd"](10,1),t["\u0275ppd"](11,1),(l()(),t["\u0275eld"](12,0,null,null,48,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),t["\u0275and"](16777216,null,null,1,null,xt)),t["\u0275did"](14,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](15,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](16,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](17,{"has-error":0}),(l()(),t["\u0275eld"](18,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","bid"]],null,null,null,null,null)),(l()(),t["\u0275eld"](19,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Name"])),(l()(),t["\u0275and"](16777216,null,null,1,null,Tt)),t["\u0275did"](22,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](23,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](24,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","bid"],["id","bid"],["name","bid"],["placeholder","Name..."],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var e=!0;return"input"===n&&(e=!1!==t["\u0275nov"](l,27)._handleInput(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,27).onTouched()&&e),"compositionstart"===n&&(e=!1!==t["\u0275nov"](l,27)._compositionStart()&&e),"compositionend"===n&&(e=!1!==t["\u0275nov"](l,27)._compositionEnd(u.target.value)&&e),e},null,null)),t["\u0275did"](25,4210688,null,0,zn.a,[t.ElementRef],null,null),t["\u0275did"](26,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](27,16384,null,0,d.e,[t.Renderer2,t.ElementRef,[2,d.b]],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.e]),t["\u0275did"](29,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](31,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,qt)),t["\u0275did"](33,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Vt)),t["\u0275did"](35,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,St)),t["\u0275did"](37,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](38,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),t["\u0275did"](39,278528,null,0,ql.NgClass,[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["\u0275pod"](40,{"has-error":0}),(l()(),t["\u0275eld"](41,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","owner"]],null,null,null,null,null)),(l()(),t["\u0275eld"](42,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Owner"])),(l()(),t["\u0275eld"](44,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),t["\u0275eld"](45,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),t["\u0275eld"](46,0,null,null,12,"select",[["class","form-control"],["formControlName","owner"],["id","owner"],["name","owner"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==t["\u0275nov"](l,48).onChange(u.target.value)&&e),"blur"===n&&(e=!1!==t["\u0275nov"](l,48).onTouched()&&e),e},null,null)),t["\u0275did"](47,4210688,null,0,En.a,[[2,xn.a],S.a,t.ElementRef],null,null),t["\u0275did"](48,16384,null,0,d.z,[t.Renderer2,t.ElementRef],null,null),t["\u0275prd"](1024,null,d.p,function(l){return[l]},[d.z]),t["\u0275did"](50,671744,null,0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.F]],{name:[0,"name"]},null),t["\u0275prd"](2048,null,d.q,null,[d.j]),t["\u0275did"](52,16384,null,0,d.r,[[4,d.q]],null,null),(l()(),t["\u0275and"](16777216,null,null,1,null,Dt)),t["\u0275did"](54,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Nt)),t["\u0275did"](56,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Ft)),t["\u0275did"](58,278528,null,0,ql.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,jt)),t["\u0275did"](60,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275eld"](61,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),t["\u0275eld"](62,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["\u0275eld"](63,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e},An.b,An.a)),t["\u0275did"](64,114688,null,0,Bn.a,[t.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),t["\u0275ted"](65,0,[""," ",""])),t["\u0275ppd"](66,1),t["\u0275ppd"](67,1),(l()(),t["\u0275eld"](68,0,null,null,1,"cd-back-button",[],null,null,null,Sn.b,Sn.a)),t["\u0275did"](69,49152,null,0,Dn.a,[ql.Location,i.b],null,null)],function(l,n){var u=n.component;l(n,3,0,u.bucketForm),l(n,14,0,u.editing);var e=l(n,17,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3)));l(n,16,0,"form-group",e),l(n,22,0,!u.editing),l(n,29,0,"bid"),l(n,33,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3),"required")),l(n,35,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3),"bucketNameInvalid")),l(n,37,0,u.bucketForm.showError("bid",t["\u0275nov"](n,3),"bucketNameExists"));var i=l(n,40,0,u.bucketForm.showError("owner",t["\u0275nov"](n,3)));l(n,39,0,"form-group",i),l(n,50,0,"owner"),l(n,54,0,null===u.owners),l(n,56,0,null!==u.owners),l(n,58,0,u.owners),l(n,60,0,u.bucketForm.showError("owner",t["\u0275nov"](n,3),"required")),l(n,64,0,u.bucketForm,"button")},function(l,n){var u=n.component;l(n,1,0,t["\u0275nov"](n,5).ngClassUntouched,t["\u0275nov"](n,5).ngClassTouched,t["\u0275nov"](n,5).ngClassPristine,t["\u0275nov"](n,5).ngClassDirty,t["\u0275nov"](n,5).ngClassValid,t["\u0275nov"](n,5).ngClassInvalid,t["\u0275nov"](n,5).ngClassPending);var e=t["\u0275unv"](n,9,0,l(n,10,0,t["\u0275nov"](n.parent,0),u.action)),i=t["\u0275unv"](n,9,1,l(n,11,0,t["\u0275nov"](n.parent,1),u.resource));l(n,9,0,e,i),l(n,24,0,u.editing,t["\u0275nov"](n,31).ngClassUntouched,t["\u0275nov"](n,31).ngClassTouched,t["\u0275nov"](n,31).ngClassPristine,t["\u0275nov"](n,31).ngClassDirty,t["\u0275nov"](n,31).ngClassValid,t["\u0275nov"](n,31).ngClassInvalid,t["\u0275nov"](n,31).ngClassPending),l(n,46,0,t["\u0275nov"](n,52).ngClassUntouched,t["\u0275nov"](n,52).ngClassTouched,t["\u0275nov"](n,52).ngClassPristine,t["\u0275nov"](n,52).ngClassDirty,t["\u0275nov"](n,52).ngClassValid,t["\u0275nov"](n,52).ngClassInvalid,t["\u0275nov"](n,52).ngClassPending);var o=t["\u0275unv"](n,65,0,l(n,66,0,t["\u0275nov"](n.parent,0),u.action)),a=t["\u0275unv"](n,65,1,l(n,67,0,t["\u0275nov"](n.parent,1),u.resource));l(n,65,0,o,a)})}function zt(l){return t["\u0275vid"](0,[t["\u0275pid"](0,ql.TitleCasePipe,[]),t["\u0275pid"](0,wn.a,[]),(l()(),t["\u0275and"](16777216,null,null,1,null,wt)),t["\u0275did"](3,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Et)),t["\u0275did"](5,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["\u0275and"](16777216,null,null,1,null,Pt)),t["\u0275did"](7,16384,null,0,ql.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,u.editing&&u.error),l(n,7,0,!u.loading&&!u.error)},null)}function At(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-bucket-form",[],null,null,null,zt,It)),t["\u0275did"](1,114688,null,0,R,[$u.a,$u.l,_.a,h,y.a,k.a,_l.a,i.b],null,null)],function(l,n){l(n,1,0)},null)}var Bt=t["\u0275ccf"]("cd-rgw-bucket-form",R,At,{},{},[]),Ut=u("TZo1"),Mt=u("9Kw/"),Ot=t["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Lt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,8,"cd-info-panel",[],null,null,null,Ut.b,Ut.a)),t["\u0275did"](1,49152,null,0,Mt.a,[_l.a],null,null),(l()(),t["\u0275ted"](2,0,[" ",""])),(l()(),t["\u0275eld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),t["\u0275eld"](4,0,null,0,4,null,null,null,null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["Please consult the "])),(l()(),t["\u0275eld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),t["\u0275ted"](-1,null,["documentation"])),(l()(),t["\u0275ted"](-1,null,[" on how to configure and enable the Object Gateway management functionality."]))],null,function(l,n){var u=n.component;l(n,2,0,u.message),l(n,6,0,t["\u0275inlineInterpolate"](1,"",u.docsUrl,""))})}function Gt(l){return t["\u0275vid"](0,[(l()(),t["\u0275eld"](0,0,null,null,1,"cd-rgw-501",[],null,null,null,Lt,Ot)),t["\u0275did"](1,245760,null,0,s,[$u.a,r.a,a.a],null,null)],function(l,n){l(n,1,0)},null)}var Kt=t["\u0275ccf"]("cd-rgw-501",s,Gt,{},{},[]);u.d(n,"RgwModuleNgFactory",function(){return $t}),u.d(n,"RoutedRgwModuleNgFactory",function(){return Zt});var $t=t["\u0275cmf"](X,[],function(l){return t["\u0275mod"]([t["\u0275mpd"](512,t.ComponentFactoryResolver,t["\u0275CodegenComponentFactoryResolver"],[[8,[al.a,rl.a,sl.a,dl.a,dl.b,cl.a,pl.a,fl.a,ml.a,gl.a,Pl,Hl,In,Pn,eu,gu,xu]],[3,t.ComponentFactoryResolver],t.NgModuleRef]),t["\u0275mpd"](4608,ql.NgLocalization,ql.NgLocaleLocalization,[t.LOCALE_ID,[2,ql["\u0275angular_packages_common_common_a"]]]),t["\u0275mpd"](4608,zl.a,zl.a,[_l.a]),t["\u0275mpd"](4608,ql.DatePipe,ql.DatePipe,[t.LOCALE_ID]),t["\u0275mpd"](4608,P.a,P.a,[]),t["\u0275mpd"](4608,a.a,a.a,[]),t["\u0275mpd"](4608,U.a,U.a,[]),t["\u0275mpd"](4608,q.a,q.a,[U.a]),t["\u0275mpd"](4608,Tu.a,Tu.a,[U.a]),t["\u0275mpd"](4608,V.a,V.a,[U.a]),t["\u0275mpd"](4608,qu.a,qu.a,[]),t["\u0275mpd"](4608,Vu.a,Vu.a,[]),t["\u0275mpd"](4608,Su.a,Su.a,[]),t["\u0275mpd"](4608,Du.a,Du.a,[]),t["\u0275mpd"](4608,wl.a,wl.a,[ql.DatePipe]),t["\u0275mpd"](4608,Nu.a,Nu.a,[]),t["\u0275mpd"](4608,Fu.a,Fu.a,[]),t["\u0275mpd"](4608,ju.a,ju.a,[]),t["\u0275mpd"](4608,Pu.a,Pu.a,[]),t["\u0275mpd"](4608,zu.a,zu.a,[]),t["\u0275mpd"](4608,Au.a,Au.a,[_l.a]),t["\u0275mpd"](4608,wn.a,wn.a,[]),t["\u0275mpd"](4608,Wl.a,Wl.a,[]),t["\u0275mpd"](4608,d.E,d.E,[]),t["\u0275mpd"](4608,d.h,d.h,[]),t["\u0275mpd"](4608,Bu.b,Bu.b,[]),t["\u0275mpd"](4608,Uu.a,Uu.a,[]),t["\u0275mpd"](4608,Mu.a,Mu.a,[t.RendererFactory2,t.PLATFORM_ID]),t["\u0275mpd"](4608,Jl.a,Jl.a,[t.ComponentFactoryResolver,t.NgZone,t.Injector,Mu.a,t.ApplicationRef]),t["\u0275mpd"](4608,Ou.a,Ou.a,[]),t["\u0275mpd"](4608,nn.b,nn.b,[t.RendererFactory2,Jl.a]),t["\u0275mpd"](4608,Lu.ScrollbarHelper,Lu.ScrollbarHelper,[yl.DOCUMENT]),t["\u0275mpd"](4608,Gu.DimensionsHelper,Gu.DimensionsHelper,[]),t["\u0275mpd"](4608,Ku.ColumnChangesService,Ku.ColumnChangesService,[]),t["\u0275mpd"](4608,Xl.f,Xl.f,[]),t["\u0275mpd"](4608,S.a,S.a,[]),t["\u0275mpd"](4608,o.a,o.a,[$u.l,S.a]),t["\u0275mpd"](4608,vl.e,vl.e,[]),t["\u0275mpd"](1073742336,ql.CommonModule,ql.CommonModule,[]),t["\u0275mpd"](1073742336,Zu.a,Zu.a,[]),t["\u0275mpd"](1073742336,d.B,d.B,[]),t["\u0275mpd"](1073742336,d.n,d.n,[]),t["\u0275mpd"](1073742336,d.x,d.x,[]),t["\u0275mpd"](1073742336,Bu.c,Bu.c,[]),t["\u0275mpd"](1073742336,Uu.d,Uu.d,[]),t["\u0275mpd"](1073742336,Ou.d,Ou.d,[]),t["\u0275mpd"](1073742336,Qu.ChartsModule,Qu.ChartsModule,[]),t["\u0275mpd"](1073742336,nn.e,nn.e,[]),t["\u0275mpd"](1073742336,Hu.a,Hu.a,[]),t["\u0275mpd"](1073742336,Xl.e,Xl.e,[]),t["\u0275mpd"](1073742336,Yu.a,Yu.a,[]),t["\u0275mpd"](1073742336,Xu.NgxDatatableModule,Xu.NgxDatatableModule,[]),t["\u0275mpd"](1073742336,$u.p,$u.p,[[2,$u.v],[2,$u.l]]),t["\u0275mpd"](1073742336,Ju.a,Ju.a,[]),t["\u0275mpd"](1073742336,b.a,b.a,[]),t["\u0275mpd"](1073742336,Wu.a,Wu.a,[]),t["\u0275mpd"](1073742336,le.a,le.a,[]),t["\u0275mpd"](1073742336,vl.c,vl.c,[]),t["\u0275mpd"](1073742336,X,X,[]),t["\u0275mpd"](256,t.LOCALE_ID,"en-US",[]),t["\u0275mpd"](256,Xl.a,{autoClose:!0,insideClick:!1},[]),t["\u0275mpd"](256,t.TRANSLATIONS_FORMAT,"xlf",[])])}),Zt=t["\u0275cmf"](ol,[],function(l){return t["\u0275mod"]([t["\u0275mpd"](512,t.ComponentFactoryResolver,t["\u0275CodegenComponentFactoryResolver"],[[8,[al.a,rl.a,sl.a,dl.a,dl.b,cl.a,pl.a,fl.a,ml.a,gl.a,Pl,Hl,In,Pn,eu,gu,xu,ie,ce,ct,Rt,Bt,Kt]],[3,t.ComponentFactoryResolver],t.NgModuleRef]),t["\u0275mpd"](4608,ql.NgLocalization,ql.NgLocaleLocalization,[t.LOCALE_ID,[2,ql["\u0275angular_packages_common_common_a"]]]),t["\u0275mpd"](4608,zl.a,zl.a,[_l.a]),t["\u0275mpd"](4608,ql.DatePipe,ql.DatePipe,[t.LOCALE_ID]),t["\u0275mpd"](4608,P.a,P.a,[]),t["\u0275mpd"](4608,a.a,a.a,[]),t["\u0275mpd"](4608,U.a,U.a,[]),t["\u0275mpd"](4608,q.a,q.a,[U.a]),t["\u0275mpd"](4608,Tu.a,Tu.a,[U.a]),t["\u0275mpd"](4608,V.a,V.a,[U.a]),t["\u0275mpd"](4608,qu.a,qu.a,[]),t["\u0275mpd"](4608,Vu.a,Vu.a,[]),t["\u0275mpd"](4608,Su.a,Su.a,[]),t["\u0275mpd"](4608,Du.a,Du.a,[]),t["\u0275mpd"](4608,wl.a,wl.a,[ql.DatePipe]),t["\u0275mpd"](4608,Nu.a,Nu.a,[]),t["\u0275mpd"](4608,Fu.a,Fu.a,[]),t["\u0275mpd"](4608,ju.a,ju.a,[]),t["\u0275mpd"](4608,Pu.a,Pu.a,[]),t["\u0275mpd"](4608,zu.a,zu.a,[]),t["\u0275mpd"](4608,Au.a,Au.a,[_l.a]),t["\u0275mpd"](4608,wn.a,wn.a,[]),t["\u0275mpd"](4608,Wl.a,Wl.a,[]),t["\u0275mpd"](4608,d.E,d.E,[]),t["\u0275mpd"](4608,d.h,d.h,[]),t["\u0275mpd"](4608,Bu.b,Bu.b,[]),t["\u0275mpd"](4608,Uu.a,Uu.a,[]),t["\u0275mpd"](4608,Mu.a,Mu.a,[t.RendererFactory2,t.PLATFORM_ID]),t["\u0275mpd"](4608,Jl.a,Jl.a,[t.ComponentFactoryResolver,t.NgZone,t.Injector,Mu.a,t.ApplicationRef]),t["\u0275mpd"](4608,Ou.a,Ou.a,[]),t["\u0275mpd"](4608,nn.b,nn.b,[t.RendererFactory2,Jl.a]),t["\u0275mpd"](4608,Lu.ScrollbarHelper,Lu.ScrollbarHelper,[yl.DOCUMENT]),t["\u0275mpd"](4608,Gu.DimensionsHelper,Gu.DimensionsHelper,[]),t["\u0275mpd"](4608,Ku.ColumnChangesService,Ku.ColumnChangesService,[]),t["\u0275mpd"](4608,Xl.f,Xl.f,[]),t["\u0275mpd"](4608,S.a,S.a,[]),t["\u0275mpd"](4608,o.a,o.a,[$u.l,S.a]),t["\u0275mpd"](4608,vl.e,vl.e,[]),t["\u0275mpd"](1073742336,ql.CommonModule,ql.CommonModule,[]),t["\u0275mpd"](1073742336,Zu.a,Zu.a,[]),t["\u0275mpd"](1073742336,d.B,d.B,[]),t["\u0275mpd"](1073742336,d.n,d.n,[]),t["\u0275mpd"](1073742336,d.x,d.x,[]),t["\u0275mpd"](1073742336,Bu.c,Bu.c,[]),t["\u0275mpd"](1073742336,Uu.d,Uu.d,[]),t["\u0275mpd"](1073742336,Ou.d,Ou.d,[]),t["\u0275mpd"](1073742336,Qu.ChartsModule,Qu.ChartsModule,[]),t["\u0275mpd"](1073742336,nn.e,nn.e,[]),t["\u0275mpd"](1073742336,Hu.a,Hu.a,[]),t["\u0275mpd"](1073742336,Xl.e,Xl.e,[]),t["\u0275mpd"](1073742336,Yu.a,Yu.a,[]),t["\u0275mpd"](1073742336,Xu.NgxDatatableModule,Xu.NgxDatatableModule,[]),t["\u0275mpd"](1073742336,$u.p,$u.p,[[2,$u.v],[2,$u.l]]),t["\u0275mpd"](1073742336,Ju.a,Ju.a,[]),t["\u0275mpd"](1073742336,b.a,b.a,[]),t["\u0275mpd"](1073742336,Wu.a,Wu.a,[]),t["\u0275mpd"](1073742336,le.a,le.a,[]),t["\u0275mpd"](1073742336,vl.c,vl.c,[]),t["\u0275mpd"](1073742336,X,X,[]),t["\u0275mpd"](1073742336,ol,ol,[]),t["\u0275mpd"](256,t.LOCALE_ID,"en-US",[]),t["\u0275mpd"](256,Xl.a,{autoClose:!0,insideClick:!1},[]),t["\u0275mpd"](1024,$u.j,function(){return[[{path:"",redirectTo:"daemon",pathMatch:"full"},{path:"daemon",component:z,data:J},{path:"user",data:W,children:[{path:"",component:Y},{path:"create",component:Z,data:ll},{path:"edit/:uid",component:Z,data:nl}]},{path:"bucket",data:ul,children:[{path:"",component:F},{path:"create",component:R,data:el},{path:"edit/:bid",component:R,data:tl}]},{path:"501/:message",component:s,canActivate:[o.a],data:il}]]},[]),t["\u0275mpd"](256,t.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/7.6c6f774332e18ad6d7f3.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/7.6c6f774332e18ad6d7f3.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/7.6c6f774332e18ad6d7f3.js 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/7.6c6f774332e18ad6d7f3.js 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{J6Oi:function(l,n,u){"use strict";u.r(n);var e=u("CcnG"),t=u("k/xb"),a=u("MdoF"),o=u("ES0t"),i=u("Xg1U"),r=u("z5nN"),d=u("iutN"),s=u("EEJc"),c=u("PEr+"),p=u("a40w"),f=u("pMnS"),g=u("RIVN"),m=u("nP0W"),v=u("VBM6"),h=u("atuK"),b=u("JIi+"),C=u("Ur3J"),R=u("I4Qz"),I=u("0rTx"),w=u("lz+O"),T=u("u2XS"),y=u("nhAp"),k=u("l7Jr"),_=u("bUo2"),x=u("Ip0R"),E=u("iExv"),V=u("Jm/i"),N=u("85J/"),D=u("+0ag"),S=u("aXbf"),F=u("Fgil"),P=u("IzCI"),q=u("o4+5"),j=u("Dwqy"),O=u("uYzU"),A=u("uhwM"),U=u("E2fk"),$=u("a0VL"),M=u("nSDx"),z=u("SB+Q"),B=u("TYzs"),L=u("BQkM"),G=u("dEH0"),K=u("G1/K"),H=u("8xTl"),J=u("TJUb"),Z=u("gIcY"),W=u("lTVp"),Q=u("OZfm"),Y=u("NJnL"),X=u("lqqz"),ll=u("eajB"),nl=u("DQlY"),ul=u("FO+L"),el=u("ZYjt"),tl=u("nhM1"),al=u("BARL"),ol=u("xtZt"),il=u("aexS"),rl=u("Avrn"),dl=u("ZYCi"),sl=u("urB8"),cl=u("JZ5S"),pl=u("Tff5"),fl=u("YAQW"),gl=u("Da1D"),ml=u("ARl4"),vl=u("9Xeq"),hl=u("xdbM"),bl=u("yGOH"),Cl=u("V/fk"),Rl=u("F8xH"),Il=u("ChqD"),wl=u("pL04"),Tl=u("PCNd"),yl=u("STEd"),kl=u("kccj"),_l=u("a278"),xl=u("insk"),El=u("mSOc"),Vl=u("20UP"),Nl=u("pKUh"),Dl=u("C6Ij"),Sl=u("AWcq"),Fl=u("25BL"),Pl=u("uIqm"),ql=u("NUGo"),jl=u("S7zO"),Ol=u("JBea"),Al=u("VTlA"),Ul=u("ufoC"),$l=u("EgGo"),Ml=u("LvDl"),zl=u("F83c"),Bl=u("OLbh"),Ll=u("0+/T"),Gl=u("sne2"),Kl=u("x38r"),Hl=u("yJti"),Jl=u("vCyI"),Zl=u("kvvV"),Wl=u("kn/O"),Ql=u("2JDI"),Yl=u("u0yg"),Xl=new $l.a("block/rbd"),ln=function(){function l(l,n,u,e,t,a,o,i,r,d){var s=this;this.authStorageService=l,this.rbdService=n,this.dimlessBinaryPipe=u,this.dimlessPipe=e,this.modalService=t,this.taskWrapper=a,this.taskListService=o,this.i18n=i,this.urlBuilder=r,this.actionLabels=d,this.selection=new Jl.a,this.builders={"rbd/create":function(l){return s.createRbdFromTask(l.pool_name,l.image_name)},"rbd/clone":function(l){return s.createRbdFromTask(l.child_pool_name,l.child_image_name)},"rbd/copy":function(l){return s.createRbdFromTask(l.dest_pool_name,l.dest_image_name)}},this.permission=this.authStorageService.getPermissions().rbdImage;var c=function(){return s.selection.first()&&encodeURIComponent(s.selection.first().pool_name)+"/"+encodeURIComponent(s.selection.first().name)};this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return s.urlBuilder.getCreate()},canBePrimary:function(l){return!l.hasSingleSelection},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return s.urlBuilder.getEdit(c())},name:this.actionLabels.EDIT},{permission:"create",canBePrimary:function(l){return l.hasSingleSelection},disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting},icon:"fa-copy",routerLink:function(){return"/block/rbd/copy/"+c()},name:this.actionLabels.COPY},{permission:"update",disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting||!l.first().parent},icon:"fa-chain-broken",click:function(){return s.flattenRbdModal()},name:this.actionLabels.FLATTEN},{permission:"delete",icon:"fa-times",click:function(){return s.deleteRbdModal()},name:this.actionLabels.DELETE},{permission:"delete",icon:"fa-trash-o",click:function(){return s.trashRbdModal()},name:this.actionLabels.TRASH,disable:function(l){return!l.first()||!l.hasSingleSelection||l.first().image_format===Yl.a.V1}}]}return l.prototype.createRbdFromTask=function(l,n){var u=new Yl.b;return u.id="-1",u.unique_id="-1",u.name=n,u.pool_name=l,u.image_format=Yl.a.V2,u},l.prototype.ngOnInit=function(){var l=this;this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:2,cellTransformation:Kl.a.executing},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Objects"),prop:"num_objs",flexGrow:1,cellClass:"text-right",pipe:this.dimlessPipe},{name:this.i18n("Object size"),prop:"obj_size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Total provisioned"),prop:"total_disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Parent"),prop:"parent",flexGrow:2,cellTemplate:this.parentTpl}],this.taskListService.init(function(){return l.rbdService.list()},function(n){return l.prepareResponse(n)},function(n){return l.images=n},function(){return l.onFetchError()},this.taskFilter,this.itemFilter,this.builders)},l.prototype.onFetchError=function(){this.table.reset(),this.viewCacheStatusList=[{status:Hl.a.ValueException}]},l.prototype.prepareResponse=function(l){var n=[],u={};l.forEach(function(l){Ml.isUndefined(u[l.status])&&(u[l.status]=[]),u[l.status].push(l.pool_name),n=n.concat(l.value)});var e=[];return Ml.forEach(u,function(l,n){e.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+""+l.join(", ")+""})}),this.viewCacheStatusList=e,n},l.prototype.itemFilter=function(l,n){var u,e;switch(n.name){case"rbd/copy":u="dest_pool_name",e="dest_image_name";break;case"rbd/clone":u="child_pool_name",e="child_image_name";break;default:u="pool_name",e="image_name"}return l.pool_name===n.metadata[u]&&l.name===n.metadata[e]},l.prototype.taskFilter=function(l){return["rbd/clone","rbd/copy","rbd/create","rbd/delete","rbd/edit","rbd/flatten","rbd/trash/move"].includes(l.name)},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.deleteRbdModal=function(){var l=this,n=this.selection.first().pool_name,u=this.selection.first().name;this.modalRef=this.modalService.show(Ll.a,{initialState:{itemDescription:"RBD",itemNames:[n+"/"+u],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new Zl.a("rbd/delete",{pool_name:n,image_name:u}),call:l.rbdService.delete(n,u)})}}})},l.prototype.trashRbdModal=function(){var l={metaType:"RBD",poolName:this.selection.first().pool_name,imageName:this.selection.first().name};this.modalRef=this.modalService.show(Ql.a,{initialState:l})},l.prototype.flattenRbd=function(l,n){var u=this;this.taskWrapper.wrapTaskAroundCall({task:new Zl.a("rbd/flatten",{pool_name:l,image_name:n}),call:this.rbdService.flatten(l,n)}).subscribe(void 0,void 0,function(){u.modalRef.hide()})},l.prototype.flattenRbdModal=function(){var l=this,n=this.selection.first().pool_name,u=this.selection.first().name,e=this.selection.first().parent;this.modalRef=this.modalService.show(Bl.a,{initialState:{titleText:"RBD flatten",buttonText:"Flatten",bodyTpl:this.flattenTpl,bodyData:{parent:e.pool_name+"/"+e.image_name+"@"+e.snap_name,child:n+"/"+u},onSubmit:function(){l.flattenRbd(n,u)}}})},l}(),nn=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function un(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Dl.b,Dl.a)),e["\u0275did"](1,114688,null,0,Sl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)},null)}function en(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"div",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(l,n){l(n,0,0,"Only available for RBD images with fast-diff enabled")})}function tn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["","/","@",""]))],null,function(l,n){l(n,1,0,n.parent.context.value.pool_name,n.parent.context.value.image_name,n.parent.context.value.snap_name)})}function an(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["-"]))],null,null)}function on(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,tn)),e["\u0275did"](1,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,an)),e["\u0275did"](3,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.context.value),l(n,3,0,!n.context.value)},null)}function rn(l){return e["\u0275vid"](0,[(l()(),e["\u0275ted"](-1,null,[" You are about to flatten "])),(l()(),e["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["\u0275ted"](2,null,["",""])),(l()(),e["\u0275ted"](-1,null,[". "])),(l()(),e["\u0275eld"](4,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" All blocks will be copied from parent "])),(l()(),e["\u0275eld"](7,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["\u0275ted"](8,null,["",""])),(l()(),e["\u0275ted"](-1,null,[" to child "])),(l()(),e["\u0275eld"](10,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["\u0275ted"](11,null,["",""])),(l()(),e["\u0275ted"](-1,null,[".\n"]))],null,function(l,n){l(n,2,0,n.context.$implicit.child),l(n,8,0,n.context.$implicit.parent),l(n,11,0,n.context.$implicit.child)})}function dn(l){return e["\u0275vid"](0,[e["\u0275qud"](402653184,1,{table:0}),e["\u0275qud"](402653184,2,{usageTpl:0}),e["\u0275qud"](402653184,3,{parentTpl:0}),e["\u0275qud"](402653184,4,{nameTpl:0}),e["\u0275qud"](402653184,5,{flattenTpl:0}),(l()(),e["\u0275and"](16777216,null,null,1,null,un)),e["\u0275did"](6,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](7,0,null,null,5,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","unique_id"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e},Fl.b,Fl.a)),e["\u0275did"](8,2867200,[[1,4],["table",4]],0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"],searchableObjects:[6,"searchableObjects"]},{updateSelection:"updateSelection"}),(l()(),e["\u0275eld"](9,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,ql.b,ql.a)),e["\u0275did"](10,114688,null,0,jl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["\u0275eld"](11,0,null,2,1,"cd-rbd-details",[["cdTableDetail",""]],null,null,null,b.c,b.b)),e["\u0275did"](12,573440,null,0,Ol.a,[],{selection:[0,"selection"]},null),(l()(),e["\u0275and"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,en)),(l()(),e["\u0275and"](0,[[3,2],["parentTpl",2]],null,0,null,on)),(l()(),e["\u0275and"](0,[[5,2],["flattenTpl",2]],null,0,null,rn))],function(l,n){var u=n.component;l(n,6,0,u.viewCacheStatusList),l(n,8,0,u.images,u.columns,"flex","unique_id","true","single",!0),l(n,10,0,u.permission,u.selection,u.tableActions),l(n,12,0,u.selection)},null)}var sn=u("wd/R"),cn=u("WxU5"),pn=u("2GqK"),fn=function(){function l(l,n,u,e,t,a,o,i){var r=this;this.authStorageService=l,this.rbdService=n,this.modalService=u,this.cdDatePipe=e,this.taskListService=t,this.taskWrapper=a,this.i18n=o,this.actionLabels=i,this.executingTasks=[],this.selection=new Jl.a,this.disablePurgeBtn=!0,this.permission=this.authStorageService.getPermissions().rbdImage,this.tableActions=[{permission:"update",icon:"fa-undo",click:function(){return r.restoreModal()},name:this.actionLabels.RESTORE},{permission:"delete",icon:"fa-times",click:function(){return r.deleteModal()},name:this.actionLabels.DELETE}]}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:1,cellTransformation:Kl.a.executing},{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:1},{name:this.i18n("Status"),prop:"deferment_end_time",flexGrow:1,cellTemplate:this.expiresTpl},{name:this.i18n("Deleted At"),prop:"deletion_time",flexGrow:1,pipe:this.cdDatePipe}],this.taskListService.init(function(){return l.rbdService.listTrash()},function(n){return l.prepareResponse(n)},function(n){return l.images=n},function(){return l.onFetchError()},this.taskFilter,this.itemFilter,void 0)},l.prototype.prepareResponse=function(l){var n=this,u=[],e={};l.forEach(function(l){Ml.isUndefined(e[l.status])&&(e[l.status]=[]),e[l.status].push(l.pool_name),u=u.concat(l.value),n.disablePurgeBtn=!u.length});var t=[];return Ml.forEach(e,function(l,n){t.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+""+l.join(", ")+""})}),this.viewCacheStatusList=t,u.forEach(function(l){l.cdIsExpired=sn().isAfter(l.deferment_end_time)}),u},l.prototype.onFetchError=function(){this.table.reset(),this.viewCacheStatusList=[{status:Hl.a.ValueException}]},l.prototype.itemFilter=function(l,n){return l.id===n.metadata.image_id},l.prototype.taskFilter=function(l){return["rbd/trash/remove","rbd/trash/restore"].includes(l.name)},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.restoreModal=function(){var l={metaType:"RBD",poolName:this.selection.first().pool_name,imageName:this.selection.first().name,imageId:this.selection.first().id};this.modalRef=this.modalService.show(pn.a,{initialState:l})},l.prototype.deleteModal=function(){var l=this,n=this.selection.first().pool_name,u=this.selection.first().name,e=this.selection.first().id,t=this.selection.first().deferment_end_time;this.modalRef=this.modalService.show(Ll.a,{initialState:{itemDescription:"RBD",itemNames:[n+"/"+u],bodyTemplate:this.deleteTpl,bodyContext:{$implicit:t},submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new Zl.a("rbd/trash/remove",{pool_name:n,image_id:e,image_name:u}),call:l.rbdService.removeTrash(n,e,u,!0)})}}})},l.prototype.isExpired=function(l){return sn().isAfter(l)},l.prototype.purgeModal=function(){this.modalService.show(cn.a)},l}(),gn=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function mn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Dl.b,Dl.a)),e["\u0275did"](1,114688,null,0,Sl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)},null)}function vn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"button",[["class","btn btn-sm btn-default btn-label"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.purgeModal()&&e),e},null,null)),(l()(),e["\u0275eld"](1,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-fw fa-times"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Purge Trash"]))],null,function(l,n){l(n,0,0,n.component.disablePurgeBtn)})}function hn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Expired at"]))],null,null)}function bn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Protected until"]))],null,null)}function Cn(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,hn)),e["\u0275did"](1,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,bn)),e["\u0275did"](3,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275ted"](4,null,[" ","\n"])),e["\u0275ppd"](5,1)],function(l,n){l(n,1,0,n.context.row.cdIsExpired),l(n,3,0,!n.context.row.cdIsExpired)},function(l,n){var u=e["\u0275unv"](n,4,0,l(n,5,0,e["\u0275nov"](n.parent,0),n.context.value));l(n,4,0,u)})}function Rn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,4,"p",[["class","text-danger"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,3,"strong",[],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](3,null,["This image is protected until ","."])),e["\u0275ppd"](4,1)],null,function(l,n){var u=e["\u0275unv"](n,3,0,l(n,4,0,e["\u0275nov"](n.parent.parent,0),n.parent.context.$implicit));l(n,3,0,u)})}function In(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,Rn)),e["\u0275did"](1,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,!n.component.isExpired(n.context.$implicit))},null)}function wn(l){return e["\u0275vid"](0,[e["\u0275pid"](0,$.a,[x.DatePipe]),e["\u0275qud"](402653184,1,{table:0}),e["\u0275qud"](402653184,2,{expiresTpl:0}),e["\u0275qud"](402653184,3,{deleteTpl:0}),(l()(),e["\u0275and"](16777216,null,null,1,null,mn)),e["\u0275did"](5,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](6,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e},Fl.b,Fl.a)),e["\u0275did"](7,2867200,[[1,4]],0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["\u0275eld"](8,0,null,0,4,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["\u0275eld"](9,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,ql.b,ql.a)),e["\u0275did"](10,114688,null,0,jl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,vn)),e["\u0275did"](12,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,[[2,2],["expiresTpl",2]],null,0,null,Cn)),(l()(),e["\u0275and"](0,[[3,2],["deleteTpl",2]],null,0,null,In))],function(l,n){var u=n.component;l(n,5,0,u.viewCacheStatusList),l(n,7,0,u.images,u.columns,"flex","id","true","single"),l(n,10,0,u.permission,u.selection,u.tableActions),l(n,12,0,u.permission.delete)},null)}var Tn=u("wG1H"),yn=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function kn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","41FrpeUiz"]],null,null,null,_l.b,_l.a)),e["\u0275did"](3,638976,null,0,xl.a,[El.a,el.DomSanitizer,Vl.a,D.a,V.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"rbd-overview?","two","41FrpeUiz")},function(l,n){l(n,0,0,e["\u0275nov"](n,1).id,e["\u0275nov"](n,1).active,e["\u0275nov"](n,1).addClass)})}function _n(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,15,"div",[],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,14,"tabset",[],[[2,"tab-container",null]],null,null,Nl.b,Nl.a)),e["\u0275did"](2,180224,null,0,fl.d,[fl.e,e.Renderer2,e.ElementRef],null,null),(l()(),e["\u0275eld"](3,0,null,0,5,"tab",[["heading","Images"],["id","tab1"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["\u0275did"](4,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"],id:[1,"id"]},null),(l()(),e["\u0275eld"](5,0,null,null,3,"cd-rbd-list",[],null,null,null,dn,nn)),e["\u0275prd"](131584,null,Al.a,Al.a,[Ul.a,El.a]),e["\u0275prd"](256,null,$l.a,Xl,[]),e["\u0275did"](8,114688,null,0,ln,[il.a,zl.a,F.a,q.a,nl.b,Wl.a,Al.a,V.a,$l.a,Gl.b],null,null),(l()(),e["\u0275eld"](9,0,null,0,4,"tab",[["heading","Trash"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["\u0275did"](10,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["\u0275eld"](11,0,null,null,2,"cd-rbd-trash-list",[],null,null,null,wn,gn)),e["\u0275prd"](131584,null,Al.a,Al.a,[Ul.a,El.a]),e["\u0275did"](13,114688,null,0,fn,[il.a,zl.a,nl.b,$.a,Al.a,Wl.a,V.a,Gl.b],null,null),(l()(),e["\u0275and"](16777216,null,0,1,null,kn)),e["\u0275did"](15,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,4,0,"Images","tab1"),l(n,8,0),l(n,10,0,"Trash"),l(n,13,0),l(n,15,0,u.grafanaPermission.read)},function(l,n){l(n,1,0,e["\u0275nov"](n,2).clazz),l(n,3,0,e["\u0275nov"](n,4).id,e["\u0275nov"](n,4).active,e["\u0275nov"](n,4).addClass),l(n,9,0,e["\u0275nov"](n,10).id,e["\u0275nov"](n,10).active,e["\u0275nov"](n,10).addClass)})}function xn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-rbd-images",[],null,null,null,_n,yn)),e["\u0275did"](1,114688,null,0,Tn.a,[il.a],null,null)],function(l,n){l(n,1,0)},null)}var En=e["\u0275ccf"]("cd-rbd-images",Tn.a,xn,{},{},[]),Vn=u("4HWh"),Nn=u("p4Cf"),Dn=u("IZUe"),Sn=u("EmSq"),Fn=u("BH9v"),Pn=u("rFfW"),qn=u("o8EM"),jn=u("gp3X"),On=u("sb0X"),An=u("KVJa"),Un=u("Z21x"),$n=u("MyVl"),Mn=u("Ekvf"),zn=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Bn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),e["\u0275ted"](2,null,[""," from"])),e["\u0275ppd"](3,1),(l()(),e["\u0275eld"](4,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,5,"input",[["class","form-control"],["formControlName","parent"],["id","parent"],["name","parent"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,6)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,6).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,6)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,6)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](6,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](8,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](10,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](11,0,null,null,0,"hr",[],null,null,null,null,null))],function(l,n){l(n,8,0,"parent")},function(l,n){var u=n.component,t=e["\u0275unv"](n,2,0,l(n,3,0,e["\u0275nov"](n.parent,0),u.action));l(n,2,0,t),l(n,5,0,e["\u0275nov"](n,10).ngClassUntouched,e["\u0275nov"](n,10).ngClassTouched,e["\u0275nov"](n,10).ngClassPristine,e["\u0275nov"](n,10).ngClassDirty,e["\u0275nov"](n,10).ngClassValid,e["\u0275nov"](n,10).ngClassInvalid,e["\u0275nov"](n,10).ngClassPending)})}function Ln(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Gn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["'/' and '@' are not allowed."]))],null,null)}function Kn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Hn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,"input",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null)],function(l,n){l(n,3,0,"pool")},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function Jn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Zn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- No rbd pools available --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Wn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- Select a pool --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Qn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)},function(l,n){l(n,3,0,n.context.$implicit.pool_name)})}function Yn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,13,"select",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,1).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Jn)),e["\u0275did"](7,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Zn)),e["\u0275did"](9,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Wn)),e["\u0275did"](11,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Qn)),e["\u0275did"](13,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,3,0,"pool"),l(n,7,0,null===u.pools),l(n,9,0,null!==u.pools&&0===u.pools.length),l(n,11,0,null!==u.pools&&u.pools.length>0),l(n,13,0,u.pools)},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function Xn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function lu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function nu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,"input",[["class","form-control"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"],["placeholder","Data pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null)],function(l,n){l(n,3,0,"dataPool")},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function uu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function eu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- No data pools available --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function tu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- Select a data pool -- "]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function au(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)},function(l,n){l(n,3,0,n.context.$implicit.pool_name)})}function ou(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,13,"select",[["class","form-control"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0,a=l.component;return"change"===n&&(t=!1!==e["\u0275nov"](l,1).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),"change"===n&&(t=!1!==a.onDataPoolChange(u.target.value)&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,uu)),e["\u0275did"](7,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,eu)),e["\u0275did"](9,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,tu)),e["\u0275did"](11,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,au)),e["\u0275did"](13,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,3,0,"dataPool"),l(n,7,0,null===u.dataPools),l(n,9,0,null!==u.dataPools&&0===u.dataPools.length),l(n,11,0,null!==u.dataPools&&u.dataPools.length>0),l(n,13,0,u.dataPools)},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function iu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function ru(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](1,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](2,{"has-error":0}),(l()(),e["\u0275eld"](3,0,null,null,6,"label",[["class","control-label col-sm-3"],["for","dataPool"]],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Data pool"])),(l()(),e["\u0275and"](16777216,null,null,1,null,lu)),e["\u0275did"](7,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](8,0,null,null,1,"cd-helper",[["html","Dedicated pool that stores the object-data of the RBD."]],null,null,null,Vn.b,Vn.a)),e["\u0275did"](9,49152,null,0,Nn.a,[],{html:[0,"html"]},null),(l()(),e["\u0275eld"](10,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,nu)),e["\u0275did"](12,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ou)),e["\u0275did"](14,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,iu)),e["\u0275did"](16,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,t=l(n,2,0,u.rbdForm.showError("dataPool",e["\u0275nov"](n.parent,5)));l(n,1,0,"form-group",t),l(n,7,0,"editing"!==u.mode),l(n,9,0,"Dedicated pool that stores the object-data of the RBD."),l(n,12,0,"editing"===u.mode||!u.poolPermission.read),l(n,14,0,"editing"!==u.mode&&u.poolPermission.read),l(n,16,0,u.rbdForm.showError("dataPool",e["\u0275nov"](n.parent,5),"required"))},null)}function du(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function su(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["You have to increase the size."]))],null,null)}function cu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-helper",[],null,null,null,Vn.b,Vn.a)),e["\u0275did"](1,49152,null,0,Nn.a,[],{html:[0,"html"]},null)],function(l,n){l(n,1,0,e["\u0275inlineInterpolate"](1,"",n.parent.context.$implicit.helperHtml,""))},null)}function pu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,10,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,5,"input",[["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,2).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,2).onTouched()&&t),t},null,null)),e["\u0275did"](2,16384,null,0,Z.c,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.c]),e["\u0275did"](4,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](6,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](7,0,null,null,1,"label",[],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["\u0275ted"](8,null,["",""])),(l()(),e["\u0275and"](16777216,null,null,1,null,cu)),e["\u0275did"](10,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,4,0,e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,10,0,n.context.$implicit.helperHtml)},function(l,n){l(n,1,0,e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,""),e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,""),e["\u0275nov"](n,6).ngClassUntouched,e["\u0275nov"](n,6).ngClassTouched,e["\u0275nov"](n,6).ngClassPristine,e["\u0275nov"](n,6).ngClassDirty,e["\u0275nov"](n,6).ngClassValid,e["\u0275nov"](n,6).ngClassInvalid,e["\u0275nov"](n,6).ngClassPending),l(n,7,0,e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,8,0,n.context.$implicit.desc)})}function fu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"a",[["class","pull-right margin-right-md"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=0!=(l.component.advancedEnabled=!0)&&e),e},null,null)),(l()(),e["\u0275ted"](-1,null,["Advanced..."]))],null,null)}function gu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function mu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function vu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function hu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required because stripe count is defined!"]))],null,null)}function bu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe unit is greater than object size."]))],null,null)}function Cu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Ru(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required because stripe unit is defined!"]))],null,null)}function Iu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe count must be greater than 0."]))],null,null)}function wu(l){return e["\u0275vid"](0,[e["\u0275pid"](0,x.TitleCasePipe,[]),e["\u0275pid"](0,H.a,[]),(l()(),e["\u0275eld"](2,0,null,null,171,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,170,"form",[["class","form-horizontal"],["name","rbdForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["\u0275nov"](l,5).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["\u0275nov"](l,5).onReset()&&t),t},null,null)),e["\u0275did"](4,16384,null,0,Z.D,[],null,null),e["\u0275did"](5,540672,[["formDir",4]],0,Z.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.l]),e["\u0275did"](7,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](8,0,null,null,165,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),e["\u0275eld"](9,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),e["\u0275ted"](11,null,["","",""])),e["\u0275ppd"](12,1),e["\u0275ppd"](13,1),(l()(),e["\u0275eld"](14,0,null,null,150,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Bn)),e["\u0275did"](16,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](17,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](18,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](19,{"has-error":0}),(l()(),e["\u0275eld"](20,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),e["\u0275eld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Name"])),(l()(),e["\u0275eld"](23,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](24,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](25,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,26)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,26).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,26)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,26)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](26,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](28,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](30,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](31,4210688,null,0,Dn.a,[e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ln)),e["\u0275did"](33,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Gn)),e["\u0275did"](35,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](36,0,null,null,13,"div",[["class","form-group"]],null,[[null,"change"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onPoolChange(u.target.value)&&e),e},null,null)),e["\u0275did"](37,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](38,{"has-error":0}),(l()(),e["\u0275eld"](39,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","pool"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" Pool "])),(l()(),e["\u0275and"](16777216,null,null,1,null,Kn)),e["\u0275did"](42,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](43,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Hn)),e["\u0275did"](45,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Yn)),e["\u0275did"](47,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Xn)),e["\u0275did"](49,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](50,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](51,0,null,null,9,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](52,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),e["\u0275eld"](53,0,null,null,5,"input",[["formControlName","useDataPool"],["id","useDataPool"],["name","useDataPool"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0,a=l.component;return"change"===n&&(t=!1!==e["\u0275nov"](l,54).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,54).onTouched()&&t),"change"===n&&(t=!1!==a.onUseDataPoolChange()&&t),t},null,null)),e["\u0275did"](54,16384,null,0,Z.c,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.c]),e["\u0275did"](56,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](58,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](59,0,null,null,1,"label",[["for","useDataPool"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Use a dedicated data pool"])),(l()(),e["\u0275and"](16777216,null,null,1,null,ru)),e["\u0275did"](62,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](63,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](64,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](65,{"has-error":0}),(l()(),e["\u0275eld"](66,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","size"]],null,null,null,null,null)),(l()(),e["\u0275eld"](67,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Size"])),(l()(),e["\u0275eld"](69,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](70,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](71,0,null,null,6,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","GiB"],["formControlName","size"],["id","size"],["name","size"],["placeholder","e.g., 10GiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,72)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,72).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,72)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,72)._compositionEnd(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,77).onBlur(u.target.value)&&t),t},null,null)),e["\u0275did"](72,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](74,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](76,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](77,81920,null,0,Sn.a,[e.ElementRef,Z.q,F.a,S.a],{defaultUnit:[0,"defaultUnit"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,du)),e["\u0275did"](79,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,su)),e["\u0275did"](81,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](82,0,null,null,10,"div",[["class","form-group"],["formGroupName","features"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](83,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](84,{"has-error":0}),e["\u0275did"](85,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](87,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](88,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","features"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Features"])),(l()(),e["\u0275eld"](90,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,pu)),e["\u0275did"](92,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](93,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](94,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,fu)),e["\u0275did"](96,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](97,0,null,null,67,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),e["\u0275eld"](98,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Advanced"])),(l()(),e["\u0275eld"](100,0,null,null,61,"div",[["class","section"]],null,null,null,null,null)),(l()(),e["\u0275eld"](101,0,null,null,1,"h3",[["class","page-header"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Striping"])),(l()(),e["\u0275eld"](103,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](104,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](105,{"has-error":0}),(l()(),e["\u0275eld"](106,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","size"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Object size"])),(l()(),e["\u0275eld"](108,0,null,null,8,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](109,0,null,null,7,"select",[["class","form-control"],["formControlName","obj_size"],["id","obj_size"],["name","obj_size"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,110).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,110).onTouched()&&t),t},null,null)),e["\u0275did"](110,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](112,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](114,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,gu)),e["\u0275did"](116,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](117,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](118,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](119,{"has-error":0}),(l()(),e["\u0275eld"](120,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","stripingUnit"]],null,null,null,null,null)),(l()(),e["\u0275eld"](121,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe unit"])),(l()(),e["\u0275and"](16777216,null,null,1,null,mu)),e["\u0275did"](124,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](125,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](126,0,null,null,11,"select",[["class","form-control"],["formControlName","stripingUnit"],["id","stripingUnit"],["name","stripingUnit"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,127).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,127).onTouched()&&t),t},null,null)),e["\u0275did"](127,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](129,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](131,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](132,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](133,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](134,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- Select stripe unit --"])),(l()(),e["\u0275and"](16777216,null,null,1,null,vu)),e["\u0275did"](137,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,hu)),e["\u0275did"](139,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,bu)),e["\u0275did"](141,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](142,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](143,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](144,{"has-error":0}),(l()(),e["\u0275eld"](145,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","stripingCount"]],null,null,null,null,null)),(l()(),e["\u0275eld"](146,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe count"])),(l()(),e["\u0275and"](16777216,null,null,1,null,Cu)),e["\u0275did"](149,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](150,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](151,0,null,null,6,"input",[["class","form-control"],["formControlName","stripingCount"],["id","stripingCount"],["name","stripingCount"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,152)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,152).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,152)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,152)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["\u0275nov"](l,153).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["\u0275nov"](l,153).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,153).onTouched()&&t),t},null,null)),e["\u0275did"](152,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275did"](153,16384,null,0,Z.C,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l,n){return[l,n]},[Z.e,Z.C]),e["\u0275did"](155,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](157,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ru)),e["\u0275did"](159,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Iu)),e["\u0275did"](161,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](162,0,null,null,2,"div",[["class","section"]],null,null,null,null,null)),(l()(),e["\u0275eld"](163,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],function(l,n,u){var e=!0;return"changes"===n&&(e=!1!==(l.component.getDirtyConfigurationValues=u)&&e),e},Fn.b,Fn.a)),e["\u0275did"](164,114688,null,0,Pn.a,[S.a,qn.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),e["\u0275eld"](165,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),e["\u0275eld"](166,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["\u0275eld"](167,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e},jn.b,jn.a)),e["\u0275did"](168,114688,null,0,On.a,[e.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),e["\u0275ted"](169,0,["","",""])),e["\u0275ppd"](170,1),e["\u0275ppd"](171,1),(l()(),e["\u0275eld"](172,0,null,null,1,"cd-back-button",[],null,null,null,An.b,An.a)),e["\u0275did"](173,49152,null,0,Un.a,[x.Location,Gl.b],null,null)],function(l,n){var u=n.component;l(n,5,0,u.rbdForm),l(n,16,0,u.rbdForm.getValue("parent"));var t=l(n,19,0,u.rbdForm.showError("name",e["\u0275nov"](n,5)));l(n,18,0,"form-group",t),l(n,28,0,"name"),l(n,33,0,u.rbdForm.showError("name",e["\u0275nov"](n,5),"required")),l(n,35,0,u.rbdForm.showError("name",e["\u0275nov"](n,5),"pattern"));var a=l(n,38,0,u.rbdForm.showError("pool",e["\u0275nov"](n,5)));l(n,37,0,"form-group",a),l(n,42,0,"editing"!==u.mode),l(n,45,0,"editing"===u.mode||!u.poolPermission.read),l(n,47,0,"editing"!==u.mode&&u.poolPermission.read),l(n,49,0,u.rbdForm.showError("pool",e["\u0275nov"](n,5),"required")),l(n,56,0,"useDataPool"),l(n,62,0,u.rbdForm.getValue("useDataPool"));var o=l(n,65,0,u.rbdForm.showError("size",e["\u0275nov"](n,5)));l(n,64,0,"form-group",o),l(n,74,0,"size"),l(n,77,0,"GiB"),l(n,79,0,u.rbdForm.showError("size",e["\u0275nov"](n,5),"required")),l(n,81,0,u.rbdForm.showError("size",e["\u0275nov"](n,5),"invalidSizeObject"));var i=l(n,84,0,(e["\u0275nov"](n,5).submitted||u.rbdForm.get("features").dirty)&&u.rbdForm.get("features").invalid);l(n,83,0,"form-group",i),l(n,85,0,"features"),l(n,92,0,u.featuresList),l(n,96,0,!u.advancedEnabled);var r=l(n,105,0,u.rbdForm.showError("obj_size",e["\u0275nov"](n,5)));l(n,104,0,"form-group",r),l(n,112,0,"obj_size"),l(n,116,0,u.objectSizes);var d=l(n,119,0,u.rbdForm.showError("stripingUnit",e["\u0275nov"](n,5)));l(n,118,0,"form-group",d),l(n,124,0,u.rbdForm.getValue("stripingCount")),l(n,129,0,"stripingUnit"),l(n,133,0,null),l(n,134,0,null),l(n,137,0,u.objectSizes),l(n,139,0,u.rbdForm.showError("stripingUnit",e["\u0275nov"](n,5),"required")),l(n,141,0,u.rbdForm.showError("stripingUnit",e["\u0275nov"](n,5),"invalidStripingUnit"));var s=l(n,144,0,u.rbdForm.showError("stripingCount",e["\u0275nov"](n,5)));l(n,143,0,"form-group",s),l(n,149,0,u.rbdForm.getValue("stripingUnit")),l(n,155,0,"stripingCount"),l(n,159,0,u.rbdForm.showError("stripingCount",e["\u0275nov"](n,5),"required")),l(n,161,0,u.rbdForm.showError("stripingCount",e["\u0275nov"](n,5),"min")),l(n,164,0,u.rbdForm,u.initializeConfigData),l(n,168,0,e["\u0275nov"](n,5),"button")},function(l,n){var u=n.component;l(n,3,0,e["\u0275nov"](n,7).ngClassUntouched,e["\u0275nov"](n,7).ngClassTouched,e["\u0275nov"](n,7).ngClassPristine,e["\u0275nov"](n,7).ngClassDirty,e["\u0275nov"](n,7).ngClassValid,e["\u0275nov"](n,7).ngClassInvalid,e["\u0275nov"](n,7).ngClassPending);var t=e["\u0275unv"](n,11,0,l(n,12,0,e["\u0275nov"](n,0),u.action)),a=e["\u0275unv"](n,11,1,l(n,13,0,e["\u0275nov"](n,1),u.resource));l(n,11,0,t,a),l(n,25,0,e["\u0275nov"](n,30).ngClassUntouched,e["\u0275nov"](n,30).ngClassTouched,e["\u0275nov"](n,30).ngClassPristine,e["\u0275nov"](n,30).ngClassDirty,e["\u0275nov"](n,30).ngClassValid,e["\u0275nov"](n,30).ngClassInvalid,e["\u0275nov"](n,30).ngClassPending),l(n,53,0,e["\u0275nov"](n,58).ngClassUntouched,e["\u0275nov"](n,58).ngClassTouched,e["\u0275nov"](n,58).ngClassPristine,e["\u0275nov"](n,58).ngClassDirty,e["\u0275nov"](n,58).ngClassValid,e["\u0275nov"](n,58).ngClassInvalid,e["\u0275nov"](n,58).ngClassPending),l(n,71,0,e["\u0275nov"](n,76).ngClassUntouched,e["\u0275nov"](n,76).ngClassTouched,e["\u0275nov"](n,76).ngClassPristine,e["\u0275nov"](n,76).ngClassDirty,e["\u0275nov"](n,76).ngClassValid,e["\u0275nov"](n,76).ngClassInvalid,e["\u0275nov"](n,76).ngClassPending),l(n,82,0,e["\u0275nov"](n,87).ngClassUntouched,e["\u0275nov"](n,87).ngClassTouched,e["\u0275nov"](n,87).ngClassPristine,e["\u0275nov"](n,87).ngClassDirty,e["\u0275nov"](n,87).ngClassValid,e["\u0275nov"](n,87).ngClassInvalid,e["\u0275nov"](n,87).ngClassPending),l(n,97,0,!u.advancedEnabled),l(n,109,0,e["\u0275nov"](n,114).ngClassUntouched,e["\u0275nov"](n,114).ngClassTouched,e["\u0275nov"](n,114).ngClassPristine,e["\u0275nov"](n,114).ngClassDirty,e["\u0275nov"](n,114).ngClassValid,e["\u0275nov"](n,114).ngClassInvalid,e["\u0275nov"](n,114).ngClassPending),l(n,126,0,e["\u0275nov"](n,131).ngClassUntouched,e["\u0275nov"](n,131).ngClassTouched,e["\u0275nov"](n,131).ngClassPristine,e["\u0275nov"](n,131).ngClassDirty,e["\u0275nov"](n,131).ngClassValid,e["\u0275nov"](n,131).ngClassInvalid,e["\u0275nov"](n,131).ngClassPending),l(n,151,0,e["\u0275nov"](n,157).ngClassUntouched,e["\u0275nov"](n,157).ngClassTouched,e["\u0275nov"](n,157).ngClassPristine,e["\u0275nov"](n,157).ngClassDirty,e["\u0275nov"](n,157).ngClassValid,e["\u0275nov"](n,157).ngClassInvalid,e["\u0275nov"](n,157).ngClassPending);var o=e["\u0275unv"](n,169,0,l(n,170,0,e["\u0275nov"](n,0),u.action)),i=e["\u0275unv"](n,169,1,l(n,171,0,e["\u0275nov"](n,1),u.resource));l(n,169,0,o,i)})}function Tu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-rbd-form",[],null,null,null,wu,zn)),e["\u0275did"](1,114688,null,0,$n.a,[il.a,dl.a,Mn.a,zl.a,S.a,Wl.a,F.a,V.a,Gl.b,dl.l],null,null)],function(l,n){l(n,1,0)},null)}var yu=e["\u0275ccf"]("cd-rbd-form",$n.a,Tu,{},{},[]),ku=u("JxMD"),_u=u("dgut"),xu=function(){function l(l){this.router=l}return l.prototype.ngOnInit=function(){this.url=this.router.url},l.prototype.navigateTo=function(l){this.router.navigate([l])},l}(),Eu=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Vu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Nl.b,Nl.a)),e["\u0275did"](1,180224,null,0,fl.d,[fl.e,e.Renderer2,e.ElementRef],null,null),(l()(),e["\u0275eld"](2,0,null,0,1,"tab",[["heading","Overview"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/overview")&&e),e},null,null)),e["\u0275did"](3,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["\u0275eld"](4,0,null,0,1,"tab",[["heading","Targets"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/targets")&&e),e},null,null)),e["\u0275did"](5,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],function(l,n){var u=n.component;l(n,3,0,"Overview","/block/iscsi/overview"===u.url),l(n,5,0,"Targets","/block/iscsi/targets"===u.url)},function(l,n){l(n,0,0,e["\u0275nov"](n,1).clazz),l(n,2,0,e["\u0275nov"](n,3).id,e["\u0275nov"](n,3).active,e["\u0275nov"](n,3).addClass),l(n,4,0,e["\u0275nov"](n,5).id,e["\u0275nov"](n,5).active,e["\u0275nov"](n,5).addClass)})}var Nu=u("roDX"),Du=u("my5R"),Su=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Fu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"span",[["class","label"]],null,null,null,null,null)),e["\u0275did"](1,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](2,{"label-success":0,"label-danger":1}),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){var u=l(n,2,0,"up"==n.context.value,"down"==n.context.value);l(n,1,0,"label",u)},function(l,n){l(n,3,0,n.context.value)})}function Pu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,"cd-sparkline",[],null,null,null,ku.b,ku.a)),e["\u0275did"](2,638976,null,0,_u.a,[F.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],function(l,n){l(n,2,0,n.parent.context.value,n.parent.context.row.cdIsBinary)},null)}function qu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" n/a "]))],null,null)}function ju(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,Pu)),e["\u0275did"](1,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,qu)),e["\u0275did"](3,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)},null)}function Ou(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,[" "," /s "]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function Au(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" n/a "]))],null,null)}function Uu(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,Ou)),e["\u0275did"](1,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Au)),e["\u0275did"](3,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)},null)}function $u(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,[" "," "])),e["\u0275ppd"](2,1)],null,function(l,n){var u=e["\u0275unv"](n,1,0,l(n,2,0,e["\u0275nov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,u)})}function Mu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" n/a "]))],null,null)}function zu(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,$u)),e["\u0275did"](1,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Mu)),e["\u0275did"](3,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)},null)}function Bu(l){return e["\u0275vid"](0,[e["\u0275pid"](0,j.a,[]),e["\u0275qud"](402653184,1,{statusColorTpl:0}),e["\u0275qud"](402653184,2,{iscsiSparklineTpl:0}),e["\u0275qud"](402653184,3,{iscsiPerSecondTpl:0}),e["\u0275qud"](402653184,4,{iscsiRelativeDateTpl:0}),(l()(),e["\u0275eld"](5,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Vu,Eu)),e["\u0275did"](6,114688,null,0,xu,[dl.l],null,null),(l()(),e["\u0275eld"](7,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Gateways"])),(l()(),e["\u0275eld"](9,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],function(l,n,u){var e=!0;return"fetchData"===n&&(e=!1!==l.component.refresh()&&e),e},Fl.b,Fl.a)),e["\u0275did"](10,2867200,null,0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"}),(l()(),e["\u0275eld"](11,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](13,0,null,null,1,"cd-table",[],null,null,null,Fl.b,Fl.a)),e["\u0275did"](14,2867200,null,0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(l()(),e["\u0275and"](0,[[1,2],["statusColorTpl",2]],null,0,null,Fu)),(l()(),e["\u0275and"](0,[[2,2],["iscsiSparklineTpl",2]],null,0,null,ju)),(l()(),e["\u0275and"](0,[[3,2],["iscsiPerSecondTpl",2]],null,0,null,Uu)),(l()(),e["\u0275and"](0,[[4,2],["iscsiRelativeDateTpl",2]],null,0,null,zu))],function(l,n){var u=n.component;l(n,6,0),l(n,10,0,u.gateways,u.gatewaysColumns),l(n,14,0,u.images,u.imagesColumns)},null)}function Lu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-iscsi",[],null,null,null,Bu,Su)),e["\u0275did"](1,114688,null,0,Nu.a,[Du.a,q.a,O.a,V.a],null,null)],function(l,n){l(n,1,0)},null)}var Gu=e["\u0275ccf"]("cd-iscsi",Nu.a,Lu,{},{},[]),Ku=u("TZo1"),Hu=u("9Kw/"),Ju=u("3ris"),Zu=u("e/kN"),Wu=e["\u0275crt"]({encapsulation:0,styles:[["tabset.tabset>ul{border-bottom:0;float:left;display:block;margin-right:20px;border-right:1px solid #ddd;padding-right:15px}"]],data:{}});function Qu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Available information:"])),(l()(),e["\u0275eld"](4,0,null,null,1,"pre",[],null,null,null,null,null)),(l()(),e["\u0275ted"](5,null,["",""]))],null,function(l,n){l(n,5,0,n.component.status)})}function Yu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,8,"cd-info-panel",[["title","iSCSI Targets not available"]],null,null,null,Ku.b,Ku.a)),e["\u0275did"](1,49152,null,0,Hu.a,[V.a],{title:[0,"title"]},null),(l()(),e["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Please consult the "])),(l()(),e["\u0275eld"](4,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["documentation"])),(l()(),e["\u0275ted"](-1,null,[" on how to configure and enable the iSCSI Targets management functionality."])),(l()(),e["\u0275and"](16777216,null,0,1,null,Qu)),e["\u0275did"](8,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,1,0,"iSCSI Targets not available"),l(n,8,0,u.status)},function(l,n){l(n,4,0,e["\u0275inlineInterpolate"](1,"",n.component.docsUrl,""))})}function Xu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-details",[["cdTableDetail",""]],null,null,null,T.c,T.b)),e["\u0275did"](1,638976,null,0,Ju.a,[V.a,O.a,E.a],{selection:[0,"selection"],settings:[1,"settings"],cephIscsiConfigVersion:[2,"cephIscsiConfigVersion"]},null)],function(l,n){var u=n.component;l(n,1,0,u.selection,u.settings,u.cephIscsiConfigVersion)},null)}function le(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,10,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","target_iqn"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e},Fl.b,Fl.a)),e["\u0275did"](1,2867200,[[1,4],["table",4]],0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["\u0275eld"](2,0,null,0,6,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,ql.b,ql.a)),e["\u0275did"](4,114688,null,0,jl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["\u0275eld"](5,0,null,null,3,"button",[["class","btn btn-sm btn-default btn-label"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.configureDiscoveryAuth()&&e),e},null,null)),(l()(),e["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-fw fa-key-modern"]],null,null,null,null,null)),(l()(),e["\u0275eld"](7,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Discovery authentication"])),(l()(),e["\u0275and"](16777216,null,2,1,null,Xu)),e["\u0275did"](10,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,1,0,u.targets,u.columns,"flex","target_iqn","true","single"),l(n,4,0,u.permissions.iscsi,u.selection,u.tableActions),l(n,10,0,u.selection.hasSingleSelection)},null)}function ne(l){return e["\u0275vid"](0,[e["\u0275qud"](671088640,1,{table:0}),(l()(),e["\u0275eld"](1,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Vu,Eu)),e["\u0275did"](2,114688,null,0,xu,[dl.l],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Yu)),e["\u0275did"](4,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,le)),e["\u0275did"](6,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,2,0),l(n,4,0,!1===u.available),l(n,6,0,!0===u.available)},null)}function ue(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"cd-iscsi-target-list",[],null,null,null,ne,Wu)),e["\u0275prd"](131584,null,Al.a,Al.a,[Ul.a,El.a]),e["\u0275did"](2,245760,null,0,Zu.a,[il.a,V.a,Du.a,Al.a,D.a,K.a,El.a,nl.b,Wl.a,Gl.b],null,null)],function(l,n){l(n,2,0)},null)}var ee=e["\u0275ccf"]("cd-iscsi-target-list",Zu.a,ue,{},{},[]),te=u("D4zM"),ae=u("OcYo"),oe=u("SZbH"),ie=u("WiuZ"),re=u("wnGv"),de=function(){function l(l){this.ngControl=l}return l.prototype.onInput=function(l){this.setValue(l)},l.prototype.setValue=function(l){l=Ml.isString(l)?l.trim():l,this.ngControl.control.setValue(l)},l}(),se=u("gr3l"),ce=e["\u0275crt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function pe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function fe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["IQN has wrong pattern."]))],null,null)}function ge(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,8,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["An IQN has the following notation 'iqn.$year-$month.$reversedAddress:$definedName'"])),(l()(),e["\u0275eld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309"])),(l()(),e["\u0275eld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](7,0,null,null,1,"a",[["href","https://en.wikipedia.org/wiki/ISCSI#Addressing"],["target","_blank"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["More information"]))],null,null)}function me(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This target has modified advanced settings."]))],null,null)}function ve(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,4,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,0,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removePortal(l.context.index,l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](5,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function he(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["At least "," gateways are required."]))],null,function(l,n){l(n,1,0,n.component.minimum_gateways)})}function be(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"div",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["lun: ",""]))],null,function(l,n){l(n,1,0,n.component.imagesSettings[n.parent.context.$implicit].lun)})}function Ce(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["Backstore: ",".\xa0"])),e["\u0275ppd"](2,1)],null,function(l,n){var u=n.component,t=e["\u0275unv"](n,1,0,l(n,2,0,e["\u0275nov"](n.parent.parent.parent,2),u.imagesSettings[n.parent.context.$implicit].backstore));l(n,1,0,t)})}function Re(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This image has modified settings."]))],null,null)}function Ie(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,14,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,8,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,0,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,be)),e["\u0275did"](4,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](5,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](6,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.imageSettingsModal(l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](7,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-cogs fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](8,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeImage(l.context.index,l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](9,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,4,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Ce)),e["\u0275did"](12,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Re)),e["\u0275did"](14,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,4,0,u.api_version>=1),l(n,12,0,u.backstores.length>1),l(n,14,0,u.hasAdvancedSettings(u.imagesSettings[n.context.$implicit][u.imagesSettings[n.context.$implicit].backstore]))},function(l,n){l(n,2,0,n.context.$implicit)})}function we(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Duplicated LUN numbers."]))],null,null)}function Te(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Duplicated WWN."]))],null,null)}function ye(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function ke(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function _e(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function xe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function Ee(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ve(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function Ne(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function De(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function Se(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,83,"div",[["formGroupName","auth"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](3,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](4,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](5,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](6,{"has-error":0}),(l()(),e["\u0275eld"](7,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_user"]],null,null,null,null,null)),(l()(),e["\u0275eld"](8,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["User"])),(l()(),e["\u0275eld"](10,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](11,0,null,null,5,"input",[["class","form-control"],["formControlName","user"],["id","target_user"],["name","target_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,12)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](12,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](14,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](16,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,ye)),e["\u0275did"](18,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ke)),e["\u0275did"](20,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](21,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](22,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](23,{"has-error":0}),(l()(),e["\u0275eld"](24,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_password"]],null,null,null,null,null)),(l()(),e["\u0275eld"](25,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Password"])),(l()(),e["\u0275eld"](27,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](28,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](29,0,null,null,5,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","target_password"],["name","target_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,30)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,30).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,30)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,30)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](30,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](32,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](34,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](35,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](36,0,null,null,1,"button",[["cdPasswordButton","target_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,37).onClick()&&t),t},null,null)),e["\u0275did"](37,81920,null,0,te.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](38,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,39).onClick()&&t),t},null,null)),e["\u0275did"](39,81920,null,0,ae.a,[e.ElementRef,e.Renderer2,oe.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,_e)),e["\u0275did"](41,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,xe)),e["\u0275did"](43,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](44,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](45,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](46,{"has-error":0}),(l()(),e["\u0275eld"](47,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_mutual_user"]],null,null,null,null,null)),(l()(),e["\u0275eld"](48,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual User"])),(l()(),e["\u0275eld"](50,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](51,0,null,null,5,"input",[["class","form-control"],["formControlName","mutual_user"],["id","target_mutual_user"],["name","target_mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,52)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,52).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,52)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,52)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](52,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](54,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](56,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ee)),e["\u0275did"](58,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ve)),e["\u0275did"](60,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](61,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](62,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](63,{"has-error":0}),(l()(),e["\u0275eld"](64,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_mutual_password"]],null,null,null,null,null)),(l()(),e["\u0275eld"](65,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual Password"])),(l()(),e["\u0275eld"](67,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](68,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](69,0,null,null,5,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","mutual_password"],["id","target_mutual_password"],["name","target_mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,70)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,70).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,70)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,70)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](70,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](72,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](74,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](75,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](76,0,null,null,1,"button",[["cdPasswordButton","target_mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,77).onClick()&&t),t},null,null)),e["\u0275did"](77,81920,null,0,te.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](78,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,79).onClick()&&t),t},null,null)),e["\u0275did"](79,81920,null,0,ae.a,[e.ElementRef,e.Renderer2,oe.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ne)),e["\u0275did"](81,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,De)),e["\u0275did"](83,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,1,0,"auth");var t=l(n,6,0,u.targetForm.showError("user",e["\u0275nov"](n.parent,2)));l(n,5,0,"form-group",t),l(n,14,0,"user"),l(n,18,0,u.targetForm.showError("user",e["\u0275nov"](n.parent,2),"required")),l(n,20,0,u.targetForm.showError("user",e["\u0275nov"](n.parent,2),"pattern"));var a=l(n,23,0,u.targetForm.showError("password",e["\u0275nov"](n.parent,2)));l(n,22,0,"form-group",a),l(n,32,0,"password"),l(n,37,0,"target_password"),l(n,39,0,"target_password"),l(n,41,0,u.targetForm.showError("password",e["\u0275nov"](n.parent,2),"required")),l(n,43,0,u.targetForm.showError("password",e["\u0275nov"](n.parent,2),"pattern"));var o=l(n,46,0,u.targetForm.showError("mutual_user",e["\u0275nov"](n.parent,2)));l(n,45,0,"form-group",o),l(n,54,0,"mutual_user"),l(n,58,0,u.targetForm.showError("mutual_user",e["\u0275nov"](n.parent,2),"required")),l(n,60,0,u.targetForm.showError("mutual_user",e["\u0275nov"](n.parent,2),"pattern"));var i=l(n,63,0,u.targetForm.showError("mutual_password",e["\u0275nov"](n.parent,2)));l(n,62,0,"form-group",i),l(n,72,0,"mutual_password"),l(n,77,0,"target_mutual_password"),l(n,79,0,"target_mutual_password"),l(n,81,0,u.targetForm.showError("mutual_password",e["\u0275nov"](n.parent,2),"required")),l(n,83,0,u.targetForm.showError("mutual_password",e["\u0275nov"](n.parent,2),"pattern"))},function(l,n){l(n,0,0,e["\u0275nov"](n,3).ngClassUntouched,e["\u0275nov"](n,3).ngClassTouched,e["\u0275nov"](n,3).ngClassPristine,e["\u0275nov"](n,3).ngClassDirty,e["\u0275nov"](n,3).ngClassValid,e["\u0275nov"](n,3).ngClassInvalid,e["\u0275nov"](n,3).ngClassPending),l(n,11,0,e["\u0275nov"](n,16).ngClassUntouched,e["\u0275nov"](n,16).ngClassTouched,e["\u0275nov"](n,16).ngClassPristine,e["\u0275nov"](n,16).ngClassDirty,e["\u0275nov"](n,16).ngClassValid,e["\u0275nov"](n,16).ngClassInvalid,e["\u0275nov"](n,16).ngClassPending),l(n,29,0,e["\u0275nov"](n,34).ngClassUntouched,e["\u0275nov"](n,34).ngClassTouched,e["\u0275nov"](n,34).ngClassPristine,e["\u0275nov"](n,34).ngClassDirty,e["\u0275nov"](n,34).ngClassValid,e["\u0275nov"](n,34).ngClassInvalid,e["\u0275nov"](n,34).ngClassPending),l(n,51,0,e["\u0275nov"](n,56).ngClassUntouched,e["\u0275nov"](n,56).ngClassTouched,e["\u0275nov"](n,56).ngClassPristine,e["\u0275nov"](n,56).ngClassDirty,e["\u0275nov"](n,56).ngClassValid,e["\u0275nov"](n,56).ngClassInvalid,e["\u0275nov"](n,56).ngClassPending),l(n,69,0,e["\u0275nov"](n,74).ngClassUntouched,e["\u0275nov"](n,74).ngClassTouched,e["\u0275nov"](n,74).ngClassPristine,e["\u0275nov"](n,74).ngClassDirty,e["\u0275nov"](n,74).ngClassValid,e["\u0275nov"](n,74).ngClassInvalid,e["\u0275nov"](n,74).ngClassPending)})}function Fe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiator IQN needs to be unique."]))],null,null)}function Pe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function qe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["IQN has wrong pattern."]))],null,null)}function je(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Oe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function Ae(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ue(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function $e(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Me(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function ze(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Be(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function Le(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,4,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,0,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiatorImage(l.parent.context.$implicit,l.context.index,l.parent.context.index,l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](5,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function Ge(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiator belongs to a group. Images will be configure in the group."]))],null,null)}function Ke(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,null,null,ie.b,ie.a)),e["\u0275did"](3,638976,null,0,re.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["\u0275eld"](4,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add image"]))],function(l,n){var u=n.component,e=n.parent.context.$implicit.getValue("luns");l(n,3,0,"btn btn-default pull-right",e,u.imagesInitiatorSelections[n.parent.context.index],u.messages.initiatorImage)},null)}function He(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,124,"div",[["class","panel panel-default"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](3,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](4,0,null,null,5,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiator"])),(l()(),e["\u0275ted"](7,null,[": "," "])),(l()(),e["\u0275eld"](8,0,null,null,1,"button",[["class","close"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiator(l.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-remove fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,114,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275eld"](11,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](12,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](13,{"has-error":0}),(l()(),e["\u0275eld"](14,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","client_iqn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](15,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Client IQN"])),(l()(),e["\u0275eld"](17,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](18,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](19,0,null,null,6,"input",[["cdTrim",""],["class","form-control"],["formControlName","client_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0,a=l.component;return"input"===n&&(t=!1!==e["\u0275nov"](l,20)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,20).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,20)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,20)._compositionEnd(u.target.value)&&t),"input"===n&&(t=!1!==e["\u0275nov"](l,25).onInput(u.target.value)&&t),"blur"===n&&(t=!1!==a.updatedInitiatorSelector()&&t),t},null,null)),e["\u0275did"](20,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](22,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](24,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](25,16384,null,0,de,[Z.q],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Fe)),e["\u0275did"](27,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Pe)),e["\u0275did"](29,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,qe)),e["\u0275did"](31,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](32,0,null,null,80,null,null,null,null,null,null,null)),e["\u0275did"](33,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](35,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](36,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](37,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](38,{"has-error":0}),(l()(),e["\u0275eld"](39,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","user"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["User"])),(l()(),e["\u0275eld"](41,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](42,0,null,null,5,"input",[["class","form-control"],["formControlName","user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,43)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,43).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,43)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,43)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](43,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](45,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](47,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,je)),e["\u0275did"](49,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Oe)),e["\u0275did"](51,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](52,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](53,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](54,{"has-error":0}),(l()(),e["\u0275eld"](55,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","password"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Password"])),(l()(),e["\u0275eld"](57,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](58,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](59,0,null,null,5,"input",[["class","form-control"],["formControlName","password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,60)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,60).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,60)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,60)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](60,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](62,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](64,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](65,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](66,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,67).onClick()&&t),t},null,null)),e["\u0275did"](67,81920,null,0,te.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](68,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,69).onClick()&&t),t},null,null)),e["\u0275did"](69,81920,null,0,ae.a,[e.ElementRef,e.Renderer2,oe.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ae)),e["\u0275did"](71,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ue)),e["\u0275did"](73,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](74,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](75,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](76,{"has-error":0}),(l()(),e["\u0275eld"](77,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","mutual_user"]],null,null,null,null,null)),(l()(),e["\u0275eld"](78,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual User"])),(l()(),e["\u0275eld"](80,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](81,0,null,null,5,"input",[["class","form-control"],["formControlName","mutual_user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,82)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,82).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,82)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,82)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](82,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](84,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](86,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,$e)),e["\u0275did"](88,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Me)),e["\u0275did"](90,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](91,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](92,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](93,{"has-error":0}),(l()(),e["\u0275eld"](94,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","mutual_password"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual Password"])),(l()(),e["\u0275eld"](96,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](97,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](98,0,null,null,5,"input",[["class","form-control"],["formControlName","mutual_password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,99)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,99).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,99)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,99)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](99,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](101,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](103,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](104,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](105,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,106).onClick()&&t),t},null,null)),e["\u0275did"](106,81920,null,0,te.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](107,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,108).onClick()&&t),t},null,null)),e["\u0275did"](108,81920,null,0,ae.a,[e.ElementRef,e.Renderer2,oe.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ze)),e["\u0275did"](110,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Be)),e["\u0275did"](112,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](113,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](114,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](115,{"has-error":0}),(l()(),e["\u0275eld"](116,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","luns"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](118,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Le)),e["\u0275did"](120,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ge)),e["\u0275did"](122,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ke)),e["\u0275did"](124,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,1,0,n.context.index);var u=l(n,13,0,n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2)));l(n,12,0,"form-group",u),l(n,22,0,"client_iqn");var t=n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2),"notUnique");l(n,27,0,t);var a=n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2),"required");l(n,29,0,a);var o=n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,31,0,o),l(n,33,0,"auth");var i=l(n,38,0,n.context.$implicit.showError("user",e["\u0275nov"](n.parent.parent,2)));l(n,37,0,"form-group",i),l(n,45,0,"user");var r=n.context.$implicit.showError("user",e["\u0275nov"](n.parent.parent,2),"required");l(n,49,0,r);var d=n.context.$implicit.showError("user",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,51,0,d);var s=l(n,54,0,n.context.$implicit.showError("password",e["\u0275nov"](n.parent.parent,2)));l(n,53,0,"form-group",s),l(n,62,0,"password"),l(n,67,0,"password"+n.context.index),l(n,69,0,"password"+n.context.index);var c=n.context.$implicit.showError("password",e["\u0275nov"](n.parent.parent,2),"required");l(n,71,0,c);var p=n.context.$implicit.showError("password",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,73,0,p);var f=l(n,76,0,n.context.$implicit.showError("mutual_user",e["\u0275nov"](n.parent.parent,2)));l(n,75,0,"form-group",f),l(n,84,0,"mutual_user");var g=n.context.$implicit.showError("mutual_user",e["\u0275nov"](n.parent.parent,2),"required");l(n,88,0,g);var m=n.context.$implicit.showError("mutual_user",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,90,0,m);var v=l(n,93,0,n.context.$implicit.showError("mutual_password",e["\u0275nov"](n.parent.parent,2)));l(n,92,0,"form-group",v),l(n,101,0,"mutual_password"),l(n,106,0,"mutual_password"+n.context.index),l(n,108,0,"mutual_password"+n.context.index);var h=n.context.$implicit.showError("mutual_password",e["\u0275nov"](n.parent.parent,2),"required");l(n,110,0,h);var b=n.context.$implicit.showError("mutual_password",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,112,0,b);var C=l(n,115,0,n.context.$implicit.showError("luns",e["\u0275nov"](n.parent.parent,2)));l(n,114,0,"form-group",C);var R=n.context.$implicit.getValue("luns");l(n,120,0,R);var I=n.context.$implicit.getValue("cdIsInGroup");l(n,122,0,I);var w=!n.context.$implicit.getValue("cdIsInGroup");l(n,124,0,w)},function(l,n){l(n,0,0,e["\u0275nov"](n,3).ngClassUntouched,e["\u0275nov"](n,3).ngClassTouched,e["\u0275nov"](n,3).ngClassPristine,e["\u0275nov"](n,3).ngClassDirty,e["\u0275nov"](n,3).ngClassValid,e["\u0275nov"](n,3).ngClassInvalid,e["\u0275nov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("client_iqn");l(n,7,0,u),l(n,19,0,e["\u0275nov"](n,24).ngClassUntouched,e["\u0275nov"](n,24).ngClassTouched,e["\u0275nov"](n,24).ngClassPristine,e["\u0275nov"](n,24).ngClassDirty,e["\u0275nov"](n,24).ngClassValid,e["\u0275nov"](n,24).ngClassInvalid,e["\u0275nov"](n,24).ngClassPending),l(n,42,0,"user"+n.context.index,e["\u0275nov"](n,47).ngClassUntouched,e["\u0275nov"](n,47).ngClassTouched,e["\u0275nov"](n,47).ngClassPristine,e["\u0275nov"](n,47).ngClassDirty,e["\u0275nov"](n,47).ngClassValid,e["\u0275nov"](n,47).ngClassInvalid,e["\u0275nov"](n,47).ngClassPending),l(n,59,0,"password"+n.context.index,e["\u0275nov"](n,64).ngClassUntouched,e["\u0275nov"](n,64).ngClassTouched,e["\u0275nov"](n,64).ngClassPristine,e["\u0275nov"](n,64).ngClassDirty,e["\u0275nov"](n,64).ngClassValid,e["\u0275nov"](n,64).ngClassInvalid,e["\u0275nov"](n,64).ngClassPending),l(n,81,0,"mutual_user"+n.context.index,e["\u0275nov"](n,86).ngClassUntouched,e["\u0275nov"](n,86).ngClassTouched,e["\u0275nov"](n,86).ngClassPristine,e["\u0275nov"](n,86).ngClassDirty,e["\u0275nov"](n,86).ngClassValid,e["\u0275nov"](n,86).ngClassInvalid,e["\u0275nov"](n,86).ngClassPending),l(n,98,0,"mutual_password"+n.context.index,e["\u0275nov"](n,103).ngClassUntouched,e["\u0275nov"](n,103).ngClassTouched,e["\u0275nov"](n,103).ngClassPristine,e["\u0275nov"](n,103).ngClassDirty,e["\u0275nov"](n,103).ngClassValid,e["\u0275nov"](n,103).ngClassInvalid,e["\u0275nov"](n,103).ngClassPending)})}function Je(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["No items added."]))],null,null)}function Ze(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","initiators"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiators"])),(l()(),e["\u0275eld"](3,0,null,null,14,"div",[["class","col-sm-9"],["formArrayName","initiators"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](4,212992,null,0,Z.g,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.g]),e["\u0275did"](6,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,He)),e["\u0275did"](8,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](9,0,null,null,7,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,6,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Je)),e["\u0275did"](12,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](13,0,null,null,3,"button",[["class","btn btn-default pull-right"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(l.component.addInitiator(),e=!1),e},null,null)),(l()(),e["\u0275eld"](14,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](15,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add initiator"])),(l()(),e["\u0275eld"](17,0,null,null,0,"hr",[],null,null,null,null,null))],function(l,n){var u=n.component;l(n,4,0,"initiators"),l(n,8,0,u.initiators.controls),l(n,12,0,0===u.initiators.controls.length)},function(l,n){l(n,3,0,e["\u0275nov"](n,6).ngClassUntouched,e["\u0275nov"](n,6).ngClassTouched,e["\u0275nov"](n,6).ngClassPristine,e["\u0275nov"](n,6).ngClassDirty,e["\u0275nov"](n,6).ngClassValid,e["\u0275nov"](n,6).ngClassInvalid,e["\u0275nov"](n,6).ngClassPending)})}function We(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,4,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,0,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupInitiator(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](5,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function Qe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,4,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,0,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupDisk(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](5,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function Ye(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,56,"div",[["class","panel panel-default"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](3,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](4,0,null,null,5,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Group"])),(l()(),e["\u0275ted"](7,null,[": "," "])),(l()(),e["\u0275eld"](8,0,null,null,1,"button",[["class","close"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.groups.removeAt(l.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-remove fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,46,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275eld"](11,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](12,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","group_id"]],null,null,null,null,null)),(l()(),e["\u0275eld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Name"])),(l()(),e["\u0275eld"](15,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](16,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](17,0,null,null,5,"input",[["class","form-control"],["formControlName","group_id"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,18)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,18).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,18)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,18)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](18,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](20,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](22,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](23,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](24,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](25,{"has-error":0}),(l()(),e["\u0275eld"](26,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","members"]],null,null,null,null,null)),(l()(),e["\u0275eld"](27,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiators"])),(l()(),e["\u0275eld"](29,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,We)),e["\u0275did"](31,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](32,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](33,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](34,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onGroupMemberSelection(u)&&e),e},ie.b,ie.a)),e["\u0275did"](35,638976,null,0,re.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["\u0275eld"](36,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](37,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add initiator"])),(l()(),e["\u0275eld"](39,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](40,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](41,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](42,{"has-error":0}),(l()(),e["\u0275eld"](43,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","disks"]],null,null,null,null,null)),(l()(),e["\u0275eld"](44,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](46,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Qe)),e["\u0275did"](48,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](49,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](50,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](51,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,null,null,ie.b,ie.a)),e["\u0275did"](52,638976,null,0,re.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["\u0275eld"](53,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](54,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add image"])),(l()(),e["\u0275eld"](56,0,null,null,0,"hr",[],null,null,null,null,null))],function(l,n){var u=n.component;l(n,1,0,n.context.index),l(n,20,0,"group_id");var t=l(n,25,0,n.context.$implicit.showError("members",e["\u0275nov"](n.parent.parent,2)));l(n,24,0,"form-group",t);var a=n.context.$implicit.getValue("members");l(n,31,0,a);var o=n.context.$implicit.getValue("members");l(n,35,0,"btn btn-default pull-right",o,u.groupMembersSelections[n.context.index],u.messages.groupInitiator);var i=l(n,42,0,n.context.$implicit.showError("disks",e["\u0275nov"](n.parent.parent,2)));l(n,41,0,"form-group",i);var r=n.context.$implicit.getValue("disks");l(n,48,0,r);var d=n.context.$implicit.getValue("disks");l(n,52,0,"btn btn-default pull-right",d,u.groupDiskSelections[n.context.index],u.messages.initiatorImage)},function(l,n){l(n,0,0,e["\u0275nov"](n,3).ngClassUntouched,e["\u0275nov"](n,3).ngClassTouched,e["\u0275nov"](n,3).ngClassPristine,e["\u0275nov"](n,3).ngClassDirty,e["\u0275nov"](n,3).ngClassValid,e["\u0275nov"](n,3).ngClassInvalid,e["\u0275nov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("group_id");l(n,7,0,u),l(n,17,0,e["\u0275nov"](n,22).ngClassUntouched,e["\u0275nov"](n,22).ngClassTouched,e["\u0275nov"](n,22).ngClassPristine,e["\u0275nov"](n,22).ngClassDirty,e["\u0275nov"](n,22).ngClassValid,e["\u0275nov"](n,22).ngClassInvalid,e["\u0275nov"](n,22).ngClassPending)})}function Xe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["No items added."]))],null,null)}function lt(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](1,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](2,{"has-error":0}),(l()(),e["\u0275eld"](3,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","initiators"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Groups"])),(l()(),e["\u0275eld"](5,0,null,null,13,"div",[["class","col-sm-9"],["formArrayName","groups"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](6,212992,null,0,Z.g,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.g]),e["\u0275did"](8,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ye)),e["\u0275did"](10,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](11,0,null,null,7,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](12,0,null,null,6,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Xe)),e["\u0275did"](14,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](15,0,null,null,3,"button",[["class","btn btn-default pull-right"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(l.component.addGroup(),e=!1),e},null,null)),(l()(),e["\u0275eld"](16,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](17,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add group"]))],function(l,n){var u=n.component,t=l(n,2,0,u.targetForm.showError("groups",e["\u0275nov"](n.parent,2)));l(n,1,0,"form-group",t),l(n,6,0,"groups"),l(n,10,0,u.groups.controls),l(n,14,0,0===u.groups.controls.length)},function(l,n){l(n,5,0,e["\u0275nov"](n,8).ngClassUntouched,e["\u0275nov"](n,8).ngClassTouched,e["\u0275nov"](n,8).ngClassPristine,e["\u0275nov"](n,8).ngClassDirty,e["\u0275nov"](n,8).ngClassValid,e["\u0275nov"](n,8).ngClassInvalid,e["\u0275nov"](n,8).ngClassPending)})}function nt(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,112,"form",[["class","form-horizontal"],["name","targetForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["\u0275nov"](l,2).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["\u0275nov"](l,2).onReset()&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.D,[],null,null),e["\u0275did"](2,540672,[["formDir",4]],0,Z.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.l]),e["\u0275did"](4,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](5,0,null,null,107,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),e["\u0275eld"](6,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](7,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),e["\u0275ted"](8,null,["","",""])),e["\u0275ppd"](9,1),e["\u0275ppd"](10,1),(l()(),e["\u0275eld"](11,0,null,null,92,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275eld"](12,0,null,null,27,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](13,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](14,{"has-error":0}),(l()(),e["\u0275eld"](15,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","target_iqn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](16,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Target IQN"])),(l()(),e["\u0275eld"](18,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](19,0,null,null,20,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](20,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](21,0,null,null,6,"input",[["cdTrim",""],["class","form-control"],["formControlName","target_iqn"],["id","target_iqn"],["name","target_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,22)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,22).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,22)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,22)._compositionEnd(u.target.value)&&t),"input"===n&&(t=!1!==e["\u0275nov"](l,27).onInput(u.target.value)&&t),t},null,null)),e["\u0275did"](22,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](24,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](26,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](27,16384,null,0,de,[Z.q],null,null),(l()(),e["\u0275eld"](28,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](29,0,null,null,1,"button",[["class","btn btn-default"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.targetSettingsModal()&&e),e},null,null)),(l()(),e["\u0275eld"](30,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-cogs fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,pe)),e["\u0275did"](32,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,fe)),e["\u0275did"](34,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ge)),e["\u0275did"](36,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,me)),e["\u0275did"](38,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](39,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](40,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](41,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](42,{"has-error":0}),(l()(),e["\u0275eld"](43,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","portals"]],null,null,null,null,null)),(l()(),e["\u0275eld"](44,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Portals"])),(l()(),e["\u0275eld"](46,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](47,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,ve)),e["\u0275did"](49,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,he)),e["\u0275did"](51,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](52,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](53,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](54,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onPortalSelection(u)&&e),e},ie.b,ie.a)),e["\u0275did"](55,638976,null,0,re.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["\u0275eld"](56,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](57,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add portal"])),(l()(),e["\u0275eld"](59,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](60,0,null,null,25,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](61,278528,null,0,x.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](62,{"has-error":0}),(l()(),e["\u0275eld"](63,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","disks"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](65,0,null,null,20,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Ie)),e["\u0275did"](67,278528,null,0,x.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](68,0,null,null,5,"input",[["class","form-control"],["formControlName","disks"],["id","disks"],["name","disks"],["type","hidden"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,69)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,69).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,69)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,69)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](69,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](71,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](73,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,we)),e["\u0275did"](75,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Te)),e["\u0275did"](77,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](78,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](79,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](80,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onImageSelection(u)&&e),e},ie.b,ie.a)),e["\u0275did"](81,638976,null,0,re.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["\u0275eld"](82,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](83,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add image"])),(l()(),e["\u0275eld"](85,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](86,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](87,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](88,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),e["\u0275eld"](89,0,null,null,5,"input",[["formControlName","acl_enabled"],["id","acl_enabled"],["name","acl_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,90).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,90).onTouched()&&t),t},null,null)),e["\u0275did"](90,16384,null,0,Z.c,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.c]),e["\u0275did"](92,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](94,16384,null,0,Z.r,[[4,Z.q]],null,null),(l()(),e["\u0275eld"](95,0,null,null,1,"label",[["for","acl_enabled"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["ACL authentication"])),(l()(),e["\u0275eld"](97,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Se)),e["\u0275did"](99,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ze)),e["\u0275did"](101,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,lt)),e["\u0275did"](103,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](104,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),e["\u0275eld"](105,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["\u0275eld"](106,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e},jn.b,jn.a)),e["\u0275did"](107,114688,null,0,On.a,[e.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),e["\u0275ted"](108,0,["","",""])),e["\u0275ppd"](109,1),e["\u0275ppd"](110,1),(l()(),e["\u0275eld"](111,0,null,null,1,"cd-back-button",[],null,null,null,An.b,An.a)),e["\u0275did"](112,49152,null,0,Un.a,[x.Location,Gl.b],null,null)],function(l,n){var u=n.component;l(n,2,0,u.targetForm);var t=l(n,14,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2)));l(n,13,0,"form-group",t),l(n,24,0,"target_iqn"),l(n,32,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2),"required")),l(n,34,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2),"pattern")),l(n,36,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2),"iqn")),l(n,38,0,u.hasAdvancedSettings(u.targetForm.getValue("target_controls")));var a=l(n,42,0,u.targetForm.showError("portals",e["\u0275nov"](n,2)));l(n,41,0,"form-group",a),l(n,49,0,u.portals.value),l(n,51,0,u.targetForm.showError("portals",e["\u0275nov"](n,2),"minGateways")),l(n,55,0,"btn btn-default pull-right",u.portals.value,u.portalsSelections,u.messages.portals);var o=l(n,62,0,u.targetForm.showError("disks",e["\u0275nov"](n,2)));l(n,61,0,"form-group",o),l(n,67,0,u.targetForm.getValue("disks")),l(n,71,0,"disks"),l(n,75,0,u.targetForm.showError("disks",e["\u0275nov"](n,2),"dupLunId")),l(n,77,0,u.targetForm.showError("disks",e["\u0275nov"](n,2),"dupWwn")),l(n,81,0,"btn btn-default pull-right",u.disks.value,u.imagesSelections,u.messages.images),l(n,92,0,"acl_enabled"),l(n,99,0,u.cephIscsiConfigVersion>10&&!u.targetForm.getValue("acl_enabled")),l(n,101,0,u.targetForm.getValue("acl_enabled")),l(n,103,0,u.targetForm.getValue("acl_enabled")),l(n,107,0,e["\u0275nov"](n,2),"button")},function(l,n){var u=n.component;l(n,0,0,e["\u0275nov"](n,4).ngClassUntouched,e["\u0275nov"](n,4).ngClassTouched,e["\u0275nov"](n,4).ngClassPristine,e["\u0275nov"](n,4).ngClassDirty,e["\u0275nov"](n,4).ngClassValid,e["\u0275nov"](n,4).ngClassInvalid,e["\u0275nov"](n,4).ngClassPending);var t=e["\u0275unv"](n,8,0,l(n,9,0,e["\u0275nov"](n.parent,0),u.action)),a=e["\u0275unv"](n,8,1,l(n,10,0,e["\u0275nov"](n.parent,1),u.resource));l(n,8,0,t,a),l(n,21,0,e["\u0275nov"](n,26).ngClassUntouched,e["\u0275nov"](n,26).ngClassTouched,e["\u0275nov"](n,26).ngClassPristine,e["\u0275nov"](n,26).ngClassDirty,e["\u0275nov"](n,26).ngClassValid,e["\u0275nov"](n,26).ngClassInvalid,e["\u0275nov"](n,26).ngClassPending),l(n,68,0,e["\u0275nov"](n,73).ngClassUntouched,e["\u0275nov"](n,73).ngClassTouched,e["\u0275nov"](n,73).ngClassPristine,e["\u0275nov"](n,73).ngClassDirty,e["\u0275nov"](n,73).ngClassValid,e["\u0275nov"](n,73).ngClassInvalid,e["\u0275nov"](n,73).ngClassPending),l(n,89,0,e["\u0275nov"](n,94).ngClassUntouched,e["\u0275nov"](n,94).ngClassTouched,e["\u0275nov"](n,94).ngClassPristine,e["\u0275nov"](n,94).ngClassDirty,e["\u0275nov"](n,94).ngClassValid,e["\u0275nov"](n,94).ngClassInvalid,e["\u0275nov"](n,94).ngClassPending);var o=e["\u0275unv"](n,108,0,l(n,109,0,e["\u0275nov"](n.parent,0),u.action)),i=e["\u0275unv"](n,108,1,l(n,110,0,e["\u0275nov"](n.parent,1),u.resource));l(n,108,0,o,i)})}function ut(l){return e["\u0275vid"](0,[e["\u0275pid"](0,x.TitleCasePipe,[]),e["\u0275pid"](0,H.a,[]),e["\u0275pid"](0,O.a,[]),(l()(),e["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,nt)),e["\u0275did"](5,16384,null,0,x.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,5,0,n.component.targetForm)},null)}function et(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-form",[],null,null,null,ut,ce)),e["\u0275did"](1,114688,null,0,se.a,[Du.a,nl.b,zl.a,dl.l,dl.a,V.a,Wl.a,Gl.b],null,null)],function(l,n){l(n,1,0)},null)}var tt=e["\u0275ccf"]("cd-iscsi-target-form",se.a,et,{},{},[]),at=u("Vhfg"),ot=u("cxJu");u.d(n,"BlockModuleNgFactory",function(){return it}),u.d(n,"RoutedBlockModuleNgFactory",function(){return rt});var it=e["\u0275cmf"](t.a,[],function(l){return e["\u0275mod"]([e["\u0275mpd"](512,e.ComponentFactoryResolver,e["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,o.a,i.a,r.a,r.b,d.a,s.a,c.a,p.a,f.a,g.a,m.a,v.a,h.a,h.c,h.b,b.a,C.a,R.a,I.a,w.a,T.a,y.a,k.a,_.a]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["\u0275mpd"](4608,x.NgLocalization,x.NgLocaleLocalization,[e.LOCALE_ID,[2,x["\u0275angular_packages_common_common_a"]]]),e["\u0275mpd"](4608,E.a,E.a,[V.a]),e["\u0275mpd"](4608,x.DatePipe,x.DatePipe,[e.LOCALE_ID]),e["\u0275mpd"](4608,N.a,N.a,[]),e["\u0275mpd"](4608,D.a,D.a,[]),e["\u0275mpd"](4608,S.a,S.a,[]),e["\u0275mpd"](4608,F.a,F.a,[S.a]),e["\u0275mpd"](4608,P.a,P.a,[S.a]),e["\u0275mpd"](4608,q.a,q.a,[S.a]),e["\u0275mpd"](4608,j.a,j.a,[]),e["\u0275mpd"](4608,O.a,O.a,[]),e["\u0275mpd"](4608,A.a,A.a,[]),e["\u0275mpd"](4608,U.a,U.a,[]),e["\u0275mpd"](4608,$.a,$.a,[x.DatePipe]),e["\u0275mpd"](4608,M.a,M.a,[]),e["\u0275mpd"](4608,z.a,z.a,[]),e["\u0275mpd"](4608,B.a,B.a,[]),e["\u0275mpd"](4608,L.a,L.a,[]),e["\u0275mpd"](4608,G.a,G.a,[]),e["\u0275mpd"](4608,K.a,K.a,[V.a]),e["\u0275mpd"](4608,H.a,H.a,[]),e["\u0275mpd"](4608,J.a,J.a,[]),e["\u0275mpd"](4608,Z.E,Z.E,[]),e["\u0275mpd"](4608,Z.h,Z.h,[]),e["\u0275mpd"](4608,W.b,W.b,[]),e["\u0275mpd"](4608,Q.a,Q.a,[]),e["\u0275mpd"](4608,Y.a,Y.a,[e.RendererFactory2,e.PLATFORM_ID]),e["\u0275mpd"](4608,X.a,X.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Y.a,e.ApplicationRef]),e["\u0275mpd"](4608,ll.a,ll.a,[]),e["\u0275mpd"](4608,nl.b,nl.b,[e.RendererFactory2,X.a]),e["\u0275mpd"](4608,ul.ScrollbarHelper,ul.ScrollbarHelper,[el.DOCUMENT]),e["\u0275mpd"](4608,tl.DimensionsHelper,tl.DimensionsHelper,[]),e["\u0275mpd"](4608,al.ColumnChangesService,al.ColumnChangesService,[]),e["\u0275mpd"](4608,ol.f,ol.f,[]),e["\u0275mpd"](4608,il.a,il.a,[]),e["\u0275mpd"](4608,rl.a,rl.a,[dl.l,il.a]),e["\u0275mpd"](4608,sl.NodeDraggableService,sl.NodeDraggableService,[]),e["\u0275mpd"](4608,cl.NodeMenuService,cl.NodeMenuService,[]),e["\u0275mpd"](4608,pl.TreeService,pl.TreeService,[sl.NodeDraggableService]),e["\u0275mpd"](4608,fl.e,fl.e,[]),e["\u0275mpd"](4608,gl.c,gl.c,[]),e["\u0275mpd"](4608,ml.r,ml.r,[]),e["\u0275mpd"](4608,ml.t,ml.t,[]),e["\u0275mpd"](4608,ml.a,ml.a,[]),e["\u0275mpd"](4608,ml.h,ml.h,[]),e["\u0275mpd"](4608,ml.d,ml.d,[]),e["\u0275mpd"](4608,ml.j,ml.j,[]),e["\u0275mpd"](4608,ml.s,ml.s,[ml.t,ml.j]),e["\u0275mpd"](1073742336,x.CommonModule,x.CommonModule,[]),e["\u0275mpd"](1073742336,fl.c,fl.c,[]),e["\u0275mpd"](1073742336,vl.a,vl.a,[]),e["\u0275mpd"](1073742336,Z.B,Z.B,[]),e["\u0275mpd"](1073742336,Z.n,Z.n,[]),e["\u0275mpd"](1073742336,Z.x,Z.x,[]),e["\u0275mpd"](1073742336,W.c,W.c,[]),e["\u0275mpd"](1073742336,Q.d,Q.d,[]),e["\u0275mpd"](1073742336,ll.d,ll.d,[]),e["\u0275mpd"](1073742336,hl.ChartsModule,hl.ChartsModule,[]),e["\u0275mpd"](1073742336,nl.e,nl.e,[]),e["\u0275mpd"](1073742336,bl.a,bl.a,[]),e["\u0275mpd"](1073742336,ol.e,ol.e,[]),e["\u0275mpd"](1073742336,Cl.a,Cl.a,[]),e["\u0275mpd"](1073742336,Rl.NgxDatatableModule,Rl.NgxDatatableModule,[]),e["\u0275mpd"](1073742336,dl.p,dl.p,[[2,dl.v],[2,dl.l]]),e["\u0275mpd"](1073742336,Il.a,Il.a,[]),e["\u0275mpd"](1073742336,wl.a,wl.a,[]),e["\u0275mpd"](1073742336,Tl.a,Tl.a,[]),e["\u0275mpd"](1073742336,gl.d,gl.d,[]),e["\u0275mpd"](1073742336,yl.TreeModule,yl.TreeModule,[]),e["\u0275mpd"](1073742336,kl.a,kl.a,[]),e["\u0275mpd"](1073742336,ml.g,ml.g,[]),e["\u0275mpd"](1073742336,t.a,t.a,[]),e["\u0275mpd"](256,e.LOCALE_ID,"en-US",[]),e["\u0275mpd"](256,ol.a,{autoClose:!0,insideClick:!1},[]),e["\u0275mpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}),rt=e["\u0275cmf"](t.b,[],function(l){return e["\u0275mod"]([e["\u0275mpd"](512,e.ComponentFactoryResolver,e["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,o.a,i.a,r.a,r.b,d.a,s.a,c.a,p.a,f.a,g.a,m.a,v.a,h.a,h.c,h.b,b.a,C.a,R.a,I.a,w.a,T.a,y.a,k.a,_.a,En,yu,Gu,ee,tt]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["\u0275mpd"](4608,x.NgLocalization,x.NgLocaleLocalization,[e.LOCALE_ID,[2,x["\u0275angular_packages_common_common_a"]]]),e["\u0275mpd"](4608,E.a,E.a,[V.a]),e["\u0275mpd"](4608,x.DatePipe,x.DatePipe,[e.LOCALE_ID]),e["\u0275mpd"](4608,N.a,N.a,[]),e["\u0275mpd"](4608,D.a,D.a,[]),e["\u0275mpd"](4608,S.a,S.a,[]),e["\u0275mpd"](4608,F.a,F.a,[S.a]),e["\u0275mpd"](4608,P.a,P.a,[S.a]),e["\u0275mpd"](4608,q.a,q.a,[S.a]),e["\u0275mpd"](4608,j.a,j.a,[]),e["\u0275mpd"](4608,O.a,O.a,[]),e["\u0275mpd"](4608,A.a,A.a,[]),e["\u0275mpd"](4608,U.a,U.a,[]),e["\u0275mpd"](4608,$.a,$.a,[x.DatePipe]),e["\u0275mpd"](4608,M.a,M.a,[]),e["\u0275mpd"](4608,z.a,z.a,[]),e["\u0275mpd"](4608,B.a,B.a,[]),e["\u0275mpd"](4608,L.a,L.a,[]),e["\u0275mpd"](4608,G.a,G.a,[]),e["\u0275mpd"](4608,K.a,K.a,[V.a]),e["\u0275mpd"](4608,H.a,H.a,[]),e["\u0275mpd"](4608,J.a,J.a,[]),e["\u0275mpd"](4608,Z.E,Z.E,[]),e["\u0275mpd"](4608,Z.h,Z.h,[]),e["\u0275mpd"](4608,W.b,W.b,[]),e["\u0275mpd"](4608,Q.a,Q.a,[]),e["\u0275mpd"](4608,Y.a,Y.a,[e.RendererFactory2,e.PLATFORM_ID]),e["\u0275mpd"](4608,X.a,X.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Y.a,e.ApplicationRef]),e["\u0275mpd"](4608,ll.a,ll.a,[]),e["\u0275mpd"](4608,nl.b,nl.b,[e.RendererFactory2,X.a]),e["\u0275mpd"](4608,ul.ScrollbarHelper,ul.ScrollbarHelper,[el.DOCUMENT]),e["\u0275mpd"](4608,tl.DimensionsHelper,tl.DimensionsHelper,[]),e["\u0275mpd"](4608,al.ColumnChangesService,al.ColumnChangesService,[]),e["\u0275mpd"](4608,ol.f,ol.f,[]),e["\u0275mpd"](4608,il.a,il.a,[]),e["\u0275mpd"](4608,rl.a,rl.a,[dl.l,il.a]),e["\u0275mpd"](4608,sl.NodeDraggableService,sl.NodeDraggableService,[]),e["\u0275mpd"](4608,cl.NodeMenuService,cl.NodeMenuService,[]),e["\u0275mpd"](4608,pl.TreeService,pl.TreeService,[sl.NodeDraggableService]),e["\u0275mpd"](4608,fl.e,fl.e,[]),e["\u0275mpd"](4608,gl.c,gl.c,[]),e["\u0275mpd"](4608,ml.r,ml.r,[]),e["\u0275mpd"](4608,ml.t,ml.t,[]),e["\u0275mpd"](4608,ml.a,ml.a,[]),e["\u0275mpd"](4608,ml.h,ml.h,[]),e["\u0275mpd"](4608,ml.d,ml.d,[]),e["\u0275mpd"](4608,ml.j,ml.j,[]),e["\u0275mpd"](4608,ml.s,ml.s,[ml.t,ml.j]),e["\u0275mpd"](1073742336,x.CommonModule,x.CommonModule,[]),e["\u0275mpd"](1073742336,fl.c,fl.c,[]),e["\u0275mpd"](1073742336,vl.a,vl.a,[]),e["\u0275mpd"](1073742336,Z.B,Z.B,[]),e["\u0275mpd"](1073742336,Z.n,Z.n,[]),e["\u0275mpd"](1073742336,Z.x,Z.x,[]),e["\u0275mpd"](1073742336,W.c,W.c,[]),e["\u0275mpd"](1073742336,Q.d,Q.d,[]),e["\u0275mpd"](1073742336,ll.d,ll.d,[]),e["\u0275mpd"](1073742336,hl.ChartsModule,hl.ChartsModule,[]),e["\u0275mpd"](1073742336,nl.e,nl.e,[]),e["\u0275mpd"](1073742336,bl.a,bl.a,[]),e["\u0275mpd"](1073742336,ol.e,ol.e,[]),e["\u0275mpd"](1073742336,Cl.a,Cl.a,[]),e["\u0275mpd"](1073742336,Rl.NgxDatatableModule,Rl.NgxDatatableModule,[]),e["\u0275mpd"](1073742336,dl.p,dl.p,[[2,dl.v],[2,dl.l]]),e["\u0275mpd"](1073742336,Il.a,Il.a,[]),e["\u0275mpd"](1073742336,wl.a,wl.a,[]),e["\u0275mpd"](1073742336,Tl.a,Tl.a,[]),e["\u0275mpd"](1073742336,gl.d,gl.d,[]),e["\u0275mpd"](1073742336,yl.TreeModule,yl.TreeModule,[]),e["\u0275mpd"](1073742336,kl.a,kl.a,[]),e["\u0275mpd"](1073742336,ml.g,ml.g,[]),e["\u0275mpd"](1073742336,t.a,t.a,[]),e["\u0275mpd"](1073742336,t.b,t.b,[]),e["\u0275mpd"](256,e.LOCALE_ID,"en-US",[]),e["\u0275mpd"](256,ol.a,{autoClose:!0,insideClick:!1},[]),e["\u0275mpd"](1024,dl.j,function(){return[[{path:"",redirectTo:"rbd",pathMatch:"full"},{path:"rbd",canActivate:[at.a],data:t.c,children:[{path:"",component:Tn.a},{path:"create",component:$n.a,data:t.d},{path:"edit/:pool/:name",component:$n.a,data:t.g},{path:"clone/:pool/:name/:snap",component:$n.a,data:t.h},{path:"copy/:pool/:name",component:$n.a,data:t.i},{path:"copy/:pool/:name/:snap",component:$n.a,data:t.j}]},{path:"mirroring",component:ot.a,canActivate:[at.a],data:t.k},{path:"iscsi",canActivate:[at.a],data:t.l,children:[{path:"",redirectTo:"overview",pathMatch:"full"},{path:"overview",component:Nu.a,data:t.m},{path:"targets",data:t.n,children:[{path:"",component:Zu.a},{path:"create",component:se.a,data:t.e},{path:"edit/:target_iqn",component:se.a,data:t.f}]}]}]]},[]),e["\u0275mpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/7.76846491986b0ea6c0bd.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/7.76846491986b0ea6c0bd.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/7.76846491986b0ea6c0bd.js 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/7.76846491986b0ea6c0bd.js 2021-03-15 17:51:46.000000000 +0000 @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{J6Oi:function(l,n,u){"use strict";u.r(n);var e=u("CcnG"),t=u("k/xb"),a=u("MdoF"),o=u("ES0t"),i=u("Xg1U"),r=u("z5nN"),d=u("iutN"),s=u("EEJc"),c=u("PEr+"),p=u("a40w"),f=u("pMnS"),g=u("RIVN"),m=u("nP0W"),v=u("VBM6"),h=u("atuK"),b=u("JIi+"),C=u("Ur3J"),R=u("I4Qz"),I=u("0rTx"),w=u("lz+O"),T=u("u2XS"),y=u("nhAp"),k=u("l7Jr"),E=u("bUo2"),_=u("Ip0R"),x=u("iExv"),V=u("Jm/i"),N=u("85J/"),D=u("+0ag"),S=u("aXbf"),F=u("Fgil"),P=u("IzCI"),q=u("o4+5"),j=u("Dwqy"),O=u("uYzU"),A=u("uhwM"),U=u("E2fk"),$=u("a0VL"),M=u("nSDx"),z=u("SB+Q"),B=u("TYzs"),L=u("BQkM"),G=u("dEH0"),K=u("G1/K"),H=u("8xTl"),J=u("TJUb"),Z=u("gIcY"),W=u("lTVp"),Q=u("OZfm"),Y=u("NJnL"),X=u("lqqz"),ll=u("eajB"),nl=u("DQlY"),ul=u("FO+L"),el=u("ZYjt"),tl=u("nhM1"),al=u("BARL"),ol=u("xtZt"),il=u("aexS"),rl=u("Avrn"),dl=u("ZYCi"),sl=u("urB8"),cl=u("JZ5S"),pl=u("Tff5"),fl=u("YAQW"),gl=u("Da1D"),ml=u("ARl4"),vl=u("9Xeq"),hl=u("xdbM"),bl=u("yGOH"),Cl=u("V/fk"),Rl=u("F8xH"),Il=u("ChqD"),wl=u("pL04"),Tl=u("PCNd"),yl=u("STEd"),kl=u("kccj"),El=u("a278"),_l=u("insk"),xl=u("mSOc"),Vl=u("20UP"),Nl=u("pKUh"),Dl=u("C6Ij"),Sl=u("AWcq"),Fl=u("25BL"),Pl=u("uIqm"),ql=u("NUGo"),jl=u("S7zO"),Ol=u("JBea"),Al=u("VTlA"),Ul=u("ufoC"),$l=u("EgGo"),Ml=u("LvDl"),zl=u("F83c"),Bl=u("OLbh"),Ll=u("0+/T"),Gl=u("sne2"),Kl=u("x38r"),Hl=u("yJti"),Jl=u("vCyI"),Zl=u("kvvV"),Wl=u("kn/O"),Ql=u("2JDI"),Yl=u("u0yg"),Xl=new $l.a("block/rbd"),ln=function(){function l(l,n,u,e,t,a,o,i,r,d){var s=this;this.authStorageService=l,this.rbdService=n,this.dimlessBinaryPipe=u,this.dimlessPipe=e,this.modalService=t,this.taskWrapper=a,this.taskListService=o,this.i18n=i,this.urlBuilder=r,this.actionLabels=d,this.selection=new Jl.a,this.builders={"rbd/create":function(l){return s.createRbdFromTask(l.pool_name,l.image_name)},"rbd/clone":function(l){return s.createRbdFromTask(l.child_pool_name,l.child_image_name)},"rbd/copy":function(l){return s.createRbdFromTask(l.dest_pool_name,l.dest_image_name)}},this.permission=this.authStorageService.getPermissions().rbdImage;var c=function(){return s.selection.first()&&encodeURIComponent(s.selection.first().pool_name)+"/"+encodeURIComponent(s.selection.first().name)};this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return s.urlBuilder.getCreate()},canBePrimary:function(l){return!l.hasSingleSelection},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return s.urlBuilder.getEdit(c())},name:this.actionLabels.EDIT},{permission:"create",canBePrimary:function(l){return l.hasSingleSelection},disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting},icon:"fa-copy",routerLink:function(){return"/block/rbd/copy/"+c()},name:this.actionLabels.COPY},{permission:"update",disable:function(l){return!l.hasSingleSelection||l.first().cdExecuting||!l.first().parent},icon:"fa-chain-broken",click:function(){return s.flattenRbdModal()},name:this.actionLabels.FLATTEN},{permission:"delete",icon:"fa-times",click:function(){return s.deleteRbdModal()},name:this.actionLabels.DELETE},{permission:"delete",icon:"fa-trash-o",click:function(){return s.trashRbdModal()},name:this.actionLabels.TRASH,disable:function(l){return!l.first()||!l.hasSingleSelection||l.first().image_format===Yl.a.V1}}]}return l.prototype.createRbdFromTask=function(l,n){var u=new Yl.b;return u.id="-1",u.unique_id="-1",u.name=n,u.pool_name=l,u.image_format=Yl.a.V2,u},l.prototype.ngOnInit=function(){var l=this;this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:2,cellTransformation:Kl.a.executing},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Objects"),prop:"num_objs",flexGrow:1,cellClass:"text-right",pipe:this.dimlessPipe},{name:this.i18n("Object size"),prop:"obj_size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Total provisioned"),prop:"total_disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Parent"),prop:"parent",flexGrow:2,cellTemplate:this.parentTpl}],this.taskListService.init(function(){return l.rbdService.list()},function(n){return l.prepareResponse(n)},function(n){return l.images=n},function(){return l.onFetchError()},this.taskFilter,this.itemFilter,this.builders)},l.prototype.onFetchError=function(){this.table.reset(),this.viewCacheStatusList=[{status:Hl.a.ValueException}]},l.prototype.prepareResponse=function(l){var n=[],u={};l.forEach(function(l){Ml.isUndefined(u[l.status])&&(u[l.status]=[]),u[l.status].push(l.pool_name),n=n.concat(l.value)});var e=[];return Ml.forEach(u,function(l,n){e.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+""+l.join(", ")+""})}),this.viewCacheStatusList=e,n},l.prototype.itemFilter=function(l,n){var u,e;switch(n.name){case"rbd/copy":u="dest_pool_name",e="dest_image_name";break;case"rbd/clone":u="child_pool_name",e="child_image_name";break;default:u="pool_name",e="image_name"}return l.pool_name===n.metadata[u]&&l.name===n.metadata[e]},l.prototype.taskFilter=function(l){return["rbd/clone","rbd/copy","rbd/create","rbd/delete","rbd/edit","rbd/flatten","rbd/trash/move"].includes(l.name)},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.deleteRbdModal=function(){var l=this,n=this.selection.first().pool_name,u=this.selection.first().name;this.modalRef=this.modalService.show(Ll.a,{initialState:{itemDescription:"RBD",itemNames:[n+"/"+u],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new Zl.a("rbd/delete",{pool_name:n,image_name:u}),call:l.rbdService.delete(n,u)})}}})},l.prototype.trashRbdModal=function(){var l={metaType:"RBD",poolName:this.selection.first().pool_name,imageName:this.selection.first().name};this.modalRef=this.modalService.show(Ql.a,{initialState:l})},l.prototype.flattenRbd=function(l,n){var u=this;this.taskWrapper.wrapTaskAroundCall({task:new Zl.a("rbd/flatten",{pool_name:l,image_name:n}),call:this.rbdService.flatten(l,n)}).subscribe(void 0,void 0,function(){u.modalRef.hide()})},l.prototype.flattenRbdModal=function(){var l=this,n=this.selection.first().pool_name,u=this.selection.first().name,e=this.selection.first().parent;this.modalRef=this.modalService.show(Bl.a,{initialState:{titleText:"RBD flatten",buttonText:"Flatten",bodyTpl:this.flattenTpl,bodyData:{parent:e.pool_name+"/"+e.image_name+"@"+e.snap_name,child:n+"/"+u},onSubmit:function(){l.flattenRbd(n,u)}}})},l}(),nn=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function un(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Dl.b,Dl.a)),e["\u0275did"](1,114688,null,0,Sl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)},null)}function en(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"div",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(l,n){l(n,0,0,"Only available for RBD images with fast-diff enabled")})}function tn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["","/","@",""]))],null,function(l,n){l(n,1,0,n.parent.context.value.pool_name,n.parent.context.value.image_name,n.parent.context.value.snap_name)})}function an(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["-"]))],null,null)}function on(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,tn)),e["\u0275did"](1,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,an)),e["\u0275did"](3,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.context.value),l(n,3,0,!n.context.value)},null)}function rn(l){return e["\u0275vid"](0,[(l()(),e["\u0275ted"](-1,null,[" You are about to flatten "])),(l()(),e["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["\u0275ted"](2,null,["",""])),(l()(),e["\u0275ted"](-1,null,[". "])),(l()(),e["\u0275eld"](4,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" All blocks will be copied from parent "])),(l()(),e["\u0275eld"](7,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["\u0275ted"](8,null,["",""])),(l()(),e["\u0275ted"](-1,null,[" to child "])),(l()(),e["\u0275eld"](10,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["\u0275ted"](11,null,["",""])),(l()(),e["\u0275ted"](-1,null,[".\n"]))],null,function(l,n){l(n,2,0,n.context.$implicit.child),l(n,8,0,n.context.$implicit.parent),l(n,11,0,n.context.$implicit.child)})}function dn(l){return e["\u0275vid"](0,[e["\u0275qud"](402653184,1,{table:0}),e["\u0275qud"](402653184,2,{usageTpl:0}),e["\u0275qud"](402653184,3,{parentTpl:0}),e["\u0275qud"](402653184,4,{nameTpl:0}),e["\u0275qud"](402653184,5,{flattenTpl:0}),(l()(),e["\u0275and"](16777216,null,null,1,null,un)),e["\u0275did"](6,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](7,0,null,null,5,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","unique_id"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e},Fl.b,Fl.a)),e["\u0275did"](8,2867200,[[1,4],["table",4]],0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"],searchableObjects:[6,"searchableObjects"]},{updateSelection:"updateSelection"}),(l()(),e["\u0275eld"](9,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,ql.b,ql.a)),e["\u0275did"](10,114688,null,0,jl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["\u0275eld"](11,0,null,2,1,"cd-rbd-details",[["cdTableDetail",""]],null,null,null,b.c,b.b)),e["\u0275did"](12,573440,null,0,Ol.a,[],{selection:[0,"selection"]},null),(l()(),e["\u0275and"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,en)),(l()(),e["\u0275and"](0,[[3,2],["parentTpl",2]],null,0,null,on)),(l()(),e["\u0275and"](0,[[5,2],["flattenTpl",2]],null,0,null,rn))],function(l,n){var u=n.component;l(n,6,0,u.viewCacheStatusList),l(n,8,0,u.images,u.columns,"flex","unique_id","true","single",!0),l(n,10,0,u.permission,u.selection,u.tableActions),l(n,12,0,u.selection)},null)}var sn=u("wd/R"),cn=u("WxU5"),pn=u("2GqK"),fn=function(){function l(l,n,u,e,t,a,o,i){var r=this;this.authStorageService=l,this.rbdService=n,this.modalService=u,this.cdDatePipe=e,this.taskListService=t,this.taskWrapper=a,this.i18n=o,this.actionLabels=i,this.executingTasks=[],this.selection=new Jl.a,this.disablePurgeBtn=!0,this.permission=this.authStorageService.getPermissions().rbdImage,this.tableActions=[{permission:"update",icon:"fa-undo",click:function(){return r.restoreModal()},name:this.actionLabels.RESTORE},{permission:"delete",icon:"fa-times",click:function(){return r.deleteModal()},name:this.actionLabels.DELETE}]}return l.prototype.ngOnInit=function(){var l=this;this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:1,cellTransformation:Kl.a.executing},{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:1},{name:this.i18n("Status"),prop:"deferment_end_time",flexGrow:1,cellTemplate:this.expiresTpl},{name:this.i18n("Deleted At"),prop:"deletion_time",flexGrow:1,pipe:this.cdDatePipe}],this.taskListService.init(function(){return l.rbdService.listTrash()},function(n){return l.prepareResponse(n)},function(n){return l.images=n},function(){return l.onFetchError()},this.taskFilter,this.itemFilter,void 0)},l.prototype.prepareResponse=function(l){var n=this,u=[],e={};l.forEach(function(l){Ml.isUndefined(e[l.status])&&(e[l.status]=[]),e[l.status].push(l.pool_name),u=u.concat(l.value),n.disablePurgeBtn=!u.length});var t=[];return Ml.forEach(e,function(l,n){t.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+""+l.join(", ")+""})}),this.viewCacheStatusList=t,u.forEach(function(l){l.cdIsExpired=sn().isAfter(l.deferment_end_time)}),u},l.prototype.onFetchError=function(){this.table.reset(),this.viewCacheStatusList=[{status:Hl.a.ValueException}]},l.prototype.itemFilter=function(l,n){return l.id===n.metadata.image_id},l.prototype.taskFilter=function(l){return["rbd/trash/remove","rbd/trash/restore"].includes(l.name)},l.prototype.updateSelection=function(l){this.selection=l},l.prototype.restoreModal=function(){var l={metaType:"RBD",poolName:this.selection.first().pool_name,imageName:this.selection.first().name,imageId:this.selection.first().id};this.modalRef=this.modalService.show(pn.a,{initialState:l})},l.prototype.deleteModal=function(){var l=this,n=this.selection.first().pool_name,u=this.selection.first().name,e=this.selection.first().id,t=this.selection.first().deferment_end_time;this.modalRef=this.modalService.show(Ll.a,{initialState:{itemDescription:"RBD",itemNames:[n+"/"+u],bodyTemplate:this.deleteTpl,bodyContext:{$implicit:t},submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new Zl.a("rbd/trash/remove",{pool_name:n,image_id:e,image_name:u}),call:l.rbdService.removeTrash(n,e,u,!0)})}}})},l.prototype.isExpired=function(l){return sn().isAfter(l)},l.prototype.purgeModal=function(){this.modalService.show(cn.a)},l}(),gn=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function mn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Dl.b,Dl.a)),e["\u0275did"](1,114688,null,0,Sl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)},null)}function vn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"button",[["class","btn btn-sm btn-default btn-label"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.purgeModal()&&e),e},null,null)),(l()(),e["\u0275eld"](1,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-fw fa-times"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Purge Trash"]))],null,function(l,n){l(n,0,0,n.component.disablePurgeBtn)})}function hn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Expired at"]))],null,null)}function bn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Protected until"]))],null,null)}function Cn(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,hn)),e["\u0275did"](1,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,bn)),e["\u0275did"](3,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275ted"](4,null,[" ","\n"])),e["\u0275ppd"](5,1)],function(l,n){l(n,1,0,n.context.row.cdIsExpired),l(n,3,0,!n.context.row.cdIsExpired)},function(l,n){var u=e["\u0275unv"](n,4,0,l(n,5,0,e["\u0275nov"](n.parent,0),n.context.value));l(n,4,0,u)})}function Rn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,4,"p",[["class","text-danger"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,3,"strong",[],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](3,null,["This image is protected until ","."])),e["\u0275ppd"](4,1)],null,function(l,n){var u=e["\u0275unv"](n,3,0,l(n,4,0,e["\u0275nov"](n.parent.parent,0),n.parent.context.$implicit));l(n,3,0,u)})}function In(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,Rn)),e["\u0275did"](1,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,!n.component.isExpired(n.context.$implicit))},null)}function wn(l){return e["\u0275vid"](0,[e["\u0275pid"](0,$.a,[_.DatePipe]),e["\u0275qud"](402653184,1,{table:0}),e["\u0275qud"](402653184,2,{expiresTpl:0}),e["\u0275qud"](402653184,3,{deleteTpl:0}),(l()(),e["\u0275and"](16777216,null,null,1,null,mn)),e["\u0275did"](5,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](6,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e},Fl.b,Fl.a)),e["\u0275did"](7,2867200,[[1,4]],0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["\u0275eld"](8,0,null,0,4,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["\u0275eld"](9,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,ql.b,ql.a)),e["\u0275did"](10,114688,null,0,jl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,vn)),e["\u0275did"](12,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,[[2,2],["expiresTpl",2]],null,0,null,Cn)),(l()(),e["\u0275and"](0,[[3,2],["deleteTpl",2]],null,0,null,In))],function(l,n){var u=n.component;l(n,5,0,u.viewCacheStatusList),l(n,7,0,u.images,u.columns,"flex","id","true","single"),l(n,10,0,u.permission,u.selection,u.tableActions),l(n,12,0,u.permission.delete)},null)}var Tn=u("wG1H"),yn=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function kn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","41FrpeUiz"]],null,null,null,El.b,El.a)),e["\u0275did"](3,638976,null,0,_l.a,[xl.a,el.DomSanitizer,Vl.a,D.a,V.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"rbd-overview?","two","41FrpeUiz")},function(l,n){l(n,0,0,e["\u0275nov"](n,1).id,e["\u0275nov"](n,1).active,e["\u0275nov"](n,1).addClass)})}function En(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,15,"div",[],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,14,"tabset",[],[[2,"tab-container",null]],null,null,Nl.b,Nl.a)),e["\u0275did"](2,180224,null,0,fl.d,[fl.e,e.Renderer2,e.ElementRef],null,null),(l()(),e["\u0275eld"](3,0,null,0,5,"tab",[["heading","Images"],["id","tab1"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["\u0275did"](4,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"],id:[1,"id"]},null),(l()(),e["\u0275eld"](5,0,null,null,3,"cd-rbd-list",[],null,null,null,dn,nn)),e["\u0275prd"](131584,null,Al.a,Al.a,[Ul.a,xl.a]),e["\u0275prd"](256,null,$l.a,Xl,[]),e["\u0275did"](8,114688,null,0,ln,[il.a,zl.a,F.a,q.a,nl.b,Wl.a,Al.a,V.a,$l.a,Gl.b],null,null),(l()(),e["\u0275eld"](9,0,null,0,4,"tab",[["heading","Trash"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["\u0275did"](10,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["\u0275eld"](11,0,null,null,2,"cd-rbd-trash-list",[],null,null,null,wn,gn)),e["\u0275prd"](131584,null,Al.a,Al.a,[Ul.a,xl.a]),e["\u0275did"](13,114688,null,0,fn,[il.a,zl.a,nl.b,$.a,Al.a,Wl.a,V.a,Gl.b],null,null),(l()(),e["\u0275and"](16777216,null,0,1,null,kn)),e["\u0275did"](15,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,4,0,"Images","tab1"),l(n,8,0),l(n,10,0,"Trash"),l(n,13,0),l(n,15,0,u.grafanaPermission.read)},function(l,n){l(n,1,0,e["\u0275nov"](n,2).clazz),l(n,3,0,e["\u0275nov"](n,4).id,e["\u0275nov"](n,4).active,e["\u0275nov"](n,4).addClass),l(n,9,0,e["\u0275nov"](n,10).id,e["\u0275nov"](n,10).active,e["\u0275nov"](n,10).addClass)})}function _n(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-rbd-images",[],null,null,null,En,yn)),e["\u0275did"](1,114688,null,0,Tn.a,[il.a],null,null)],function(l,n){l(n,1,0)},null)}var xn=e["\u0275ccf"]("cd-rbd-images",Tn.a,_n,{},{},[]),Vn=u("ANnk"),Nn=u("f/UV"),Dn=u("4HWh"),Sn=u("p4Cf"),Fn=u("IZUe"),Pn=u("EmSq"),qn=u("BH9v"),jn=u("rFfW"),On=u("o8EM"),An=u("gp3X"),Un=u("sb0X"),$n=u("KVJa"),Mn=u("Z21x"),zn=u("MyVl"),Bn=u("Ekvf"),Ln=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Gn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),e["\u0275ted"](2,null,[""," from"])),e["\u0275ppd"](3,1),(l()(),e["\u0275eld"](4,0,null,null,8,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,6,"input",[["class","form-control"],["formControlName","parent"],["id","parent"],["name","parent"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,6)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,6).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,6)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,6)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](6,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](8,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](10,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](11,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](12,0,null,null,0,"hr",[],null,null,null,null,null))],function(l,n){l(n,8,0,"parent")},function(l,n){var u=n.component,t=e["\u0275unv"](n,2,0,l(n,3,0,e["\u0275nov"](n.parent,0),u.action));l(n,2,0,t),l(n,5,0,e["\u0275nov"](n,10).ngClassUntouched,e["\u0275nov"](n,10).ngClassTouched,e["\u0275nov"](n,10).ngClassPristine,e["\u0275nov"](n,10).ngClassDirty,e["\u0275nov"](n,10).ngClassValid,e["\u0275nov"](n,10).ngClassInvalid,e["\u0275nov"](n,10).ngClassPending)})}function Kn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Hn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["'/' and '@' are not allowed."]))],null,null)}function Jn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Zn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](6,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null)],function(l,n){l(n,3,0,"pool")},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function Wn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Qn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- No rbd pools available --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Yn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- Select a pool --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Xn(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)},function(l,n){l(n,3,0,n.context.$implicit.pool_name)})}function lu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,14,"select",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,1).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](6,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Wn)),e["\u0275did"](8,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Qn)),e["\u0275did"](10,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Yn)),e["\u0275did"](12,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Xn)),e["\u0275did"](14,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,3,0,"pool"),l(n,8,0,null===u.pools),l(n,10,0,null!==u.pools&&0===u.pools.length),l(n,12,0,null!==u.pools&&u.pools.length>0),l(n,14,0,u.pools)},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function nu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function uu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function eu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"],["placeholder","Data pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,1)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](6,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null)],function(l,n){l(n,3,0,"dataPool")},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function tu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function au(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- No data pools available --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function ou(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- Select a data pool -- "]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function iu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)},function(l,n){l(n,3,0,n.context.$implicit.pool_name)})}function ru(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,14,"select",[["class","form-control"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0,a=l.component;return"change"===n&&(t=!1!==e["\u0275nov"](l,1).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,1).onTouched()&&t),"change"===n&&(t=!1!==a.onDataPoolChange(u.target.value)&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](3,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](5,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](6,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,tu)),e["\u0275did"](8,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,au)),e["\u0275did"](10,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ou)),e["\u0275did"](12,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,iu)),e["\u0275did"](14,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var u=n.component;l(n,3,0,"dataPool"),l(n,8,0,null===u.dataPools),l(n,10,0,null!==u.dataPools&&0===u.dataPools.length),l(n,12,0,null!==u.dataPools&&u.dataPools.length>0),l(n,14,0,u.dataPools)},function(l,n){l(n,0,0,e["\u0275nov"](n,5).ngClassUntouched,e["\u0275nov"](n,5).ngClassTouched,e["\u0275nov"](n,5).ngClassPristine,e["\u0275nov"](n,5).ngClassDirty,e["\u0275nov"](n,5).ngClassValid,e["\u0275nov"](n,5).ngClassInvalid,e["\u0275nov"](n,5).ngClassPending)})}function du(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function su(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](1,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](2,{"has-error":0}),(l()(),e["\u0275eld"](3,0,null,null,6,"label",[["class","control-label col-sm-3"],["for","dataPool"]],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Data pool"])),(l()(),e["\u0275and"](16777216,null,null,1,null,uu)),e["\u0275did"](7,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](8,0,null,null,1,"cd-helper",[["html","Dedicated pool that stores the object-data of the RBD."]],null,null,null,Dn.b,Dn.a)),e["\u0275did"](9,49152,null,0,Sn.a,[],{html:[0,"html"]},null),(l()(),e["\u0275eld"](10,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,eu)),e["\u0275did"](12,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ru)),e["\u0275did"](14,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,du)),e["\u0275did"](16,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component,t=l(n,2,0,u.rbdForm.showError("dataPool",e["\u0275nov"](n.parent,5)));l(n,1,0,"form-group",t),l(n,7,0,"editing"!==u.mode),l(n,9,0,"Dedicated pool that stores the object-data of the RBD."),l(n,12,0,"editing"===u.mode||!u.poolPermission.read),l(n,14,0,"editing"!==u.mode&&u.poolPermission.read),l(n,16,0,u.rbdForm.showError("dataPool",e["\u0275nov"](n.parent,5),"required"))},null)}function cu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function pu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["You have to increase the size."]))],null,null)}function fu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-helper",[],null,null,null,Dn.b,Dn.a)),e["\u0275did"](1,49152,null,0,Sn.a,[],{html:[0,"html"]},null)],function(l,n){l(n,1,0,e["\u0275inlineInterpolate"](1,"",n.parent.context.$implicit.helperHtml,""))},null)}function gu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,11,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,6,"input",[["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,2).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,2).onTouched()&&t),t},null,null)),e["\u0275did"](2,16384,null,0,Z.c,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.c]),e["\u0275did"](4,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](6,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](7,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](8,0,null,null,1,"label",[],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["\u0275ted"](9,null,["",""])),(l()(),e["\u0275and"](16777216,null,null,1,null,fu)),e["\u0275did"](11,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,4,0,e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,11,0,n.context.$implicit.helperHtml)},function(l,n){l(n,1,0,e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,""),e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,""),e["\u0275nov"](n,6).ngClassUntouched,e["\u0275nov"](n,6).ngClassTouched,e["\u0275nov"](n,6).ngClassPristine,e["\u0275nov"](n,6).ngClassDirty,e["\u0275nov"](n,6).ngClassValid,e["\u0275nov"](n,6).ngClassInvalid,e["\u0275nov"](n,6).ngClassPending),l(n,8,0,e["\u0275inlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,9,0,n.context.$implicit.desc)})}function mu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"a",[["class","pull-right margin-right-md"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=0!=(l.component.advancedEnabled=!0)&&e),e},null,null)),(l()(),e["\u0275ted"](-1,null,["Advanced..."]))],null,null)}function vu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function hu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function bu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](1,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{value:[0,"value"]},null),e["\u0275did"](2,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Cu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required because stripe count is defined!"]))],null,null)}function Ru(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe unit is greater than object size."]))],null,null)}function Iu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function wu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required because stripe unit is defined!"]))],null,null)}function Tu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe count must be greater than 0."]))],null,null)}function yu(l){return e["\u0275vid"](0,[e["\u0275pid"](0,_.TitleCasePipe,[]),e["\u0275pid"](0,H.a,[]),(l()(),e["\u0275eld"](2,0,null,null,177,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,176,"form",[["class","form-horizontal"],["name","rbdForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["\u0275nov"](l,5).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["\u0275nov"](l,5).onReset()&&t),t},null,null)),e["\u0275did"](4,16384,null,0,Z.D,[],null,null),e["\u0275did"](5,540672,[["formDir",4]],0,Z.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.l]),e["\u0275did"](7,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](8,0,null,null,171,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),e["\u0275eld"](9,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),e["\u0275ted"](11,null,[""," ",""])),e["\u0275ppd"](12,1),e["\u0275ppd"](13,1),(l()(),e["\u0275eld"](14,0,null,null,156,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Gn)),e["\u0275did"](16,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](17,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](18,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](19,{"has-error":0}),(l()(),e["\u0275eld"](20,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),e["\u0275eld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Name"])),(l()(),e["\u0275eld"](23,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](24,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](25,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,26)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,26).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,26)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,26)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](26,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](28,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](30,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](31,4210688,null,0,Fn.a,[e.ElementRef],null,null),e["\u0275did"](32,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Kn)),e["\u0275did"](34,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Hn)),e["\u0275did"](36,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](37,0,null,null,13,"div",[["class","form-group"]],null,[[null,"change"]],function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onPoolChange(u.target.value)&&e),e},null,null)),e["\u0275did"](38,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](39,{"has-error":0}),(l()(),e["\u0275eld"](40,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","pool"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" Pool "])),(l()(),e["\u0275and"](16777216,null,null,1,null,Jn)),e["\u0275did"](43,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](44,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Zn)),e["\u0275did"](46,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,lu)),e["\u0275did"](48,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,nu)),e["\u0275did"](50,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](51,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](52,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](53,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),e["\u0275eld"](54,0,null,null,6,"input",[["formControlName","useDataPool"],["id","useDataPool"],["name","useDataPool"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0,a=l.component;return"change"===n&&(t=!1!==e["\u0275nov"](l,55).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,55).onTouched()&&t),"change"===n&&(t=!1!==a.onUseDataPoolChange()&&t),t},null,null)),e["\u0275did"](55,16384,null,0,Z.c,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.c]),e["\u0275did"](57,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](59,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](60,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](61,0,null,null,1,"label",[["for","useDataPool"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Use a dedicated data pool"])),(l()(),e["\u0275and"](16777216,null,null,1,null,su)),e["\u0275did"](64,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](65,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](66,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](67,{"has-error":0}),(l()(),e["\u0275eld"](68,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","size"]],null,null,null,null,null)),(l()(),e["\u0275eld"](69,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Size"])),(l()(),e["\u0275eld"](71,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](72,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](73,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","GiB"],["formControlName","size"],["id","size"],["name","size"],["placeholder","e.g., 10GiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,74)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,74).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,74)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,74)._compositionEnd(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,79).onBlur(u.target.value)&&t),t},null,null)),e["\u0275did"](74,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](76,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](78,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](79,81920,null,0,Pn.a,[e.ElementRef,Z.q,F.a,S.a],{defaultUnit:[0,"defaultUnit"]},null),e["\u0275did"](80,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,cu)),e["\u0275did"](82,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,pu)),e["\u0275did"](84,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](85,0,null,null,10,"div",[["class","form-group"],["formGroupName","features"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](86,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](87,{"has-error":0}),e["\u0275did"](88,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](90,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](91,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","features"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Features"])),(l()(),e["\u0275eld"](93,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,gu)),e["\u0275did"](95,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](96,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](97,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,mu)),e["\u0275did"](99,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](100,0,null,null,70,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),e["\u0275eld"](101,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Advanced"])),(l()(),e["\u0275eld"](103,0,null,null,64,"div",[["class","section"]],null,null,null,null,null)),(l()(),e["\u0275eld"](104,0,null,null,1,"h3",[["class","page-header"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Striping"])),(l()(),e["\u0275eld"](106,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](107,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](108,{"has-error":0}),(l()(),e["\u0275eld"](109,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","size"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Object size"])),(l()(),e["\u0275eld"](111,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](112,0,null,null,8,"select",[["class","form-control"],["formControlName","obj_size"],["id","obj_size"],["name","obj_size"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,113).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,113).onTouched()&&t),t},null,null)),e["\u0275did"](113,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](115,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](117,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](118,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,vu)),e["\u0275did"](120,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](121,0,null,null,25,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](122,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](123,{"has-error":0}),(l()(),e["\u0275eld"](124,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","stripingUnit"]],null,null,null,null,null)),(l()(),e["\u0275eld"](125,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe unit"])),(l()(),e["\u0275and"](16777216,null,null,1,null,hu)),e["\u0275did"](128,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](129,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](130,0,null,null,12,"select",[["class","form-control"],["formControlName","stripingUnit"],["id","stripingUnit"],["name","stripingUnit"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,131).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,131).onTouched()&&t),t},null,null)),e["\u0275did"](131,16384,null,0,Z.z,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.z]),e["\u0275did"](133,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](135,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](136,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](137,0,null,null,3,"option",[],null,null,null,null,null)),e["\u0275did"](138,147456,null,0,Z.v,[e.ElementRef,e.Renderer2,[2,Z.z]],{ngValue:[0,"ngValue"]},null),e["\u0275did"](139,147456,null,0,Z.G,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["\u0275ted"](-1,null,["-- Select stripe unit --"])),(l()(),e["\u0275and"](16777216,null,null,1,null,bu)),e["\u0275did"](142,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Cu)),e["\u0275did"](144,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ru)),e["\u0275did"](146,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](147,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](148,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](149,{"has-error":0}),(l()(),e["\u0275eld"](150,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","stripingCount"]],null,null,null,null,null)),(l()(),e["\u0275eld"](151,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Stripe count"])),(l()(),e["\u0275and"](16777216,null,null,1,null,Iu)),e["\u0275did"](154,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](155,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](156,0,null,null,7,"input",[["class","form-control"],["formControlName","stripingCount"],["id","stripingCount"],["name","stripingCount"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,157)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,157).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,157)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,157)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["\u0275nov"](l,158).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["\u0275nov"](l,158).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,158).onTouched()&&t),t},null,null)),e["\u0275did"](157,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275did"](158,16384,null,0,Z.C,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l,n){return[l,n]},[Z.e,Z.C]),e["\u0275did"](160,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](162,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](163,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,wu)),e["\u0275did"](165,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Tu)),e["\u0275did"](167,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](168,0,null,null,2,"div",[["class","section"]],null,null,null,null,null)),(l()(),e["\u0275eld"](169,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],function(l,n,u){var e=!0;return"changes"===n&&(e=!1!==(l.component.getDirtyConfigurationValues=u)&&e),e},qn.b,qn.a)),e["\u0275did"](170,114688,null,0,jn.a,[S.a,On.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),e["\u0275eld"](171,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),e["\u0275eld"](172,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["\u0275eld"](173,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e},An.b,An.a)),e["\u0275did"](174,114688,null,0,Un.a,[e.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),e["\u0275ted"](175,0,[""," ",""])),e["\u0275ppd"](176,1),e["\u0275ppd"](177,1),(l()(),e["\u0275eld"](178,0,null,null,1,"cd-back-button",[],null,null,null,$n.b,$n.a)),e["\u0275did"](179,49152,null,0,Mn.a,[_.Location,Gl.b],null,null)],function(l,n){var u=n.component;l(n,5,0,u.rbdForm),l(n,16,0,u.rbdForm.getValue("parent"));var t=l(n,19,0,u.rbdForm.showError("name",e["\u0275nov"](n,5)));l(n,18,0,"form-group",t),l(n,28,0,"name"),l(n,34,0,u.rbdForm.showError("name",e["\u0275nov"](n,5),"required")),l(n,36,0,u.rbdForm.showError("name",e["\u0275nov"](n,5),"pattern"));var a=l(n,39,0,u.rbdForm.showError("pool",e["\u0275nov"](n,5)));l(n,38,0,"form-group",a),l(n,43,0,"editing"!==u.mode),l(n,46,0,"editing"===u.mode||!u.poolPermission.read),l(n,48,0,"editing"!==u.mode&&u.poolPermission.read),l(n,50,0,u.rbdForm.showError("pool",e["\u0275nov"](n,5),"required")),l(n,57,0,"useDataPool"),l(n,64,0,u.rbdForm.getValue("useDataPool"));var o=l(n,67,0,u.rbdForm.showError("size",e["\u0275nov"](n,5)));l(n,66,0,"form-group",o),l(n,76,0,"size"),l(n,79,0,"GiB"),l(n,82,0,u.rbdForm.showError("size",e["\u0275nov"](n,5),"required")),l(n,84,0,u.rbdForm.showError("size",e["\u0275nov"](n,5),"invalidSizeObject"));var i=l(n,87,0,(e["\u0275nov"](n,5).submitted||u.rbdForm.get("features").dirty)&&u.rbdForm.get("features").invalid);l(n,86,0,"form-group",i),l(n,88,0,"features"),l(n,95,0,u.featuresList),l(n,99,0,!u.advancedEnabled);var r=l(n,108,0,u.rbdForm.showError("obj_size",e["\u0275nov"](n,5)));l(n,107,0,"form-group",r),l(n,115,0,"obj_size"),l(n,120,0,u.objectSizes);var d=l(n,123,0,u.rbdForm.showError("stripingUnit",e["\u0275nov"](n,5)));l(n,122,0,"form-group",d),l(n,128,0,u.rbdForm.getValue("stripingCount")),l(n,133,0,"stripingUnit"),l(n,138,0,null),l(n,139,0,null),l(n,142,0,u.objectSizes),l(n,144,0,u.rbdForm.showError("stripingUnit",e["\u0275nov"](n,5),"required")),l(n,146,0,u.rbdForm.showError("stripingUnit",e["\u0275nov"](n,5),"invalidStripingUnit"));var s=l(n,149,0,u.rbdForm.showError("stripingCount",e["\u0275nov"](n,5)));l(n,148,0,"form-group",s),l(n,154,0,u.rbdForm.getValue("stripingUnit")),l(n,160,0,"stripingCount"),l(n,165,0,u.rbdForm.showError("stripingCount",e["\u0275nov"](n,5),"required")),l(n,167,0,u.rbdForm.showError("stripingCount",e["\u0275nov"](n,5),"min")),l(n,170,0,u.rbdForm,u.initializeConfigData),l(n,174,0,e["\u0275nov"](n,5),"button")},function(l,n){var u=n.component;l(n,3,0,e["\u0275nov"](n,7).ngClassUntouched,e["\u0275nov"](n,7).ngClassTouched,e["\u0275nov"](n,7).ngClassPristine,e["\u0275nov"](n,7).ngClassDirty,e["\u0275nov"](n,7).ngClassValid,e["\u0275nov"](n,7).ngClassInvalid,e["\u0275nov"](n,7).ngClassPending);var t=e["\u0275unv"](n,11,0,l(n,12,0,e["\u0275nov"](n,0),u.action)),a=e["\u0275unv"](n,11,1,l(n,13,0,e["\u0275nov"](n,1),u.resource));l(n,11,0,t,a),l(n,25,0,e["\u0275nov"](n,30).ngClassUntouched,e["\u0275nov"](n,30).ngClassTouched,e["\u0275nov"](n,30).ngClassPristine,e["\u0275nov"](n,30).ngClassDirty,e["\u0275nov"](n,30).ngClassValid,e["\u0275nov"](n,30).ngClassInvalid,e["\u0275nov"](n,30).ngClassPending),l(n,54,0,e["\u0275nov"](n,59).ngClassUntouched,e["\u0275nov"](n,59).ngClassTouched,e["\u0275nov"](n,59).ngClassPristine,e["\u0275nov"](n,59).ngClassDirty,e["\u0275nov"](n,59).ngClassValid,e["\u0275nov"](n,59).ngClassInvalid,e["\u0275nov"](n,59).ngClassPending),l(n,73,0,e["\u0275nov"](n,78).ngClassUntouched,e["\u0275nov"](n,78).ngClassTouched,e["\u0275nov"](n,78).ngClassPristine,e["\u0275nov"](n,78).ngClassDirty,e["\u0275nov"](n,78).ngClassValid,e["\u0275nov"](n,78).ngClassInvalid,e["\u0275nov"](n,78).ngClassPending),l(n,85,0,e["\u0275nov"](n,90).ngClassUntouched,e["\u0275nov"](n,90).ngClassTouched,e["\u0275nov"](n,90).ngClassPristine,e["\u0275nov"](n,90).ngClassDirty,e["\u0275nov"](n,90).ngClassValid,e["\u0275nov"](n,90).ngClassInvalid,e["\u0275nov"](n,90).ngClassPending),l(n,100,0,!u.advancedEnabled),l(n,112,0,e["\u0275nov"](n,117).ngClassUntouched,e["\u0275nov"](n,117).ngClassTouched,e["\u0275nov"](n,117).ngClassPristine,e["\u0275nov"](n,117).ngClassDirty,e["\u0275nov"](n,117).ngClassValid,e["\u0275nov"](n,117).ngClassInvalid,e["\u0275nov"](n,117).ngClassPending),l(n,130,0,e["\u0275nov"](n,135).ngClassUntouched,e["\u0275nov"](n,135).ngClassTouched,e["\u0275nov"](n,135).ngClassPristine,e["\u0275nov"](n,135).ngClassDirty,e["\u0275nov"](n,135).ngClassValid,e["\u0275nov"](n,135).ngClassInvalid,e["\u0275nov"](n,135).ngClassPending),l(n,156,0,e["\u0275nov"](n,162).ngClassUntouched,e["\u0275nov"](n,162).ngClassTouched,e["\u0275nov"](n,162).ngClassPristine,e["\u0275nov"](n,162).ngClassDirty,e["\u0275nov"](n,162).ngClassValid,e["\u0275nov"](n,162).ngClassInvalid,e["\u0275nov"](n,162).ngClassPending);var o=e["\u0275unv"](n,175,0,l(n,176,0,e["\u0275nov"](n,0),u.action)),i=e["\u0275unv"](n,175,1,l(n,177,0,e["\u0275nov"](n,1),u.resource));l(n,175,0,o,i)})}function ku(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-rbd-form",[],null,null,null,yu,Ln)),e["\u0275did"](1,114688,null,0,zn.a,[il.a,dl.a,Bn.a,zl.a,S.a,Wl.a,F.a,V.a,Gl.b,dl.l],null,null)],function(l,n){l(n,1,0)},null)}var Eu=e["\u0275ccf"]("cd-rbd-form",zn.a,ku,{},{},[]),_u=u("JxMD"),xu=u("dgut"),Vu=function(){function l(l){this.router=l}return l.prototype.ngOnInit=function(){this.url=this.router.url},l.prototype.navigateTo=function(l){this.router.navigate([l])},l}(),Nu=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Du(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Nl.b,Nl.a)),e["\u0275did"](1,180224,null,0,fl.d,[fl.e,e.Renderer2,e.ElementRef],null,null),(l()(),e["\u0275eld"](2,0,null,0,1,"tab",[["heading","Overview"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/overview")&&e),e},null,null)),e["\u0275did"](3,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["\u0275eld"](4,0,null,0,1,"tab",[["heading","Targets"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/targets")&&e),e},null,null)),e["\u0275did"](5,212992,null,0,fl.b,[fl.d,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],function(l,n){var u=n.component;l(n,3,0,"Overview","/block/iscsi/overview"===u.url),l(n,5,0,"Targets","/block/iscsi/targets"===u.url)},function(l,n){l(n,0,0,e["\u0275nov"](n,1).clazz),l(n,2,0,e["\u0275nov"](n,3).id,e["\u0275nov"](n,3).active,e["\u0275nov"](n,3).addClass),l(n,4,0,e["\u0275nov"](n,5).id,e["\u0275nov"](n,5).active,e["\u0275nov"](n,5).addClass)})}var Su=u("roDX"),Fu=u("my5R"),Pu=e["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function qu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,3,"span",[["class","label"]],null,null,null,null,null)),e["\u0275did"](1,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](2,{"label-success":0,"label-danger":1}),(l()(),e["\u0275ted"](3,null,["",""]))],function(l,n){var u=l(n,2,0,"up"==n.context.value,"down"==n.context.value);l(n,1,0,"label",u)},function(l,n){l(n,3,0,n.context.value)})}function ju(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,"cd-sparkline",[],null,null,null,_u.b,_u.a)),e["\u0275did"](2,638976,null,0,xu.a,[F.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],function(l,n){l(n,2,0,n.parent.context.value,n.parent.context.row.cdIsBinary)},null)}function Ou(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" n/a "]))],null,null)}function Au(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,ju)),e["\u0275did"](1,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ou)),e["\u0275did"](3,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)},null)}function Uu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,[" "," /s "]))],null,function(l,n){l(n,1,0,n.parent.context.value)})}function $u(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" n/a "]))],null,null)}function Mu(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,Uu)),e["\u0275did"](1,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,$u)),e["\u0275did"](3,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)},null)}function zu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,[" "," "])),e["\u0275ppd"](2,1)],null,function(l,n){var u=e["\u0275unv"](n,1,0,l(n,2,0,e["\u0275nov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,u)})}function Bu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,[" n/a "]))],null,null)}function Lu(l){return e["\u0275vid"](0,[(l()(),e["\u0275and"](16777216,null,null,1,null,zu)),e["\u0275did"](1,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Bu)),e["\u0275did"](3,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)},null)}function Gu(l){return e["\u0275vid"](0,[e["\u0275pid"](0,j.a,[]),e["\u0275qud"](402653184,1,{statusColorTpl:0}),e["\u0275qud"](402653184,2,{iscsiSparklineTpl:0}),e["\u0275qud"](402653184,3,{iscsiPerSecondTpl:0}),e["\u0275qud"](402653184,4,{iscsiRelativeDateTpl:0}),(l()(),e["\u0275eld"](5,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Du,Nu)),e["\u0275did"](6,114688,null,0,Vu,[dl.l],null,null),(l()(),e["\u0275eld"](7,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Gateways"])),(l()(),e["\u0275eld"](9,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],function(l,n,u){var e=!0;return"fetchData"===n&&(e=!1!==l.component.refresh()&&e),e},Fl.b,Fl.a)),e["\u0275did"](10,2867200,null,0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"}),(l()(),e["\u0275eld"](11,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](13,0,null,null,1,"cd-table",[],null,null,null,Fl.b,Fl.a)),e["\u0275did"](14,2867200,null,0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(l()(),e["\u0275and"](0,[[1,2],["statusColorTpl",2]],null,0,null,qu)),(l()(),e["\u0275and"](0,[[2,2],["iscsiSparklineTpl",2]],null,0,null,Au)),(l()(),e["\u0275and"](0,[[3,2],["iscsiPerSecondTpl",2]],null,0,null,Mu)),(l()(),e["\u0275and"](0,[[4,2],["iscsiRelativeDateTpl",2]],null,0,null,Lu))],function(l,n){var u=n.component;l(n,6,0),l(n,10,0,u.gateways,u.gatewaysColumns),l(n,14,0,u.images,u.imagesColumns)},null)}function Ku(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-iscsi",[],null,null,null,Gu,Pu)),e["\u0275did"](1,114688,null,0,Su.a,[Fu.a,q.a,O.a,V.a],null,null)],function(l,n){l(n,1,0)},null)}var Hu=e["\u0275ccf"]("cd-iscsi",Su.a,Ku,{},{},[]),Ju=u("TZo1"),Zu=u("9Kw/"),Wu=u("3ris"),Qu=u("e/kN"),Yu=e["\u0275crt"]({encapsulation:0,styles:[["tabset.tabset>ul{border-bottom:0;float:left;display:block;margin-right:20px;border-right:1px solid #ddd;padding-right:15px}"]],data:{}});function Xu(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Available information:"])),(l()(),e["\u0275eld"](4,0,null,null,1,"pre",[],null,null,null,null,null)),(l()(),e["\u0275ted"](5,null,["",""]))],null,function(l,n){l(n,5,0,n.component.status)})}function le(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,8,"cd-info-panel",[["title","iSCSI Targets not available"]],null,null,null,Ju.b,Ju.a)),e["\u0275did"](1,49152,null,0,Zu.a,[V.a],{title:[0,"title"]},null),(l()(),e["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Please consult the "])),(l()(),e["\u0275eld"](4,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["documentation"])),(l()(),e["\u0275ted"](-1,null,[" on how to configure and enable the iSCSI Targets management functionality."])),(l()(),e["\u0275and"](16777216,null,0,1,null,Xu)),e["\u0275did"](8,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,1,0,"iSCSI Targets not available"),l(n,8,0,u.status)},function(l,n){l(n,4,0,e["\u0275inlineInterpolate"](1,"",n.component.docsUrl,""))})}function ne(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-details",[["cdTableDetail",""]],null,null,null,T.c,T.b)),e["\u0275did"](1,638976,null,0,Wu.a,[V.a,O.a,x.a],{selection:[0,"selection"],settings:[1,"settings"],cephIscsiConfigVersion:[2,"cephIscsiConfigVersion"]},null)],function(l,n){var u=n.component;l(n,1,0,u.selection,u.settings,u.cephIscsiConfigVersion)},null)}function ue(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,10,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","target_iqn"],["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e},Fl.b,Fl.a)),e["\u0275did"](1,2867200,[[1,4],["table",4]],0,Pl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["\u0275eld"](2,0,null,0,6,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["\u0275eld"](3,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,ql.b,ql.a)),e["\u0275did"](4,114688,null,0,jl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["\u0275eld"](5,0,null,null,3,"button",[["class","btn btn-sm btn-default btn-label"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.configureDiscoveryAuth()&&e),e},null,null)),(l()(),e["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-fw fa-key-modern"]],null,null,null,null,null)),(l()(),e["\u0275eld"](7,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Discovery authentication"])),(l()(),e["\u0275and"](16777216,null,2,1,null,ne)),e["\u0275did"](10,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,1,0,u.targets,u.columns,"flex","target_iqn","true","single"),l(n,4,0,u.permissions.iscsi,u.selection,u.tableActions),l(n,10,0,u.selection.hasSingleSelection)},null)}function ee(l){return e["\u0275vid"](0,[e["\u0275qud"](671088640,1,{table:0}),(l()(),e["\u0275eld"](1,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Du,Nu)),e["\u0275did"](2,114688,null,0,Vu,[dl.l],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,le)),e["\u0275did"](4,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ue)),e["\u0275did"](6,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,2,0),l(n,4,0,!1===u.available),l(n,6,0,!0===u.available)},null)}function te(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,"cd-iscsi-target-list",[],null,null,null,ee,Yu)),e["\u0275prd"](131584,null,Al.a,Al.a,[Ul.a,xl.a]),e["\u0275did"](2,245760,null,0,Qu.a,[il.a,V.a,Fu.a,A.a,Al.a,D.a,K.a,xl.a,nl.b,Wl.a,Gl.b],null,null)],function(l,n){l(n,2,0)},null)}var ae=e["\u0275ccf"]("cd-iscsi-target-list",Qu.a,te,{},{},[]),oe=u("D4zM"),ie=u("OcYo"),re=u("SZbH"),de=u("WiuZ"),se=u("wnGv"),ce=function(){function l(l){this.ngControl=l}return l.prototype.onInput=function(l){this.setValue(l)},l.prototype.setValue=function(l){l=Ml.isString(l)?l.trim():l,this.ngControl.control.setValue(l)},l}(),pe=u("gr3l"),fe=e["\u0275crt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function ge(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function me(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["IQN has wrong pattern."]))],null,null)}function ve(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,8,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["An IQN has the following notation 'iqn.$year-$month.$reversedAddress:$definedName'"])),(l()(),e["\u0275eld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309"])),(l()(),e["\u0275eld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["\u0275eld"](7,0,null,null,1,"a",[["href","https://en.wikipedia.org/wiki/ISCSI#Addressing"],["target","_blank"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["More information"]))],null,null)}function he(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This target has modified advanced settings."]))],null,null)}function be(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,5,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),e["\u0275did"](3,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](4,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removePortal(l.context.index,l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function Ce(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["At least "," gateways are required."]))],null,function(l,n){l(n,1,0,n.component.minimum_gateways)})}function Re(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"div",[["class","input-group-addon"]],null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["lun: ",""]))],null,function(l,n){l(n,1,0,n.component.imagesSettings[n.parent.context.$implicit].lun)})}function Ie(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](1,null,["Backstore: ",".\xa0"])),e["\u0275ppd"](2,1)],null,function(l,n){var u=n.component,t=e["\u0275unv"](n,1,0,l(n,2,0,e["\u0275nov"](n.parent.parent.parent,2),u.imagesSettings[n.parent.context.$implicit].backstore));l(n,1,0,t)})}function we(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This image has modified settings."]))],null,null)}function Te(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,15,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,9,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),e["\u0275did"](3,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Re)),e["\u0275did"](5,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](6,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](7,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.imageSettingsModal(l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](8,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-cogs fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](9,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeImage(l.context.index,l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](10,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](11,0,null,null,4,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Ie)),e["\u0275did"](13,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,we)),e["\u0275did"](15,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,5,0,u.api_version>=1),l(n,13,0,u.backstores.length>1),l(n,15,0,u.hasAdvancedSettings(u.imagesSettings[n.context.$implicit][u.imagesSettings[n.context.$implicit].backstore]))},function(l,n){l(n,2,0,n.context.$implicit)})}function ye(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Duplicated LUN numbers."]))],null,null)}function ke(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Duplicated WWN."]))],null,null)}function Ee(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function _e(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function xe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ve(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function Ne(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function De(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function Se(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Fe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function Pe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,87,"div",[["formGroupName","auth"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](3,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](4,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](5,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](6,{"has-error":0}),(l()(),e["\u0275eld"](7,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_user"]],null,null,null,null,null)),(l()(),e["\u0275eld"](8,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["User"])),(l()(),e["\u0275eld"](10,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](11,0,null,null,6,"input",[["autocomplete","off"],["class","form-control"],["formControlName","user"],["id","target_user"],["name","target_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,12)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](12,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](14,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](16,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](17,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ee)),e["\u0275did"](19,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,_e)),e["\u0275did"](21,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](22,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](23,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](24,{"has-error":0}),(l()(),e["\u0275eld"](25,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_password"]],null,null,null,null,null)),(l()(),e["\u0275eld"](26,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Password"])),(l()(),e["\u0275eld"](28,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](29,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](30,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","target_password"],["name","target_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,31)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,31).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,31)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,31)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](31,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](33,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](35,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](36,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](37,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](38,0,null,null,1,"button",[["cdPasswordButton","target_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,39).onClick()&&t),t},null,null)),e["\u0275did"](39,81920,null,0,oe.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](40,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,41).onClick()&&t),t},null,null)),e["\u0275did"](41,81920,null,0,ie.a,[e.ElementRef,e.Renderer2,re.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,xe)),e["\u0275did"](43,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ve)),e["\u0275did"](45,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](46,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](47,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](48,{"has-error":0}),(l()(),e["\u0275eld"](49,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_mutual_user"]],null,null,null,null,null)),(l()(),e["\u0275eld"](50,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual User"])),(l()(),e["\u0275eld"](52,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](53,0,null,null,6,"input",[["autocomplete","off"],["class","form-control"],["formControlName","mutual_user"],["id","target_mutual_user"],["name","target_mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,54)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,54).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,54)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,54)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](54,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](56,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](58,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](59,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ne)),e["\u0275did"](61,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,De)),e["\u0275did"](63,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](64,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](65,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](66,{"has-error":0}),(l()(),e["\u0275eld"](67,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","target_mutual_password"]],null,null,null,null,null)),(l()(),e["\u0275eld"](68,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual Password"])),(l()(),e["\u0275eld"](70,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](71,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](72,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","mutual_password"],["id","target_mutual_password"],["name","target_mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,73)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,73).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,73)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,73)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](73,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](75,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](77,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](78,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](79,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](80,0,null,null,1,"button",[["cdPasswordButton","target_mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,81).onClick()&&t),t},null,null)),e["\u0275did"](81,81920,null,0,oe.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](82,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_mutual_password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,83).onClick()&&t),t},null,null)),e["\u0275did"](83,81920,null,0,ie.a,[e.ElementRef,e.Renderer2,re.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Se)),e["\u0275did"](85,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Fe)),e["\u0275did"](87,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var u=n.component;l(n,1,0,"auth");var t=l(n,6,0,u.targetForm.showError("user",e["\u0275nov"](n.parent,2)));l(n,5,0,"form-group",t),l(n,14,0,"user"),l(n,19,0,u.targetForm.showError("user",e["\u0275nov"](n.parent,2),"required")),l(n,21,0,u.targetForm.showError("user",e["\u0275nov"](n.parent,2),"pattern"));var a=l(n,24,0,u.targetForm.showError("password",e["\u0275nov"](n.parent,2)));l(n,23,0,"form-group",a),l(n,33,0,"password"),l(n,39,0,"target_password"),l(n,41,0,"target_password"),l(n,43,0,u.targetForm.showError("password",e["\u0275nov"](n.parent,2),"required")),l(n,45,0,u.targetForm.showError("password",e["\u0275nov"](n.parent,2),"pattern"));var o=l(n,48,0,u.targetForm.showError("mutual_user",e["\u0275nov"](n.parent,2)));l(n,47,0,"form-group",o),l(n,56,0,"mutual_user"),l(n,61,0,u.targetForm.showError("mutual_user",e["\u0275nov"](n.parent,2),"required")),l(n,63,0,u.targetForm.showError("mutual_user",e["\u0275nov"](n.parent,2),"pattern"));var i=l(n,66,0,u.targetForm.showError("mutual_password",e["\u0275nov"](n.parent,2)));l(n,65,0,"form-group",i),l(n,75,0,"mutual_password"),l(n,81,0,"target_mutual_password"),l(n,83,0,"target_mutual_password"),l(n,85,0,u.targetForm.showError("mutual_password",e["\u0275nov"](n.parent,2),"required")),l(n,87,0,u.targetForm.showError("mutual_password",e["\u0275nov"](n.parent,2),"pattern"))},function(l,n){l(n,0,0,e["\u0275nov"](n,3).ngClassUntouched,e["\u0275nov"](n,3).ngClassTouched,e["\u0275nov"](n,3).ngClassPristine,e["\u0275nov"](n,3).ngClassDirty,e["\u0275nov"](n,3).ngClassValid,e["\u0275nov"](n,3).ngClassInvalid,e["\u0275nov"](n,3).ngClassPending),l(n,11,0,e["\u0275nov"](n,16).ngClassUntouched,e["\u0275nov"](n,16).ngClassTouched,e["\u0275nov"](n,16).ngClassPristine,e["\u0275nov"](n,16).ngClassDirty,e["\u0275nov"](n,16).ngClassValid,e["\u0275nov"](n,16).ngClassInvalid,e["\u0275nov"](n,16).ngClassPending),l(n,30,0,e["\u0275nov"](n,35).ngClassUntouched,e["\u0275nov"](n,35).ngClassTouched,e["\u0275nov"](n,35).ngClassPristine,e["\u0275nov"](n,35).ngClassDirty,e["\u0275nov"](n,35).ngClassValid,e["\u0275nov"](n,35).ngClassInvalid,e["\u0275nov"](n,35).ngClassPending),l(n,53,0,e["\u0275nov"](n,58).ngClassUntouched,e["\u0275nov"](n,58).ngClassTouched,e["\u0275nov"](n,58).ngClassPristine,e["\u0275nov"](n,58).ngClassDirty,e["\u0275nov"](n,58).ngClassValid,e["\u0275nov"](n,58).ngClassInvalid,e["\u0275nov"](n,58).ngClassPending),l(n,72,0,e["\u0275nov"](n,77).ngClassUntouched,e["\u0275nov"](n,77).ngClassTouched,e["\u0275nov"](n,77).ngClassPristine,e["\u0275nov"](n,77).ngClassDirty,e["\u0275nov"](n,77).ngClassValid,e["\u0275nov"](n,77).ngClassInvalid,e["\u0275nov"](n,77).ngClassPending)})}function qe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiator IQN needs to be unique."]))],null,null)}function je(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Oe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["IQN has wrong pattern."]))],null,null)}function Ae(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ue(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function $e(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Me(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function ze(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Be(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Usernames must have a length of 8 to 64 characters and can only contain letters, '.', '@', '-', '_' or ':'."]))],null,null)}function Le(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ge(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Passwords must have a length of 12 to 16 characters and can only contain letters, '@', '-', '_' or '/'."]))],null,null)}function Ke(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,5,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),e["\u0275did"](3,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](4,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiatorImage(l.parent.context.$implicit,l.context.index,l.parent.context.index,l.context.$implicit)&&e),e},null,null)),(l()(),e["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function He(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiator belongs to a group. Images will be configure in the group."]))],null,null)}function Je(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,null,null,de.b,de.a)),e["\u0275did"](3,638976,null,0,se.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["\u0275eld"](4,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add image"]))],function(l,n){var u=n.component,e=n.parent.context.$implicit.getValue("luns");l(n,3,0,"btn btn-default pull-right",e,u.imagesInitiatorSelections[n.parent.context.index],u.messages.initiatorImage)},null)}function Ze(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,129,"div",[["class","panel panel-default"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](3,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](4,0,null,null,5,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiator"])),(l()(),e["\u0275ted"](7,null,[": "," "])),(l()(),e["\u0275eld"](8,0,null,null,1,"button",[["class","close"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiator(l.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-remove fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,119,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275eld"](11,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](12,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](13,{"has-error":0}),(l()(),e["\u0275eld"](14,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","client_iqn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](15,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Client IQN"])),(l()(),e["\u0275eld"](17,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](18,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](19,0,null,null,7,"input",[["cdTrim",""],["class","form-control"],["formControlName","client_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0,a=l.component;return"input"===n&&(t=!1!==e["\u0275nov"](l,20)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,20).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,20)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,20)._compositionEnd(u.target.value)&&t),"input"===n&&(t=!1!==e["\u0275nov"](l,25).onInput(u.target.value)&&t),"blur"===n&&(t=!1!==a.updatedInitiatorSelector()&&t),t},null,null)),e["\u0275did"](20,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](22,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](24,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](25,16384,null,0,ce,[Z.q],null,null),e["\u0275did"](26,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,qe)),e["\u0275did"](28,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,je)),e["\u0275did"](30,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Oe)),e["\u0275did"](32,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](33,0,null,null,84,null,null,null,null,null,null,null)),e["\u0275did"](34,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](36,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](37,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](38,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](39,{"has-error":0}),(l()(),e["\u0275eld"](40,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","user"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["User"])),(l()(),e["\u0275eld"](42,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](43,0,null,null,6,"input",[["autocomplete","off"],["class","form-control"],["formControlName","user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,44)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,44).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,44)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,44)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](44,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](46,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](48,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](49,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ae)),e["\u0275did"](51,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ue)),e["\u0275did"](53,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](54,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](55,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](56,{"has-error":0}),(l()(),e["\u0275eld"](57,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","password"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Password"])),(l()(),e["\u0275eld"](59,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](60,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](61,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,62)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,62).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,62)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,62)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](62,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](64,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](66,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](67,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](68,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](69,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,70).onClick()&&t),t},null,null)),e["\u0275did"](70,81920,null,0,oe.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](71,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,72).onClick()&&t),t},null,null)),e["\u0275did"](72,81920,null,0,ie.a,[e.ElementRef,e.Renderer2,re.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,$e)),e["\u0275did"](74,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Me)),e["\u0275did"](76,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](77,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](78,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](79,{"has-error":0}),(l()(),e["\u0275eld"](80,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","mutual_user"]],null,null,null,null,null)),(l()(),e["\u0275eld"](81,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual User"])),(l()(),e["\u0275eld"](83,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](84,0,null,null,6,"input",[["autocomplete","off"],["class","form-control"],["formControlName","mutual_user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,85)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,85).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,85)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,85)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](85,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](87,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](89,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](90,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,ze)),e["\u0275did"](92,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Be)),e["\u0275did"](94,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](95,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](96,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](97,{"has-error":0}),(l()(),e["\u0275eld"](98,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","mutual_password"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Mutual Password"])),(l()(),e["\u0275eld"](100,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](101,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](102,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","mutual_password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,103)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,103).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,103)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,103)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](103,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](105,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](107,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](108,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](109,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](110,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,111).onClick()&&t),t},null,null)),e["\u0275did"](111,81920,null,0,oe.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["\u0275eld"](112,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["\u0275nov"](l,113).onClick()&&t),t},null,null)),e["\u0275did"](113,81920,null,0,ie.a,[e.ElementRef,e.Renderer2,re.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Le)),e["\u0275did"](115,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ge)),e["\u0275did"](117,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](118,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](119,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](120,{"has-error":0}),(l()(),e["\u0275eld"](121,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","luns"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](123,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Ke)),e["\u0275did"](125,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,He)),e["\u0275did"](127,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Je)),e["\u0275did"](129,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,1,0,n.context.index);var u=l(n,13,0,n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2)));l(n,12,0,"form-group",u),l(n,22,0,"client_iqn");var t=n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2),"notUnique");l(n,28,0,t);var a=n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2),"required");l(n,30,0,a);var o=n.context.$implicit.showError("client_iqn",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,32,0,o),l(n,34,0,"auth");var i=l(n,39,0,n.context.$implicit.showError("user",e["\u0275nov"](n.parent.parent,2)));l(n,38,0,"form-group",i),l(n,46,0,"user");var r=n.context.$implicit.showError("user",e["\u0275nov"](n.parent.parent,2),"required");l(n,51,0,r);var d=n.context.$implicit.showError("user",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,53,0,d);var s=l(n,56,0,n.context.$implicit.showError("password",e["\u0275nov"](n.parent.parent,2)));l(n,55,0,"form-group",s),l(n,64,0,"password"),l(n,70,0,"password"+n.context.index),l(n,72,0,"password"+n.context.index);var c=n.context.$implicit.showError("password",e["\u0275nov"](n.parent.parent,2),"required");l(n,74,0,c);var p=n.context.$implicit.showError("password",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,76,0,p);var f=l(n,79,0,n.context.$implicit.showError("mutual_user",e["\u0275nov"](n.parent.parent,2)));l(n,78,0,"form-group",f),l(n,87,0,"mutual_user");var g=n.context.$implicit.showError("mutual_user",e["\u0275nov"](n.parent.parent,2),"required");l(n,92,0,g);var m=n.context.$implicit.showError("mutual_user",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,94,0,m);var v=l(n,97,0,n.context.$implicit.showError("mutual_password",e["\u0275nov"](n.parent.parent,2)));l(n,96,0,"form-group",v),l(n,105,0,"mutual_password"),l(n,111,0,"mutual_password"+n.context.index),l(n,113,0,"mutual_password"+n.context.index);var h=n.context.$implicit.showError("mutual_password",e["\u0275nov"](n.parent.parent,2),"required");l(n,115,0,h);var b=n.context.$implicit.showError("mutual_password",e["\u0275nov"](n.parent.parent,2),"pattern");l(n,117,0,b);var C=l(n,120,0,n.context.$implicit.showError("luns",e["\u0275nov"](n.parent.parent,2)));l(n,119,0,"form-group",C);var R=n.context.$implicit.getValue("luns");l(n,125,0,R);var I=n.context.$implicit.getValue("cdIsInGroup");l(n,127,0,I);var w=!n.context.$implicit.getValue("cdIsInGroup");l(n,129,0,w)},function(l,n){l(n,0,0,e["\u0275nov"](n,3).ngClassUntouched,e["\u0275nov"](n,3).ngClassTouched,e["\u0275nov"](n,3).ngClassPristine,e["\u0275nov"](n,3).ngClassDirty,e["\u0275nov"](n,3).ngClassValid,e["\u0275nov"](n,3).ngClassInvalid,e["\u0275nov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("client_iqn");l(n,7,0,u),l(n,19,0,e["\u0275nov"](n,24).ngClassUntouched,e["\u0275nov"](n,24).ngClassTouched,e["\u0275nov"](n,24).ngClassPristine,e["\u0275nov"](n,24).ngClassDirty,e["\u0275nov"](n,24).ngClassValid,e["\u0275nov"](n,24).ngClassInvalid,e["\u0275nov"](n,24).ngClassPending),l(n,43,0,"user"+n.context.index,e["\u0275nov"](n,48).ngClassUntouched,e["\u0275nov"](n,48).ngClassTouched,e["\u0275nov"](n,48).ngClassPristine,e["\u0275nov"](n,48).ngClassDirty,e["\u0275nov"](n,48).ngClassValid,e["\u0275nov"](n,48).ngClassInvalid,e["\u0275nov"](n,48).ngClassPending),l(n,61,0,"password"+n.context.index,e["\u0275nov"](n,66).ngClassUntouched,e["\u0275nov"](n,66).ngClassTouched,e["\u0275nov"](n,66).ngClassPristine,e["\u0275nov"](n,66).ngClassDirty,e["\u0275nov"](n,66).ngClassValid,e["\u0275nov"](n,66).ngClassInvalid,e["\u0275nov"](n,66).ngClassPending),l(n,84,0,"mutual_user"+n.context.index,e["\u0275nov"](n,89).ngClassUntouched,e["\u0275nov"](n,89).ngClassTouched,e["\u0275nov"](n,89).ngClassPristine,e["\u0275nov"](n,89).ngClassDirty,e["\u0275nov"](n,89).ngClassValid,e["\u0275nov"](n,89).ngClassInvalid,e["\u0275nov"](n,89).ngClassPending),l(n,102,0,"mutual_password"+n.context.index,e["\u0275nov"](n,107).ngClassUntouched,e["\u0275nov"](n,107).ngClassTouched,e["\u0275nov"](n,107).ngClassPristine,e["\u0275nov"](n,107).ngClassDirty,e["\u0275nov"](n,107).ngClassValid,e["\u0275nov"](n,107).ngClassInvalid,e["\u0275nov"](n,107).ngClassPending)})}function We(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["No items added."]))],null,null)}function Qe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","initiators"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiators"])),(l()(),e["\u0275eld"](3,0,null,null,14,"div",[["class","col-sm-9"],["formArrayName","initiators"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](4,212992,null,0,Z.g,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.g]),e["\u0275did"](6,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ze)),e["\u0275did"](8,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](9,0,null,null,7,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,6,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,We)),e["\u0275did"](12,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](13,0,null,null,3,"button",[["class","btn btn-default pull-right"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(l.component.addInitiator(),e=!1),e},null,null)),(l()(),e["\u0275eld"](14,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](15,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add initiator"])),(l()(),e["\u0275eld"](17,0,null,null,0,"hr",[],null,null,null,null,null))],function(l,n){var u=n.component;l(n,4,0,"initiators"),l(n,8,0,u.initiators.controls),l(n,12,0,0===u.initiators.controls.length)},function(l,n){l(n,3,0,e["\u0275nov"](n,6).ngClassUntouched,e["\u0275nov"](n,6).ngClassTouched,e["\u0275nov"](n,6).ngClassPristine,e["\u0275nov"](n,6).ngClassDirty,e["\u0275nov"](n,6).ngClassValid,e["\u0275nov"](n,6).ngClassInvalid,e["\u0275nov"](n,6).ngClassPending)})}function Ye(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,5,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),e["\u0275did"](3,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](4,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupInitiator(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function Xe(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(l()(),e["\u0275eld"](1,0,null,null,5,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["\u0275eld"](2,0,null,null,1,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),e["\u0275did"](3,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](4,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupDisk(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(l,n){l(n,2,0,n.context.$implicit)})}function lt(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,57,"div",[["class","panel panel-default"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](1,212992,null,0,Z.m,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.m]),e["\u0275did"](3,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](4,0,null,null,5,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Group"])),(l()(),e["\u0275ted"](7,null,[": "," "])),(l()(),e["\u0275eld"](8,0,null,null,1,"button",[["class","close"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.groups.removeAt(l.context.index)&&e),e},null,null)),(l()(),e["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-remove fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275eld"](10,0,null,null,47,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275eld"](11,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](12,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","group_id"]],null,null,null,null,null)),(l()(),e["\u0275eld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Name"])),(l()(),e["\u0275eld"](15,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](16,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](17,0,null,null,6,"input",[["class","form-control"],["formControlName","group_id"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,18)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,18).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,18)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,18)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](18,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](20,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](22,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](23,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](24,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](25,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](26,{"has-error":0}),(l()(),e["\u0275eld"](27,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","members"]],null,null,null,null,null)),(l()(),e["\u0275eld"](28,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Initiators"])),(l()(),e["\u0275eld"](30,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Ye)),e["\u0275did"](32,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](33,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](34,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](35,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onGroupMemberSelection(u)&&e),e},de.b,de.a)),e["\u0275did"](36,638976,null,0,se.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["\u0275eld"](37,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](38,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add initiator"])),(l()(),e["\u0275eld"](40,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](41,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](42,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](43,{"has-error":0}),(l()(),e["\u0275eld"](44,0,null,null,2,"label",[["class","control-label col-sm-3"],["for","disks"]],null,null,null,null,null)),(l()(),e["\u0275eld"](45,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](47,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Xe)),e["\u0275did"](49,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](50,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](51,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](52,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,null,null,de.b,de.a)),e["\u0275did"](53,638976,null,0,se.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["\u0275eld"](54,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](55,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add image"])),(l()(),e["\u0275eld"](57,0,null,null,0,"hr",[],null,null,null,null,null))],function(l,n){var u=n.component;l(n,1,0,n.context.index),l(n,20,0,"group_id");var t=l(n,26,0,n.context.$implicit.showError("members",e["\u0275nov"](n.parent.parent,2)));l(n,25,0,"form-group",t);var a=n.context.$implicit.getValue("members");l(n,32,0,a);var o=n.context.$implicit.getValue("members");l(n,36,0,"btn btn-default pull-right",o,u.groupMembersSelections[n.context.index],u.messages.groupInitiator);var i=l(n,43,0,n.context.$implicit.showError("disks",e["\u0275nov"](n.parent.parent,2)));l(n,42,0,"form-group",i);var r=n.context.$implicit.getValue("disks");l(n,49,0,r);var d=n.context.$implicit.getValue("disks");l(n,53,0,"btn btn-default pull-right",d,u.groupDiskSelections[n.context.index],u.messages.initiatorImage)},function(l,n){l(n,0,0,e["\u0275nov"](n,3).ngClassUntouched,e["\u0275nov"](n,3).ngClassTouched,e["\u0275nov"](n,3).ngClassPristine,e["\u0275nov"](n,3).ngClassDirty,e["\u0275nov"](n,3).ngClassValid,e["\u0275nov"](n,3).ngClassInvalid,e["\u0275nov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("group_id");l(n,7,0,u),l(n,17,0,e["\u0275nov"](n,22).ngClassUntouched,e["\u0275nov"](n,22).ngClassTouched,e["\u0275nov"](n,22).ngClassPristine,e["\u0275nov"](n,22).ngClassDirty,e["\u0275nov"](n,22).ngClassValid,e["\u0275nov"](n,22).ngClassInvalid,e["\u0275nov"](n,22).ngClassPending)})}function nt(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["No items added."]))],null,null)}function ut(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](1,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](2,{"has-error":0}),(l()(),e["\u0275eld"](3,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","initiators"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Groups"])),(l()(),e["\u0275eld"](5,0,null,null,13,"div",[["class","col-sm-9"],["formArrayName","groups"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["\u0275did"](6,212992,null,0,Z.g,[[3,Z.d],[8,null],[8,null]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.g]),e["\u0275did"](8,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,lt)),e["\u0275did"](10,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](11,0,null,null,7,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](12,0,null,null,6,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,nt)),e["\u0275did"](14,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](15,0,null,null,3,"button",[["class","btn btn-default pull-right"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(l.component.addGroup(),e=!1),e},null,null)),(l()(),e["\u0275eld"](16,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](17,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add group"]))],function(l,n){var u=n.component,t=l(n,2,0,u.targetForm.showError("groups",e["\u0275nov"](n.parent,2)));l(n,1,0,"form-group",t),l(n,6,0,"groups"),l(n,10,0,u.groups.controls),l(n,14,0,0===u.groups.controls.length)},function(l,n){l(n,5,0,e["\u0275nov"](n,8).ngClassUntouched,e["\u0275nov"](n,8).ngClassTouched,e["\u0275nov"](n,8).ngClassPristine,e["\u0275nov"](n,8).ngClassDirty,e["\u0275nov"](n,8).ngClassValid,e["\u0275nov"](n,8).ngClassInvalid,e["\u0275nov"](n,8).ngClassPending)})}function et(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,115,"form",[["class","form-horizontal"],["name","targetForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["\u0275nov"](l,2).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["\u0275nov"](l,2).onReset()&&t),t},null,null)),e["\u0275did"](1,16384,null,0,Z.D,[],null,null),e["\u0275did"](2,540672,[["formDir",4]],0,Z.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["\u0275prd"](2048,null,Z.d,null,[Z.l]),e["\u0275did"](4,16384,null,0,Z.s,[[4,Z.d]],null,null),(l()(),e["\u0275eld"](5,0,null,null,110,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),e["\u0275eld"](6,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),e["\u0275eld"](7,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),e["\u0275ted"](8,null,[""," ",""])),e["\u0275ppd"](9,1),e["\u0275ppd"](10,1),(l()(),e["\u0275eld"](11,0,null,null,95,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),e["\u0275eld"](12,0,null,null,28,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](13,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](14,{"has-error":0}),(l()(),e["\u0275eld"](15,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","target_iqn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](16,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Target IQN"])),(l()(),e["\u0275eld"](18,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](19,0,null,null,21,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](20,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](21,0,null,null,7,"input",[["cdTrim",""],["class","form-control"],["formControlName","target_iqn"],["id","target_iqn"],["name","target_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,22)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,22).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,22)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,22)._compositionEnd(u.target.value)&&t),"input"===n&&(t=!1!==e["\u0275nov"](l,27).onInput(u.target.value)&&t),t},null,null)),e["\u0275did"](22,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](24,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](26,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](27,16384,null,0,ce,[Z.q],null,null),e["\u0275did"](28,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](29,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),e["\u0275eld"](30,0,null,null,1,"button",[["class","btn btn-default"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.targetSettingsModal()&&e),e},null,null)),(l()(),e["\u0275eld"](31,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-cogs fa-fw"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,ge)),e["\u0275did"](33,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,me)),e["\u0275did"](35,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ve)),e["\u0275did"](37,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,he)),e["\u0275did"](39,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](40,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](41,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](42,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](43,{"has-error":0}),(l()(),e["\u0275eld"](44,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","portals"]],null,null,null,null,null)),(l()(),e["\u0275eld"](45,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Portals"])),(l()(),e["\u0275eld"](47,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),e["\u0275eld"](48,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,be)),e["\u0275did"](50,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Ce)),e["\u0275did"](52,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](53,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](54,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](55,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onPortalSelection(u)&&e),e},de.b,de.a)),e["\u0275did"](56,638976,null,0,se.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["\u0275eld"](57,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](58,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add portal"])),(l()(),e["\u0275eld"](60,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](61,0,null,null,26,"div",[["class","form-group"]],null,null,null,null,null)),e["\u0275did"](62,278528,null,0,_.NgClass,[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["\u0275pod"](63,{"has-error":0}),(l()(),e["\u0275eld"](64,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","disks"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Images"])),(l()(),e["\u0275eld"](66,0,null,null,21,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Te)),e["\u0275did"](68,278528,null,0,_.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["\u0275eld"](69,0,null,null,6,"input",[["class","form-control"],["formControlName","disks"],["id","disks"],["name","disks"],["type","hidden"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["\u0275nov"](l,70)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,70).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["\u0275nov"](l,70)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["\u0275nov"](l,70)._compositionEnd(u.target.value)&&t),t},null,null)),e["\u0275did"](70,16384,null,0,Z.e,[e.Renderer2,e.ElementRef,[2,Z.b]],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.e]),e["\u0275did"](72,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](74,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](75,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275and"](16777216,null,null,1,null,ye)),e["\u0275did"](77,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ke)),e["\u0275did"](79,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](80,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["\u0275eld"](81,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["\u0275eld"](82,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onImageSelection(u)&&e),e},de.b,de.a)),e["\u0275did"](83,638976,null,0,se.a,[V.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["\u0275eld"](84,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(l()(),e["\u0275eld"](85,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["Add image"])),(l()(),e["\u0275eld"](87,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275eld"](88,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),e["\u0275eld"](89,0,null,null,11,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),e["\u0275eld"](90,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),e["\u0275eld"](91,0,null,null,6,"input",[["formControlName","acl_enabled"],["id","acl_enabled"],["name","acl_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["\u0275nov"](l,92).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["\u0275nov"](l,92).onTouched()&&t),t},null,null)),e["\u0275did"](92,16384,null,0,Z.c,[e.Renderer2,e.ElementRef],null,null),e["\u0275prd"](1024,null,Z.p,function(l){return[l]},[Z.c]),e["\u0275did"](94,671744,null,0,Z.j,[[3,Z.d],[8,null],[8,null],[6,Z.p],[2,Z.F]],{name:[0,"name"]},null),e["\u0275prd"](2048,null,Z.q,null,[Z.j]),e["\u0275did"](96,16384,null,0,Z.r,[[4,Z.q]],null,null),e["\u0275did"](97,4210688,null,0,Vn.a,[[2,Nn.a],il.a,e.ElementRef],null,null),(l()(),e["\u0275eld"](98,0,null,null,1,"label",[["for","acl_enabled"]],null,null,null,null,null)),(l()(),e["\u0275ted"](-1,null,["ACL authentication"])),(l()(),e["\u0275eld"](100,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,Pe)),e["\u0275did"](102,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,Qe)),e["\u0275did"](104,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275and"](16777216,null,null,1,null,ut)),e["\u0275did"](106,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["\u0275eld"](107,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),e["\u0275eld"](108,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["\u0275eld"](109,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e},An.b,An.a)),e["\u0275did"](110,114688,null,0,Un.a,[e.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),e["\u0275ted"](111,0,[""," ",""])),e["\u0275ppd"](112,1),e["\u0275ppd"](113,1),(l()(),e["\u0275eld"](114,0,null,null,1,"cd-back-button",[],null,null,null,$n.b,$n.a)),e["\u0275did"](115,49152,null,0,Mn.a,[_.Location,Gl.b],null,null)],function(l,n){var u=n.component;l(n,2,0,u.targetForm);var t=l(n,14,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2)));l(n,13,0,"form-group",t),l(n,24,0,"target_iqn"),l(n,33,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2),"required")),l(n,35,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2),"pattern")),l(n,37,0,u.targetForm.showError("target_iqn",e["\u0275nov"](n,2),"iqn")),l(n,39,0,u.hasAdvancedSettings(u.targetForm.getValue("target_controls")));var a=l(n,43,0,u.targetForm.showError("portals",e["\u0275nov"](n,2)));l(n,42,0,"form-group",a),l(n,50,0,u.portals.value),l(n,52,0,u.targetForm.showError("portals",e["\u0275nov"](n,2),"minGateways")),l(n,56,0,"btn btn-default pull-right",u.portals.value,u.portalsSelections,u.messages.portals);var o=l(n,63,0,u.targetForm.showError("disks",e["\u0275nov"](n,2)));l(n,62,0,"form-group",o),l(n,68,0,u.targetForm.getValue("disks")),l(n,72,0,"disks"),l(n,77,0,u.targetForm.showError("disks",e["\u0275nov"](n,2),"dupLunId")),l(n,79,0,u.targetForm.showError("disks",e["\u0275nov"](n,2),"dupWwn")),l(n,83,0,"btn btn-default pull-right",u.disks.value,u.imagesSelections,u.messages.images),l(n,94,0,"acl_enabled"),l(n,102,0,u.cephIscsiConfigVersion>10&&!u.targetForm.getValue("acl_enabled")),l(n,104,0,u.targetForm.getValue("acl_enabled")),l(n,106,0,u.targetForm.getValue("acl_enabled")),l(n,110,0,e["\u0275nov"](n,2),"button")},function(l,n){var u=n.component;l(n,0,0,e["\u0275nov"](n,4).ngClassUntouched,e["\u0275nov"](n,4).ngClassTouched,e["\u0275nov"](n,4).ngClassPristine,e["\u0275nov"](n,4).ngClassDirty,e["\u0275nov"](n,4).ngClassValid,e["\u0275nov"](n,4).ngClassInvalid,e["\u0275nov"](n,4).ngClassPending);var t=e["\u0275unv"](n,8,0,l(n,9,0,e["\u0275nov"](n.parent,0),u.action)),a=e["\u0275unv"](n,8,1,l(n,10,0,e["\u0275nov"](n.parent,1),u.resource));l(n,8,0,t,a),l(n,21,0,e["\u0275nov"](n,26).ngClassUntouched,e["\u0275nov"](n,26).ngClassTouched,e["\u0275nov"](n,26).ngClassPristine,e["\u0275nov"](n,26).ngClassDirty,e["\u0275nov"](n,26).ngClassValid,e["\u0275nov"](n,26).ngClassInvalid,e["\u0275nov"](n,26).ngClassPending),l(n,69,0,e["\u0275nov"](n,74).ngClassUntouched,e["\u0275nov"](n,74).ngClassTouched,e["\u0275nov"](n,74).ngClassPristine,e["\u0275nov"](n,74).ngClassDirty,e["\u0275nov"](n,74).ngClassValid,e["\u0275nov"](n,74).ngClassInvalid,e["\u0275nov"](n,74).ngClassPending),l(n,91,0,e["\u0275nov"](n,96).ngClassUntouched,e["\u0275nov"](n,96).ngClassTouched,e["\u0275nov"](n,96).ngClassPristine,e["\u0275nov"](n,96).ngClassDirty,e["\u0275nov"](n,96).ngClassValid,e["\u0275nov"](n,96).ngClassInvalid,e["\u0275nov"](n,96).ngClassPending);var o=e["\u0275unv"](n,111,0,l(n,112,0,e["\u0275nov"](n.parent,0),u.action)),i=e["\u0275unv"](n,111,1,l(n,113,0,e["\u0275nov"](n.parent,1),u.resource));l(n,111,0,o,i)})}function tt(l){return e["\u0275vid"](0,[e["\u0275pid"](0,_.TitleCasePipe,[]),e["\u0275pid"](0,H.a,[]),e["\u0275pid"](0,O.a,[]),(l()(),e["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),e["\u0275and"](16777216,null,null,1,null,et)),e["\u0275did"](5,16384,null,0,_.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,5,0,n.component.targetForm)},null)}function at(l){return e["\u0275vid"](0,[(l()(),e["\u0275eld"](0,0,null,null,1,"cd-iscsi-target-form",[],null,null,null,tt,fe)),e["\u0275did"](1,114688,null,0,pe.a,[Fu.a,nl.b,zl.a,dl.l,dl.a,V.a,Wl.a,Gl.b],null,null)],function(l,n){l(n,1,0)},null)}var ot=e["\u0275ccf"]("cd-iscsi-target-form",pe.a,at,{},{},[]),it=u("Vhfg"),rt=u("cxJu");u.d(n,"BlockModuleNgFactory",function(){return dt}),u.d(n,"RoutedBlockModuleNgFactory",function(){return st});var dt=e["\u0275cmf"](t.a,[],function(l){return e["\u0275mod"]([e["\u0275mpd"](512,e.ComponentFactoryResolver,e["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,o.a,i.a,r.a,r.b,d.a,s.a,c.a,p.a,f.a,g.a,m.a,v.a,h.a,h.c,h.b,b.a,C.a,R.a,I.a,w.a,T.a,y.a,k.a,E.a]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["\u0275mpd"](4608,_.NgLocalization,_.NgLocaleLocalization,[e.LOCALE_ID,[2,_["\u0275angular_packages_common_common_a"]]]),e["\u0275mpd"](4608,x.a,x.a,[V.a]),e["\u0275mpd"](4608,_.DatePipe,_.DatePipe,[e.LOCALE_ID]),e["\u0275mpd"](4608,N.a,N.a,[]),e["\u0275mpd"](4608,D.a,D.a,[]),e["\u0275mpd"](4608,S.a,S.a,[]),e["\u0275mpd"](4608,F.a,F.a,[S.a]),e["\u0275mpd"](4608,P.a,P.a,[S.a]),e["\u0275mpd"](4608,q.a,q.a,[S.a]),e["\u0275mpd"](4608,j.a,j.a,[]),e["\u0275mpd"](4608,O.a,O.a,[]),e["\u0275mpd"](4608,A.a,A.a,[]),e["\u0275mpd"](4608,U.a,U.a,[]),e["\u0275mpd"](4608,$.a,$.a,[_.DatePipe]),e["\u0275mpd"](4608,M.a,M.a,[]),e["\u0275mpd"](4608,z.a,z.a,[]),e["\u0275mpd"](4608,B.a,B.a,[]),e["\u0275mpd"](4608,L.a,L.a,[]),e["\u0275mpd"](4608,G.a,G.a,[]),e["\u0275mpd"](4608,K.a,K.a,[V.a]),e["\u0275mpd"](4608,H.a,H.a,[]),e["\u0275mpd"](4608,J.a,J.a,[]),e["\u0275mpd"](4608,Z.E,Z.E,[]),e["\u0275mpd"](4608,Z.h,Z.h,[]),e["\u0275mpd"](4608,W.b,W.b,[]),e["\u0275mpd"](4608,Q.a,Q.a,[]),e["\u0275mpd"](4608,Y.a,Y.a,[e.RendererFactory2,e.PLATFORM_ID]),e["\u0275mpd"](4608,X.a,X.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Y.a,e.ApplicationRef]),e["\u0275mpd"](4608,ll.a,ll.a,[]),e["\u0275mpd"](4608,nl.b,nl.b,[e.RendererFactory2,X.a]),e["\u0275mpd"](4608,ul.ScrollbarHelper,ul.ScrollbarHelper,[el.DOCUMENT]),e["\u0275mpd"](4608,tl.DimensionsHelper,tl.DimensionsHelper,[]),e["\u0275mpd"](4608,al.ColumnChangesService,al.ColumnChangesService,[]),e["\u0275mpd"](4608,ol.f,ol.f,[]),e["\u0275mpd"](4608,il.a,il.a,[]),e["\u0275mpd"](4608,rl.a,rl.a,[dl.l,il.a]),e["\u0275mpd"](4608,sl.NodeDraggableService,sl.NodeDraggableService,[]),e["\u0275mpd"](4608,cl.NodeMenuService,cl.NodeMenuService,[]),e["\u0275mpd"](4608,pl.TreeService,pl.TreeService,[sl.NodeDraggableService]),e["\u0275mpd"](4608,fl.e,fl.e,[]),e["\u0275mpd"](4608,gl.c,gl.c,[]),e["\u0275mpd"](4608,ml.r,ml.r,[]),e["\u0275mpd"](4608,ml.t,ml.t,[]),e["\u0275mpd"](4608,ml.a,ml.a,[]),e["\u0275mpd"](4608,ml.h,ml.h,[]),e["\u0275mpd"](4608,ml.d,ml.d,[]),e["\u0275mpd"](4608,ml.j,ml.j,[]),e["\u0275mpd"](4608,ml.s,ml.s,[ml.t,ml.j]),e["\u0275mpd"](1073742336,_.CommonModule,_.CommonModule,[]),e["\u0275mpd"](1073742336,fl.c,fl.c,[]),e["\u0275mpd"](1073742336,vl.a,vl.a,[]),e["\u0275mpd"](1073742336,Z.B,Z.B,[]),e["\u0275mpd"](1073742336,Z.n,Z.n,[]),e["\u0275mpd"](1073742336,Z.x,Z.x,[]),e["\u0275mpd"](1073742336,W.c,W.c,[]),e["\u0275mpd"](1073742336,Q.d,Q.d,[]),e["\u0275mpd"](1073742336,ll.d,ll.d,[]),e["\u0275mpd"](1073742336,hl.ChartsModule,hl.ChartsModule,[]),e["\u0275mpd"](1073742336,nl.e,nl.e,[]),e["\u0275mpd"](1073742336,bl.a,bl.a,[]),e["\u0275mpd"](1073742336,ol.e,ol.e,[]),e["\u0275mpd"](1073742336,Cl.a,Cl.a,[]),e["\u0275mpd"](1073742336,Rl.NgxDatatableModule,Rl.NgxDatatableModule,[]),e["\u0275mpd"](1073742336,dl.p,dl.p,[[2,dl.v],[2,dl.l]]),e["\u0275mpd"](1073742336,Il.a,Il.a,[]),e["\u0275mpd"](1073742336,wl.a,wl.a,[]),e["\u0275mpd"](1073742336,Tl.a,Tl.a,[]),e["\u0275mpd"](1073742336,gl.d,gl.d,[]),e["\u0275mpd"](1073742336,yl.TreeModule,yl.TreeModule,[]),e["\u0275mpd"](1073742336,kl.a,kl.a,[]),e["\u0275mpd"](1073742336,ml.g,ml.g,[]),e["\u0275mpd"](1073742336,t.a,t.a,[]),e["\u0275mpd"](256,e.LOCALE_ID,"en-US",[]),e["\u0275mpd"](256,ol.a,{autoClose:!0,insideClick:!1},[]),e["\u0275mpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}),st=e["\u0275cmf"](t.b,[],function(l){return e["\u0275mod"]([e["\u0275mpd"](512,e.ComponentFactoryResolver,e["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,o.a,i.a,r.a,r.b,d.a,s.a,c.a,p.a,f.a,g.a,m.a,v.a,h.a,h.c,h.b,b.a,C.a,R.a,I.a,w.a,T.a,y.a,k.a,E.a,xn,Eu,Hu,ae,ot]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["\u0275mpd"](4608,_.NgLocalization,_.NgLocaleLocalization,[e.LOCALE_ID,[2,_["\u0275angular_packages_common_common_a"]]]),e["\u0275mpd"](4608,x.a,x.a,[V.a]),e["\u0275mpd"](4608,_.DatePipe,_.DatePipe,[e.LOCALE_ID]),e["\u0275mpd"](4608,N.a,N.a,[]),e["\u0275mpd"](4608,D.a,D.a,[]),e["\u0275mpd"](4608,S.a,S.a,[]),e["\u0275mpd"](4608,F.a,F.a,[S.a]),e["\u0275mpd"](4608,P.a,P.a,[S.a]),e["\u0275mpd"](4608,q.a,q.a,[S.a]),e["\u0275mpd"](4608,j.a,j.a,[]),e["\u0275mpd"](4608,O.a,O.a,[]),e["\u0275mpd"](4608,A.a,A.a,[]),e["\u0275mpd"](4608,U.a,U.a,[]),e["\u0275mpd"](4608,$.a,$.a,[_.DatePipe]),e["\u0275mpd"](4608,M.a,M.a,[]),e["\u0275mpd"](4608,z.a,z.a,[]),e["\u0275mpd"](4608,B.a,B.a,[]),e["\u0275mpd"](4608,L.a,L.a,[]),e["\u0275mpd"](4608,G.a,G.a,[]),e["\u0275mpd"](4608,K.a,K.a,[V.a]),e["\u0275mpd"](4608,H.a,H.a,[]),e["\u0275mpd"](4608,J.a,J.a,[]),e["\u0275mpd"](4608,Z.E,Z.E,[]),e["\u0275mpd"](4608,Z.h,Z.h,[]),e["\u0275mpd"](4608,W.b,W.b,[]),e["\u0275mpd"](4608,Q.a,Q.a,[]),e["\u0275mpd"](4608,Y.a,Y.a,[e.RendererFactory2,e.PLATFORM_ID]),e["\u0275mpd"](4608,X.a,X.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Y.a,e.ApplicationRef]),e["\u0275mpd"](4608,ll.a,ll.a,[]),e["\u0275mpd"](4608,nl.b,nl.b,[e.RendererFactory2,X.a]),e["\u0275mpd"](4608,ul.ScrollbarHelper,ul.ScrollbarHelper,[el.DOCUMENT]),e["\u0275mpd"](4608,tl.DimensionsHelper,tl.DimensionsHelper,[]),e["\u0275mpd"](4608,al.ColumnChangesService,al.ColumnChangesService,[]),e["\u0275mpd"](4608,ol.f,ol.f,[]),e["\u0275mpd"](4608,il.a,il.a,[]),e["\u0275mpd"](4608,rl.a,rl.a,[dl.l,il.a]),e["\u0275mpd"](4608,sl.NodeDraggableService,sl.NodeDraggableService,[]),e["\u0275mpd"](4608,cl.NodeMenuService,cl.NodeMenuService,[]),e["\u0275mpd"](4608,pl.TreeService,pl.TreeService,[sl.NodeDraggableService]),e["\u0275mpd"](4608,fl.e,fl.e,[]),e["\u0275mpd"](4608,gl.c,gl.c,[]),e["\u0275mpd"](4608,ml.r,ml.r,[]),e["\u0275mpd"](4608,ml.t,ml.t,[]),e["\u0275mpd"](4608,ml.a,ml.a,[]),e["\u0275mpd"](4608,ml.h,ml.h,[]),e["\u0275mpd"](4608,ml.d,ml.d,[]),e["\u0275mpd"](4608,ml.j,ml.j,[]),e["\u0275mpd"](4608,ml.s,ml.s,[ml.t,ml.j]),e["\u0275mpd"](1073742336,_.CommonModule,_.CommonModule,[]),e["\u0275mpd"](1073742336,fl.c,fl.c,[]),e["\u0275mpd"](1073742336,vl.a,vl.a,[]),e["\u0275mpd"](1073742336,Z.B,Z.B,[]),e["\u0275mpd"](1073742336,Z.n,Z.n,[]),e["\u0275mpd"](1073742336,Z.x,Z.x,[]),e["\u0275mpd"](1073742336,W.c,W.c,[]),e["\u0275mpd"](1073742336,Q.d,Q.d,[]),e["\u0275mpd"](1073742336,ll.d,ll.d,[]),e["\u0275mpd"](1073742336,hl.ChartsModule,hl.ChartsModule,[]),e["\u0275mpd"](1073742336,nl.e,nl.e,[]),e["\u0275mpd"](1073742336,bl.a,bl.a,[]),e["\u0275mpd"](1073742336,ol.e,ol.e,[]),e["\u0275mpd"](1073742336,Cl.a,Cl.a,[]),e["\u0275mpd"](1073742336,Rl.NgxDatatableModule,Rl.NgxDatatableModule,[]),e["\u0275mpd"](1073742336,dl.p,dl.p,[[2,dl.v],[2,dl.l]]),e["\u0275mpd"](1073742336,Il.a,Il.a,[]),e["\u0275mpd"](1073742336,wl.a,wl.a,[]),e["\u0275mpd"](1073742336,Tl.a,Tl.a,[]),e["\u0275mpd"](1073742336,gl.d,gl.d,[]),e["\u0275mpd"](1073742336,yl.TreeModule,yl.TreeModule,[]),e["\u0275mpd"](1073742336,kl.a,kl.a,[]),e["\u0275mpd"](1073742336,ml.g,ml.g,[]),e["\u0275mpd"](1073742336,t.a,t.a,[]),e["\u0275mpd"](1073742336,t.b,t.b,[]),e["\u0275mpd"](256,e.LOCALE_ID,"en-US",[]),e["\u0275mpd"](256,ol.a,{autoClose:!0,insideClick:!1},[]),e["\u0275mpd"](1024,dl.j,function(){return[[{path:"",redirectTo:"rbd",pathMatch:"full"},{path:"rbd",canActivate:[it.a],data:t.c,children:[{path:"",component:Tn.a},{path:"create",component:zn.a,data:t.d},{path:"edit/:pool/:name",component:zn.a,data:t.g},{path:"clone/:pool/:name/:snap",component:zn.a,data:t.h},{path:"copy/:pool/:name",component:zn.a,data:t.i},{path:"copy/:pool/:name/:snap",component:zn.a,data:t.j}]},{path:"mirroring",component:rt.a,canActivate:[it.a],data:t.k},{path:"iscsi",canActivate:[it.a],data:t.l,children:[{path:"",redirectTo:"overview",pathMatch:"full"},{path:"overview",component:Su.a,data:t.m},{path:"targets",data:t.n,children:[{path:"",component:Qu.a},{path:"create",component:pe.a,data:t.e},{path:"edit/:target_iqn",component:pe.a,data:t.f}]}]}]]},[]),e["\u0275mpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/8.6c97130806c828c3c176.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/8.6c97130806c828c3c176.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/8.6c97130806c828c3c176.js 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/8.6c97130806c828c3c176.js 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{nOaW:function(l,n,e){"use strict";e.r(n);var u=e("CcnG"),t=e("sne2"),o=e("gIcY"),i=e("LvDl"),a=e("VNr4"),r=e("t/Na"),s=e("Jm/i"),d=e("pL04"),c=function(){function l(l,n){this.http=l,this.i18n=n,this.apiPath="api/erasure_code_profile",this.formTooltips={k:this.i18n("Each object is split in data-chunks parts, each stored on a different OSD."),m:this.i18n("Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data."),plugins:{jerasure:{description:this.i18n("The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools."),technique:this.i18n("The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2."),packetSize:this.i18n("The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.")},lrc:{description:this.i18n("With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven."),l:this.i18n("Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set."),crushLocality:this.i18n("The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.")},isa:{description:this.i18n("The isa plugin encapsulates the ISA library. It only runs on Intel processors."),technique:this.i18n("The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.")},shec:{description:this.i18n("The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes."),c:this.i18n("The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.")}},crushRoot:this.i18n("The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default."),crushFailureDomain:this.i18n("Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host."),crushDeviceClass:this.i18n("Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map."),directory:this.i18n("Set the directory name from which the erasure code plugin is loaded.")}}return l.prototype.list=function(){return this.http.get(this.apiPath)},l.prototype.create=function(l){return this.http.post(this.apiPath,l,{observe:"response"})},l.prototype.update=function(l){return this.http.put(this.apiPath+"/"+l.name,l,{observe:"response"})},l.prototype.delete=function(l){return this.http.delete(this.apiPath+"/"+l,{observe:"response"})},l.prototype.get=function(l){return this.http.get(this.apiPath+"/"+l)},l.prototype.getInfo=function(){return this.http.get(this.apiPath+"/_info")},l.ngInjectableDef=u.defineInjectable({factory:function(){return new l(u.inject(r.c),u.inject(s.a))},token:l,providedIn:d.a}),l}(),p=e("Ekvf"),f=e("0+/T"),m=e("QFaf"),g=e("1Ni5"),h=e("PhyI"),v=e("kvvV"),b=e("Fgil"),C=e("aexS"),R=e("aXbf"),y=e("kn/O"),I=e("2EZI"),E=function(){return function(){}}(),V=function(){function l(l,n,e,t,o,i){this.formBuilder=l,this.bsModalRef=n,this.taskWrapper=e,this.ecpService=t,this.i18n=o,this.actionLabels=i,this.submitAction=new u.EventEmitter,this.requiredControls=[],this.devices=[],this.tooltips=this.ecpService.formTooltips,this.PLUGIN={LRC:"lrc",SHEC:"shec",JERASURE:"jerasure",ISA:"isa"},this.plugin=this.PLUGIN.JERASURE,this.action=this.actionLabels.CREATE,this.resource=this.i18n("EC Profile"),this.createForm(),this.setJerasureDefaults()}return l.prototype.createForm=function(){var l=this;this.form=this.formBuilder.group({name:[null,[o.A.required,o.A.pattern("[A-Za-z0-9_-]+"),g.a.custom("uniqueName",function(n){return l.names&&-1!==l.names.indexOf(n)})]],plugin:[this.PLUGIN.JERASURE,[o.A.required]],k:[1],m:[1],crushFailureDomain:["host"],crushRoot:["default"],crushDeviceClass:[""],directory:[""],technique:["reed_sol_van"],packetSize:[2048,[o.A.min(1)]],l:[1,[o.A.required,o.A.min(1)]],crushLocality:[""],c:[1,[o.A.required,o.A.min(1)]]}),this.form.get("plugin").valueChanges.subscribe(function(n){return l.onPluginChange(n)})},l.prototype.onPluginChange=function(l){this.plugin=l,l===this.PLUGIN.JERASURE?this.setJerasureDefaults():l===this.PLUGIN.LRC?this.setLrcDefaults():l===this.PLUGIN.ISA?this.setIsaDefaults():l===this.PLUGIN.SHEC&&this.setShecDefaults()},l.prototype.setNumberValidators=function(l,n){var e=[o.A.min(1)];n&&e.push(o.A.required),this.form.get(l).setValidators(e)},l.prototype.setKMValidators=function(l){var n=this;["k","m"].forEach(function(e){return n.setNumberValidators(e,l)})},l.prototype.setJerasureDefaults=function(){this.requiredControls=["k","m"],this.setDefaults({k:4,m:2}),this.setKMValidators(!0),this.techniques=["reed_sol_van","reed_sol_r6_op","cauchy_orig","cauchy_good","liberation","blaum_roth","liber8tion"]},l.prototype.setLrcDefaults=function(){this.requiredControls=["k","m","l"],this.setKMValidators(!0),this.setNumberValidators("l",!0),this.setDefaults({k:4,m:2,l:3})},l.prototype.setIsaDefaults=function(){this.requiredControls=[],this.setKMValidators(!1),this.setDefaults({k:7,m:3}),this.techniques=["reed_sol_van","cauchy"]},l.prototype.setShecDefaults=function(){this.requiredControls=[],this.setKMValidators(!1),this.setDefaults({k:4,m:3,c:2})},l.prototype.setDefaults=function(l){var n=this;Object.keys(l).forEach(function(e){n.form.get(e).pristine&&n.form.silentSet(e,l[e])})},l.prototype.ngOnInit=function(){var l=this;this.ecpService.getInfo().subscribe(function(n){var e=n.plugins,u=n.names,t=n.directory,o=n.devices;l.failureDomains=n.failure_domains,l.plugins=e,l.names=u,l.devices=o,l.form.silentSet("directory",t)})},l.prototype.createJson=function(){var l=this,n={technique:[this.PLUGIN.ISA,this.PLUGIN.JERASURE],packetSize:[this.PLUGIN.JERASURE],l:[this.PLUGIN.LRC],crushLocality:[this.PLUGIN.LRC],c:[this.PLUGIN.SHEC]},e=new E,u=this.form.getValue("plugin");return Object.keys(this.form.controls).filter(function(e){var t=n[e],o=l.form.get(e);return(t&&t.includes(u)||!t)&&(o.dirty||l.requiredControls.includes(e))&&l.form.getValue(e)}).forEach(function(n){l.extendJson(n,e)}),e},l.prototype.extendJson=function(l,n){n[{crushFailureDomain:"crush-failure-domain",crushRoot:"crush-root",crushDeviceClass:"crush-device-class",packetSize:"packetsize",crushLocality:"crush-locality"}[l]||l]=this.form.getValue(l)},l.prototype.onSubmit=function(){var l=this;if(this.form.invalid)this.form.setErrors({cdSubmitButton:!0});else{var n=this.createJson();this.taskWrapper.wrapTaskAroundCall({task:new v.a("ecp/create",{name:n.name}),call:this.ecpService.create(n)}).subscribe(void 0,function(){l.form.setErrors({cdSubmitButton:!0})},function(){l.bsModalRef.hide(),l.submitAction.emit(n)})}},l}(),T=e("DNAf"),w=e("a96k"),S=function(){return function(l){this.erasureInfo=!1,this.crushInfo=!1,this.pgs=1,this.poolTypes=["erasure","replicated"],this.applications={selected:[],available:[new w.a(!1,"cephfs",""),new w.a(!1,"rbd",""),new w.a(!1,"rgw","")],validators:[o.A.pattern("[A-Za-z0-9_]+"),o.A.maxLength(128)],messages:new T.a({empty:l("No applications added"),selectionLimit:{text:l("Applications limit reached"),tooltip:l("A pool can only have up to four applications definitions.")},customValidations:{pattern:l("Allowed characters '_a-zA-Z0-9'"),maxlength:l("Maximum length is 128 characters")},filter:l("Filter or add applications"),add:l("Add application")},l)}}}(),N=function(){function l(l,n,e,o,i,a,r,s,d,c,p,f){this.dimlessBinaryPipe=l,this.route=n,this.router=e,this.modalService=o,this.poolService=i,this.authStorageService=a,this.formatter=r,this.bsModalService=s,this.taskWrapper=d,this.ecpService=c,this.i18n=p,this.actionLabels=f,this.editing=!1,this.data=new S(this.i18n),this.externalPgChange=!1,this.current={rules:[]},this.initializeConfigData=new u.EventEmitter,this.currentConfigurationValues={},this.editing=this.router.url.startsWith("/pool/"+t.e.EDIT),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("pool"),this.authenticate(),this.createForm()}return l.prototype.authenticate=function(){this.permission=this.authStorageService.getPermissions().pool,(!this.permission.read||!this.permission.update&&this.editing||!this.permission.create&&!this.editing)&&this.router.navigate(["/404"])},l.prototype.createForm=function(){var l=this,n=new m.a({mode:new o.i("none"),algorithm:new o.i(""),minBlobSize:new o.i("",{updateOn:"blur"}),maxBlobSize:new o.i("",{updateOn:"blur"}),ratio:new o.i("",{updateOn:"blur"})});this.form=new m.a({name:new o.i("",{validators:[o.A.pattern(/^[.A-Za-z0-9_\/-]+$/),o.A.required]}),poolType:new o.i("",{validators:[o.A.required]}),crushRule:new o.i(null,{validators:[g.a.custom("tooFewOsds",function(n){return l.info&&n&&l.info.osd_count1&&n.disabled&&n.enable(),this.ecProfiles=l},l.prototype.initEditMode=function(){var l=this;this.disableForEdit(),this.routeParamsSubscribe=this.route.params.subscribe(function(n){return l.poolService.get(n.name).subscribe(function(n){l.data.pool=n,l.initEditFormData(n)})})},l.prototype.disableForEdit=function(){var l=this;["poolType","crushRule","size","erasureProfile","ecOverwrites"].forEach(function(n){return l.form.get(n).disable()})},l.prototype.initEditFormData=function(l){var n=this;this.initializeConfigData.emit({initialData:l.configuration,sourceType:h.a.pool});var e={name:l.pool_name,poolType:l.type,crushRule:this.info["crush_rules_"+l.type].find(function(n){return n.rule_name===l.crush_rule}),size:l.size,erasureProfile:this.ecProfiles.find(function(n){return n.name===l.erasure_code_profile}),pgNum:l.pg_num,ecOverwrites:l.flags_names.includes("ec_overwrites"),mode:l.options.compression_mode,algorithm:l.options.compression_algorithm,minBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_min_blob_size),maxBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_max_blob_size),ratio:l.options.compression_required_ratio};Object.keys(e).forEach(function(l){var u=e[l];i.isUndefined(u)||""===u||n.form.silentSet(l,u)}),this.data.pgs=this.form.getValue("pgNum"),this.data.applications.selected=l.application_metadata},l.prototype.listenToChanges=function(){this.listenToChangesDuringAddEdit(),this.editing||this.listenToChangesDuringAdd()},l.prototype.listenToChangesDuringAddEdit=function(){var l=this;this.form.get("pgNum").valueChanges.subscribe(function(n){var e=n-l.data.pgs;1===Math.abs(e)&&2!==n?l.doPgPowerJump(e):l.data.pgs=n})},l.prototype.doPgPowerJump=function(l){var n=this.calculatePgPower()+l;this.setPgs(-1===l?Math.round(n):Math.floor(n))},l.prototype.calculatePgPower=function(l){return void 0===l&&(l=this.form.getValue("pgNum")),Math.log(l)/Math.log(2)},l.prototype.setPgs=function(l){var n=Math.pow(2,l<0?0:l);this.data.pgs=n,this.form.silentSet("pgNum",n)},l.prototype.listenToChangesDuringAdd=function(){var l=this;this.form.get("poolType").valueChanges.subscribe(function(n){l.form.get("size").updateValueAndValidity(),l.rulesChange(),"replicated"===n&&l.replicatedRuleChange(),l.pgCalc()}),this.form.get("crushRule").valueChanges.subscribe(function(){"replicated"===l.form.getValue("poolType")&&l.replicatedRuleChange(),l.pgCalc()}),this.form.get("size").valueChanges.subscribe(function(){l.pgCalc()}),this.form.get("erasureProfile").valueChanges.subscribe(function(){l.pgCalc()}),this.form.get("mode").valueChanges.subscribe(function(){["minBlobSize","maxBlobSize","ratio"].forEach(function(n){l.form.get(n).updateValueAndValidity({emitEvent:!1})})}),this.form.get("minBlobSize").valueChanges.subscribe(function(){l.form.get("maxBlobSize").updateValueAndValidity({emitEvent:!1})}),this.form.get("maxBlobSize").valueChanges.subscribe(function(){l.form.get("minBlobSize").updateValueAndValidity({emitEvent:!1})})},l.prototype.rulesChange=function(){var l=this.form.getValue("poolType");if(l&&this.info){var n=this.info["crush_rules_"+l]||[],e=this.form.get("crushRule");1===n.length?(e.setValue(n[0]),e.disable()):(e.setValue(null),e.enable()),this.current.rules=n}else this.current.rules=[]},l.prototype.replicatedRuleChange=function(){if("replicated"===this.form.getValue("poolType")){var l=this.form.get("size"),n=this.form.getValue("size")||3,e=this.getMinSize(),u=this.getMaxSize();nu&&(n=u),n!==l.value&&this.form.silentSet("size",n)}},l.prototype.getMinSize=function(){if(this.info&&!(this.info.osd_count<1)){var l=this.form.getValue("crushRule");return l?l.min_size:1}},l.prototype.getMaxSize=function(){if(this.info&&!(this.info.osd_count<1)){var l=this.info.osd_count;if(this.form.getValue("crushRule")){var n=this.form.get("crushRule").value.max_size;if(n0)return l/e},l.prototype.erasurePgCalc=function(l){var n=this.form.get("erasureProfile"),e=n.value;if((n.valid||n.disabled)&&e)return l/(e.k+e.m)},l.prototype.alignPgs=function(l){void 0===l&&(l=this.form.getValue("pgNum")),this.setPgs(Math.round(this.calculatePgPower(l<1?1:l)))},l.prototype.setComplexValidators=function(){var l=this;this.editing?this.form.get("name").setValidators([this.form.get("name").validator,g.a.custom("uniqueName",function(n){return l.data.pool&&l.info&&-1!==l.info.pool_names.indexOf(n)&&l.info.pool_names.indexOf(n)!==l.info.pool_names.indexOf(l.data.pool.pool_name)})]):(g.a.validateIf(this.form.get("size"),function(){return"replicated"===l.form.get("poolType").value},[g.a.custom("min",function(n){return l.form.getValue("size")&&n=n)},l.prototype.hasCompressionEnabled=function(){return this.form.getValue("mode")&&"none"!==this.form.get("mode").value.toLowerCase()},l.prototype.describeCrushStep=function(l){return[l.op.replace("_"," "),l.item_name||"",l.type?l.num+" type "+l.type:""].join(" ")},l.prototype.addErasureCodeProfile=function(){var l=this;this.modalSubscription=this.modalService.onHide.subscribe(function(){return l.reloadECPs()}),this.bsModalService.show(V)},l.prototype.reloadECPs=function(){var l=this;this.ecpService.list().subscribe(function(n){return l.initEcp(n)}),this.modalSubscription.unsubscribe()},l.prototype.deleteErasureCodeProfile=function(){var l=this,n=this.form.getValue("erasureProfile");if(n){var e=n.name;this.modalSubscription=this.modalService.onHide.subscribe(function(){return l.reloadECPs()}),this.modalService.show(f.a,{initialState:{itemDescription:this.i18n("erasure code profile"),itemNames:[e],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new v.a("ecp/delete",{name:e}),call:l.ecpService.delete(e)})}}})}},l.prototype.submit=function(){var l=this;if(this.form.invalid)this.form.setErrors({cdSubmitButton:!0});else{var n={pool:this.form.getValue("name")};this.assignFormFields(n,[{externalFieldName:"pool_type",formControlName:"poolType"},{externalFieldName:"pg_num",formControlName:"pgNum",editable:!0},"replicated"===this.form.getValue("poolType")?{externalFieldName:"size",formControlName:"size"}:{externalFieldName:"erasure_code_profile",formControlName:"erasureProfile",attr:"name"},{externalFieldName:"rule_name",formControlName:"crushRule",attr:"rule_name"}]),this.info.is_all_bluestore&&(this.assignFormField(n,{externalFieldName:"flags",formControlName:"ecOverwrites",replaceFn:function(){return["ec_overwrites"]}}),"none"!==this.form.getValue("mode")?this.assignFormFields(n,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:function(n){return l.hasCompressionEnabled()&&n}},{externalFieldName:"compression_algorithm",formControlName:"algorithm",editable:!0},{externalFieldName:"compression_min_blob_size",formControlName:"minBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_max_blob_size",formControlName:"maxBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_required_ratio",formControlName:"ratio",editable:!0,resetValue:0}]):this.editing&&this.assignFormFields(n,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:function(){return"unset"}},{externalFieldName:"srcpool",formControlName:"name",editable:!0,replaceFn:function(){return l.data.pool.pool_name}}]));var e=this.data.applications.selected;(e.length>0||this.editing)&&(n.application_metadata=e),"replicated"!==this.form.get("poolType").value||i.isEmpty(this.currentConfigurationValues)||(n.configuration=this.currentConfigurationValues),this.triggerApiTask(n)}},l.prototype.assignFormFields=function(l,n){var e=this;n.forEach(function(n){return e.assignFormField(l,n)})},l.prototype.assignFormField=function(l,n){var e=n.externalFieldName,u=n.formControlName,t=n.attr,o=n.replaceFn,a=n.editable,r=n.resetValue;if(!this.editing||a&&!this.form.get(u).pristine){var s=this.form.getValue(u),d=o?o(s):t?i.get(s,t):s;if(!s||!d){if(!a||i.isUndefined(r))return;d=r}l[e]=d}},l.prototype.triggerApiTask=function(l){var n=this;this.taskWrapper.wrapTaskAroundCall({task:new v.a("pool/"+(this.editing?t.e.EDIT:t.e.CREATE),{pool_name:l.hasOwnProperty("srcpool")?l.srcpool:l.pool}),call:this.poolService[this.editing?t.e.UPDATE:t.e.CREATE](l)}).subscribe(void 0,function(l){i.isObject(l.error)&&"34"===l.error.code&&n.form.get("pgNum").setErrors({34:!0}),n.form.setErrors({cdSubmitButton:!0})},function(){return n.router.navigate(["/pool"])})},l.prototype.appSelection=function(){this.form.updateValueAndValidity({emitEvent:!1,onlySelf:!0})},l}(),_=e("MuvH"),D=e("uIqm"),P=e("x38r"),k=e("yJti"),x=e("vCyI"),z=e("o4+5"),F=e("VTlA"),q=e("EgGo"),A=e("d+Og"),O=function(){return function(l){this.pool_name=l}}(),L=new q.a("pool"),j=function(){function l(l,n,e,u,t,o,a,r,s,d,c){var p=this;this.poolService=l,this.taskWrapper=n,this.authStorageService=e,this.taskListService=u,this.modalService=t,this.i18n=o,this.pgCategoryService=a,this.dimlessPipe=r,this.urlBuilder=s,this.configurationService=d,this.actionLabels=c,this.pools=[],this.selection=new x.a,this.executingTasks=[],this.selectionCacheTiers=[],this.monAllowPoolDelete=!1,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return p.urlBuilder.getCreate()},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return p.urlBuilder.getEdit(encodeURIComponent(p.selection.first().pool_name))},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-trash-o",click:function(){return p.deletePoolModal()},name:this.actionLabels.DELETE,disable:function(){return!p.selection.first()||!p.monAllowPoolDelete},disableDesc:function(){return p.getDisableDesc()}}],this.permissions.configOpt.read&&this.configurationService.get("mon_allow_pool_delete").subscribe(function(l){if(i.has(l,"value")){var n=i.find(l.value,function(l){return"mon"===l.section})||{value:!1};p.monAllowPoolDelete="true"===n.value}})}return l.prototype.ngOnInit=function(){var l=this,n=function(l,n,e){return i.get(n,l)>i.get(e,l)?1:-1};this.columns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:4,cellTransformation:P.a.executing},{prop:"type",name:this.i18n("Type"),flexGrow:2},{prop:"application_metadata",name:this.i18n("Applications"),flexGrow:3},{prop:"pg_status",name:this.i18n("PG Status"),flexGrow:3,cellClass:function(n){return l.getPgStatusCellClass(n.row,n.column,n.value)}},{prop:"size",name:this.i18n("Replica Size"),flexGrow:2,cellClass:"text-right"},{prop:"last_change",name:this.i18n("Last Change"),flexGrow:2,cellClass:"text-right"},{prop:"erasure_code_profile",name:this.i18n("Erasure Coded Profile"),flexGrow:2},{prop:"crush_rule",name:this.i18n("Crush Ruleset"),flexGrow:3},{name:this.i18n("Usage"),prop:"usage",cellTemplate:this.poolUsageTpl,flexGrow:3},{prop:"stats.rd_bytes.rates",name:this.i18n("Read bytes"),comparator:function(l,e,u,t){return n("stats.rd_bytes.latest",u,t)},cellTransformation:P.a.sparkline,flexGrow:3},{prop:"stats.wr_bytes.rates",name:this.i18n("Write bytes"),comparator:function(l,e,u,t){return n("stats.wr_bytes.latest",u,t)},cellTransformation:P.a.sparkline,flexGrow:3},{prop:"stats.rd.rate",name:this.i18n("Read ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:P.a.perSecond},{prop:"stats.wr.rate",name:this.i18n("Write ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:P.a.perSecond}],this.taskListService.init(function(){return l.poolService.getList()},void 0,function(n){return l.pools=l.transformPoolsData(n)},function(){l.table.reset(),l.viewCacheStatusList=[{status:k.a.ValueException}]},function(l){return l.name.startsWith("pool/")},function(l,n){return n.metadata.pool_name===l.pool_name},{default:function(l){return new O(l.metadata.pool_name)}})},l.prototype.updateSelection=function(l){this.selection=l,this.getSelectionTiers()},l.prototype.deletePoolModal=function(){var l=this,n=this.selection.first().pool_name;this.modalRef=this.modalService.show(f.a,{initialState:{itemDescription:"Pool",itemNames:[n],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new v.a("pool/"+t.e.DELETE,{pool_name:n}),call:l.poolService.delete(n)})}}})},l.prototype.getPgStatusCellClass=function(l,n,e){var u;return(u={"text-right":!0})["pg-"+this.pgCategoryService.getTypeByStates(e)]=!0,u},l.prototype.transformPoolsData=function(l){var n=this,e=["bytes_used","max_avail","rd_bytes","wr_bytes","rd","wr"],u={latest:0,rate:0,rates:[]};return i.forEach(l,function(l){l.pg_status=n.transformPgStatus(l.pg_status);var t={};i.forEach(e,function(n){t[n]=l.stats&&l.stats[n]?l.stats[n]:u}),l.stats=t;var o=t.bytes_used.latest+t.max_avail.latest;l.usage=o>0?t.bytes_used.latest/o:o,l.cdExecuting||l.pg_num+l.pg_placement_num===l.pg_num_target+l.pg_placement_num_target||(l.cdExecuting="Updating"),["rd_bytes","wr_bytes"].forEach(function(n){l.stats[n].rates=l.stats[n].rates.map(function(l){return l[1]})}),l.cdIsBinary=!0}),l},l.prototype.transformPgStatus=function(l){var n=[];return i.forEach(l,function(l,e){n.push(l+" "+e)}),n.join(", ")},l.prototype.getSelectionTiers=function(){var l=this.selection.hasSingleSelection?this.selection.first().tiers:[];this.selectionCacheTiers=this.pools.filter(function(n){return l.includes(n.pool)})},l.prototype.getDisableDesc=function(){if(!this.monAllowPoolDelete)return this.i18n("Pool deletion is disabled by the mon_allow_pool_delete configuration setting.")},l}(),M=function(){return function(){}}(),B={breadcrumbs:t.a.CREATE},U={breadcrumbs:t.a.EDIT},G=function(){return function(){}}(),K=e("ES0t"),$=e("MdoF"),J=e("Xg1U"),H=e("z5nN"),W=e("iutN"),Z=e("EEJc"),Y=e("PEr+"),X=e("a40w"),Q=e("pMnS"),ll=e("RIVN"),nl=e("nP0W"),el=e("VBM6"),ul=e("atuK"),tl=e("JIi+"),ol=e("Ur3J"),il=e("I4Qz"),al=e("0rTx"),rl=e("lz+O"),sl=e("u2XS"),dl=e("nhAp"),cl=e("l7Jr"),pl=e("bUo2"),fl=e("Ip0R"),ml=e("4HWh"),gl=e("p4Cf"),hl=e("8xTl"),vl=e("IZUe"),bl=e("gp3X"),Cl=e("sb0X"),Rl=e("KVJa"),yl=e("Z21x"),Il=e("DQlY"),El=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Vl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Tl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The name can only consist of alphanumeric characters, dashes and underscores."]))],null,null)}function wl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The chosen erasure code profile name is already in use."]))],null,null)}function Sl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Nl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function _l(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Dl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Pl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function kl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 2."]))],null,null)}function xl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function zl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Fl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function ql(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function Al(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","c"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Durability estimator (c)"])),(l()(),u["\u0275eld"](6,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](7,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](8,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](9,0,null,null,6,"input",[["class","form-control"],["formControlName","c"],["id","c"],["name","c"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,10)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,10).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),t},null,null)),u["\u0275did"](10,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](11,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](13,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](15,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,ql)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("c",u["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",t),l(n,7,0,e.tooltips.plugins.shec.c),l(n,13,0,"c"),l(n,17,0,e.form.showError("c",u["\u0275nov"](n.parent,12),"min"))},function(l,n){l(n,9,0,u["\u0275nov"](n,15).ngClassUntouched,u["\u0275nov"](n,15).ngClassTouched,u["\u0275nov"](n,15).ngClassPristine,u["\u0275nov"](n,15).ngClassDirty,u["\u0275nov"](n,15).ngClassValid,u["\u0275nov"](n,15).ngClassInvalid,u["\u0275nov"](n,15).ngClassPending)})}function Ol(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Ll(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function jl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,5,"label",[["class","control-label col-sm-3"],["for","l"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Locality (l)"])),(l()(),u["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](8,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](9,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](10,0,null,null,6,"input",[["class","form-control"],["formControlName","l"],["id","l"],["name","l"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,11)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,12).onTouched()&&t),t},null,null)),u["\u0275did"](11,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](12,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](14,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](16,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ol)),u["\u0275did"](18,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ll)),u["\u0275did"](20,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("l",u["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",t),l(n,8,0,e.tooltips.plugins.lrc.l),l(n,14,0,"l"),l(n,18,0,e.form.showError("l",u["\u0275nov"](n.parent,12),"required")),l(n,20,0,e.form.showError("l",u["\u0275nov"](n.parent,12),"min"))},function(l,n){l(n,10,0,u["\u0275nov"](n,16).ngClassUntouched,u["\u0275nov"](n,16).ngClassTouched,u["\u0275nov"](n,16).ngClassPristine,u["\u0275nov"](n,16).ngClassDirty,u["\u0275nov"](n,16).ngClassValid,u["\u0275nov"](n,16).ngClassInvalid,u["\u0275nov"](n,16).ngClassPending)})}function Ml(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Bl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Ul(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Gl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["None"]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Kl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function $l(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushLocality"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush Locality"])),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](5,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](6,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,11,"select",[["class","form-control"],["formControlName","crushLocality"],["id","crushLocality"],["name","crushLocality"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,8).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,8).onTouched()&&t),t},null,null)),u["\u0275did"](8,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](10,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](12,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ul)),u["\u0275did"](14,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Gl)),u["\u0275did"](16,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Kl)),u["\u0275did"](18,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,5,0,e.tooltips.plugins.lrc.crushLocality),l(n,10,0,"crushLocality"),l(n,14,0,!e.failureDomains),l(n,16,0,e.failureDomains&&e.failureDomains.length>0),l(n,18,0,e.failureDomains)},function(l,n){l(n,7,0,u["\u0275nov"](n,12).ngClassUntouched,u["\u0275nov"](n,12).ngClassTouched,u["\u0275nov"](n,12).ngClassPristine,u["\u0275nov"](n,12).ngClassDirty,u["\u0275nov"](n,12).ngClassValid,u["\u0275nov"](n,12).ngClassInvalid,u["\u0275nov"](n,12).ngClassPending)})}function Jl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Hl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","technique"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Technique"])),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](5,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](6,0,null,null,8,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,7,"select",[["class","form-control"],["formControlName","technique"],["id","technique"],["name","technique"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,8).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,8).onTouched()&&t),t},null,null)),u["\u0275did"](8,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](10,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](12,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Jl)),u["\u0275did"](14,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,5,0,e.tooltips.plugins[e.plugin].technique),l(n,10,0,"technique"),l(n,14,0,e.techniques)},function(l,n){l(n,7,0,u["\u0275nov"](n,12).ngClassUntouched,u["\u0275nov"](n,12).ngClassTouched,u["\u0275nov"](n,12).ngClassPristine,u["\u0275nov"](n,12).ngClassDirty,u["\u0275nov"](n,12).ngClassValid,u["\u0275nov"](n,12).ngClassInvalid,u["\u0275nov"](n,12).ngClassPending)})}function Wl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function Zl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","packetSize"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Packetsize"])),(l()(),u["\u0275eld"](6,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](7,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](8,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](9,0,null,null,6,"input",[["class","form-control"],["formControlName","packetSize"],["id","packetSize"],["name","packetSize"],["placeholder","Packetsize..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,10)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,10).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),t},null,null)),u["\u0275did"](10,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](11,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](13,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](15,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Wl)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("packetSize",u["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",t),l(n,7,0,e.tooltips.plugins.jerasure.packetSize),l(n,13,0,"packetSize"),l(n,17,0,e.form.showError("packetSize",u["\u0275nov"](n.parent,12),"min"))},function(l,n){l(n,9,0,u["\u0275nov"](n,15).ngClassUntouched,u["\u0275nov"](n,15).ngClassTouched,u["\u0275nov"](n,15).ngClassPristine,u["\u0275nov"](n,15).ngClassDirty,u["\u0275nov"](n,15).ngClassValid,u["\u0275nov"](n,15).ngClassInvalid,u["\u0275nov"](n,15).ngClassPending)})}function Yl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Xl(l){return u["\u0275vid"](0,[u["\u0275pid"](0,fl.TitleCasePipe,[]),u["\u0275pid"](0,hl.a,[]),(l()(),u["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),u["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),u["\u0275ted"](4,null,["","",""])),u["\u0275ppd"](5,1),u["\u0275ppd"](6,1),(l()(),u["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.bsModalRef.hide()&&u),u},null,null)),(l()(),u["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["\xd7"])),(l()(),u["\u0275eld"](10,0,null,null,173,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var t=!0;return"submit"===n&&(t=!1!==u["\u0275nov"](l,12).onSubmit(e)&&t),"reset"===n&&(t=!1!==u["\u0275nov"](l,12).onReset()&&t),t},null,null)),u["\u0275did"](11,16384,null,0,o.D,[],null,null),u["\u0275did"](12,540672,[["frm",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,o.d,null,[o.l]),u["\u0275did"](14,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),u["\u0275eld"](15,0,null,null,160,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](16,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](17,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](18,{"has-error":0}),(l()(),u["\u0275eld"](19,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Name"])),(l()(),u["\u0275eld"](22,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](23,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](24,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,26)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,26).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,26)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,26)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](25,4210688,null,0,vl.a,[u.ElementRef],null,null),u["\u0275did"](26,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](28,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](30,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Vl)),u["\u0275did"](32,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Tl)),u["\u0275did"](34,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,wl)),u["\u0275did"](36,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](37,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](38,0,null,null,5,"label",[["class","control-label col-sm-3"],["for","plugin"]],null,null,null,null,null)),(l()(),u["\u0275eld"](39,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Plugin"])),(l()(),u["\u0275eld"](41,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](42,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](43,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](44,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](45,0,null,null,9,"select",[["class","form-control"],["formControlName","plugin"],["id","plugin"],["name","plugin"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,46).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,46).onTouched()&&t),t},null,null)),u["\u0275did"](46,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](48,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](50,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Sl)),u["\u0275did"](52,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Nl)),u["\u0275did"](54,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,_l)),u["\u0275did"](56,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](57,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](58,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](59,{"has-error":0}),(l()(),u["\u0275eld"](60,0,null,null,6,"label",[["class","control-label col-sm-3"],["for","k"]],null,null,null,null,null)),(l()(),u["\u0275eld"](61,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Data chunks (k)"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Dl)),u["\u0275did"](64,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](65,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](66,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](67,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](68,0,null,null,6,"input",[["class","form-control"],["formControlName","k"],["id","k"],["name","k"],["ng-model","$ctrl.erasureCodeProfile.k"],["placeholder","Data chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,69)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,69).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,69)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,69)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,70).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,70).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,70).onTouched()&&t),t},null,null)),u["\u0275did"](69,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](70,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](72,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](74,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Pl)),u["\u0275did"](76,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,kl)),u["\u0275did"](78,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](79,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](80,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](81,{"has-error":0}),(l()(),u["\u0275eld"](82,0,null,null,6,"label",[["class","control-label col-sm-3"],["for","m"]],null,null,null,null,null)),(l()(),u["\u0275eld"](83,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Coding chunks (m)"])),(l()(),u["\u0275and"](16777216,null,null,1,null,xl)),u["\u0275did"](86,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](87,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](88,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](89,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](90,0,null,null,6,"input",[["class","form-control"],["formControlName","m"],["id","m"],["name","m"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,91)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,91).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,91)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,91)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,92).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,92).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,92).onTouched()&&t),t},null,null)),u["\u0275did"](91,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](92,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](94,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](96,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,zl)),u["\u0275did"](98,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Fl)),u["\u0275did"](100,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Al)),u["\u0275did"](102,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,jl)),u["\u0275did"](104,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](105,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](106,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushFailureDomain"]],null,null,null,null,null)),(l()(),u["\u0275eld"](107,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush failure domain"])),(l()(),u["\u0275eld"](109,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](110,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](111,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](112,0,null,null,9,"select",[["class","form-control"],["formControlName","crushFailureDomain"],["id","crushFailureDomain"],["name","crushFailureDomain"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,113).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,113).onTouched()&&t),t},null,null)),u["\u0275did"](113,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](115,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](117,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ml)),u["\u0275did"](119,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Bl)),u["\u0275did"](121,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,$l)),u["\u0275did"](123,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,2,null,Hl)),u["\u0275did"](125,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),u["\u0275pad"](126,2),(l()(),u["\u0275and"](16777216,null,null,1,null,Zl)),u["\u0275did"](128,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](129,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](130,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](131,{"has-error":0}),(l()(),u["\u0275eld"](132,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushRoot"]],null,null,null,null,null)),(l()(),u["\u0275eld"](133,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush root"])),(l()(),u["\u0275eld"](135,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](136,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](137,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](138,0,null,null,5,"input",[["class","form-control"],["formControlName","crushRoot"],["id","crushRoot"],["name","crushRoot"],["placeholder","root..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,139)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,139).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,139)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,139)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](139,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](141,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](143,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](144,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](145,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushDeviceClass"]],null,null,null,null,null)),(l()(),u["\u0275eld"](146,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush device class"])),(l()(),u["\u0275eld"](148,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](149,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](150,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](151,0,null,null,11,"select",[["class","form-control"],["formControlName","crushDeviceClass"],["id","crushDeviceClass"],["name","crushDeviceClass"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,152).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,152).onTouched()&&t),t},null,null)),u["\u0275did"](152,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](154,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](156,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](157,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](158,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](159,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["any"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Yl)),u["\u0275did"](162,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](163,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](164,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","directory"]],null,null,null,null,null)),(l()(),u["\u0275eld"](165,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Directory"])),(l()(),u["\u0275eld"](167,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](168,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](169,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](170,0,null,null,5,"input",[["class","form-control"],["formControlName","directory"],["id","directory"],["name","directory"],["placeholder","Path..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,171)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,171).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,171)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,171)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](171,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](173,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](175,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](176,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](177,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.onSubmit()&&u),u},bl.b,bl.a)),u["\u0275did"](178,114688,null,0,Cl.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](179,0,["","",""])),u["\u0275ppd"](180,1),u["\u0275ppd"](181,1),(l()(),u["\u0275eld"](182,0,null,null,1,"cd-back-button",[],null,null,null,Rl.b,Rl.a)),u["\u0275did"](183,49152,null,0,yl.a,[fl.Location,t.b],{back:[0,"back"]},null)],function(l,n){var e=n.component;l(n,12,0,e.form);var t=l(n,18,0,e.form.showError("name",u["\u0275nov"](n,12)));l(n,17,0,"form-group",t),l(n,28,0,"name"),l(n,32,0,e.form.showError("name",u["\u0275nov"](n,12),"required")),l(n,34,0,e.form.showError("name",u["\u0275nov"](n,12),"pattern")),l(n,36,0,e.form.showError("name",u["\u0275nov"](n,12),"uniqueName")),l(n,43,0,e.tooltips.plugins[e.plugin].description),l(n,48,0,"plugin"),l(n,52,0,!e.plugins),l(n,54,0,e.plugins),l(n,56,0,e.form.showError("name",u["\u0275nov"](n,12),"required"));var o=l(n,59,0,e.form.showError("k",u["\u0275nov"](n,12)));l(n,58,0,"form-group",o),l(n,64,0,e.requiredControls.includes("k")),l(n,66,0,e.tooltips.k),l(n,72,0,"k"),l(n,76,0,e.form.showError("k",u["\u0275nov"](n,12),"required")),l(n,78,0,e.form.showError("k",u["\u0275nov"](n,12),"min"));var i=l(n,81,0,e.form.showError("m",u["\u0275nov"](n,12)));l(n,80,0,"form-group",i),l(n,86,0,e.requiredControls.includes("m")),l(n,88,0,e.tooltips.m),l(n,94,0,"m"),l(n,98,0,e.form.showError("m",u["\u0275nov"](n,12),"required")),l(n,100,0,e.form.showError("m",u["\u0275nov"](n,12),"min")),l(n,102,0,"shec"===e.plugin),l(n,104,0,e.plugin===e.PLUGIN.LRC),l(n,110,0,e.tooltips.crushFailureDomain),l(n,115,0,"crushFailureDomain"),l(n,119,0,!e.failureDomains),l(n,121,0,e.failureDomains),l(n,123,0,e.plugin===e.PLUGIN.LRC);var a=l(n,126,0,e.PLUGIN.JERASURE,e.PLUGIN.ISA).includes(e.plugin);l(n,125,0,a),l(n,128,0,e.plugin===e.PLUGIN.JERASURE);var r=l(n,131,0,e.form.showError("crushRoot",u["\u0275nov"](n,12)));l(n,130,0,"form-group",r),l(n,136,0,e.tooltips.crushRoot),l(n,141,0,"crushRoot"),l(n,149,0,e.tooltips.crushDeviceClass),l(n,154,0,"crushDeviceClass"),l(n,158,0,""),l(n,159,0,""),l(n,162,0,e.devices),l(n,168,0,e.tooltips.directory),l(n,173,0,"directory"),l(n,178,0,u["\u0275nov"](n,12)),l(n,183,0,e.bsModalRef.hide)},function(l,n){var e=n.component,t=u["\u0275unv"](n,4,0,l(n,5,0,u["\u0275nov"](n,0),e.action)),o=u["\u0275unv"](n,4,1,l(n,6,0,u["\u0275nov"](n,1),e.resource));l(n,4,0,t,o),l(n,10,0,u["\u0275nov"](n,14).ngClassUntouched,u["\u0275nov"](n,14).ngClassTouched,u["\u0275nov"](n,14).ngClassPristine,u["\u0275nov"](n,14).ngClassDirty,u["\u0275nov"](n,14).ngClassValid,u["\u0275nov"](n,14).ngClassInvalid,u["\u0275nov"](n,14).ngClassPending),l(n,24,0,u["\u0275nov"](n,30).ngClassUntouched,u["\u0275nov"](n,30).ngClassTouched,u["\u0275nov"](n,30).ngClassPristine,u["\u0275nov"](n,30).ngClassDirty,u["\u0275nov"](n,30).ngClassValid,u["\u0275nov"](n,30).ngClassInvalid,u["\u0275nov"](n,30).ngClassPending),l(n,45,0,u["\u0275nov"](n,50).ngClassUntouched,u["\u0275nov"](n,50).ngClassTouched,u["\u0275nov"](n,50).ngClassPristine,u["\u0275nov"](n,50).ngClassDirty,u["\u0275nov"](n,50).ngClassValid,u["\u0275nov"](n,50).ngClassInvalid,u["\u0275nov"](n,50).ngClassPending),l(n,68,0,u["\u0275nov"](n,74).ngClassUntouched,u["\u0275nov"](n,74).ngClassTouched,u["\u0275nov"](n,74).ngClassPristine,u["\u0275nov"](n,74).ngClassDirty,u["\u0275nov"](n,74).ngClassValid,u["\u0275nov"](n,74).ngClassInvalid,u["\u0275nov"](n,74).ngClassPending),l(n,90,0,u["\u0275nov"](n,96).ngClassUntouched,u["\u0275nov"](n,96).ngClassTouched,u["\u0275nov"](n,96).ngClassPristine,u["\u0275nov"](n,96).ngClassDirty,u["\u0275nov"](n,96).ngClassValid,u["\u0275nov"](n,96).ngClassInvalid,u["\u0275nov"](n,96).ngClassPending),l(n,112,0,u["\u0275nov"](n,117).ngClassUntouched,u["\u0275nov"](n,117).ngClassTouched,u["\u0275nov"](n,117).ngClassPristine,u["\u0275nov"](n,117).ngClassDirty,u["\u0275nov"](n,117).ngClassValid,u["\u0275nov"](n,117).ngClassInvalid,u["\u0275nov"](n,117).ngClassPending),l(n,138,0,u["\u0275nov"](n,143).ngClassUntouched,u["\u0275nov"](n,143).ngClassTouched,u["\u0275nov"](n,143).ngClassPristine,u["\u0275nov"](n,143).ngClassDirty,u["\u0275nov"](n,143).ngClassValid,u["\u0275nov"](n,143).ngClassInvalid,u["\u0275nov"](n,143).ngClassPending),l(n,151,0,u["\u0275nov"](n,156).ngClassUntouched,u["\u0275nov"](n,156).ngClassTouched,u["\u0275nov"](n,156).ngClassPristine,u["\u0275nov"](n,156).ngClassDirty,u["\u0275nov"](n,156).ngClassValid,u["\u0275nov"](n,156).ngClassInvalid,u["\u0275nov"](n,156).ngClassPending),l(n,170,0,u["\u0275nov"](n,175).ngClassUntouched,u["\u0275nov"](n,175).ngClassTouched,u["\u0275nov"](n,175).ngClassPristine,u["\u0275nov"](n,175).ngClassDirty,u["\u0275nov"](n,175).ngClassValid,u["\u0275nov"](n,175).ngClassInvalid,u["\u0275nov"](n,175).ngClassPending);var i=u["\u0275unv"](n,179,0,l(n,180,0,u["\u0275nov"](n,0),e.action)),a=u["\u0275unv"](n,179,1,l(n,181,0,u["\u0275nov"](n,1),e.resource));l(n,179,0,i,a)})}function Ql(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-erasure-code-profile-form",[],null,null,null,Xl,El)),u["\u0275did"](1,114688,null,0,V,[I.a,Il.a,y.a,c,s.a,t.b],null,null)],function(l,n){l(n,1,0)},null)}var ln=u["\u0275ccf"]("cd-erasure-code-profile-form",V,Ql,{},{submitAction:"submitAction"},[]),nn=e("iExv"),en=e("85J/"),un=e("+0ag"),tn=e("IzCI"),on=e("Dwqy"),an=e("uYzU"),rn=e("uhwM"),sn=e("E2fk"),dn=e("a0VL"),cn=e("nSDx"),pn=e("SB+Q"),fn=e("TYzs"),mn=e("BQkM"),gn=e("dEH0"),hn=e("G1/K"),vn=e("TJUb"),bn=e("lTVp"),Cn=e("OZfm"),Rn=e("NJnL"),yn=e("lqqz"),In=e("eajB"),En=e("FO+L"),Vn=e("ZYjt"),Tn=e("nhM1"),wn=e("BARL"),Sn=e("xtZt"),Nn=e("Avrn"),_n=e("ZYCi"),Dn=e("urB8"),Pn=e("JZ5S"),kn=e("Tff5"),xn=e("YAQW"),zn=e("Da1D"),Fn=e("ARl4"),qn=e("kJI8"),An=e("9Xeq"),On=e("xdbM"),Ln=e("yGOH"),jn=e("V/fk"),Mn=e("F8xH"),Bn=e("ChqD"),Un=e("PCNd"),Gn=e("STEd"),Kn=e("kccj"),$n=e("k/xb"),Jn=e("C6Ij"),Hn=e("AWcq"),Wn=e("xSw7"),Zn=e("GgAd"),Yn=e("a278"),Xn=e("insk"),Qn=e("mSOc"),le=e("20UP"),ne=e("pKUh"),ee=e("25BL"),ue=e("NUGo"),te=e("S7zO"),oe=e("EFGL"),ie=e("aAWM"),ae=e("o8EM"),re=e("sLuX"),se=e("FSuO"),de=(e("jKX/"),function(){function l(l,n){this.i18n=l,this.poolService=n,this.cacheTierColumns=[],this.cacheTierColumns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:3},{prop:"cache_mode",name:this.i18n("Cache Mode"),flexGrow:2},{prop:"cache_min_evict_age",name:this.i18n("Min Evict Age"),flexGrow:2},{prop:"cache_min_flush_age",name:this.i18n("Min Flush Age"),flexGrow:2},{prop:"target_max_bytes",name:this.i18n("Target Max Bytes"),flexGrow:2},{prop:"target_max_objects",name:this.i18n("Target Max Objects"),flexGrow:2}]}return l.prototype.ngOnChanges=function(){var l=this;this.selection.hasSingleSelection&&this.poolService.getConfiguration(this.selection.first().pool_name).subscribe(function(n){l.selectedPoolConfiguration=n})},l.prototype.filterNonPoolData=function(l){return i.omit(l,["cdExecuting","cdIsBinary"])},l}()),ce=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function pe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","-xyV8KCiz"]],null,null,null,Yn.b,Yn.a)),u["\u0275did"](3,638976,null,0,Xn.a,[Qn.a,Vn.DomSanitizer,le.a,un.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){var e=n.component;l(n,1,0,"Performance Details"),l(n,3,0,"ceph-pool-detail?var-pool_name="+e.selection.first().pool_name,"one","-xyV8KCiz")},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function fe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,oe.b,oe.a)),u["\u0275did"](3,638976,null,0,ie.a,[R.a,ae.a,s.a],{data:[0,"data"]},null)],function(l,n){var e=n.component;l(n,1,0,"Configuration"),l(n,3,0,e.selectedPoolConfiguration)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function me(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Cache Tiers Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,ee.b,ee.a)),u["\u0275did"](3,2867200,null,0,D.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},null)],function(l,n){var e=n.component;l(n,1,0,"Cache Tiers Details"),l(n,3,0,e.cacheTiers,e.cacheTierColumns,"flex",!1)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function ge(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,11,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,ne.b,ne.a)),u["\u0275did"](1,180224,[[1,4],["tabsetChild",4]],0,xn.d,[xn.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](3,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,re.b,re.a)),u["\u0275did"](5,638976,null,0,se.a,[dn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["\u0275and"](16777216,null,0,1,null,pe)),u["\u0275did"](7,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,0,1,null,fe)),u["\u0275did"](9,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,0,1,null,me)),u["\u0275did"](11,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,5,0,e.filterNonPoolData(e.selection.first()),!1,!0),l(n,7,0,e.permissions.grafana.read),l(n,9,0,"replicated"===e.selection.first().type),l(n,11,0,e.selection.first().tiers.length>0)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).clazz),l(n,2,0,u["\u0275nov"](n,3).id,u["\u0275nov"](n,3).active,u["\u0275nov"](n,3).addClass)})}function he(l){return u["\u0275vid"](0,[u["\u0275qud"](671088640,1,{tabsetChild:0}),(l()(),u["\u0275and"](16777216,null,null,1,null,ge)),u["\u0275did"](2,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,2,0,n.component.selection.hasSingleSelection)},null)}var ve=e("ufoC"),be=u["\u0275crt"]({encapsulation:0,styles:[[".pg-clean{color:#0b0} .pg-working{color:#2b99a8} .pg-warning{color:#ffc200} .pg-unknown{color:red}"]],data:{}});function Ce(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Jn.b,Jn.a)),u["\u0275did"](1,114688,null,0,Hn.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)},null)}function Re(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,Wn.b,Wn.a)),u["\u0275did"](1,573440,null,0,Zn.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],function(l,n){l(n,1,0,n.parent.context.row.stats.bytes_used.latest+n.parent.context.row.stats.max_avail.latest,n.parent.context.row.stats.bytes_used.latest)},null)}function ye(l){return u["\u0275vid"](0,[(l()(),u["\u0275and"](16777216,null,null,1,null,Re)),u["\u0275did"](1,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,null==n.context.row.stats?null:null==n.context.row.stats.max_avail?null:n.context.row.stats.max_avail.latest)},null)}function Ie(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","z99hzWtmk"]],null,null,null,Yn.b,Yn.a)),u["\u0275did"](3,638976,null,0,Xn.a,[Qn.a,Vn.DomSanitizer,le.a,un.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"ceph-pools-overview?","two","z99hzWtmk")},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function Ee(l){return u["\u0275vid"](0,[u["\u0275qud"](402653184,1,{table:0}),u["\u0275qud"](402653184,2,{poolUsageTpl:0}),u["\u0275qud"](402653184,3,{poolConfigurationSourceTpl:0}),(l()(),u["\u0275eld"](3,0,null,null,14,"tabset",[],[[2,"tab-container",null]],null,null,ne.b,ne.a)),u["\u0275did"](4,180224,null,0,xn.d,[xn.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](5,0,null,0,10,"tab",[["heading","Pools List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](6,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ce)),u["\u0275did"](8,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](9,0,null,null,5,"cd-table",[["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,e){var u=!0;return"updateSelection"===n&&(u=!1!==l.component.updateSelection(e)&&u),u},ee.b,ee.a)),u["\u0275did"](10,2867200,[[1,4],["table",4]],0,D.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),u["\u0275eld"](11,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,ue.b,ue.a)),u["\u0275did"](12,114688,null,0,te.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["\u0275eld"](13,0,null,2,1,"cd-pool-details",[["cdTableDetail",""]],null,null,null,he,ce)),u["\u0275did"](14,573440,null,0,de,[s.a,p.a],{selection:[0,"selection"],permissions:[1,"permissions"],cacheTiers:[2,"cacheTiers"]},null),(l()(),u["\u0275and"](0,[[2,2],["poolUsageTpl",2]],null,0,null,ye)),(l()(),u["\u0275and"](16777216,null,0,1,null,Ie)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,6,0,"Pools List"),l(n,8,0,e.viewCacheStatusList),l(n,10,0,e.pools,e.columns,"single"),l(n,12,0,e.permissions.pool,e.selection,e.tableActions),l(n,14,0,e.selection,e.permissions,e.selectionCacheTiers),l(n,17,0,e.permissions.grafana.read)},function(l,n){l(n,3,0,u["\u0275nov"](n,4).clazz),l(n,5,0,u["\u0275nov"](n,6).id,u["\u0275nov"](n,6).active,u["\u0275nov"](n,6).addClass)})}function Ve(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"cd-pool-list",[],null,null,null,Ee,be)),u["\u0275prd"](131584,null,F.a,F.a,[ve.a,Qn.a]),u["\u0275prd"](256,null,q.a,L,[]),u["\u0275did"](3,114688,null,0,j,[p.a,y.a,C.a,F.a,Il.b,s.a,A.a,z.a,q.a,_.a,t.b],null,null)],function(l,n){l(n,3,0)},null)}var Te=u["\u0275ccf"]("cd-pool-list",j,Ve,{},{},[]),we=e("EmSq"),Se=e("pYKc"),Ne=e("ppaS"),_e=e("BH9v"),De=e("rFfW"),Pe=u["\u0275crt"]({encapsulation:0,styles:[[".crush-rule-steps[_ngcontent-%COMP%]{margin-top:10px}"]],data:{}});function ke(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"h1",[["class","jumbotron"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,0,"i",[["class","fa fa-lg fa-pulse fa-spinner text-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],null,null)}function xe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function ze(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The chosen Ceph pool name is already in use."]))],null,null)}function Fe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{value:[0,"value"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function qe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Ae(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Oe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["At least one placement group is needed!"]))],null,null)}function Le(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Your cluster can't handle this many PGs. Please recalculate the PG amount needed."]))],null,null)}function je(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The current PGs settings were calculated for you, you should make sure the values suit your needs before submit."]))],null,null)}function Me(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit.rule_name)})}function Be(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["\u0275ted"](1,null,[" "," "]))],null,function(l,n){l(n,1,0,n.component.describeCrushStep(n.context.$implicit))})}function Ue(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,11,"span",[["class","help-block"],["id","crush-info-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,10,"tabset",[],[[2,"tab-container",null]],null,null,ne.b,ne.a)),u["\u0275did"](2,180224,null,0,xn.d,[xn.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](3,0,null,0,3,"tab",[["class","crush-rule-info"],["heading","Crush rule"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](4,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](5,0,null,null,1,"cd-table-key-value",[],null,null,null,re.b,re.a)),u["\u0275did"](6,638976,null,0,se.a,[dn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["\u0275eld"](7,0,null,0,4,"tab",[["class","crush-rule-steps"],["heading","Crush steps"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](8,212992,null,0,xn.b,[xn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](9,0,null,null,2,"ol",[],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,Be)),u["\u0275did"](11,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,4,0,"Crush rule"),l(n,6,0,e.form.getValue("crushRule"),!1,!0),l(n,8,0,"Crush steps"),l(n,11,0,e.form.get("crushRule").value.steps)},function(l,n){l(n,1,0,u["\u0275nov"](n,2).clazz),l(n,3,0,u["\u0275nov"](n,4).id,u["\u0275nov"](n,4).active,u["\u0275nov"](n,4).addClass),l(n,7,0,u["\u0275nov"](n,8).id,u["\u0275nov"](n,8).active,u["\u0275nov"](n,8).addClass)})}function Ge(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The rule can't be used in the current cluster as it has to few OSDs to meet the minimum required OSD by this rule."]))],null,null)}function Ke(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,27,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","crushRule"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush ruleset"])),(l()(),u["\u0275eld"](5,0,null,null,22,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,17,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,11,"select",[["class","form-control"],["formControlName","crushRule"],["id","crushRule"],["name","crushSet"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,8).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,8).onTouched()&&t),t},null,null)),u["\u0275did"](8,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](10,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](12,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](13,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](14,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](15,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- Select a crush rule --"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Me)),u["\u0275did"](18,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](19,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,3,"button",[["class","btn btn-default"],["id","crush-info-button"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0,t=l.component;return"click"===n&&(u=0!=(t.data.crushInfo=!t.data.crushInfo)&&u),u},null,null)),u["\u0275did"](21,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](22,{active:0}),(l()(),u["\u0275eld"](23,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-question-circle"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,Ue)),u["\u0275did"](25,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ge)),u["\u0275did"](27,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("crushRule",u["\u0275nov"](n.parent.parent,2)));l(n,1,0,"form-group",t),l(n,10,0,"crushRule"),l(n,14,0,null),l(n,15,0,null),l(n,18,0,e.current.rules);var o=l(n,22,0,e.data.crushInfo);l(n,21,0,"btn btn-default",o),l(n,25,0,e.data.crushInfo&&e.form.getValue("crushRule")),l(n,27,0,e.form.showError("crushRule",u["\u0275nov"](n.parent.parent,2),"tooFewOsds"))},function(l,n){l(n,7,0,u["\u0275nov"](n,12).ngClassUntouched,u["\u0275nov"](n,12).ngClassTouched,u["\u0275nov"](n,12).ngClassPristine,u["\u0275nov"](n,12).ngClassDirty,u["\u0275nov"](n,12).ngClassValid,u["\u0275nov"](n,12).ngClassInvalid,u["\u0275nov"](n,12).ngClassPending)})}function $e(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,4,"ul",[["class","list-inline"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["\u0275ted"](3,null,["Minimum: ",""])),(l()(),u["\u0275eld"](4,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["\u0275ted"](5,null,["Maximum: ",""]))],null,function(l,n){var e=n.component;l(n,3,0,e.getMinSize()),l(n,5,0,e.getMaxSize())})}function Je(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](1,null,["The size specified is out of range. A value from "," to "," is valid."]))],null,function(l,n){var e=n.component;l(n,1,0,e.getMinSize(),e.getMaxSize())})}function He(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","size"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Replicated size"])),(l()(),u["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","size"],["id","size"],["name","size"],["type","number"]],[[8,"max",0],[8,"min",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,9)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,9).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,9)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,9)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,10).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,10).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,10).onTouched()&&t),t},null,null)),u["\u0275did"](9,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](10,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](12,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](14,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,$e)),u["\u0275did"](16,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Je)),u["\u0275did"](18,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("size",u["\u0275nov"](n.parent.parent,2)));l(n,1,0,"form-group",t),l(n,12,0,"size"),l(n,16,0,e.form.showError("size",u["\u0275nov"](n.parent.parent,2))),l(n,18,0,e.form.showError("size",u["\u0275nov"](n.parent.parent,2)))},function(l,n){var e=n.component;l(n,8,0,e.getMaxSize(),e.getMinSize(),u["\u0275nov"](n,14).ngClassUntouched,u["\u0275nov"](n,14).ngClassTouched,u["\u0275nov"](n,14).ngClassPristine,u["\u0275nov"](n,14).ngClassDirty,u["\u0275nov"](n,14).ngClassValid,u["\u0275nov"](n,14).ngClassInvalid,u["\u0275nov"](n,14).ngClassPending)})}function We(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Ze(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- No erasure code profile available --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Ye(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- Select an erasure code profile --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Xe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit.name)})}function Qe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"],["id","ecp-info-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"cd-table-key-value",[],null,null,null,re.b,re.a)),u["\u0275did"](2,638976,null,0,se.a,[dn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null)],function(l,n){l(n,2,0,n.component.form.getValue("erasureProfile"),!1,!0)},null)}function lu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,29,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","erasureProfile"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Erasure code profile"])),(l()(),u["\u0275eld"](3,0,null,null,26,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,23,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](5,0,null,null,13,"select",[["class","form-control"],["formControlName","erasureProfile"],["id","erasureProfile"],["name","erasureProfile"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,6).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,6).onTouched()&&t),t},null,null)),u["\u0275did"](6,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](8,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](10,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,We)),u["\u0275did"](12,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ze)),u["\u0275did"](14,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ye)),u["\u0275did"](16,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Xe)),u["\u0275did"](18,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](19,0,null,null,8,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,3,"button",[["class","btn btn-default"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0,t=l.component;return"click"===n&&(u=0!=(t.data.erasureInfo=!t.data.erasureInfo)&&u),u},null,null)),u["\u0275did"](21,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](22,{active:0}),(l()(),u["\u0275eld"](23,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-question-circle"]],null,null,null,null,null)),(l()(),u["\u0275eld"](24,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.addErasureCodeProfile()&&u),u},null,null)),(l()(),u["\u0275eld"](25,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-plus"]],null,null,null,null,null)),(l()(),u["\u0275eld"](26,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.deleteErasureCodeProfile()&&u),u},null,null)),(l()(),u["\u0275eld"](27,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-trash-o"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,Qe)),u["\u0275did"](29,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,8,0,"erasureProfile"),l(n,12,0,!e.ecProfiles),l(n,14,0,e.ecProfiles&&0===e.ecProfiles.length),l(n,16,0,e.ecProfiles&&e.ecProfiles.length>0),l(n,18,0,e.ecProfiles);var u=l(n,22,0,e.data.erasureInfo);l(n,21,0,"btn btn-default",u),l(n,29,0,e.data.erasureInfo&&e.form.getValue("erasureProfile"))},function(l,n){var e=n.component;l(n,5,0,u["\u0275nov"](n,10).ngClassUntouched,u["\u0275nov"](n,10).ngClassTouched,u["\u0275nov"](n,10).ngClassPristine,u["\u0275nov"](n,10).ngClassDirty,u["\u0275nov"](n,10).ngClassValid,u["\u0275nov"](n,10).ngClassInvalid,u["\u0275nov"](n,10).ngClassPending),l(n,24,0,e.editing),l(n,26,0,e.editing||e.ecProfiles.length<1)})}function nu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Flags"])),(l()(),u["\u0275eld"](3,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,9,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](5,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,5,"input",[["formControlName","ecOverwrites"],["id","ec-overwrites"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,7).onChange(e.target.checked)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,7).onTouched()&&t),t},null,null)),u["\u0275did"](7,16384,null,0,o.c,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.c]),u["\u0275did"](9,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](11,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](12,0,null,null,1,"label",[["for","ec-overwrites"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["EC Overwrites"]))],function(l,n){l(n,9,0,"ecOverwrites")},function(l,n){l(n,6,0,u["\u0275nov"](n,11).ngClassUntouched,u["\u0275nov"](n,11).ngClassTouched,u["\u0275nov"](n,11).ngClassPristine,u["\u0275nov"](n,11).ngClassDirty,u["\u0275nov"](n,11).ngClassValid,u["\u0275nov"](n,11).ngClassInvalid,u["\u0275nov"](n,11).ngClassPending)})}function eu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,36,"div",[],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,27,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](2,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](3,{"has-error":0}),(l()(),u["\u0275eld"](4,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","pgNum"]],null,null,null,null,null)),(l()(),u["\u0275eld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Placement groups"])),(l()(),u["\u0275eld"](7,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](8,0,null,null,20,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](9,0,null,null,8,"input",[["class","form-control"],["formControlName","pgNum"],["id","pgNum"],["min","1"],["name","pgNum"],["required",""],["type","number"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"focus"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0,o=l.component;return"input"===n&&(t=!1!==u["\u0275nov"](l,10)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,10).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),"focus"===n&&(t=0!=(o.externalPgChange=!1)&&t),"blur"===n&&(t=!1!==o.alignPgs()&&t),t},null,null)),u["\u0275did"](10,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](11,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275did"](12,16384,null,0,o.y,[],{required:[0,"required"]},null),u["\u0275prd"](1024,null,o.o,function(l){return[l]},[o.y]),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](15,671744,null,0,o.j,[[3,o.d],[6,o.o],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](17,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ae)),u["\u0275did"](19,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Oe)),u["\u0275did"](21,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Le)),u["\u0275did"](23,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](24,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](25,0,null,null,1,"a",[["href","http://ceph.com/pgcalc"],["target","_blank"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Calculation help"])),(l()(),u["\u0275and"](16777216,null,null,1,null,je)),u["\u0275did"](28,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ke)),u["\u0275did"](30,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,He)),u["\u0275did"](32,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,lu)),u["\u0275did"](34,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,nu)),u["\u0275did"](36,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,3,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2)));l(n,2,0,"form-group",t),l(n,12,0,""),l(n,15,0,"pgNum"),l(n,19,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2),"required")),l(n,21,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2),"min")),l(n,23,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2),"34")),l(n,28,0,e.externalPgChange),l(n,30,0,e.form.getValue("poolType")&&e.current.rules.length>0),l(n,32,0,"replicated"===e.form.getValue("poolType")),l(n,34,0,"erasure"===e.form.getValue("poolType")),l(n,36,0,e.info.is_all_bluestore&&"erasure"===e.form.getValue("poolType"))},function(l,n){l(n,9,0,u["\u0275nov"](n,12).required?"":null,u["\u0275nov"](n,17).ngClassUntouched,u["\u0275nov"](n,17).ngClassTouched,u["\u0275nov"](n,17).ngClassPristine,u["\u0275nov"](n,17).ngClassDirty,u["\u0275nov"](n,17).ngClassValid,u["\u0275nov"](n,17).ngClassInvalid,u["\u0275nov"](n,17).ngClassPending)})}function uu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{value:[0,"value"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function tu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function ou(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- No erasure compression algorithm available --"]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function iu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{value:[0,"value"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function au(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be greater than 0"]))],null,null)}function ru(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be less than the maximum blob size"]))],null,null)}function su(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be greater than 0"]))],null,null)}function du(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be greater than the minimum blob size"]))],null,null)}function cu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be between 0.0 and 1.0"]))],null,null)}function pu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,67,"div",[],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](2,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](3,{"has-error":0}),(l()(),u["\u0275eld"](4,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","algorithm"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Algorithm"])),(l()(),u["\u0275eld"](6,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,11,"select",[["class","form-control"],["formControlName","algorithm"],["id","algorithm"],["name","algorithm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,8).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,8).onTouched()&&t),t},null,null)),u["\u0275did"](8,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](10,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](12,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,tu)),u["\u0275did"](14,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,ou)),u["\u0275did"](16,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,iu)),u["\u0275did"](18,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](19,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](20,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](21,{"has-error":0}),(l()(),u["\u0275eld"](22,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","minBlobSize"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Minimum blob size"])),(l()(),u["\u0275eld"](24,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](25,0,null,null,6,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","minBlobSize"],["id","minBlobSize"],["min","0"],["name","minBlobSize"],["placeholder","e.g., 128KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,26)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,26).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,26)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,26)._compositionEnd(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,30).onBlur(e.target.value)&&t),t},null,null)),u["\u0275did"](26,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](28,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](30,81920,null,0,we.a,[u.ElementRef,o.q,b.a,R.a],{defaultUnit:[0,"defaultUnit"]},null),u["\u0275did"](31,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,au)),u["\u0275did"](33,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,ru)),u["\u0275did"](35,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](36,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](37,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](38,{"has-error":0}),(l()(),u["\u0275eld"](39,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","maxBlobSize"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Maximum blob size"])),(l()(),u["\u0275eld"](41,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](42,0,null,null,6,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","maxBlobSize"],["id","maxBlobSize"],["min","0"],["placeholder","e.g., 512KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,43)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,43).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,43)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,43)._compositionEnd(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,47).onBlur(e.target.value)&&t),t},null,null)),u["\u0275did"](43,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](45,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](47,81920,null,0,we.a,[u.ElementRef,o.q,b.a,R.a],{defaultUnit:[0,"defaultUnit"]},null),u["\u0275did"](48,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,su)),u["\u0275did"](50,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,du)),u["\u0275did"](52,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](53,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](54,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](55,{"has-error":0}),(l()(),u["\u0275eld"](56,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","ratio"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Ratio"])),(l()(),u["\u0275eld"](58,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](59,0,null,null,6,"input",[["class","form-control"],["formControlName","ratio"],["id","ratio"],["max","1"],["min","0"],["name","ratio"],["placeholder","Compression ratio"],["step","0.1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,60)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,60).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,60)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,60)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,61).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,61).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,61).onTouched()&&t),t},null,null)),u["\u0275did"](60,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](61,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](63,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](65,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,cu)),u["\u0275did"](67,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,3,0,e.form.showError("algorithm",u["\u0275nov"](n.parent.parent,2)));l(n,2,0,"form-group",t),l(n,10,0,"algorithm"),l(n,14,0,!e.info.compression_algorithms),l(n,16,0,e.info.compression_algorithms&&0===e.info.compression_algorithms.length),l(n,18,0,e.info.compression_algorithms);var o=l(n,21,0,e.form.showError("minBlobSize",u["\u0275nov"](n.parent.parent,2)));l(n,20,0,"form-group",o),l(n,28,0,"minBlobSize"),l(n,30,0,"KiB"),l(n,33,0,e.form.showError("minBlobSize",u["\u0275nov"](n.parent.parent,2),"min")),l(n,35,0,e.form.showError("minBlobSize",u["\u0275nov"](n.parent.parent,2),"maximum"));var i=l(n,38,0,e.form.showError("maxBlobSize",u["\u0275nov"](n.parent.parent,2)));l(n,37,0,"form-group",i),l(n,45,0,"maxBlobSize"),l(n,47,0,"KiB"),l(n,50,0,e.form.showError("maxBlobSize",u["\u0275nov"](n.parent.parent,2),"min")),l(n,52,0,e.form.showError("maxBlobSize",u["\u0275nov"](n.parent.parent,2),"minimum"));var a=l(n,55,0,e.form.showError("ratio",u["\u0275nov"](n.parent.parent,2)));l(n,54,0,"form-group",a),l(n,63,0,"ratio"),l(n,67,0,e.form.showError("ratio",u["\u0275nov"](n.parent.parent,2),"min")||e.form.showError("ratio",u["\u0275nov"](n.parent.parent,2),"max"))},function(l,n){l(n,7,0,u["\u0275nov"](n,12).ngClassUntouched,u["\u0275nov"](n,12).ngClassTouched,u["\u0275nov"](n,12).ngClassPristine,u["\u0275nov"](n,12).ngClassDirty,u["\u0275nov"](n,12).ngClassValid,u["\u0275nov"](n,12).ngClassInvalid,u["\u0275nov"](n,12).ngClassPending),l(n,25,0,u["\u0275nov"](n,31).ngClassUntouched,u["\u0275nov"](n,31).ngClassTouched,u["\u0275nov"](n,31).ngClassPristine,u["\u0275nov"](n,31).ngClassDirty,u["\u0275nov"](n,31).ngClassValid,u["\u0275nov"](n,31).ngClassInvalid,u["\u0275nov"](n,31).ngClassPending),l(n,42,0,u["\u0275nov"](n,48).ngClassUntouched,u["\u0275nov"](n,48).ngClassTouched,u["\u0275nov"](n,48).ngClassPristine,u["\u0275nov"](n,48).ngClassDirty,u["\u0275nov"](n,48).ngClassValid,u["\u0275nov"](n,48).ngClassInvalid,u["\u0275nov"](n,48).ngClassPending),l(n,59,0,u["\u0275nov"](n,65).ngClassUntouched,u["\u0275nov"](n,65).ngClassTouched,u["\u0275nov"](n,65).ngClassPristine,u["\u0275nov"](n,65).ngClassDirty,u["\u0275nov"](n,65).ngClassValid,u["\u0275nov"](n,65).ngClassInvalid,u["\u0275nov"](n,65).ngClassPending)})}function fu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,19,"div",[["formGroupName","compression"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,o.m,[[3,o.d],[8,null],[8,null]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.d,null,[o.m]),u["\u0275did"](3,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),u["\u0275eld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Compression"])),(l()(),u["\u0275eld"](6,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","mode"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Mode"])),(l()(),u["\u0275eld"](9,0,null,null,8,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](10,0,null,null,7,"select",[["class","form-control"],["formControlName","mode"],["id","mode"],["name","mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),t},null,null)),u["\u0275did"](11,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](13,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](15,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,uu)),u["\u0275did"](17,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,pu)),u["\u0275did"](19,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,1,0,"compression"),l(n,13,0,"mode"),l(n,17,0,e.info.compression_modes),l(n,19,0,e.hasCompressionEnabled())},function(l,n){l(n,0,0,u["\u0275nov"](n,3).ngClassUntouched,u["\u0275nov"](n,3).ngClassTouched,u["\u0275nov"](n,3).ngClassPristine,u["\u0275nov"](n,3).ngClassDirty,u["\u0275nov"](n,3).ngClassValid,u["\u0275nov"](n,3).ngClassInvalid,u["\u0275nov"](n,3).ngClassPending),l(n,10,0,u["\u0275nov"](n,15).ngClassUntouched,u["\u0275nov"](n,15).ngClassTouched,u["\u0275nov"](n,15).ngClassPristine,u["\u0275nov"](n,15).ngClassDirty,u["\u0275nov"](n,15).ngClassValid,u["\u0275nov"](n,15).ngClassInvalid,u["\u0275nov"](n,15).ngClassPending)})}function mu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["It's not possible to create an RBD pool with '/' in the name."])),(l()(),u["\u0275eld"](4,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Please change the name or remove 'rbd' from the applications list."]))],null,null)}function gu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,78,"form",[["class","form-horizontal"],["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var t=!0;return"submit"===n&&(t=!1!==u["\u0275nov"](l,2).onSubmit(e)&&t),"reset"===n&&(t=!1!==u["\u0275nov"](l,2).onReset()&&t),t},null,null)),u["\u0275did"](1,16384,null,0,o.D,[],null,null),u["\u0275did"](2,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,o.d,null,[o.l]),u["\u0275did"](4,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),u["\u0275eld"](5,0,null,null,73,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),u["\u0275ted"](8,null,["","",""])),u["\u0275ppd"](9,1),u["\u0275ppd"](10,1),(l()(),u["\u0275eld"](11,0,null,null,58,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](12,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](13,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](14,{"has-error":0}),(l()(),u["\u0275eld"](15,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](16,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Name"])),(l()(),u["\u0275eld"](18,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](19,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,22)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,22).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,22)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,22)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](21,4210688,null,0,vl.a,[u.ElementRef],null,null),u["\u0275did"](22,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](24,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](26,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,xe)),u["\u0275did"](28,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,ze)),u["\u0275did"](30,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](31,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](32,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](33,{"has-error":0}),(l()(),u["\u0275eld"](34,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","poolType"]],null,null,null,null,null)),(l()(),u["\u0275eld"](35,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Pool type"])),(l()(),u["\u0275eld"](37,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](38,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](39,0,null,null,11,"select",[["class","form-control"],["formControlName","poolType"],["id","poolType"],["name","poolType"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,40).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,40).onTouched()&&t),t},null,null)),u["\u0275did"](40,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](42,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](44,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](45,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](46,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](47,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- Select a pool type --"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Fe)),u["\u0275did"](50,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,qe)),u["\u0275did"](52,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,eu)),u["\u0275did"](54,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](55,0,null,null,6,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](56,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","applications"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Applications"])),(l()(),u["\u0275eld"](58,0,null,null,3,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](59,0,null,null,2,"span",[["class","form-control no-border full-height"]],null,null,null,null,null)),(l()(),u["\u0275eld"](60,0,null,null,1,"cd-select-badges",[["id","applications"]],null,[[null,"selection"]],function(l,n,e){var u=!0;return"selection"===n&&(u=!1!==l.component.appSelection()&&u),u},Se.b,Se.a)),u["\u0275did"](61,49152,null,0,Ne.a,[s.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"],selectionLimit:[3,"selectionLimit"],customBadges:[4,"customBadges"],customBadgeValidators:[5,"customBadgeValidators"]},{selection:"selection"}),(l()(),u["\u0275and"](16777216,null,null,1,null,fu)),u["\u0275did"](63,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](64,0,null,null,2,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),u["\u0275eld"](65,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],function(l,n,e){var u=!0;return"changes"===n&&(u=!1!==(l.component.currentConfigurationValues=e())&&u),u},_e.b,_e.a)),u["\u0275did"](66,114688,null,0,De.a,[R.a,ae.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),u["\u0275eld"](67,0,null,null,2,"div",[["class","form-group has-error"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,mu)),u["\u0275did"](69,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](70,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](71,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["\u0275eld"](72,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u},bl.b,bl.a)),u["\u0275did"](73,114688,null,0,Cl.a,[u.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](74,0,["","",""])),u["\u0275ppd"](75,1),u["\u0275ppd"](76,1),(l()(),u["\u0275eld"](77,0,null,null,1,"cd-back-button",[],null,null,null,Rl.b,Rl.a)),u["\u0275did"](78,49152,null,0,yl.a,[fl.Location,t.b],null,null)],function(l,n){var e=n.component;l(n,2,0,e.form);var t=l(n,14,0,e.form.showError("name",u["\u0275nov"](n,2)));l(n,13,0,"form-group",t),l(n,24,0,"name"),l(n,28,0,e.form.showError("name",u["\u0275nov"](n,2),"required")),l(n,30,0,e.form.showError("name",u["\u0275nov"](n,2),"uniqueName"));var o=l(n,33,0,e.form.showError("poolType",u["\u0275nov"](n,2)));l(n,32,0,"form-group",o),l(n,42,0,"poolType"),l(n,46,0,""),l(n,47,0,""),l(n,50,0,e.data.poolTypes),l(n,52,0,e.form.showError("poolType",u["\u0275nov"](n,2),"required")),l(n,54,0,e.form.getValue("poolType")),l(n,61,0,e.data.applications.selected,e.data.applications.available,e.data.applications.messages,4,!0,e.data.applications.validators),l(n,63,0,e.info.is_all_bluestore),l(n,66,0,e.form,e.initializeConfigData),l(n,69,0,e.form.hasError("rbdPool")),l(n,73,0,u["\u0275nov"](n,2),"button")},function(l,n){var e=n.component;l(n,0,0,u["\u0275nov"](n,4).ngClassUntouched,u["\u0275nov"](n,4).ngClassTouched,u["\u0275nov"](n,4).ngClassPristine,u["\u0275nov"](n,4).ngClassDirty,u["\u0275nov"](n,4).ngClassValid,u["\u0275nov"](n,4).ngClassInvalid,u["\u0275nov"](n,4).ngClassPending);var t=u["\u0275unv"](n,8,0,l(n,9,0,u["\u0275nov"](n.parent,0),e.action)),o=u["\u0275unv"](n,8,1,l(n,10,0,u["\u0275nov"](n.parent,1),e.resource));l(n,8,0,t,o),l(n,20,0,u["\u0275nov"](n,26).ngClassUntouched,u["\u0275nov"](n,26).ngClassTouched,u["\u0275nov"](n,26).ngClassPristine,u["\u0275nov"](n,26).ngClassDirty,u["\u0275nov"](n,26).ngClassValid,u["\u0275nov"](n,26).ngClassInvalid,u["\u0275nov"](n,26).ngClassPending),l(n,39,0,u["\u0275nov"](n,44).ngClassUntouched,u["\u0275nov"](n,44).ngClassTouched,u["\u0275nov"](n,44).ngClassPristine,u["\u0275nov"](n,44).ngClassDirty,u["\u0275nov"](n,44).ngClassValid,u["\u0275nov"](n,44).ngClassInvalid,u["\u0275nov"](n,44).ngClassPending),l(n,64,0,"replicated"!==e.form.get("poolType").value||-1===e.data.applications.selected.indexOf("rbd"));var i=u["\u0275unv"](n,74,0,l(n,75,0,u["\u0275nov"](n.parent,0),e.action)),a=u["\u0275unv"](n,74,1,l(n,76,0,u["\u0275nov"](n.parent,1),e.resource));l(n,74,0,i,a)})}function hu(l){return u["\u0275vid"](0,[u["\u0275pid"](0,fl.TitleCasePipe,[]),u["\u0275pid"](0,hl.a,[]),(l()(),u["\u0275eld"](2,0,null,null,4,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,ke)),u["\u0275did"](4,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,gu)),u["\u0275did"](6,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,4,0,!(e.info&&e.ecProfiles)),l(n,6,0,e.info&&e.ecProfiles)},null)}function vu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-pool-form",[],null,null,null,hu,Pe)),u["\u0275did"](1,114688,null,0,N,[b.a,_n.a,_n.l,Il.b,p.a,C.a,R.a,Il.b,y.a,c,s.a,t.b],null,null)],function(l,n){l(n,1,0)},null)}var bu=u["\u0275ccf"]("cd-pool-form",N,vu,{},{},[]);e.d(n,"PoolModuleNgFactory",function(){return Cu}),e.d(n,"RoutedPoolModuleNgFactory",function(){return Ru});var Cu=u["\u0275cmf"](M,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[K.a,$.a,J.a,H.a,H.b,W.a,Z.a,Y.a,X.a,Q.a,ll.a,nl.a,el.a,ul.a,ul.c,ul.b,tl.a,ol.a,il.a,al.a,rl.a,sl.a,dl.a,cl.a,pl.a,ln]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,fl.NgLocalization,fl.NgLocaleLocalization,[u.LOCALE_ID,[2,fl["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,nn.a,nn.a,[s.a]),u["\u0275mpd"](4608,fl.DatePipe,fl.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,en.a,en.a,[]),u["\u0275mpd"](4608,un.a,un.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,b.a,b.a,[R.a]),u["\u0275mpd"](4608,tn.a,tn.a,[R.a]),u["\u0275mpd"](4608,z.a,z.a,[R.a]),u["\u0275mpd"](4608,on.a,on.a,[]),u["\u0275mpd"](4608,an.a,an.a,[]),u["\u0275mpd"](4608,rn.a,rn.a,[]),u["\u0275mpd"](4608,sn.a,sn.a,[]),u["\u0275mpd"](4608,dn.a,dn.a,[fl.DatePipe]),u["\u0275mpd"](4608,cn.a,cn.a,[]),u["\u0275mpd"](4608,pn.a,pn.a,[]),u["\u0275mpd"](4608,fn.a,fn.a,[]),u["\u0275mpd"](4608,mn.a,mn.a,[]),u["\u0275mpd"](4608,gn.a,gn.a,[]),u["\u0275mpd"](4608,hn.a,hn.a,[s.a]),u["\u0275mpd"](4608,hl.a,hl.a,[]),u["\u0275mpd"](4608,vn.a,vn.a,[]),u["\u0275mpd"](4608,o.E,o.E,[]),u["\u0275mpd"](4608,o.h,o.h,[]),u["\u0275mpd"](4608,bn.b,bn.b,[]),u["\u0275mpd"](4608,Cn.a,Cn.a,[]),u["\u0275mpd"](4608,Rn.a,Rn.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,yn.a,yn.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,Rn.a,u.ApplicationRef]),u["\u0275mpd"](4608,In.a,In.a,[]),u["\u0275mpd"](4608,Il.b,Il.b,[u.RendererFactory2,yn.a]),u["\u0275mpd"](4608,En.ScrollbarHelper,En.ScrollbarHelper,[Vn.DOCUMENT]),u["\u0275mpd"](4608,Tn.DimensionsHelper,Tn.DimensionsHelper,[]),u["\u0275mpd"](4608,wn.ColumnChangesService,wn.ColumnChangesService,[]),u["\u0275mpd"](4608,Sn.f,Sn.f,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,Nn.a,Nn.a,[_n.l,C.a]),u["\u0275mpd"](4608,Dn.NodeDraggableService,Dn.NodeDraggableService,[]),u["\u0275mpd"](4608,Pn.NodeMenuService,Pn.NodeMenuService,[]),u["\u0275mpd"](4608,kn.TreeService,kn.TreeService,[Dn.NodeDraggableService]),u["\u0275mpd"](4608,xn.e,xn.e,[]),u["\u0275mpd"](4608,zn.c,zn.c,[]),u["\u0275mpd"](4608,Fn.r,Fn.r,[]),u["\u0275mpd"](4608,Fn.t,Fn.t,[]),u["\u0275mpd"](4608,Fn.a,Fn.a,[]),u["\u0275mpd"](4608,Fn.h,Fn.h,[]),u["\u0275mpd"](4608,Fn.d,Fn.d,[]),u["\u0275mpd"](4608,Fn.j,Fn.j,[]),u["\u0275mpd"](4608,Fn.s,Fn.s,[Fn.t,Fn.j]),u["\u0275mpd"](1073742336,fl.CommonModule,fl.CommonModule,[]),u["\u0275mpd"](1073742336,qn.a,qn.a,[]),u["\u0275mpd"](1073742336,xn.c,xn.c,[]),u["\u0275mpd"](1073742336,Cn.d,Cn.d,[]),u["\u0275mpd"](1073742336,An.a,An.a,[]),u["\u0275mpd"](1073742336,o.B,o.B,[]),u["\u0275mpd"](1073742336,o.n,o.n,[]),u["\u0275mpd"](1073742336,o.x,o.x,[]),u["\u0275mpd"](1073742336,bn.c,bn.c,[]),u["\u0275mpd"](1073742336,In.d,In.d,[]),u["\u0275mpd"](1073742336,On.ChartsModule,On.ChartsModule,[]),u["\u0275mpd"](1073742336,Il.e,Il.e,[]),u["\u0275mpd"](1073742336,Ln.a,Ln.a,[]),u["\u0275mpd"](1073742336,Sn.e,Sn.e,[]),u["\u0275mpd"](1073742336,jn.a,jn.a,[]),u["\u0275mpd"](1073742336,Mn.NgxDatatableModule,Mn.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,_n.p,_n.p,[[2,_n.v],[2,_n.l]]),u["\u0275mpd"](1073742336,Bn.a,Bn.a,[]),u["\u0275mpd"](1073742336,d.a,d.a,[]),u["\u0275mpd"](1073742336,Un.a,Un.a,[]),u["\u0275mpd"](1073742336,zn.d,zn.d,[]),u["\u0275mpd"](1073742336,Gn.TreeModule,Gn.TreeModule,[]),u["\u0275mpd"](1073742336,Kn.a,Kn.a,[]),u["\u0275mpd"](1073742336,Fn.g,Fn.g,[]),u["\u0275mpd"](1073742336,$n.a,$n.a,[]),u["\u0275mpd"](1073742336,M,M,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,Sn.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])}),Ru=u["\u0275cmf"](G,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[K.a,$.a,J.a,H.a,H.b,W.a,Z.a,Y.a,X.a,Q.a,ll.a,nl.a,el.a,ul.a,ul.c,ul.b,tl.a,ol.a,il.a,al.a,rl.a,sl.a,dl.a,cl.a,pl.a,ln,Te,bu]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,fl.NgLocalization,fl.NgLocaleLocalization,[u.LOCALE_ID,[2,fl["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,nn.a,nn.a,[s.a]),u["\u0275mpd"](4608,fl.DatePipe,fl.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,en.a,en.a,[]),u["\u0275mpd"](4608,un.a,un.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,b.a,b.a,[R.a]),u["\u0275mpd"](4608,tn.a,tn.a,[R.a]),u["\u0275mpd"](4608,z.a,z.a,[R.a]),u["\u0275mpd"](4608,on.a,on.a,[]),u["\u0275mpd"](4608,an.a,an.a,[]),u["\u0275mpd"](4608,rn.a,rn.a,[]),u["\u0275mpd"](4608,sn.a,sn.a,[]),u["\u0275mpd"](4608,dn.a,dn.a,[fl.DatePipe]),u["\u0275mpd"](4608,cn.a,cn.a,[]),u["\u0275mpd"](4608,pn.a,pn.a,[]),u["\u0275mpd"](4608,fn.a,fn.a,[]),u["\u0275mpd"](4608,mn.a,mn.a,[]),u["\u0275mpd"](4608,gn.a,gn.a,[]),u["\u0275mpd"](4608,hn.a,hn.a,[s.a]),u["\u0275mpd"](4608,hl.a,hl.a,[]),u["\u0275mpd"](4608,vn.a,vn.a,[]),u["\u0275mpd"](4608,o.E,o.E,[]),u["\u0275mpd"](4608,o.h,o.h,[]),u["\u0275mpd"](4608,bn.b,bn.b,[]),u["\u0275mpd"](4608,Cn.a,Cn.a,[]),u["\u0275mpd"](4608,Rn.a,Rn.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,yn.a,yn.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,Rn.a,u.ApplicationRef]),u["\u0275mpd"](4608,In.a,In.a,[]),u["\u0275mpd"](4608,Il.b,Il.b,[u.RendererFactory2,yn.a]),u["\u0275mpd"](4608,En.ScrollbarHelper,En.ScrollbarHelper,[Vn.DOCUMENT]),u["\u0275mpd"](4608,Tn.DimensionsHelper,Tn.DimensionsHelper,[]),u["\u0275mpd"](4608,wn.ColumnChangesService,wn.ColumnChangesService,[]),u["\u0275mpd"](4608,Sn.f,Sn.f,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,Nn.a,Nn.a,[_n.l,C.a]),u["\u0275mpd"](4608,Dn.NodeDraggableService,Dn.NodeDraggableService,[]),u["\u0275mpd"](4608,Pn.NodeMenuService,Pn.NodeMenuService,[]),u["\u0275mpd"](4608,kn.TreeService,kn.TreeService,[Dn.NodeDraggableService]),u["\u0275mpd"](4608,xn.e,xn.e,[]),u["\u0275mpd"](4608,zn.c,zn.c,[]),u["\u0275mpd"](4608,Fn.r,Fn.r,[]),u["\u0275mpd"](4608,Fn.t,Fn.t,[]),u["\u0275mpd"](4608,Fn.a,Fn.a,[]),u["\u0275mpd"](4608,Fn.h,Fn.h,[]),u["\u0275mpd"](4608,Fn.d,Fn.d,[]),u["\u0275mpd"](4608,Fn.j,Fn.j,[]),u["\u0275mpd"](4608,Fn.s,Fn.s,[Fn.t,Fn.j]),u["\u0275mpd"](1073742336,fl.CommonModule,fl.CommonModule,[]),u["\u0275mpd"](1073742336,qn.a,qn.a,[]),u["\u0275mpd"](1073742336,xn.c,xn.c,[]),u["\u0275mpd"](1073742336,Cn.d,Cn.d,[]),u["\u0275mpd"](1073742336,An.a,An.a,[]),u["\u0275mpd"](1073742336,o.B,o.B,[]),u["\u0275mpd"](1073742336,o.n,o.n,[]),u["\u0275mpd"](1073742336,o.x,o.x,[]),u["\u0275mpd"](1073742336,bn.c,bn.c,[]),u["\u0275mpd"](1073742336,In.d,In.d,[]),u["\u0275mpd"](1073742336,On.ChartsModule,On.ChartsModule,[]),u["\u0275mpd"](1073742336,Il.e,Il.e,[]),u["\u0275mpd"](1073742336,Ln.a,Ln.a,[]),u["\u0275mpd"](1073742336,Sn.e,Sn.e,[]),u["\u0275mpd"](1073742336,jn.a,jn.a,[]),u["\u0275mpd"](1073742336,Mn.NgxDatatableModule,Mn.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,_n.p,_n.p,[[2,_n.v],[2,_n.l]]),u["\u0275mpd"](1073742336,Bn.a,Bn.a,[]),u["\u0275mpd"](1073742336,d.a,d.a,[]),u["\u0275mpd"](1073742336,Un.a,Un.a,[]),u["\u0275mpd"](1073742336,zn.d,zn.d,[]),u["\u0275mpd"](1073742336,Gn.TreeModule,Gn.TreeModule,[]),u["\u0275mpd"](1073742336,Kn.a,Kn.a,[]),u["\u0275mpd"](1073742336,Fn.g,Fn.g,[]),u["\u0275mpd"](1073742336,$n.a,$n.a,[]),u["\u0275mpd"](1073742336,M,M,[]),u["\u0275mpd"](1073742336,G,G,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,Sn.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](1024,_n.j,function(){return[[{path:"",component:j},{path:"create",component:N,data:B},{path:"edit/:name",component:N,data:U}]]},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/8.7550b99d388b9ca165da.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/8.7550b99d388b9ca165da.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/8.7550b99d388b9ca165da.js 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/8.7550b99d388b9ca165da.js 2021-03-15 17:51:46.000000000 +0000 @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{nOaW:function(l,n,e){"use strict";e.r(n);var u=e("CcnG"),t=e("sne2"),o=e("gIcY"),i=e("LvDl"),a=e("VNr4"),r=e("t/Na"),s=e("Jm/i"),d=e("pL04"),c=function(){function l(l,n){this.http=l,this.i18n=n,this.apiPath="api/erasure_code_profile",this.formTooltips={k:this.i18n("Each object is split in data-chunks parts, each stored on a different OSD."),m:this.i18n("Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data."),plugins:{jerasure:{description:this.i18n("The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools."),technique:this.i18n("The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2."),packetSize:this.i18n("The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.")},lrc:{description:this.i18n("With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven."),l:this.i18n("Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set."),crushLocality:this.i18n("The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.")},isa:{description:this.i18n("The isa plugin encapsulates the ISA library. It only runs on Intel processors."),technique:this.i18n("The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.")},shec:{description:this.i18n("The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes."),c:this.i18n("The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.")}},crushRoot:this.i18n("The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default."),crushFailureDomain:this.i18n("Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host."),crushDeviceClass:this.i18n("Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map."),directory:this.i18n("Set the directory name from which the erasure code plugin is loaded.")}}return l.prototype.list=function(){return this.http.get(this.apiPath)},l.prototype.create=function(l){return this.http.post(this.apiPath,l,{observe:"response"})},l.prototype.update=function(l){return this.http.put(this.apiPath+"/"+l.name,l,{observe:"response"})},l.prototype.delete=function(l){return this.http.delete(this.apiPath+"/"+l,{observe:"response"})},l.prototype.get=function(l){return this.http.get(this.apiPath+"/"+l)},l.prototype.getInfo=function(){return this.http.get(this.apiPath+"/_info")},l.ngInjectableDef=u.defineInjectable({factory:function(){return new l(u.inject(r.c),u.inject(s.a))},token:l,providedIn:d.a}),l}(),p=e("Ekvf"),f=e("0+/T"),m=e("QFaf"),g=e("1Ni5"),h=e("PhyI"),v=e("kvvV"),b=e("Fgil"),C=e("aexS"),R=e("aXbf"),y=e("kn/O"),I=e("2EZI"),E=function(){return function(){}}(),V=function(){function l(l,n,e,t,o,i){this.formBuilder=l,this.bsModalRef=n,this.taskWrapper=e,this.ecpService=t,this.i18n=o,this.actionLabels=i,this.submitAction=new u.EventEmitter,this.requiredControls=[],this.devices=[],this.tooltips=this.ecpService.formTooltips,this.PLUGIN={LRC:"lrc",SHEC:"shec",JERASURE:"jerasure",ISA:"isa"},this.plugin=this.PLUGIN.JERASURE,this.action=this.actionLabels.CREATE,this.resource=this.i18n("EC Profile"),this.createForm(),this.setJerasureDefaults()}return l.prototype.createForm=function(){var l=this;this.form=this.formBuilder.group({name:[null,[o.A.required,o.A.pattern("[A-Za-z0-9_-]+"),g.a.custom("uniqueName",function(n){return l.names&&-1!==l.names.indexOf(n)})]],plugin:[this.PLUGIN.JERASURE,[o.A.required]],k:[1],m:[1],crushFailureDomain:["host"],crushRoot:["default"],crushDeviceClass:[""],directory:[""],technique:["reed_sol_van"],packetSize:[2048,[o.A.min(1)]],l:[1,[o.A.required,o.A.min(1)]],crushLocality:[""],c:[1,[o.A.required,o.A.min(1)]]}),this.form.get("plugin").valueChanges.subscribe(function(n){return l.onPluginChange(n)})},l.prototype.onPluginChange=function(l){this.plugin=l,l===this.PLUGIN.JERASURE?this.setJerasureDefaults():l===this.PLUGIN.LRC?this.setLrcDefaults():l===this.PLUGIN.ISA?this.setIsaDefaults():l===this.PLUGIN.SHEC&&this.setShecDefaults()},l.prototype.setNumberValidators=function(l,n){var e=[o.A.min(1)];n&&e.push(o.A.required),this.form.get(l).setValidators(e)},l.prototype.setKMValidators=function(l){var n=this;["k","m"].forEach(function(e){return n.setNumberValidators(e,l)})},l.prototype.setJerasureDefaults=function(){this.requiredControls=["k","m"],this.setDefaults({k:4,m:2}),this.setKMValidators(!0),this.techniques=["reed_sol_van","reed_sol_r6_op","cauchy_orig","cauchy_good","liberation","blaum_roth","liber8tion"]},l.prototype.setLrcDefaults=function(){this.requiredControls=["k","m","l"],this.setKMValidators(!0),this.setNumberValidators("l",!0),this.setDefaults({k:4,m:2,l:3})},l.prototype.setIsaDefaults=function(){this.requiredControls=[],this.setKMValidators(!1),this.setDefaults({k:7,m:3}),this.techniques=["reed_sol_van","cauchy"]},l.prototype.setShecDefaults=function(){this.requiredControls=[],this.setKMValidators(!1),this.setDefaults({k:4,m:3,c:2})},l.prototype.setDefaults=function(l){var n=this;Object.keys(l).forEach(function(e){n.form.get(e).pristine&&n.form.silentSet(e,l[e])})},l.prototype.ngOnInit=function(){var l=this;this.ecpService.getInfo().subscribe(function(n){var e=n.plugins,u=n.names,t=n.directory,o=n.devices;l.failureDomains=n.failure_domains,l.plugins=e,l.names=u,l.devices=o,l.form.silentSet("directory",t)})},l.prototype.createJson=function(){var l=this,n={technique:[this.PLUGIN.ISA,this.PLUGIN.JERASURE],packetSize:[this.PLUGIN.JERASURE],l:[this.PLUGIN.LRC],crushLocality:[this.PLUGIN.LRC],c:[this.PLUGIN.SHEC]},e=new E,u=this.form.getValue("plugin");return Object.keys(this.form.controls).filter(function(e){var t=n[e],o=l.form.get(e);return(t&&t.includes(u)||!t)&&(o.dirty||l.requiredControls.includes(e))&&l.form.getValue(e)}).forEach(function(n){l.extendJson(n,e)}),e},l.prototype.extendJson=function(l,n){n[{crushFailureDomain:"crush-failure-domain",crushRoot:"crush-root",crushDeviceClass:"crush-device-class",packetSize:"packetsize",crushLocality:"crush-locality"}[l]||l]=this.form.getValue(l)},l.prototype.onSubmit=function(){var l=this;if(this.form.invalid)this.form.setErrors({cdSubmitButton:!0});else{var n=this.createJson();this.taskWrapper.wrapTaskAroundCall({task:new v.a("ecp/create",{name:n.name}),call:this.ecpService.create(n)}).subscribe(void 0,function(){l.form.setErrors({cdSubmitButton:!0})},function(){l.bsModalRef.hide(),l.submitAction.emit(n)})}},l}(),T=e("DNAf"),w=e("a96k"),S=function(){return function(l){this.erasureInfo=!1,this.crushInfo=!1,this.pgs=1,this.poolTypes=["erasure","replicated"],this.applications={selected:[],available:[new w.a(!1,"cephfs",""),new w.a(!1,"rbd",""),new w.a(!1,"rgw","")],validators:[o.A.pattern("[A-Za-z0-9_]+"),o.A.maxLength(128)],messages:new T.a({empty:l("No applications added"),selectionLimit:{text:l("Applications limit reached"),tooltip:l("A pool can only have up to four applications definitions.")},customValidations:{pattern:l("Allowed characters '_a-zA-Z0-9'"),maxlength:l("Maximum length is 128 characters")},filter:l("Filter or add applications"),add:l("Add application")},l)}}}(),N=function(){function l(l,n,e,o,i,a,r,s,d,c,p,f){this.dimlessBinaryPipe=l,this.route=n,this.router=e,this.modalService=o,this.poolService=i,this.authStorageService=a,this.formatter=r,this.bsModalService=s,this.taskWrapper=d,this.ecpService=c,this.i18n=p,this.actionLabels=f,this.editing=!1,this.data=new S(this.i18n),this.externalPgChange=!1,this.current={rules:[]},this.initializeConfigData=new u.EventEmitter,this.currentConfigurationValues={},this.editing=this.router.url.startsWith("/pool/"+t.e.EDIT),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("pool"),this.authenticate(),this.createForm()}return l.prototype.authenticate=function(){this.permission=this.authStorageService.getPermissions().pool,(!this.permission.read||!this.permission.update&&this.editing||!this.permission.create&&!this.editing)&&this.router.navigate(["/404"])},l.prototype.createForm=function(){var l=this,n=new m.a({mode:new o.i("none"),algorithm:new o.i(""),minBlobSize:new o.i("",{updateOn:"blur"}),maxBlobSize:new o.i("",{updateOn:"blur"}),ratio:new o.i("",{updateOn:"blur"})});this.form=new m.a({name:new o.i("",{validators:[o.A.pattern(/^[.A-Za-z0-9_\/-]+$/),o.A.required]}),poolType:new o.i("",{validators:[o.A.required]}),crushRule:new o.i(null,{validators:[g.a.custom("tooFewOsds",function(n){return l.info&&n&&l.info.osd_count1&&n.disabled&&n.enable(),this.ecProfiles=l},l.prototype.initEditMode=function(){var l=this;this.disableForEdit(),this.routeParamsSubscribe=this.route.params.subscribe(function(n){return l.poolService.get(n.name).subscribe(function(n){l.data.pool=n,l.initEditFormData(n)})})},l.prototype.disableForEdit=function(){var l=this;["poolType","crushRule","size","erasureProfile","ecOverwrites"].forEach(function(n){return l.form.get(n).disable()})},l.prototype.initEditFormData=function(l){var n=this;this.initializeConfigData.emit({initialData:l.configuration,sourceType:h.a.pool});var e={name:l.pool_name,poolType:l.type,crushRule:this.info["crush_rules_"+l.type].find(function(n){return n.rule_name===l.crush_rule}),size:l.size,erasureProfile:this.ecProfiles.find(function(n){return n.name===l.erasure_code_profile}),pgNum:l.pg_num,ecOverwrites:l.flags_names.includes("ec_overwrites"),mode:l.options.compression_mode,algorithm:l.options.compression_algorithm,minBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_min_blob_size),maxBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_max_blob_size),ratio:l.options.compression_required_ratio};Object.keys(e).forEach(function(l){var u=e[l];i.isUndefined(u)||""===u||n.form.silentSet(l,u)}),this.data.pgs=this.form.getValue("pgNum"),this.data.applications.selected=l.application_metadata},l.prototype.listenToChanges=function(){this.listenToChangesDuringAddEdit(),this.editing||this.listenToChangesDuringAdd()},l.prototype.listenToChangesDuringAddEdit=function(){var l=this;this.form.get("pgNum").valueChanges.subscribe(function(n){var e=n-l.data.pgs;1===Math.abs(e)&&2!==n?l.doPgPowerJump(e):l.data.pgs=n})},l.prototype.doPgPowerJump=function(l){var n=this.calculatePgPower()+l;this.setPgs(-1===l?Math.round(n):Math.floor(n))},l.prototype.calculatePgPower=function(l){return void 0===l&&(l=this.form.getValue("pgNum")),Math.log(l)/Math.log(2)},l.prototype.setPgs=function(l){var n=Math.pow(2,l<0?0:l);this.data.pgs=n,this.form.silentSet("pgNum",n)},l.prototype.listenToChangesDuringAdd=function(){var l=this;this.form.get("poolType").valueChanges.subscribe(function(n){l.form.get("size").updateValueAndValidity(),l.rulesChange(),"replicated"===n&&l.replicatedRuleChange(),l.pgCalc()}),this.form.get("crushRule").valueChanges.subscribe(function(){"replicated"===l.form.getValue("poolType")&&l.replicatedRuleChange(),l.pgCalc()}),this.form.get("size").valueChanges.subscribe(function(){l.pgCalc()}),this.form.get("erasureProfile").valueChanges.subscribe(function(){l.pgCalc()}),this.form.get("mode").valueChanges.subscribe(function(){["minBlobSize","maxBlobSize","ratio"].forEach(function(n){l.form.get(n).updateValueAndValidity({emitEvent:!1})})}),this.form.get("minBlobSize").valueChanges.subscribe(function(){l.form.get("maxBlobSize").updateValueAndValidity({emitEvent:!1})}),this.form.get("maxBlobSize").valueChanges.subscribe(function(){l.form.get("minBlobSize").updateValueAndValidity({emitEvent:!1})})},l.prototype.rulesChange=function(){var l=this.form.getValue("poolType");if(l&&this.info){var n=this.info["crush_rules_"+l]||[],e=this.form.get("crushRule");1===n.length?(e.setValue(n[0]),e.disable()):(e.setValue(null),e.enable()),this.current.rules=n}else this.current.rules=[]},l.prototype.replicatedRuleChange=function(){if("replicated"===this.form.getValue("poolType")){var l=this.form.get("size"),n=this.form.getValue("size")||3,e=this.getMinSize(),u=this.getMaxSize();nu&&(n=u),n!==l.value&&this.form.silentSet("size",n)}},l.prototype.getMinSize=function(){if(this.info&&!(this.info.osd_count<1)){var l=this.form.getValue("crushRule");return l?l.min_size:1}},l.prototype.getMaxSize=function(){if(this.info&&!(this.info.osd_count<1)){var l=this.info.osd_count;if(this.form.getValue("crushRule")){var n=this.form.get("crushRule").value.max_size;if(n0)return l/e},l.prototype.erasurePgCalc=function(l){var n=this.form.get("erasureProfile"),e=n.value;if((n.valid||n.disabled)&&e)return l/(e.k+e.m)},l.prototype.alignPgs=function(l){void 0===l&&(l=this.form.getValue("pgNum")),this.setPgs(Math.round(this.calculatePgPower(l<1?1:l)))},l.prototype.setComplexValidators=function(){var l=this;this.editing?this.form.get("name").setValidators([this.form.get("name").validator,g.a.custom("uniqueName",function(n){return l.data.pool&&l.info&&-1!==l.info.pool_names.indexOf(n)&&l.info.pool_names.indexOf(n)!==l.info.pool_names.indexOf(l.data.pool.pool_name)})]):(g.a.validateIf(this.form.get("size"),function(){return"replicated"===l.form.get("poolType").value},[g.a.custom("min",function(n){return l.form.getValue("size")&&n=n)},l.prototype.hasCompressionEnabled=function(){return this.form.getValue("mode")&&"none"!==this.form.get("mode").value.toLowerCase()},l.prototype.describeCrushStep=function(l){return[l.op.replace("_"," "),l.item_name||"",l.type?l.num+" type "+l.type:""].join(" ")},l.prototype.addErasureCodeProfile=function(){var l=this;this.modalSubscription=this.modalService.onHide.subscribe(function(){return l.reloadECPs()}),this.bsModalService.show(V)},l.prototype.reloadECPs=function(){var l=this;this.ecpService.list().subscribe(function(n){return l.initEcp(n)}),this.modalSubscription.unsubscribe()},l.prototype.deleteErasureCodeProfile=function(){var l=this,n=this.form.getValue("erasureProfile");if(n){var e=n.name;this.modalSubscription=this.modalService.onHide.subscribe(function(){return l.reloadECPs()}),this.modalService.show(f.a,{initialState:{itemDescription:this.i18n("erasure code profile"),itemNames:[e],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new v.a("ecp/delete",{name:e}),call:l.ecpService.delete(e)})}}})}},l.prototype.submit=function(){var l=this;if(this.form.invalid)this.form.setErrors({cdSubmitButton:!0});else{var n={pool:this.form.getValue("name")};this.assignFormFields(n,[{externalFieldName:"pool_type",formControlName:"poolType"},{externalFieldName:"pg_num",formControlName:"pgNum",editable:!0},"replicated"===this.form.getValue("poolType")?{externalFieldName:"size",formControlName:"size"}:{externalFieldName:"erasure_code_profile",formControlName:"erasureProfile",attr:"name"},{externalFieldName:"rule_name",formControlName:"crushRule",attr:"rule_name"}]),this.info.is_all_bluestore&&(this.assignFormField(n,{externalFieldName:"flags",formControlName:"ecOverwrites",replaceFn:function(){return["ec_overwrites"]}}),"none"!==this.form.getValue("mode")?this.assignFormFields(n,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:function(n){return l.hasCompressionEnabled()&&n}},{externalFieldName:"compression_algorithm",formControlName:"algorithm",editable:!0},{externalFieldName:"compression_min_blob_size",formControlName:"minBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_max_blob_size",formControlName:"maxBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_required_ratio",formControlName:"ratio",editable:!0,resetValue:0}]):this.editing&&this.assignFormFields(n,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:function(){return"unset"}},{externalFieldName:"srcpool",formControlName:"name",editable:!0,replaceFn:function(){return l.data.pool.pool_name}}]));var e=this.data.applications.selected;(e.length>0||this.editing)&&(n.application_metadata=e),"replicated"!==this.form.get("poolType").value||i.isEmpty(this.currentConfigurationValues)||(n.configuration=this.currentConfigurationValues),this.triggerApiTask(n)}},l.prototype.assignFormFields=function(l,n){var e=this;n.forEach(function(n){return e.assignFormField(l,n)})},l.prototype.assignFormField=function(l,n){var e=n.externalFieldName,u=n.formControlName,t=n.attr,o=n.replaceFn,a=n.editable,r=n.resetValue;if(!this.editing||a&&!this.form.get(u).pristine){var s=this.form.getValue(u),d=o?o(s):t?i.get(s,t):s;if(!s||!d){if(!a||i.isUndefined(r))return;d=r}l[e]=d}},l.prototype.triggerApiTask=function(l){var n=this;this.taskWrapper.wrapTaskAroundCall({task:new v.a("pool/"+(this.editing?t.e.EDIT:t.e.CREATE),{pool_name:l.hasOwnProperty("srcpool")?l.srcpool:l.pool}),call:this.poolService[this.editing?t.e.UPDATE:t.e.CREATE](l)}).subscribe(void 0,function(l){i.isObject(l.error)&&"34"===l.error.code&&n.form.get("pgNum").setErrors({34:!0}),n.form.setErrors({cdSubmitButton:!0})},function(){return n.router.navigate(["/pool"])})},l.prototype.appSelection=function(){this.form.updateValueAndValidity({emitEvent:!1,onlySelf:!0})},l}(),_=e("MuvH"),D=e("uIqm"),P=e("x38r"),k=e("yJti"),z=e("vCyI"),x=e("o4+5"),F=e("VTlA"),q=e("EgGo"),A=e("d+Og"),O=function(){return function(l){this.pool_name=l}}(),L=new q.a("pool"),j=function(){function l(l,n,e,u,t,o,a,r,s,d,c){var p=this;this.poolService=l,this.taskWrapper=n,this.authStorageService=e,this.taskListService=u,this.modalService=t,this.i18n=o,this.pgCategoryService=a,this.dimlessPipe=r,this.urlBuilder=s,this.configurationService=d,this.actionLabels=c,this.pools=[],this.selection=new z.a,this.executingTasks=[],this.selectionCacheTiers=[],this.monAllowPoolDelete=!1,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return p.urlBuilder.getCreate()},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return p.urlBuilder.getEdit(encodeURIComponent(p.selection.first().pool_name))},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-trash-o",click:function(){return p.deletePoolModal()},name:this.actionLabels.DELETE,disable:function(){return!p.selection.first()||!p.monAllowPoolDelete},disableDesc:function(){return p.getDisableDesc()}}],this.permissions.configOpt.read&&this.configurationService.get("mon_allow_pool_delete").subscribe(function(l){if(i.has(l,"value")){var n=i.find(l.value,function(l){return"mon"===l.section})||{value:!1};p.monAllowPoolDelete="true"===n.value}})}return l.prototype.ngOnInit=function(){var l=this,n=function(l,n,e){return i.get(n,l)>i.get(e,l)?1:-1};this.columns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:4,cellTransformation:P.a.executing},{prop:"type",name:this.i18n("Type"),flexGrow:2},{prop:"application_metadata",name:this.i18n("Applications"),flexGrow:3},{prop:"pg_status",name:this.i18n("PG Status"),flexGrow:3,cellClass:function(n){return l.getPgStatusCellClass(n.row,n.column,n.value)}},{prop:"size",name:this.i18n("Replica Size"),flexGrow:2,cellClass:"text-right"},{prop:"last_change",name:this.i18n("Last Change"),flexGrow:2,cellClass:"text-right"},{prop:"erasure_code_profile",name:this.i18n("Erasure Coded Profile"),flexGrow:2},{prop:"crush_rule",name:this.i18n("Crush Ruleset"),flexGrow:3},{name:this.i18n("Usage"),prop:"usage",cellTemplate:this.poolUsageTpl,flexGrow:3},{prop:"stats.rd_bytes.rates",name:this.i18n("Read bytes"),comparator:function(l,e,u,t){return n("stats.rd_bytes.latest",u,t)},cellTransformation:P.a.sparkline,flexGrow:3},{prop:"stats.wr_bytes.rates",name:this.i18n("Write bytes"),comparator:function(l,e,u,t){return n("stats.wr_bytes.latest",u,t)},cellTransformation:P.a.sparkline,flexGrow:3},{prop:"stats.rd.rate",name:this.i18n("Read ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:P.a.perSecond},{prop:"stats.wr.rate",name:this.i18n("Write ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:P.a.perSecond}],this.taskListService.init(function(){return l.poolService.getList()},void 0,function(n){return l.pools=l.transformPoolsData(n)},function(){l.table.reset(),l.viewCacheStatusList=[{status:k.a.ValueException}]},function(l){return l.name.startsWith("pool/")},function(l,n){return n.metadata.pool_name===l.pool_name},{default:function(l){return new O(l.metadata.pool_name)}})},l.prototype.updateSelection=function(l){this.selection=l,this.getSelectionTiers()},l.prototype.deletePoolModal=function(){var l=this,n=this.selection.first().pool_name;this.modalRef=this.modalService.show(f.a,{initialState:{itemDescription:"Pool",itemNames:[n],submitActionObservable:function(){return l.taskWrapper.wrapTaskAroundCall({task:new v.a("pool/"+t.e.DELETE,{pool_name:n}),call:l.poolService.delete(n)})}}})},l.prototype.getPgStatusCellClass=function(l,n,e){var u;return(u={"text-right":!0})["pg-"+this.pgCategoryService.getTypeByStates(e)]=!0,u},l.prototype.transformPoolsData=function(l){var n=this,e=["bytes_used","max_avail","avail_raw","percent_used","rd_bytes","wr_bytes","rd","wr"],u={latest:0,rate:0,rates:[]};return i.forEach(l,function(l){l.pg_status=n.transformPgStatus(l.pg_status);var t={};i.forEach(e,function(n){t[n]=l.stats&&l.stats[n]?l.stats[n]:u}),l.stats=t,l.usage=t.percent_used.latest,l.cdExecuting||l.pg_num+l.pg_placement_num===l.pg_num_target+l.pg_placement_num_target||(l.cdExecuting="Updating"),["rd_bytes","wr_bytes"].forEach(function(n){l.stats[n].rates=l.stats[n].rates.map(function(l){return l[1]})}),l.cdIsBinary=!0}),l},l.prototype.transformPgStatus=function(l){var n=[];return i.forEach(l,function(l,e){n.push(l+" "+e)}),n.join(", ")},l.prototype.getSelectionTiers=function(){var l=this.selection.hasSingleSelection?this.selection.first().tiers:[];this.selectionCacheTiers=this.pools.filter(function(n){return l.includes(n.pool)})},l.prototype.getDisableDesc=function(){if(!this.monAllowPoolDelete)return this.i18n("Pool deletion is disabled by the mon_allow_pool_delete configuration setting.")},l}(),M=function(){return function(){}}(),U={breadcrumbs:t.a.CREATE},B={breadcrumbs:t.a.EDIT},G=function(){return function(){}}(),K=e("ES0t"),$=e("MdoF"),J=e("Xg1U"),H=e("z5nN"),W=e("iutN"),Z=e("EEJc"),Y=e("PEr+"),X=e("a40w"),Q=e("pMnS"),ll=e("RIVN"),nl=e("nP0W"),el=e("VBM6"),ul=e("atuK"),tl=e("JIi+"),ol=e("Ur3J"),il=e("I4Qz"),al=e("0rTx"),rl=e("lz+O"),sl=e("u2XS"),dl=e("nhAp"),cl=e("l7Jr"),pl=e("bUo2"),fl=e("Ip0R"),ml=e("4HWh"),gl=e("p4Cf"),hl=e("ANnk"),vl=e("f/UV"),bl=e("8xTl"),Cl=e("IZUe"),Rl=e("gp3X"),yl=e("sb0X"),Il=e("KVJa"),El=e("Z21x"),Vl=e("DQlY"),Tl=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function wl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Sl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The name can only consist of alphanumeric characters, dashes and underscores."]))],null,null)}function Nl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The chosen erasure code profile name is already in use."]))],null,null)}function _l(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Dl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Pl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function kl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function zl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function xl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 2."]))],null,null)}function Fl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function ql(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Al(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function Ol(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function Ll(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","c"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Durability estimator (c)"])),(l()(),u["\u0275eld"](6,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](7,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](8,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](9,0,null,null,7,"input",[["class","form-control"],["formControlName","c"],["id","c"],["name","c"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,11)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,12).onTouched()&&t),t},null,null)),u["\u0275did"](10,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](11,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](12,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](14,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](16,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ol)),u["\u0275did"](18,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("c",u["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",t),l(n,7,0,e.tooltips.plugins.shec.c),l(n,14,0,"c"),l(n,18,0,e.form.showError("c",u["\u0275nov"](n.parent,12),"min"))},function(l,n){l(n,9,0,u["\u0275nov"](n,16).ngClassUntouched,u["\u0275nov"](n,16).ngClassTouched,u["\u0275nov"](n,16).ngClassPristine,u["\u0275nov"](n,16).ngClassDirty,u["\u0275nov"](n,16).ngClassValid,u["\u0275nov"](n,16).ngClassInvalid,u["\u0275nov"](n,16).ngClassPending)})}function jl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Ml(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function Ul(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,5,"label",[["class","control-label col-sm-3"],["for","l"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Locality (l)"])),(l()(),u["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](8,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](9,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","l"],["id","l"],["name","l"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,12)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,12)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,13).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,13).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,13).onTouched()&&t),t},null,null)),u["\u0275did"](11,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](12,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](13,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](15,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](17,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,jl)),u["\u0275did"](19,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ml)),u["\u0275did"](21,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("l",u["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",t),l(n,8,0,e.tooltips.plugins.lrc.l),l(n,15,0,"l"),l(n,19,0,e.form.showError("l",u["\u0275nov"](n.parent,12),"required")),l(n,21,0,e.form.showError("l",u["\u0275nov"](n.parent,12),"min"))},function(l,n){l(n,10,0,u["\u0275nov"](n,17).ngClassUntouched,u["\u0275nov"](n,17).ngClassTouched,u["\u0275nov"](n,17).ngClassPristine,u["\u0275nov"](n,17).ngClassDirty,u["\u0275nov"](n,17).ngClassValid,u["\u0275nov"](n,17).ngClassInvalid,u["\u0275nov"](n,17).ngClassPending)})}function Bl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Gl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Kl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function $l(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["None"]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Jl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Hl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushLocality"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush Locality"])),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](5,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](6,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,12,"select",[["class","form-control"],["formControlName","crushLocality"],["id","crushLocality"],["name","crushLocality"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,9).onTouched()&&t),t},null,null)),u["\u0275did"](8,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](9,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](11,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](13,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Kl)),u["\u0275did"](15,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,$l)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Jl)),u["\u0275did"](19,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,5,0,e.tooltips.plugins.lrc.crushLocality),l(n,11,0,"crushLocality"),l(n,15,0,!e.failureDomains),l(n,17,0,e.failureDomains&&e.failureDomains.length>0),l(n,19,0,e.failureDomains)},function(l,n){l(n,7,0,u["\u0275nov"](n,13).ngClassUntouched,u["\u0275nov"](n,13).ngClassTouched,u["\u0275nov"](n,13).ngClassPristine,u["\u0275nov"](n,13).ngClassDirty,u["\u0275nov"](n,13).ngClassValid,u["\u0275nov"](n,13).ngClassInvalid,u["\u0275nov"](n,13).ngClassPending)})}function Wl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Zl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","technique"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Technique"])),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](5,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](6,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,8,"select",[["class","form-control"],["formControlName","technique"],["id","technique"],["name","technique"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,9).onTouched()&&t),t},null,null)),u["\u0275did"](8,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](9,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](11,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](13,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Wl)),u["\u0275did"](15,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,5,0,e.tooltips.plugins[e.plugin].technique),l(n,11,0,"technique"),l(n,15,0,e.techniques)},function(l,n){l(n,7,0,u["\u0275nov"](n,13).ngClassUntouched,u["\u0275nov"](n,13).ngClassTouched,u["\u0275nov"](n,13).ngClassPristine,u["\u0275nov"](n,13).ngClassDirty,u["\u0275nov"](n,13).ngClassValid,u["\u0275nov"](n,13).ngClassInvalid,u["\u0275nov"](n,13).ngClassPending)})}function Yl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function Xl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","packetSize"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Packetsize"])),(l()(),u["\u0275eld"](6,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](7,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](8,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](9,0,null,null,7,"input",[["class","form-control"],["formControlName","packetSize"],["id","packetSize"],["name","packetSize"],["placeholder","Packetsize..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,11)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,12).onTouched()&&t),t},null,null)),u["\u0275did"](10,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](11,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](12,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](14,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](16,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Yl)),u["\u0275did"](18,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("packetSize",u["\u0275nov"](n.parent,12)));l(n,1,0,"form-group",t),l(n,7,0,e.tooltips.plugins.jerasure.packetSize),l(n,14,0,"packetSize"),l(n,18,0,e.form.showError("packetSize",u["\u0275nov"](n.parent,12),"min"))},function(l,n){l(n,9,0,u["\u0275nov"](n,16).ngClassUntouched,u["\u0275nov"](n,16).ngClassTouched,u["\u0275nov"](n,16).ngClassPristine,u["\u0275nov"](n,16).ngClassDirty,u["\u0275nov"](n,16).ngClassValid,u["\u0275nov"](n,16).ngClassInvalid,u["\u0275nov"](n,16).ngClassPending)})}function Ql(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function ln(l){return u["\u0275vid"](0,[u["\u0275pid"](0,fl.TitleCasePipe,[]),u["\u0275pid"](0,bl.a,[]),(l()(),u["\u0275eld"](2,0,null,null,7,"div",[["class","modal-header"]],null,null,null,null,null)),(l()(),u["\u0275eld"](3,0,null,null,3,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(l()(),u["\u0275ted"](4,null,[""," ",""])),u["\u0275ppd"](5,1),u["\u0275ppd"](6,1),(l()(),u["\u0275eld"](7,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.bsModalRef.hide()&&u),u},null,null)),(l()(),u["\u0275eld"](8,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["\xd7"])),(l()(),u["\u0275eld"](10,0,null,null,181,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var t=!0;return"submit"===n&&(t=!1!==u["\u0275nov"](l,12).onSubmit(e)&&t),"reset"===n&&(t=!1!==u["\u0275nov"](l,12).onReset()&&t),t},null,null)),u["\u0275did"](11,16384,null,0,o.D,[],null,null),u["\u0275did"](12,540672,[["frm",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,o.d,null,[o.l]),u["\u0275did"](14,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),u["\u0275eld"](15,0,null,null,168,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](16,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](17,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](18,{"has-error":0}),(l()(),u["\u0275eld"](19,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Name"])),(l()(),u["\u0275eld"](22,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](23,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](24,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,27)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,27).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,27)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,27)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](25,4210688,null,0,Cl.a,[u.ElementRef],null,null),u["\u0275did"](26,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](27,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](29,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](31,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,wl)),u["\u0275did"](33,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Sl)),u["\u0275did"](35,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Nl)),u["\u0275did"](37,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](38,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](39,0,null,null,5,"label",[["class","control-label col-sm-3"],["for","plugin"]],null,null,null,null,null)),(l()(),u["\u0275eld"](40,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Plugin"])),(l()(),u["\u0275eld"](42,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](43,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](44,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](45,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](46,0,null,null,10,"select",[["class","form-control"],["formControlName","plugin"],["id","plugin"],["name","plugin"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,48).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,48).onTouched()&&t),t},null,null)),u["\u0275did"](47,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](48,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](50,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](52,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,_l)),u["\u0275did"](54,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Dl)),u["\u0275did"](56,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Pl)),u["\u0275did"](58,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](59,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](60,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](61,{"has-error":0}),(l()(),u["\u0275eld"](62,0,null,null,6,"label",[["class","control-label col-sm-3"],["for","k"]],null,null,null,null,null)),(l()(),u["\u0275eld"](63,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Data chunks (k)"])),(l()(),u["\u0275and"](16777216,null,null,1,null,kl)),u["\u0275did"](66,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](67,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](68,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](69,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](70,0,null,null,7,"input",[["class","form-control"],["formControlName","k"],["id","k"],["name","k"],["ng-model","$ctrl.erasureCodeProfile.k"],["placeholder","Data chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,72)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,72).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,72)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,72)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,73).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,73).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,73).onTouched()&&t),t},null,null)),u["\u0275did"](71,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](72,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](73,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](75,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](77,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,zl)),u["\u0275did"](79,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,xl)),u["\u0275did"](81,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](82,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](83,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](84,{"has-error":0}),(l()(),u["\u0275eld"](85,0,null,null,6,"label",[["class","control-label col-sm-3"],["for","m"]],null,null,null,null,null)),(l()(),u["\u0275eld"](86,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Coding chunks (m)"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Fl)),u["\u0275did"](89,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](90,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](91,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](92,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](93,0,null,null,7,"input",[["class","form-control"],["formControlName","m"],["id","m"],["name","m"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,95)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,95).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,95)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,95)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,96).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,96).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,96).onTouched()&&t),t},null,null)),u["\u0275did"](94,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](95,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](96,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](98,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](100,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,ql)),u["\u0275did"](102,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Al)),u["\u0275did"](104,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ll)),u["\u0275did"](106,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ul)),u["\u0275did"](108,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](109,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](110,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushFailureDomain"]],null,null,null,null,null)),(l()(),u["\u0275eld"](111,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush failure domain"])),(l()(),u["\u0275eld"](113,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](114,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](115,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](116,0,null,null,10,"select",[["class","form-control"],["formControlName","crushFailureDomain"],["id","crushFailureDomain"],["name","crushFailureDomain"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,118).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,118).onTouched()&&t),t},null,null)),u["\u0275did"](117,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](118,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](120,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](122,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Bl)),u["\u0275did"](124,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Gl)),u["\u0275did"](126,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Hl)),u["\u0275did"](128,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,2,null,Zl)),u["\u0275did"](130,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),u["\u0275pad"](131,2),(l()(),u["\u0275and"](16777216,null,null,1,null,Xl)),u["\u0275did"](133,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](134,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](135,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](136,{"has-error":0}),(l()(),u["\u0275eld"](137,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushRoot"]],null,null,null,null,null)),(l()(),u["\u0275eld"](138,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush root"])),(l()(),u["\u0275eld"](140,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](141,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](142,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](143,0,null,null,6,"input",[["class","form-control"],["formControlName","crushRoot"],["id","crushRoot"],["name","crushRoot"],["placeholder","root..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,145)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,145).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,145)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,145)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](144,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](145,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](147,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](149,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](150,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](151,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","crushDeviceClass"]],null,null,null,null,null)),(l()(),u["\u0275eld"](152,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush device class"])),(l()(),u["\u0275eld"](154,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](155,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](156,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](157,0,null,null,12,"select",[["class","form-control"],["formControlName","crushDeviceClass"],["id","crushDeviceClass"],["name","crushDeviceClass"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,159).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,159).onTouched()&&t),t},null,null)),u["\u0275did"](158,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](159,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](161,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](163,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](164,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](165,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](166,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["any"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Ql)),u["\u0275did"](169,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](170,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](171,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","directory"]],null,null,null,null,null)),(l()(),u["\u0275eld"](172,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Directory"])),(l()(),u["\u0275eld"](174,0,null,null,1,"cd-helper",[],null,null,null,ml.b,ml.a)),u["\u0275did"](175,49152,null,0,gl.a,[],{html:[0,"html"]},null),(l()(),u["\u0275eld"](176,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](177,0,null,null,6,"input",[["class","form-control"],["formControlName","directory"],["id","directory"],["name","directory"],["placeholder","Path..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,179)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,179).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,179)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,179)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](178,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](179,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](181,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](183,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](184,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](185,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.onSubmit()&&u),u},Rl.b,Rl.a)),u["\u0275did"](186,114688,null,0,yl.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](187,0,[""," ",""])),u["\u0275ppd"](188,1),u["\u0275ppd"](189,1),(l()(),u["\u0275eld"](190,0,null,null,1,"cd-back-button",[],null,null,null,Il.b,Il.a)),u["\u0275did"](191,49152,null,0,El.a,[fl.Location,t.b],{back:[0,"back"]},null)],function(l,n){var e=n.component;l(n,12,0,e.form);var t=l(n,18,0,e.form.showError("name",u["\u0275nov"](n,12)));l(n,17,0,"form-group",t),l(n,29,0,"name"),l(n,33,0,e.form.showError("name",u["\u0275nov"](n,12),"required")),l(n,35,0,e.form.showError("name",u["\u0275nov"](n,12),"pattern")),l(n,37,0,e.form.showError("name",u["\u0275nov"](n,12),"uniqueName")),l(n,44,0,e.tooltips.plugins[e.plugin].description),l(n,50,0,"plugin"),l(n,54,0,!e.plugins),l(n,56,0,e.plugins),l(n,58,0,e.form.showError("name",u["\u0275nov"](n,12),"required"));var o=l(n,61,0,e.form.showError("k",u["\u0275nov"](n,12)));l(n,60,0,"form-group",o),l(n,66,0,e.requiredControls.includes("k")),l(n,68,0,e.tooltips.k),l(n,75,0,"k"),l(n,79,0,e.form.showError("k",u["\u0275nov"](n,12),"required")),l(n,81,0,e.form.showError("k",u["\u0275nov"](n,12),"min"));var i=l(n,84,0,e.form.showError("m",u["\u0275nov"](n,12)));l(n,83,0,"form-group",i),l(n,89,0,e.requiredControls.includes("m")),l(n,91,0,e.tooltips.m),l(n,98,0,"m"),l(n,102,0,e.form.showError("m",u["\u0275nov"](n,12),"required")),l(n,104,0,e.form.showError("m",u["\u0275nov"](n,12),"min")),l(n,106,0,"shec"===e.plugin),l(n,108,0,e.plugin===e.PLUGIN.LRC),l(n,114,0,e.tooltips.crushFailureDomain),l(n,120,0,"crushFailureDomain"),l(n,124,0,!e.failureDomains),l(n,126,0,e.failureDomains),l(n,128,0,e.plugin===e.PLUGIN.LRC);var a=l(n,131,0,e.PLUGIN.JERASURE,e.PLUGIN.ISA).includes(e.plugin);l(n,130,0,a),l(n,133,0,e.plugin===e.PLUGIN.JERASURE);var r=l(n,136,0,e.form.showError("crushRoot",u["\u0275nov"](n,12)));l(n,135,0,"form-group",r),l(n,141,0,e.tooltips.crushRoot),l(n,147,0,"crushRoot"),l(n,155,0,e.tooltips.crushDeviceClass),l(n,161,0,"crushDeviceClass"),l(n,165,0,""),l(n,166,0,""),l(n,169,0,e.devices),l(n,175,0,e.tooltips.directory),l(n,181,0,"directory"),l(n,186,0,u["\u0275nov"](n,12)),l(n,191,0,e.bsModalRef.hide)},function(l,n){var e=n.component,t=u["\u0275unv"](n,4,0,l(n,5,0,u["\u0275nov"](n,0),e.action)),o=u["\u0275unv"](n,4,1,l(n,6,0,u["\u0275nov"](n,1),e.resource));l(n,4,0,t,o),l(n,10,0,u["\u0275nov"](n,14).ngClassUntouched,u["\u0275nov"](n,14).ngClassTouched,u["\u0275nov"](n,14).ngClassPristine,u["\u0275nov"](n,14).ngClassDirty,u["\u0275nov"](n,14).ngClassValid,u["\u0275nov"](n,14).ngClassInvalid,u["\u0275nov"](n,14).ngClassPending),l(n,24,0,u["\u0275nov"](n,31).ngClassUntouched,u["\u0275nov"](n,31).ngClassTouched,u["\u0275nov"](n,31).ngClassPristine,u["\u0275nov"](n,31).ngClassDirty,u["\u0275nov"](n,31).ngClassValid,u["\u0275nov"](n,31).ngClassInvalid,u["\u0275nov"](n,31).ngClassPending),l(n,46,0,u["\u0275nov"](n,52).ngClassUntouched,u["\u0275nov"](n,52).ngClassTouched,u["\u0275nov"](n,52).ngClassPristine,u["\u0275nov"](n,52).ngClassDirty,u["\u0275nov"](n,52).ngClassValid,u["\u0275nov"](n,52).ngClassInvalid,u["\u0275nov"](n,52).ngClassPending),l(n,70,0,u["\u0275nov"](n,77).ngClassUntouched,u["\u0275nov"](n,77).ngClassTouched,u["\u0275nov"](n,77).ngClassPristine,u["\u0275nov"](n,77).ngClassDirty,u["\u0275nov"](n,77).ngClassValid,u["\u0275nov"](n,77).ngClassInvalid,u["\u0275nov"](n,77).ngClassPending),l(n,93,0,u["\u0275nov"](n,100).ngClassUntouched,u["\u0275nov"](n,100).ngClassTouched,u["\u0275nov"](n,100).ngClassPristine,u["\u0275nov"](n,100).ngClassDirty,u["\u0275nov"](n,100).ngClassValid,u["\u0275nov"](n,100).ngClassInvalid,u["\u0275nov"](n,100).ngClassPending),l(n,116,0,u["\u0275nov"](n,122).ngClassUntouched,u["\u0275nov"](n,122).ngClassTouched,u["\u0275nov"](n,122).ngClassPristine,u["\u0275nov"](n,122).ngClassDirty,u["\u0275nov"](n,122).ngClassValid,u["\u0275nov"](n,122).ngClassInvalid,u["\u0275nov"](n,122).ngClassPending),l(n,143,0,u["\u0275nov"](n,149).ngClassUntouched,u["\u0275nov"](n,149).ngClassTouched,u["\u0275nov"](n,149).ngClassPristine,u["\u0275nov"](n,149).ngClassDirty,u["\u0275nov"](n,149).ngClassValid,u["\u0275nov"](n,149).ngClassInvalid,u["\u0275nov"](n,149).ngClassPending),l(n,157,0,u["\u0275nov"](n,163).ngClassUntouched,u["\u0275nov"](n,163).ngClassTouched,u["\u0275nov"](n,163).ngClassPristine,u["\u0275nov"](n,163).ngClassDirty,u["\u0275nov"](n,163).ngClassValid,u["\u0275nov"](n,163).ngClassInvalid,u["\u0275nov"](n,163).ngClassPending),l(n,177,0,u["\u0275nov"](n,183).ngClassUntouched,u["\u0275nov"](n,183).ngClassTouched,u["\u0275nov"](n,183).ngClassPristine,u["\u0275nov"](n,183).ngClassDirty,u["\u0275nov"](n,183).ngClassValid,u["\u0275nov"](n,183).ngClassInvalid,u["\u0275nov"](n,183).ngClassPending);var i=u["\u0275unv"](n,187,0,l(n,188,0,u["\u0275nov"](n,0),e.action)),a=u["\u0275unv"](n,187,1,l(n,189,0,u["\u0275nov"](n,1),e.resource));l(n,187,0,i,a)})}function nn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-erasure-code-profile-form",[],null,null,null,ln,Tl)),u["\u0275did"](1,114688,null,0,V,[I.a,Vl.a,y.a,c,s.a,t.b],null,null)],function(l,n){l(n,1,0)},null)}var en=u["\u0275ccf"]("cd-erasure-code-profile-form",V,nn,{},{submitAction:"submitAction"},[]),un=e("iExv"),tn=e("85J/"),on=e("+0ag"),an=e("IzCI"),rn=e("Dwqy"),sn=e("uYzU"),dn=e("uhwM"),cn=e("E2fk"),pn=e("a0VL"),fn=e("nSDx"),mn=e("SB+Q"),gn=e("TYzs"),hn=e("BQkM"),vn=e("dEH0"),bn=e("G1/K"),Cn=e("TJUb"),Rn=e("lTVp"),yn=e("OZfm"),In=e("NJnL"),En=e("lqqz"),Vn=e("eajB"),Tn=e("FO+L"),wn=e("ZYjt"),Sn=e("nhM1"),Nn=e("BARL"),_n=e("xtZt"),Dn=e("Avrn"),Pn=e("ZYCi"),kn=e("urB8"),zn=e("JZ5S"),xn=e("Tff5"),Fn=e("YAQW"),qn=e("Da1D"),An=e("ARl4"),On=e("kJI8"),Ln=e("9Xeq"),jn=e("xdbM"),Mn=e("yGOH"),Un=e("V/fk"),Bn=e("F8xH"),Gn=e("ChqD"),Kn=e("PCNd"),$n=e("STEd"),Jn=e("kccj"),Hn=e("k/xb"),Wn=e("C6Ij"),Zn=e("AWcq"),Yn=e("xSw7"),Xn=e("GgAd"),Qn=e("a278"),le=e("insk"),ne=e("mSOc"),ee=e("20UP"),ue=e("pKUh"),te=e("25BL"),oe=e("NUGo"),ie=e("S7zO"),ae=e("EFGL"),re=e("aAWM"),se=e("o8EM"),de=e("sLuX"),ce=e("FSuO"),pe=(e("jKX/"),function(){function l(l,n){this.i18n=l,this.poolService=n,this.cacheTierColumns=[],this.cacheTierColumns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:3},{prop:"cache_mode",name:this.i18n("Cache Mode"),flexGrow:2},{prop:"cache_min_evict_age",name:this.i18n("Min Evict Age"),flexGrow:2},{prop:"cache_min_flush_age",name:this.i18n("Min Flush Age"),flexGrow:2},{prop:"target_max_bytes",name:this.i18n("Target Max Bytes"),flexGrow:2},{prop:"target_max_objects",name:this.i18n("Target Max Objects"),flexGrow:2}]}return l.prototype.ngOnChanges=function(){var l=this;this.selection.hasSingleSelection&&this.poolService.getConfiguration(this.selection.first().pool_name).subscribe(function(n){l.selectedPoolConfiguration=n})},l.prototype.filterNonPoolData=function(l){return i.omit(l,["cdExecuting","cdIsBinary"])},l}()),fe=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function me(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","-xyV8KCiz"]],null,null,null,Qn.b,Qn.a)),u["\u0275did"](3,638976,null,0,le.a,[ne.a,wn.DomSanitizer,ee.a,on.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){var e=n.component;l(n,1,0,"Performance Details"),l(n,3,0,"ceph-pool-detail?var-pool_name="+e.selection.first().pool_name,"one","-xyV8KCiz")},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function ge(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,ae.b,ae.a)),u["\u0275did"](3,638976,null,0,re.a,[R.a,se.a,s.a],{data:[0,"data"]},null)],function(l,n){var e=n.component;l(n,1,0,"Configuration"),l(n,3,0,e.selectedPoolConfiguration)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function he(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Cache Tiers Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,te.b,te.a)),u["\u0275did"](3,2867200,null,0,D.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},null)],function(l,n){var e=n.component;l(n,1,0,"Cache Tiers Details"),l(n,3,0,e.cacheTiers,e.cacheTierColumns,"flex",!1)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function ve(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,11,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,ue.b,ue.a)),u["\u0275did"](1,180224,[[1,4],["tabsetChild",4]],0,Fn.d,[Fn.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](3,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,de.b,de.a)),u["\u0275did"](5,638976,null,0,ce.a,[pn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["\u0275and"](16777216,null,0,1,null,me)),u["\u0275did"](7,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,0,1,null,ge)),u["\u0275did"](9,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,0,1,null,he)),u["\u0275did"](11,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,5,0,e.filterNonPoolData(e.selection.first()),!1,!0),l(n,7,0,e.permissions.grafana.read),l(n,9,0,"replicated"===e.selection.first().type),l(n,11,0,e.selection.first().tiers.length>0)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).clazz),l(n,2,0,u["\u0275nov"](n,3).id,u["\u0275nov"](n,3).active,u["\u0275nov"](n,3).addClass)})}function be(l){return u["\u0275vid"](0,[u["\u0275qud"](671088640,1,{tabsetChild:0}),(l()(),u["\u0275and"](16777216,null,null,1,null,ve)),u["\u0275did"](2,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){l(n,2,0,n.component.selection.hasSingleSelection)},null)}var Ce=e("ufoC"),Re=u["\u0275crt"]({encapsulation:0,styles:[[".pg-clean{color:#0b0} .pg-working{color:#2b99a8} .pg-warning{color:#ffc200} .pg-unknown{color:red}"]],data:{}});function ye(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Wn.b,Wn.a)),u["\u0275did"](1,114688,null,0,Zn.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)},null)}function Ie(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[["decimals","2"]],null,null,null,Yn.b,Yn.a)),u["\u0275did"](1,573440,null,0,Xn.a,[],{total:[0,"total"],used:[1,"used"],decimals:[2,"decimals"]},null)],function(l,n){l(n,1,0,n.parent.context.row.stats.bytes_used.latest+n.parent.context.row.stats.avail_raw.latest,n.parent.context.row.stats.bytes_used.latest,"2")},null)}function Ee(l){return u["\u0275vid"](0,[(l()(),u["\u0275and"](16777216,null,null,1,null,Ie)),u["\u0275did"](1,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,null==n.context.row.stats?null:null==n.context.row.stats.avail_raw?null:n.context.row.stats.avail_raw.latest)},null)}function Ve(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","z99hzWtmk"]],null,null,null,Qn.b,Qn.a)),u["\u0275did"](3,638976,null,0,le.a,[ne.a,wn.DomSanitizer,ee.a,on.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"ceph-pools-overview?","two","z99hzWtmk")},function(l,n){l(n,0,0,u["\u0275nov"](n,1).id,u["\u0275nov"](n,1).active,u["\u0275nov"](n,1).addClass)})}function Te(l){return u["\u0275vid"](0,[u["\u0275qud"](402653184,1,{table:0}),u["\u0275qud"](402653184,2,{poolUsageTpl:0}),u["\u0275qud"](402653184,3,{poolConfigurationSourceTpl:0}),(l()(),u["\u0275eld"](3,0,null,null,14,"tabset",[],[[2,"tab-container",null]],null,null,ue.b,ue.a)),u["\u0275did"](4,180224,null,0,Fn.d,[Fn.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](5,0,null,0,10,"tab",[["heading","Pools List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](6,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,ye)),u["\u0275did"](8,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](9,0,null,null,5,"cd-table",[["selectionType","single"]],null,[[null,"updateSelection"]],function(l,n,e){var u=!0;return"updateSelection"===n&&(u=!1!==l.component.updateSelection(e)&&u),u},te.b,te.a)),u["\u0275did"](10,2867200,[[1,4],["table",4]],0,D.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),u["\u0275eld"](11,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,oe.b,oe.a)),u["\u0275did"](12,114688,null,0,ie.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["\u0275eld"](13,0,null,2,1,"cd-pool-details",[["cdTableDetail",""]],null,null,null,be,fe)),u["\u0275did"](14,573440,null,0,pe,[s.a,p.a],{selection:[0,"selection"],permissions:[1,"permissions"],cacheTiers:[2,"cacheTiers"]},null),(l()(),u["\u0275and"](0,[[2,2],["poolUsageTpl",2]],null,0,null,Ee)),(l()(),u["\u0275and"](16777216,null,0,1,null,Ve)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,6,0,"Pools List"),l(n,8,0,e.viewCacheStatusList),l(n,10,0,e.pools,e.columns,"single"),l(n,12,0,e.permissions.pool,e.selection,e.tableActions),l(n,14,0,e.selection,e.permissions,e.selectionCacheTiers),l(n,17,0,e.permissions.grafana.read)},function(l,n){l(n,3,0,u["\u0275nov"](n,4).clazz),l(n,5,0,u["\u0275nov"](n,6).id,u["\u0275nov"](n,6).active,u["\u0275nov"](n,6).addClass)})}function we(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"cd-pool-list",[],null,null,null,Te,Re)),u["\u0275prd"](131584,null,F.a,F.a,[Ce.a,ne.a]),u["\u0275prd"](256,null,q.a,L,[]),u["\u0275did"](3,114688,null,0,j,[p.a,y.a,C.a,F.a,Vl.b,s.a,A.a,x.a,q.a,_.a,t.b],null,null)],function(l,n){l(n,3,0)},null)}var Se=u["\u0275ccf"]("cd-pool-list",j,we,{},{},[]),Ne=e("EmSq"),_e=e("pYKc"),De=e("ppaS"),Pe=e("BH9v"),ke=e("rFfW"),ze=u["\u0275crt"]({encapsulation:0,styles:[[".crush-rule-steps[_ngcontent-%COMP%]{margin-top:10px}"]],data:{}});function xe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"h1",[["class","jumbotron"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,0,"i",[["class","fa fa-lg fa-pulse fa-spinner text-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],null,null)}function Fe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function qe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The chosen Ceph pool name is already in use."]))],null,null)}function Ae(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{value:[0,"value"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function Oe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Le(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function je(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["At least one placement group is needed!"]))],null,null)}function Me(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Your cluster can't handle this many PGs. Please recalculate the PG amount needed."]))],null,null)}function Ue(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The current PGs settings were calculated for you, you should make sure the values suit your needs before submit."]))],null,null)}function Be(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit.rule_name)})}function Ge(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["\u0275ted"](1,null,[" "," "]))],null,function(l,n){l(n,1,0,n.component.describeCrushStep(n.context.$implicit))})}function Ke(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,11,"span",[["class","help-block"],["id","crush-info-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,10,"tabset",[],[[2,"tab-container",null]],null,null,ue.b,ue.a)),u["\u0275did"](2,180224,null,0,Fn.d,[Fn.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](3,0,null,0,3,"tab",[["class","crush-rule-info"],["heading","Crush rule"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](4,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](5,0,null,null,1,"cd-table-key-value",[],null,null,null,de.b,de.a)),u["\u0275did"](6,638976,null,0,ce.a,[pn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["\u0275eld"](7,0,null,0,4,"tab",[["class","crush-rule-steps"],["heading","Crush steps"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](8,212992,null,0,Fn.b,[Fn.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](9,0,null,null,2,"ol",[],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,Ge)),u["\u0275did"](11,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(l,n){var e=n.component;l(n,4,0,"Crush rule"),l(n,6,0,e.form.getValue("crushRule"),!1,!0),l(n,8,0,"Crush steps"),l(n,11,0,e.form.get("crushRule").value.steps)},function(l,n){l(n,1,0,u["\u0275nov"](n,2).clazz),l(n,3,0,u["\u0275nov"](n,4).id,u["\u0275nov"](n,4).active,u["\u0275nov"](n,4).addClass),l(n,7,0,u["\u0275nov"](n,8).id,u["\u0275nov"](n,8).active,u["\u0275nov"](n,8).addClass)})}function $e(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The rule can't be used in the current cluster as it has to few OSDs to meet the minimum required OSD by this rule."]))],null,null)}function Je(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,28,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","crushRule"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Crush ruleset"])),(l()(),u["\u0275eld"](5,0,null,null,23,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,18,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,12,"select",[["class","form-control"],["formControlName","crushRule"],["id","crushRule"],["name","crushSet"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,9).onTouched()&&t),t},null,null)),u["\u0275did"](8,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](9,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](11,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](13,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](14,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](15,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](16,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- Select a crush rule --"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Be)),u["\u0275did"](19,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](20,0,null,null,4,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](21,0,null,null,3,"button",[["class","btn btn-default"],["id","crush-info-button"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0,t=l.component;return"click"===n&&(u=0!=(t.data.crushInfo=!t.data.crushInfo)&&u),u},null,null)),u["\u0275did"](22,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](23,{active:0}),(l()(),u["\u0275eld"](24,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-question-circle"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,Ke)),u["\u0275did"](26,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,$e)),u["\u0275did"](28,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("crushRule",u["\u0275nov"](n.parent.parent,2)));l(n,1,0,"form-group",t),l(n,11,0,"crushRule"),l(n,15,0,null),l(n,16,0,null),l(n,19,0,e.current.rules);var o=l(n,23,0,e.data.crushInfo);l(n,22,0,"btn btn-default",o),l(n,26,0,e.data.crushInfo&&e.form.getValue("crushRule")),l(n,28,0,e.form.showError("crushRule",u["\u0275nov"](n.parent.parent,2),"tooFewOsds"))},function(l,n){l(n,7,0,u["\u0275nov"](n,13).ngClassUntouched,u["\u0275nov"](n,13).ngClassTouched,u["\u0275nov"](n,13).ngClassPristine,u["\u0275nov"](n,13).ngClassDirty,u["\u0275nov"](n,13).ngClassValid,u["\u0275nov"](n,13).ngClassInvalid,u["\u0275nov"](n,13).ngClassPending)})}function He(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,4,"ul",[["class","list-inline"]],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["\u0275ted"](3,null,["Minimum: ",""])),(l()(),u["\u0275eld"](4,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["\u0275ted"](5,null,["Maximum: ",""]))],null,function(l,n){var e=n.component;l(n,3,0,e.getMinSize()),l(n,5,0,e.getMaxSize())})}function We(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](1,null,["The size specified is out of range. A value from "," to "," is valid."]))],null,function(l,n){var e=n.component;l(n,1,0,e.getMinSize(),e.getMaxSize())})}function Ze(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](1,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](2,{"has-error":0}),(l()(),u["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","size"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Replicated size"])),(l()(),u["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](8,0,null,null,7,"input",[["class","form-control"],["formControlName","size"],["id","size"],["name","size"],["type","number"]],[[8,"max",0],[8,"min",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,10)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,10).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,10)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,11).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),t},null,null)),u["\u0275did"](9,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](10,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](11,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](13,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](15,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,He)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,We)),u["\u0275did"](19,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,2,0,e.form.showError("size",u["\u0275nov"](n.parent.parent,2)));l(n,1,0,"form-group",t),l(n,13,0,"size"),l(n,17,0,e.form.showError("size",u["\u0275nov"](n.parent.parent,2))),l(n,19,0,e.form.showError("size",u["\u0275nov"](n.parent.parent,2)))},function(l,n){var e=n.component;l(n,8,0,e.getMaxSize(),e.getMinSize(),u["\u0275nov"](n,15).ngClassUntouched,u["\u0275nov"](n,15).ngClassTouched,u["\u0275nov"](n,15).ngClassPristine,u["\u0275nov"](n,15).ngClassDirty,u["\u0275nov"](n,15).ngClassValid,u["\u0275nov"](n,15).ngClassInvalid,u["\u0275nov"](n,15).ngClassPending)})}function Ye(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function Xe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- No erasure code profile available --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function Qe(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- Select an erasure code profile --"]))],function(l,n){l(n,1,0,null),l(n,2,0,null)},null)}function lu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit.name)})}function nu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"span",[["class","help-block"],["id","ecp-info-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"cd-table-key-value",[],null,null,null,de.b,de.a)),u["\u0275did"](2,638976,null,0,ce.a,[pn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null)],function(l,n){l(n,2,0,n.component.form.getValue("erasureProfile"),!1,!0)},null)}function eu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,30,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","erasureProfile"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Erasure code profile"])),(l()(),u["\u0275eld"](3,0,null,null,27,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,24,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](5,0,null,null,14,"select",[["class","form-control"],["formControlName","erasureProfile"],["id","erasureProfile"],["name","erasureProfile"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,7).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,7).onTouched()&&t),t},null,null)),u["\u0275did"](6,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](7,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](9,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](11,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ye)),u["\u0275did"](13,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Xe)),u["\u0275did"](15,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Qe)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,lu)),u["\u0275did"](19,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](20,0,null,null,8,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](21,0,null,null,3,"button",[["class","btn btn-default"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],function(l,n,e){var u=!0,t=l.component;return"click"===n&&(u=0!=(t.data.erasureInfo=!t.data.erasureInfo)&&u),u},null,null)),u["\u0275did"](22,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](23,{active:0}),(l()(),u["\u0275eld"](24,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-question-circle"]],null,null,null,null,null)),(l()(),u["\u0275eld"](25,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.addErasureCodeProfile()&&u),u},null,null)),(l()(),u["\u0275eld"](26,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-plus"]],null,null,null,null,null)),(l()(),u["\u0275eld"](27,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.deleteErasureCodeProfile()&&u),u},null,null)),(l()(),u["\u0275eld"](28,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-trash-o"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,nu)),u["\u0275did"](30,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,9,0,"erasureProfile"),l(n,13,0,!e.ecProfiles),l(n,15,0,e.ecProfiles&&0===e.ecProfiles.length),l(n,17,0,e.ecProfiles&&e.ecProfiles.length>0),l(n,19,0,e.ecProfiles);var u=l(n,23,0,e.data.erasureInfo);l(n,22,0,"btn btn-default",u),l(n,30,0,e.data.erasureInfo&&e.form.getValue("erasureProfile"))},function(l,n){var e=n.component;l(n,5,0,u["\u0275nov"](n,11).ngClassUntouched,u["\u0275nov"](n,11).ngClassTouched,u["\u0275nov"](n,11).ngClassPristine,u["\u0275nov"](n,11).ngClassDirty,u["\u0275nov"](n,11).ngClassValid,u["\u0275nov"](n,11).ngClassInvalid,u["\u0275nov"](n,11).ngClassPending),l(n,25,0,e.editing),l(n,27,0,e.editing||e.ecProfiles.length<1)})}function uu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Flags"])),(l()(),u["\u0275eld"](3,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](5,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,6,"input",[["formControlName","ecOverwrites"],["id","ec-overwrites"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,8).onChange(e.target.checked)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,8).onTouched()&&t),t},null,null)),u["\u0275did"](7,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](8,16384,null,0,o.c,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.c]),u["\u0275did"](10,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](12,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](13,0,null,null,1,"label",[["for","ec-overwrites"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["EC Overwrites"]))],function(l,n){l(n,10,0,"ecOverwrites")},function(l,n){l(n,6,0,u["\u0275nov"](n,12).ngClassUntouched,u["\u0275nov"](n,12).ngClassTouched,u["\u0275nov"](n,12).ngClassPristine,u["\u0275nov"](n,12).ngClassDirty,u["\u0275nov"](n,12).ngClassValid,u["\u0275nov"](n,12).ngClassInvalid,u["\u0275nov"](n,12).ngClassPending)})}function tu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,37,"div",[],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,28,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](2,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](3,{"has-error":0}),(l()(),u["\u0275eld"](4,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","pgNum"]],null,null,null,null,null)),(l()(),u["\u0275eld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Placement groups"])),(l()(),u["\u0275eld"](7,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](8,0,null,null,21,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](9,0,null,null,9,"input",[["class","form-control"],["formControlName","pgNum"],["id","pgNum"],["min","1"],["name","pgNum"],["required",""],["type","number"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"focus"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0,o=l.component;return"input"===n&&(t=!1!==u["\u0275nov"](l,11)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,11).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,11)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,12).onTouched()&&t),"focus"===n&&(t=0!=(o.externalPgChange=!1)&&t),"blur"===n&&(t=!1!==o.alignPgs()&&t),t},null,null)),u["\u0275did"](10,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](11,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](12,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275did"](13,16384,null,0,o.y,[],{required:[0,"required"]},null),u["\u0275prd"](1024,null,o.o,function(l){return[l]},[o.y]),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](16,671744,null,0,o.j,[[3,o.d],[6,o.o],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](18,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Le)),u["\u0275did"](20,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,je)),u["\u0275did"](22,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Me)),u["\u0275did"](24,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](25,0,null,null,2,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275eld"](26,0,null,null,1,"a",[["href","http://ceph.com/pgcalc"],["target","_blank"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Calculation help"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Ue)),u["\u0275did"](29,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Je)),u["\u0275did"](31,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ze)),u["\u0275did"](33,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,eu)),u["\u0275did"](35,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,uu)),u["\u0275did"](37,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,3,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2)));l(n,2,0,"form-group",t),l(n,13,0,""),l(n,16,0,"pgNum"),l(n,20,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2),"required")),l(n,22,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2),"min")),l(n,24,0,e.form.showError("pgNum",u["\u0275nov"](n.parent,2),"34")),l(n,29,0,e.externalPgChange),l(n,31,0,e.form.getValue("poolType")&&e.current.rules.length>0),l(n,33,0,"replicated"===e.form.getValue("poolType")),l(n,35,0,"erasure"===e.form.getValue("poolType")),l(n,37,0,e.info.is_all_bluestore&&"erasure"===e.form.getValue("poolType"))},function(l,n){l(n,9,0,u["\u0275nov"](n,13).required?"":null,u["\u0275nov"](n,18).ngClassUntouched,u["\u0275nov"](n,18).ngClassTouched,u["\u0275nov"](n,18).ngClassPristine,u["\u0275nov"](n,18).ngClassDirty,u["\u0275nov"](n,18).ngClassValid,u["\u0275nov"](n,18).ngClassInvalid,u["\u0275nov"](n,18).ngClassPending)})}function ou(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{value:[0,"value"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function iu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["Loading..."]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function au(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- No erasure compression algorithm available --"]))],function(l,n){l(n,1,0,""),l(n,2,0,"")},null)}function ru(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["\u0275did"](1,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{value:[0,"value"]},null),u["\u0275did"](2,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["\u0275ted"](3,null,[" "," "]))],function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)},function(l,n){l(n,3,0,n.context.$implicit)})}function su(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be greater than 0"]))],null,null)}function du(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be less than the maximum blob size"]))],null,null)}function cu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be greater than 0"]))],null,null)}function pu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be greater than the minimum blob size"]))],null,null)}function fu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Value should be between 0.0 and 1.0"]))],null,null)}function mu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,71,"div",[],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](2,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](3,{"has-error":0}),(l()(),u["\u0275eld"](4,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","algorithm"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Algorithm"])),(l()(),u["\u0275eld"](6,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,12,"select",[["class","form-control"],["formControlName","algorithm"],["id","algorithm"],["name","algorithm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,9).onTouched()&&t),t},null,null)),u["\u0275did"](8,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](9,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](11,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](13,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,iu)),u["\u0275did"](15,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,au)),u["\u0275did"](17,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,ru)),u["\u0275did"](19,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275eld"](20,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](21,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](22,{"has-error":0}),(l()(),u["\u0275eld"](23,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","minBlobSize"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Minimum blob size"])),(l()(),u["\u0275eld"](25,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](26,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","minBlobSize"],["id","minBlobSize"],["min","0"],["name","minBlobSize"],["placeholder","e.g., 128KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,27)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,27).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,27)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,27)._compositionEnd(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,31).onBlur(e.target.value)&&t),t},null,null)),u["\u0275did"](27,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](29,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](31,81920,null,0,Ne.a,[u.ElementRef,o.q,b.a,R.a],{defaultUnit:[0,"defaultUnit"]},null),u["\u0275did"](32,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](33,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,su)),u["\u0275did"](35,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,du)),u["\u0275did"](37,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](38,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](39,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](40,{"has-error":0}),(l()(),u["\u0275eld"](41,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","maxBlobSize"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Maximum blob size"])),(l()(),u["\u0275eld"](43,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](44,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","maxBlobSize"],["id","maxBlobSize"],["min","0"],["placeholder","e.g., 512KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,45)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,45).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,45)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,45)._compositionEnd(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,49).onBlur(e.target.value)&&t),t},null,null)),u["\u0275did"](45,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](47,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](49,81920,null,0,Ne.a,[u.ElementRef,o.q,b.a,R.a],{defaultUnit:[0,"defaultUnit"]},null),u["\u0275did"](50,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](51,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,cu)),u["\u0275did"](53,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,pu)),u["\u0275did"](55,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](56,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](57,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](58,{"has-error":0}),(l()(),u["\u0275eld"](59,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","ratio"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Ratio"])),(l()(),u["\u0275eld"](61,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](62,0,null,null,7,"input",[["class","form-control"],["formControlName","ratio"],["id","ratio"],["max","1"],["min","0"],["name","ratio"],["placeholder","Compression ratio"],["step","0.1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,64)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,64).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,64)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,64)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["\u0275nov"](l,65).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["\u0275nov"](l,65).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,65).onTouched()&&t),t},null,null)),u["\u0275did"](63,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](64,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275did"](65,16384,null,0,o.C,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l,n){return[l,n]},[o.e,o.C]),u["\u0275did"](67,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](69,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,fu)),u["\u0275did"](71,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component,t=l(n,3,0,e.form.showError("algorithm",u["\u0275nov"](n.parent.parent,2)));l(n,2,0,"form-group",t),l(n,11,0,"algorithm"),l(n,15,0,!e.info.compression_algorithms),l(n,17,0,e.info.compression_algorithms&&0===e.info.compression_algorithms.length),l(n,19,0,e.info.compression_algorithms);var o=l(n,22,0,e.form.showError("minBlobSize",u["\u0275nov"](n.parent.parent,2)));l(n,21,0,"form-group",o),l(n,29,0,"minBlobSize"),l(n,31,0,"KiB"),l(n,35,0,e.form.showError("minBlobSize",u["\u0275nov"](n.parent.parent,2),"min")),l(n,37,0,e.form.showError("minBlobSize",u["\u0275nov"](n.parent.parent,2),"maximum"));var i=l(n,40,0,e.form.showError("maxBlobSize",u["\u0275nov"](n.parent.parent,2)));l(n,39,0,"form-group",i),l(n,47,0,"maxBlobSize"),l(n,49,0,"KiB"),l(n,53,0,e.form.showError("maxBlobSize",u["\u0275nov"](n.parent.parent,2),"min")),l(n,55,0,e.form.showError("maxBlobSize",u["\u0275nov"](n.parent.parent,2),"minimum"));var a=l(n,58,0,e.form.showError("ratio",u["\u0275nov"](n.parent.parent,2)));l(n,57,0,"form-group",a),l(n,67,0,"ratio"),l(n,71,0,e.form.showError("ratio",u["\u0275nov"](n.parent.parent,2),"min")||e.form.showError("ratio",u["\u0275nov"](n.parent.parent,2),"max"))},function(l,n){l(n,7,0,u["\u0275nov"](n,13).ngClassUntouched,u["\u0275nov"](n,13).ngClassTouched,u["\u0275nov"](n,13).ngClassPristine,u["\u0275nov"](n,13).ngClassDirty,u["\u0275nov"](n,13).ngClassValid,u["\u0275nov"](n,13).ngClassInvalid,u["\u0275nov"](n,13).ngClassPending),l(n,26,0,u["\u0275nov"](n,33).ngClassUntouched,u["\u0275nov"](n,33).ngClassTouched,u["\u0275nov"](n,33).ngClassPristine,u["\u0275nov"](n,33).ngClassDirty,u["\u0275nov"](n,33).ngClassValid,u["\u0275nov"](n,33).ngClassInvalid,u["\u0275nov"](n,33).ngClassPending),l(n,44,0,u["\u0275nov"](n,51).ngClassUntouched,u["\u0275nov"](n,51).ngClassTouched,u["\u0275nov"](n,51).ngClassPristine,u["\u0275nov"](n,51).ngClassDirty,u["\u0275nov"](n,51).ngClassValid,u["\u0275nov"](n,51).ngClassInvalid,u["\u0275nov"](n,51).ngClassPending),l(n,62,0,u["\u0275nov"](n,69).ngClassUntouched,u["\u0275nov"](n,69).ngClassTouched,u["\u0275nov"](n,69).ngClassPristine,u["\u0275nov"](n,69).ngClassDirty,u["\u0275nov"](n,69).ngClassValid,u["\u0275nov"](n,69).ngClassInvalid,u["\u0275nov"](n,69).ngClassPending)})}function gu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,20,"div",[["formGroupName","compression"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),u["\u0275did"](1,212992,null,0,o.m,[[3,o.d],[8,null],[8,null]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.d,null,[o.m]),u["\u0275did"](3,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),u["\u0275eld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Compression"])),(l()(),u["\u0275eld"](6,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","mode"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Mode"])),(l()(),u["\u0275eld"](9,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](10,0,null,null,8,"select",[["class","form-control"],["formControlName","mode"],["id","mode"],["name","mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,12).onTouched()&&t),t},null,null)),u["\u0275did"](11,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](12,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](14,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](16,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,ou)),u["\u0275did"](18,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,mu)),u["\u0275did"](20,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,1,0,"compression"),l(n,14,0,"mode"),l(n,18,0,e.info.compression_modes),l(n,20,0,e.hasCompressionEnabled())},function(l,n){l(n,0,0,u["\u0275nov"](n,3).ngClassUntouched,u["\u0275nov"](n,3).ngClassTouched,u["\u0275nov"](n,3).ngClassPristine,u["\u0275nov"](n,3).ngClassDirty,u["\u0275nov"](n,3).ngClassValid,u["\u0275nov"](n,3).ngClassInvalid,u["\u0275nov"](n,3).ngClassPending),l(n,10,0,u["\u0275nov"](n,16).ngClassUntouched,u["\u0275nov"](n,16).ngClassTouched,u["\u0275nov"](n,16).ngClassPristine,u["\u0275nov"](n,16).ngClassDirty,u["\u0275nov"](n,16).ngClassValid,u["\u0275nov"](n,16).ngClassInvalid,u["\u0275nov"](n,16).ngClassPending)})}function hu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["It's not possible to create an RBD pool with '/' in the name."])),(l()(),u["\u0275eld"](4,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Please change the name or remove 'rbd' from the applications list."]))],null,null)}function vu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,80,"form",[["class","form-horizontal"],["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var t=!0;return"submit"===n&&(t=!1!==u["\u0275nov"](l,2).onSubmit(e)&&t),"reset"===n&&(t=!1!==u["\u0275nov"](l,2).onReset()&&t),t},null,null)),u["\u0275did"](1,16384,null,0,o.D,[],null,null),u["\u0275did"](2,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,o.d,null,[o.l]),u["\u0275did"](4,16384,null,0,o.s,[[4,o.d]],null,null),(l()(),u["\u0275eld"](5,0,null,null,75,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),u["\u0275eld"](7,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),u["\u0275ted"](8,null,[""," ",""])),u["\u0275ppd"](9,1),u["\u0275ppd"](10,1),(l()(),u["\u0275eld"](11,0,null,null,60,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](12,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](13,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](14,{"has-error":0}),(l()(),u["\u0275eld"](15,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](16,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Name"])),(l()(),u["\u0275eld"](18,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](19,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["\u0275nov"](l,23)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,23).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["\u0275nov"](l,23)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["\u0275nov"](l,23)._compositionEnd(e.target.value)&&t),t},null,null)),u["\u0275did"](21,4210688,null,0,Cl.a,[u.ElementRef],null,null),u["\u0275did"](22,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](23,16384,null,0,o.e,[u.Renderer2,u.ElementRef,[2,o.b]],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.e]),u["\u0275did"](25,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](27,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Fe)),u["\u0275did"](29,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,qe)),u["\u0275did"](31,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](32,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](33,278528,null,0,fl.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](34,{"has-error":0}),(l()(),u["\u0275eld"](35,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","poolType"]],null,null,null,null,null)),(l()(),u["\u0275eld"](36,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Pool type"])),(l()(),u["\u0275eld"](38,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["\u0275eld"](39,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](40,0,null,null,12,"select",[["class","form-control"],["formControlName","poolType"],["id","poolType"],["name","poolType"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["\u0275nov"](l,42).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["\u0275nov"](l,42).onTouched()&&t),t},null,null)),u["\u0275did"](41,4210688,null,0,hl.a,[[2,vl.a],C.a,u.ElementRef],null,null),u["\u0275did"](42,16384,null,0,o.z,[u.Renderer2,u.ElementRef],null,null),u["\u0275prd"](1024,null,o.p,function(l){return[l]},[o.z]),u["\u0275did"](44,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,o.q,null,[o.j]),u["\u0275did"](46,16384,null,0,o.r,[[4,o.q]],null,null),(l()(),u["\u0275eld"](47,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["\u0275did"](48,147456,null,0,o.v,[u.ElementRef,u.Renderer2,[2,o.z]],{ngValue:[0,"ngValue"]},null),u["\u0275did"](49,147456,null,0,o.G,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["\u0275ted"](-1,null,["-- Select a pool type --"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Ae)),u["\u0275did"](52,278528,null,0,fl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Oe)),u["\u0275did"](54,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,tu)),u["\u0275did"](56,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](57,0,null,null,6,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](58,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","applications"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Applications"])),(l()(),u["\u0275eld"](60,0,null,null,3,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](61,0,null,null,2,"span",[["class","form-control no-border full-height"]],null,null,null,null,null)),(l()(),u["\u0275eld"](62,0,null,null,1,"cd-select-badges",[["id","applications"]],null,[[null,"selection"]],function(l,n,e){var u=!0;return"selection"===n&&(u=!1!==l.component.appSelection()&&u),u},_e.b,_e.a)),u["\u0275did"](63,49152,null,0,De.a,[s.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"],selectionLimit:[3,"selectionLimit"],customBadges:[4,"customBadges"],customBadgeValidators:[5,"customBadgeValidators"]},{selection:"selection"}),(l()(),u["\u0275and"](16777216,null,null,1,null,gu)),u["\u0275did"](65,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](66,0,null,null,2,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),u["\u0275eld"](67,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],function(l,n,e){var u=!0;return"changes"===n&&(u=!1!==(l.component.currentConfigurationValues=e())&&u),u},Pe.b,Pe.a)),u["\u0275did"](68,114688,null,0,ke.a,[R.a,se.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),u["\u0275eld"](69,0,null,null,2,"div",[["class","form-group has-error"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,hu)),u["\u0275did"](71,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](72,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](73,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["\u0275eld"](74,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u},Rl.b,Rl.a)),u["\u0275did"](75,114688,null,0,yl.a,[u.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](76,0,[""," ",""])),u["\u0275ppd"](77,1),u["\u0275ppd"](78,1),(l()(),u["\u0275eld"](79,0,null,null,1,"cd-back-button",[],null,null,null,Il.b,Il.a)),u["\u0275did"](80,49152,null,0,El.a,[fl.Location,t.b],null,null)],function(l,n){var e=n.component;l(n,2,0,e.form);var t=l(n,14,0,e.form.showError("name",u["\u0275nov"](n,2)));l(n,13,0,"form-group",t),l(n,25,0,"name"),l(n,29,0,e.form.showError("name",u["\u0275nov"](n,2),"required")),l(n,31,0,e.form.showError("name",u["\u0275nov"](n,2),"uniqueName"));var o=l(n,34,0,e.form.showError("poolType",u["\u0275nov"](n,2)));l(n,33,0,"form-group",o),l(n,44,0,"poolType"),l(n,48,0,""),l(n,49,0,""),l(n,52,0,e.data.poolTypes),l(n,54,0,e.form.showError("poolType",u["\u0275nov"](n,2),"required")),l(n,56,0,e.form.getValue("poolType")),l(n,63,0,e.data.applications.selected,e.data.applications.available,e.data.applications.messages,4,!0,e.data.applications.validators),l(n,65,0,e.info.is_all_bluestore),l(n,68,0,e.form,e.initializeConfigData),l(n,71,0,e.form.hasError("rbdPool")),l(n,75,0,u["\u0275nov"](n,2),"button")},function(l,n){var e=n.component;l(n,0,0,u["\u0275nov"](n,4).ngClassUntouched,u["\u0275nov"](n,4).ngClassTouched,u["\u0275nov"](n,4).ngClassPristine,u["\u0275nov"](n,4).ngClassDirty,u["\u0275nov"](n,4).ngClassValid,u["\u0275nov"](n,4).ngClassInvalid,u["\u0275nov"](n,4).ngClassPending);var t=u["\u0275unv"](n,8,0,l(n,9,0,u["\u0275nov"](n.parent,0),e.action)),o=u["\u0275unv"](n,8,1,l(n,10,0,u["\u0275nov"](n.parent,1),e.resource));l(n,8,0,t,o),l(n,20,0,u["\u0275nov"](n,27).ngClassUntouched,u["\u0275nov"](n,27).ngClassTouched,u["\u0275nov"](n,27).ngClassPristine,u["\u0275nov"](n,27).ngClassDirty,u["\u0275nov"](n,27).ngClassValid,u["\u0275nov"](n,27).ngClassInvalid,u["\u0275nov"](n,27).ngClassPending),l(n,40,0,u["\u0275nov"](n,46).ngClassUntouched,u["\u0275nov"](n,46).ngClassTouched,u["\u0275nov"](n,46).ngClassPristine,u["\u0275nov"](n,46).ngClassDirty,u["\u0275nov"](n,46).ngClassValid,u["\u0275nov"](n,46).ngClassInvalid,u["\u0275nov"](n,46).ngClassPending),l(n,66,0,"replicated"!==e.form.get("poolType").value||-1===e.data.applications.selected.indexOf("rbd"));var i=u["\u0275unv"](n,76,0,l(n,77,0,u["\u0275nov"](n.parent,0),e.action)),a=u["\u0275unv"](n,76,1,l(n,78,0,u["\u0275nov"](n.parent,1),e.resource));l(n,76,0,i,a)})}function bu(l){return u["\u0275vid"](0,[u["\u0275pid"](0,fl.TitleCasePipe,[]),u["\u0275pid"](0,bl.a,[]),(l()(),u["\u0275eld"](2,0,null,null,4,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,xe)),u["\u0275did"](4,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,vu)),u["\u0275did"](6,16384,null,0,fl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,4,0,!(e.info&&e.ecProfiles)),l(n,6,0,e.info&&e.ecProfiles)},null)}function Cu(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-pool-form",[],null,null,null,bu,ze)),u["\u0275did"](1,114688,null,0,N,[b.a,Pn.a,Pn.l,Vl.b,p.a,C.a,R.a,Vl.b,y.a,c,s.a,t.b],null,null)],function(l,n){l(n,1,0)},null)}var Ru=u["\u0275ccf"]("cd-pool-form",N,Cu,{},{},[]);e.d(n,"PoolModuleNgFactory",function(){return yu}),e.d(n,"RoutedPoolModuleNgFactory",function(){return Iu});var yu=u["\u0275cmf"](M,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[K.a,$.a,J.a,H.a,H.b,W.a,Z.a,Y.a,X.a,Q.a,ll.a,nl.a,el.a,ul.a,ul.c,ul.b,tl.a,ol.a,il.a,al.a,rl.a,sl.a,dl.a,cl.a,pl.a,en]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,fl.NgLocalization,fl.NgLocaleLocalization,[u.LOCALE_ID,[2,fl["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,un.a,un.a,[s.a]),u["\u0275mpd"](4608,fl.DatePipe,fl.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,tn.a,tn.a,[]),u["\u0275mpd"](4608,on.a,on.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,b.a,b.a,[R.a]),u["\u0275mpd"](4608,an.a,an.a,[R.a]),u["\u0275mpd"](4608,x.a,x.a,[R.a]),u["\u0275mpd"](4608,rn.a,rn.a,[]),u["\u0275mpd"](4608,sn.a,sn.a,[]),u["\u0275mpd"](4608,dn.a,dn.a,[]),u["\u0275mpd"](4608,cn.a,cn.a,[]),u["\u0275mpd"](4608,pn.a,pn.a,[fl.DatePipe]),u["\u0275mpd"](4608,fn.a,fn.a,[]),u["\u0275mpd"](4608,mn.a,mn.a,[]),u["\u0275mpd"](4608,gn.a,gn.a,[]),u["\u0275mpd"](4608,hn.a,hn.a,[]),u["\u0275mpd"](4608,vn.a,vn.a,[]),u["\u0275mpd"](4608,bn.a,bn.a,[s.a]),u["\u0275mpd"](4608,bl.a,bl.a,[]),u["\u0275mpd"](4608,Cn.a,Cn.a,[]),u["\u0275mpd"](4608,o.E,o.E,[]),u["\u0275mpd"](4608,o.h,o.h,[]),u["\u0275mpd"](4608,Rn.b,Rn.b,[]),u["\u0275mpd"](4608,yn.a,yn.a,[]),u["\u0275mpd"](4608,In.a,In.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,En.a,En.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,In.a,u.ApplicationRef]),u["\u0275mpd"](4608,Vn.a,Vn.a,[]),u["\u0275mpd"](4608,Vl.b,Vl.b,[u.RendererFactory2,En.a]),u["\u0275mpd"](4608,Tn.ScrollbarHelper,Tn.ScrollbarHelper,[wn.DOCUMENT]),u["\u0275mpd"](4608,Sn.DimensionsHelper,Sn.DimensionsHelper,[]),u["\u0275mpd"](4608,Nn.ColumnChangesService,Nn.ColumnChangesService,[]),u["\u0275mpd"](4608,_n.f,_n.f,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,Dn.a,Dn.a,[Pn.l,C.a]),u["\u0275mpd"](4608,kn.NodeDraggableService,kn.NodeDraggableService,[]),u["\u0275mpd"](4608,zn.NodeMenuService,zn.NodeMenuService,[]),u["\u0275mpd"](4608,xn.TreeService,xn.TreeService,[kn.NodeDraggableService]),u["\u0275mpd"](4608,Fn.e,Fn.e,[]),u["\u0275mpd"](4608,qn.c,qn.c,[]),u["\u0275mpd"](4608,An.r,An.r,[]),u["\u0275mpd"](4608,An.t,An.t,[]),u["\u0275mpd"](4608,An.a,An.a,[]),u["\u0275mpd"](4608,An.h,An.h,[]),u["\u0275mpd"](4608,An.d,An.d,[]),u["\u0275mpd"](4608,An.j,An.j,[]),u["\u0275mpd"](4608,An.s,An.s,[An.t,An.j]),u["\u0275mpd"](1073742336,fl.CommonModule,fl.CommonModule,[]),u["\u0275mpd"](1073742336,On.a,On.a,[]),u["\u0275mpd"](1073742336,Fn.c,Fn.c,[]),u["\u0275mpd"](1073742336,yn.d,yn.d,[]),u["\u0275mpd"](1073742336,Ln.a,Ln.a,[]),u["\u0275mpd"](1073742336,o.B,o.B,[]),u["\u0275mpd"](1073742336,o.n,o.n,[]),u["\u0275mpd"](1073742336,o.x,o.x,[]),u["\u0275mpd"](1073742336,Rn.c,Rn.c,[]),u["\u0275mpd"](1073742336,Vn.d,Vn.d,[]),u["\u0275mpd"](1073742336,jn.ChartsModule,jn.ChartsModule,[]),u["\u0275mpd"](1073742336,Vl.e,Vl.e,[]),u["\u0275mpd"](1073742336,Mn.a,Mn.a,[]),u["\u0275mpd"](1073742336,_n.e,_n.e,[]),u["\u0275mpd"](1073742336,Un.a,Un.a,[]),u["\u0275mpd"](1073742336,Bn.NgxDatatableModule,Bn.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,Pn.p,Pn.p,[[2,Pn.v],[2,Pn.l]]),u["\u0275mpd"](1073742336,Gn.a,Gn.a,[]),u["\u0275mpd"](1073742336,d.a,d.a,[]),u["\u0275mpd"](1073742336,Kn.a,Kn.a,[]),u["\u0275mpd"](1073742336,qn.d,qn.d,[]),u["\u0275mpd"](1073742336,$n.TreeModule,$n.TreeModule,[]),u["\u0275mpd"](1073742336,Jn.a,Jn.a,[]),u["\u0275mpd"](1073742336,An.g,An.g,[]),u["\u0275mpd"](1073742336,Hn.a,Hn.a,[]),u["\u0275mpd"](1073742336,M,M,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,_n.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])}),Iu=u["\u0275cmf"](G,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[K.a,$.a,J.a,H.a,H.b,W.a,Z.a,Y.a,X.a,Q.a,ll.a,nl.a,el.a,ul.a,ul.c,ul.b,tl.a,ol.a,il.a,al.a,rl.a,sl.a,dl.a,cl.a,pl.a,en,Se,Ru]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,fl.NgLocalization,fl.NgLocaleLocalization,[u.LOCALE_ID,[2,fl["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,un.a,un.a,[s.a]),u["\u0275mpd"](4608,fl.DatePipe,fl.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,tn.a,tn.a,[]),u["\u0275mpd"](4608,on.a,on.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,b.a,b.a,[R.a]),u["\u0275mpd"](4608,an.a,an.a,[R.a]),u["\u0275mpd"](4608,x.a,x.a,[R.a]),u["\u0275mpd"](4608,rn.a,rn.a,[]),u["\u0275mpd"](4608,sn.a,sn.a,[]),u["\u0275mpd"](4608,dn.a,dn.a,[]),u["\u0275mpd"](4608,cn.a,cn.a,[]),u["\u0275mpd"](4608,pn.a,pn.a,[fl.DatePipe]),u["\u0275mpd"](4608,fn.a,fn.a,[]),u["\u0275mpd"](4608,mn.a,mn.a,[]),u["\u0275mpd"](4608,gn.a,gn.a,[]),u["\u0275mpd"](4608,hn.a,hn.a,[]),u["\u0275mpd"](4608,vn.a,vn.a,[]),u["\u0275mpd"](4608,bn.a,bn.a,[s.a]),u["\u0275mpd"](4608,bl.a,bl.a,[]),u["\u0275mpd"](4608,Cn.a,Cn.a,[]),u["\u0275mpd"](4608,o.E,o.E,[]),u["\u0275mpd"](4608,o.h,o.h,[]),u["\u0275mpd"](4608,Rn.b,Rn.b,[]),u["\u0275mpd"](4608,yn.a,yn.a,[]),u["\u0275mpd"](4608,In.a,In.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,En.a,En.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,In.a,u.ApplicationRef]),u["\u0275mpd"](4608,Vn.a,Vn.a,[]),u["\u0275mpd"](4608,Vl.b,Vl.b,[u.RendererFactory2,En.a]),u["\u0275mpd"](4608,Tn.ScrollbarHelper,Tn.ScrollbarHelper,[wn.DOCUMENT]),u["\u0275mpd"](4608,Sn.DimensionsHelper,Sn.DimensionsHelper,[]),u["\u0275mpd"](4608,Nn.ColumnChangesService,Nn.ColumnChangesService,[]),u["\u0275mpd"](4608,_n.f,_n.f,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,Dn.a,Dn.a,[Pn.l,C.a]),u["\u0275mpd"](4608,kn.NodeDraggableService,kn.NodeDraggableService,[]),u["\u0275mpd"](4608,zn.NodeMenuService,zn.NodeMenuService,[]),u["\u0275mpd"](4608,xn.TreeService,xn.TreeService,[kn.NodeDraggableService]),u["\u0275mpd"](4608,Fn.e,Fn.e,[]),u["\u0275mpd"](4608,qn.c,qn.c,[]),u["\u0275mpd"](4608,An.r,An.r,[]),u["\u0275mpd"](4608,An.t,An.t,[]),u["\u0275mpd"](4608,An.a,An.a,[]),u["\u0275mpd"](4608,An.h,An.h,[]),u["\u0275mpd"](4608,An.d,An.d,[]),u["\u0275mpd"](4608,An.j,An.j,[]),u["\u0275mpd"](4608,An.s,An.s,[An.t,An.j]),u["\u0275mpd"](1073742336,fl.CommonModule,fl.CommonModule,[]),u["\u0275mpd"](1073742336,On.a,On.a,[]),u["\u0275mpd"](1073742336,Fn.c,Fn.c,[]),u["\u0275mpd"](1073742336,yn.d,yn.d,[]),u["\u0275mpd"](1073742336,Ln.a,Ln.a,[]),u["\u0275mpd"](1073742336,o.B,o.B,[]),u["\u0275mpd"](1073742336,o.n,o.n,[]),u["\u0275mpd"](1073742336,o.x,o.x,[]),u["\u0275mpd"](1073742336,Rn.c,Rn.c,[]),u["\u0275mpd"](1073742336,Vn.d,Vn.d,[]),u["\u0275mpd"](1073742336,jn.ChartsModule,jn.ChartsModule,[]),u["\u0275mpd"](1073742336,Vl.e,Vl.e,[]),u["\u0275mpd"](1073742336,Mn.a,Mn.a,[]),u["\u0275mpd"](1073742336,_n.e,_n.e,[]),u["\u0275mpd"](1073742336,Un.a,Un.a,[]),u["\u0275mpd"](1073742336,Bn.NgxDatatableModule,Bn.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,Pn.p,Pn.p,[[2,Pn.v],[2,Pn.l]]),u["\u0275mpd"](1073742336,Gn.a,Gn.a,[]),u["\u0275mpd"](1073742336,d.a,d.a,[]),u["\u0275mpd"](1073742336,Kn.a,Kn.a,[]),u["\u0275mpd"](1073742336,qn.d,qn.d,[]),u["\u0275mpd"](1073742336,$n.TreeModule,$n.TreeModule,[]),u["\u0275mpd"](1073742336,Jn.a,Jn.a,[]),u["\u0275mpd"](1073742336,An.g,An.g,[]),u["\u0275mpd"](1073742336,Hn.a,Hn.a,[]),u["\u0275mpd"](1073742336,M,M,[]),u["\u0275mpd"](1073742336,G,G,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,_n.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](1024,Pn.j,function(){return[[{path:"",component:j},{path:"create",component:N,data:U},{path:"edit/:name",component:N,data:B}]]},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/9.244bd0ad1ded58335301.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/9.244bd0ad1ded58335301.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/9.244bd0ad1ded58335301.js 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/9.244bd0ad1ded58335301.js 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{DY6s:function(l,n,e){"use strict";e.r(n);var u=e("CcnG"),o=e("LceX"),a=e("iutN"),t=e("ES0t"),d=e("MdoF"),s=e("Xg1U"),r=e("z5nN"),i=e("EEJc"),c=e("PEr+"),p=e("a40w"),m=e("pMnS"),f=e("Ip0R"),v=e("gIcY"),g=e("iExv"),h=e("Jm/i"),b=e("85J/"),C=e("+0ag"),R=e("aXbf"),I=e("Fgil"),y=e("IzCI"),T=e("o4+5"),w=e("Dwqy"),D=e("uYzU"),x=e("uhwM"),k=e("E2fk"),E=e("a0VL"),F=e("nSDx"),N=e("SB+Q"),S=e("TYzs"),_=e("BQkM"),P=e("dEH0"),M=e("G1/K"),q=e("8xTl"),A=e("TJUb"),L=e("lTVp"),V=e("OZfm"),U=e("NJnL"),O=e("lqqz"),j=e("eajB"),z=e("DQlY"),H=e("FO+L"),B=e("ZYjt"),Z=e("nhM1"),G=e("BARL"),K=e("xtZt"),Y=e("aexS"),J=e("Avrn"),X=e("ZYCi"),Q=e("YAQW"),W=e("9Xeq"),$=e("xdbM"),ll=e("yGOH"),nl=e("V/fk"),el=e("F8xH"),ul=e("ChqD"),ol=e("pL04"),al=e("PCNd"),tl=e("pKUh"),dl=function(){function l(l){this.router=l}return l.prototype.ngOnInit=function(){this.url=this.router.url},l.prototype.navigateTo=function(l){this.router.navigate([l])},l}(),sl=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function rl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,tl.b,tl.a)),u["\u0275did"](1,180224,null,0,Q.d,[Q.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](2,0,null,0,1,"tab",[["heading","Users"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,e){var u=!0;return"selectTab"===n&&(u=!1!==l.component.navigateTo("/user-management/users")&&u),u},null,null)),u["\u0275did"](3,212992,null,0,Q.b,[Q.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),u["\u0275eld"](4,0,null,0,1,"tab",[["heading","Roles"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,e){var u=!0;return"selectTab"===n&&(u=!1!==l.component.navigateTo("/user-management/roles")&&u),u},null,null)),u["\u0275did"](5,212992,null,0,Q.b,[Q.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],function(l,n){var e=n.component;l(n,3,0,"Users","/user-management/users"===e.url),l(n,5,0,"Roles","/user-management/roles"===e.url)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).clazz),l(n,2,0,u["\u0275nov"](n,3).id,u["\u0275nov"](n,3).active,u["\u0275nov"](n,3).addClass),l(n,4,0,u["\u0275nov"](n,5).id,u["\u0275nov"](n,5).active,u["\u0275nov"](n,5).addClass)})}var il=e("25BL"),cl=e("uIqm"),pl=e("NUGo"),ml=e("S7zO"),fl=e("EgGo"),vl=e("ZEkX"),gl=e("Mxhz"),hl=e("9nlD"),bl=e("sne2"),Cl=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Rl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),u["\u0275ted"](1,null,[" ",""," "]))],null,function(l,n){l(n,1,0,n.context.$implicit,n.context.last?"":", ")})}function Il(l){return u["\u0275vid"](0,[(l()(),u["\u0275and"](16777216,null,null,1,null,Rl)),u["\u0275did"](1,278528,null,0,f.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.context.value)},null)}function yl(l){return u["\u0275vid"](0,[u["\u0275qud"](402653184,1,{userRolesTpl:0}),(l()(),u["\u0275eld"](1,0,null,null,1,"cd-user-tabs",[],null,null,null,rl,sl)),u["\u0275did"](2,114688,null,0,dl,[X.l],null,null),(l()(),u["\u0275eld"](3,0,null,null,3,"cd-table",[["columnMode","flex"],["identifier","username"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(l,n,e){var u=!0,o=l.component;return"fetchData"===n&&(u=!1!==o.getUsers()&&u),"updateSelection"===n&&(u=!1!==o.updateSelection(e)&&u),u},il.b,il.a)),u["\u0275did"](4,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),u["\u0275eld"](5,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,pl.b,pl.a)),u["\u0275did"](6,114688,null,0,ml.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["\u0275and"](0,[[1,2],["userRolesTpl",2]],null,0,null,Il))],function(l,n){var e=n.component;l(n,2,0),l(n,4,0,e.users,e.columns,"flex","username","single"),l(n,6,0,e.permission,e.selection,e.tableActions)},null)}function Tl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"cd-user-list",[],null,null,null,yl,Cl)),u["\u0275prd"](256,null,fl.a,vl.b,[]),u["\u0275did"](2,114688,null,0,vl.a,[gl.a,F.a,z.b,hl.a,Y.a,h.a,fl.a,bl.b],null,null)],function(l,n){l(n,2,0)},null)}var wl=u["\u0275ccf"]("cd-user-list",vl.a,Tl,{},{},[]),Dl=e("pYKc"),xl=e("ppaS"),kl=e("IZUe"),El=e("D4zM"),Fl=e("gp3X"),Nl=e("sb0X"),Sl=e("KVJa"),_l=e("Z21x"),Pl=e("V3my"),Ml=e("DSvg"),ql=e("SgmB"),Al=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Ll(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Vl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ul(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ol(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function jl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Password confirmation doesn't match the password."]))],null,null)}function zl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Invalid email."]))],null,null)}function Hl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border full-height"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"cd-select-badges",[],null,null,null,Dl.b,Dl.a)),u["\u0275did"](2,49152,null,0,xl.a,[h.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"]},null)],function(l,n){var e=n.component;l(n,2,0,e.userForm.controls.roles.value,e.allRoles,e.messages)},null)}function Bl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,['You are about to remove "user read / update" permissions from your own user.'])),(l()(),u["\u0275eld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,"p",[],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["If you continue, you will no longer be able to add or remove roles from any user."])),(l()(),u["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Are you sure you want to continue?"]))],null,null)}function Zl(l){return u["\u0275vid"](0,[u["\u0275pid"](0,f.TitleCasePipe,[]),u["\u0275pid"](0,q.a,[]),u["\u0275qud"](402653184,1,{removeSelfUserReadUpdatePermissionTpl:0}),(l()(),u["\u0275eld"](3,0,null,null,106,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,105,"form",[["class","form-horizontal"],["name","userForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var o=!0;return"submit"===n&&(o=!1!==u["\u0275nov"](l,6).onSubmit(e)&&o),"reset"===n&&(o=!1!==u["\u0275nov"](l,6).onReset()&&o),o},null,null)),u["\u0275did"](5,16384,null,0,v.D,[],null,null),u["\u0275did"](6,540672,[["formDir",4]],0,v.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,v.d,null,[v.l]),u["\u0275did"](8,16384,null,0,v.s,[[4,v.d]],null,null),(l()(),u["\u0275eld"](9,0,null,null,100,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),u["\u0275eld"](10,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),u["\u0275eld"](11,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),u["\u0275ted"](12,null,["","",""])),u["\u0275ppd"](13,1),u["\u0275ppd"](14,1),(l()(),u["\u0275eld"](15,0,null,null,85,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](16,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](17,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](18,{"has-error":0}),(l()(),u["\u0275eld"](19,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Username"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Ll)),u["\u0275did"](23,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](24,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](25,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","username"],["id","username"],["name","username"],["placeholder","Username..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,26)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,26).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,26)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,26)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](26,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](28,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](30,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](31,4210688,null,0,kl.a,[u.ElementRef],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Vl)),u["\u0275did"](33,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](34,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](35,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](36,{"has-error":0}),(l()(),u["\u0275eld"](37,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Password"])),(l()(),u["\u0275eld"](39,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](40,0,null,null,9,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](41,0,null,null,5,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","password"],["name","password"],["placeholder","Password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,42)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,42).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,42)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,42)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](42,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](44,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](46,16384,null,0,v.r,[[4,v.q]],null,null),(l()(),u["\u0275eld"](47,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](48,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var o=!0;return"click"===n&&(o=!1!==u["\u0275nov"](l,49).onClick()&&o),o},null,null)),u["\u0275did"](49,81920,null,0,El.a,[u.ElementRef,u.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ul)),u["\u0275did"](51,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](52,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](53,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](54,{"has-error":0}),(l()(),u["\u0275eld"](55,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Confirm password"])),(l()(),u["\u0275eld"](57,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](58,0,null,null,9,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](59,0,null,null,5,"input",[["class","form-control"],["formControlName","confirmpassword"],["id","confirmpassword"],["name","confirmpassword"],["placeholder","Confirm password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,60)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,60).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,60)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,60)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](60,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](62,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](64,16384,null,0,v.r,[[4,v.q]],null,null),(l()(),u["\u0275eld"](65,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](66,0,null,null,1,"button",[["cdPasswordButton","confirmpassword"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var o=!0;return"click"===n&&(o=!1!==u["\u0275nov"](l,67).onClick()&&o),o},null,null)),u["\u0275did"](67,81920,null,0,El.a,[u.ElementRef,u.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ol)),u["\u0275did"](69,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,jl)),u["\u0275did"](71,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](72,0,null,null,9,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](73,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Full name"])),(l()(),u["\u0275eld"](75,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](76,0,null,null,5,"input",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Full name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,77)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,77).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,77)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,77)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](77,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](79,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](81,16384,null,0,v.r,[[4,v.q]],null,null),(l()(),u["\u0275eld"](82,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](83,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](84,{"has-error":0}),(l()(),u["\u0275eld"](85,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","email"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Email"])),(l()(),u["\u0275eld"](87,0,null,null,8,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](88,0,null,null,5,"input",[["class","form-control"],["formControlName","email"],["id","email"],["name","email"],["placeholder","Email..."],["type","email"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,89)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,89).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,89)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,89)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](89,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](91,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](93,16384,null,0,v.r,[[4,v.q]],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,zl)),u["\u0275did"](95,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](96,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Roles"])),(l()(),u["\u0275eld"](98,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,Hl)),u["\u0275did"](100,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](101,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](102,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["\u0275eld"](103,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u},Fl.b,Fl.a)),u["\u0275did"](104,114688,null,0,Nl.a,[u.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](105,0,["","",""])),u["\u0275ppd"](106,1),u["\u0275ppd"](107,1),(l()(),u["\u0275eld"](108,0,null,null,1,"cd-back-button",[],null,null,null,Sl.b,Sl.a)),u["\u0275did"](109,49152,null,0,_l.a,[f.Location,bl.b],null,null),(l()(),u["\u0275and"](0,[[1,2],["removeSelfUserReadUpdatePermissionTpl",2]],null,0,null,Bl))],function(l,n){var e=n.component;l(n,6,0,e.userForm);var o=l(n,18,0,e.userForm.showError("username",u["\u0275nov"](n,6)));l(n,17,0,"form-group",o),l(n,23,0,e.mode!==e.userFormMode.editing),l(n,28,0,"username"),l(n,33,0,e.userForm.showError("username",u["\u0275nov"](n,6),"required"));var a=l(n,36,0,e.userForm.showError("password",u["\u0275nov"](n,6)));l(n,35,0,"form-group",a),l(n,44,0,"password"),l(n,49,0,"password"),l(n,51,0,e.userForm.showError("password",u["\u0275nov"](n,6),"required"));var t=l(n,54,0,e.userForm.showError("confirmpassword",u["\u0275nov"](n,6)));l(n,53,0,"form-group",t),l(n,62,0,"confirmpassword"),l(n,67,0,"confirmpassword"),l(n,69,0,e.userForm.showError("confirmpassword",u["\u0275nov"](n,6),"required")),l(n,71,0,e.userForm.showError("confirmpassword",u["\u0275nov"](n,6),"match")),l(n,79,0,"name");var d=l(n,84,0,e.userForm.showError("email",u["\u0275nov"](n,6)));l(n,83,0,"form-group",d),l(n,91,0,"email"),l(n,95,0,e.userForm.showError("email",u["\u0275nov"](n,6),"email")),l(n,100,0,e.allRoles),l(n,104,0,u["\u0275nov"](n,6),"button")},function(l,n){var e=n.component;l(n,4,0,u["\u0275nov"](n,8).ngClassUntouched,u["\u0275nov"](n,8).ngClassTouched,u["\u0275nov"](n,8).ngClassPristine,u["\u0275nov"](n,8).ngClassDirty,u["\u0275nov"](n,8).ngClassValid,u["\u0275nov"](n,8).ngClassInvalid,u["\u0275nov"](n,8).ngClassPending);var o=u["\u0275unv"](n,12,0,l(n,13,0,u["\u0275nov"](n,0),e.action)),a=u["\u0275unv"](n,12,1,l(n,14,0,u["\u0275nov"](n,1),e.resource));l(n,12,0,o,a),l(n,25,0,u["\u0275nov"](n,30).ngClassUntouched,u["\u0275nov"](n,30).ngClassTouched,u["\u0275nov"](n,30).ngClassPristine,u["\u0275nov"](n,30).ngClassDirty,u["\u0275nov"](n,30).ngClassValid,u["\u0275nov"](n,30).ngClassInvalid,u["\u0275nov"](n,30).ngClassPending),l(n,41,0,u["\u0275nov"](n,46).ngClassUntouched,u["\u0275nov"](n,46).ngClassTouched,u["\u0275nov"](n,46).ngClassPristine,u["\u0275nov"](n,46).ngClassDirty,u["\u0275nov"](n,46).ngClassValid,u["\u0275nov"](n,46).ngClassInvalid,u["\u0275nov"](n,46).ngClassPending),l(n,59,0,u["\u0275nov"](n,64).ngClassUntouched,u["\u0275nov"](n,64).ngClassTouched,u["\u0275nov"](n,64).ngClassPristine,u["\u0275nov"](n,64).ngClassDirty,u["\u0275nov"](n,64).ngClassValid,u["\u0275nov"](n,64).ngClassInvalid,u["\u0275nov"](n,64).ngClassPending),l(n,76,0,u["\u0275nov"](n,81).ngClassUntouched,u["\u0275nov"](n,81).ngClassTouched,u["\u0275nov"](n,81).ngClassPristine,u["\u0275nov"](n,81).ngClassDirty,u["\u0275nov"](n,81).ngClassValid,u["\u0275nov"](n,81).ngClassInvalid,u["\u0275nov"](n,81).ngClassPending),l(n,88,0,u["\u0275nov"](n,93).ngClassUntouched,u["\u0275nov"](n,93).ngClassTouched,u["\u0275nov"](n,93).ngClassPristine,u["\u0275nov"](n,93).ngClassDirty,u["\u0275nov"](n,93).ngClassValid,u["\u0275nov"](n,93).ngClassInvalid,u["\u0275nov"](n,93).ngClassPending);var t=u["\u0275unv"](n,105,0,l(n,106,0,u["\u0275nov"](n,0),e.action)),d=u["\u0275unv"](n,105,1,l(n,107,0,u["\u0275nov"](n,1),e.resource));l(n,105,0,t,d)})}function Gl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-user-form",[],null,null,null,Zl,Al)),u["\u0275did"](1,114688,null,0,Pl.a,[Ml.a,Y.a,X.a,X.l,z.b,ql.a,gl.a,hl.a,h.a,bl.b],null,null)],function(l,n){l(n,1,0)},null)}var Kl=u["\u0275ccf"]("cd-user-form",Pl.a,Gl,{},{},[]),Yl=e("LvDl"),Jl=e("x38r"),Xl=(e("vCyI"),function(){function l(l){this.i18n=l,this.scopes_permissions=[]}return l.prototype.ngOnInit=function(){this.columns=[{prop:"scope",name:this.i18n("Scope"),flexGrow:2},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTransformation:Jl.a.checkIcon},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTransformation:Jl.a.checkIcon},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTransformation:Jl.a.checkIcon},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTransformation:Jl.a.checkIcon}]},l.prototype.ngOnChanges=function(){var l=this;if(this.selection.hasSelection){this.selectedItem=this.selection.first();var n=[];Yl.each(this.scopes,function(e){var u={read:!1,create:!1,update:!1,delete:!1};u.scope=e,e in l.selectedItem.scopes_permissions&&Yl.each(l.selectedItem.scopes_permissions[e],function(l){u[l]=!0}),n.push(u)}),this.scopes_permissions=n}},l}()),Ql=u["\u0275crt"]({encapsulation:0,styles:[["thead[_ngcontent-%COMP%]{background-color:#f5f5f5}.fa[_ngcontent-%COMP%]{font-size:large}.fa.fa-square-o[_ngcontent-%COMP%]{color:#d1d1d1}"]],data:{}});function Wl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,tl.b,tl.a)),u["\u0275did"](1,180224,null,0,Q.d,[Q.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](3,212992,null,0,Q.b,[Q.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,il.b,il.a)),u["\u0275did"](5,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null)],function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,5,0,e.scopes_permissions,e.columns,"flex",!1,!1,0,!1,!1)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).clazz),l(n,2,0,u["\u0275nov"](n,3).id,u["\u0275nov"](n,3).active,u["\u0275nov"](n,3).addClass)})}function $l(l){return u["\u0275vid"](0,[(l()(),u["\u0275and"](16777216,null,null,1,null,Wl)),u["\u0275did"](1,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,1,0,null==e.selection?null:e.selection.hasSingleSelection)},null)}var ln=e("n/D3"),nn=e("ZDA6"),en=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function un(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-user-tabs",[],null,null,null,rl,sl)),u["\u0275did"](1,114688,null,0,dl,[X.l],null,null),(l()(),u["\u0275eld"](2,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(l,n,e){var u=!0,o=l.component;return"fetchData"===n&&(u=!1!==o.getRoles()&&u),"updateSelection"===n&&(u=!1!==o.updateSelection(e)&&u),u},il.b,il.a)),u["\u0275did"](3,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),u["\u0275eld"](4,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,pl.b,pl.a)),u["\u0275did"](5,114688,null,0,ml.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["\u0275eld"](6,0,null,2,1,"cd-role-details",[["cdTableDetail",""]],null,null,null,$l,Ql)),u["\u0275did"](7,638976,null,0,Xl,[h.a],{selection:[0,"selection"],scopes:[1,"scopes"]},null)],function(l,n){var e=n.component;l(n,1,0),l(n,3,0,e.roles,e.columns,"flex","name","single"),l(n,5,0,e.permission,e.selection,e.tableActions),l(n,7,0,e.selection,e.scopes)},null)}function on(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"cd-role-list",[],null,null,null,un,en)),u["\u0275prd"](256,null,fl.a,ln.b,[]),u["\u0275did"](2,114688,null,0,ln.a,[ql.a,nn.a,F.a,Y.a,z.b,hl.a,h.a,fl.a,bl.b],null,null)],function(l,n){l(n,2,0)},null)}var an=u["\u0275ccf"]("cd-role-list",ln.a,on,{},{},[]),tn=e("eTJe"),dn=u["\u0275crt"]({encapsulation:0,styles:[[".datatable-permissions-header-cell-label[_ngcontent-%COMP%], .datatable-permissions-scope-cell-label[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function sn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function rn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function cn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The chosen name is already in use."]))],null,null)}function pn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"id",0],[8,"checked",0]],[[null,"change"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,e)&&u),u},null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,"label",[["class","datatable-permissions-scope-cell-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),u["\u0275ted"](3,null,["",""]))],null,function(l,n){var e=n.component;l(n,1,0,u["\u0275inlineInterpolate"](1,"scope_",n.context.row.scope,""),e.isRowChecked(n.context.row.scope)),l(n,2,0,u["\u0275inlineInterpolate"](1,"scope_",n.context.row.scope,"")),l(n,3,0,n.context.value)})}function mn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,e)&&u),u},null,null)),(l()(),u["\u0275eld"](2,0,null,null,0,"label",[],null,null,null,null,null))],null,function(l,n){l(n,1,0,n.context.value)})}function fn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"id",0],[8,"checked",0]],[[null,"change"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==l.component.onClickHeaderCheckbox(l.context.column.prop,e)&&u),u},null,null)),(l()(),u["\u0275eld"](2,0,null,null,1,"label",[["class","datatable-permissions-header-cell-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),u["\u0275ted"](3,null,["",""]))],null,function(l,n){var e=n.component;l(n,1,0,u["\u0275inlineInterpolate"](1,"header_",n.context.column.prop,""),e.isHeaderChecked(n.context.column.prop)),l(n,2,0,u["\u0275inlineInterpolate"](1,"header_",n.context.column.prop,"")),l(n,3,0,n.context.column.name)})}function vn(l){return u["\u0275vid"](0,[u["\u0275pid"](0,f.TitleCasePipe,[]),u["\u0275pid"](0,q.a,[]),u["\u0275qud"](402653184,1,{headerPermissionCheckboxTpl:0}),u["\u0275qud"](402653184,2,{cellScopeCheckboxTpl:0}),u["\u0275qud"](402653184,3,{cellPermissionCheckboxTpl:0}),(l()(),u["\u0275eld"](5,0,null,null,59,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,58,"form",[["class","form-horizontal"],["name","roleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var o=!0;return"submit"===n&&(o=!1!==u["\u0275nov"](l,8).onSubmit(e)&&o),"reset"===n&&(o=!1!==u["\u0275nov"](l,8).onReset()&&o),o},null,null)),u["\u0275did"](7,16384,null,0,v.D,[],null,null),u["\u0275did"](8,540672,[["formDir",4]],0,v.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,v.d,null,[v.l]),u["\u0275did"](10,16384,null,0,v.s,[[4,v.d]],null,null),(l()(),u["\u0275eld"](11,0,null,null,53,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),u["\u0275eld"](12,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),u["\u0275eld"](13,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),u["\u0275ted"](14,null,["","",""])),u["\u0275ppd"](15,1),u["\u0275ppd"](16,1),(l()(),u["\u0275eld"](17,0,null,null,38,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](18,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](19,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](20,{"has-error":0}),(l()(),u["\u0275eld"](21,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](22,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Name"])),(l()(),u["\u0275and"](16777216,null,null,1,null,sn)),u["\u0275did"](25,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](26,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](27,0,null,null,6,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,28)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,28).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,28)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,28)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](28,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](30,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](32,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](33,4210688,null,0,kl.a,[u.ElementRef],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,rn)),u["\u0275did"](35,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,cn)),u["\u0275did"](37,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](38,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](39,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](40,{"has-error":0}),(l()(),u["\u0275eld"](41,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","description"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Description"])),(l()(),u["\u0275eld"](43,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](44,0,null,null,5,"input",[["class","form-control"],["formControlName","description"],["id","description"],["name","description"],["placeholder","Description..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,45)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,45).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,45)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,45)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](45,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](47,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](49,16384,null,0,v.r,[[4,v.q]],null,null),(l()(),u["\u0275eld"](50,0,null,null,5,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](51,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Permissions"])),(l()(),u["\u0275eld"](53,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](54,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,il.b,il.a)),u["\u0275did"](55,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null),(l()(),u["\u0275eld"](56,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](57,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["\u0275eld"](58,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u},Fl.b,Fl.a)),u["\u0275did"](59,114688,null,0,Nl.a,[u.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](60,0,["","",""])),u["\u0275ppd"](61,1),u["\u0275ppd"](62,1),(l()(),u["\u0275eld"](63,0,null,null,1,"cd-back-button",[],null,null,null,Sl.b,Sl.a)),u["\u0275did"](64,49152,null,0,_l.a,[f.Location,bl.b],null,null),(l()(),u["\u0275and"](0,[[2,2],["cellScopeCheckboxTpl",2]],null,0,null,pn)),(l()(),u["\u0275and"](0,[[3,2],["cellPermissionCheckboxTpl",2]],null,0,null,mn)),(l()(),u["\u0275and"](0,[[1,2],["headerPermissionCheckboxTpl",2]],null,0,null,fn))],function(l,n){var e=n.component;l(n,8,0,e.roleForm);var o=l(n,20,0,e.roleForm.showError("name",u["\u0275nov"](n,8)));l(n,19,0,"form-group",o),l(n,25,0,e.mode!==e.roleFormMode.editing),l(n,30,0,"name"),l(n,35,0,e.roleForm.showError("name",u["\u0275nov"](n,8),"required")),l(n,37,0,e.roleForm.showError("name",u["\u0275nov"](n,8),"notUnique"));var a=l(n,40,0,e.roleForm.showError("description",u["\u0275nov"](n,8)));l(n,39,0,"form-group",a),l(n,47,0,"description"),l(n,55,0,e.scopes_permissions,e.columns,"flex",!1,!1,0,!1,!1),l(n,59,0,u["\u0275nov"](n,8),"button")},function(l,n){var e=n.component;l(n,6,0,u["\u0275nov"](n,10).ngClassUntouched,u["\u0275nov"](n,10).ngClassTouched,u["\u0275nov"](n,10).ngClassPristine,u["\u0275nov"](n,10).ngClassDirty,u["\u0275nov"](n,10).ngClassValid,u["\u0275nov"](n,10).ngClassInvalid,u["\u0275nov"](n,10).ngClassPending);var o=u["\u0275unv"](n,14,0,l(n,15,0,u["\u0275nov"](n,0),e.action)),a=u["\u0275unv"](n,14,1,l(n,16,0,u["\u0275nov"](n,1),e.resource));l(n,14,0,o,a),l(n,27,0,u["\u0275nov"](n,32).ngClassUntouched,u["\u0275nov"](n,32).ngClassTouched,u["\u0275nov"](n,32).ngClassPristine,u["\u0275nov"](n,32).ngClassDirty,u["\u0275nov"](n,32).ngClassValid,u["\u0275nov"](n,32).ngClassInvalid,u["\u0275nov"](n,32).ngClassPending),l(n,44,0,u["\u0275nov"](n,49).ngClassUntouched,u["\u0275nov"](n,49).ngClassTouched,u["\u0275nov"](n,49).ngClassPristine,u["\u0275nov"](n,49).ngClassDirty,u["\u0275nov"](n,49).ngClassValid,u["\u0275nov"](n,49).ngClassInvalid,u["\u0275nov"](n,49).ngClassPending);var t=u["\u0275unv"](n,60,0,l(n,61,0,u["\u0275nov"](n,0),e.action)),d=u["\u0275unv"](n,60,1,l(n,62,0,u["\u0275nov"](n,1),e.resource));l(n,60,0,t,d)})}function gn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-role-form",[],null,null,null,vn,dn)),u["\u0275did"](1,114688,null,0,tn.a,[X.a,X.l,ql.a,nn.a,hl.a,h.a,bl.b],null,null)],function(l,n){l(n,1,0)},null)}var hn=u["\u0275ccf"]("cd-role-form",tn.a,gn,{},{},[]);e.d(n,"AuthModuleNgFactory",function(){return bn}),e.d(n,"RoutedAuthModuleNgFactory",function(){return Cn});var bn=u["\u0275cmf"](o.a,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,t.a,d.a,s.a,r.a,r.b,i.a,c.a,p.a,m.a]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,f.NgLocalization,f.NgLocaleLocalization,[u.LOCALE_ID,[2,f["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,v.E,v.E,[]),u["\u0275mpd"](4608,v.h,v.h,[]),u["\u0275mpd"](4608,g.a,g.a,[h.a]),u["\u0275mpd"](4608,f.DatePipe,f.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,b.a,b.a,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,I.a,I.a,[R.a]),u["\u0275mpd"](4608,y.a,y.a,[R.a]),u["\u0275mpd"](4608,T.a,T.a,[R.a]),u["\u0275mpd"](4608,w.a,w.a,[]),u["\u0275mpd"](4608,D.a,D.a,[]),u["\u0275mpd"](4608,x.a,x.a,[]),u["\u0275mpd"](4608,k.a,k.a,[]),u["\u0275mpd"](4608,E.a,E.a,[f.DatePipe]),u["\u0275mpd"](4608,F.a,F.a,[]),u["\u0275mpd"](4608,N.a,N.a,[]),u["\u0275mpd"](4608,S.a,S.a,[]),u["\u0275mpd"](4608,_.a,_.a,[]),u["\u0275mpd"](4608,P.a,P.a,[]),u["\u0275mpd"](4608,M.a,M.a,[h.a]),u["\u0275mpd"](4608,q.a,q.a,[]),u["\u0275mpd"](4608,A.a,A.a,[]),u["\u0275mpd"](4608,L.b,L.b,[]),u["\u0275mpd"](4608,V.a,V.a,[]),u["\u0275mpd"](4608,U.a,U.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,O.a,O.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,U.a,u.ApplicationRef]),u["\u0275mpd"](4608,j.a,j.a,[]),u["\u0275mpd"](4608,z.b,z.b,[u.RendererFactory2,O.a]),u["\u0275mpd"](4608,H.ScrollbarHelper,H.ScrollbarHelper,[B.DOCUMENT]),u["\u0275mpd"](4608,Z.DimensionsHelper,Z.DimensionsHelper,[]),u["\u0275mpd"](4608,G.ColumnChangesService,G.ColumnChangesService,[]),u["\u0275mpd"](4608,K.f,K.f,[]),u["\u0275mpd"](4608,Y.a,Y.a,[]),u["\u0275mpd"](4608,J.a,J.a,[X.l,Y.a]),u["\u0275mpd"](4608,Q.e,Q.e,[]),u["\u0275mpd"](1073742336,K.e,K.e,[]),u["\u0275mpd"](1073742336,f.CommonModule,f.CommonModule,[]),u["\u0275mpd"](1073742336,v.B,v.B,[]),u["\u0275mpd"](1073742336,v.n,v.n,[]),u["\u0275mpd"](1073742336,V.d,V.d,[]),u["\u0275mpd"](1073742336,v.x,v.x,[]),u["\u0275mpd"](1073742336,W.a,W.a,[]),u["\u0275mpd"](1073742336,L.c,L.c,[]),u["\u0275mpd"](1073742336,j.d,j.d,[]),u["\u0275mpd"](1073742336,$.ChartsModule,$.ChartsModule,[]),u["\u0275mpd"](1073742336,z.e,z.e,[]),u["\u0275mpd"](1073742336,ll.a,ll.a,[]),u["\u0275mpd"](1073742336,nl.a,nl.a,[]),u["\u0275mpd"](1073742336,el.NgxDatatableModule,el.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,X.p,X.p,[[2,X.v],[2,X.l]]),u["\u0275mpd"](1073742336,ul.a,ul.a,[]),u["\u0275mpd"](1073742336,ol.a,ol.a,[]),u["\u0275mpd"](1073742336,al.a,al.a,[]),u["\u0275mpd"](1073742336,Q.c,Q.c,[]),u["\u0275mpd"](1073742336,o.a,o.a,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,K.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])}),Cn=u["\u0275cmf"](o.b,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,t.a,d.a,s.a,r.a,r.b,i.a,c.a,p.a,m.a,wl,Kl,an,hn]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,f.NgLocalization,f.NgLocaleLocalization,[u.LOCALE_ID,[2,f["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,v.E,v.E,[]),u["\u0275mpd"](4608,v.h,v.h,[]),u["\u0275mpd"](4608,g.a,g.a,[h.a]),u["\u0275mpd"](4608,f.DatePipe,f.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,b.a,b.a,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,I.a,I.a,[R.a]),u["\u0275mpd"](4608,y.a,y.a,[R.a]),u["\u0275mpd"](4608,T.a,T.a,[R.a]),u["\u0275mpd"](4608,w.a,w.a,[]),u["\u0275mpd"](4608,D.a,D.a,[]),u["\u0275mpd"](4608,x.a,x.a,[]),u["\u0275mpd"](4608,k.a,k.a,[]),u["\u0275mpd"](4608,E.a,E.a,[f.DatePipe]),u["\u0275mpd"](4608,F.a,F.a,[]),u["\u0275mpd"](4608,N.a,N.a,[]),u["\u0275mpd"](4608,S.a,S.a,[]),u["\u0275mpd"](4608,_.a,_.a,[]),u["\u0275mpd"](4608,P.a,P.a,[]),u["\u0275mpd"](4608,M.a,M.a,[h.a]),u["\u0275mpd"](4608,q.a,q.a,[]),u["\u0275mpd"](4608,A.a,A.a,[]),u["\u0275mpd"](4608,L.b,L.b,[]),u["\u0275mpd"](4608,V.a,V.a,[]),u["\u0275mpd"](4608,U.a,U.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,O.a,O.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,U.a,u.ApplicationRef]),u["\u0275mpd"](4608,j.a,j.a,[]),u["\u0275mpd"](4608,z.b,z.b,[u.RendererFactory2,O.a]),u["\u0275mpd"](4608,H.ScrollbarHelper,H.ScrollbarHelper,[B.DOCUMENT]),u["\u0275mpd"](4608,Z.DimensionsHelper,Z.DimensionsHelper,[]),u["\u0275mpd"](4608,G.ColumnChangesService,G.ColumnChangesService,[]),u["\u0275mpd"](4608,K.f,K.f,[]),u["\u0275mpd"](4608,Y.a,Y.a,[]),u["\u0275mpd"](4608,J.a,J.a,[X.l,Y.a]),u["\u0275mpd"](4608,Q.e,Q.e,[]),u["\u0275mpd"](1073742336,K.e,K.e,[]),u["\u0275mpd"](1073742336,f.CommonModule,f.CommonModule,[]),u["\u0275mpd"](1073742336,v.B,v.B,[]),u["\u0275mpd"](1073742336,v.n,v.n,[]),u["\u0275mpd"](1073742336,V.d,V.d,[]),u["\u0275mpd"](1073742336,v.x,v.x,[]),u["\u0275mpd"](1073742336,W.a,W.a,[]),u["\u0275mpd"](1073742336,L.c,L.c,[]),u["\u0275mpd"](1073742336,j.d,j.d,[]),u["\u0275mpd"](1073742336,$.ChartsModule,$.ChartsModule,[]),u["\u0275mpd"](1073742336,z.e,z.e,[]),u["\u0275mpd"](1073742336,ll.a,ll.a,[]),u["\u0275mpd"](1073742336,nl.a,nl.a,[]),u["\u0275mpd"](1073742336,el.NgxDatatableModule,el.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,X.p,X.p,[[2,X.v],[2,X.l]]),u["\u0275mpd"](1073742336,ul.a,ul.a,[]),u["\u0275mpd"](1073742336,ol.a,ol.a,[]),u["\u0275mpd"](1073742336,al.a,al.a,[]),u["\u0275mpd"](1073742336,Q.c,Q.c,[]),u["\u0275mpd"](1073742336,o.a,o.a,[]),u["\u0275mpd"](1073742336,o.b,o.b,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,K.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](1024,X.j,function(){return[[{path:"",redirectTo:"users",pathMatch:"full"},{path:"users",data:o.c,children:[{path:"",component:vl.a},{path:"create",component:Pl.a,data:o.d},{path:"edit/:username",component:Pl.a,data:o.e}]},{path:"roles",data:o.f,children:[{path:"",component:ln.a},{path:"create",component:tn.a,data:o.g},{path:"edit/:name",component:tn.a,data:o.h}]}]]},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/9.b19f6391d5c667b85d12.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/9.b19f6391d5c667b85d12.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/9.b19f6391d5c667b85d12.js 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/9.b19f6391d5c667b85d12.js 2021-03-15 17:51:46.000000000 +0000 @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{DY6s:function(l,n,e){"use strict";e.r(n);var u=e("CcnG"),o=e("LceX"),a=e("iutN"),t=e("ES0t"),d=e("MdoF"),s=e("Xg1U"),r=e("z5nN"),i=e("EEJc"),c=e("PEr+"),p=e("a40w"),m=e("pMnS"),f=e("Ip0R"),v=e("gIcY"),g=e("iExv"),h=e("Jm/i"),b=e("85J/"),C=e("+0ag"),R=e("aXbf"),I=e("Fgil"),y=e("IzCI"),T=e("o4+5"),w=e("Dwqy"),D=e("uYzU"),x=e("uhwM"),E=e("E2fk"),k=e("a0VL"),N=e("nSDx"),F=e("SB+Q"),S=e("TYzs"),_=e("BQkM"),P=e("dEH0"),M=e("G1/K"),A=e("8xTl"),q=e("TJUb"),V=e("lTVp"),L=e("OZfm"),U=e("NJnL"),O=e("lqqz"),j=e("eajB"),z=e("DQlY"),H=e("FO+L"),B=e("ZYjt"),Z=e("nhM1"),G=e("BARL"),K=e("xtZt"),Y=e("aexS"),J=e("Avrn"),X=e("ZYCi"),Q=e("YAQW"),W=e("9Xeq"),$=e("xdbM"),ll=e("yGOH"),nl=e("V/fk"),el=e("F8xH"),ul=e("ChqD"),ol=e("pL04"),al=e("PCNd"),tl=e("pKUh"),dl=function(){function l(l){this.router=l}return l.prototype.ngOnInit=function(){this.url=this.router.url},l.prototype.navigateTo=function(l){this.router.navigate([l])},l}(),sl=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function rl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,tl.b,tl.a)),u["\u0275did"](1,180224,null,0,Q.d,[Q.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](2,0,null,0,1,"tab",[["heading","Users"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,e){var u=!0;return"selectTab"===n&&(u=!1!==l.component.navigateTo("/user-management/users")&&u),u},null,null)),u["\u0275did"](3,212992,null,0,Q.b,[Q.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),u["\u0275eld"](4,0,null,0,1,"tab",[["heading","Roles"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],function(l,n,e){var u=!0;return"selectTab"===n&&(u=!1!==l.component.navigateTo("/user-management/roles")&&u),u},null,null)),u["\u0275did"](5,212992,null,0,Q.b,[Q.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],function(l,n){var e=n.component;l(n,3,0,"Users","/user-management/users"===e.url),l(n,5,0,"Roles","/user-management/roles"===e.url)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).clazz),l(n,2,0,u["\u0275nov"](n,3).id,u["\u0275nov"](n,3).active,u["\u0275nov"](n,3).addClass),l(n,4,0,u["\u0275nov"](n,5).id,u["\u0275nov"](n,5).active,u["\u0275nov"](n,5).addClass)})}var il=e("25BL"),cl=e("uIqm"),pl=e("NUGo"),ml=e("S7zO"),fl=e("EgGo"),vl=e("ZEkX"),gl=e("Mxhz"),hl=e("9nlD"),bl=e("sne2"),Cl=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Rl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),u["\u0275ted"](1,null,[" ",""," "]))],null,function(l,n){l(n,1,0,n.context.$implicit,n.context.last?"":", ")})}function Il(l){return u["\u0275vid"](0,[(l()(),u["\u0275and"](16777216,null,null,1,null,Rl)),u["\u0275did"](1,278528,null,0,f.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["\u0275and"](0,null,null,0))],function(l,n){l(n,1,0,n.context.value)},null)}function yl(l){return u["\u0275vid"](0,[u["\u0275qud"](402653184,1,{userRolesTpl:0}),(l()(),u["\u0275eld"](1,0,null,null,1,"cd-user-tabs",[],null,null,null,rl,sl)),u["\u0275did"](2,114688,null,0,dl,[X.l],null,null),(l()(),u["\u0275eld"](3,0,null,null,3,"cd-table",[["columnMode","flex"],["identifier","username"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(l,n,e){var u=!0,o=l.component;return"fetchData"===n&&(u=!1!==o.getUsers()&&u),"updateSelection"===n&&(u=!1!==o.updateSelection(e)&&u),u},il.b,il.a)),u["\u0275did"](4,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),u["\u0275eld"](5,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,pl.b,pl.a)),u["\u0275did"](6,114688,null,0,ml.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["\u0275and"](0,[[1,2],["userRolesTpl",2]],null,0,null,Il))],function(l,n){var e=n.component;l(n,2,0),l(n,4,0,e.users,e.columns,"flex","username","single"),l(n,6,0,e.permission,e.selection,e.tableActions)},null)}function Tl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"cd-user-list",[],null,null,null,yl,Cl)),u["\u0275prd"](256,null,fl.a,vl.b,[]),u["\u0275did"](2,114688,null,0,vl.a,[gl.a,N.a,z.b,hl.a,Y.a,h.a,fl.a,bl.b],null,null)],function(l,n){l(n,2,0)},null)}var wl=u["\u0275ccf"]("cd-user-list",vl.a,Tl,{},{},[]),Dl=e("pYKc"),xl=e("ppaS"),El=e("IZUe"),kl=e("ANnk"),Nl=e("f/UV"),Fl=e("D4zM"),Sl=e("gp3X"),_l=e("sb0X"),Pl=e("KVJa"),Ml=e("Z21x"),Al=e("V3my"),ql=e("DSvg"),Vl=e("SgmB"),Ll=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Ul(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Ol(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function jl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function zl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Hl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Password confirmation doesn't match the password."]))],null,null)}function Bl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Invalid email."]))],null,null)}function Zl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border full-height"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"cd-select-badges",[],null,null,null,Dl.b,Dl.a)),u["\u0275did"](2,49152,null,0,xl.a,[h.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"]},null)],function(l,n){var e=n.component;l(n,2,0,e.userForm.controls.roles.value,e.allRoles,e.messages)},null)}function Gl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,['You are about to remove "user read / update" permissions from your own user.'])),(l()(),u["\u0275eld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,1,"p",[],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["If you continue, you will no longer be able to add or remove roles from any user."])),(l()(),u["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Are you sure you want to continue?"]))],null,null)}function Kl(l){return u["\u0275vid"](0,[u["\u0275pid"](0,f.TitleCasePipe,[]),u["\u0275pid"](0,A.a,[]),u["\u0275qud"](402653184,1,{removeSelfUserReadUpdatePermissionTpl:0}),(l()(),u["\u0275eld"](3,0,null,null,111,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),u["\u0275eld"](4,0,null,null,110,"form",[["class","form-horizontal"],["name","userForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var o=!0;return"submit"===n&&(o=!1!==u["\u0275nov"](l,6).onSubmit(e)&&o),"reset"===n&&(o=!1!==u["\u0275nov"](l,6).onReset()&&o),o},null,null)),u["\u0275did"](5,16384,null,0,v.D,[],null,null),u["\u0275did"](6,540672,[["formDir",4]],0,v.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,v.d,null,[v.l]),u["\u0275did"](8,16384,null,0,v.s,[[4,v.d]],null,null),(l()(),u["\u0275eld"](9,0,null,null,105,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),u["\u0275eld"](10,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),u["\u0275eld"](11,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),u["\u0275ted"](12,null,[""," ",""])),u["\u0275ppd"](13,1),u["\u0275ppd"](14,1),(l()(),u["\u0275eld"](15,0,null,null,90,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](16,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](17,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](18,{"has-error":0}),(l()(),u["\u0275eld"](19,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](20,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Username"])),(l()(),u["\u0275and"](16777216,null,null,1,null,Ul)),u["\u0275did"](23,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](24,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](25,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","username"],["id","username"],["name","username"],["placeholder","Username..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,26)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,26).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,26)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,26)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](26,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](28,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](30,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](31,4210688,null,0,El.a,[u.ElementRef],null,null),u["\u0275did"](32,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Ol)),u["\u0275did"](34,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](35,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](36,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](37,{"has-error":0}),(l()(),u["\u0275eld"](38,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Password"])),(l()(),u["\u0275eld"](40,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](41,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](42,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","password"],["name","password"],["placeholder","Password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,43)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,43).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,43)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,43)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](43,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](45,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](47,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](48,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275eld"](49,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](50,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var o=!0;return"click"===n&&(o=!1!==u["\u0275nov"](l,51).onClick()&&o),o},null,null)),u["\u0275did"](51,81920,null,0,Fl.a,[u.ElementRef,u.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,jl)),u["\u0275did"](53,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](54,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](55,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](56,{"has-error":0}),(l()(),u["\u0275eld"](57,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Confirm password"])),(l()(),u["\u0275eld"](59,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](60,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](61,0,null,null,6,"input",[["class","form-control"],["formControlName","confirmpassword"],["id","confirmpassword"],["name","confirmpassword"],["placeholder","Confirm password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,62)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,62).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,62)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,62)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](62,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](64,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](66,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](67,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275eld"](68,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(l()(),u["\u0275eld"](69,0,null,null,1,"button",[["cdPasswordButton","confirmpassword"],["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(l,n,e){var o=!0;return"click"===n&&(o=!1!==u["\u0275nov"](l,70).onClick()&&o),o},null,null)),u["\u0275did"](70,81920,null,0,Fl.a,[u.ElementRef,u.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,zl)),u["\u0275did"](72,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,Hl)),u["\u0275did"](74,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](75,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](76,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Full name"])),(l()(),u["\u0275eld"](78,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](79,0,null,null,6,"input",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Full name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,80)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,80).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,80)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,80)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](80,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](82,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](84,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](85,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275eld"](86,0,null,null,14,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](87,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](88,{"has-error":0}),(l()(),u["\u0275eld"](89,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","email"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Email"])),(l()(),u["\u0275eld"](91,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](92,0,null,null,6,"input",[["class","form-control"],["formControlName","email"],["id","email"],["name","email"],["placeholder","Email..."],["type","email"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,93)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,93).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,93)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,93)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](93,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](95,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](97,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](98,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,Bl)),u["\u0275did"](100,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](101,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Roles"])),(l()(),u["\u0275eld"](103,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275and"](16777216,null,null,1,null,Zl)),u["\u0275did"](105,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](106,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](107,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["\u0275eld"](108,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u},Sl.b,Sl.a)),u["\u0275did"](109,114688,null,0,_l.a,[u.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](110,0,[""," ",""])),u["\u0275ppd"](111,1),u["\u0275ppd"](112,1),(l()(),u["\u0275eld"](113,0,null,null,1,"cd-back-button",[],null,null,null,Pl.b,Pl.a)),u["\u0275did"](114,49152,null,0,Ml.a,[f.Location,bl.b],null,null),(l()(),u["\u0275and"](0,[[1,2],["removeSelfUserReadUpdatePermissionTpl",2]],null,0,null,Gl))],function(l,n){var e=n.component;l(n,6,0,e.userForm);var o=l(n,18,0,e.userForm.showError("username",u["\u0275nov"](n,6)));l(n,17,0,"form-group",o),l(n,23,0,e.mode!==e.userFormMode.editing),l(n,28,0,"username"),l(n,34,0,e.userForm.showError("username",u["\u0275nov"](n,6),"required"));var a=l(n,37,0,e.userForm.showError("password",u["\u0275nov"](n,6)));l(n,36,0,"form-group",a),l(n,45,0,"password"),l(n,51,0,"password"),l(n,53,0,e.userForm.showError("password",u["\u0275nov"](n,6),"required"));var t=l(n,56,0,e.userForm.showError("confirmpassword",u["\u0275nov"](n,6)));l(n,55,0,"form-group",t),l(n,64,0,"confirmpassword"),l(n,70,0,"confirmpassword"),l(n,72,0,e.userForm.showError("confirmpassword",u["\u0275nov"](n,6),"required")),l(n,74,0,e.userForm.showError("confirmpassword",u["\u0275nov"](n,6),"match")),l(n,82,0,"name");var d=l(n,88,0,e.userForm.showError("email",u["\u0275nov"](n,6)));l(n,87,0,"form-group",d),l(n,95,0,"email"),l(n,100,0,e.userForm.showError("email",u["\u0275nov"](n,6),"email")),l(n,105,0,e.allRoles),l(n,109,0,u["\u0275nov"](n,6),"button")},function(l,n){var e=n.component;l(n,4,0,u["\u0275nov"](n,8).ngClassUntouched,u["\u0275nov"](n,8).ngClassTouched,u["\u0275nov"](n,8).ngClassPristine,u["\u0275nov"](n,8).ngClassDirty,u["\u0275nov"](n,8).ngClassValid,u["\u0275nov"](n,8).ngClassInvalid,u["\u0275nov"](n,8).ngClassPending);var o=u["\u0275unv"](n,12,0,l(n,13,0,u["\u0275nov"](n,0),e.action)),a=u["\u0275unv"](n,12,1,l(n,14,0,u["\u0275nov"](n,1),e.resource));l(n,12,0,o,a),l(n,25,0,u["\u0275nov"](n,30).ngClassUntouched,u["\u0275nov"](n,30).ngClassTouched,u["\u0275nov"](n,30).ngClassPristine,u["\u0275nov"](n,30).ngClassDirty,u["\u0275nov"](n,30).ngClassValid,u["\u0275nov"](n,30).ngClassInvalid,u["\u0275nov"](n,30).ngClassPending),l(n,42,0,u["\u0275nov"](n,47).ngClassUntouched,u["\u0275nov"](n,47).ngClassTouched,u["\u0275nov"](n,47).ngClassPristine,u["\u0275nov"](n,47).ngClassDirty,u["\u0275nov"](n,47).ngClassValid,u["\u0275nov"](n,47).ngClassInvalid,u["\u0275nov"](n,47).ngClassPending),l(n,61,0,u["\u0275nov"](n,66).ngClassUntouched,u["\u0275nov"](n,66).ngClassTouched,u["\u0275nov"](n,66).ngClassPristine,u["\u0275nov"](n,66).ngClassDirty,u["\u0275nov"](n,66).ngClassValid,u["\u0275nov"](n,66).ngClassInvalid,u["\u0275nov"](n,66).ngClassPending),l(n,79,0,u["\u0275nov"](n,84).ngClassUntouched,u["\u0275nov"](n,84).ngClassTouched,u["\u0275nov"](n,84).ngClassPristine,u["\u0275nov"](n,84).ngClassDirty,u["\u0275nov"](n,84).ngClassValid,u["\u0275nov"](n,84).ngClassInvalid,u["\u0275nov"](n,84).ngClassPending),l(n,92,0,u["\u0275nov"](n,97).ngClassUntouched,u["\u0275nov"](n,97).ngClassTouched,u["\u0275nov"](n,97).ngClassPristine,u["\u0275nov"](n,97).ngClassDirty,u["\u0275nov"](n,97).ngClassValid,u["\u0275nov"](n,97).ngClassInvalid,u["\u0275nov"](n,97).ngClassPending);var t=u["\u0275unv"](n,110,0,l(n,111,0,u["\u0275nov"](n,0),e.action)),d=u["\u0275unv"](n,110,1,l(n,112,0,u["\u0275nov"](n,1),e.resource));l(n,110,0,t,d)})}function Yl(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-user-form",[],null,null,null,Kl,Ll)),u["\u0275did"](1,114688,null,0,Al.a,[ql.a,Y.a,X.a,X.l,z.b,Vl.a,gl.a,hl.a,h.a,bl.b],null,null)],function(l,n){l(n,1,0)},null)}var Jl=u["\u0275ccf"]("cd-user-form",Al.a,Yl,{},{},[]),Xl=e("LvDl"),Ql=e("x38r"),Wl=(e("vCyI"),function(){function l(l){this.i18n=l,this.scopes_permissions=[]}return l.prototype.ngOnInit=function(){this.columns=[{prop:"scope",name:this.i18n("Scope"),flexGrow:2},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTransformation:Ql.a.checkIcon},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTransformation:Ql.a.checkIcon},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTransformation:Ql.a.checkIcon},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTransformation:Ql.a.checkIcon}]},l.prototype.ngOnChanges=function(){var l=this;if(this.selection.hasSelection){this.selectedItem=this.selection.first();var n=[];Xl.each(this.scopes,function(e){var u={read:!1,create:!1,update:!1,delete:!1};u.scope=e,e in l.selectedItem.scopes_permissions&&Xl.each(l.selectedItem.scopes_permissions[e],function(l){u[l]=!0}),n.push(u)}),this.scopes_permissions=n}},l}()),$l=u["\u0275crt"]({encapsulation:0,styles:[["thead[_ngcontent-%COMP%]{background-color:#f5f5f5}.fa[_ngcontent-%COMP%]{font-size:large}.fa.fa-square-o[_ngcontent-%COMP%]{color:#d1d1d1}"]],data:{}});function ln(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,tl.b,tl.a)),u["\u0275did"](1,180224,null,0,Q.d,[Q.e,u.Renderer2,u.ElementRef],null,null),(l()(),u["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["\u0275did"](3,212992,null,0,Q.b,[Q.d,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["\u0275eld"](4,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,il.b,il.a)),u["\u0275did"](5,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null)],function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,5,0,e.scopes_permissions,e.columns,"flex",!1,!1,0,!1,!1)},function(l,n){l(n,0,0,u["\u0275nov"](n,1).clazz),l(n,2,0,u["\u0275nov"](n,3).id,u["\u0275nov"](n,3).active,u["\u0275nov"](n,3).addClass)})}function nn(l){return u["\u0275vid"](0,[(l()(),u["\u0275and"](16777216,null,null,1,null,ln)),u["\u0275did"](1,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(l,n){var e=n.component;l(n,1,0,null==e.selection?null:e.selection.hasSingleSelection)},null)}var en=e("n/D3"),un=e("ZDA6"),on=u["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function an(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-user-tabs",[],null,null,null,rl,sl)),u["\u0275did"](1,114688,null,0,dl,[X.l],null,null),(l()(),u["\u0275eld"](2,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(l,n,e){var u=!0,o=l.component;return"fetchData"===n&&(u=!1!==o.getRoles()&&u),"updateSelection"===n&&(u=!1!==o.updateSelection(e)&&u),u},il.b,il.a)),u["\u0275did"](3,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),u["\u0275eld"](4,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,pl.b,pl.a)),u["\u0275did"](5,114688,null,0,ml.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["\u0275eld"](6,0,null,2,1,"cd-role-details",[["cdTableDetail",""]],null,null,null,nn,$l)),u["\u0275did"](7,638976,null,0,Wl,[h.a],{selection:[0,"selection"],scopes:[1,"scopes"]},null)],function(l,n){var e=n.component;l(n,1,0),l(n,3,0,e.roles,e.columns,"flex","name","single"),l(n,5,0,e.permission,e.selection,e.tableActions),l(n,7,0,e.selection,e.scopes)},null)}function tn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,2,"cd-role-list",[],null,null,null,an,on)),u["\u0275prd"](256,null,fl.a,en.b,[]),u["\u0275did"](2,114688,null,0,en.a,[Vl.a,un.a,N.a,Y.a,z.b,hl.a,h.a,fl.a,bl.b],null,null)],function(l,n){l(n,2,0)},null)}var dn=u["\u0275ccf"]("cd-role-list",en.a,tn,{},{},[]),sn=e("eTJe"),rn=u["\u0275crt"]({encapsulation:0,styles:[[".datatable-permissions-header-cell-label[_ngcontent-%COMP%], .datatable-permissions-scope-cell-label[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function cn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function pn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["This field is required."]))],null,null)}function mn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["The chosen name is already in use."]))],null,null)}function fn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,4,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"input",[["type","checkbox"]],[[8,"id",0],[8,"checked",0]],[[null,"change"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,e)&&u),u},null,null)),u["\u0275did"](2,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275eld"](3,0,null,null,1,"label",[["class","datatable-permissions-scope-cell-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),u["\u0275ted"](4,null,["",""]))],null,function(l,n){var e=n.component;l(n,1,0,u["\u0275inlineInterpolate"](1,"scope_",n.context.row.scope,""),e.isRowChecked(n.context.row.scope)),l(n,3,0,u["\u0275inlineInterpolate"](1,"scope_",n.context.row.scope,"")),l(n,4,0,n.context.value)})}function vn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,3,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,e)&&u),u},null,null)),u["\u0275did"](2,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275eld"](3,0,null,null,0,"label",[],null,null,null,null,null))],null,function(l,n){l(n,1,0,n.context.value)})}function gn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,4,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(l()(),u["\u0275eld"](1,0,null,null,1,"input",[["type","checkbox"]],[[8,"id",0],[8,"checked",0]],[[null,"change"]],function(l,n,e){var u=!0;return"change"===n&&(u=!1!==l.component.onClickHeaderCheckbox(l.context.column.prop,e)&&u),u},null,null)),u["\u0275did"](2,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275eld"](3,0,null,null,1,"label",[["class","datatable-permissions-header-cell-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),u["\u0275ted"](4,null,["",""]))],null,function(l,n){var e=n.component;l(n,1,0,u["\u0275inlineInterpolate"](1,"header_",n.context.column.prop,""),e.isHeaderChecked(n.context.column.prop)),l(n,3,0,u["\u0275inlineInterpolate"](1,"header_",n.context.column.prop,"")),l(n,4,0,n.context.column.name)})}function hn(l){return u["\u0275vid"](0,[u["\u0275pid"](0,f.TitleCasePipe,[]),u["\u0275pid"](0,A.a,[]),u["\u0275qud"](402653184,1,{headerPermissionCheckboxTpl:0}),u["\u0275qud"](402653184,2,{cellScopeCheckboxTpl:0}),u["\u0275qud"](402653184,3,{cellPermissionCheckboxTpl:0}),(l()(),u["\u0275eld"](5,0,null,null,61,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(l()(),u["\u0275eld"](6,0,null,null,60,"form",[["class","form-horizontal"],["name","roleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(l,n,e){var o=!0;return"submit"===n&&(o=!1!==u["\u0275nov"](l,8).onSubmit(e)&&o),"reset"===n&&(o=!1!==u["\u0275nov"](l,8).onReset()&&o),o},null,null)),u["\u0275did"](7,16384,null,0,v.D,[],null,null),u["\u0275did"](8,540672,[["formDir",4]],0,v.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["\u0275prd"](2048,null,v.d,null,[v.l]),u["\u0275did"](10,16384,null,0,v.s,[[4,v.d]],null,null),(l()(),u["\u0275eld"](11,0,null,null,55,"div",[["class","panel panel-default"]],null,null,null,null,null)),(l()(),u["\u0275eld"](12,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(l()(),u["\u0275eld"](13,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(l()(),u["\u0275ted"](14,null,[""," ",""])),u["\u0275ppd"](15,1),u["\u0275ppd"](16,1),(l()(),u["\u0275eld"](17,0,null,null,40,"div",[["class","panel-body"]],null,null,null,null,null)),(l()(),u["\u0275eld"](18,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](19,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](20,{"has-error":0}),(l()(),u["\u0275eld"](21,0,null,null,4,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["\u0275eld"](22,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Name"])),(l()(),u["\u0275and"](16777216,null,null,1,null,cn)),u["\u0275did"](25,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](26,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](27,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,28)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,28).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,28)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,28)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](28,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](30,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](32,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](33,4210688,null,0,El.a,[u.ElementRef],null,null),u["\u0275did"](34,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275and"](16777216,null,null,1,null,pn)),u["\u0275did"](36,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275and"](16777216,null,null,1,null,mn)),u["\u0275did"](38,16384,null,0,f.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["\u0275eld"](39,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),u["\u0275did"](40,278528,null,0,f.NgClass,[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["\u0275pod"](41,{"has-error":0}),(l()(),u["\u0275eld"](42,0,null,null,1,"label",[["class","control-label col-sm-3"],["for","description"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Description"])),(l()(),u["\u0275eld"](44,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](45,0,null,null,6,"input",[["class","form-control"],["formControlName","description"],["id","description"],["name","description"],["placeholder","Description..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(l,n,e){var o=!0;return"input"===n&&(o=!1!==u["\u0275nov"](l,46)._handleInput(e.target.value)&&o),"blur"===n&&(o=!1!==u["\u0275nov"](l,46).onTouched()&&o),"compositionstart"===n&&(o=!1!==u["\u0275nov"](l,46)._compositionStart()&&o),"compositionend"===n&&(o=!1!==u["\u0275nov"](l,46)._compositionEnd(e.target.value)&&o),o},null,null)),u["\u0275did"](46,16384,null,0,v.e,[u.Renderer2,u.ElementRef,[2,v.b]],null,null),u["\u0275prd"](1024,null,v.p,function(l){return[l]},[v.e]),u["\u0275did"](48,671744,null,0,v.j,[[3,v.d],[8,null],[8,null],[6,v.p],[2,v.F]],{name:[0,"name"]},null),u["\u0275prd"](2048,null,v.q,null,[v.j]),u["\u0275did"](50,16384,null,0,v.r,[[4,v.q]],null,null),u["\u0275did"](51,4210688,null,0,kl.a,[[2,Nl.a],Y.a,u.ElementRef],null,null),(l()(),u["\u0275eld"](52,0,null,null,5,"div",[["class","form-group"]],null,null,null,null,null)),(l()(),u["\u0275eld"](53,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(l()(),u["\u0275ted"](-1,null,["Permissions"])),(l()(),u["\u0275eld"](55,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["\u0275eld"](56,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,il.b,il.a)),u["\u0275did"](57,2867200,null,0,cl.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null),(l()(),u["\u0275eld"](58,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(l()(),u["\u0275eld"](59,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["\u0275eld"](60,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u},Sl.b,Sl.a)),u["\u0275did"](61,114688,null,0,_l.a,[u.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(l()(),u["\u0275ted"](62,0,[""," ",""])),u["\u0275ppd"](63,1),u["\u0275ppd"](64,1),(l()(),u["\u0275eld"](65,0,null,null,1,"cd-back-button",[],null,null,null,Pl.b,Pl.a)),u["\u0275did"](66,49152,null,0,Ml.a,[f.Location,bl.b],null,null),(l()(),u["\u0275and"](0,[[2,2],["cellScopeCheckboxTpl",2]],null,0,null,fn)),(l()(),u["\u0275and"](0,[[3,2],["cellPermissionCheckboxTpl",2]],null,0,null,vn)),(l()(),u["\u0275and"](0,[[1,2],["headerPermissionCheckboxTpl",2]],null,0,null,gn))],function(l,n){var e=n.component;l(n,8,0,e.roleForm);var o=l(n,20,0,e.roleForm.showError("name",u["\u0275nov"](n,8)));l(n,19,0,"form-group",o),l(n,25,0,e.mode!==e.roleFormMode.editing),l(n,30,0,"name"),l(n,36,0,e.roleForm.showError("name",u["\u0275nov"](n,8),"required")),l(n,38,0,e.roleForm.showError("name",u["\u0275nov"](n,8),"notUnique"));var a=l(n,41,0,e.roleForm.showError("description",u["\u0275nov"](n,8)));l(n,40,0,"form-group",a),l(n,48,0,"description"),l(n,57,0,e.scopes_permissions,e.columns,"flex",!1,!1,0,!1,!1),l(n,61,0,u["\u0275nov"](n,8),"button")},function(l,n){var e=n.component;l(n,6,0,u["\u0275nov"](n,10).ngClassUntouched,u["\u0275nov"](n,10).ngClassTouched,u["\u0275nov"](n,10).ngClassPristine,u["\u0275nov"](n,10).ngClassDirty,u["\u0275nov"](n,10).ngClassValid,u["\u0275nov"](n,10).ngClassInvalid,u["\u0275nov"](n,10).ngClassPending);var o=u["\u0275unv"](n,14,0,l(n,15,0,u["\u0275nov"](n,0),e.action)),a=u["\u0275unv"](n,14,1,l(n,16,0,u["\u0275nov"](n,1),e.resource));l(n,14,0,o,a),l(n,27,0,u["\u0275nov"](n,32).ngClassUntouched,u["\u0275nov"](n,32).ngClassTouched,u["\u0275nov"](n,32).ngClassPristine,u["\u0275nov"](n,32).ngClassDirty,u["\u0275nov"](n,32).ngClassValid,u["\u0275nov"](n,32).ngClassInvalid,u["\u0275nov"](n,32).ngClassPending),l(n,45,0,u["\u0275nov"](n,50).ngClassUntouched,u["\u0275nov"](n,50).ngClassTouched,u["\u0275nov"](n,50).ngClassPristine,u["\u0275nov"](n,50).ngClassDirty,u["\u0275nov"](n,50).ngClassValid,u["\u0275nov"](n,50).ngClassInvalid,u["\u0275nov"](n,50).ngClassPending);var t=u["\u0275unv"](n,62,0,l(n,63,0,u["\u0275nov"](n,0),e.action)),d=u["\u0275unv"](n,62,1,l(n,64,0,u["\u0275nov"](n,1),e.resource));l(n,62,0,t,d)})}function bn(l){return u["\u0275vid"](0,[(l()(),u["\u0275eld"](0,0,null,null,1,"cd-role-form",[],null,null,null,hn,rn)),u["\u0275did"](1,114688,null,0,sn.a,[X.a,X.l,Vl.a,un.a,hl.a,h.a,bl.b],null,null)],function(l,n){l(n,1,0)},null)}var Cn=u["\u0275ccf"]("cd-role-form",sn.a,bn,{},{},[]);e.d(n,"AuthModuleNgFactory",function(){return Rn}),e.d(n,"RoutedAuthModuleNgFactory",function(){return In});var Rn=u["\u0275cmf"](o.a,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,t.a,d.a,s.a,r.a,r.b,i.a,c.a,p.a,m.a]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,f.NgLocalization,f.NgLocaleLocalization,[u.LOCALE_ID,[2,f["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,v.E,v.E,[]),u["\u0275mpd"](4608,v.h,v.h,[]),u["\u0275mpd"](4608,g.a,g.a,[h.a]),u["\u0275mpd"](4608,f.DatePipe,f.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,b.a,b.a,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,I.a,I.a,[R.a]),u["\u0275mpd"](4608,y.a,y.a,[R.a]),u["\u0275mpd"](4608,T.a,T.a,[R.a]),u["\u0275mpd"](4608,w.a,w.a,[]),u["\u0275mpd"](4608,D.a,D.a,[]),u["\u0275mpd"](4608,x.a,x.a,[]),u["\u0275mpd"](4608,E.a,E.a,[]),u["\u0275mpd"](4608,k.a,k.a,[f.DatePipe]),u["\u0275mpd"](4608,N.a,N.a,[]),u["\u0275mpd"](4608,F.a,F.a,[]),u["\u0275mpd"](4608,S.a,S.a,[]),u["\u0275mpd"](4608,_.a,_.a,[]),u["\u0275mpd"](4608,P.a,P.a,[]),u["\u0275mpd"](4608,M.a,M.a,[h.a]),u["\u0275mpd"](4608,A.a,A.a,[]),u["\u0275mpd"](4608,q.a,q.a,[]),u["\u0275mpd"](4608,V.b,V.b,[]),u["\u0275mpd"](4608,L.a,L.a,[]),u["\u0275mpd"](4608,U.a,U.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,O.a,O.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,U.a,u.ApplicationRef]),u["\u0275mpd"](4608,j.a,j.a,[]),u["\u0275mpd"](4608,z.b,z.b,[u.RendererFactory2,O.a]),u["\u0275mpd"](4608,H.ScrollbarHelper,H.ScrollbarHelper,[B.DOCUMENT]),u["\u0275mpd"](4608,Z.DimensionsHelper,Z.DimensionsHelper,[]),u["\u0275mpd"](4608,G.ColumnChangesService,G.ColumnChangesService,[]),u["\u0275mpd"](4608,K.f,K.f,[]),u["\u0275mpd"](4608,Y.a,Y.a,[]),u["\u0275mpd"](4608,J.a,J.a,[X.l,Y.a]),u["\u0275mpd"](4608,Q.e,Q.e,[]),u["\u0275mpd"](1073742336,K.e,K.e,[]),u["\u0275mpd"](1073742336,f.CommonModule,f.CommonModule,[]),u["\u0275mpd"](1073742336,v.B,v.B,[]),u["\u0275mpd"](1073742336,v.n,v.n,[]),u["\u0275mpd"](1073742336,L.d,L.d,[]),u["\u0275mpd"](1073742336,v.x,v.x,[]),u["\u0275mpd"](1073742336,W.a,W.a,[]),u["\u0275mpd"](1073742336,V.c,V.c,[]),u["\u0275mpd"](1073742336,j.d,j.d,[]),u["\u0275mpd"](1073742336,$.ChartsModule,$.ChartsModule,[]),u["\u0275mpd"](1073742336,z.e,z.e,[]),u["\u0275mpd"](1073742336,ll.a,ll.a,[]),u["\u0275mpd"](1073742336,nl.a,nl.a,[]),u["\u0275mpd"](1073742336,el.NgxDatatableModule,el.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,X.p,X.p,[[2,X.v],[2,X.l]]),u["\u0275mpd"](1073742336,ul.a,ul.a,[]),u["\u0275mpd"](1073742336,ol.a,ol.a,[]),u["\u0275mpd"](1073742336,al.a,al.a,[]),u["\u0275mpd"](1073742336,Q.c,Q.c,[]),u["\u0275mpd"](1073742336,o.a,o.a,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,K.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])}),In=u["\u0275cmf"](o.b,[],function(l){return u["\u0275mod"]([u["\u0275mpd"](512,u.ComponentFactoryResolver,u["\u0275CodegenComponentFactoryResolver"],[[8,[a.a,t.a,d.a,s.a,r.a,r.b,i.a,c.a,p.a,m.a,wl,Jl,dn,Cn]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["\u0275mpd"](4608,f.NgLocalization,f.NgLocaleLocalization,[u.LOCALE_ID,[2,f["\u0275angular_packages_common_common_a"]]]),u["\u0275mpd"](4608,v.E,v.E,[]),u["\u0275mpd"](4608,v.h,v.h,[]),u["\u0275mpd"](4608,g.a,g.a,[h.a]),u["\u0275mpd"](4608,f.DatePipe,f.DatePipe,[u.LOCALE_ID]),u["\u0275mpd"](4608,b.a,b.a,[]),u["\u0275mpd"](4608,C.a,C.a,[]),u["\u0275mpd"](4608,R.a,R.a,[]),u["\u0275mpd"](4608,I.a,I.a,[R.a]),u["\u0275mpd"](4608,y.a,y.a,[R.a]),u["\u0275mpd"](4608,T.a,T.a,[R.a]),u["\u0275mpd"](4608,w.a,w.a,[]),u["\u0275mpd"](4608,D.a,D.a,[]),u["\u0275mpd"](4608,x.a,x.a,[]),u["\u0275mpd"](4608,E.a,E.a,[]),u["\u0275mpd"](4608,k.a,k.a,[f.DatePipe]),u["\u0275mpd"](4608,N.a,N.a,[]),u["\u0275mpd"](4608,F.a,F.a,[]),u["\u0275mpd"](4608,S.a,S.a,[]),u["\u0275mpd"](4608,_.a,_.a,[]),u["\u0275mpd"](4608,P.a,P.a,[]),u["\u0275mpd"](4608,M.a,M.a,[h.a]),u["\u0275mpd"](4608,A.a,A.a,[]),u["\u0275mpd"](4608,q.a,q.a,[]),u["\u0275mpd"](4608,V.b,V.b,[]),u["\u0275mpd"](4608,L.a,L.a,[]),u["\u0275mpd"](4608,U.a,U.a,[u.RendererFactory2,u.PLATFORM_ID]),u["\u0275mpd"](4608,O.a,O.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,U.a,u.ApplicationRef]),u["\u0275mpd"](4608,j.a,j.a,[]),u["\u0275mpd"](4608,z.b,z.b,[u.RendererFactory2,O.a]),u["\u0275mpd"](4608,H.ScrollbarHelper,H.ScrollbarHelper,[B.DOCUMENT]),u["\u0275mpd"](4608,Z.DimensionsHelper,Z.DimensionsHelper,[]),u["\u0275mpd"](4608,G.ColumnChangesService,G.ColumnChangesService,[]),u["\u0275mpd"](4608,K.f,K.f,[]),u["\u0275mpd"](4608,Y.a,Y.a,[]),u["\u0275mpd"](4608,J.a,J.a,[X.l,Y.a]),u["\u0275mpd"](4608,Q.e,Q.e,[]),u["\u0275mpd"](1073742336,K.e,K.e,[]),u["\u0275mpd"](1073742336,f.CommonModule,f.CommonModule,[]),u["\u0275mpd"](1073742336,v.B,v.B,[]),u["\u0275mpd"](1073742336,v.n,v.n,[]),u["\u0275mpd"](1073742336,L.d,L.d,[]),u["\u0275mpd"](1073742336,v.x,v.x,[]),u["\u0275mpd"](1073742336,W.a,W.a,[]),u["\u0275mpd"](1073742336,V.c,V.c,[]),u["\u0275mpd"](1073742336,j.d,j.d,[]),u["\u0275mpd"](1073742336,$.ChartsModule,$.ChartsModule,[]),u["\u0275mpd"](1073742336,z.e,z.e,[]),u["\u0275mpd"](1073742336,ll.a,ll.a,[]),u["\u0275mpd"](1073742336,nl.a,nl.a,[]),u["\u0275mpd"](1073742336,el.NgxDatatableModule,el.NgxDatatableModule,[]),u["\u0275mpd"](1073742336,X.p,X.p,[[2,X.v],[2,X.l]]),u["\u0275mpd"](1073742336,ul.a,ul.a,[]),u["\u0275mpd"](1073742336,ol.a,ol.a,[]),u["\u0275mpd"](1073742336,al.a,al.a,[]),u["\u0275mpd"](1073742336,Q.c,Q.c,[]),u["\u0275mpd"](1073742336,o.a,o.a,[]),u["\u0275mpd"](1073742336,o.b,o.b,[]),u["\u0275mpd"](256,u.LOCALE_ID,"en-US",[]),u["\u0275mpd"](256,K.a,{autoClose:!0,insideClick:!1},[]),u["\u0275mpd"](1024,X.j,function(){return[[{path:"",redirectTo:"users",pathMatch:"full"},{path:"users",data:o.c,children:[{path:"",component:vl.a},{path:"create",component:Al.a,data:o.d},{path:"edit/:username",component:Al.a,data:o.e}]},{path:"roles",data:o.f,children:[{path:"",component:en.a},{path:"create",component:sn.a,data:o.g},{path:"edit/:name",component:sn.a,data:o.h}]}]]},[]),u["\u0275mpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])})}}]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/index.html ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/index.html --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/index.html 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/index.html 2021-03-15 17:51:46.000000000 +0000 @@ -3,9 +3,10 @@ Ceph + @@ -24,5 +25,5 @@ - + diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/main.68c073418034a57dd1dd.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/main.68c073418034a57dd1dd.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/main.68c073418034a57dd1dd.js 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/main.68c073418034a57dd1dd.js 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"+0ag":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){var e=/ceph version\s+[^ ]+\s+\(.+\)\s+(.+)\s+\((.+)\)/.exec(t);return e?"dev"===e[2]?"master":e[1]:t},t}()},"+s0g":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"+tJ4":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return function(e){for(var n=0,a=t.length;n=0}},"/6aS":function(t,e){t.exports='\n \n \n \n Toggle navigation\n Rozwi\u0144\n \n \n Dashboard\n Pulpit\n \n \n Cluster\n Klaster\n \n \n Hosts\n Hosty\n \n \n Monitors\n Monitory\n \n \n OSDs\n OSD-ki\n \n \n Configuration\n Konfiguracja\n \n \n CRUSH map\n CRUSH mapa\n \n \n Manager modules\n Zarz\u0105dca modu\u0142\xf3w\n \n \n Logs\n Logi\n \n \n Alerts\n Powiadomienia\n \n \n Silences\n Silences\n \n \n Pools\n Pule\n \n \n Block\n Dost\u0119p blokowy\n \n \n Images\n Obrazy\n \n \n Mirroring\n Kopia lustrzana\n \n \n iSCSI\n iSCSI\n \n \n NFS\n Sieciowy system plik\xf3w NFS\n \n \n Filesystems\n Systemy plik\xf3w\n \n \n Object Gateway\n Dost\u0119p obiektowy\n \n \n Daemons\n Demony\n \n \n Users\n U\u017cytkownicy\n \n \n Buckets\n Wiadra\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Trwa pobieranie danych \n dla \n \n \n . Czekaj...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Wy\u015bwietlanie wcze\u015bniej buforowanych danych \n \ndla \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Nie mo\u017cna za\u0142adowa\u0107 danych \n dla\n \n \n . Sprawd\u017a prosz\u0119 zdrowie klastra. \n \n \n \n Back\n Wstecz\n \n \n Select a Language\n Wybierz j\u0119zyk\n \n \n Loading panel data...\n Trwa \u0142adowanie danych...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119\n jak\nskonfigurowa\u0107 i uruchomi\u0107 funkcje monitoringu.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Pulpit Grafany nie istnieje. Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n jak\ndodaj pulpity do Grafany.\n \n \n \n Grafana Time Picker\n Wyb\xf3r czasu Grafana\n \n \n Reset Settings\n Zresetuj ustawienia\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n B\u0142\u0105d wczytywania danych.\n \n \n selected\n Wybrane\n X selected\n \n \n found\n Znaleziono\n X found\n \n \n total\n Razem\n X total\n \n \n Edit\n Edytuj\n \n \n Name\n Nazwa\n \n \n Description\n Opis\n \n \n Long description\n D\u0142ugi opis\n \n \n Default\n Domy\u015blna\n \n \n Daemon default\n Domy\u015blny demon\n \n \n Services\n Us\u0142ugi\n \n \n Values\n Warto\u015bci\n \n \n The entered value is too high! It must not be greater than \n .\n \n Podana warto\u015b\u0107 jest za wysoka. Nie mo\u017ce by\u0107 wi\u0119ksza ni\u017c \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Podana warto\u015b\u0107 jest za ma\u0142a. Nie mo\u017ce by\u0107 mniejsza od \n .\n \n \n \n Save\n Zapisz\n \n \n CRUSH map viewer\n widok CRUSH mapy\n \n \n Hosts List\n Lista host\xf3w\n \n \n Overall Performance\n Ca\u0142kowita wydajno\u015b\u0107\n \n \n No entries found\n Nie znaleziono wej\u015b\u0107\n \n \n Cluster Logs\n Logi z klastra \n \n \n Audit Logs\n Audyt log\xf3w\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u0141adowanie konfiguracji.\n \n \n The configuration could not be loaded.\n Nie mo\u017cna za\u0142adowa\u0107 konfiguracji\n \n \n Edit Manager module\n Edytuj modu\u0142 zarz\u0105dzania\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Wpisana warto\u015b\u0107 nie jest poprawnym UUID, np. 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Wpisana warto\u015b\u0107 musi by\u0107 poprawnym adresem IP\n \n \n This field is required.\n Pole jest wymagane.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Podana warto\u015b\u0107 jest za wysoka! Musi by\u0107 mniejsza b\u0105d\u017a r\xf3wna \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Podana warto\u015b\u0107 jest za niska! Musi by\u0107 wi\u0119ksza b\u0105d\u017a r\xf3wna \n .\n \n \n \n The entered value needs to be a number.\n Podana warto\u015b\u0107 musi by\u0107 liczb\u0105\n \n \n The entered value needs to be a number or decimal.\n Podana warto\u015b\u0107 musi by\u0107 liczb\u0105 albo dziesi\u0119tn\u0105.\n \n \n Update\n Zaktualizuj\n \n \n Status\n Status\n \n \n Cluster ID\n Klaster ID\n \n \n monmap modified\n Zmodyfikowana monmapa\n \n \n monmap epoch\n epoka monmap\n \n \n quorum con\n kworum con\n \n \n quorum mon\n kworum mon\n \n \n required con\n wymagany con\n \n \n required mon\n Wymagane mon \n \n \n In Quorum\n W kworum\n \n \n Not In Quorum\n Nie w kworum\n \n \n Cancel\n Anuluj\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Jeste\u015b pewny, \u017ce chcesz \n \xa0 wybrany \n ? \n \n \n \n Yes, I am sure.\n Tak, jestem pewny.\n \n \n Cluster-wide OSD Flags\n Flagi OSD w ca\u0142ym klastrze\n \n \n Submit\n Zatwierd\u017a\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Zaawansowane...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorytet odzyskiwania OSD\n \n \n Priority\n Priorytet\n \n \n Customize priority values\n Dostosuj warto\u015bci priorytetowe\n \n \n This field is required!\n To pole jest wymagane.\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Podana warto\u015b\u0107 jest za wysoka. Nie mo\u017ce by\u0107 wi\u0119ksza ni\u017c \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Podana warto\u015b\u0107 jest za ma\u0142a! Nie mo\u017ce by\u0107 mniejsza od \n .\n \n \n \n Reweight OSD\n Ponowne wa\u017cenie OSD\n \n \n The value needs to be between 0 and 1.\n Warto\u015b\u0107 powinna by\u0107 pomi\u0119dzy 0 a 1. \n \n \n Reweight\n Ponowne wa\u017cenie\n \n \n OSDs \n Scrub\n \n Szoruj\n OSD-ki\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, wybierz, 1 {G\u0142\u0119boko\u015b\u0107} }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Zamierzasz zaaplikowa\u0107 \n szorowanie na OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, wybierz, 1 {g\u0142\u0119boko\u015b\u0107} }\n \n \n OSDs List\n Lista OSD-k\xf3w \n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n Je\u015bli kontynuujesz \n OSD \n \n b\u0119dzie zaznaczony\n \n \n .\n \n \n \n The OSD is not safe to destroy!\n Nie mo\u017cna bezpiecznie zniszczy\u0107 tego OSD.\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n Je\u015bli kontyuujesz \n OSD \n \n b\u0119dzie \n \n \n .\n \n \n \n Details\n Szczeg\xf3\u0142y\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Warto\u015b\u0107\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Zamknij\n \n \n Delete\n Usu\u0144\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Zdrowie\n \n \n Statistics\n Statystyki\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n \xa0\njak nale\u017cy skonfigurowa\u0107 i uruchomi\u0107 zarz\u0105dzanie funkcjami NFS Ganeshy \n \n \n \n Clients\n Klienci\n \n \n Any client can access\n Ka\u017cdy klient ma dost\u0119p\n \n \n Addresses\n Adresy\n \n \n Required field\n Obowi\u0105zkowe pole\n \n \n Must contain one or more comma-separated values\n Musi zawiera\u0107 jedn\u0105 albo wi\u0119cej ,rozdzielonych przecinkiem, warto\u015bci \n \n \n For example:\n Na przyk\u0142ad: \n \n \n Access Type\n Typ dost\u0119pu\n \n \n Squash\n Squash\n \n \n Add clients\n Dodaj klient\xf3w \n \n \n Loading...\n \u0141adowanie...\n \n \n -- No cluster available --\n -- Brak dost\u0119pnego klastra -- \n \n \n -- Select the cluster --\n -- Wybierz klaster --\n \n \n Add daemon\n Dodaj demona\n \n \n Storage Backend\n Pami\u0119\u0107 Podr\u0119czna\n \n \n -- No data pools available --\n -- Brak danych puli -- \n \n \n -- Select the storage backend --\n -- Wybierz pami\u0119\u0107 podr\u0119czn\u0105 -- \n \n \n Object Gateway User\n U\u017cytkownik dost\u0119pu obiektowego\n \n \n -- No users available --\n -- Brak dost\u0119pnych u\u017cytkownik\xf3w -- \n \n \n -- Select the object gateway user --\n -- Wybierz u\u017cytkownika dost\u0119pu obiektowego -- \n \n \n CephFS User ID\n CephFS U\u017cytkownik ID\n \n \n -- No clients available --\n -- Brak dost\u0119pnych klient\xf3w -- \n \n \n -- Select the cephx client --\n -- Wybierz klienta cephx -- \n \n \n CephFS Name\n Nazwa CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Etykieta bezpiecze\u0144stwa\n \n \n Enable security label\n Uruchom etykiet\u0119 bezpiecze\u0144stwa\n \n \n CephFS Path\n \u015acie\u017cka CephFS \n \n \n Path need to start with a \'/\' and can be followed by a word\n \u015acie\u017cka powinna zaczyna\u0107 si\u0119 z \'/\' i nast\u0119pne mo\u017ce by\u0107 s\u0142owo\n \n \n New directory will be created\n Nowy katalog b\u0119dzie stworzony. \n \n \n Path\n \u015acie\u017cka\n \n \n Path can only be a single \'/\' or a word\n \u015acie\u017ck\u0105 mo\u017ce by\u0107 tylko \'/\' albo s\u0142owo\n \n \n New bucket will be created\n Nowe wiadro b\u0119dzie stworzone \n \n \n NFS Protocol\n Protok\xf3\u0142 NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternatywny dost\u0119p do \n NFS v3\n \xa0montuje ( nie musi mie\u0107 poprzedzaj\u0105cego \'/\' )\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Klient mo\u017ce nie montowa\u0107 podkatalog\xf3w ( np. je\u015bli Tag = foo, klient mo\u017ce nie montowa\u0107 foo/baz) \n \n \n By using different Tag options, the same Path may be exported multiple times.\n U\u017cywaj\u0105c r\xf3\u017cnych opcji Tagu, ta sama \u015acie\u017cka mo\u017ce by\u0107 wyeksportowana kilka razy.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Pozycja, kt\xf3r\u0105 \n NFS v4\n eksport zajmuje \nw \n Pseudo FS\n (musi by\u0107 unikatowa). \n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n U\u017cywaj\u0105c r\xf3\u017cnych opcji Pseudo, ta sama \u015acie\u017cka mo\u017ce by\u0107 wyeksportowana kilka razy.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Brak dost\u0119pnych typ\xf3w dost\u0119pu --\n \n \n -- Select the access type --\n -- Wybierz typ dost\u0119pu --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n - Brak squasha -\n \n \n --Select what kind of user id squashing is performed --\n -- Wybierz, jakiego rodzaju identyfikacja u\u017cytkownika ma by\u0107 przeprowadzana --\n \n \n Transport Protocol\n Protok\xf3\u0142 Transportu \n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Witamy w Cephie! \n The welcome message on the login page\n \n \n Username is required\n Nazwa u\u017cytkownika jest wymagana\n \n \n Password is required\n Has\u0142o jest wymagane.\n \n \n Login\n Zaloguj\n \n \n Sorry, the user does not exist in Ceph.\n Przepraszam, u\u017cytkownik nie istnieje w Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Powr\xf3t do \n Strony Logowania\n . Zostaniesz wylogowany z Dostastcy To\u017csamo\u015bci , kiedy spr\xf3bujesz si\u0119 zalgowa\u0107. \n \n \n \n Forbidden\n Zakazany\n \n \n Sorry, you are not allowed to see what you were looking for.\n Przepraszam, nie masz dost\u0119pu do tego czego szukasz. \n \n \n Sorry, we could not find what you were looking for\n Przepraszam, nie mo\u017cemy znale\u017a\u0107 tego czego szukasz.\n \n \n Remove all\n Usu\u0144 wszystko\n \n \n Recent Notifications\n Ostatnie powiadomienia\n \n \n There are no background tasks.\n Brak zada\u0144 w tle.\n \n \n Background Tasks\n Zagadnienia w tle \n \n \n Help\n Pomoc\n \n \n Documentation\n Dokumentacja\n \n \n API\n Interfejs API\n \n \n About\n O\n \n \n Dashboard Settings\n Ustawienia Pulpitu\n \n \n User management\n Zarz\u0105dzanie u\u017cytkownikami\n \n \n Logged in user\n Zalogowany u\u017cytkownik\n \n \n Signed in as\n \n \n \n \n Zalogowany jako \n \n \n \n \n \n \n Sign out\n Wyloguj\n \n \n Name...\n Nazwa...\n \n \n The chosen name is already in use.\n Wybrana nazwa ju\u017c jest u\u017cyta.\n \n \n Description...\n Opis...\n \n \n Permissions\n Pozwolenia\n \n \n Roles\n Role\n \n \n Username\n Nazwa u\u017cytkownika\n \n \n Password\n Has\u0142o\n \n \n Confirm password\n Potwierd\u017a has\u0142o\n \n \n Password confirmation doesn\'t match the password.\n Potwierdzaj\u0105ce has\u0142o nie pokrywa si\u0119 z has\u0142em.\n \n \n Full name\n Pe\u0142ne imi\u0119 \n \n \n Email\n Email\n \n \n Invalid email.\n Niepoprawny email.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Zamierzasz usun\u0105\u0107 uprawnienia \u201eodczytu / aktualizacji u\u017cytkownika\u201d od w\u0142asnego u\u017cytkownika.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Je\u015bli kontynuujesz, nie b\u0119dziesz m\xf3g\u0142 dodawa\u0107 albo usuwa\u0107 role od u\u017cytkownik\xf3w.\n \n \n Are you sure you want to continue?\n Jeste\u015b pewny, \u017ce chcesz kontynuowa\u0107? \n \n \n Performance counters not available\n Liczniki wydajno\u015bci nie s\u0105 dost\u0119pne\n \n \n Attributes (OSD map)\n Atrybuty (mapa OSD-k\xf3w)\n \n \n Metadata not available\n Niedost\u0119pne metadane\n \n \n Metadata\n Metadane\n \n \n Performance counter\n Licznik wydajno\u015bci\n \n \n Histogram not available: \n \n \n Histogram niedost\u0119pny: \n \n \n \n \n Writes\n Pisze\n \n \n Reads\n Czyta\n \n \n Histogram\n Histogram\n \n \n Performance Details\n Szczeg\xf3\u0142y wydajno\u015bci\n \n \n Current values\n Obecne warto\u015bci \n \n \n Type\n Typ\n \n \n Min\n Min\n \n \n Max\n Max\n \n \n Flags\n Flagi\n \n \n Source\n \u0179r\xf3d\u0142o \n \n \n Level\n Poziom\n \n \n Can be updated at runtime (editable)\n Mo\u017ce by\u0107 aktualizowany w czasie wykonywania (edytowalny)\n \n \n Tags\n Tagi\n \n \n Enum values\n Warto\u015bci enumerowane \n \n \n See also\n Zobacz tak\u017ce \n \n \n Cluster Status\n Status klastra\n \n \n Manager Daemons\n Zarz\u0105dzanie demonami\n \n \n Object Gateways\n Obiekty bram \n \n \n Metadata Servers\n Serwery metadanych\n \n \n iSCSI Gateways\n Bramy iSCSI\n \n \n Client IOPS\n Klient IOPS\n \n \n Client Throughput\n Przepustowo\u015b\u0107 klienta\n \n \n Client Read/Write\n Odczyt/Zapis klienta\n \n \n Recovery Throughput\n Przepustowo\u015b\u0107 odzyskiwania\n \n \n Scrub\n Szoruj\n \n \n Performance\n Wydajno\u015b\u0107\n \n \n Raw Capacity\n Pojemno\u015b\u0107 rz\u0119du\n \n \n Objects\n Obiekty\n \n \n PGs per OSD\n PG-y na OSD\n \n \n PG Status\n Status PG\n \n \n Capacity\n Pojemno\u015b\u0107\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n zobacz\n logi\n , \u017ceby mie\u0107 wi\u0119cej szczeg\xf3\u0142\xf3w. \n \n \n \n Ranks\n Szeregi\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Klienci: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Przenie\u015b obraz do kosza\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \u017beby przenie\u015b\u0107 \n \n /\n \n do kosza, kliknij \n Przenie\u015b obraz\n . Opcjonalnie, mo\u017cesz wybra\u0107 dat\u0119 wa\u017cno\u015bci.\n \n \n \n Protection expires at\n Zabezpieczenie wygasa w \n \n \n NOT PROTECTED\n NIEZABEZPIECZONY \n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Z\u0142y format daty. Prosz\u0119 u\u017cywa\u0107 "RRRR-MM-DD GG:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Ochrona ju\u017c wygas\u0142a. Prosz\u0119 wybra\u0107 przysz\u0142\u0105 dat\u0119 lub zostawi\u0107 pust\u0105.\n \n \n Move Image\n Przenie\u015b obraz\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Przegl\u0105d\n \n \n Targets\n Obiekty docelowe\n \n \n Discovery Authentication\n Uwierzytelnianie wykrywania\n \n \n User\n U\u017cytkownik\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nazwy u\u017cytkownik\xf3w musz\u0105 mie\u0107 d\u0142ugo\u015b\u0107 od 8 do 64 znak\xf3w i \nmog\u0105 zawiera\u0107 jedynie litery, \'.\', \'@\', \'-\', \'_\' lub \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Wsp\xf3lny u\u017cytkownik \n \n \n Mutual Password\n Wsp\xf3lne has\u0142o\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n \xa0\njak skonfigurowa\u0107 i uruchomi\u0107 zarz\u0105dzanie funkcjonalno\u015bciami obiektami docelowymi iSCSI\n \n \n \n Available information:\n Dost\u0119pne informacje: \n \n \n iSCSI Targets not available\n obiekty docelowe iSCSI niedost\u0119pne \n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Dost\u0119pne tylko dla obraz\xf3w RBD z \n szybk\u0105 r\xf3\u017cnic\u0105 \n w\u0142\u0105czone\n \n \n \n Pool\n Pul\n \n \n Data Pool\n Dane pula\n \n \n Created\n Utworzony\n \n \n Size\n Rozmiar\n \n \n Object size\n Rozmiar obiektu\n \n \n Features\n Funkcje\n \n \n Provisioned\n Zaopatrzony\n \n \n N/A\n Niedost\u0119pny\n \n \n Total provisioned\n Ca\u0142kowite rezerwy\n \n \n Striping unit\n Jednostka maskowana\n \n \n Striping count\n Licznik maskowania\n \n \n Parent\n Rodzic\n \n \n Block name prefix\n Prefiks nazwy bloku\n \n \n Order\n Zam\xf3wienie\n \n \n Snapshots\n Migawki\n \n \n Image\n Obraz\n \n \n This setting overrides the global value\n To ustawienie zast\u0119puj\u0119 warto\u015b\u0107 globaln\u0105.\n \n \n Global\n Globalne\n \n \n This is the global value. No value for this option has been set for this image.\n To jest globalna warto\u015b\u0107. Dla tego obrazu nie ustawiono \u017cadnej warto\u015bci dla tej opcji.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' and \'@\' nie s\u0105 dozwolone.\n \n \n -- No rbd pools available --\n -- Brak dost\u0119pnych rbd puli -- \n \n \n -- Select a pool --\n -- Wybierz pul --\n \n \n Use a dedicated data pool\n U\u017cyj dedykowanych danych pul \n \n \n Data pool\n Dane pul\n \n \n Dedicated pool that stores the object-data of the RBD.\n Dedykowany pul, kt\xf3ry przechowuje dane obiektowe z RBD\n \n \n e.g., 10GiB\n np. 10 GiB\n \n \n You have to increase the size.\n Musisz zwi\u0119kszy\u0107 rozmiar.\n \n \n Advanced\n Zaawansowane\n \n \n Striping\n Maskowanie\n \n \n Stripe unit\n Jednostka pask\xf3w\n \n \n -- Select stripe unit --\n -- Wybierz jednostk\u0119 pask\xf3w -- \n \n \n This field is required because stripe count is defined!\n Pole jest wymagane, poniewa\u017c licznik pask\xf3w jest zdefiniowany. \n \n \n Stripe unit is greater than object size.\n Jednostka pask\xf3w jest wi\u0119ksza ni\u017c rozmiar obiektu.\n \n \n Stripe count\n Licznik pask\xf3w \n \n \n This field is required because stripe unit is defined!\n Pole jest wymagane, poniewa\u017c jednostka pask\xf3w jest zdefiniowana! \n \n \n Stripe count must be greater than 0.\n Licznik pask\xf3w musi by\u0107 wi\u0119kszy od 0.\n \n \n \n RBD Snapshot\n \n \n migawka RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, wybierz, prawda {Zmie\u0144 nazwe} inaczej{Utw\xf3rz} }\n \n \n \n Snapshot\n \n \n Migawka\n \n \n \n PROTECTED\n ZABEZPIECZONE\n \n \n UNPROTECTED\n NIEZABEZPIECZONY \n \n \n You are about to rollback\n Zaraz si\u0119 wycofasz. \n \n \n Purge Trash\n Usu\u0144 \u015amieci\n \n \n To purge, select one or All images and click\n Aby usun\u0105\u0107, wybierz jeden albo wszystkie obrazy i kliknij \n \n \n Pool:\n Pul:\n \n \n Pool name...\n Nazwa pula\n \n \n All\n Wszystkie\n \n \n Restore Image\n Przywr\xf3\u0107 obraz\n \n \n To restore\n Przywr\xf3\u0107\n \n \n type the image\'s new name and click\n Wpisz nazwe nowego obrazu i kliknij. \n \n \n New Name\n Nowa Nazwa\n \n \n Expired at\n Wygas\u0142y w\n \n \n Protected until\n Zabezpieczony do\n \n \n This image is protected until \n .\n \n Ten obraz jest chroniony do \n .\xa0\n \n \n \n Trash\n Kosz\n \n \n iSCSI Topology\n Topologia iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Zmiana tych parametr\xf3w z domy\u015blnych warto\u015bci przewa\u017cnie nie jest potrzebna.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Ustawienia\n \n \n Backstore\n Tylny koniec przechowywania\n \n \n Confirm\n Potwierd\u017a\n \n \n Advanced Settings\n Ustawienia zaawansowane\n \n \n Target IQN\n Nazwa IQN obiektu docelowego iSCSI\n \n \n IQN has wrong pattern.\n B\u0142\u0119dna sk\u0142adnia nazwy IQN.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN ma nast\u0119puj\u0105c\u0105 notacj\u0119 \u201eiqn. $ Rok-$ miesi\u0105c. $ odwr\xf3conyAdres: $ zdefiniowanaNazwa\u201d\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Na przyk\u0142ad: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Wi\u0119cej informacji\n \n \n This target has modified advanced settings.\n Ten obiekt docelowy zmodyfikowa\u0142 zaawansowane ustawienia.\n \n \n Portals\n Portale\n \n \n At least \n gateways are required.\n \n Wymagane s\u0105 przynajmniej \n bramy.\n \n \n \n Add portal\n Dodaj portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Ten obraz zmodyfikowa\u0142 ustawienia. \n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Dodaj obraz.\n \n \n ACL authentication\n Uwierzytelnianie ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Inicjatory iSCSI\n \n \n Initiator\n Inicjator iSCSI\n \n \n Client IQN\n Klient IQN\n \n \n Initiator IQN needs to be unique.\n Inicjator IQN powinien by\u0107 unikalny.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nazwy u\u017cytkownik\xf3w musz\u0105 mie\u0107 d\u0142ugo\u015b\u0107 od 8 do 64 znak\xf3w i mog\u0105 zawiera\u0107 jedynie litery, \'.\', \'@\', \'-\', \'_\' lub \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Inicjator iSCSI nale\u017c\u0105 do grupy. Obrazy b\u0119d\u0105 skonfigurowane w grupie. \n \n \n No items added.\n Brak dodanych pozycji.\n \n \n Add initiator\n Dodaj inicjator iSCSI\n \n \n Groups\n Grupy\n \n \n Group\n Grupa\n \n \n Add group\n Dodaj grup\u0119\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Konfiguracja RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Usu\u0144 warto\u015b\u0107 konfiguracji lokalnej. Warto\u015b\u0107 konfiguracji rodzica b\u0119dzie odziedziczona i zostanie u\u017cyta zamiast tej.\n \n \n The mininum value is 0\n Minimalna warto\u015b\u0107 wynosi 0.\n \n \n Issues\n Zagadnienia\n \n \n Syncing\n Synchronizacja\n \n \n Ready\n Gotowy\n \n \n Edit pool mirror mode\n Tryb edycji lustrzanego pula\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Aby edytowa\u0107 tryb lustrzanydla pula\n \n \n , wybierz tryb z listy i kliknij\n Zaktualizuj\n .\n \n \n \n Mode\n Tryb\n \n \n Peer clusters must be removed prior to disabling mirror.\n Sparowany klaster musi by\u0107 usuni\u0119ty przed wy\u0142\u0105czeniem lustra. \n \n \n \n \n pool mirror peer\n \n \n sparowany pul lustrzany\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, wybierz, edytuj{Edytuj} inaczej {Dodaj} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n pul \nlustra sparowanych atrybut\xf3w dla pula \n \n \n i kliknij \n Zatwierd\u017a\n .\n \n \n \n Cluster Name\n Nazwa Klastra\n \n \n The cluster name is not valid.\n Nazwa klastra jest niepoprawna \n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n ID CephX nie jest poprawne.\n \n \n Monitor Addresses\n Adres monitora \n \n \n Comma-delimited addresses...\n Adresy rozdzielane przecinkami... \n \n \n The monitory address is not valid.\n Adres monitora nie jest poprawny.\n \n \n CephX Key\n Klucz CephX\n \n \n Base64-encoded key...\n Klucz zakodowany w Base64...\n \n \n CephX key must be base64 encoded.\n Klucz CephX musi by\u0107 zakodowany w Base64/\n \n \n Pools List\n Lista puli\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Nazwa mo\u017ce sk\u0142ada\u0107 si\u0119 z alfanumerycznych znak\xf3w, kresek i podkre\u015ble\u0144.\n \n \n The chosen erasure code profile name is already in use.\n Wybrana nazwa profilu kodu kasowania jest ju\u017c u\u017cywana.\n \n \n Plugin\n Wtyczka\n \n \n Data chunks (k)\n Ramka danych (k)\n \n \n Must be equal to or greater than 2.\n Musi by\u0107 wi\u0119ksza b\u0105d\u017a r\xf3wna 2.\n \n \n Coding chunks (m)\n Kodowanie kawa\u0142ka (m)\n \n \n Must be equal to or greater than 1.\n Musi by\u0107 wi\u0119ksza b\u0105d\u017a r\xf3wna 1.\n \n \n Durability estimator (c)\n Estymator trwa\u0142o\u015bci (c)\n \n \n Locality (l)\n Lokalno\u015b\u0107 (l)\n \n \n Crush failure domain\n Domena niepowodzenia Crush\n \n \n Crush Locality\n Lokalno\u015b\u0107 Crusha\n \n \n None\n Nic\n \n \n Technique\n Technika\n \n \n Packetsize\n Rozmiar pakietu\n \n \n Crush root\n korze\u0144 Crusha\n \n \n Crush device class\n urz\u0105dzenie klasy Crush\n \n \n any\n kt\xf3rykolwiek\n \n \n Directory\n Katalog\n \n \n The chosen Ceph pool name is already in use.\n Wybrana nazwa Ceph pula jest ju\u017c u\u017cyta.\n \n \n Pool type\n Typ pula\n \n \n -- Select a pool type --\n -- Wybierz typ pula --\n \n \n Placement groups\n Grupa umieszczenia\n \n \n At least one placement group is needed!\n Przynajmniej jedna grupa umieszczenia jest wymagana\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Tw\xf3j klaster nie obs\u0142uguje tylu PG. Skalkuluj prosz\u0119 potrzebn\u0105 ilo\u015b\u0107 PG.\n \n \n Calculation help\n Pomoc obliczeniowa\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Obecne ustawienia PG zosta\u0142y policzone dla Ciebie, \npowiniene\u015b upewni\u0107 si\u0119 czy te warto\u015bci Ci odpowiadaj\u0105 przed zatwierdzeniem.\n \n \n Crush ruleset\n zbi\xf3r zasad Crush\n \n \n -- Select a crush rule --\n -- Wybierz zasad\u0119 Crush --\n \n \n Crush rule\n zasada Crush\n \n \n Crush steps\n Kroki Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Zasada nie mo\u017ce by\u0107 u\u017cyta w obecnym klastrze, gdy\u017c ma\nzbyt ma\u0142o OSD-k\xf3w, \u017ceby spe\u0142ni\u0107 minimum OSD-k\xf3w wymaganych przez t\u0119 zasad\u0119.\n \n \n Replicated size\n Replikowany rozmiar\n \n \n Minimum: \n \n \n Minimum: \n \n \n \n \n Maximum: \n \n \n Maximum: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Sprecyzowany rozmiar jest poza zakresem. Warto\u015b\u0107 od \n do \n jest poprawna.\n \n \n \n Erasure code profile\n Skasuj profil kodu.\n \n \n -- No erasure code profile available --\n -- Brak profilu kasowania --\n \n \n -- Select an erasure code profile --\n -- Wybierz profil kodu wymazywania --\n \n \n EC Overwrites\n EC Nadpisuje\n \n \n Applications\n Zastosowania\n \n \n Compression\n Kompresja\n \n \n Algorithm\n Algorytm\n \n \n -- No erasure compression algorithm available --\n -- Brak algorytmu kompresji wymazywania --\n \n \n Minimum blob size\n Minimalny rozmiar blob\n \n \n e.g., 128KiB\n np. 128 KB\n \n \n Value should be greater than 0\n Warto\u015b\u0107 powinna by\u0107 wi\u0119ksza ni\u017c 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Maksymalny rozmiar blob\n \n \n e.g., 512KiB\n np. 512 KB\n \n \n Value should be greater than the minimum blob size\n Warto\u015b\u0107 powinna by\u0107 wi\u0119ksza ni\u017c minimalny rozmiar blob\n \n \n Ratio\n Stosunek\n \n \n Compression ratio\n Skompresowany stosunek\n \n \n Value should be between 0.0 and 1.0\n Warto\u015b\u0107 powinna by\u0107 pomi\u0119dzy 0.0, a 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Nie mo\u017cna stworzy\u0107 pula RBD z \'/\' w nazwie.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Prosz\u0119 zmieni\u0107 nazw\u0119 albo usun\u0105\u0107 \'rbd\' z listy zastosowa\u0144.\n \n \n Cache Tiers Details\n Szczeg\xf3\u0142y poziom\xf3w pami\u0119ci podr\u0119cznej\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n \xa0\njak skonfigurowa\u0107 i i uruchomi\u0107 zarz\u0105dzanie funkcjami Dost\u0119pu obiektowego\n \n \n \n Daemons List\n Lista demon\xf3w\n \n \n Performance Counters\n Liczniki wydajno\u015bci\n \n \n Loading bucket data...\n \u0141adowanie wiadra danych\n \n \n The bucket data could not be loaded.\n Nie mo\u017cna za\u0142adowa\u0107 wiadra danych.\n \n \n Id\n Number ID\n \n \n The value is not valid.\n Warto\u015b\u0107 nie jest poprawna.\n \n \n Owner\n W\u0142a\u015bciciel\n \n \n -- Select a user --\n -- Wybierz u\u017cytkownika -- \n \n \n ID\n ID\n \n \n Index type\n Typ indeksu\n \n \n Placement rule\n Zasada umieszczania\n \n \n Marker\n Znacznik\n \n \n Maximum marker\n Maksymalny znacznik\n \n \n Version\n Wersja\n \n \n Master version\n G\u0142\xf3wna wersja\n \n \n Modification time\n Czas modyfikacji\n \n \n Zonegroup\n Strefa \n \n \n Bucket quota\n kontyngent wiadra\n \n \n Enabled\n Uaktywniony\n \n \n Maximum size\n Maksymalny rozmiar\n \n \n Unlimited\n Nielimitowany\n \n \n Maximum objects\n Maksimum obiekt\xf3w\n \n \n -- Select a username --\n -- Wybierz nazw\u0119 u\u017cytkownika -- \n \n \n Auto-generate key\n Auto-generowany klucz\n \n \n Access key\n Klucz dost\u0119pu\n \n \n Secret key\n Tajny klucz \n \n \n Email address\n Adres email\n \n \n Suspended\n Zawieszony\n \n \n System\n System\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, wybierz, 0 {Nie} 1{Tak} }\n \n \n Maximum buckets\n Maksimum wiader\n \n \n Subusers\n pod-u\u017cytkownicy\n \n \n Capabilities\n Zdolno\u015bci\n \n \n User quota\n Limit u\u017cytkownika\n \n \n Show\n Poka\u017c\n \n \n Keys\n Klucze\n \n \n -- Select a type --\n -- wybierz typ --\n \n \n Permission\n Pozwolenie \n \n \n -- Select a permission --\n -- Wybierz pozwolenie --\n \n \n Subuser\n pod-u\u017cytkownik\n \n \n The chosen subuser ID is already in use.\n Wybrane ID pod-u\u017cytkownika jest ju\u017c u\u017cyte.\n \n \n read, write\n odczyt, zapis\n \n \n full\n pe\u0142ny\n \n \n Swift key\n Szybki klucz\n \n \n Auto-generate secret\n Auto-generowany sekret\n \n \n Loading user data...\n \u0141adowanie danych u\u017cytkownika...\n \n \n The user data could not be loaded.\n Nie mo\u017cna za\u0142adowa\u0107 danych u\u017cytkownika.\n \n \n The chosen user ID is already in use.\n Wybrane ID u\u017cytkownika jest ju\u017c u\u017cyte.\n \n \n This is not a valid email address.\n Ten adres email nie jest poprawny.\n \n \n The chosen email address is already in use.\n Wybrany adres email jest ju\u017c u\u017cyty.\n \n \n Max. buckets\n Max. wiader \n \n \n The entered value must be >= 0.\n Podana warto\u015b\u0107 musi by\u0107 >= 0\n \n \n S3 key\n klucz S3\n \n \n There are no subusers.\n Nie ma pod-u\u017cytkownik\xf3w.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3 (prosty serwis przechowywania) \n \n \n There are no keys.\n Nie ma kluczy.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Szybki\n \n \n There are no capabilities.\n Nie ma zdolno\u015bci. \n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Nielimitowany rozmiar\n \n \n Max. size\n Max. rozmiar\n \n \n Unlimited objects\n Nielimitowane obiekty\n \n \n Max. objects\n Max. obiekt\xf3w\n \n \n Current\n Obecny\n \n \n Updated discovery authentication\n Zaktualizowane uwierzytelnianie wykrywania\n \n \n There are no portals available.\n Brak dost\u0119pnych portali.\n \n \n There are no images available.\n Nie ma dost\u0119pnych obraz\xf3w. \n \n \n There are no images available. Please make sure you add an image to the target.\n Nie ma dost\u0119pnych obraz\xf3w. Prosz\u0119 si\u0119 upewni\u0107, \u017ce dodajesz obraz do obiektu docelowego. \n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Nie ma dost\u0119pnych inicjator\xf3w iSCSI. Prosz\u0119 upewni\u0107 si\u0119, \u017ce dodajesz inicjator iSCSI do obiektu docelowego.\n \n \n target\n target\n \n \n Target\n obiekt docelowy iSCSI\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Stan\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Odczyt bajt\xf3w \n \n \n Write Bytes\n Zapis bajt\xf3w\n \n \n Read Ops\n Odczyt Ops\n \n \n Write Ops\n Zapis Ops\n \n \n A/O Since\n A/O Od\n \n \n Instance\n Instancja\n \n \n Hostname\n Nazwa hosta\n \n \n Issue\n Zagadnienie \n \n \n Progress\n Progres\n \n \n Disabled\n Wy\u0142\u0105czony\n \n \n Edit Mode\n Tryb Edycji\n \n \n Add Peer\n Dodaj parowanie \n \n \n Edit Peer\n Edytuj parowanie\n \n \n Delete Peer\n Usu\u0144 parowanie\n \n \n Leader\n Lider\n \n \n # Local\n # Lokalny\n \n \n # Remote\n # Zdalny\n \n \n mirror peer\n lustrzane parowanie\n \n \n Key\n Klucz\n \n \n RBD\n RBD\n \n \n Deep flatten\n G\u0142\u0119bokie sp\u0142aszczenie\n \n \n Layering\n Warstwowanie \n \n \n Exclusive lock\n Wy\u0142\u0105czna blokada\n \n \n Object map (requires exclusive-lock)\n Mapa obiekt\xf3w (wymaga wy\u0142\u0105cznej blokady)\n \n \n Journaling (requires exclusive-lock)\n Kronikowanie (wymaga wy\u0142\u0105cznej blokady)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Wycofywanie migawek RBD\n \n \n Rollback\n Wycofanie\n \n \n RBD snapshot\n migawka RBD\n \n \n Deleted At\n Usuni\u0119ty o \n \n \n id\n id\n \n \n type\n typ\n \n \n state\n stan\n \n \n version\n wersja\n \n \n Host\n Host\n \n \n root\n administrator\n \n \n Rank\n Ranga\n \n \n Daemon\n Demon\n \n \n Activity\n Aktywno\u015b\u0107\n \n \n Dentries\n centrale\n \n \n Inodes\n i-w\u0119z\u0142y\n \n \n Usage\n U\u017cycie\n \n \n Standby daemons\n Czuwanie demona \n \n \n The value can be updated at runtime.\n Warto\u015b\u0107 mo\u017ce by\u0107 zaktualizowana w czasie wykonywania . \n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Demony/klienci nie pobieraj\u0105 tej warto\u015bci z\nbazy danych skonfigurowanego monitora. Nie zezwalamy na ustawienie tej opcji przez \'konfiguracje ceph\nustaw.. \'. Ta opcja powinna by\u0107 skonfigurowana przez ceph.conf albo przez\nterminal.\n \n \n Option takes effect only during daemon startup.\n Opcja dzia\u0142a tylko podczas startu demona.\n \n \n Option only affects cluster creation.\n Opcja dotyczy tylko tworzenia klastra.\n \n \n Option only affects daemon creation.\n Opcja tylko wp\u0142ywa na tworzenie demona.\n \n \n Updated config option \n \n \n Zaktualizowana opcja konfiguracji \n \n \n \n \n Service\n Us\u0142uga\n \n \n Current value\n Obecna warto\u015b\u0107\n \n \n Editable\n Edytowalny\n \n \n Updated options for module "\n ".\n \n Zaktualizowane opcje dla modu\u0142u &quot;\n &quot;.\n \n \n \n Enable\n W\u0142\u0105czy\u0107\n \n \n Disable\n Wy\u0142\u0105czy\u0107\n \n \n Reconnecting, please wait ...\n Ponowne \u0142\u0105czenie, prosz\u0119 czeka\u0107\n \n \n Public Address\n Adres publiczny\n \n \n Open Sessions\n Otwarte sesje\n \n \n No In\n Nie w \n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSD-ki, kt\xf3re zosta\u0142y oznaczone jako poza, nie b\u0119d\u0105 oznaczone ponownie jako w gdy zostan\u0105 uruchomion\n \n \n No Out\n Nie poza\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD-ki nie b\u0119d\u0105 automatycznie oznaczone jako poza po konfiguracji interwa\u0142u\n \n \n No Up\n Nie powsta\u0142y \n \n \n OSDs are not allowed to start\n OSD-ki nie mog\u0105 startowa\u0107\n \n \n No Down\n Nie upad\u0142y\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Raport z niepowodzenia OSD jest ignorowany, tak\u017ce monitory nie oznacz\u0105 OSD jako upad\u0142ego. \n \n \n Pause\n Pauza \n \n \n Pauses reads and writes\n Pauzuje czytanie i zapisywanie\n \n \n No Scrub\n Nie szoruj\n \n \n Scrubbing is disabled\n Szorowanie jest wy\u0142\u0105czone\n \n \n No Deep Scrub\n Nie ma g\u0142\u0119bokiego szorowania\n \n \n Deep Scrubbing is disabled\n G\u0142\u0119bokie szorowanie jest wy\u0142\u0105czone\n \n \n No Backfill\n Brak zasypywania\n \n \n Backfilling of PGs is suspended\n Zasypywanie PG jest zawieszone\n \n \n No Recover\n Nie przywr\xf3cono\n \n \n Recovery of PGs is suspended\n Przywr\xf3cenie PGy jest zawieszone \n \n \n Bitwise Sort\n Sortuj bitowo\n \n \n Use bitwise sort\n U\u017cyj sortowania bitowego\n \n \n Purged Snapdirs\n Usu\u0144 snap katalogi\n \n \n OSDs have converted snapsets\n OSD-ki zmieni\u0142y snapsety\n \n \n Recovery Deletes\n Odzyskaj usuni\u0119te\n \n \n Deletes performed during recovery instead of peering\n Podczas zdrowienia zastosowano usuni\u0119cie zamiast parowania\n \n \n PG Log Hard Limit\n Twardy limit log\xf3w PG\n \n \n Puts a hard limit on pg log length\n Ustawia twardy limit na d\u0142ugo\u015b\u0107 log\xf3w PG\n \n \n Updated OSD Flags\n Zaktualizowane flagi OSD-k\xf3w\n \n \n out\n poza\n \n \n in\n w\n \n \n down\n upad\u0142y\n \n \n Mark\n Zaznacz\n \n \n OSD lost\n Stracony OSD\n \n \n marked lost\n Zaznaczony jako stracony\n \n \n Purge\n Czy\u015b\u0107\n \n \n OSD\n OSD-ik\n \n \n purged\n Oczyszczony\n \n \n destroy\n Zniszcz\n \n \n destroyed\n Zniszczony\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG-y\n \n \n Read bytes\n Czytanie bajt\xf3w\n \n \n Writes bytes\n Zapis bajt\xf3w\n \n \n Read ops\n Czytanie ops\n \n \n Write ops\n Zapis ops\n \n \n Mark OSD \n \n \n Zaznacz OSD \n \n \n \n \n Mark \n \n \n Zaznacz \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Max zasypywanie\n \n \n Recovery Max Active\n Max aktywno\u015b\u0107 wyzdrowienia\n \n \n Recovery Max Single Start\n Max pojedynczy start wyzdrowienia\n \n \n Recovery Sleep\n U\u015bpienie wyzdrowienia\n \n \n Custom\n Zwyczaj\n \n \n Updated OSD recovery speed priority "\n "\n \n Zaktualizowano pr\u0119dko\u015b\u0107 wyzdrowienia OSD priorytet &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n zosta\u0142 zainicjalizowany w nast\u0119puj\u0105cym OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Praca\n \n \n Severity\n surowo\u015b\u0107\n \n \n Started\n Wystartowany\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Zaktualizowany\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n U\u017cyty\n \n \n Avail.\n Dost\u0119pny\n \n \n Clean\n Czy\u015b\u0107\n \n \n Working\n Dzia\u0142aj\u0105cy\n \n \n Warning\n Ostrze\u017cenie \n \n \n Unknown\n Nieznany\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n Podniesiony\n \n \n no filesystems\n brak system\xf3w plik\xf3w\n \n \n active\n aktywny\n \n \n standby\n Rezerwa\n \n \n n/a\n niedost\u0119pny\n \n \n active daemon\n aktywny demon\n \n \n quorum\n kworum\n \n \n The NFS Ganesha service is not configured.\n Us\u0142uga NFS Ganesha nie jest skonfigurowana\n \n \n Transport\n Transport\n \n \n CephFS User\n U\u017cytkownik CephFS\n \n \n CephFS Filesystem\n system plik\xf3w CephFS \n \n \n (inherited from global config)\n (Odziedziczy\u0142o z globalnej konfiguracji)\n \n \n inherited from global config\n Odziedziczy\u0142o z globalnej konfiguracji\n \n \n -- Select what kind of user id squashing is performed --\n -- Wybierz, jakiego rodzaju identyfikacja u\u017cytkownika ma by\u0107 przeprowadzana -- \n \n \n There are no daemons available.\n Brak dost\u0119pnym demon\xf3w\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Tryb pami\u0119ci podr\u0119cznej\n \n \n Min Evict Age\n Min wiek eksmisji\n \n \n Min Flush Age\n Min wiek wyr\xf3wnania \n \n \n Target Max Bytes\n Max bajt\xf3w obiektu docelowego \n \n \n Target Max Objects\n Max obiekt\xf3w docelowych\n \n \n No applications added\n Nie dodano \u017cadnego zastosowania\n \n \n Applications limit reached\n Osi\u0105gni\u0119to limit zastosowa\u0144 \n \n \n A pool can only have up to four applications definitions.\n Pul mo\u017ce mie\u0107 maksymalnie 4 definicje aplikacji. \n \n \n Allowed characters \'_a-zA-Z0-9\'\n Dozwolone znaki \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Maksymalna d\u0142ugo\u015b\u0107 wynosi 128 znak\xf3w\n \n \n Filter or add applications\n Filtruj lub dodaj zastosowanie\n \n \n Add application\n Dodaj zastosowanie\n \n \n pool\n pool\n \n \n erasure code profile\n skasuj profil kodu\n \n \n Replica Size\n Rozmiar repliki\n \n \n Last Change\n Ostatnia zmiana\n \n \n Erasure Coded Profile\n Skasuj profil zakodowany\n \n \n Crush Ruleset\n Zbi\xf3r zasad Crush\n \n \n Write bytes\n Zapis bajt\xf3w \n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n wiadro\n \n \n Updated Object Gateway bucket "\n "\n \n Zaktualizowano wiadro dost\u0119pu obiektowego &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n Stworzono wiadro dost\u0119pu obiektowego &quot;\n &quot;\n \n \n \n buckets\n Wiadra\n \n \n capability\n capability\n \n \n user\n u\u017cytkownik\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Zaktualizowano u\u017cytkownika dost\u0119pu obiektowego &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n Stworzono u\u017cytkownika dost\u0119pu obiektowego&quot;\n &quot;\n \n \n \n users\n u\u017cytkownicy\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Zakres\n \n \n Read\n Czytaj\n \n \n Create\n Stw\xf3rz\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Utw\xf3rz rol\u0119 \'\n \'\n \n \n \n Updated role \'\n \'\n \n Zaktualizuj rol\u0119 \'\n \'\n \n \n \n System Role\n System roli \n \n \n Deleted role \'\n \'\n \n Usu\u0144 rol\u0119 \'\n \'\n \n \n \n Created user "\n "\n \n Stw\xf3rz u\u017cytkownika &quot;\n &quot;\n \n \n \n Update user\n Zaktualizuj u\u017cytkownika\n \n \n Continue\n Kontynuuj \n \n \n You were automatically logged out because your roles have been changed.\n Zosta\u0142e\u015b automatycznie wylogowany, poniewa\u017c zosta\u0142y zmienione twoje role.\n \n \n Updated user "\n "\n \n Zaktualizowano u\u017cytkownika &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Usuni\u0119to u\u017cytkownika &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Nie uda\u0142o si\u0119 usun\u0105\u0107 u\u017cytkownika &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Jeste\u015b obecnie zalogowany jako&quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Ka\u017cdy obiekt jest podzielony na cz\u0119\u015bci fragment\xf3w danych, ka\u017cdy jest przechowywany na innym OSD.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Oblicz porcje kodu dla ka\u017cdego obiektu i przechowuj je na r\xf3\u017cnych OSD.\n Liczba fragment\xf3w koduj\u0105cych to r\xf3wnie\u017c liczba OSD, kt\xf3re mog\u0105 zosta\u0107 wy\u0142\u0105czone bez utraty danych.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Wtyczka jerasure jest najbardziej uniwersaln\u0105 i elastyczn\u0105 wtyczk\u0105,\n jest to r\xf3wnie\u017c domy\u015blne ustawienie dla pui kodowanych przez Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Bardziej elastyczn\u0105 technik\u0105 jest reed_sol_van: wystarczy ustawi\u0107 k\n oraz m. Technika cauchy_good mo\u017ce by\u0107 szybsza, ale musisz wybra\u0107 rozmiar pakietu\n ostro\u017cnie. Wszystkie reed_sol_r6_op, liberation, blaum_roth, liber8tion s\u0105 odpowiednikami RAID6\n w tym sensie, \u017ce mog\u0105 by\u0107 skonfigurowane tylko z m = 2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n Kodowanie b\u0119dzie wykonywane na pakietach o rozmiarze bajt\xf3w naraz.\n Wyb\xf3r odpowiedniego rozmiaru pakietu jest trudny.\n Dokumentacja jerasure zawiera obszerne informacje na ten temat.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Z wtyczk\u0105 jerasure, gdy obiekt zakodowany przy u\u017cyciu skasowania jest przechowywany na \n wielu OSD-kach, odzyskiwanie po utracie jednego OSD wymaga odczytu ze wszystkich pozosta\u0142ych.\n Na przyk\u0142ad, je\u015bli konfiguracja skryptu ma warto\u015b\u0107 k = 8 ,m = 4 i l=4, utrata jednego OSD wymaga odczytu\n od jedenastu innych do naprawy.\n\n Wtyczka kodu wymazywania lrc tworzy fragmenty o parzysto\u015bci lokalnej, aby m\xf3c je odzyska\u0107\n mniej OSD. Na przyk\u0142ad, je\u015bli lrc jest skonfigurowane z k = 8, m = 4 i l = 4, zostanie utworzony\n dodatkowy fragment parzysto\u015bci na ka\u017cde cztery OSD. Gdy jeden OSD zostanie utracone, mo\u017ce to by\u0107\n odzyskane tylko z czterema OSD zamiast jedenastu.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Grupuj fragmenty kodu i danych w zestawy lokalizacji wielko\u015bci. Na przyk\u0142ad,\n dla k = 4 i m = 2, gdy lokalno\u015b\u0107 = 3 tworzone s\u0105 dwie grupy po trzy. Ka\u017cdy zestaw mo\u017ce\n odzyska\u0107 bez czytania kawa\u0142k\xf3w z innego zestawu.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Typ wiadra CRUSH, w kt\xf3rym zdefiniowano ka\u017cdy zestaw porcji\n przez l zostan\u0105 zapisane. Na przyk\u0142ad, je\u015bli jest ustawiony na rack, ka\u017cda grupa l porcji b\u0119dzie\n umieszczona w innym raku. S\u0142u\u017cy do utworzenia kroku regu\u0142y CRUSH, takiego jak krok wyboru\n racka. Je\u015bli nie jest ustawiony, nie ma takiego grupowania.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Wtyczka isa zawiera bibliotek\u0119 ISA. Dzia\u0142a tylko na procesorach Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Wtyczka ISA jest dost\u0119pna w dw\xf3ch formach Reed Solomon.\n Je\u015bli ustawiono reed_sol_van, jest to Vandermonde, je\u015bli ustawiono cauchy, to jest to Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Wtyczka shec zawiera wiele bibliotek SHEC.\n Pozwala ceph odzyska\u0107 dane bardziej efektywnie ni\u017c kody Reeda Solomona.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Liczba kawa\u0142k\xf3w parzysto\u015bci, z kt\xf3rych ka\u017cdy zawiera ka\u017cd\u0105 porcj\u0119 danych w swoim zakresie oblicze\u0144. Liczba jest u\u017cywana jako estymator trwa\u0142o\u015bci. Na przyk\u0142ad, je\u015bli c = 2,\n 2 OSD mo\u017cna wy\u0142\u0105czy\u0107 bez utraty danych.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Nazwa wiadra crush jest u\u017cyte do pierwszego kroku regu\u0142y CRUSH.\nNa przyk\u0142ad krok jest domy\u015blny.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Upewnij si\u0119, \u017ce \u017cadne dwie porcje nie znajduj\u0105 si\u0119 w wiadrze z t\u0105 sam\u0105 awari\u0105\n domeny. Na przyk\u0142ad, je\u015bli domena awarii jest hostem, nie zostan\u0105 na niej zapisane dwie porcje\n hosta. S\u0142u\u017cy do utworzenia kroku regu\u0142y CRUSH, takiego jak krok wyboru hosta.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Ogranicz umieszczanie do urz\u0105dze\u0144 okre\u015blonej klasy\n (np. ssd lub hdd), u\u017cywaj\u0105c nazw klas urz\u0105dze\u0144 zgniataj\u0105cych na mapie CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Ustaw nazw\u0119 katalogu, z kt\xf3rego \u0142adowana jest wtyczka kodu kasowania.\n \n \n Allows all operations\n Dozwolone s\u0105 wszystkie operacje\n \n \n Allows only operations that do not modify the server\n Dozwolone s\u0105 operacje, kt\xf3re nie modyfikuj\u0105 serweru\n \n \n Does not allow read or write operations, but allows any other operation\n Operacje odczytu i zapisu s\u0105 zakazane, wszystkie inne dozwolone\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Operacje odczytu i zapisu, oraz wszystkie operacje modyfikuj\u0105ce atrybuty albo katalogi s\u0105 zakazane\xa0\n \n \n Allows no access at all\n Brak dost\u0119pu w og\xf3le\n \n \n -- Select the priority --\n -- wybierz priorytet -- \n \n \n Low\n Niski\n \n \n High\n Wysoki\n \n \n Last 5 minutes\n Ostatnie 5 minut\n \n \n Last 15 minutes\n Ostatnie 15 minut\n \n \n Last 30 minutes\n Ostatnie 30 minut\n \n \n Last 1 hour (Default)\n Ostatnia 1 godzina (domy\u015blnie)\n \n \n Last 3 hours\n Ostatnie 3 godziny\n \n \n Last 6 hours\n Ostatnie 6 godzin\n \n \n Last 12 hours\n Ostatnie 12 godzin\n \n \n Last 24 hours\n Ostatnie 24 godziny\n \n \n Yesterday\n Wczoraj\n \n \n Today\n Dzisiaj\n \n \n Today so far\n Do tej pory dzisiaj\n \n \n Day before yesterday\n Przedwczoraj\n \n \n Last 2 days\n Ostatnie 2 dni\n \n \n This day last week\n Tego dnia tydzie\u0144 temu\n \n \n Previous week\n Poprzedni tydzie\u0144\n \n \n This week\n Ten tydzie\u0144 \n \n \n This week so far\n Do tej pory w tym tygodniu\n \n \n Last 7 days\n Ostatnie 7 dni\n \n \n Previous month\n Poprzedniego miesi\u0105ca\n \n \n This month\n ten miesi\u0105c\n \n \n This month so far\n Do tej pory w tym miesi\u0105cu\n \n \n Last 30 days\n Ostatnie 30 dni\n \n \n Last 90 days\n Ostatnie 90 dni\n \n \n Last 6 months\n Ostatnie 6 miesi\u0119cy\n \n \n Last 1 year\n Ostatni 1 rok\n \n \n Previous year\n Poprzedniego roku\n \n \n This year\n Bie\u017c\u0105cego roku\n \n \n This year so far\n Do tej pory bie\u017c\u0105cego roku\n \n \n Last 2 years\n Ostatnie 2 lata\n \n \n Last 5 years\n Ostatnie 5 lat\n \n \n Information\n Informacja\n \n \n No items selected.\n Nie wybrano \u017cadnej pozycji\n \n \n Deselect item to select again\n Odznacz pozycj\u0119, \u017ceby wybra\u0107 ponownie\n \n \n Selection limit reached\n Osi\u0105gni\u0119to limit wyboru. \n \n \n Filter tags\n Filtr tag\xf3w.\n \n \n Add badge\n Dodaj odznak\u0119\n \n \n There are no items available.\n Brak dost\u0119pnych pozycji.\n \n \n Add\n Dodaj\n \n \n Remove\n Remove\n \n \n Clone\n Sklonuj\n \n \n Copy\n Kopia\n \n \n Deep Scrub\n Szoruj g\u0142\u0119boko\n \n \n Destroy\n Zniszcz\n \n \n Flatten\n Sp\u0142aszcz\n \n \n Mark Down\n zaznacz jako upad\u0142y\n \n \n Mark In\n Zaznacz jako w \n \n \n Mark Lost\n Zaznacz jako stracony\n \n \n Mark Out\n Zaznacz jako poza\n \n \n Protect\n Zabezpiecz\n \n \n Rename\n Zmie\u0144 nazw\u0119\n \n \n Restore\n Przywr\xf3\u0107\n \n \n Move to Trash\n Przenie\u015b do kosza\n \n \n Unprotect\n Odbezpiecz \n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Usuni\u0119ty\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Sklonowano\n \n \n Copied\n Skopiowano \n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Tak\n \n \n No\n Nie\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Jako\u015b\u0107 serwisu\n \n \n BPS Limit\n Limit BPS\n \n \n The desired limit of IO bytes per second.\n Po\u017c\u0105dany limit IO bajt\xf3w na sekund\u0119.\n \n \n IOPS Limit\n Limit IOPS\n \n \n The desired limit of IO operations per second.\n Po\u017c\u0105dany limit operacji IO na sekund\u0119.\n \n \n Read BPS Limit\n limit odczytu BPS\n \n \n The desired limit of read bytes per second.\n Po\u017c\u0105dany limit odczytu bajt\xf3w na sekund\u0119.\n \n \n Read IOPS Limit\n limit odczytu IOPS\n \n \n The desired limit of read operations per second.\n Po\u017c\u0105dany limit operacji odczytu na sekund\u0119.\n \n \n Write BPS Limit\n Limit zapisu BPS\n \n \n The desired limit of write bytes per second.\n Po\u017c\u0105dany limit zapisu bajt\xf3w na sekund\u0119.\n \n \n Write IOPS Limit\n Limit zapisu IOPS\n \n \n The desired limit of write operations per second.\n Po\u017c\u0105dany limit operacji zapisu na sekund\u0119.\n \n \n BPS Burst\n Wi\u0105zka BPS\n \n \n The desired burst limit of IO bytes.\n \u017b\u0105dana granica serii IO bajt\xf3w.\n \n \n IOPS Burst\n Wi\u0105zka IOPS\n \n \n The desired burst limit of IO operations.\n \u017b\u0105dana granica serii operacji IO.\n \n \n Read BPS Burst\n Odczyt wi\u0105zki BPS\n \n \n The desired burst limit of read bytes.\n \u017b\u0105dana granica serii odczytanych bajt\xf3w.\n \n \n Read IOPS Burst\n Odczyt wi\u0105zki IOPS\n \n \n The desired burst limit of read operations.\n \u017b\u0105dana granica serii operacji odczytu.\n \n \n Write BPS Burst\n Zapis wi\u0105zki BPS\n \n \n The desired burst limit of write bytes.\n \u017b\u0105dana granica serii bajt\xf3w zapisu.\n \n \n Write IOPS Burst\n Zapis wi\u0105zki IOPS\n \n \n The desired burst limit of write operations.\n \u017b\u0105dana granica serii operacji zapisu.\n \n \n Failed to \n \n \n \n Nie powiod\u0142o si\u0119 \n \n \n \n \n \n Executing\n Wykonywanie \n \n \n execute\n Wykonaj\n \n \n Executed\n Wykonany\n \n \n unknown task\n Nieznane zadanie\n \n \n Creating\n Tworzenie\n \n \n create\n Utw\xf3rz\n \n \n Updating\n Aktualizowanie \n \n \n update\n Zaktualizuj\n \n \n Deleting\n Usuwanie\n \n \n delete\n Usu\u0144\n \n \n RBD \'\n \'\n \n urz\u0105dzenie blokowe Rados\xa0\'\n \'\xa0\n \n \n \n RBD snapshot \'\n \'\n \n migawka RBD \'\n \'\xa0\n \n \n \n mirror mode for pool \'\n \'\n \n tryb lustrzany dla pula \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n Lustrzane parowanie dla pula \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Nazwa jest ju\u017c u\u017cyta przez \n .\n \n \n \n Name is already used by \n .\n \n Nazwa jest ju\u017c u\u017cywana przez \n .\n \n \n \n Name is already used by \n .\n \n Nazwa jest ju\u017c u\u017cywana przez \n .\n \n \n \n \n contains snapshots.\n \n \n zawiera migawk\u0119.\n \n \n \n Cloning\n Klonowanie\n \n \n clone\n Sklonuj \n \n \n Snapshot of \n must be protected.\n \n Migawka \n \xa0 musi by\u0107 zabezpieczona.\n \n \n \n Copying\n Kopiowanie \n \n \n copy\n Kopiuj\n \n \n Flattening\n Sp\u0142aszczanie\n \n \n flatten\n Sp\u0142aszcz\n \n \n Flattened\n Sp\u0142aszczony\n \n \n Name is already used by \n .\n \n Nazwa ju\u017c jest u\u017cywana przez \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Nie mo\u017cna zdj\u0105\u0107 zabezpieczenia \n , poniewa\u017c zawiera pokrewne obrazy.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Nie mo\u017cna usun\u0105\u0107 \n , poniewa\u017c jest zabezpieczony.\n \n \n \n Rolling back\n Wycofywanie \n \n \n rollback\n Wycofanie\n \n \n Rolled back\n Wycofaj\n \n \n Moving\n Przenoszenie\n \n \n move\n Przenie\u015b\n \n \n Moved\n Przeniesiono\n \n \n image \'\n \' to trash\n \n Obraz \'\n \' przenie\u015b do kosza\n \n \n \n Could not find image.\n Nie znaleziono obrazu.\n \n \n Restoring\n Przywracanie\n \n \n restore\n Przywr\xf3\u0107 \n \n \n Restored\n Przywr\xf3cony\n \n \n image \'\n \' into \'\n \'\n \n Obraz \'\n \' w \'\n \' \n \n \n \n Image name \'\n \' is already in use.\n \n Nazwa obrazu \'\n \' jest ju\u017c u\u017cywana. \n \n \n \n image \'\n \'\n \n Obraz \'\n \'\xa0\n \n \n \n Purging\n oczyszcza\u0107\n \n \n purge\n oczy\u015b\u0107\n \n \n Purged\n Oczyszczony\n \n \n all pools\n Wszystkie pule\n \n \n images from \n \n \n Obraz z \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Nie mo\u017cna wy\u0142\u0105czy\u0107 lustrzenia poniewa\u017c zawiera parowanie.\n \n \n pool \'\n \'\n \n pul \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n skasuj profil kodu \'\n \'\n \n \n \n target \'\n \'\n \n docelowy \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},"/TVo":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=(n("urB8"),n("0M9P"));n("xZld"),e.NodeDraggableDirective=function(){function t(t,e,n){this.element=t,this.nodeDraggableService=e,this.renderer=n,this.disposersForDragListeners=[],this.nodeNativeElement=t.nativeElement}return t.prototype.ngOnInit=function(){this.tree.isStatic()||(this.renderer.setAttribute(this.nodeNativeElement,"draggable","true"),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragenter",this.handleDragEnter.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragover",this.handleDragOver.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragstart",this.handleDragStart.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragleave",this.handleDragLeave.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"drop",this.handleDrop.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragend",this.handleDragEnd.bind(this))))},t.prototype.ngOnDestroy=function(){this.disposersForDragListeners.forEach(function(t){return t()})},t.prototype.handleDragStart=function(e){e.stopPropagation&&e.stopPropagation(),this.nodeDraggableService.captureNode(new r.CapturedNode(this.nodeDraggable,this.tree)),e.dataTransfer.setData("text",t.DATA_TRANSFER_STUB_DATA),e.dataTransfer.effectAllowed="move"},t.prototype.handleDragOver=function(t){t.preventDefault(),t.dataTransfer.dropEffect="move"},t.prototype.handleDragEnter=function(t){t.preventDefault(),this.containsElementAt(t)&&this.addClass("over-drop-target")},t.prototype.handleDragLeave=function(t){this.containsElementAt(t)||this.removeClass("over-drop-target")},t.prototype.handleDrop=function(t){return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),this.removeClass("over-drop-target"),!!this.isDropPossible(t)&&(this.nodeDraggableService.getCapturedNode()?this.notifyThatNodeWasDropped():void 0)},t.prototype.isDropPossible=function(t){var e=this.nodeDraggableService.getCapturedNode();return e&&e.canBeDroppedAt(this.nodeDraggable)&&this.containsElementAt(t)},t.prototype.handleDragEnd=function(t){this.removeClass("over-drop-target"),this.nodeDraggableService.releaseCapturedNode()},t.prototype.containsElementAt=function(t){var e=t.x,n=t.y;return this.nodeNativeElement.contains(document.elementFromPoint(void 0===e?t.clientX:e,void 0===n?t.clientY:n))},t.prototype.addClass=function(t){this.nodeNativeElement.classList.add(t)},t.prototype.removeClass=function(t){this.nodeNativeElement.classList.remove(t)},t.prototype.notifyThatNodeWasDropped=function(){this.nodeDraggableService.fireNodeDragged(this.nodeDraggableService.getCapturedNode(),this.nodeDraggable)},t.DATA_TRANSFER_STUB_DATA="some browsers enable drag-n-drop only when dataTransfer has data",t.decorators=[{type:a.Directive,args:[{selector:"[nodeDraggable]"}]}],t.propDecorators={nodeDraggable:[{type:a.Input}],tree:[{type:a.Input}]},t}()},"/WYv":function(t,e,n){"use strict";function a(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}n.d(e,"a",function(){return a})},"/X5v":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},0:function(t,e,n){t.exports=n("zUnb")},"0+/T":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("gIcY"),r=n("QFaf"),i=(n("sb0X"),function(){function t(t){this.modalRef=t,this.actionDescription="delete"}return t.prototype.ngOnInit=function(){if(this.deletionForm=new r.a({confirmation:new a.i(!1,[a.A.requiredTrue])}),!this.submitAction&&!this.submitActionObservable)throw new Error("No submit action defined")},t.prototype.callSubmitAction=function(){this.submitActionObservable?this.submitActionObservable().subscribe(null,this.stopLoadingSpinner.bind(this),this.hideModal.bind(this)):this.submitAction()},t.prototype.hideModal=function(){this.modalRef.hide()},t.prototype.stopLoadingSpinner=function(){this.deletionForm.setErrors({cdSubmitButton:!0})},t}())},"0/uQ":function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("6blF"),r=n("Fxb1"),i=n("i4X3");function o(t,e){return e?Object(i.a)(t,e):t instanceof a.a?t:new a.a(Object(r.a)(t))}},"0M9P":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CapturedNode=function(){function t(t,e){this.anElement=t,this.aTree=e}return t.prototype.canBeDroppedAt=function(t){return!this.sameAs(t)&&!this.contains(t)},t.prototype.contains=function(t){return this.element.nativeElement.contains(t.nativeElement)},t.prototype.sameAs=function(t){return this.element===t},Object.defineProperty(t.prototype,"element",{get:function(){return this.anElement},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tree",{get:function(){return this.aTree},enumerable:!0,configurable:!0}),t}()},"0MID":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("qwkt"),s=n("5tze");n("czA5"),e.DataTableHeaderCellComponent=function(){function t(t){this.cd=t,this.sort=new i.EventEmitter,this.select=new i.EventEmitter,this.columnContextmenu=new i.EventEmitter(!1),this.sortFn=this.onSort.bind(this),this.selectFn=this.select.emit.bind(this.select),this.cellContext={column:this.column,sortDir:this.sortDir,sortFn:this.sortFn,allRowsSelected:this.allRowsSelected,selectFn:this.selectFn}}return Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){return this._allRowsSelected},set:function(t){this._allRowsSelected=t,this.cellContext.allRowsSelected=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.sortDir=this.calcSortDir(t),this.cellContext.sortDir=this.sortDir,this.sortClass=this.calcSortClass(this.sortDir),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-header-cell";if(this.column.sortable&&(t+=" sortable"),this.column.resizeable&&(t+=" resizeable"),this.column.headerClass)if("string"==typeof this.column.headerClass)t+=" "+this.column.headerClass;else if("function"==typeof this.column.headerClass){var e=this.column.headerClass({column:this.column});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',host:{class:"datatable-header-cell"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"0alx":function(t,e,n){"use strict";var a=n("VKeD");e.isIterable=function(t){return t&&"function"==typeof t[a.iterator]}},"0mo+":function(t,e,n){!function(t){"use strict";var e={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},n={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};t.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(t){return t.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===e&&t>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===e&&t<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===e?t+12:t},meridiem:function(t,e,n){return t<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":t<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":t<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":t<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(n("wd/R"))},"0tRk":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("pt-br",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}()},"15JJ":function(t,e,n){"use strict";n.d(e,"a",function(){return c});var a=n("mrSG"),r=n("MGBS"),i=n("rPjj"),o=n("zotm"),s=n("67Y/"),u=n("0/uQ");function c(t,e){return"function"==typeof e?function(n){return n.pipe(c(function(n,a){return Object(u.a)(t(n,a)).pipe(Object(s.a)(function(t,r){return e(n,t,a,r)}))}))}:function(e){return e.lift(new l(t))}}var l=function(){function t(t){this.project=t}return t.prototype.call=function(t,e){return e.subscribe(new d(t,this.project))},t}(),d=function(t){function e(e,n){var a=t.call(this,e)||this;return a.project=n,a.index=0,a}return a.__extends(e,t),e.prototype._next=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(a){return void this.destination.error(a)}this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){var a=this.innerSubscription;a&&a.unsubscribe();var r=new i.a(this,void 0,void 0);this.destination.add(r),this.innerSubscription=Object(o.a)(this,t,e,n,r)},e.prototype._complete=function(){var e=this.innerSubscription;e&&!e.closed||t.prototype._complete.call(this),this.unsubscribe()},e.prototype._unsubscribe=function(){this.innerSubscription=null},e.prototype.notifyComplete=function(e){this.destination.remove(e),this.innerSubscription=null,this.isStopped&&t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,a,r){this.destination.next(e)},e}(r.a)},"1HVU":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("rdkg"),r=n("CVuo"),i="undefined"!=typeof window?a.getVendorPrefixedName("transform"):void 0,o="undefined"!=typeof window?a.getVendorPrefixedName("backfaceVisibility"):void 0,s="undefined"!=typeof window?!!a.getVendorPrefixedName("transform"):void 0,u="undefined"!=typeof window?!!a.getVendorPrefixedName("perspective"):void 0,c="undefined"!=typeof window?window.navigator.userAgent:"Chrome",l=/Safari\//.test(c)&&!/Chrome\//.test(c);e.translateXY=function(t,e,n){void 0!==i&&s?!l&&u?(t[i]="translate3d("+e+"px, "+n+"px, 0)",t[o]="hidden"):t[r.camelCase(i)]="translate("+e+"px, "+n+"px)":(t.top=n+"px",t.left=e+"px")}},"1Ni5":function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return d});var a=n("gIcY"),r=n("LvDl"),i=n("F/XL"),o=n("gI3B"),s=n("zQHH"),u=n("67Y/"),c=n("t9fZ");function l(t){return null==t||0===t.length}var d=function(){function t(){}return t.email=function(t){return l(t.value)?null:a.A.email(t)},t.ip=function(t){void 0===t&&(t=0);var e=/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i,n=/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i;return a.A.pattern(4===t?e:6===t?n:new RegExp(e.source+"|"+n.source))},t.number=function(t){return void 0===t&&(t=!0),a.A.pattern(t?/^-?[0-9]+$/i:/^[0-9]+$/i)},t.decimalNumber=function(t){return void 0===t&&(t=!0),a.A.pattern(t?/^-?[0-9]+(.[0-9]+)?$/i:/^[0-9]+(.[0-9]+)?$/i)},t.requiredIf=function(t,e){var n=!1;return function(a){return!n&&a.parent&&(Object.keys(t).forEach(function(t){a.parent.get(t).valueChanges.subscribe(function(){a.updateValueAndValidity({emitEvent:!1})})}),n=!0),Object.keys(t).every(function(e){return a.parent&&a.parent.get(e).value===t[e]})&&(r.isFunction(e)?e.call(e,a.value):l(a.value))?{required:!0}:null}},t.custom=function(t,e){var n=this;return function(a){var r,i=e.call(n,a.value);return i?((r={})[t]=i,r):null}},t.validateIf=function(t,e,n,r,i){var o=this;void 0===r&&(r=[]),void 0===i&&(i=[]),n=n.concat(r),t.setValidators(function(t){return e.call(o)?a.A.compose(n)(t):r.length>0?a.A.compose(r)(t):null}),i.forEach(function(e){e.valueChanges.subscribe(function(){t.updateValueAndValidity({emitEvent:!1})})})},t.match=function(t,e){return function(n){var a=n.get(t),i=n.get(e);if(a.value!==i.value)i.setErrors({match:!0});else if(i.hasError("match")){var o=i.errors;r.unset(o,"match"),i.setErrors(r.isEmpty(r.keys(o))?null:o)}return null}},t.unique=function(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=500),function(a){return a.pristine||l(a.value)?Object(i.a)(null):Object(o.a)(n).pipe(Object(s.a)(t.call(e,a.value)),Object(u.a)(function(t){return t?{notUnique:!0}:null}),Object(c.a)(1))}},t.uuid=function(t){void 0===t&&(t=!1);var e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return function(n){return n.pristine&&n.untouched?null:t||n.value?e.test(n.value)?null:{invalidUuid:"This is not a valid UUID"}:null}},t}()},"1PfE":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeEditableEventAction=function(t){return t[t.Cancel=0]="Cancel",t}(e.NodeEditableEventAction||{})},"1fDf":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("FFOo");function r(t){for(;t;){var e=t.destination;if(t.closed||t.isStopped)return!1;t=e&&e instanceof a.a?e:null}return!0}},"1rYy":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(t){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(t)},meridiem:function(t){return t<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":t<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":t<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-\u056b\u0576":t+"-\u0580\u0564";default:return t}},week:{dow:1,doy:7}})}()},"1xZ4":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(t,e){var n=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"\xe8";return"w"!==e&&"W"!==e||(n="a"),t+n},week:{dow:1,doy:4}})}()},"20UP":function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("CcnG"),r=n("t/Na"),i=n("pL04"),o=function(){function t(t){this.http=t,this.settings={}}return t.prototype.ifSettingConfigured=function(t,e,n){var a=this,r=this.settings[t];void 0===r?this.http.get(t).subscribe(function(r){a.settings[t]=a.getSettingsValue(r),a.ifSettingConfigured(t,e,n)},function(e){401!==e.status&&(a.settings[t]="")}):""!==r?e(r):n&&n()},t.prototype.disableSetting=function(t){this.settings[t]=""},t.prototype.getSettingsValue=function(t){return t.value||t.instance||""},t.prototype.validateGrafanaDashboardUrl=function(t){return this.http.get("api/grafana/validation/"+t)},t.ngInjectableDef=a.defineInjectable({factory:function(){return new t(a.inject(r.c))},token:t,providedIn:i.a}),t}()},"25BL":function(t,e,n){"use strict";var a=n("CcnG"),r=n("M/6F"),i=n("NDi4"),o=n("Ip0R"),s=n("gIcY"),u=n("xtZt"),c=n("lqqz"),l=n("fhFe"),d=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"li",[["class","pages"],["role","button"]],[[1,"aria-label",0],[2,"active",null]],null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"a",[["href","javascript:void(0)"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(t.context.$implicit.number)&&a),a},null,null)),(t()(),a["\u0275ted"](2,null,[" "," "]))],null,function(t,e){t(e,0,0,"page "+e.context.$implicit.number,e.context.$implicit.number===e.component.page),t(e,2,0,e.context.$implicit.text)})}function p(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,14,"ul",[["class","pager"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,1,"a",[["aria-label","go to first page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(1)&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"a",[["aria-label","go to previous page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.prevPage()&&a),a},null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,f)),a["\u0275did"](8,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](9,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](10,0,null,null,1,"a",[["aria-label","go to next page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.nextPage()&&a),a},null,null)),(t()(),a["\u0275eld"](11,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](12,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](13,0,null,null,1,"a",[["aria-label","go to last page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectPage(r.totalPages)&&a),a},null,null)),(t()(),a["\u0275eld"](14,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null))],function(t,e){t(e,8,0,e.component.pages)},function(t,e){var n=e.component;t(e,1,0,!n.canPrevious()),t(e,3,0,a["\u0275inlineInterpolate"](1,"",n.pagerPreviousIcon,"")),t(e,4,0,!n.canPrevious()),t(e,6,0,a["\u0275inlineInterpolate"](1,"",n.pagerLeftArrowIcon,"")),t(e,9,0,!n.canNext()),t(e,11,0,a["\u0275inlineInterpolate"](1,"",n.pagerRightArrowIcon,"")),t(e,12,0,!n.canNext()),t(e,14,0,a["\u0275inlineInterpolate"](1,"",n.pagerNextIcon,""))})}var h=n("JxMD"),g=n("dgut"),m=n("Fgil"),b=n("ZYCi"),y=n("o4+5"),v=n("aXbf"),x=n("TJUb"),_=n("0MID"),T=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,w)),a["\u0275did"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.targetMarkerContext,n.targetMarkerTemplate)},null)}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==r.select.emit(!r.allRowsSelected)&&a),a},null,null))],null,function(t,e){t(e,1,0,e.component.allRowsSelected)})}function I(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","datatable-header-cell-wrapper"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"span",[["class","datatable-header-cell-label draggable"]],[[8,"innerHTML",1]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a},null,null))],null,function(t,e){t(e,1,0,e.component.name)})}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function k(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,C)),a["\u0275did"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.headerTemplate)},null)}function N(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,9,"div",[["class","datatable-header-cell-template-wrap"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,S)),a["\u0275did"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,O)),a["\u0275did"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,I)),a["\u0275did"](6,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,k)),a["\u0275did"](8,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](9,0,null,null,0,"span",[],[[8,"className",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a},null,null))],function(t,e){var n=e.component;t(e,2,0,n.isTarget),t(e,4,0,n.isCheckboxable),t(e,6,0,!n.column.headerTemplate),t(e,8,0,n.column.headerTemplate)},function(t,e){t(e,9,0,e.component.sortClass)})}var R=n("3MdB"),A=n("M9eX"),E=n("Cc8h"),D=n("ylLw"),L=n("ZYjt"),P=n("tFKq"),M=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function q(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"datatable-header-cell",[["class","datatable-header-cell"],["draggable",""],["long-press",""],["resizeable",""]],[[2,"resizeable",null],[2,"press",null],[2,"longpress",null],[4,"height","px"],[8,"className",0],[1,"title",0],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"width","px"]],[[null,"resize"],[null,"longPressStart"],[null,"longPressEnd"],[null,"sort"],[null,"select"],[null,"columnContextmenu"],[null,"mousedown"],[null,"contextmenu"]],function(t,e,n){var r=!0,i=t.component;return"mousedown"===e&&(r=!1!==a["\u0275nov"](t,2).onMousedown(n)&&r),"mousedown"===e&&(r=!1!==a["\u0275nov"](t,3).onMouseDown(n)&&r),"contextmenu"===e&&(r=!1!==a["\u0275nov"](t,4).onContextmenu(n)&&r),"resize"===e&&(r=!1!==i.onColumnResized(n,t.context.$implicit)&&r),"longPressStart"===e&&(r=!1!==i.onLongPressStart(n)&&r),"longPressEnd"===e&&(r=!1!==i.onLongPressEnd(n)&&r),"sort"===e&&(r=!1!==i.onSort(n)&&r),"select"===e&&(r=!1!==i.select.emit(n)&&r),"columnContextmenu"===e&&(r=!1!==i.columnContextmenu.emit(n)&&r),r},N,T)),a["\u0275did"](1,671744,[[1,4]],0,R.DraggableDirective,[a.ElementRef],{dragEventTarget:[0,"dragEventTarget"],dragModel:[1,"dragModel"],dragX:[2,"dragX"],dragY:[3,"dragY"]},null),a["\u0275did"](2,4341760,null,0,A.ResizeableDirective,[a.ElementRef,a.Renderer2],{resizeEnabled:[0,"resizeEnabled"]},{resize:"resize"}),a["\u0275did"](3,147456,null,0,E.LongPressDirective,[],{pressEnabled:[0,"pressEnabled"],pressModel:[1,"pressModel"]},{longPressStart:"longPressStart",longPressEnd:"longPressEnd"}),a["\u0275did"](4,49152,null,0,_.DataTableHeaderCellComponent,[a.ChangeDetectorRef],{sortType:[0,"sortType"],sortAscendingIcon:[1,"sortAscendingIcon"],sortDescendingIcon:[2,"sortDescendingIcon"],isTarget:[3,"isTarget"],targetMarkerTemplate:[4,"targetMarkerTemplate"],targetMarkerContext:[5,"targetMarkerContext"],allRowsSelected:[6,"allRowsSelected"],selectionType:[7,"selectionType"],column:[8,"column"],headerHeight:[9,"headerHeight"],sorts:[10,"sorts"]},{sort:"sort",select:"select",columnContextmenu:"columnContextmenu"})],function(t,e){var n=e.component;t(e,1,0,n.dragEventTarget,e.context.$implicit,n.reorderable&&e.context.$implicit.draggable&&e.context.$implicit.dragging,!1),t(e,2,0,e.context.$implicit.resizeable),t(e,3,0,n.reorderable&&e.context.$implicit.draggable,e.context.$implicit),t(e,4,1,[n.sortType,n.sortAscendingIcon,n.sortDescendingIcon,e.context.$implicit.isTarget,n.targetMarkerTemplate,e.context.$implicit.targetMarkerContext,n.allRowsSelected,n.selectionType,e.context.$implicit,n.headerHeight,n.sorts])},function(t,e){t(e,0,0,a["\u0275nov"](e,2).resizeEnabled,a["\u0275nov"](e,3).press,a["\u0275nov"](e,3).isLongPress,a["\u0275nov"](e,4).headerHeight,a["\u0275nov"](e,4).columnCssClasses,a["\u0275nov"](e,4).name,a["\u0275nov"](e,4).minWidth,a["\u0275nov"](e,4).maxWidth,a["\u0275nov"](e,4).width)})}function j(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[],[[8,"className",0]],null,null,null,null)),a["\u0275did"](1,278528,null,0,o.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,q)),a["\u0275did"](3,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,1,0,n._styleByGroup[e.context.$implicit.type]),t(e,3,0,e.context.$implicit.columns,n.columnTrackingFn)},function(t,e){t(e,0,0,"datatable-row-"+e.context.$implicit.type)})}function F(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","datatable-header-inner"],["orderable",""]],[[4,"width","px"]],[[null,"reorder"],[null,"targetChanged"]],function(t,e,n){var a=!0,r=t.component;return"reorder"===e&&(a=!1!==r.onColumnReordered(n)&&a),"targetChanged"===e&&(a=!1!==r.onTargetChanged(n)&&a),a},null,null)),a["\u0275did"](1,1196032,null,1,D.OrderableDirective,[a.KeyValueDiffers,L.DOCUMENT],null,{reorder:"reorder",targetChanged:"targetChanged"}),a["\u0275qud"](603979776,1,{draggables:1}),(t()(),a["\u0275and"](16777216,null,null,1,null,j)),a["\u0275did"](4,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,4,0,n._columnsByPin,n.trackByGroups)},function(t,e){t(e,0,0,e.component._columnGroupWidths.total)})}var z=n("Ahxa"),G=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function Y(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function V(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,Y)),a["\u0275did"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["\u0275pod"](2,{rowCount:0,pageSize:1,selectedCount:2,curPage:3,offset:4}),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component,a=t(e,2,0,n.rowCount,n.pageSize,n.selectedCount,n.curPage,n.offset);t(e,1,0,a,n.footerTemplate.template)},null)}function H(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[" "," "," / "]))],null,function(t,e){var n=e.component;t(e,1,0,null==n.selectedCount?null:n.selectedCount.toLocaleString(),n.selectedMessage)})}function B(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,H)),a["\u0275did"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](3,null,[" "," "," "]))],function(t,e){t(e,2,0,e.component.selectedMessage)},function(t,e){var n=e.component;t(e,3,0,null==n.rowCount?null:n.rowCount.toLocaleString(),n.totalMessage)})}function U(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.page.emit(n)&&a),a},p,d)),a["\u0275did"](1,49152,null,0,l.DataTablePagerComponent,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],function(t,e){var n=e.component;t(e,1,0,n.pagerLeftArrowIcon,n.pagerRightArrowIcon,n.pagerPreviousIcon,n.pagerNextIcon,n.pageSize,n.rowCount,n.curPage)},function(t,e){t(e,0,0,!e.component.isVisible)})}function W(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,8,"div",[["class","datatable-footer-inner"]],[[4,"height","px"]],null,null,null,null)),a["\u0275did"](1,278528,null,0,o.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](2,{"selected-count":0}),(t()(),a["\u0275and"](16777216,null,null,1,null,V)),a["\u0275did"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,B)),a["\u0275did"](6,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,U)),a["\u0275did"](8,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.selectedMessage);t(e,1,0,"datatable-footer-inner",a),t(e,4,0,n.footerTemplate),t(e,6,0,!n.footerTemplate),t(e,8,0,!n.footerTemplate)},function(t,e){t(e,0,0,e.component.footerHeight)})}var K=n("uKs4"),$=n("PNOi"),Z=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function X(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","progress-linear"],["role","progressbar"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","container"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,0,"div",[["class","bar"]],null,null,null,null,null))],null,null)}var J=n("YVFZ"),Q=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function tt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onCheckboxChange(n)&&a),a},null,null))],null,function(t,e){t(e,1,0,e.component.isSelected)})}function et(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","icon datatable-icon-collapse"]],null,null,null,null,null))],null,null)}function nt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","icon datatable-icon-up"]],null,null,null,null,null))],null,null)}function at(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","icon datatable-icon-down"]],null,null,null,null,null))],null,null)}function rt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"button",[["class","datatable-tree-button"]],[[8,"disabled",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onTreeAction()&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,et)),a["\u0275did"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,nt)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,at)),a["\u0275did"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,"loading"===n.treeStatus),t(e,5,0,"collapsed"===n.treeStatus),t(e,7,0,"expanded"===n.treeStatus||"disabled"===n.treeStatus)},function(t,e){t(e,0,0,"disabled"===e.component.treeStatus)})}function it(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function ot(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,it)),a["\u0275did"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["\u0275pod"](2,{cellContext:0}),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component,a=t(e,2,0,n.cellContext);t(e,1,0,a,n.column.treeToggleTemplate)},null)}function st(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,rt)),a["\u0275did"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,ot)),a["\u0275did"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,2,0,!n.column.treeToggleTemplate),t(e,4,0,n.column.treeToggleTemplate)},null)}function ut(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"span",[],[[8,"title",0],[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.sanitizedValue,n.value)})}function ct(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function lt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,[[1,3],["cellTemplate",2]],null,1,null,ct)),a["\u0275did"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.cellTemplate)},null)}function dt(t){return a["\u0275vid"](2,[a["\u0275qud"](671088640,1,{cellTemplate:0}),(t()(),a["\u0275eld"](1,0,null,null,8,"div",[["class","datatable-body-cell-label"]],[[4,"margin-left","px"]],null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,tt)),a["\u0275did"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,st)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,ut)),a["\u0275did"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,lt)),a["\u0275did"](9,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.column.checkboxable&&(!n.displayCheck||n.displayCheck(n.row,n.column,n.value))),t(e,5,0,n.column.isTreeColumn),t(e,7,0,!n.column.cellTemplate),t(e,9,0,n.column.cellTemplate)},function(t,e){var n=e.component;t(e,1,0,n.calcLeftMargin(n.column,n.row))})}var ft=n("syrc"),pt=n("FO+L"),ht=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function gt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-cell",[["tabindex","-1"]],[[8,"className",0],[4,"width","px"],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"height",null]],[[null,"activate"],[null,"treeAction"],[null,"focus"],[null,"blur"],[null,"click"],[null,"dblclick"],[null,"keydown"]],function(t,e,n){var r=!0,i=t.component;return"focus"===e&&(r=!1!==a["\u0275nov"](t,1).onFocus()&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,1).onBlur()&&r),"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick(n)&&r),"dblclick"===e&&(r=!1!==a["\u0275nov"](t,1).onDblClick(n)&&r),"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"activate"===e&&(r=!1!==i.onActivate(n,t.context.index)&&r),"treeAction"===e&&(r=!1!==i.onTreeAction()&&r),r},dt,Q)),a["\u0275did"](1,442368,null,0,J.DataTableBodyCellComponent,[a.ElementRef,a.ChangeDetectorRef],{displayCheck:[0,"displayCheck"],group:[1,"group"],rowHeight:[2,"rowHeight"],isSelected:[3,"isSelected"],expanded:[4,"expanded"],rowIndex:[5,"rowIndex"],column:[6,"column"],row:[7,"row"],treeStatus:[8,"treeStatus"]},{activate:"activate",treeAction:"treeAction"})],function(t,e){var n=e.component;t(e,1,0,n.displayCheck,n.group,n.rowHeight,n.isSelected,n.expanded,n.rowIndex,e.context.$implicit,n.row,n.treeStatus)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).columnCssClasses,a["\u0275nov"](e,1).width,a["\u0275nov"](e,1).minWidth,a["\u0275nov"](e,1).maxWidth,a["\u0275nov"](e,1).height)})}function mt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[],[[8,"className",0]],null,null,null,null)),a["\u0275did"](1,278528,null,0,o.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,gt)),a["\u0275did"](3,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,1,0,n._groupStyles[e.context.$implicit.type]),t(e,3,0,e.context.$implicit.columns,n.columnTrackingFn)},function(t,e){t(e,0,0,a["\u0275inlineInterpolate"](1,"datatable-row-",e.context.$implicit.type," datatable-row-group"))})}function bt(t){return a["\u0275vid"](2,[(t()(),a["\u0275and"](16777216,null,null,1,null,mt)),a["\u0275did"](1,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,1,0,n._columnsByPin,n.trackByGroups)},null)}var yt=n("rLYq"),vt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function xt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"keydown"],[null,"mouseenter"]],function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["\u0275nov"](t,1).onMouseenter(n)&&r),r},bt,ht)),a["\u0275did"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],row:[2,"row"],rowIndex:[3,"rowIndex"],offsetX:[4,"offsetX"],rowHeight:[5,"rowHeight"]},null)],function(t,e){var n=e.component;t(e,1,0,n._internalColumns,n.innerWidth,n.summaryRow,-1,n.offsetX,n.rowHeight)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).cssClass,a["\u0275nov"](e,1).rowHeight,a["\u0275nov"](e,1).columnsTotalWidths)})}function _t(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,xt)),a["\u0275did"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.summaryRow&&n._internalColumns)},null)}var Tt=n("Mfce"),wt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function St(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function Ot(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,St)),a["\u0275did"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.groupContext,n.groupHeader.template)},null)}function It(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","datatable-group-header"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,o.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Ot)),a["\u0275did"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.getGroupHeaderStyle()),t(e,3,0,n.groupHeader&&n.groupHeader.template)},null)}function Ct(t){return a["\u0275vid"](0,[a["\u0275ncd"](null,0),(t()(),a["\u0275and"](0,null,null,0))],null,null)}function kt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function Nt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,kt)),a["\u0275did"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.rowContext,n.rowDetail.template)},null)}function Rt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","datatable-row-detail"]],[[4,"height","px"]],null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,Nt)),a["\u0275did"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.rowDetail&&n.rowDetail.template)},function(t,e){t(e,0,0,e.component.detailRowHeight)})}function At(t){return a["\u0275vid"](2,[(t()(),a["\u0275and"](16777216,null,null,1,null,It)),a["\u0275did"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Ct)),a["\u0275did"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Rt)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.groupHeader&&n.groupHeader.template),t(e,3,0,n.groupHeader&&n.groupHeader.template&&n.expanded||!n.groupHeader||!n.groupHeader.template),t(e,5,0,n.rowDetail&&n.rowDetail.template&&n.expanded)},null)}var Et=n("SfHT"),Dt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function Lt(t){return a["\u0275vid"](2,[a["\u0275ncd"](null,0)],null,null)}var Pt=n("7F1K"),Mt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function qt(t){return a["\u0275vid"](2,[a["\u0275ncd"](null,0)],null,null)}var jt=n("IPm6"),Ft=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function zt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-progress",[],null,null,null,X,Z)),a["\u0275did"](1,49152,null,0,$.ProgressBarComponent,[],null,null)],null,null)}function Gt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,_t,vt)),a["\u0275did"](1,573440,null,0,yt.DataTableSummaryRowComponent,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],function(t,e){var n=e.component;t(e,1,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)},null)}function Yt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"treeAction"],[null,"activate"],[null,"keydown"],[null,"mouseenter"]],function(t,e,n){var r=!0,i=t.component;return"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["\u0275nov"](t,1).onMouseenter(n)&&r),"treeAction"===e&&(r=!1!==i.onTreeAction(t.parent.context.$implicit)&&r),"activate"===e&&(r=!1!==a["\u0275nov"](t.parent.parent.parent,2).onActivate(n,i.indexes.first+t.parent.context.index)&&r),r},bt,ht)),a["\u0275did"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],isSelected:[5,"isSelected"],rowIndex:[6,"rowIndex"],displayCheck:[7,"displayCheck"],treeStatus:[8,"treeStatus"],offsetX:[9,"offsetX"],rowHeight:[10,"rowHeight"]},{activate:"activate",treeAction:"treeAction"})],function(t,e){var n=e.component;t(e,1,1,[n.columns,n.innerWidth,n.getRowExpanded(e.parent.context.$implicit),n.rowClass,e.parent.context.$implicit,a["\u0275nov"](e.parent.parent.parent,2).getRowSelected(e.parent.context.$implicit),n.getRowIndex(e.parent.context.$implicit),n.displayCheck,e.parent.context.$implicit.treeStatus,n.offsetX,n.getRowHeight(e.parent.context.$implicit)])},function(t,e){t(e,0,0,a["\u0275nov"](e,1).cssClass,a["\u0275nov"](e,1).rowHeight,a["\u0275nov"](e,1).columnsTotalWidths)})}function Vt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"activate"],[null,"keydown"],[null,"mouseenter"]],function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["\u0275nov"](t,1).onMouseenter(n)&&r),"activate"===e&&(r=!1!==a["\u0275nov"](t.parent.parent.parent.parent,2).onActivate(n,t.context.index)&&r),r},bt,ht)),a["\u0275did"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],group:[5,"group"],isSelected:[6,"isSelected"],rowIndex:[7,"rowIndex"],offsetX:[8,"offsetX"],rowHeight:[9,"rowHeight"]},{activate:"activate"})],function(t,e){var n=e.component;t(e,1,0,n.columns,n.innerWidth,n.getRowExpanded(e.context.$implicit),n.rowClass,e.context.$implicit,e.parent.parent.context.$implicit.value,a["\u0275nov"](e.parent.parent.parent.parent,2).getRowSelected(e.context.$implicit),n.getRowIndex(e.context.$implicit),n.offsetX,n.getRowHeight(e.context.$implicit))},function(t,e){t(e,0,0,a["\u0275nov"](e,1).cssClass,a["\u0275nov"](e,1).rowHeight,a["\u0275nov"](e,1).columnsTotalWidths)})}function Ht(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,Vt)),a["\u0275did"](1,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.parent.context.$implicit.value,e.component.rowTrackingFn)},null)}function Bt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"datatable-row-wrapper",[["class","datatable-row-wrapper"]],null,[[null,"rowContextmenu"],[null,"contextmenu"]],function(t,e,n){var r=!0,i=t.component;return"contextmenu"===e&&(r=!1!==a["\u0275nov"](t,2).onContextmenu(n)&&r),"rowContextmenu"===e&&(r=!1!==i.rowContextmenu.emit(n)&&r),r},At,wt)),a["\u0275did"](1,278528,null,0,o.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),a["\u0275did"](2,311296,null,0,Tt.DataTableRowWrapperComponent,[a.ChangeDetectorRef,a.KeyValueDiffers],{innerWidth:[0,"innerWidth"],rowDetail:[1,"rowDetail"],groupHeader:[2,"groupHeader"],offsetX:[3,"offsetX"],detailRowHeight:[4,"detailRowHeight"],row:[5,"row"],groupedRows:[6,"groupedRows"],rowIndex:[7,"rowIndex"],expanded:[8,"expanded"]},{rowContextmenu:"rowContextmenu"}),(t()(),a["\u0275and"](16777216,null,0,1,null,Yt)),a["\u0275did"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["groupedRowsTemplate",2]],0,0,null,Ht))],function(t,e){var n=e.component;t(e,1,0,n.getRowsStyles(e.context.$implicit)),t(e,2,0,n.innerWidth,n.rowDetail,n.groupHeader,n.offsetX,n.getDetailRowHeight(e.context.$implicit[e.context.index],e.context.index),e.context.$implicit,n.groupedRows,n.getRowIndex(e.context.$implicit[e.context.index]),n.getRowExpanded(e.context.$implicit)),t(e,4,0,!n.groupedRows,a["\u0275nov"](e,5))},null)}function Ut(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,_t,vt)),a["\u0275did"](1,278528,null,0,o.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),a["\u0275did"](2,573440,null,0,yt.DataTableSummaryRowComponent,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],function(t,e){var n=e.component;t(e,1,0,n.getBottomSummaryRowStyles()),t(e,2,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)},null)}function Wt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"datatable-scroller",[["class","datatable-scroll"]],[[4,"height","px"],[4,"width","px"]],[[null,"scroll"]],function(t,e,n){var a=!0;return"scroll"===e&&(a=!1!==t.component.onBodyScroll(n)&&a),a},Lt,Dt)),a["\u0275did"](1,245760,[[1,4]],0,Et.ScrollerComponent,[a.NgZone,a.ElementRef,a.Renderer2],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],scrollHeight:[2,"scrollHeight"],scrollWidth:[3,"scrollWidth"]},{scroll:"scroll"}),(t()(),a["\u0275and"](16777216,null,0,1,null,Gt)),a["\u0275did"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Bt)),a["\u0275did"](5,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Ut)),a["\u0275did"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.scrollbarV,n.scrollbarH,n.scrollHeight,null==n.columnGroupWidths?null:n.columnGroupWidths.total),t(e,3,0,n.summaryRow&&"top"===n.summaryPosition),t(e,5,0,n.temp,n.rowTrackingFn),t(e,7,0,n.summaryRow&&"bottom"===n.summaryPosition)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).scrollHeight,a["\u0275nov"](e,1).scrollWidth)})}function Kt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","empty-row"]],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,0,0,e.component.emptyMessage)})}function $t(t){return a["\u0275vid"](2,[a["\u0275qud"](671088640,1,{scroller:0}),(t()(),a["\u0275eld"](1,0,null,null,7,"datatable-selection",[],null,[[null,"select"],[null,"activate"]],function(t,e,n){var a=!0,r=t.component;return"select"===e&&(a=!1!==r.select.emit(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),a},qt,Mt)),a["\u0275did"](2,49152,[["selector",4]],0,Pt.DataTableSelectionComponent,[],{rows:[0,"rows"],selected:[1,"selected"],selectEnabled:[2,"selectEnabled"],selectionType:[3,"selectionType"],rowIdentity:[4,"rowIdentity"],selectCheck:[5,"selectCheck"]},{activate:"activate",select:"select"}),(t()(),a["\u0275and"](16777216,null,0,1,null,zt)),a["\u0275did"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Wt)),a["\u0275did"](6,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Kt)),a["\u0275did"](8,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.rows,n.selected,n.selectEnabled,n.selectionType,n.rowIdentity,n.selectCheck),t(e,4,0,n.loadingIndicator),t(e,6,0,null==n.rows?null:n.rows.length),t(e,8,0,!(null!=n.rows&&n.rows.length||n.loadingIndicator))},null)}var Zt=n("3/HP"),Xt=n("nhM1"),Jt=n("BARL"),Qt=a["\u0275crt"]({encapsulation:2,styles:[[".ngx-datatable{display:block;overflow:hidden;-webkit-box-pack:center;justify-content:center;position:relative;-webkit-transform:translate3d(0,0,0)}.ngx-datatable [hidden]{display:none!important}.ngx-datatable *,.ngx-datatable :after,.ngx-datatable :before{box-sizing:border-box}.ngx-datatable.scroll-vertical .datatable-body{overflow-y:auto}.ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper{position:absolute}.ngx-datatable.scroll-horz .datatable-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner{white-space:nowrap}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngx-datatable.fixed-row .datatable-scroll,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row{white-space:nowrap}.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ngx-datatable .datatable-body-row,.ngx-datatable .datatable-header-inner,.ngx-datatable .datatable-row-center{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-o-flex-flow:row;flex-flow:row}.ngx-datatable .datatable-body-cell,.ngx-datatable .datatable-header-cell{overflow-x:hidden;vertical-align:top;display:inline-block;line-height:1.625}.ngx-datatable .datatable-body-cell:focus,.ngx-datatable .datatable-header-cell:focus{outline:0}.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{z-index:9}.ngx-datatable .datatable-row-center,.ngx-datatable .datatable-row-group,.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{position:relative}.ngx-datatable .datatable-header{display:block;overflow:hidden}.ngx-datatable .datatable-header .datatable-header-inner{-webkit-box-align:stretch;align-items:stretch;-webkit-align-items:stretch}.ngx-datatable .datatable-header .datatable-header-cell{position:relative;display:inline-block}.ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper{cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper{cursor:move}.ngx-datatable .datatable-header .datatable-header-cell .sort-btn{line-height:100%;vertical-align:middle;display:inline-block;cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable{display:inline-block;position:absolute;right:0;top:0;bottom:0;width:5px;padding:0 4px;visibility:hidden}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle{cursor:ew-resize}.ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable{visibility:visible}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker{position:absolute;top:0;bottom:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft{right:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight{left:0}.ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap{height:inherit}.ngx-datatable .datatable-body{position:relative;z-index:10;display:block}.ngx-datatable .datatable-body .datatable-scroll{display:inline-block}.ngx-datatable .datatable-body .datatable-row-detail{overflow-y:hidden}.ngx-datatable .datatable-body .datatable-row-wrapper{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.ngx-datatable .datatable-body .datatable-body-row{outline:0}.ngx-datatable .datatable-body .datatable-body-row>div{display:-webkit-box;display:flex}.ngx-datatable .datatable-footer{display:block;width:100%}.ngx-datatable .datatable-footer .datatable-footer-inner{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%}.ngx-datatable .datatable-footer .selected-count .page-count{-webkit-box-flex:1;flex:1 1 40%}.ngx-datatable .datatable-footer .selected-count .datatable-pager{-webkit-box-flex:1;flex:1 1 60%}.ngx-datatable .datatable-footer .page-count{-webkit-box-flex:1;flex:1 1 20%}.ngx-datatable .datatable-footer .datatable-pager{-webkit-box-flex:1;flex:1 1 80%;text-align:right}.ngx-datatable .datatable-footer .datatable-pager .pager,.ngx-datatable .datatable-footer .datatable-pager .pager li{padding:0;margin:0;display:inline-block;list-style:none}.ngx-datatable .datatable-footer .datatable-pager .pager li,.ngx-datatable .datatable-footer .datatable-pager .pager li a{outline:0}.ngx-datatable .datatable-footer .datatable-pager .pager li a{cursor:pointer;display:inline-block}.ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a{cursor:not-allowed}"]],data:{}});function te(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"datatable-header",[["class","datatable-header"]],[[4,"height",null],[4,"width",null]],[[null,"sort"],[null,"resize"],[null,"reorder"],[null,"select"],[null,"columnContextmenu"]],function(t,e,n){var a=!0,r=t.component;return"sort"===e&&(a=!1!==r.onColumnSort(n)&&a),"resize"===e&&(a=!1!==r.onColumnResize(n)&&a),"reorder"===e&&(a=!1!==r.onColumnReorder(n)&&a),"select"===e&&(a=!1!==r.onHeaderSelect(n)&&a),"columnContextmenu"===e&&(a=!1!==r.onColumnContextmenu(n)&&a),a},F,M)),a["\u0275did"](1,49152,[[2,4]],0,P.DataTableHeaderComponent,[a.ChangeDetectorRef],{sortAscendingIcon:[0,"sortAscendingIcon"],sortDescendingIcon:[1,"sortDescendingIcon"],scrollbarH:[2,"scrollbarH"],dealsWithGroup:[3,"dealsWithGroup"],targetMarkerTemplate:[4,"targetMarkerTemplate"],innerWidth:[5,"innerWidth"],sorts:[6,"sorts"],sortType:[7,"sortType"],allRowsSelected:[8,"allRowsSelected"],selectionType:[9,"selectionType"],reorderable:[10,"reorderable"],headerHeight:[11,"headerHeight"],columns:[12,"columns"],offsetX:[13,"offsetX"]},{sort:"sort",reorder:"reorder",resize:"resize",select:"select",columnContextmenu:"columnContextmenu"}),a["\u0275pid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,1,[n.cssClasses.sortAscending,n.cssClasses.sortDescending,n.scrollbarH,n.groupedRows,n.targetMarkerTemplate,n._innerWidth,n.sorts,n.sortType,n.allRowsSelected,n.selectionType,n.reorderable,n.headerHeight,n._internalColumns,a["\u0275unv"](e,1,13,a["\u0275nov"](e,2).transform(n._offsetX))])},function(t,e){t(e,0,0,a["\u0275nov"](e,1).headerHeight,a["\u0275nov"](e,1).headerWidth)})}function ee(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-footer",[["class","datatable-footer"]],null,[[null,"page"]],function(t,e,n){var a=!0;return"page"===e&&(a=!1!==t.component.onFooterPage(n)&&a),a},W,G)),a["\u0275did"](1,49152,null,0,z.DataTableFooterComponent,[],{footerHeight:[0,"footerHeight"],rowCount:[1,"rowCount"],pageSize:[2,"pageSize"],offset:[3,"offset"],pagerLeftArrowIcon:[4,"pagerLeftArrowIcon"],pagerRightArrowIcon:[5,"pagerRightArrowIcon"],pagerPreviousIcon:[6,"pagerPreviousIcon"],pagerNextIcon:[7,"pagerNextIcon"],totalMessage:[8,"totalMessage"],footerTemplate:[9,"footerTemplate"],selectedCount:[10,"selectedCount"],selectedMessage:[11,"selectedMessage"]},{page:"page"})],function(t,e){var n=e.component;t(e,1,1,[n.footerHeight,n.rowCount,n.pageSize,n.offset,n.cssClasses.pagerLeftArrow,n.cssClasses.pagerRightArrow,n.cssClasses.pagerPrevious,n.cssClasses.pagerNext,n.messages.totalMessage,n.footer,n.selected.length,!!n.selectionType&&n.messages.selectedMessage])},null)}function ne(t){return a["\u0275vid"](2,[a["\u0275qud"](402653184,1,{bodyComponent:0}),a["\u0275qud"](671088640,2,{headerComponent:0}),(t()(),a["\u0275eld"](2,0,null,null,8,"div",[["visibilityObserver",""]],[[2,"visible",null]],[[null,"visible"]],function(t,e,n){var a=!0;return"visible"===e&&(a=!1!==t.component.recalculate()&&a),a},null,null)),a["\u0275did"](3,212992,null,0,K.VisibilityDirective,[a.ElementRef,a.NgZone],null,{visible:"visible"}),(t()(),a["\u0275and"](16777216,null,null,1,null,te)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](6,0,null,null,2,"datatable-body",[["class","datatable-body"]],[[4,"width",null],[4,"height",null]],[[null,"page"],[null,"activate"],[null,"rowContextmenu"],[null,"select"],[null,"scroll"],[null,"treeAction"]],function(t,e,n){var a=!0,r=t.component;return"page"===e&&(a=!1!==r.onBodyPage(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),"rowContextmenu"===e&&(a=!1!==r.onRowContextmenu(n)&&a),"select"===e&&(a=!1!==r.onBodySelect(n)&&a),"scroll"===e&&(a=!1!==r.onBodyScroll(n)&&a),"treeAction"===e&&(a=!1!==r.onTreeAction(n)&&a),a},$t,Ft)),a["\u0275did"](7,245760,[[1,4]],0,jt.DataTableBodyComponent,[a.ChangeDetectorRef],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],loadingIndicator:[2,"loadingIndicator"],externalPaging:[3,"externalPaging"],rowHeight:[4,"rowHeight"],offsetX:[5,"offsetX"],emptyMessage:[6,"emptyMessage"],selectionType:[7,"selectionType"],selected:[8,"selected"],rowIdentity:[9,"rowIdentity"],rowDetail:[10,"rowDetail"],groupHeader:[11,"groupHeader"],selectCheck:[12,"selectCheck"],displayCheck:[13,"displayCheck"],trackByProp:[14,"trackByProp"],rowClass:[15,"rowClass"],groupedRows:[16,"groupedRows"],groupExpansionDefault:[17,"groupExpansionDefault"],innerWidth:[18,"innerWidth"],groupRowsBy:[19,"groupRowsBy"],virtualization:[20,"virtualization"],summaryRow:[21,"summaryRow"],summaryPosition:[22,"summaryPosition"],summaryHeight:[23,"summaryHeight"],pageSize:[24,"pageSize"],rows:[25,"rows"],columns:[26,"columns"],offset:[27,"offset"],rowCount:[28,"rowCount"],bodyHeight:[29,"bodyHeight"]},{scroll:"scroll",page:"page",activate:"activate",select:"select",rowContextmenu:"rowContextmenu",treeAction:"treeAction"}),a["\u0275pid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,ee)),a["\u0275did"](10,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0),t(e,5,0,n.headerHeight),t(e,7,1,[n.scrollbarV,n.scrollbarH,n.loadingIndicator,n.externalPaging,n.rowHeight,a["\u0275unv"](e,7,5,a["\u0275nov"](e,8).transform(n._offsetX)),n.messages.emptyMessage,n.selectionType,n.selected,n.rowIdentity,n.rowDetail,n.groupHeader,n.selectCheck,n.displayCheck,n.trackByProp,n.rowClass,n.groupedRows,n.groupExpansionDefault,n._innerWidth,n.groupRowsBy,n.virtualization,n.summaryRow,n.summaryPosition,n.summaryHeight,n.pageSize,n._internalRows,n._internalColumns,n.offset,n.rowCount,n.bodyHeight]),t(e,10,0,n.footerHeight)},function(t,e){t(e,2,0,a["\u0275nov"](e,3).isVisible),t(e,6,0,a["\u0275nov"](e,7).bodyWidth,a["\u0275nov"](e,7).bodyHeight)})}var ae=n("lUjN"),re=n("vxfy");n("uIqm"),n.d(e,"a",function(){return ie}),n.d(e,"b",function(){return Se});var ie=a["\u0275crt"]({encapsulation:0,styles:[[".dataTables_wrapper[_ngcontent-%COMP%]{margin-bottom:25px}.dataTables_wrapper[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:30px;border-left:1px solid rgba(0,0,0,.09);padding-left:5px;margin-left:5px;display:inline-block;vertical-align:middle}.dataTables_wrapper[_ngcontent-%COMP%] .widget-toolbar[_ngcontent-%COMP%]{display:inline-block;float:right;width:auto;height:30px;line-height:28px;position:relative;border-left:1px solid rgba(0,0,0,.09);cursor:pointer;padding:0 8px;text-align:center}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%]{white-space:nowrap}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]{width:100%;margin-bottom:0;padding-left:20px;padding-right:20px;cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]:hover{background-color:#f5f5f5}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%] th.oadatatablecheckbox[_ngcontent-%COMP%]{width:16px}.dataTables_wrapper[_ngcontent-%COMP%] .dataTables_length[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{line-height:25px;text-align:right}.dataTables_header[_ngcontent-%COMP%]{background-color:#f5f5f5;border:1px solid #d1d1d1;border-bottom:none;padding:5px;position:relative}.dataTables_header[_ngcontent-%COMP%] .oadatatableactions[_ngcontent-%COMP%]{float:left}.dataTables_header[_ngcontent-%COMP%] .table-filters{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px}.dataTables_header[_ngcontent-%COMP%] .table-filters label{margin-right:4px}.dataTables_header[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%]{padding-left:8px}.dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px;padding-right:8px;width:40%;max-width:250px}.dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .clear-input[_ngcontent-%COMP%], .dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]{height:30px}.dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .clear-input[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{vertical-align:text-top}.dataTables_header[_ngcontent-%COMP%] .input-group.dataTables_paginate[_ngcontent-%COMP%]{width:8%;min-width:85px;padding-right:8px} .oadatatable{border:1px solid #d1d1d1;margin-bottom:0;max-width:none!important} .oadatatable .progress-linear{display:block;position:relative;width:100%;height:5px;padding:0;margin:0} .oadatatable .progress-linear .container{background-color:#afd9ee} .oadatatable .progress-linear .container .bar{left:0;height:100%;width:100%;position:absolute;overflow:hidden;background-color:#afd9ee} .oadatatable .progress-linear .container .bar:before{display:block;position:absolute;content:'';left:-200px;width:200px;height:100%;background-color:#2b99a8;-webkit-animation:3s linear infinite progress-loading;animation:3s linear infinite progress-loading} .oadatatable .datatable-header{background-clip:padding-box;background-color:#f5f5f5;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f5f5f5),to(#ededed));background-image:linear-gradient(to bottom,#f5f5f5 0,#ededed 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffededed', GradientType=0)} .oadatatable .datatable-header .sort-asc, .oadatatable .datatable-header .sort-desc{color:#2b99a8} .oadatatable .datatable-header .datatable-header-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;text-align:left;font-weight:700} .oadatatable .datatable-header .datatable-header-cell .datatable-header-cell-label:after{font-family:ForkAwesome;font-weight:400;height:9px;left:10px;line-height:12px;position:relative;vertical-align:baseline;width:12px} .oadatatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-label:after{content:' \\f0dc'} .oadatatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-asc .datatable-header-cell-label:after{content:' \\f160'} .oadatatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-desc .datatable-header-cell-label:after{content:' \\f161'} .oadatatable .datatable-header .datatable-header-cell:first-child{border-left:none} .oadatatable .datatable-body .empty-row{background-color:#fff3cd;text-align:center;font-weight:700;font-style:italic;padding-top:5px;padding-bottom:5px} .oadatatable .datatable-body .datatable-body-row .label{font-size:.9em} .oadatatable .datatable-body .datatable-body-row.clickable:hover .datatable-row-group{background-color:#eee;-webkit-transition-property:background;transition-property:background;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:linear;transition-timing-function:linear} .oadatatable .datatable-body .datatable-body-row.datatable-row-even{background-color:#fff} .oadatatable .datatable-body .datatable-body-row.datatable-row-odd{background-color:#f5f5f5} .oadatatable .datatable-body .datatable-body-row.active, .oadatatable .datatable-body .datatable-body-row.active:hover{background-color:#d9edf7} .oadatatable .datatable-body .datatable-body-row .datatable-body-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1} .oadatatable .datatable-body .datatable-body-row .datatable-body-cell:first-child{border-left:none} .oadatatable .datatable-body .datatable-body-row .datatable-body-cell .datatable-body-cell-label{display:block} .oadatatable .datatable-footer .page-count, .oadatatable .datatable-footer .selected-count{font-style:italic;padding-left:5px} .oadatatable .datatable-footer .datatable-pager .pager{margin-right:5px!important} .oadatatable .datatable-footer .datatable-pager .pager li:not(:first-child){margin-left:3px} .oadatatable .datatable-footer .datatable-pager .pager li>a, .oadatatable .datatable-footer .datatable-pager .pager li>span{border-radius:3px} .oadatatable .datatable-footer .datatable-pager .pager .pages>a, .oadatatable .datatable-footer .datatable-pager .pager .pages>span{display:inline-block;padding:5px 10px;margin-bottom:5px;border:none} .oadatatable .datatable-footer .datatable-pager .pager .pages a:hover{background-color:#afd9ee} .oadatatable .datatable-footer .datatable-pager .pager .pages.active>a{background-color:#d9edf7}@-webkit-keyframes progress-loading{from{left:-200px;width:15%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}@keyframes progress-loading{from{left:-200px;width:15%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}"]],data:{}});function oe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-error-panel",[],null,null,null,r.b,r.a)),a["\u0275did"](1,49152,null,0,i.a,[],null,null),(t()(),a["\u0275ted"](-1,0,["Failed to load data."]))],null,null)}function se(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"li",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,3,"label",[],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,0,"input",[["type","checkbox"]],[[8,"name",0],[8,"checked",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.toggleColumn(n)&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](4,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.prop,!e.context.$implicit.isHidden),t(e,4,0,e.context.$implicit.name)})}function ue(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,se)),a["\u0275did"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.columns)},null)}function ce(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","widget-toolbar tc_refreshBtn"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"a",[],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.refreshBtn()&&a),a},null,null)),(t()(),a["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-lg fa-refresh"]],[[2,"fa-spin",null]],null,null,null,null))],null,function(t,e){var n=e.component;t(e,2,0,n.updating||n.loadingIndicator)})}function le(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,28,"div",[["class","dataTables_header clearfix form-inline"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","oadatatableactions"]],null,null,null,null,null)),a["\u0275ncd"](null,0),a["\u0275ncd"](null,1),(t()(),a["\u0275eld"](4,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[["class","glyphicon glyphicon-search"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,5,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var r=!0,i=t.component;return"input"===e&&(r=!1!==a["\u0275nov"](t,8)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,8).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["\u0275nov"](t,8)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["\u0275nov"](t,8)._compositionEnd(n.target.value)&&r),"ngModelChange"===e&&(r=!1!==(i.search=n)&&r),"keyup"===e&&(r=!1!==i.updateFilter()&&r),r},null,null)),a["\u0275did"](8,16384,null,0,s.e,[a.Renderer2,a.ElementRef,[2,s.b]],null,null),a["\u0275prd"](1024,null,s.p,function(t){return[t]},[s.e]),a["\u0275did"](10,671744,null,0,s.u,[[8,null],[8,null],[8,null],[6,s.p]],{model:[0,"model"]},{update:"ngModelChange"}),a["\u0275prd"](2048,null,s.q,null,[s.u]),a["\u0275did"](12,16384,null,0,s.r,[[4,s.q]],null,null),(t()(),a["\u0275eld"](13,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),a["\u0275eld"](14,0,null,null,1,"button",[["class","btn btn-default clear-input tc_clearInputBtn"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.updateFilter(!0)&&a),a},null,null)),(t()(),a["\u0275eld"](15,0,null,null,0,"i",[["class","icon-prepend fa fa-remove"]],null,null,null,null,null)),(t()(),a["\u0275eld"](16,0,null,null,1,"div",[["class","input-group dataTables_paginate"]],null,null,null,null,null)),(t()(),a["\u0275eld"](17,0,null,null,0,"input",[["class","form-control"],["max","9999"],["min","1"],["type","number"]],[[8,"value",0]],[[null,"click"],[null,"keyup"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.setLimit(n)&&a),"keyup"===e&&(a=!1!==r.setLimit(n)&&a),"blur"===e&&(a=!1!==r.setLimit(n)&&a),a},null,null)),(t()(),a["\u0275eld"](18,0,null,null,8,"div",[["class","widget-toolbar"]],null,null,null,null,null)),(t()(),a["\u0275eld"](19,16777216,null,null,7,"div",[["class","dropdown tc_menuitem tc_menuitem_cluster"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["\u0275prd"](512,null,u.f,u.f,[]),a["\u0275did"](21,212992,null,0,u.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,c.a,u.a,u.f],null,null),(t()(),a["\u0275eld"](22,0,null,null,2,"a",[["class","btn btn-sm btn-default dropdown-toggle tc_columnBtn"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,23).onClick()&&r),r},null,null)),a["\u0275did"](23,147456,null,0,u.g,[a.ChangeDetectorRef,u.c,a.ElementRef,a.Renderer2,u.f],null,null),(t()(),a["\u0275eld"](24,0,null,null,0,"i",[["class","fa fa-lg fa-table"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ue)),a["\u0275did"](26,16384,null,0,u.d,[u.f,a.ViewContainerRef,a.TemplateRef],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,ce)),a["\u0275did"](28,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,10,0,n.search),t(e,21,0),t(e,28,0,n.fetchData.observers.length>0)},function(t,e){var n=e.component;t(e,7,0,a["\u0275nov"](e,12).ngClassUntouched,a["\u0275nov"](e,12).ngClassTouched,a["\u0275nov"](e,12).ngClassPristine,a["\u0275nov"](e,12).ngClassDirty,a["\u0275nov"](e,12).ngClassValid,a["\u0275nov"](e,12).ngClassInvalid,a["\u0275nov"](e,12).ngClassPending),t(e,17,0,n.userConfig.limit),t(e,19,0,a["\u0275nov"](e,21).dropup,a["\u0275nov"](e,21).isOpen,a["\u0275nov"](e,21).isOpen&&a["\u0275nov"](e,21).isBs4),t(e,22,0,!0,a["\u0275nov"](e,23).isDisabled,a["\u0275nov"](e,23).isOpen)})}function de(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[" "," "])),(t()(),a["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["selected"])),(t()(),a["\u0275ted"](-1,null,[" / "]))],null,function(t,e){t(e,1,0,e.parent.context.selectedCount)})}function fe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[" "," "])),(t()(),a["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["found"])),(t()(),a["\u0275ted"](-1,null,[" / "]))],null,function(t,e){t(e,1,0,e.parent.context.rowCount)})}function pe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,8,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,de)),a["\u0275did"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,fe)),a["\u0275did"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](5,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](6,null,[" "," "])),(t()(),a["\u0275eld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["total"])),(t()(),a["\u0275eld"](9,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["\u0275nov"](t.parent,17).onFooterPage(n)&&r),r},p,d)),a["\u0275did"](10,49152,null,0,l.DataTablePagerComponent,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],function(t,e){var n=e.component;t(e,2,0,n.selectionType),t(e,4,0,e.context.rowCount!=(null==n.data?null:n.data.length)),t(e,10,0,n.paginationClasses.pagerLeftArrow,n.paginationClasses.pagerRightArrow,n.paginationClasses.pagerPrevious,n.paginationClasses.pagerNext,e.context.pageSize,e.context.rowCount,e.context.curPage)},function(t,e){var n=e.component;t(e,6,0,(null==n.data?null:n.data.length)||0),t(e,9,0,!(e.context.rowCount/e.context.pageSize>1))})}function he(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.context.value)})}function ge(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-sparkline",[],null,null,null,h.b,h.a)),a["\u0275did"](1,638976,null,0,g.a,[m.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],function(t,e){t(e,1,0,e.context.value,e.context.row.cdIsBinary)},null)}function me(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),r},null,null)),a["\u0275did"](1,671744,null,0,b.o,[b.l,b.a,o.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),a["\u0275pad"](2,1),(t()(),a["\u0275ted"](3,null,["",""]))],function(t,e){var n=e.context.row.cdParams,a=t(e,2,0,e.context.row.cdLink);t(e,1,0,n,a)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).target,a["\u0275nov"](e,1).href),t(e,3,0,e.context.value)})}function be(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","fa fa-check fa-fw"]],[[8,"hidden",0]],null,null,null,null))],null,function(t,e){t(e,0,0,!e.context.value)})}function ye(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](0,null,[" "," /s\n"])),a["\u0275ppd"](1,1)],null,function(t,e){var n=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent,0),e.context.value));t(e,0,0,n)})}function ve(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","fa fa-spinner fa-spin fa-fw"]],null,null,null,null,null))],null,null)}function xe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted italic"]],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["(",")"]))],null,function(t,e){t(e,1,0,e.parent.context.row.cdExecuting)})}function _e(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,ve)),a["\u0275did"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](2,null,[" "," "])),(t()(),a["\u0275and"](16777216,null,null,1,null,xe)),a["\u0275did"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.row.cdExecuting),t(e,4,0,e.context.row.cdExecuting)},function(t,e){t(e,2,0,e.context.value)})}function Te(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,0,0,a["\u0275inlineInterpolate"](1,"",e.component.useCustomClass(e.context.value),"")),t(e,1,0,e.context.value)})}function we(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""])),a["\u0275ppd"](2,2)],null,function(t,e){var n=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent,1),e.context.value,null==e.context.column?null:e.context.column.customTemplateConfig));t(e,1,0,n)})}function Se(t){return a["\u0275vid"](2,[a["\u0275pid"](0,y.a,[v.a]),a["\u0275pid"](0,x.a,[]),a["\u0275qud"](402653184,1,{table:0}),a["\u0275qud"](402653184,2,{tableCellBoldTpl:0}),a["\u0275qud"](402653184,3,{sparklineTpl:0}),a["\u0275qud"](402653184,4,{routerLinkTpl:0}),a["\u0275qud"](402653184,5,{checkIconTpl:0}),a["\u0275qud"](402653184,6,{perSecondTpl:0}),a["\u0275qud"](402653184,7,{executingTpl:0}),a["\u0275qud"](402653184,8,{classAddingTpl:0}),a["\u0275qud"](402653184,9,{mapTpl:0}),(t()(),a["\u0275and"](16777216,null,null,1,null,oe)),a["\u0275did"](12,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](13,0,null,null,13,"div",[["class","dataTables_wrapper"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,le)),a["\u0275did"](15,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](16,0,null,null,10,"ngx-datatable",[["class","bootstrap oadatatable ngx-datatable"]],[[2,"fixed-header",null],[2,"fixed-row",null],[2,"scroll-vertical",null],[2,"virtualized",null],[2,"scroll-horz",null],[2,"selectable",null],[2,"checkbox-selection",null],[2,"cell-selection",null],[2,"single-selection",null],[2,"multi-selection",null],[2,"multi-click-selection",null]],[[null,"select"],[null,"sort"],["window","resize"]],function(t,e,n){var r=!0,i=t.component;return"window:resize"===e&&(r=!1!==a["\u0275nov"](t,17).onWindowResize()&&r),"select"===e&&(r=!1!==i.onSelect()&&r),"sort"===e&&(r=!1!==i.changeSorting(n)&&r),r},ne,Qt)),a["\u0275did"](17,5750784,[[1,4],["table",4]],4,Zt.DatatableComponent,[[1,pt.ScrollbarHelper],[1,Xt.DimensionsHelper],a.ChangeDetectorRef,a.ElementRef,a.KeyValueDiffers,Jt.ColumnChangesService],{rows:[0,"rows"],columns:[1,"columns"],selected:[2,"selected"],rowHeight:[3,"rowHeight"],columnMode:[4,"columnMode"],headerHeight:[5,"headerHeight"],footerHeight:[6,"footerHeight"],limit:[7,"limit"],loadingIndicator:[8,"loadingIndicator"],selectionType:[9,"selectionType"],sorts:[10,"sorts"],cssClasses:[11,"cssClasses"],rowIdentity:[12,"rowIdentity"],rowClass:[13,"rowClass"]},{select:"select",sort:"sort"}),a["\u0275qud"](603979776,10,{columnTemplates:1}),a["\u0275qud"](335544320,11,{rowDetail:0}),a["\u0275qud"](335544320,12,{groupHeader:0}),a["\u0275qud"](335544320,13,{footer:0}),(t()(),a["\u0275eld"](22,0,null,null,4,"ngx-datatable-footer",[],null,null,null,null,null)),a["\u0275did"](23,16384,[[13,4]],1,ae.DatatableFooterDirective,[],null,null),a["\u0275qud"](335544320,14,{template:0}),(t()(),a["\u0275and"](0,[[14,2]],null,1,null,pe)),a["\u0275did"](26,16384,null,0,re.DataTableFooterTemplateDirective,[a.TemplateRef],null,null),a["\u0275ncd"](null,2),(t()(),a["\u0275and"](0,[[2,2],["tableCellBoldTpl",2]],null,0,null,he)),(t()(),a["\u0275and"](0,[[3,2],["sparklineTpl",2]],null,0,null,ge)),(t()(),a["\u0275and"](0,[[4,2],["routerLinkTpl",2]],null,0,null,me)),(t()(),a["\u0275and"](0,[[5,2],["checkIconTpl",2]],null,0,null,be)),(t()(),a["\u0275and"](0,[[6,2],["perSecondTpl",2]],null,0,null,ye)),(t()(),a["\u0275and"](0,[[7,2],["executingTpl",2]],null,0,null,_e)),(t()(),a["\u0275and"](0,[[8,2],["classAddingTpl",2]],null,0,null,Te)),(t()(),a["\u0275and"](0,[[9,2],["mapTpl",2]],null,0,null,we))],function(t,e){var n=e.component;t(e,12,0,n.loadingError),t(e,15,0,n.toolHeader),t(e,17,1,[n.rows,n.tableColumns,n.selection.selected,"auto",n.columnMode,n.header?"auto":0,n.footer?"auto":0,n.userConfig.limit>0?n.userConfig.limit:void 0,n.loadingIndicator,n.selectionType,n.userConfig.sorts,n.paginationClasses,n.rowIdentity(),n.getRowClass()])},function(t,e){t(e,16,1,[a["\u0275nov"](e,17).isFixedHeader,a["\u0275nov"](e,17).isFixedRow,a["\u0275nov"](e,17).isVertScroll,a["\u0275nov"](e,17).isVirtualized,a["\u0275nov"](e,17).isHorScroll,a["\u0275nov"](e,17).isSelectable,a["\u0275nov"](e,17).isCheckboxSelection,a["\u0275nov"](e,17).isCellSelection,a["\u0275nov"](e,17).isSingleSelection,a["\u0275nov"](e,17).isMultiSelection,a["\u0275nov"](e,17).isMultiClickSelection])})}},"26FU":function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("K9Ia"),i=n("8g8A"),o=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return a.__extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return n&&!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new i.a;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(r.a)},"2Bdj":function(t,e,n){"use strict";function a(t){return"function"==typeof t}n.d(e,"a",function(){return a})},"2EZI":function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("gIcY"),i=n("QFaf"),o=n("CcnG"),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.group=function(e,n){void 0===n&&(n=null);var a=t.prototype.group.call(this,e,n);return new i.a(a.controls,a.validator,a.asyncValidator)},e.ngInjectableDef=o.defineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(r.h)},"2KeD":function(t,e,n){"use strict";var a=n("Q1FS"),r=n("zB/H"),i=n("zfKp");e.scheduleObservable=function(t,e){return new a.Observable(function(n){var a=new r.Subscription;return a.add(e.schedule(function(){var r=t[i.observable]();a.add(r.subscribe({next:function(t){a.add(e.schedule(function(){return n.next(t)}))},error:function(t){a.add(e.schedule(function(){return n.error(t)}))},complete:function(){a.add(e.schedule(function(){return n.complete()}))}}))})),a})}},"2UWG":function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3");function i(t){return void 0!==t._view.width}function o(t){var e,n,a,r,o=t._view;if(i(t)){var s=o.width/2;e=o.x-s,n=o.x+s,a=Math.min(o.y,o.base),r=Math.max(o.y,o.base)}else{var u=o.height/2;e=Math.min(o.x,o.base),n=Math.max(o.x,o.base),a=o.y-u,r=o.y+u}return{left:e,top:a,right:n,bottom:r}}a._set("global",{elements:{rectangle:{backgroundColor:a.global.defaultColor,borderColor:a.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),t.exports=r.extend({draw:function(){var t,e,n,a,r,i,o,s=this._chart.ctx,u=this._view,c=u.borderWidth;if(u.horizontal?(n=u.y-u.height/2,a=u.y+u.height/2,r=(e=u.x)>(t=u.base)?1:-1,i=1,o=u.borderSkipped||"left"):(t=u.x-u.width/2,e=u.x+u.width/2,r=1,i=(a=u.base)>(n=u.y)?1:-1,o=u.borderSkipped||"bottom"),c){var l=Math.min(Math.abs(t-e),Math.abs(n-a)),d=(c=c>l?l:c)/2,f=t+("left"!==o?d*r:0),p=e+("right"!==o?-d*r:0),h=n+("top"!==o?d*i:0),g=a+("bottom"!==o?-d*i:0);f!==p&&(n=h,a=g),h!==g&&(t=f,e=p)}s.beginPath(),s.fillStyle=u.backgroundColor,s.strokeStyle=u.borderColor,s.lineWidth=c;var m=[[t,a],[t,n],[e,n],[e,a]],b=["bottom","left","top","right"].indexOf(o,0);function y(t){return m[(b+t)%4]}-1===b&&(b=0);var v=y(0);s.moveTo(v[0],v[1]);for(var x=1;x<4;x++)v=y(x),s.lineTo(v[0],v[1]);s.fill(),c&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var a=o(this);n=t>=a.left&&t<=a.right&&e>=a.top&&e<=a.bottom}return n},inLabelRange:function(t,e){if(!this._view)return!1;var n=o(this);return i(this)?t>=n.left&&t<=n.right:e>=n.top&&e<=n.bottom},inXRange:function(t){var e=o(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=o(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},"2V7f":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("IPm6")),a(n("YVFZ")),a(n("syrc")),a(n("PNOi")),a(n("SfHT")),a(n("Mfce")),a(n("7F1K")),a(n("99TG")),a(n("Fjl2")),a(n("VHo1"))},"2WpN":function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("FFOo"),i=n("pugT");function o(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.callback))},t}(),u=function(t){function e(e,n){var a=t.call(this,e)||this;return a.add(new i.a(n)),a}return a.__extends(e,t),e}(r.a)},"2ePl":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t}},"2fjn":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}}})}()},"2qMH":function(t,e,n){"use strict";var a=n("Q1FS"),r=n("zB/H");e.scheduleArray=function(t,e){return new a.Observable(function(n){var a=new r.Subscription,i=0;return a.add(e.schedule(function(){i!==t.length?(n.next(t[i++]),n.closed||a.add(this.schedule())):n.complete()})),a})}},"2ykv":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"3/HP":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;na){for(var s=r[a],u=a;un;u--)r[u]=r[u-1];r[n]=s}this._internalColumns=r,this.reorder.emit({column:e,newValue:n,prevValue:a})},t.prototype.onColumnSort=function(t){this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected})),this.sorts=t.sorts,!1===this.externalSorting&&this.sortInternalRows(),this._internalRows=s.groupRowsByParents(this._internalRows,s.optionalGetterForProp(this.treeFromRelation),s.optionalGetterForProp(this.treeToRelation)),this.offset=0,this.bodyComponent.updateOffsetY(this.offset),this.sort.emit(t)},t.prototype.onHeaderSelect=function(t){var e,n;if(this.selectAllRowsOnPage){var a=this.bodyComponent.indexes.first,r=this.bodyComponent.indexes.last,i=this.selected.length===r-a;this.selected=[],i||(e=this.selected).push.apply(e,this._internalRows.slice(a,r))}else i=this.selected.length===this.rows.length,this.selected=[],i||(n=this.selected).push.apply(n,this.rows);this.select.emit({selected:this.selected})},t.prototype.onBodySelect=function(t){this.select.emit(t)},t.prototype.onTreeAction=function(t){var e=this,n=t.row,a=this._rows.findIndex(function(n){return n[e.treeToRelation]===t.row[e.treeToRelation]});this.treeAction.emit({row:n,rowIndex:a})},t.prototype.ngOnDestroy=function(){this._subscriptions.forEach(function(t){return t.unsubscribe()})},t.prototype.listenForColumnInputChanges=function(){var t=this;this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe(function(){t.columnTemplates&&t.columnTemplates.notifyOnChanges()}))},t.prototype.sortInternalRows=function(){this._internalRows=s.sortRows(this._internalRows,this._internalColumns,this.sorts)},a([o.Input(),r("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"rows",null),a([o.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"groupRowsBy",null),a([o.Input(),r("design:type",Array)],t.prototype,"groupedRows",void 0),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"columns",null),a([o.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"rowHeight",void 0),a([o.Input(),r("design:type",String)],t.prototype,"columnMode",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"headerHeight",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"externalPaging",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"externalSorting",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"limit",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"offset",null),a([o.Input(),r("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),a([o.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"reorderable",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"swapColumns",void 0),a([o.Input(),r("design:type",String)],t.prototype,"sortType",void 0),a([o.Input(),r("design:type",Array)],t.prototype,"sorts",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"cssClasses",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"messages",void 0),a([o.Input(),r("design:type",Function)],t.prototype,"rowIdentity",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowClass",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([o.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),a([o.Input(),r("design:type",String)],t.prototype,"trackByProp",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectAllRowsOnPage",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"virtualization",void 0),a([o.Input(),r("design:type",String)],t.prototype,"treeFromRelation",void 0),a([o.Input(),r("design:type",String)],t.prototype,"treeToRelation",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"summaryRow",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"summaryHeight",void 0),a([o.Input(),r("design:type",String)],t.prototype,"summaryPosition",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"scroll",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"select",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"sort",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"page",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"reorder",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"resize",void 0),a([o.Output(),r("design:type",Object)],t.prototype,"tableContextmenu",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"treeAction",void 0),a([o.HostBinding("class.fixed-header"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isFixedHeader",null),a([o.HostBinding("class.fixed-row"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isFixedRow",null),a([o.HostBinding("class.scroll-vertical"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isVertScroll",null),a([o.HostBinding("class.virtualized"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isVirtualized",null),a([o.HostBinding("class.scroll-horz"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isHorScroll",null),a([o.HostBinding("class.selectable"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isSelectable",null),a([o.HostBinding("class.checkbox-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isCheckboxSelection",null),a([o.HostBinding("class.cell-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isCellSelection",null),a([o.HostBinding("class.single-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isSingleSelection",null),a([o.HostBinding("class.multi-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isMultiSelection",null),a([o.HostBinding("class.multi-click-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isMultiClickSelection",null),a([o.ContentChildren(d.DataTableColumnDirective),r("design:type",o.QueryList),r("design:paramtypes",[o.QueryList])],t.prototype,"columnTemplates",null),a([o.ContentChild(f.DatatableRowDetailDirective),r("design:type",f.DatatableRowDetailDirective)],t.prototype,"rowDetail",void 0),a([o.ContentChild(l.DatatableGroupHeaderDirective),r("design:type",l.DatatableGroupHeaderDirective)],t.prototype,"groupHeader",void 0),a([o.ContentChild(p.DatatableFooterDirective),r("design:type",p.DatatableFooterDirective)],t.prototype,"footer",void 0),a([o.ViewChild(c.DataTableBodyComponent),r("design:type",c.DataTableBodyComponent)],t.prototype,"bodyComponent",void 0),a([o.ViewChild(h.DataTableHeaderComponent),r("design:type",h.DataTableHeaderComponent)],t.prototype,"headerComponent",void 0),a([o.HostListener("window:resize"),s.throttleable(5),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onWindowResize",null),a([o.Component({selector:"ngx-datatable",template:'\n \n \n \n \n \n \n \n \n ',changeDetection:o.ChangeDetectionStrategy.OnPush,encapsulation:o.ViewEncapsulation.None,styleUrls:["./datatable.component.css"],host:{class:"ngx-datatable"}})],t)}()},"35yf":function(t,e,n){"use strict";n("CDJp")._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),t.exports=function(t){t.controllers.scatter=t.controllers.line}},"3E1r":function(t,e,n){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};t.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924"===e?t<4?t:t+12:"\u0938\u0941\u092c\u0939"===e?t:"\u0926\u094b\u092a\u0939\u0930"===e?t>=10?t:t+12:"\u0936\u093e\u092e"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0930\u093e\u0924":t<10?"\u0938\u0941\u092c\u0939":t<17?"\u0926\u094b\u092a\u0939\u0930":t<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(n("wd/R"))},"3MdB":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("DtyJ"),s=n("ahDk");e.DraggableDirective=function(){function t(t){this.dragX=!0,this.dragY=!0,this.dragStart=new i.EventEmitter,this.dragging=new i.EventEmitter,this.dragEnd=new i.EventEmitter,this.isDragging=!1,this.element=t.nativeElement}return t.prototype.ngOnChanges=function(t){t.dragEventTarget&&t.dragEventTarget.currentValue&&this.dragModel.dragging&&this.onMousedown(t.dragEventTarget.currentValue)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(t){this.isDragging&&(this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this._destroySubscription(),this.dragEnd.emit({event:t,element:this.element,model:this.dragModel})))},t.prototype.onMousedown=function(t){var e=this;if(t.target.classList.contains("draggable")&&(this.dragX||this.dragY)){t.preventDefault(),this.isDragging=!0;var n={x:t.clientX,y:t.clientY},a=o.fromEvent(document,"mouseup");this.subscription=a.subscribe(function(t){return e.onMouseup(t)});var r=o.fromEvent(document,"mousemove").pipe(s.takeUntil(a)).subscribe(function(t){return e.move(t,n)});this.subscription.add(r),this.dragStart.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype.move=function(t,e){if(this.isDragging){var n=t.clientY-e.y;this.dragX&&(this.element.style.left=t.clientX-e.x+"px"),this.dragY&&(this.element.style.top=n+"px"),this.element.classList.add("dragging"),this.dragging.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Object)],t.prototype,"dragEventTarget",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"dragModel",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragX",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragY",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragging",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragEnd",void 0),a([i.Directive({selector:"[draggable]"})],t)}()},"3U0i":function(t,e,n){"use strict";function a(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},"3fWJ":function(t,e,n){"use strict";function a(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},"4HWh":function(t,e,n){"use strict";var a=n("CcnG"),r=n("OZfm"),i=n("lqqz"),o=n("NJnL");n("p4Cf"),n.d(e,"a",function(){return s}),n.d(e,"b",function(){return c});var s=a["\u0275crt"]({encapsulation:0,styles:[["i[_ngcontent-%COMP%]{color:#2b99a8;cursor:pointer;padding-left:4px}"]],data:{}});function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[],[[8,"innerHTML",1]],null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275and"](0,null,null,0))],null,function(t,e){t(e,0,0,e.component.html)})}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,[["popoverTpl",2]],null,0,null,u)),(t()(),a["\u0275eld"](1,16777216,null,null,1,"i",[["aria-hidden","true"],["class","fa fa-question-circle"],["container","body"],["placement","bottom"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a},null,null)),a["\u0275did"](2,212992,null,0,r.c,[r.a,a.ElementRef,a.Renderer2,a.ViewContainerRef,i.a,o.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null)],function(t,e){t(e,2,0,a["\u0275nov"](e,0),"bottom",!0,"body")},null)}},"4MV3":function(t,e,n){!function(t){"use strict";var e={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},n={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};t.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(t){return t.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0ab0\u0abe\u0aa4"===e?t<4?t:t+12:"\u0ab8\u0ab5\u0abe\u0ab0"===e?t:"\u0aac\u0aaa\u0acb\u0ab0"===e?t>=10?t:t+12:"\u0ab8\u0abe\u0a82\u0a9c"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0ab0\u0abe\u0aa4":t<10?"\u0ab8\u0ab5\u0abe\u0ab0":t<17?"\u0aac\u0aaa\u0acb\u0ab0":t<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(n("wd/R"))},"4dOw":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},"4fRq":function(t,e){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var a=new Uint8Array(16);t.exports=function(){return n(a),a}}else{var r=new Array(16);t.exports=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),r[e]=t>>>((3&e)<<3)&255;return r}}},"58b6":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("kQXf");e.FoldingType=function(){function t(t){this._cssClass=t}return Object.defineProperty(t.prototype,"cssClass",{get:function(){return this._cssClass},enumerable:!0,configurable:!0}),t.Expanded=new t("node-expanded"),t.Collapsed=new t("node-collapsed"),t.Empty=new t("node-empty"),t.Leaf=new t("node-leaf"),t}(),e.TreeModelSettings=function(){function t(){}return t.merge=function(e,n){var r=a.omit(a.get(n,"settings"),t.NOT_CASCADING_SETTINGS);return a.defaultsDeep({},a.get(e,"settings"),r,{static:!1,leftMenu:!1,rightMenu:!0,isCollapsedOnInit:!1,checked:!1,keepNodesInDOM:!1,selectionAllowed:!0})},t.NOT_CASCADING_SETTINGS=["selectionAllowed"],t}(),e.Ng2TreeSettings=function(){return function(){this.rootIsVisible=!0,this.showCheckboxes=!1,this.enableCheckboxes=!0}}(),e.TreeStatus=function(t){return t[t.New=0]="New",t[t.Modified=1]="Modified",t[t.IsBeingRenamed=2]="IsBeingRenamed",t}(e.TreeStatus||{})},"5ZZ7":function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('
    ');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i'),r[i]&&e.push(r[i]),e.push("");return e.push("
"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,a){var r=t.getDatasetMeta(0),o=e.datasets[0],s=r.data[a].custom||{},u=i.valueAtIndexOrDefault,c=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:u(o.backgroundColor,a,c.backgroundColor),strokeStyle:s.borderColor?s.borderColor:u(o.borderColor,a,c.borderColor),lineWidth:s.borderWidth?s.borderWidth:u(o.borderWidth,a,c.borderWidth),hidden:isNaN(o.data[a])||r.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,a,r,i=e.index,o=this.chart;for(n=0,a=(o.data.datasets||[]).length;n=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}()},"60iU":function(t,e,n){"use strict";n.d(e,"b",function(){return a}),n.d(e,"a",function(){return s});var a,r=n("G5J1"),i=n("F/XL"),o=n("XlPw");a||(a={});var s=function(){function t(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue="N"===t}return t.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}},t.prototype.do=function(t,e,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}},t.prototype.accept=function(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)},t.prototype.toObservable=function(){switch(this.kind){case"N":return Object(i.a)(this.value);case"E":return Object(o.a)(this.error);case"C":return Object(r.b)()}throw new Error("unexpected notification kind value")},t.createNext=function(e){return void 0!==e?new t("N",e):t.undefinedValueNotification},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return t.completeNotification},t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t}()},"67Y/":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){return function(n){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new o(t,e))}}var o=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.project,this.thisArg))},t}(),s=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.project=n,r.count=0,r.thisArg=a||r,r}return a.__extends(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)},e}(r.a)},"6B0Y":function(t,e,n){!function(t){"use strict";var e={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},n={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};t.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(t){return"\u179b\u17d2\u1784\u17b6\u1785"===t},meridiem:function(t,e,n){return t<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(t){return t.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})}(n("wd/R"))},"6MUB":function(t,e,n){"use strict";var a=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,n,r){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?Object.keys(t).map(function(r){var i=encodeURIComponent(a(r))+n;return Array.isArray(t[r])?t[r].map(function(t){return i+encodeURIComponent(a(t))}).join(e):i+encodeURIComponent(a(t[r]))}).join(e):r?encodeURIComponent(a(r))+n+encodeURIComponent(a(t)):""}},"6ahw":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("iLxQ"),r=n("DKTb"),i={closed:!0,next:function(t){},error:function(t){if(a.a.useDeprecatedSynchronousErrorHandling)throw t;Object(r.a)(t)},complete:function(){}}},"6blF":function(t,e,n){"use strict";var a=n("1fDf"),r=n("FFOo"),i=n("L/V9"),o=n("6ahw"),s=n("xTla"),u=n("y3By"),c=n("iLxQ");n.d(e,"a",function(){return l});var l=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var a=this.operator,s=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[i.a])return t[i.a]()}return t||e||n?new r.a(t,e,n):new r.a(o.a)}(t,e,n);if(s.add(a?a.call(s,this.source):this.source||c.a.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),c.a.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){c.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),Object(a.a)(t)?t.error(e):console.warn(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=d(e))(function(e,a){var r;r=n.subscribe(function(e){try{t(e)}catch(n){a(n),r&&r.unsubscribe()}},a,e)})},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[s.a]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);l.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this.getDatasetMeta(t),a={meta:n,index:t,easingValue:e};!1!==l.notify(this,"beforeDatasetDraw",[a])&&(n.controller.draw(e),l.notify(this,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==l.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),l.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return s.modes.single(this,t)},getElementsAtEvent:function(t){return s.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return s.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var a=s.modes[e];return"function"==typeof a?a(this,t,n):[]},getDatasetAtEvent:function(t){return s.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;en?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,a=void 0===e?.5:e,r=2*a-1,i=this.alpha()-n.alpha(),o=((r*i==-1?r:(r+i)/(1+r*i))+1)/2,s=1-o;return this.rgb(o*this.red()+s*n.red(),o*this.green()+s*n.green(),o*this.blue()+s*n.blue()).alpha(this.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new i,a=this.values,r=n.values;for(var o in a)a.hasOwnProperty(o)&&("[object Array]"===(e={}.toString.call(t=a[o]))?r[o]=t.slice(0):"[object Number]"===e?r[o]=t:console.error("unexpected color value:",t));return n}},i.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},i.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},i.prototype.getValues=function(t){for(var e=this.values,n={},a=0;a-1},t.prototype.getRowSelectedIdx=function(t,e){var n=this;if(!e||!e.length)return-1;var a=this.rowIdentity(t);return e.findIndex(function(t){return n.rowIdentity(t)===a})},a([i.Input(),r("design:type",Array)],t.prototype,"rows",void 0),a([i.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"selectEnabled",void 0),a([i.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"select",void 0),a([i.Component({selector:"datatable-selection",template:"\n \n ",changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"7O6V":function(t,e,n){"use strict";t.exports=function(t){t.Line=function(e,n){return n.type="line",new t(e,n)}}},"7aV9":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(t){return t+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(t){return"\u0db4.\u0dc0."===t||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===t},meridiem:function(t,e,n){return t>11?n?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":n?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}()},"8/+R":function(t,e,n){!function(t){"use strict";var e={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},n={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};t.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(t){return t.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0a30\u0a3e\u0a24"===e?t<4?t:t+12:"\u0a38\u0a35\u0a47\u0a30"===e?t:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===e?t>=10?t:t+12:"\u0a38\u0a3c\u0a3e\u0a2e"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0a30\u0a3e\u0a24":t<10?"\u0a38\u0a35\u0a47\u0a30":t<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":t<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(n("wd/R"))},"8//i":function(t,e,n){"use strict";var a=n("CDJp"),r=n("RDha"),i=n("tjFV"),o=n("g8vO");t.exports=function(t){var e=a.global,n={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:o.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function s(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function u(t){var n=t.options.pointLabels,a=r.valueOrDefault(n.fontSize,e.defaultFontSize),i=r.valueOrDefault(n.fontStyle,e.defaultFontStyle),o=r.valueOrDefault(n.fontFamily,e.defaultFontFamily);return{size:a,style:i,family:o,font:r.fontString(a,i,o)}}function c(t,e,n,a,r){return t===a||t===r?{start:e-n/2,end:e+n/2}:tr?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function l(t){return 0===t||180===t?"center":t<180?"left":"right"}function d(t,e,n,a){if(r.isArray(e))for(var i=n.y,o=1.5*a,s=0;s270||t<90)&&(n.y-=e.h)}function p(t){return r.isNumber(t)?t:0}var h=t.LinearScaleBase.extend({setDimensions:function(){var t=this,n=t.options,a=n.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var i=r.min([t.height,t.width]),o=r.valueOrDefault(a.fontSize,e.defaultFontSize);t.drawingArea=n.display?i/2-(o/2+a.backdropPaddingY):i/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;r.each(e.data.datasets,function(i,o){if(e.isDatasetVisible(o)){var s=e.getDatasetMeta(o);r.each(i.data,function(e,r){var i=+t.getRightValue(e);isNaN(i)||s.data[r].hidden||(n=Math.min(i,n),a=Math.max(i,a))})}}),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=a===Number.NEGATIVE_INFINITY?0:a,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,n=r.valueOrDefault(t.fontSize,e.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*n)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t;this.options.pointLabels.display?function(t){var e,n,a,i=u(t),o=Math.min(t.height/2,t.width/2),l={r:t.width,l:0,t:t.height,b:0},d={};t.ctx.font=i.font,t._pointLabelSizes=[];var f,p,h,g=s(t);for(e=0;el.r&&(l.r=y.end,d.r=m),v.startl.b&&(l.b=v.end,d.b=m)}t.setReductions(o,l,d)}(this):(t=Math.min(this.height/2,this.width/2),this.drawingArea=Math.round(t),this.setCenterPoint(0,0,0,0))},setReductions:function(t,e,n){var a=e.l/Math.sin(n.l),r=Math.max(e.r-this.width,0)/Math.sin(n.r),i=-e.t/Math.cos(n.t),o=-Math.max(e.b-this.height,0)/Math.cos(n.b);a=p(a),r=p(r),i=p(i),o=p(o),this.drawingArea=Math.min(Math.round(t-(a+r)/2),Math.round(t-(i+o)/2)),this.setCenterPoint(a,r,i,o)},setCenterPoint:function(t,e,n,a){var r=this,i=n+r.drawingArea,o=r.height-a-r.drawingArea;r.xCenter=Math.round((t+r.drawingArea+(r.width-e-r.drawingArea))/2+r.left),r.yCenter=Math.round((i+o)/2+r.top)},getIndexAngle:function(t){return t*(2*Math.PI/s(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(n)*e)+this.xCenter,y:Math.round(Math.sin(n)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,n=t.options,a=n.gridLines,i=n.ticks,o=r.valueOrDefault;if(n.display){var c=t.ctx,p=this.getIndexAngle(0),h=o(i.fontSize,e.defaultFontSize),g=o(i.fontStyle,e.defaultFontStyle),m=o(i.fontFamily,e.defaultFontFamily),b=r.fontString(h,g,m);r.each(t.ticks,function(n,u){if(u>0||i.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[u]);if(a.display&&0!==u&&function(t,e,n,a){var i=t.ctx;if(i.strokeStyle=r.valueAtIndexOrDefault(e.color,a-1),i.lineWidth=r.valueAtIndexOrDefault(e.lineWidth,a-1),t.options.gridLines.circular)i.beginPath(),i.arc(t.xCenter,t.yCenter,n,0,2*Math.PI),i.closePath(),i.stroke();else{var o=s(t);if(0===o)return;i.beginPath();var u=t.getPointPosition(0,n);i.moveTo(u.x,u.y);for(var c=1;c=0;h--){if(i.display){var g=t.getPointPosition(h,c);n.beginPath(),n.moveTo(t.xCenter,t.yCenter),n.lineTo(g.x,g.y),n.stroke(),n.closePath()}if(o.display){var m=t.getPointPosition(h,c+5),b=r.valueAtIndexOrDefault(o.fontColor,h,e.defaultFontColor);n.font=p.font,n.fillStyle=b;var y=t.getIndexAngle(h),v=r.toDegrees(y);n.textAlign=l(v),f(v,t._pointLabelSizes[h],m),d(n,t.pointLabels[h]||"",m,p.size)}}}(t)}}});i.registerScaleType("radialLinear",h,n)}},"85J/":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){var e=/ceph version\s+([^ ]+)\s+\(.+\)/.exec(t);return e?e[1]:t},t}()},"88/t":function(t,e,n){"use strict";n.r(e);var a=n("DtyJ");n.d(e,"Observable",function(){return a.Observable})},"8TtQ":function(t,e,n){"use strict";var a=n("cdu6"),r=n("tjFV");t.exports=function(){var t=a.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,n=e.getLabels();e.minIndex=0,e.maxIndex=n.length-1,void 0!==e.options.ticks.min&&(t=n.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=n.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=n[e.minIndex],e.max=n[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,a=n.chart.data,r=n.isHorizontal();return a.yLabels&&!r?n.getRightValue(a.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,a=this,r=a.options.offset,i=Math.max(a.maxIndex+1-a.minIndex-(r?0:1),1);if(null!=t&&(n=a.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var o=a.getLabels().indexOf(t=n||t);e=-1!==o?o:e}if(a.isHorizontal()){var s=a.width/i,u=s*(e-a.minIndex);return r&&(u+=s/2),a.left+Math.round(u)}var c=a.height/i,l=c*(e-a.minIndex);return r&&(l+=c/2),a.top+Math.round(l)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,a=Math.max(e._ticks.length-(n?0:1),1),r=e.isHorizontal(),i=(r?e.width:e.height)/a;return t-=r?e.left:e.top,n&&(t-=i/2),(t<=0?0:Math.round(t/i))+e.minIndex},getBasePixel:function(){return this.bottom}});r.registerScaleType("category",t,{position:"bottom"})}},"8g8A":function(t,e,n){"use strict";function a(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},"8iEZ":function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DataTableColumnCellDirective=function(){return a([r.Directive({selector:"[ngx-datatable-cell-template]"})],function(t){this.template=t})}()},"8mBD":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("pt",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},"8xTl":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){function t(){}return t.prototype.transform=function(t){return a.upperFirst(t)},t}()},"909l":function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return d});var a=n("mrSG"),r=n("IUTb"),i=n("isby"),o=n("FFOo"),s=n("MGBS"),u=n("zotm"),c=n("En8+");function l(){for(var t=[],e=0;ethis.index},t.prototype.hasCompleted=function(){return this.array.length===this.index},t}(),g=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.parent=n,r.observable=a,r.stillUnsubscribed=!0,r.buffer=[],r.isComplete=!1,r}return a.__extends(e,t),e.prototype[c.a]=function(){return this},e.prototype.next=function(){var t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(t,e,n,a,r){this.buffer.push(e),this.parent.checkIterators()},e.prototype.subscribe=function(t,e){return Object(u.a)(this,this.observable,this,e)},e}(s.a)},"90cg":function(t,e,n){"use strict";e.isPromise=function(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}},"99TG":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("Fjl2");e.DatatableGroupHeaderDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandGroup=function(t){this.toggle.emit({type:"group",value:t})},t.prototype.expandAllGroups=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllGroups=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(o.DatatableGroupHeaderTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-group-header"})],t)}()},"9AGB":function(t,e,n){"use strict";var a=n("w5QO");function r(t){return t?1===t.length?t[0]:function(e){return t.reduce(function(t,e){return e(t)},e)}:a.noop}e.pipe=function(){for(var t=[],e=0;e10;)e.shift();this.dataSource.next(e),localStorage.setItem(this.KEY,JSON.stringify(e))},t.prototype.show=function(t,e,n,r,i){var s=this;return window.setTimeout(function(){var u;u=a.isFunction(t)?t():a.isObject(t)?t:new o.b(t,e,n,r,i),s.queueToShow(u)},10)},t.prototype.queueToShow=function(t){var e=this;this.cancel(this.queuedTimeoutId),this.queued.find(function(e){return a.isEqual(e,t)})||this.queued.push(t),this.queuedTimeoutId=window.setTimeout(function(){e.showQueued()},500)},t.prototype.showQueued=function(){var t=this;this.getUnifiedTitleQueue().forEach(function(e){var n=new o.a(e);t.save(n),t.showToasty(n)})},t.prototype.getUnifiedTitleQueue=function(){return Object.values(this.queueShiftByTitle()).map(function(t){var e=t[0];return t.length>1&&(e.message="
    "+t.map(function(t){return"
  • "+t.message+"
  • "}).join("")+"
"),e})},t.prototype.queueShiftByTitle=function(){for(var t,e={};t=this.queued.shift();)e[t.title]||(e[t.title]=[]),e[t.title].push(t);return e},t.prototype.showToasty=function(t){this.hideToasties||this.toastr[["error","info","success"][t.type]]((t.message?t.message+"
":"")+this.renderTimeAndApplicationHtml(t),t.title,t.options)},t.prototype.renderTimeAndApplicationHtml=function(t){return''+this.cdDatePipe.transform(t.timestamp)+''},t.prototype.notifyTask=function(t,e){var n;return void 0===e&&(e=!0),n=t.success&&e?new o.b(i.a.success,this.taskMessageService.getSuccessTitle(t)):new o.b(i.a.error,this.taskMessageService.getErrorTitle(t),this.taskMessageService.getErrorMessage(t)),this.show(n)},t.prototype.cancel=function(t){window.clearTimeout(t)},t.prototype.suspendToasties=function(t){this.hideToasties=t},t.ngInjectableDef=c.defineInjectable({factory:function(){return new t(c.inject(l.j),c.inject(u.a),c.inject(s.a))},token:t,providedIn:"root"}),t}()},"9rRi":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}()},"A+xa":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(t){return t+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(t)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(t)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}()},A5uo:function(t,e,n){"use strict";var a=n("K2E3");e=t.exports=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),Object.defineProperty(e.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(e.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})},AQ68:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}()},ARl4:function(t,e,n){"use strict";n.d(e,"a",function(){return h}),n.d(e,"b",function(){return z}),n.d(e,"c",function(){return G}),n.d(e,"d",function(){return Y}),n.d(e,"e",function(){return V}),n.d(e,"f",function(){return H}),n.d(e,"g",function(){return at}),n.d(e,"h",function(){return B}),n.d(e,"i",function(){return U}),n.d(e,"j",function(){return b}),n.d(e,"k",function(){return st}),n.d(e,"l",function(){return it}),n.d(e,"m",function(){return ot}),n.d(e,"n",function(){return dt}),n.d(e,"o",function(){return ut}),n.d(e,"p",function(){return ct}),n.d(e,"q",function(){return lt}),n.d(e,"r",function(){return F}),n.d(e,"s",function(){return y}),n.d(e,"t",function(){return m}),n.d(e,"u",function(){return Z}),n.d(e,"v",function(){return K}),n.d(e,"w",function(){return J}),n.d(e,"x",function(){return et}),n.d(e,"y",function(){return W}),n.d(e,"z",function(){return Q}),n.d(e,"A",function(){return tt}),n.d(e,"B",function(){return nt}),n.d(e,"C",function(){return $});var a=n("CcnG"),r=n("mrSG"),i=n("VnD/"),o=n("67Y/"),s=n("t9fZ"),u=n("lHUG"),c=n("26FU"),l=n("MwfX"),d=n("NJnL"),f=(n("ihYY"),n("lqqz")),p=(n("gIcY"),n("rpEJ")),h=function(){return function(){this.adaptivePosition=!1,this.isAnimated=!1,this.containerClass="theme-green",this.displayMonths=1,this.showWeekNumbers=!0,this.dateInputFormat="L",this.rangeSeparator=" - ",this.rangeInputFormat="L",this.monthTitle="MMMM",this.yearTitle="YYYY",this.dayLabel="D",this.monthLabel="MMMM",this.yearLabel="YYYY",this.weekNumbers="w"}}(),g=function(){function t(){this._customRangesFish=[]}return Object.defineProperty(t.prototype,"minDate",{set:function(t){this._effects.setMinDate(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxDate",{set:function(t){this._effects.setMaxDate(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"daysDisabled",{set:function(t){this._effects.setDaysDisabled(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"datesDisabled",{set:function(t){this._effects.setDatesDisabled(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisabled",{set:function(t){this._effects.setDisabled(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dateCustomClasses",{set:function(t){this._effects.setDateCustomClasses(t)},enumerable:!0,configurable:!0}),t.prototype.setViewMode=function(t){},t.prototype.navigateTo=function(t){},t.prototype.dayHoverHandler=function(t){},t.prototype.weekHoverHandler=function(t){},t.prototype.monthHoverHandler=function(t){},t.prototype.yearHoverHandler=function(t){},t.prototype.daySelectHandler=function(t){},t.prototype.monthSelectHandler=function(t){},t.prototype.yearSelectHandler=function(t){},t.prototype._stopPropagation=function(t){t.stopPropagation()},t}(),m=function(){function t(){}return t.prototype.calculate=function(){return{type:t.CALCULATE}},t.prototype.format=function(){return{type:t.FORMAT}},t.prototype.flag=function(){return{type:t.FLAG}},t.prototype.select=function(e){return{type:t.SELECT,payload:e}},t.prototype.changeViewMode=function(e){return{type:t.CHANGE_VIEWMODE,payload:e}},t.prototype.navigateTo=function(e){return{type:t.NAVIGATE_TO,payload:e}},t.prototype.navigateStep=function(e){return{type:t.NAVIGATE_OFFSET,payload:e}},t.prototype.setOptions=function(e){return{type:t.SET_OPTIONS,payload:e}},t.prototype.selectRange=function(e){return{type:t.SELECT_RANGE,payload:e}},t.prototype.hoverDay=function(e){return{type:t.HOVER,payload:e.isHovered?e.cell.date:null}},t.prototype.minDate=function(e){return{type:t.SET_MIN_DATE,payload:e}},t.prototype.maxDate=function(e){return{type:t.SET_MAX_DATE,payload:e}},t.prototype.daysDisabled=function(e){return{type:t.SET_DAYSDISABLED,payload:e}},t.prototype.datesDisabled=function(e){return{type:t.SET_DATESDISABLED,payload:e}},t.prototype.isDisabled=function(e){return{type:t.SET_IS_DISABLED,payload:e}},t.prototype.setDateCustomClasses=function(e){return{type:t.SET_DATE_CUSTOM_CLASSES,payload:e}},t.prototype.setLocale=function(e){return{type:t.SET_LOCALE,payload:e}},t.CALCULATE="[datepicker] calculate dates matrix",t.FORMAT="[datepicker] format datepicker values",t.FLAG="[datepicker] set flags",t.SELECT="[datepicker] select date",t.NAVIGATE_OFFSET="[datepicker] shift view date",t.NAVIGATE_TO="[datepicker] change view date",t.SET_OPTIONS="[datepicker] update render options",t.HOVER="[datepicker] hover date",t.CHANGE_VIEWMODE="[datepicker] switch view mode",t.SET_MIN_DATE="[datepicker] set min date",t.SET_MAX_DATE="[datepicker] set max date",t.SET_DAYSDISABLED="[datepicker] set days disabled",t.SET_DATESDISABLED="[datepicker] set dates disabled",t.SET_IS_DISABLED="[datepicker] set is disabled",t.SET_DATE_CUSTOM_CLASSES="[datepicker] set date custom classes",t.SET_LOCALE="[datepicker] set datepicker locale",t.SELECT_RANGE="[daterangepicker] select dates range",t}(),b=function(){function t(){this._defaultLocale="en",this._locale=new c.a(this._defaultLocale),this._localeChange=this._locale.asObservable()}return Object.defineProperty(t.prototype,"locale",{get:function(){return this._locale},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"localeChange",{get:function(){return this._localeChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentLocale",{get:function(){return this._locale.getValue()},enumerable:!0,configurable:!0}),t.prototype.use=function(t){t!==this.currentLocale&&this._locale.next(t)},t}(),y=function(){function t(t,e){this._actions=t,this._localeService=e,this._subs=[]}return t.prototype.init=function(t){return this._store=t,this},t.prototype.setValue=function(t){this._store.dispatch(this._actions.select(t))},t.prototype.setRangeValue=function(t){this._store.dispatch(this._actions.selectRange(t))},t.prototype.setMinDate=function(t){return this._store.dispatch(this._actions.minDate(t)),this},t.prototype.setMaxDate=function(t){return this._store.dispatch(this._actions.maxDate(t)),this},t.prototype.setDaysDisabled=function(t){return this._store.dispatch(this._actions.daysDisabled(t)),this},t.prototype.setDatesDisabled=function(t){return this._store.dispatch(this._actions.datesDisabled(t)),this},t.prototype.setDisabled=function(t){return this._store.dispatch(this._actions.isDisabled(t)),this},t.prototype.setDateCustomClasses=function(t){return this._store.dispatch(this._actions.setDateCustomClasses(t)),this},t.prototype.setOptions=function(t){var e=Object.assign({locale:this._localeService.currentLocale},t);return this._store.dispatch(this._actions.setOptions(e)),this},t.prototype.setBindings=function(t){return t.daysCalendar=this._store.select(function(t){return t.flaggedMonths}).pipe(Object(i.a)(function(t){return!!t})),t.monthsCalendar=this._store.select(function(t){return t.flaggedMonthsCalendar}).pipe(Object(i.a)(function(t){return!!t})),t.yearsCalendar=this._store.select(function(t){return t.yearsCalendarFlagged}).pipe(Object(i.a)(function(t){return!!t})),t.viewMode=this._store.select(function(t){return t.view.mode}),t.options=this._store.select(function(t){return t.showWeekNumbers}).pipe(Object(o.a)(function(t){return{showWeekNumbers:t}})),this},t.prototype.setEventHandlers=function(t){var e=this;return t.setViewMode=function(t){e._store.dispatch(e._actions.changeViewMode(t))},t.navigateTo=function(t){e._store.dispatch(e._actions.navigateStep(t.step))},t.dayHoverHandler=function(t){var n=t.cell;n.isOtherMonth||n.isDisabled||(e._store.dispatch(e._actions.hoverDay(t)),n.isHovered=t.isHovered)},t.monthHoverHandler=function(t){t.cell.isHovered=t.isHovered},t.yearHoverHandler=function(t){t.cell.isHovered=t.isHovered},t.monthSelectHandler=function(t){t.isDisabled||e._store.dispatch(e._actions.navigateTo({unit:{month:Object(u.l)(t.date),year:Object(u.j)(t.date)},viewMode:"day"}))},t.yearSelectHandler=function(t){t.isDisabled||e._store.dispatch(e._actions.navigateTo({unit:{year:Object(u.j)(t.date)},viewMode:"month"}))},this},t.prototype.registerDatepickerSideEffects=function(){var t=this;return this._subs.push(this._store.select(function(t){return t.view}).subscribe(function(e){t._store.dispatch(t._actions.calculate())})),this._subs.push(this._store.select(function(t){return t.monthsModel}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.format())})),this._subs.push(this._store.select(function(t){return t.formattedMonths}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.selectedDate}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.selectedRange}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.monthsCalendar}).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.yearsCalendarModel}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.hoveredDate}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.dateCustomClasses}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._localeService.localeChange.subscribe(function(e){return t._store.dispatch(t._actions.setLocale(e))})),this},t.prototype.destroy=function(){var t,e;try{for(var n=Object(r.__values)(this._subs),a=n.next();!a.done;a=n.next())a.value.unsubscribe()}catch(i){t={error:i}}finally{try{a&&!a.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},t}(),v={date:new Date,mode:"day"},x=Object.assign(new h,{locale:"en",view:v,selectedRange:[],monthViewOptions:{width:7,height:6}});function _(t,e,n){var a=e&&Object(u.p)(Object(u.d)(t,"month"),e,"day"),r=n&&Object(u.n)(Object(u.G)(t,"month"),n,"day");return a||r}function T(t,e,n){var a=e&&Object(u.p)(Object(u.d)(t,"year"),e,"day"),r=n&&Object(u.n)(Object(u.G)(t,"year"),n,"day");return a||r}function w(t,e){for(var n=t.initialDate,a=new Array(t.height),r=0;r=e}var I=4,C=3,k={month:1};function N(t,e){var n=Object(u.G)(t,"year");return{months:w({width:C,height:I,initialDate:n,shift:k},function(t){return{date:t,label:Object(u.f)(t,e.monthLabel,e.locale)}}),monthTitle:"",yearTitle:Object(u.f)(t,e.yearTitle,e.locale)}}var R=4,A=4,E=R*A,D=-1*(Math.floor(E/2)-1),L={year:1};function P(t,e){var n=Object(u.F)(t,{year:D}),a=w({width:A,height:R,initialDate:n,shift:L},function(t){return{date:t,label:Object(u.f)(t,e.yearLabel,e.locale)}});return{years:a,monthTitle:"",yearTitle:function(t,e){return Object(u.f)(t[0][0].date,e.yearTitle,e.locale)+" - "+Object(u.f)(t[R-1][A-1].date,e.yearTitle,e.locale)}(a,e)}}function M(t,e){switch(void 0===t&&(t=x),e.type){case m.CALCULATE:return function(t){var e,n,a,r,i=t.displayMonths,o=t.view.date;if("day"===t.view.mode){t.monthViewOptions.firstDayOfWeek=Object(u.k)(t.locale).firstDayOfWeek();for(var s=new Array(i),c=0;ce[0]&&t<=e[1]:!!n&&t>e[0]&&t<=n)}(a.date,e.selectedRange,e.hoveredDate),h=e.isDisabled||Object(u.p)(a.date,e.minDate,"day")||Object(u.n)(a.date,e.maxDate,"day")||Object(u.s)(a.date,e.daysDisabled)||(i=a.date,!(void 0===(o=e.datesDisabled)||!o||!o.length)&&o.some(function(t){return Object(u.u)(i,t,"date")})),g=new Date,m=!s&&Object(u.v)(a.date,g),b=e.dateCustomClasses&&e.dateCustomClasses.map(function(t){return Object(u.v)(a.date,t.date)?t.classes:[]}).reduce(function(t,e){return t.concat(e)},[]).join(" ")||"",y=Object.assign({},a,{isOtherMonth:s,isHovered:c,isSelected:f,isSelectionStart:l,isSelectionEnd:d,isInRange:p,isDisabled:h,isToday:m,customClasses:b});a.isOtherMonth===y.isOtherMonth&&a.isHovered===y.isHovered&&a.isSelected===y.isSelected&&a.isSelectionStart===y.isSelectionStart&&a.isSelectionEnd===y.isSelectionEnd&&a.isDisabled===y.isDisabled&&a.isInRange===y.isInRange&&a.customClasses===y.customClasses||(n.days[r]=y)})}),t.hideLeftArrow=e.isDisabled||e.monthIndex>0&&e.monthIndex!==e.displayMonths,t.hideRightArrow=e.isDisabled||e.monthIndex0&&r.monthIndex!==r.displayMonths,a.hideRightArrow=r.monthIndex0&&e.yearIndex!==e.displayMonths,t.hideRightArrow=e.yearIndex=this._rangeStack[0]?[this._rangeStack[0],t.date]:[t.date]),0===this._rangeStack.length&&(this._rangeStack=[t.date]),this._store.dispatch(this._actions.selectRange(this._rangeStack)),2===this._rangeStack.length&&(this._rangeStack=[]))},e.prototype.ngOnDestroy=function(){var t,e;try{for(var n=Object(r.__values)(this._subs),a=n.next();!a.done;a=n.next())a.value.unsubscribe()}catch(i){t={error:i}}finally{try{a&&!a.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this._effects.destroy()},e}(g),W=function(){return function(){}}(),K=function(){return function(){}}(),$=function(){return function(){}}(),Z=function(){function t(t,e,n){this._config=t,this._elRef=e,this._renderer=n}return t.prototype.ngOnInit=function(){var t=this;this.day.isToday&&this._config&&this._config.customTodayClass&&this._renderer.addClass(this._elRef.nativeElement,this._config.customTodayClass),"string"==typeof this.day.customClasses&&this.day.customClasses.split(" ").filter(function(t){return t}).forEach(function(e){t._renderer.addClass(t._elRef.nativeElement,e)})},t}(),X=function(){var t={UP:0,DOWN:1};return t[t.UP]="UP",t[t.DOWN]="DOWN",t}(),J=function(){function t(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter}return t.prototype.navTo=function(t){this.onNavigate.emit(t?X.DOWN:X.UP)},t.prototype.view=function(t){this.onViewMode.emit(t)},t}(),Q=function(){function t(t){this._config=t,this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter,this.onHoverWeek=new a.EventEmitter}return t.prototype.navigateTo=function(t){this.onNavigate.emit({step:{month:X.DOWN===t?-1:1}})},t.prototype.changeViewMode=function(t){this.onViewMode.emit(t)},t.prototype.selectDay=function(t){this.onSelect.emit(t)},t.prototype.selectWeek=function(t){var e=this;if(this._config.selectWeek)if(t.days&&t.days[0]&&!t.days[0].isDisabled&&this._config.selectFromOtherMonth)this.onSelect.emit(t.days[0]);else if(0!==t.days.length){var n=t.days.find(function(t){return e._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled});this.onSelect.emit(n)}},t.prototype.weekHoverHandler=function(t,e){var n=this;this._config.selectWeek&&t.days.find(function(t){return n._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled})&&(t.isHovered=e,this.isWeekHovered=e,this.onHoverWeek.emit(t))},t.prototype.hoverDay=function(t,e){this._config.selectFromOtherMonth&&t.isOtherMonth&&(t.isOtherMonthHovered=e),this.onHover.emit({cell:t,isHovered:e})},t}(),tt=function(){function t(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}return t.prototype.navigateTo=function(t){this.onNavigate.emit({step:{year:X.DOWN===t?-1:1}})},t.prototype.viewMonth=function(t){this.onSelect.emit(t)},t.prototype.hoverMonth=function(t,e){this.onHover.emit({cell:t,isHovered:e})},t.prototype.changeViewMode=function(t){this.onViewMode.emit(t)},t}(),et=function(){return function(){this.ampm="ok",this.hours=0,this.minutes=0}}(),nt=function(){function t(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}return t.prototype.navigateTo=function(t){this.onNavigate.emit({step:{year:(X.DOWN===t?-1:1)*E}})},t.prototype.viewYear=function(t){this.onSelect.emit(t)},t.prototype.hoverYear=function(t,e){this.onHover.emit({cell:t,isHovered:e})},t.prototype.changeViewMode=function(t){this.onViewMode.emit(t)},t}(),at=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[f.a,d.a,F,m,h,B,Y,y,b]}},t}(),rt=function(){function t(){}return t.prototype.format=function(t,e,n){return Object(u.f)(t,e,n)},t}(),it=function(){function t(){this.selectionDone=new a.EventEmitter(void 0),this.update=new a.EventEmitter(!1),this.activeDateChange=new a.EventEmitter(void 0),this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new rt}return Object.defineProperty(t.prototype,"activeDate",{get:function(){return this._activeDate},set:function(t){this._activeDate=t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.uniqueId="datepicker--"+Math.floor(1e4*Math.random()),this.initDate?(this.activeDate=this.initDate,this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate)):void 0===this.activeDate&&(this.activeDate=new Date)},t.prototype.ngOnChanges=function(t){this.refreshView(),this.checkIfActiveDateGotUpdated(t.activeDate)},t.prototype.checkIfActiveDateGotUpdated=function(t){if(t&&!t.firstChange){var e=t.previousValue;e&&e instanceof Date&&e.getTime()!==t.currentValue.getTime()&&this.activeDateChange.emit(this.activeDate)}},t.prototype.setCompareHandler=function(t,e){"day"===e&&(this.compareHandlerDay=t),"month"===e&&(this.compareHandlerMonth=t),"year"===e&&(this.compareHandlerYear=t)},t.prototype.compare=function(t,e){if(void 0!==t&&void 0!==e)return"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(t,e):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(t,e):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(t,e):void 0},t.prototype.setRefreshViewHandler=function(t,e){"day"===e&&(this.refreshViewHandlerDay=t),"month"===e&&(this.refreshViewHandlerMonth=t),"year"===e&&(this.refreshViewHandlerYear=t)},t.prototype.refreshView=function(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()},t.prototype.dateFilter=function(t,e){return this.dateFormatter.format(t,e,this.locale)},t.prototype.isActive=function(t){return 0===this.compare(t.date,this.activeDate)&&(this.activeDateId=t.uid,!0)},t.prototype.createDateObject=function(t,e){var n={};return n.date=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n.date=this.fixTimeZone(n.date),n.label=this.dateFilter(t,e),n.selected=0===this.compare(t,this.selectedDate),n.disabled=this.isDisabled(t),n.current=0===this.compare(t,new Date),n.customClass=this.getCustomClassForDate(n.date),n},t.prototype.split=function(t,e){for(var n=[];t.length>0;)n.push(t.splice(0,e));return n},t.prototype.fixTimeZone=function(t){var e=t.getHours();return new Date(t.getFullYear(),t.getMonth(),t.getDate(),23===e?e+2:0)},t.prototype.select=function(t,e){void 0===e&&(e=!0),this.datepickerMode===this.minMode?(this.activeDate||(this.activeDate=new Date(0,0,0,0,0,0,0)),this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&this.selectionDone.emit(this.activeDate)):(this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1])),this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate),this.refreshView()},t.prototype.move=function(t){var e;if("day"===this.datepickerMode&&(e=this.stepDay),"month"===this.datepickerMode&&(e=this.stepMonth),"year"===this.datepickerMode&&(e=this.stepYear),e){var n=this.activeDate.getFullYear()+t*(e.years||0),a=this.activeDate.getMonth()+t*(e.months||0);this.activeDate=new Date(n,a,1),this.refreshView(),this.activeDateChange.emit(this.activeDate)}},t.prototype.toggleMode=function(t){var e=t||1;this.datepickerMode===this.maxMode&&1===e||this.datepickerMode===this.minMode&&-1===e||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+e],this.refreshView())},t.prototype.getCustomClassForDate=function(t){var e=this;if(!this.customClass)return"";var n=this.customClass.find(function(n){return n.date.valueOf()===t.valueOf()&&n.mode===e.datepickerMode},this);return void 0===n?"":n.clazz},t.prototype.compareDateDisabled=function(t,e){if(void 0!==t&&void 0!==e)return"day"===t.mode&&this.compareHandlerDay?this.compareHandlerDay(t.date,e):"month"===t.mode&&this.compareHandlerMonth?this.compareHandlerMonth(t.date,e):"year"===t.mode&&this.compareHandlerYear?this.compareHandlerYear(t.date,e):void 0},t.prototype.isDisabled=function(t){var e=this,n=!1;return this.dateDisabled&&this.dateDisabled.forEach(function(a){0===e.compareDateDisabled(a,t)&&(n=!0)}),this.dayDisabled&&(n=n||this.dayDisabled.indexOf(t.getDay())>-1),n||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0},t}(),ot=function(){return function(){this.locale="en",this.datepickerMode="day",this.startingDay=0,this.yearRange=20,this.minMode="day",this.maxMode="year",this.showWeeks=!0,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.onlyCurrentMonth=!1,this.monthColLimit=3,this.yearColLimit=5,this.shortcutPropagation=!1}}(),st=function(){function t(t){this.datepickerMode="day",this.showWeeks=!0,this.selectionDone=new a.EventEmitter(void 0),this.activeDateChange=new a.EventEmitter(void 0),this.onChange=Function.prototype,this.onTouched=Function.prototype,this._now=new Date,this.config=t,this.configureOptions()}return Object.defineProperty(t.prototype,"activeDate",{get:function(){return this._activeDate||this._now},set:function(t){this._activeDate=t},enumerable:!0,configurable:!0}),t.prototype.configureOptions=function(){Object.assign(this,this.config)},t.prototype.onUpdate=function(t){this.activeDate=t,this.onChange(t)},t.prototype.onSelectionDone=function(t){this.selectionDone.emit(t)},t.prototype.onActiveDateChange=function(t){this.activeDateChange.emit(t)},t.prototype.writeValue=function(t){if(0!==this._datePicker.compare(t,this._activeDate))return t&&t instanceof Date?(this.activeDate=t,void this._datePicker.select(t,!1)):void(this.activeDate=t?new Date(t):void 0)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t}(),ut=function(){function t(t){this.labels=[],this.rows=[],this.weekNumbers=[],this.datePicker=t}return Object.defineProperty(t.prototype,"isBs4",{get:function(){return!Object(p.d)()},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.datePicker.stepDay={months:1},this.datePicker.setRefreshViewHandler(function(){var e=this.activeDate.getFullYear(),n=this.activeDate.getMonth(),a=new Date(e,n,1),r=this.startingDay-a.getDay(),i=r>0?7-r:-r,o=new Date(a.getTime());i>0&&o.setDate(1-i);for(var s=t.getDates(o,42),u=[],c=0;c<42;c++){var l=this.createDateObject(s[c],this.formatDay);l.secondary=s[c].getMonth()!==n,l.uid=this.uniqueId+"-"+c,u[c]=l}t.labels=[];for(var d=0;d<7;d++)t.labels[d]={},t.labels[d].abbr=this.dateFilter(u[d].date,this.formatDayHeader),t.labels[d].full=this.dateFilter(u[d].date,"EEEE");if(t.title=this.dateFilter(this.activeDate,this.formatDayTitle),t.rows=this.split(u,7),this.showWeeks){t.weekNumbers=[];for(var f=(11-this.startingDay)%7,p=t.rows.length,h=0;h');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push(""),e.join("")}});var c=r.extend({initialize:function(t){i.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:s,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:function(){var t=this,e=t.options.labels||{},n=i.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=t.options,n=e.labels,r=e.display,o=t.ctx,s=a.global,c=i.valueOrDefault,l=c(n.fontSize,s.defaultFontSize),d=c(n.fontStyle,s.defaultFontStyle),f=c(n.fontFamily,s.defaultFontFamily),p=i.fontString(l,d,f),h=t.legendHitBoxes=[],g=t.minSize,m=t.isHorizontal();if(m?(g.width=t.maxWidth,g.height=r?10:0):(g.width=r?10:0,g.height=t.maxHeight),r)if(o.font=p,m){var b=t.lineWidths=[0],y=t.legendItems.length?l+n.padding:0;o.textAlign="left",o.textBaseline="top",i.each(t.legendItems,function(e,a){var r=u(n,l)+l/2+o.measureText(e.text).width;b[b.length-1]+r+n.padding>=t.width&&(y+=l+n.padding,b[b.length]=t.left),h[a]={left:0,top:0,width:r,height:l},b[b.length-1]+=r+n.padding}),g.height+=y}else{var v=n.padding,x=t.columnWidths=[],_=n.padding,T=0,w=0,S=l+v;i.each(t.legendItems,function(t,e){var a=u(n,l)+l/2+o.measureText(t.text).width;w+S>g.height&&(_+=T+n.padding,x.push(T),T=0,w=0),T=Math.max(T,a),w+=S,h[e]={left:0,top:0,width:a,height:l}}),_+=T,x.push(T),g.width+=_}t.width=g.width,t.height=g.height},afterFit:s,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,r=a.global,o=r.elements.line,s=t.width,c=t.lineWidths;if(e.display){var l,d=t.ctx,f=i.valueOrDefault,p=f(n.fontColor,r.defaultFontColor),h=f(n.fontSize,r.defaultFontSize),g=f(n.fontStyle,r.defaultFontStyle),m=f(n.fontFamily,r.defaultFontFamily),b=i.fontString(h,g,m);d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=p,d.fillStyle=p,d.font=b;var y=u(n,h),v=t.legendHitBoxes,x=t.isHorizontal();l=x?{x:t.left+(s-c[0])/2,y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+n.padding,line:0};var _=h+n.padding;i.each(t.legendItems,function(a,u){var p=d.measureText(a.text).width,g=y+h/2+p,m=l.x,b=l.y;x?m+g>=s&&(b=l.y+=_,l.line++,m=l.x=t.left+(s-c[l.line])/2):b+_>t.bottom&&(m=l.x=m+t.columnWidths[l.line]+n.padding,b=l.y=t.top+n.padding,l.line++),function(t,n,a){if(!(isNaN(y)||y<=0)){d.save(),d.fillStyle=f(a.fillStyle,r.defaultColor),d.lineCap=f(a.lineCap,o.borderCapStyle),d.lineDashOffset=f(a.lineDashOffset,o.borderDashOffset),d.lineJoin=f(a.lineJoin,o.borderJoinStyle),d.lineWidth=f(a.lineWidth,o.borderWidth),d.strokeStyle=f(a.strokeStyle,r.defaultColor);var s=0===f(a.lineWidth,o.borderWidth);if(d.setLineDash&&d.setLineDash(f(a.lineDash,o.borderDash)),e.labels&&e.labels.usePointStyle){var u=h*Math.SQRT2/2,c=u/Math.SQRT2;i.canvas.drawPoint(d,a.pointStyle,u,t+c,n+c)}else s||d.strokeRect(t,n,y,h),d.fillRect(t,n,y,h);d.restore()}}(m,b,a),v[u].left=m,v[u].top=b,function(t,e,n,a){var r=h/2,i=y+r+t,o=e+r;d.fillText(n.text,i,o),n.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(i,o),d.lineTo(i+a,o),d.stroke())}(m,b,a,p),x?l.x+=g+n.padding:l.y+=_})}},handleEvent:function(t){var e=this,n=e.options,a="mouseup"===t.type?"click":t.type,r=!1;if("mousemove"===a){if(!n.onHover)return}else{if("click"!==a)return;if(!n.onClick)return}var i=t.x,o=t.y;if(i>=e.left&&i<=e.right&&o>=e.top&&o<=e.bottom)for(var s=e.legendHitBoxes,u=0;u=c.left&&i<=c.left+c.width&&o>=c.top&&o<=c.top+c.height){if("click"===a){n.onClick.call(e,t.native,e.legendItems[u]),r=!0;break}if("mousemove"===a){n.onHover.call(e,t.native,e.legendItems[u]),r=!0;break}}}return r}});function l(t,e){var n=new c({ctx:t.ctx,options:e,chart:t});o.configure(t,n,e),o.addBox(t,n),t.legend=n}t.exports={id:"legend",_element:c,beforeInit:function(t){var e=t.options.legend;e&&l(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(i.mergeIf(e,a.global.legend),n?(o.configure(t,n,e),n.options=e):l(t,e)):n&&(o.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}},Ahxa:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("lUjN");e.DataTableFooterComponent=function(){function t(){this.selectedCount=0,this.page=new i.EventEmitter}return Object.defineProperty(t.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"rowCount",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"pageSize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offset",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",o.DatatableFooterDirective)],t.prototype,"footerTemplate",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"selectedCount",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"page",void 0),a([i.Component({selector:"datatable-footer",template:'\n \n \n \n
\n \n {{selectedCount?.toLocaleString()}} {{selectedMessage}} / \n \n {{rowCount?.toLocaleString()}} {{totalMessage}}\n
\n \n \n \n ',host:{class:"datatable-footer"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},AqeW:function(t,e,n){"use strict";function a(t,e){for(var n,a,r,i=[],o=[];(n=document.elementFromPoint(t,e))&&-1===i.indexOf(n)&&null!=n;)i.push(n),o.push({value:n.style.getPropertyValue("pointer-events"),priority:n.style.getPropertyPriority("pointer-events")}),n.style.setProperty("pointer-events","none","important");for(a=o.length;r=o[--a];)i[a].style.setProperty("pointer-events",r.value?r.value:"",r.priority);return i}Object.defineProperty(e,"__esModule",{value:!0}),"undefined"==typeof document||document.elementsFromPoint||(document.elementsFromPoint=a),e.elementsFromPoint=a},As3K:function(t,e,n){"use strict";var a=n("TC34");t.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,r,i;return a.isObject(t)?(e=+t.top||0,n=+t.right||0,r=+t.bottom||0,i=+t.left||0):e=n=r=i=+t||0,{top:e,right:n,bottom:r,left:i,height:e+r,width:i+n}},resolve:function(t,e,n){var r,i,o;for(r=0,i=t.length;r=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===e||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===e?t+12:t},meridiem:function(t,e,n){return t<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":t<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":t<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":t<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}()},AxiF:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("FFOo"),i=n("b7mW"),o=n("G5J1");function s(t){return function(e){return 0===t?Object(o.b)():e.lift(new u(t))}}var u=function(){function t(t){if(this.total=t,this.total<0)throw new i.a}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.total))},t}(),c=function(t){function e(e,n){var a=t.call(this,e)||this;return a.total=n,a.ring=new Array,a.count=0,a}return a.__extends(e,t),e.prototype._next=function(t){var e=this.ring,n=this.total,a=this.count++;e.length0)for(var n=this.count>=this.total?this.total:this.count,a=this.ring,r=0;rdocumentation\n on how to\n add dashboards to Grafana.\n \n Das Grafana-Dashboard ist nicht vorhanden. In der\n Dokumentation\n wird beschrieben,\n wie Grafana Dashboards hinzugef\xfcgt werden.\n \n \n \n Grafana Time Picker\n Grafana-Zeitauswahl\n \n \n Reset Settings\n Einstellungen f\xfcr Zur\xfccksetzungen\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Daten konnten nicht geladen werden.\n \n \n selected\n ausgew\xe4hlt\n X selected\n \n \n found\n gefunden\n X found\n \n \n total\n insgesamt\n X total\n \n \n Edit\n Bearbeiten\n \n \n Name\n Name\n \n \n Description\n Beschreibung\n \n \n Long description\n Lange Beschreibung\n \n \n Default\n Standard\n \n \n Daemon default\n Daemon-Standard\n \n \n Services\n Services\n \n \n Values\n Werte\n \n \n The entered value is too high! It must not be greater than \n .\n \n Der eingegebene Wert ist zu gro\xdf! Er darf nicht gr\xf6\xdfer als \n sein.\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Der eingegebene Wert ist zu klein! Er darf nicht kleiner als \n sein.\n \n \n \n Save\n Speichern\n \n \n CRUSH map viewer\n CRUSH-Zuordnungsanzeige\n \n \n Hosts List\n Liste mit Hosts\n \n \n Overall Performance\n Gesamtleistung\n \n \n No entries found\n Keine Eintr\xe4ge gefunden\n \n \n Cluster Logs\n Clusterprotokolle\n \n \n Audit Logs\n Revisionsprotokoll\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Konfiguration wird geladen...\n \n \n The configuration could not be loaded.\n Die Konfiguration konnte nicht geladen werden.\n \n \n Edit Manager module\n Manager-Modul bearbeiten\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Der eingegebene Wert ist kein g\xfcltiger UUID, z. B.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Der eingegebene Wert muss eine g\xfcltige IP-Adresse sein.\n \n \n This field is required.\n Dies ist ein Pflichtfeld.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Der eingegebene Wert ist zu gro\xdf! Er muss kleiner als \n sein oder diesem Wert entsprechen.\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Der eingegebene Wert ist zu klein! Er muss gr\xf6\xdfer als \n sein oder diesem Wert entsprechen.\n \n \n \n The entered value needs to be a number.\n Der eingegebene Wert muss eine Zahl sein.\n \n \n The entered value needs to be a number or decimal.\n Der eingegebene Wert muss eine Zahl oder Dezimalzahl sein.\n \n \n Update\n Aktualisieren\n \n \n Status\n Status\n \n \n Cluster ID\n Cluster-ID\n \n \n monmap modified\n Monmap ge\xe4ndert\n \n \n monmap epoch\n Monmap-Epoche\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n erforderliche Verbindung\n \n \n required mon\n erforderliche \xdcberwachung\n \n \n In Quorum\n In Quorum\n \n \n Not In Quorum\n Nicht in Quorum\n \n \n Cancel\n Abbrechen\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Sind Sie sicher dass Sie die ausgew\xe4hlten \n \n m\xf6chten?\n \n \n \n Yes, I am sure.\n Ja, ich bin sicher.\n \n \n Cluster-wide OSD Flags\n Clusterweite OSD-Flags\n \n \n Submit\n Absenden\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Erweitert...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD-Wiederherstellungspriorit\xe4t\n \n \n Priority\n Priorit\xe4t\n \n \n Customize priority values\n Priorit\xe4tswerte anpassen\n \n \n This field is required!\n Dies ist ein Pflichtfeld!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Der eingegebene Wert ist zu gro\xdf! Er darf nicht gr\xf6\xdfer als \n sein.\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Der eingegebene Wert ist zu klein! Er darf nicht kleiner als \n sein.\n \n \n \n Reweight OSD\n OSD neu gewichten\n \n \n The value needs to be between 0 and 1.\n Der Wert muss zwischen 0 und 1 liegen.\n \n \n Reweight\n Neu gewichten\n \n \n OSDs \n Scrub\n \n OSDs \n Scrub\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Tief } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Sie sind dabei, einen \n Scrub auf\n das OSD \n \n \n anzuwenden.\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {tief } }\n \n \n OSDs List\n OSD-Liste\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n OSD \n \n wird markiert als\n \n \n , wenn Sie den Vorgang fortsetzen.\n \n \n \n The OSD is not safe to destroy!\n Es ist nicht sicher, das OSD zu vernichten!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n OSD \n \n wird\n \n \n , wenn Sie den Vorgang fortsetzen.\n \n \n \n Details\n Details\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Wert\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Schlie\xdfen\n \n \n Delete\n L\xf6schen\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Integrit\xe4t\n \n \n Statistics\n Statistiken\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Lesen Sie die \n Dokumentation\n zum\n Konfigurieren und Aktivieren der Verwaltungsfunktion f\xfcr NFS Ganesha.\n \n \n \n Clients\n Clients\n \n \n Any client can access\n Jeder Client hat Zugriff\n \n \n Addresses\n Adressen\n \n \n Required field\n Pflichtfeld\n \n \n Must contain one or more comma-separated values\n Muss mindestens einen kommagetrennten Wert enthalten\n \n \n For example:\n Beispielsweise:\n \n \n Access Type\n Zugriffstyp\n \n \n Squash\n Squash\n \n \n Add clients\n Clients hinzuf\xfcgen\n \n \n Loading...\n Laden...\n \n \n -- No cluster available --\n -- Kein Cluster verf\xfcgbar --\n \n \n -- Select the cluster --\n -- Cluster ausw\xe4hlen --\n \n \n Add daemon\n Daemon hinzuf\xfcgen\n \n \n Storage Backend\n Speicher-Back-End\n \n \n -- No data pools available --\n -- Keine Datenpools verf\xfcgbar --\n \n \n -- Select the storage backend --\n -- Speicher-Back-End ausw\xe4hlen --\n \n \n Object Gateway User\n Objektgatewaybenutzer\n \n \n -- No users available --\n -- Keine Benutzer verf\xfcgbar --\n \n \n -- Select the object gateway user --\n -- Objektgatewaybenutzer ausw\xe4hlen --\n \n \n CephFS User ID\n CephFS-Benutzer-ID\n \n \n -- No clients available --\n -- keine Clients verf\xfcgbar --\n \n \n -- Select the cephx client --\n -- cephx-Client ausw\xe4hlen --\n \n \n CephFS Name\n CephFS-Name\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Sicherheitsbezeichnung\n \n \n Enable security label\n Sicherheitsbezeichnung aktivieren\n \n \n CephFS Path\n CephFS-Pfad\n \n \n Path need to start with a \'/\' and can be followed by a word\n Pfad muss mit einem \'/\' beginnen und kann von einem Wort gefolgt werden\n \n \n New directory will be created\n Neues Verzeichnis wird erstellt\n \n \n Path\n Pfad\n \n \n Path can only be a single \'/\' or a word\n Pfad darf nur ein einzelner \'/\' oder ein Wort sein\n \n \n New bucket will be created\n Neuer Bucket wird erstellt\n \n \n NFS Protocol\n NFS-Protokoll\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS-Tag\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternativer Zugriff f\xfcr \n NFS v3\n -Mountpunkte (d\xfcrfen keinen f\xfchrenden / enthalten)\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Clients k\xf6nnen Unterverzeichnisse m\xf6glicherweise nicht mounten (d. h. wenn das Tag = foo, kann der Client foo/baz m\xf6glicherweise nicht mounten).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Wenn unterschiedliche Tagoptionen verwendet werden, wird derselbe Pfad m\xf6glicherweise mehrfach exportiert.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Die Position dieses \n NFS v4\n -Exports\n auf dem \n Pseudo-Dateisystem\n (muss eindeutig sein).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Wenn unterschiedliche Pseudo-Optionen verwendet werden, wird derselbe Pfad m\xf6glicherweise mehrfach exportiert.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Kein Zugriffstyp verf\xfcgbar --\n \n \n -- Select the access type --\n -- Zugriffstyp ausw\xe4hlen --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Kein Squash verf\xfcgbar --\n \n \n --Select what kind of user id squashing is performed --\n -- Durchzuf\xfchrende Benutzer-ID-Squashing-Art ausw\xe4hlen --\n \n \n Transport Protocol\n Transportprotokoll\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Willkommen bei Ceph!\n The welcome message on the login page\n \n \n Username is required\n Benutzername ist erforderlich\n \n \n Password is required\n Passwort ist erforderlich\n \n \n Login\n Anmeldung\n \n \n Sorry, the user does not exist in Ceph.\n Der Benutzer ist in Ceph leider nicht enthalten.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Kehren Sie zur \n Anmeldeseite\n zur\xfcck. Sie werden vom Identit\xe4tsanbieter abgemeldet, wenn Sie versuchen, sich erneut anzumelden.\n \n \n \n Forbidden\n Verboten\n \n \n Sorry, you are not allowed to see what you were looking for.\n Leider sind Sie nicht berechtigt, den gew\xfcnschten Inhalt anzuzeigen.\n \n \n Sorry, we could not find what you were looking for\n Leider konnte der gew\xfcnschte Inhalt nicht gefunden werden.\n \n \n Remove all\n Alle l\xf6schen\n \n \n Recent Notifications\n Neue Benachrichtigungen\n \n \n There are no background tasks.\n Keine Hintergrundaufgaben vorhanden.\n \n \n Background Tasks\n Hintergrundaufgaben\n \n \n Help\n Hilfe\n \n \n Documentation\n Dokumentation\n \n \n API\n API\n \n \n About\n \xdcber\n \n \n Dashboard Settings\n Dashboard-Einstellungen\n \n \n User management\n Benutzerverwaltung\n \n \n Logged in user\n Angemeldeter Benutzer\n \n \n Signed in as\n \n \n \n \n Angemeldet als\n \n \n \n \n \n \n Sign out\n Abmelden\n \n \n Name...\n Name...\n \n \n The chosen name is already in use.\n Der ausgew\xe4hlte Name wird bereits verwendet.\n \n \n Description...\n Beschreibung...\n \n \n Permissions\n Berechtigungen\n \n \n Roles\n Rollen\n \n \n Username\n Benutzername\n \n \n Password\n Passwort\n \n \n Confirm password\n Passwort best\xe4tigen\n \n \n Password confirmation doesn\'t match the password.\n Passwortbest\xe4tigung stimmt nicht mit dem Passwort \xfcberein.\n \n \n Full name\n Vollst\xe4ndiger Name\n \n \n Email\n E-Mail-Adresse\n \n \n Invalid email.\n Ung\xfcltige E-Mail-Adresse.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Sie sind dabei, die Lese-/Aktualisierungsberechtigungen f\xfcr Benutzer von Ihrem eigenen Benutzer zu entfernen.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Wenn Sie den Vorgang fortsetzen, k\xf6nnen Sie Benutzerrollen nicht mehr hinzuf\xfcgen oder entfernen.\n \n \n Are you sure you want to continue?\n M\xf6chten Sie den Vorgang wirklich fortsetzen?\n \n \n Performance counters not available\n Leistungsindikatoren nicht verf\xfcgbar\n \n \n Attributes (OSD map)\n Attribute (OSD-Zuordnung)\n \n \n Metadata not available\n Metadaten nicht verf\xfcgbar\n \n \n Metadata\n Metadaten\n \n \n Performance counter\n Leistungsindikator\n \n \n Histogram not available: \n \n \n Histogramm nicht verf\xfcgbar: \n \n \n \n \n Writes\n Schreibvorg\xe4nge\n \n \n Reads\n Lesevorg\xe4nge\n \n \n Histogram\n Histogramm\n \n \n Performance Details\n Leistungsdetails\n \n \n Current values\n Aktuelle Werte\n \n \n Type\n Typ\n \n \n Min\n Min.\n \n \n Max\n Max.\n \n \n Flags\n Flags\n \n \n Source\n Quelle\n \n \n Level\n Ebene\n \n \n Can be updated at runtime (editable)\n Kann zur Laufzeit aktualisiert werden (bearbeitbar)\n \n \n Tags\n Tags\n \n \n Enum values\n Auflistungswerte\n \n \n See also\n Siehe auch\n \n \n Cluster Status\n Clusterstatus\n \n \n Manager Daemons\n Manager-Daemons\n \n \n Object Gateways\n Objektgateways\n \n \n Metadata Servers\n Metadatenserver\n \n \n iSCSI Gateways\n iSCSI-Gateways\n \n \n Client IOPS\n Client-IOPS\n \n \n Client Throughput\n Clientdurchsatz\n \n \n Client Read/Write\n Client-Lese-/Schreibvorg\xe4nge\n \n \n Recovery Throughput\n Wiederherstellungsdurchsatz\n \n \n Scrub\n Scrub\n \n \n Performance\n Leistung\n \n \n Raw Capacity\n Rohkapazit\xe4t\n \n \n Objects\n Objekte\n \n \n PGs per OSD\n Platzierungsgruppen pro OSD\n \n \n PG Status\n Platzierungsgruppenstatus\n \n \n Capacity\n Kapazit\xe4t\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Weitere Details finden Sie in den \n Protokollen\n .\n \n \n \n Ranks\n R\xe4nge\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clients: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Image in Papierkorb verschieben\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Um \n \n /\n \n in den Papierkorb zu verschieben,\n klicken Sie auf \n Image verschieben\n . Optional k\xf6nnen Sie ein Ablaufdatum ausw\xe4hlen.\n \n \n \n Protection expires at\n Schutz l\xe4uft ab am\n \n \n NOT PROTECTED\n NICHT GESCH\xdcTZT\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Falsches Datumsformat. Verwenden Sie "TT.MM.JJJJ HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Schutz ist bereits abgelaufen. W\xe4hlen Sie ein k\xfcnftiges Datum aus oder lassen Sie es leer.\n \n \n Move Image\n Image verschieben\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \xdcbersicht\n \n \n Targets\n Ziele\n \n \n Discovery Authentication\n Ermittlungsauthentifizierung\n \n \n User\n Benutzer\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Benutzernamen m\xfcssen zwischen 8 und 64 Zeichen lang sein und\n d\xfcrfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Gemeinsamer Benutzer\n \n \n Mutual Password\n Gemeinsames Passwort\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Lesen Sie die\n Dokumentation\n zum\n Konfigurieren und Aktivieren der Verwaltungsfunktion f\xfcr iSCSI-Ziele.\n \n \n \n Available information:\n Verf\xfcgbare Informationen:\n \n \n iSCSI Targets not available\n iSCSI-Ziele nicht verf\xfcgbar\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Nur f\xfcr RBD-Images verf\xfcgbar, bei denen \n fast-diff\n aktiviert ist\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Datenpool\n \n \n Created\n Erstellt\n \n \n Size\n Gr\xf6\xdfe\n \n \n Object size\n Objektgr\xf6\xdfe\n \n \n Features\n Funktionen\n \n \n Provisioned\n Bereitgestellt\n \n \n N/A\n n. v.\n \n \n Total provisioned\n Bereitgestellt gesamt\n \n \n Striping unit\n Striping-Einheit\n \n \n Striping count\n Striping-Anzahl\n \n \n Parent\n \xdcbergeordnet\n \n \n Block name prefix\n Pr\xe4fix f\xfcr Blockname\n \n \n Order\n Reihenfolge\n \n \n Snapshots\n Snapshots\n \n \n Image\n Image\n \n \n This setting overrides the global value\n Diese Einstellung \xfcberschreibt den globalen Wert\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Dies ist der globale Wert. Kein Wert f\xfcr diese Option wurde f\xfcr dieses Image festgelegt.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' und \'@\' sind nicht zul\xe4ssig.\n \n \n -- No rbd pools available --\n -- Keine rbd-Pools verf\xfcgbar --\n \n \n -- Select a pool --\n -- Pool ausw\xe4hlen --\n \n \n Use a dedicated data pool\n Dedizierten Datenpool verwenden\n \n \n Data pool\n Datenpool\n \n \n Dedicated pool that stores the object-data of the RBD.\n Dedizierter Pool zur Speicherung von RBD-Objektdaten.\n \n \n e.g., 10GiB\n z. B. 10GiB\n \n \n You have to increase the size.\n Sie m\xfcssen die Gr\xf6\xdfe erh\xf6hen.\n \n \n Advanced\n Erweitert\n \n \n Striping\n Striping\n \n \n Stripe unit\n Stripe-Einheit\n \n \n -- Select stripe unit --\n -- Stripe-Einheit ausw\xe4hlen --\n \n \n This field is required because stripe count is defined!\n Dies ist ein Pflichtfeld, da eine Stripe-Anzahl definiert wurde!\n \n \n Stripe unit is greater than object size.\n Die Stripe-Einheit ist gr\xf6\xdfer als die Objektgr\xf6\xdfe.\n \n \n Stripe count\n Stripe-Anzahl\n \n \n This field is required because stripe unit is defined!\n Dies ist ein Pflichtfeld, da eine Stripe-Einheit definiert wurde!\n \n \n Stripe count must be greater than 0.\n Die Stripe-Anzahl muss gr\xf6\xdfer als 0 sein.\n \n \n \n RBD Snapshot\n \n \n RBD-Snapshot\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Umbenennen} other {Erstellen} }\n \n \n \n Snapshot\n \n \n Snapshot\n \n \n \n PROTECTED\n GESCH\xdcTZT\n \n \n UNPROTECTED\n NICHT GESCH\xdcTZT\n \n \n You are about to rollback\n Sie sind dabei, ein Rollback durchzuf\xfchren\n \n \n Purge Trash\n Papierkorb bereinigen\n \n \n To purge, select one or All images and click\n Zum Bereinigen ein oder alle Images ausw\xe4hlen und klicken\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Poolname...\n \n \n All\n Alle\n \n \n Restore Image\n Image wiederherstellen\n \n \n To restore\n Zum Wiederherstellen\n \n \n type the image\'s new name and click\n Neuen Namen des Images eingeben und klicken\n \n \n New Name\n Neuer Name\n \n \n Expired at\n Abgelaufen am\n \n \n Protected until\n Gesch\xfctzt bis\n \n \n This image is protected until \n .\n \n Dieses Image ist gesch\xfctzt bis \n .\n \n \n \n Trash\n Papierkorb\n \n \n iSCSI Topology\n iSCSI-Topologie\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Eine \xc4nderung dieser Parameter von ihren Standardwerten ist in der Regel nicht erforderlich.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Einstellungen\n \n \n Backstore\n Backstore\n \n \n Confirm\n Best\xe4tigen\n \n \n Advanced Settings\n Erweiterte Einstellungen\n \n \n Target IQN\n Ziel-IQN\n \n \n IQN has wrong pattern.\n IQN hat ein fehlerhaftes Muster.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Eine IQN hat die folgende Notation \'iqn.$jahr-$monat.$umkehradresse:$definierterName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Zum Beispiel: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Weitere Informationen\n \n \n This target has modified advanced settings.\n Erweiterte Einstellungen bei diesem Ziel wurden ge\xe4ndert.\n \n \n Portals\n Portale\n \n \n At least \n gateways are required.\n \n Es sind mindestens \n Gateways erforderlich.\n \n \n \n Add portal\n Portal hinzuf\xfcgen\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Einstellungen bei diesem Image wurden ge\xe4ndert.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Image hinzuf\xfcgen\n \n \n ACL authentication\n ACL-Authentifizierung\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Initiatoren\n \n \n Initiator\n Initiator\n \n \n Client IQN\n Client-IQN\n \n \n Initiator IQN needs to be unique.\n Initiator-IQN muss eindeutig sein.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Benutzernamen m\xfcssen zwischen 8 und 64 Zeichen lang sein und\n d\xfcrfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Der Initiator geh\xf6rt zu einer Gruppe. Images werden in der Gruppe konfiguriert.\n \n \n No items added.\n Keine Elemente hinzugef\xfcgt.\n \n \n Add initiator\n Initiator hinzuf\xfcgen\n \n \n Groups\n Gruppen\n \n \n Group\n Gruppe\n \n \n Add group\n Gruppe hinzuf\xfcgen\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD-Konfiguration\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Entfernen Sie den lokalen Konfigurationswert. Stattdessen wird der \xfcbergeordnete Konfigurationswert \xfcbernommen und verwendet.\n \n \n The mininum value is 0\n Der Mindestwert lautet 0\n \n \n Issues\n Probleme\n \n \n Syncing\n Wird synchronisiert\n \n \n Ready\n Fertig\n \n \n Edit pool mirror mode\n Spiegelungsmodus f\xfcr Pool bearbeiten\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n W\xe4hlen Sie zum Bearbeiten des Spiegelungsmodus f\xfcr den Pool\xa0\n \n \n einen neuen Modus aus der Liste aus und klicken Sie auf\xa0\n Aktualisieren\n .\n \n \n \n Mode\n Modus\n \n \n Peer clusters must be removed prior to disabling mirror.\n Vor dem Deaktivieren der Spiegelung m\xfcssen Peer-Cluster entfernt werden.\n \n \n \n \n pool mirror peer\n \n \n \n Peer f\xfcr Poolspiegelung\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Bearbeiten} other {Hinzuf\xfcgen} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n Der Pool\n Spiegeln Sie Peer-Attribute f\xfcr Pool \n \n \n und klicken Sie auf \n Absenden\n .\n \n \n \n Cluster Name\n Clustername\n \n \n The cluster name is not valid.\n Der Clustername ist ung\xfcltig.\n \n \n CephX ID\n CephX-ID\n \n \n CephX ID...\n CephX-ID...\n \n \n The CephX ID is not valid.\n Die CephX ID ist ung\xfcltig.\n \n \n Monitor Addresses\n Adressen der Monitore\n \n \n Comma-delimited addresses...\n Kommagetrennte Adressen...\n \n \n The monitory address is not valid.\n Die Anrede ist ung\xfcltig.\n \n \n CephX Key\n CephX-Schl\xfcssel\n \n \n Base64-encoded key...\n Base64-codierter Schl\xfcssel...\n \n \n CephX key must be base64 encoded.\n CephX-Schl\xfcssel muss base64-codiert sein.\n \n \n Pools List\n Pool-Liste\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Der Name darf nur alphanumerische Zeichen, Bindestriche und Unterstriche enthalten.\n \n \n The chosen erasure code profile name is already in use.\n Der ausgew\xe4hlte L\xf6schcode-Profilname wird bereits verwendet.\n \n \n Plugin\n Plugin\n \n \n Data chunks (k)\n Datenbl\xf6cke (k)\n \n \n Must be equal to or greater than 2.\n Muss gr\xf6\xdfer oder gleich 2 sein.\n \n \n Coding chunks (m)\n Datenbl\xf6cke f\xfcr die Codierung (m)\n \n \n Must be equal to or greater than 1.\n Muss gr\xf6\xdfer oder gleich 1 sein.\n \n \n Durability estimator (c)\n Dauerhaftigkeitssch\xe4tzung (c)\n \n \n Locality (l)\n Standort (l)\n \n \n Crush failure domain\n Crush-Ausfalldom\xe4ne\n \n \n Crush Locality\n Crush-Standort\n \n \n None\n Keine\n \n \n Technique\n Technik\n \n \n Packetsize\n Paketgr\xf6\xdfe\n \n \n Crush root\n Crush-Stamm\n \n \n Crush device class\n Crush-Ger\xe4teklasse\n \n \n any\n beliebig\n \n \n Directory\n Verzeichnis\n \n \n The chosen Ceph pool name is already in use.\n Der ausgew\xe4hlte Poolname wird bereits verwendet.\n \n \n Pool type\n Pooltyp\n \n \n -- Select a pool type --\n -- Pooltyp ausw\xe4hlen --\n \n \n Placement groups\n Platzierungsgruppen\n \n \n At least one placement group is needed!\n Es wird mindestens eine Platzierungsgruppe ben\xf6tigt.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Ihr Cluster kann nicht so viele Platzierungsgruppen verarbeiten. Berechnen Sie die ben\xf6tigte Anzahl an Platzierungsgruppen.\n \n \n Calculation help\n Hilfe zur Berechnung\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Die aktuellen Einstellungen f\xfcr die Platzierungsgruppen wurden f\xfcr Sie berechnet.\n Stellen Sie vor dem Senden sicher, dass die Werte Ihren Anforderungen entsprechen.\n \n \n Crush ruleset\n Crush-Regelsatz\n \n \n -- Select a crush rule --\n -- Crush-Regel ausw\xe4hlen --\n \n \n Crush rule\n Crush-Regel\n \n \n Crush steps\n Crush-Schritte\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Die Regel kann im aktuellen Cluster nicht verwendet werden,\n da es zu wenige OSDs enth\xe4lt, um das von dieser Regel geforderte OSD-Minimum zu erf\xfcllen.\n \n \n Replicated size\n Reproduzierte Gr\xf6\xdfe\n \n \n Minimum: \n \n \n Minimum: \n \n \n \n \n Maximum: \n \n \n Maximum: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Die angegebene Gr\xf6\xdfe liegt au\xdferhalb des Bereichs. G\xfcltige Werte liegen zwischen\n und \n .\n \n \n \n Erasure code profile\n L\xf6schcode-Profil\n \n \n -- No erasure code profile available --\n -- Kein L\xf6schcode-Profil verf\xfcgbar --\n \n \n -- Select an erasure code profile --\n -- L\xf6schcode-Profil ausw\xe4hlen --\n \n \n EC Overwrites\n EC-\xdcberschreibungen\n \n \n Applications\n Anwendungen\n \n \n Compression\n Komprimierung\n \n \n Algorithm\n Algorithmus\n \n \n -- No erasure compression algorithm available --\n -- Kein L\xf6schkomprimierungsalgorithmus verf\xfcgbar --\n \n \n Minimum blob size\n Minimale Blobgr\xf6\xdfe\n \n \n e.g., 128KiB\n z. B. 128KiB\n \n \n Value should be greater than 0\n Wert sollte gr\xf6\xdfer als 0 sein\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Maximale Blobgr\xf6\xdfe\n \n \n e.g., 512KiB\n z. B. 512KiB\n \n \n Value should be greater than the minimum blob size\n Wert sollte gr\xf6\xdfer als die minimale Blobgr\xf6\xdfe sein\n \n \n Ratio\n Verh\xe4ltnis\n \n \n Compression ratio\n Komprimierungsverh\xe4ltnis\n \n \n Value should be between 0.0 and 1.0\n Wert sollte zwischen 0,0 und 1,0 liegen\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Es ist nicht m\xf6glich, einen RBD-Pool mit \'/\' im Namen zu erstellen.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \xc4ndern Sie den Namen oder entfernen Sie \'rbd\' aus der Anwendungsliste.\n \n \n Cache Tiers Details\n Details zu den Cache-Ebenen\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Lesen Sie die \n Dokumentation\n zum\n Konfigurieren und Aktivieren der Verwaltungsfunktion f\xfcr das Objektgateway.\n \n \n \n Daemons List\n Liste der Daemons\n \n \n Performance Counters\n Leistungsindikatoren\n \n \n Loading bucket data...\n Bucket-Daten werden geladen...\n \n \n The bucket data could not be loaded.\n Die Bucket-Daten konnten nicht geladen werden.\n \n \n Id\n ID\n \n \n The value is not valid.\n Der Wert ist ung\xfcltig.\n \n \n Owner\n Inhaber\n \n \n -- Select a user --\n -- Benutzer ausw\xe4hlen --\n \n \n ID\n ID\n \n \n Index type\n Indextyp\n \n \n Placement rule\n Platzierungsregel\n \n \n Marker\n Marker\n \n \n Maximum marker\n Maximum f\xfcr Marker\n \n \n Version\n Version\n \n \n Master version\n Masterversion\n \n \n Modification time\n \xc4nderungszeit\n \n \n Zonegroup\n Zonengruppe\n \n \n Bucket quota\n Bucket-Quote\n \n \n Enabled\n Aktiviert\n \n \n Maximum size\n Maximale Gr\xf6\xdfe\n \n \n Unlimited\n Unbegrenzt\n \n \n Maximum objects\n Maximale Objekte\n \n \n -- Select a username --\n -- Benutzername ausw\xe4hlen --\n \n \n Auto-generate key\n Schl\xfcssel automatisch generieren\n \n \n Access key\n Zugriffsschl\xfcssel\n \n \n Secret key\n Geheimer Schl\xfcssel\n \n \n Email address\n E-Mail-Adresse\n \n \n Suspended\n Angehalten\n \n \n System\n System\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {Nein} 1 {Ja} }\n \n \n Maximum buckets\n Maximale Buckets\n \n \n Subusers\n Unterbenutzer\n \n \n Capabilities\n Bef\xe4higungen\n \n \n User quota\n Benutzerquote\n \n \n Show\n Anzeigen\n \n \n Keys\n Schl\xfcssel\n \n \n -- Select a type --\n -- Typ ausw\xe4hlen --\n \n \n Permission\n Berechtigung\n \n \n -- Select a permission --\n -- Berechtigung ausw\xe4hlen --\n \n \n Subuser\n Unterbenutzer\n \n \n The chosen subuser ID is already in use.\n Die ausgew\xe4hlte Unterbenutzer-ID wird bereits verwendet.\n \n \n read, write\n lesen, schreiben\n \n \n full\n voll\n \n \n Swift key\n Swift-Schl\xfcssel\n \n \n Auto-generate secret\n Geheimnis automatisch generieren\n \n \n Loading user data...\n Benutzerdaten werden geladen...\n \n \n The user data could not be loaded.\n Die Benutzerdaten konnten nicht geladen werden.\n \n \n The chosen user ID is already in use.\n Die ausgew\xe4hlte Benutzer-ID wird bereits verwendet.\n \n \n This is not a valid email address.\n Dies ist keine g\xfcltige E-Mail-Adresse.\n \n \n The chosen email address is already in use.\n Die ausgew\xe4hlte E-Mail-Adresse wird bereits verwendet.\n \n \n Max. buckets\n Max. Buckets\n \n \n The entered value must be >= 0.\n Der eingegebene Wert muss >=0 sein.\n \n \n S3 key\n S3-Schl\xfcssel\n \n \n There are no subusers.\n Keine Unterbenutzer vorhanden.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Keine Schl\xfcssel vorhanden.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Keine Bef\xe4higungen vorhanden.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Unbegrenzte Gr\xf6\xdfe\n \n \n Max. size\n Max. Gr\xf6\xdfe\n \n \n Unlimited objects\n Unbegrenzte Objekte\n \n \n Max. objects\n Max. Objekte\n \n \n Current\n Aktuell\n \n \n Updated discovery authentication\n Ermittlungsauthentifizierung aktualisiert\n \n \n There are no portals available.\n Keine Portale verf\xfcgbar.\n \n \n There are no images available.\n Keine Images verf\xfcgbar.\n \n \n There are no images available. Please make sure you add an image to the target.\n Keine Images verf\xfcgbar. F\xfcgen Sie dem Ziel ein Image hinzu.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Keine Initiatoren verf\xfcgen. F\xfcgen Sie dem Ziel einen Initiator hinzu.\n \n \n target\n target\n \n \n Target\n Ziel\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Zustand\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bytes f\xfcr Lesevorgang\n \n \n Write Bytes\n Bytes f\xfcr Schreibvorgang\n \n \n Read Ops\n Lesevorg\xe4nge\n \n \n Write Ops\n Schreibvorg\xe4nge\n \n \n A/O Since\n A/O seit\n \n \n Instance\n Instanz\n \n \n Hostname\n Hostname\n \n \n Issue\n Problem\n \n \n Progress\n Fortschritt\n \n \n Disabled\n Deaktiviert\n \n \n Edit Mode\n Bearbeitungsmodus\n \n \n Add Peer\n Peer hinzuf\xfcgen\n \n \n Edit Peer\n Peer bearbeiten\n \n \n Delete Peer\n Peer l\xf6schen\n \n \n Leader\n Leader\n \n \n # Local\n # lokal\n \n \n # Remote\n # remote\n \n \n mirror peer\n Peer spiegeln\n \n \n Key\n Schl\xfcssel\n \n \n RBD\n RBD\n \n \n Deep flatten\n Umfassende Vereinfachung\n \n \n Layering\n Schichtung\n \n \n Exclusive lock\n Exklusive Sperre\n \n \n Object map (requires exclusive-lock)\n Objektzuordnung (erfordert exklusive Sperre)\n \n \n Journaling (requires exclusive-lock)\n Journaling (erfordert exklusive Sperre)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Rollback f\xfcr RBD-Snapshot\n \n \n Rollback\n Rollback\n \n \n RBD snapshot\n RBD-Snapshot\n \n \n Deleted At\n Gel\xf6scht am\n \n \n id\n ID\n \n \n type\n Typ\n \n \n state\n Zustand\n \n \n version\n Version\n \n \n Host\n Host\n \n \n root\n Stamm\n \n \n Rank\n Rang\n \n \n Daemon\n Daemon\n \n \n Activity\n Aktivit\xe4t\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodes\n \n \n Usage\n Nutzung\n \n \n Standby daemons\n Standby-Daemons\n \n \n The value can be updated at runtime.\n Der Wert kann zur Laufzeit aktualisiert werden.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Daemons/Clients rufen diesen Wert nicht aus der\n Datenbank \'monitor config\' ab. Es ist nicht zul\xe4ssig, diese Option \xfcber \'ceph config\n set ...\' festzulegen. Diese Option sollte \xfcber \'ceph.conf\' oder an der\n Befehlszeile konfiguriert werden.\n \n \n Option takes effect only during daemon startup.\n Die Option wird nur w\xe4hrend des Daemon-Starts wirksam.\n \n \n Option only affects cluster creation.\n Die Option wirkt sich nur auf die Cluster-Erstellung aus.\n \n \n Option only affects daemon creation.\n Die Option wirkt sich nur auf die Daemon-Erstellung aus.\n \n \n Updated config option \n \n \n Aktualisierte config-Option \n \n \n \n \n Service\n Service\n \n \n Current value\n Aktueller Wert\n \n \n Editable\n Bearbeitbar\n \n \n Updated options for module "\n ".\n \n Aktualisierte Optionen f\xfcr Modul &quot;\n &quot;.\n \n \n \n Enable\n Aktivieren\n \n \n Disable\n Deaktivieren\n \n \n Reconnecting, please wait ...\n Verbindung wird erneut hergestellt, bitte warten...\n \n \n Public Address\n \xd6ffentliche Adresse\n \n \n Open Sessions\n Offene Sitzungen\n \n \n No In\n Kein In-Vorgang\n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSDs, die zuvor als \'out\' markiert wurden, werden beim Start nicht wieder markiert\n \n \n No Out\n Kein Out-Vorgang\n \n \n OSDs will not automatically be marked out after the configured interval\n OSDs werden nach dem konfigurierten Intervall nicht automatisch als \'out\' markiert\n \n \n No Up\n Kein Up-Vorgang\n \n \n OSDs are not allowed to start\n OSDs d\xfcrfen nicht gestartet werden\n \n \n No Down\n Kein Down-Vorgang\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n OSD-Fehlerberichte werden ignoriert, sodass die Monitore die OSDs nicht als ausgefallen markieren\n \n \n Pause\n Pause\n \n \n Pauses reads and writes\n H\xe4lt Lese- und Schreibvorg\xe4nge an\n \n \n No Scrub\n Kein Scrub\n \n \n Scrubbing is disabled\n Scrubbing ist deaktiviert\n \n \n No Deep Scrub\n Kein umfassender Scrub\n \n \n Deep Scrubbing is disabled\n Umfassendes Scrubbing ist deaktiviert\n \n \n No Backfill\n Kein Abgleich\n \n \n Backfilling of PGs is suspended\n Abgleich der Platzierungsgruppen ist ausgesetzt\n \n \n No Recover\n Keine Wiederherstellung\n \n \n Recovery of PGs is suspended\n Wiederherstellung der Platzierungsgruppen ist ausgesetzt\n \n \n Bitwise Sort\n Bitweise Sortierung\n \n \n Use bitwise sort\n Bitweise Sortierung verwenden\n \n \n Purged Snapdirs\n Bereinigte Snapdirs\n \n \n OSDs have converted snapsets\n OSDs besitzen konvertierte Snapsets\n \n \n Recovery Deletes\n L\xf6schvorg\xe4nge bei Wiederherstellungen\n \n \n Deletes performed during recovery instead of peering\n Bei der Wiederherstellung anstelle des Peerings durchgef\xfchrte L\xf6schvorg\xe4nge\n \n \n PG Log Hard Limit\n Hardlimit f\xfcr Platzierungsgruppen-Protokoll\n \n \n Puts a hard limit on pg log length\n Legt ein Hardlimit f\xfcr die Platzierungsgruppen-Protokolll\xe4nge fest\n \n \n Updated OSD Flags\n Aktualisierte OSD-Flags\n \n \n out\n aus\n \n \n in\n ein\n \n \n down\n ausgefallen\n \n \n Mark\n Markieren\n \n \n OSD lost\n OSD verloren\n \n \n marked lost\n markierter Verlust\n \n \n Purge\n Bereinigen\n \n \n OSD\n OSD\n \n \n purged\n bereinigt\n \n \n destroy\n vernichten\n \n \n destroyed\n vernichtet\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Platzierungsgruppen\n \n \n Read bytes\n Bytes f\xfcr Lesevorgang\n \n \n Writes bytes\n Bytes f\xfcr Schreibvorgang\n \n \n Read ops\n Lesevorg\xe4nge\n \n \n Write ops\n Schreibvorg\xe4nge\n \n \n Mark OSD \n \n \n OSD \n markieren\n \n \n \n Mark \n \n \n \n markieren\n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Max. Abgleiche\n \n \n Recovery Max Active\n Wiederherstellung, max. aktiv\n \n \n Recovery Max Single Start\n Wiederherstellung, max. - einzelner Start\n \n \n Recovery Sleep\n Wiederherstellung - Inaktivit\xe4t\n \n \n Custom\n Benutzerdefiniert\n \n \n Updated OSD recovery speed priority "\n "\n \n Aktualisierte OSD-Wiederherstellungsgeschwindigkeits-Priorit\xe4t &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n wurde im folgenden OSD initialisiert: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Auftrag\n \n \n Severity\n Schweregrad\n \n \n Started\n Gestartet\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Aktualisiert\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Verwendet\n \n \n Avail.\n Verf.\n \n \n Clean\n Bereinigen\n \n \n Working\n In Bearbeitung\n \n \n Warning\n Warnung\n \n \n Unknown\n Unbekannt\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n aktiv\n \n \n no filesystems\n keine Dateisysteme\n \n \n active\n aktiv\n \n \n standby\n Standby\n \n \n n/a\n n. v.\n \n \n active daemon\n aktiver Daemon\n \n \n quorum\n Quorum\n \n \n The NFS Ganesha service is not configured.\n Der NFS Ganesha-Dienst ist nicht konfiguriert.\n \n \n Transport\n Transport\n \n \n CephFS User\n CephFS-Benutzer\n \n \n CephFS Filesystem\n CephFS-Dateisystem\n \n \n (inherited from global config)\n (aus globaler Konfiguration \xfcbernommen)\n \n \n inherited from global config\n aus globaler Konfiguration \xfcbernommen\n \n \n -- Select what kind of user id squashing is performed --\n -- Durchzuf\xfchrende Benutzer-ID-Squashing-Art ausw\xe4hlen --\n \n \n There are no daemons available.\n Keine Daemons verf\xfcgbar.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Cache-Modus\n \n \n Min Evict Age\n Min. Alter f\xfcr Vertreibung\n \n \n Min Flush Age\n Min. Alter f\xfcr Leerung\n \n \n Target Max Bytes\n Max. Bytes f\xfcr Ziel\n \n \n Target Max Objects\n Max. Objekte f\xfcr Ziel\n \n \n No applications added\n Keine Anwendungen hinzugef\xfcgt\n \n \n Applications limit reached\n Anwendungslimit erreicht\n \n \n A pool can only have up to four applications definitions.\n Ein Pool kann nur bis zu vier Anwendungsdefinitionen aufweisen.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Zul\xe4ssige Zeichen \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Maximale L\xe4nge betr\xe4gt 128 Zeichen\n \n \n Filter or add applications\n Anwendungen filtern oder hinzuf\xfcgen\n \n \n Add application\n Anwendung hinzuf\xfcgen\n \n \n pool\n pool\n \n \n erasure code profile\n L\xf6schcode-Profil\n \n \n Replica Size\n Gr\xf6\xdfe des Replikats\n \n \n Last Change\n Letzte \xc4nderung\n \n \n Erasure Coded Profile\n Profil mit L\xf6schcodierung\n \n \n Crush Ruleset\n Crush-Regelsatz\n \n \n Write bytes\n Bytes f\xfcr Schreibvorgang\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n Bucket\n \n \n Updated Object Gateway bucket "\n "\n \n Aktualisierter Objektgateway-Bucket &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n Erstellter Objektgateway-Bucket &quot;\n &quot;\n \n \n \n buckets\n Buckets\n \n \n capability\n capability\n \n \n user\n Benutzer\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Aktualisierter Objektgatewaybenutzer &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n Erstellter Objektgatewaybenutzer &quot;\n &quot;\n \n \n \n users\n Benutzer\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Bereich\n \n \n Read\n Lesen\n \n \n Create\n Erstellen\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Erstellte Rolle \'\n \'\n \n \n \n Updated role \'\n \'\n \n Aktualisierte Rolle \'\n \'\n \n \n \n System Role\n Systemrolle\n \n \n Deleted role \'\n \'\n \n Gel\xf6schte Rolle \'\n \'\n \n \n \n Created user "\n "\n \n Erstellter Benutzer &quot;\n &quot;\n \n \n \n Update user\n Benutzer aktualisieren\n \n \n Continue\n Fortfahren\n \n \n You were automatically logged out because your roles have been changed.\n Sie wurden automatisch abgemeldet, da Ihre Rollen ge\xe4ndert wurden.\n \n \n Updated user "\n "\n \n Aktualisierter Benutzer &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Gel\xf6schter Benutzer &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Fehler beim L\xf6schen des Benutzers &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Sie sind derzeit angemeldet als &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Jedes Objekt wird in Datenbl\xf6cke aufgeteilt und jeweils auf einem anderen OSD gespeichert.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Berechnen Sie Codierungsdatenbl\xf6cke f\xfcr jedes Objekt und speichern Sie sie auf unterschiedlichen OSDs.\n Die Anzahl der Codierungsdatenbl\xf6cke entspricht auch der Anzahl der OSDs, die ausfallen k\xf6nnen, ohne dass Daten verloren gehen.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Das jerasure-Modul ist das allgemeinste und flexibelste Modul\n und fungiert auch als der Standard f\xfcr Ceph-Pools mit L\xf6schcodierung.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Die flexiblere Technik ist \'reed_sol_van :\', wobei es ausreicht, k\n und m festzulegen. Die Technik \'cauchy_good\' kann schneller sein. Sie m\xfcssen jedoch die Paketgr\xf6\xdfe sorgf\xe4ltig\n ausw\xe4hlen. S\xe4mtliche \'reed_sol_r6_op\'-, \'liberation\'-, \'blaum_roth\'- und \'liber8tion\'-Vorg\xe4nge sind dahingehend RAID6-Entsprechungen,\n dass sie nur mit \'m=2\' konfiguriert werden k\xf6nnen.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n Die Codierung wird jeweils f\xfcr Pakete auf Bytes-Gr\xf6\xdfe vorgenommen.\n Die Auswahl der richtigen Paketgr\xf6\xdfe ist schwierig.\n In der Jerasure-Dokumentation sind ausf\xfchrliche Informationen zu diesem Thema enthalten.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Bei Verwendung des Jerasure-Moduls, wenn ein Objekt mit L\xf6schcodierung auf mehreren OSDs gespeichert ist,\n m\xfcssen alle anderen OSDs gelesen werden, um die verloren gegangenen Daten eines OSDs wiederherzustellen.\n Wenn jerasure beispielsweise mit \'k=8\' und \'m=4\' konfiguriert ist,\n m\xfcssen bei Verlust eines OSDs zum Reparieren die elf anderen gelesen werden.\n\n Das lrc-L\xf6schcode-Modul erstellt lokale Parit\xe4tsdatenbl\xf6cke, um die Wiederherstellung mit weniger OSDs auszuf\xfchren.\n Wenn lrc beispielsweise mit \'k=8\', \'m=4\' und \'l=4\' konfiguriert ist, wird ein zus\xe4tzlicher Parit\xe4tsdatenblock f\xfcr jeweils vier OSDs erstellt.\n Geht ein einzelnes OSD verloren, kann es mit nur vier OSDs anstelle\n von elf wiederhergestellt werden.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Gruppieren Sie die Codierungs- und Datenbl\xf6cke in S\xe4tze entsprechend dem Speicherort.\n Beispielsweise werden f\xfcr \'k=4\' und \'m=2\', wenn der Speicherort \'3\' entspricht, zwei Dreiergruppen erstellt.\n Jeder Satz kann wiederhergestellt werden, ohne dass Datenbl\xf6cke aus einem anderen Satz gelesen werden.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Der Typ des Crush-Buckets, in dem jeder durch l definierte Satz von Datenbl\xf6cken gespeichert wird.\n Wenn er beispielsweise auf \'rack\' festgelegt ist, wird jede Gruppe an l-Datenbl\xf6cken in einem anderen Rack platziert.\n Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise f\xfcr einen Schritt zum Ausw\xe4hlen des Racks.\n Wenn er nicht festgelegt ist, wird keine solche Gruppierung vorgenommen.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Das isa-Modul kapselt die ISA-Bibliothek und wird nur auf Intel-Prozessoren ausgef\xfchrt.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Das ISA-Modul wird in zwei Reed Solomon-Formularen bereitgestellt.\n Wenn \'reed_sol_van\' festgelegt ist, entspricht dies Vandermonde. Ist \'cauchy\' festgelegt, entspricht dies \'Cauchy\'.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Das shec-Modul kapselt die SHEC-Mehrfachbibliothek.\n Dadurch kann ceph Daten effizienter wiederherstellen als Reed Solomon-Codes.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Die Anzahl der Parit\xe4tsdatenbl\xf6cke, von denen jeder jeden Datenblock in seinem Berechnungsbereich enth\xe4lt.\n Die Anzahl wird als eine Dauerhaftigkeitssch\xe4tzung verwendet. Wenn beispielsweise \'c=2\' vorliegt,\n k\xf6nnen 2 OSDs ausfallen, ohne dass Daten verloren gehen.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Der Name des f\xfcr den ersten Schritt der CRUSH-Regel verwendeten Crush-Buckets.\n Beispielsweise \'step take default\'.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Stellen Sie sicher, dass sich keine zwei Datenbl\xf6cke in einem Bucket mit derselben Ausfalldom\xe4ne befinden.\n Wenn die Ausfalldom\xe4ne beispielsweise als Host fungiert, werden keine zwei Datenbl\xf6cke auf demselben Host gespeichert.\n Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise \'step chooseleaf host\'.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Schr\xe4nken Sie mithilfe der Klassennamen f\xfcr Crush-Ger\xe4te in der CRUSH-Zuordnung die Platzierung\n auf Ger\xe4te einer bestimmten Klasse (z. B. SSD oder HDD) ein.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Legen Sie den Verzeichnisnamen fest, \xfcber den das L\xf6schcode-Modul geladen wird.\n \n \n Allows all operations\n L\xe4sst alle Vorg\xe4nge zu\n \n \n Allows only operations that do not modify the server\n L\xe4sst nur Vorg\xe4nge zu, die den Server nicht \xe4ndern\n \n \n Does not allow read or write operations, but allows any other operation\n L\xe4sst weder Lese- noch Schreibvorg\xe4nge zu, jedoch alle anderen Vorg\xe4nge\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n L\xe4sst Lese-/Schreibvorg\xe4nge und andere Vorg\xe4nge nicht zu, die Dateiattribute oder Verzeichnisinhalte \xe4ndern\n \n \n Allows no access at all\n L\xe4sst \xfcberhaupt keinen Zugriff zu\n \n \n -- Select the priority --\n -- Priorit\xe4t ausw\xe4hlen --\n \n \n Low\n Niedrig\n \n \n High\n Hoch\n \n \n Last 5 minutes\n Letzte 5 Minuten\n \n \n Last 15 minutes\n Letzte 15 Minuten\n \n \n Last 30 minutes\n Letzte 30 Minuten\n \n \n Last 1 hour (Default)\n Letzte Stunde (Standard)\n \n \n Last 3 hours\n Letzte 3 Stunden\n \n \n Last 6 hours\n Letzte 6 Stunden\n \n \n Last 12 hours\n Letzte 12 Stunden\n \n \n Last 24 hours\n Letzte 24 Stunden\n \n \n Yesterday\n Gestern\n \n \n Today\n Heute\n \n \n Today so far\n Heute bisher\n \n \n Day before yesterday\n Vorgestern\n \n \n Last 2 days\n Letzte 2 Tage\n \n \n This day last week\n Dieser Tag letzte Woche\n \n \n Previous week\n Vorwoche\n \n \n This week\n Diese Woche\n \n \n This week so far\n Diese Woche bisher\n \n \n Last 7 days\n Letzte 7 Tage\n \n \n Previous month\n Vormonat\n \n \n This month\n Dieser Monat\n \n \n This month so far\n Dieser Monat bisher\n \n \n Last 30 days\n Letzte 30 Tage\n \n \n Last 90 days\n Letzte 90 Tage\n \n \n Last 6 months\n Letzte 6 Monate\n \n \n Last 1 year\n Letztes Jahr\n \n \n Previous year\n Vorjahr\n \n \n This year\n Dieses Jahr\n \n \n This year so far\n Dieses Jahr bisher\n \n \n Last 2 years\n Letzte 2 Jahre\n \n \n Last 5 years\n Letzte 5 Jahre\n \n \n Information\n Informationen\n \n \n No items selected.\n Keine Elemente ausgew\xe4hlt.\n \n \n Deselect item to select again\n Elementauswahl zum erneuten Ausw\xe4hlen aufheben\n \n \n Selection limit reached\n Auswahllimit erreicht\n \n \n Filter tags\n Tags filtern\n \n \n Add badge\n Badge hinzuf\xfcgen\n \n \n There are no items available.\n Keine Elemente verf\xfcgbar.\n \n \n Add\n Hinzuf\xfcgen\n \n \n Remove\n Remove\n \n \n Clone\n Klonen\n \n \n Copy\n Kopieren\n \n \n Deep Scrub\n Umfassender Scrub\n \n \n Destroy\n Vernichten\n \n \n Flatten\n Vereinfachen\n \n \n Mark Down\n Als ausgefallen markieren\n \n \n Mark In\n Mit Befehl \'In\' markieren\n \n \n Mark Lost\n Als verloren markieren\n \n \n Mark Out\n Mit Befehl \'Out\' markieren\n \n \n Protect\n Sch\xfctzen\n \n \n Rename\n Umbenennen\n \n \n Restore\n Wiederherstellen\n \n \n Move to Trash\n In Papierkorb verschieben\n \n \n Unprotect\n Schutz aufheben\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Gel\xf6scht\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Geklont\n \n \n Copied\n Kopiert\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Ja\n \n \n No\n Nein\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Quality of Service\n \n \n BPS Limit\n BPS-Limit\n \n \n The desired limit of IO bytes per second.\n Das gew\xfcnschte Limit der E/A-Bytes pro Sekunde.\n \n \n IOPS Limit\n IOPS-Limit\n \n \n The desired limit of IO operations per second.\n Das gew\xfcnschte Limit der E/A-Vorg\xe4nge pro Sekunde.\n \n \n Read BPS Limit\n BPS-Limit f\xfcr Lesevorg\xe4nge\n \n \n The desired limit of read bytes per second.\n Das gew\xfcnschte Limit der gelesenen Bytes pro Sekunde.\n \n \n Read IOPS Limit\n IOPS-Limit f\xfcr Lesevorg\xe4nge\n \n \n The desired limit of read operations per second.\n Das gew\xfcnschte Limit f\xfcr Lesevorg\xe4nge pro Sekunde.\n \n \n Write BPS Limit\n BPS-Limit f\xfcr Schreibvorg\xe4nge\n \n \n The desired limit of write bytes per second.\n Das gew\xfcnschte Limit der geschriebenen Bytes pro Sekunde.\n \n \n Write IOPS Limit\n IOPS-Limit f\xfcr Schreibvorg\xe4nge\n \n \n The desired limit of write operations per second.\n Das gew\xfcnschte Limit f\xfcr Schreibvorg\xe4nge pro Sekunde.\n \n \n BPS Burst\n BPS-Block\n \n \n The desired burst limit of IO bytes.\n Das gew\xfcnschte Blocklimit der E/A-Bytes.\n \n \n IOPS Burst\n IOPS-Block\n \n \n The desired burst limit of IO operations.\n Das gew\xfcnschte Blocklimit der E/A-Vorg\xe4nge.\n \n \n Read BPS Burst\n BPS-Block f\xfcr Lesevorg\xe4nge\n \n \n The desired burst limit of read bytes.\n Das gew\xfcnschte Blocklimit der gelesenen Bytes.\n \n \n Read IOPS Burst\n IOPS-Block f\xfcr Lesevorg\xe4nge\n \n \n The desired burst limit of read operations.\n Das gew\xfcnschte Blocklimit der Lesevorg\xe4nge.\n \n \n Write BPS Burst\n BPS-Block f\xfcr Schreibvorg\xe4nge\n \n \n The desired burst limit of write bytes.\n Das gew\xfcnschte Blocklimit der geschriebenen Bytes.\n \n \n Write IOPS Burst\n IOPS-Block f\xfcr Schreibvorg\xe4nge\n \n \n The desired burst limit of write operations.\n Das gew\xfcnschte Blocklimit der Schreibvorg\xe4nge.\n \n \n Failed to \n \n \n \n Fehler bei \n \n \n \n \n \n Executing\n Wird ausgef\xfchrt\n \n \n execute\n ausf\xfchren\n \n \n Executed\n Ausgef\xfchrt\n \n \n unknown task\n Unbekannte Aufgabe\n \n \n Creating\n Wird erstellt\n \n \n create\n erstellen\n \n \n Updating\n Wird aktualisiert\n \n \n update\n aktualisieren\n \n \n Deleting\n Wird gel\xf6scht\n \n \n delete\n l\xf6schen\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n RBD-Snapshot \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n Spiegelungsmodus f\xfcr Pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n Peer f\xfcr Pool \'\n \' spiegeln\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n \n contains snapshots.\n \n \n enth\xe4lt Snapshots.\n \n \n \n Cloning\n Wird geklont\n \n \n clone\n klonen\n \n \n Snapshot of \n must be protected.\n \n Snapshot von \n muss gesch\xfctzt sein.\n \n \n \n Copying\n Wird kopiert\n \n \n copy\n kopieren\n \n \n Flattening\n Wird vereinfacht\n \n \n flatten\n vereinfachen\n \n \n Flattened\n Vereinfacht\n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Der Schutz von \n kann aufgrund enthaltener untergeordneter Images nicht aufgehoben werden.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Kann \n nicht l\xf6schen, da es gesch\xfctzt ist.\n \n \n \n Rolling back\n Rollback wird ausgef\xfchrt\n \n \n rollback\n Rollback\n \n \n Rolled back\n Rollback wurde ausgef\xfchrt\n \n \n Moving\n Wird verschoben\n \n \n move\n verschieben\n \n \n Moved\n Verschoben\n \n \n image \'\n \' to trash\n \n Image \'\n \' in Papierkorb verschieben\n \n \n \n Could not find image.\n Image konnte nicht gefunden werden.\n \n \n Restoring\n Wird wiederhergestellt\n \n \n restore\n wiederherstellen\n \n \n Restored\n Wiederhergestellt\n \n \n image \'\n \' into \'\n \'\n \n Image \'\n \' in \'\n \' verschieben\n \n \n \n Image name \'\n \' is already in use.\n \n Image-Name \'\n \' wird bereits verwendet.\n \n \n \n image \'\n \'\n \n Image \'\n \'\n \n \n \n Purging\n Wird bereinigt\n \n \n purge\n bereinigen\n \n \n Purged\n Bereinigt\n \n \n all pools\n alle Pools\n \n \n images from \n \n \n Images von \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Spiegelung kann nicht deaktiviert werden, da sie einen Peer enth\xe4lt.\n \n \n pool \'\n \'\n \n Pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n L\xf6schcode-Profil \'\n \'\n \n \n \n target \'\n \'\n \n Ziel \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},ByF4:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},C6Ij:function(t,e,n){"use strict";var a=n("CcnG"),r=n("TZo1"),i=n("9Kw/"),o=n("Jm/i"),s=n("Ip0R"),u=n("xbqr"),c=n("9GXa"),l=n("M/6F"),d=n("NDi4");n("AWcq"),n.d(e,"a",function(){return f}),n.d(e,"b",function(){return v});var f=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,[" for "])),(t()(),a["\u0275eld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,2,0,e.component.statusFor)})}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"cd-info-panel",[],null,null,null,r.b,r.a)),a["\u0275did"](1,49152,null,0,i.a,[o.a],null,null),(t()(),a["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Retrieving data"])),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,[". Please wait..."]))],function(t,e){t(e,5,0,e.component.statusFor)},null)}function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,[" for "])),(t()(),a["\u0275eld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,2,0,e.component.statusFor)})}function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"cd-warning-panel",[],null,null,null,u.b,u.a)),a["\u0275did"](1,49152,null,0,c.a,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Displaying previously cached data"])),(t()(),a["\u0275and"](16777216,null,null,1,null,g)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,["."]))],function(t,e){t(e,5,0,e.component.statusFor)},null)}function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,[" for "])),(t()(),a["\u0275eld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,2,0,e.component.statusFor)})}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"cd-error-panel",[],null,null,null,l.b,l.a)),a["\u0275did"](1,49152,null,0,d.a,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Could not load data"])),(t()(),a["\u0275and"](16777216,null,null,1,null,b)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,[". Please check the cluster health."]))],function(t,e){t(e,5,0,e.component.statusFor)},null)}function v(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,h)),a["\u0275did"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,m)),a["\u0275did"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,y)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.status===n.vcs.ValueNone),t(e,3,0,n.status===n.vcs.ValueStale),t(e,5,0,n.status===n.vcs.ValueException)},null)}},CDJp:function(t,e,n){"use strict";var a=n("RDha");t.exports={_set:function(t,e){return a.merge(this[t]||(this[t]={}),e)}}},CS9Q:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("siIJ"),i=function(t){function e(n,a){void 0===a&&(a=r.a.now);var i=t.call(this,n,function(){return e.delegate&&e.delegate!==i?e.delegate.now():a()})||this;return i.actions=[],i.active=!1,i.scheduled=void 0,i}return a.__extends(e,t),e.prototype.schedule=function(n,a,r){return void 0===a&&(a=0),e.delegate&&e.delegate!==this?e.delegate.schedule(n,a,r):t.prototype.schedule.call(this,n,a,r)},e.prototype.flush=function(t){var e=this.actions;if(this.active)e.push(t);else{var n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}},e}(r.a)},CVuo:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=function(t){return(t=(t=(t=t.replace(/[^a-zA-Z0-9 ]/g," ")).replace(/([a-z](?=[A-Z]))/g,"$1 ")).replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase()).replace(/([ 0-9]+)([a-zA-Z])/g,function(t,e,n){return e.trim()+n.toUpperCase()})},e.deCamelCase=function(t){return t.replace(/([A-Z])/g,function(t){return" "+t}).replace(/^./,function(t){return t.toUpperCase()})}},Cc8h:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("DtyJ"),s=n("ahDk");n("czA5"),e.LongPressDirective=function(){function t(){this.pressEnabled=!0,this.duration=500,this.longPressStart=new i.EventEmitter,this.longPressing=new i.EventEmitter,this.longPressEnd=new i.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(t.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLongPress",{get:function(){return this.isLongPressing},enumerable:!0,configurable:!0}),t.prototype.onMouseDown=function(t){var e=this;if(1===t.which&&this.pressEnabled&&!t.target.classList.contains("resize-handle")){this.mouseX=t.clientX,this.mouseY=t.clientY,this.pressing=!0,this.isLongPressing=!1;var n=o.fromEvent(document,"mouseup");this.subscription=n.subscribe(function(t){return e.onMouseup()}),this.timeout=setTimeout(function(){e.isLongPressing=!0,e.longPressStart.emit({event:t,model:e.pressModel}),e.subscription.add(o.fromEvent(document,"mousemove").pipe(s.takeUntil(n)).subscribe(function(t){return e.onMouseMove(t)})),e.loop(t)},this.duration),this.loop(t)}},t.prototype.onMouseMove=function(t){if(this.pressing&&!this.isLongPressing){var e=Math.abs(t.clientX-this.mouseX)>10,n=Math.abs(t.clientY-this.mouseY)>10;(e||n)&&this.endPress()}},t.prototype.loop=function(t){var e=this;this.isLongPressing&&(this.timeout=setTimeout(function(){e.longPressing.emit({event:t,model:e.pressModel}),e.loop(t)},50))},t.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this._destroySubscription(),this.longPressEnd.emit({model:this.pressModel})},t.prototype.onMouseup=function(){this.endPress()},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"pressEnabled",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pressModel",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"duration",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressing",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressEnd",void 0),a([i.HostBinding("class.press"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"press",null),a([i.HostBinding("class.longpress"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isLongPress",null),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseDown",null),a([i.Directive({selector:"[long-press]"})],t)}()},CcnG:function(t,e,n){"use strict";n.r(e),n.d(e,"\u0275angular_packages_core_core_t",function(){return Xh}),n.d(e,"\u0275angular_packages_core_core_q",function(){return Kh}),n.d(e,"\u0275angular_packages_core_core_r",function(){return $h}),n.d(e,"\u0275angular_packages_core_core_s",function(){return Zh}),n.d(e,"\u0275angular_packages_core_core_h",function(){return Zf}),n.d(e,"\u0275angular_packages_core_core_o",function(){return kh}),n.d(e,"\u0275angular_packages_core_core_p",function(){return Ph}),n.d(e,"\u0275angular_packages_core_core_n",function(){return gh}),n.d(e,"\u0275angular_packages_core_core_m",function(){return hh}),n.d(e,"\u0275angular_packages_core_core_c",function(){return ps}),n.d(e,"\u0275angular_packages_core_core_d",function(){return Ae}),n.d(e,"\u0275angular_packages_core_core_e",function(){return Hf}),n.d(e,"\u0275angular_packages_core_core_f",function(){return Ef}),n.d(e,"\u0275angular_packages_core_core_g",function(){return jf}),n.d(e,"\u0275angular_packages_core_core_l",function(){return rd}),n.d(e,"\u0275angular_packages_core_core_u",function(){return Sp}),n.d(e,"\u0275angular_packages_core_core_w",function(){return xp}),n.d(e,"\u0275angular_packages_core_core_v",function(){return vp}),n.d(e,"\u0275angular_packages_core_core_z",function(){return wp}),n.d(e,"\u0275angular_packages_core_core_x",function(){return _p}),n.d(e,"\u0275angular_packages_core_core_y",function(){return Tp}),n.d(e,"\u0275angular_packages_core_core_bc",function(){return kn}),n.d(e,"\u0275angular_packages_core_core_bj",function(){return p}),n.d(e,"\u0275angular_packages_core_core_bd",function(){return Xe}),n.d(e,"\u0275angular_packages_core_core_be",function(){return Qe}),n.d(e,"\u0275angular_packages_core_core_bf",function(){return bn}),n.d(e,"\u0275angular_packages_core_core_bi",function(){return rr}),n.d(e,"\u0275angular_packages_core_core_bm",function(){return Xt}),n.d(e,"\u0275angular_packages_core_core_i",function(){return du}),n.d(e,"\u0275angular_packages_core_core_j",function(){return fu}),n.d(e,"\u0275angular_packages_core_core_k",function(){return pu}),n.d(e,"\u0275angular_packages_core_core_a",function(){return N}),n.d(e,"\u0275angular_packages_core_core_b",function(){return R}),n.d(e,"\u0275angular_packages_core_core_bk",function(){return c}),n.d(e,"\u0275angular_packages_core_core_ba",function(){return Um}),n.d(e,"\u0275angular_packages_core_core_bb",function(){return ug}),n.d(e,"createPlatform",function(){return Bp}),n.d(e,"assertPlatform",function(){return Wp}),n.d(e,"destroyPlatform",function(){return Kp}),n.d(e,"getPlatform",function(){return $p}),n.d(e,"PlatformRef",function(){return Zp}),n.d(e,"ApplicationRef",function(){return Jp}),n.d(e,"createPlatformFactory",function(){return Up}),n.d(e,"NgProbeToken",function(){return Hp}),n.d(e,"enableProdMode",function(){return zu}),n.d(e,"isDevMode",function(){return Fu}),n.d(e,"APP_ID",function(){return $f}),n.d(e,"PACKAGE_ROOT_URL",function(){return np}),n.d(e,"PLATFORM_INITIALIZER",function(){return Qf}),n.d(e,"PLATFORM_ID",function(){return tp}),n.d(e,"APP_BOOTSTRAP_LISTENER",function(){return ep}),n.d(e,"APP_INITIALIZER",function(){return Wf}),n.d(e,"ApplicationInitStatus",function(){return Kf}),n.d(e,"DebugElement",function(){return Ch}),n.d(e,"DebugNode",function(){return Ih}),n.d(e,"asNativeElements",function(){return mh}),n.d(e,"getDebugNode",function(){return Sh}),n.d(e,"Testability",function(){return qp}),n.d(e,"TestabilityRegistry",function(){return jp}),n.d(e,"setTestabilityGetter",function(){return Fp}),n.d(e,"TRANSLATIONS",function(){return Bh}),n.d(e,"TRANSLATIONS_FORMAT",function(){return Uh}),n.d(e,"LOCALE_ID",function(){return Hh}),n.d(e,"MissingTranslationStrategy",function(){return Wh}),n.d(e,"ApplicationModule",function(){return Jh}),n.d(e,"wtfCreateScope",function(){return Ip}),n.d(e,"wtfLeave",function(){return Cp}),n.d(e,"wtfStartTimeRange",function(){return kp}),n.d(e,"wtfEndTimeRange",function(){return Np}),n.d(e,"Type",function(){return ud}),n.d(e,"EventEmitter",function(){return hl}),n.d(e,"ErrorHandler",function(){return Sf}),n.d(e,"Sanitizer",function(){return Cu}),n.d(e,"SecurityContext",function(){return Iu}),n.d(e,"ANALYZE_FOR_ENTRY_COMPONENTS",function(){return A}),n.d(e,"Attribute",function(){return E}),n.d(e,"ContentChild",function(){return P}),n.d(e,"ContentChildren",function(){return L}),n.d(e,"Query",function(){return D}),n.d(e,"ViewChild",function(){return q}),n.d(e,"ViewChildren",function(){return M}),n.d(e,"Component",function(){return Yd}),n.d(e,"Directive",function(){return Gd}),n.d(e,"HostBinding",function(){return Wd}),n.d(e,"HostListener",function(){return Kd}),n.d(e,"Input",function(){return Bd}),n.d(e,"Output",function(){return Ud}),n.d(e,"Pipe",function(){return Vd}),n.d(e,"CUSTOM_ELEMENTS_SCHEMA",function(){return rf}),n.d(e,"NO_ERRORS_SCHEMA",function(){return of}),n.d(e,"NgModule",function(){return sf}),n.d(e,"ViewEncapsulation",function(){return at}),n.d(e,"Version",function(){return ku}),n.d(e,"VERSION",function(){return Nu}),n.d(e,"defineInjectable",function(){return v}),n.d(e,"defineInjector",function(){return x}),n.d(e,"forwardRef",function(){return X}),n.d(e,"resolveForwardRef",function(){return J}),n.d(e,"Injectable",function(){return gf}),n.d(e,"INJECTOR",function(){return fs}),n.d(e,"Injector",function(){return hs}),n.d(e,"inject",function(){return Ee}),n.d(e,"\u0275inject",function(){return Ee}),n.d(e,"InjectFlags",function(){return Ce}),n.d(e,"ReflectiveInjector",function(){return Vf}),n.d(e,"createInjector",function(){return Ps}),n.d(e,"ResolvedReflectiveFactory",function(){return Pf}),n.d(e,"ReflectiveKey",function(){return Nf}),n.d(e,"InjectionToken",function(){return w}),n.d(e,"Inject",function(){return Te}),n.d(e,"Optional",function(){return we}),n.d(e,"Self",function(){return Se}),n.d(e,"SkipSelf",function(){return Oe}),n.d(e,"Host",function(){return Ie}),n.d(e,"NgZone",function(){return Rp}),n.d(e,"\u0275NoopNgZone",function(){return Mp}),n.d(e,"RenderComponentType",function(){return bu}),n.d(e,"Renderer",function(){return vu}),n.d(e,"Renderer2",function(){return wu}),n.d(e,"RendererFactory2",function(){return _u}),n.d(e,"RendererStyleFlags2",function(){return Tu}),n.d(e,"RootRenderer",function(){return xu}),n.d(e,"COMPILER_OPTIONS",function(){return bp}),n.d(e,"Compiler",function(){return mp}),n.d(e,"CompilerFactory",function(){return yp}),n.d(e,"ModuleWithComponentFactories",function(){return rp}),n.d(e,"ComponentFactory",function(){return Xs}),n.d(e,"\u0275ComponentFactory",function(){return Xs}),n.d(e,"ComponentRef",function(){return Zs}),n.d(e,"ComponentFactoryResolver",function(){return ru}),n.d(e,"ElementRef",function(){return hu}),n.d(e,"NgModuleFactory",function(){return uu}),n.d(e,"NgModuleRef",function(){return su}),n.d(e,"NgModuleFactoryLoader",function(){return td}),n.d(e,"getModuleFactory",function(){return od}),n.d(e,"QueryList",function(){return th}),n.d(e,"SystemJsNgModuleLoader",function(){return ah}),n.d(e,"SystemJsNgModuleLoaderConfig",function(){return eh}),n.d(e,"TemplateRef",function(){return gl}),n.d(e,"ViewContainerRef",function(){return ih}),n.d(e,"EmbeddedViewRef",function(){return fh}),n.d(e,"ViewRef",function(){return dh}),n.d(e,"ChangeDetectionStrategy",function(){return j}),n.d(e,"ChangeDetectorRef",function(){return uh}),n.d(e,"DefaultIterableDiffer",function(){return Rh}),n.d(e,"IterableDiffers",function(){return jh}),n.d(e,"KeyValueDiffers",function(){return Fh}),n.d(e,"SimpleChange",function(){return la}),n.d(e,"WrappedValue",function(){return ca}),n.d(e,"platformCore",function(){return Vh}),n.d(e,"\u0275ALLOW_MULTIPLE_PLATFORMS",function(){return Vp}),n.d(e,"\u0275APP_ID_RANDOM_PROVIDER",function(){return Xf}),n.d(e,"\u0275defaultIterableDiffers",function(){return Gh}),n.d(e,"\u0275defaultKeyValueDiffers",function(){return Yh}),n.d(e,"\u0275devModeEqual",function(){return ua}),n.d(e,"\u0275isListLikeIterable",function(){return da}),n.d(e,"\u0275ChangeDetectorStatus",function(){return F}),n.d(e,"\u0275isDefaultChangeDetectionStrategy",function(){return z}),n.d(e,"\u0275Console",function(){return ap}),n.d(e,"\u0275getInjectableDef",function(){return _}),n.d(e,"\u0275setCurrentInjector",function(){return Ne}),n.d(e,"\u0275APP_ROOT",function(){return Ns}),n.d(e,"\u0275ivyEnabled",function(){return tg}),n.d(e,"\u0275CodegenComponentFactoryResolver",function(){return iu}),n.d(e,"\u0275resolveComponentResources",function(){return Q}),n.d(e,"\u0275ReflectionCapabilities",function(){return pd}),n.d(e,"\u0275RenderDebugInfo",function(){return yu}),n.d(e,"\u0275_sanitizeHtml",function(){return sc}),n.d(e,"\u0275_sanitizeStyle",function(){return Bl}),n.d(e,"\u0275_sanitizeUrl",function(){return Hu}),n.d(e,"\u0275global",function(){return V}),n.d(e,"\u0275looseIdentical",function(){return K}),n.d(e,"\u0275stringify",function(){return $}),n.d(e,"\u0275makeDecorator",function(){return C}),n.d(e,"\u0275isObservable",function(){return Uf}),n.d(e,"\u0275isPromise",function(){return Bf}),n.d(e,"\u0275clearOverrides",function(){return ky}),n.d(e,"\u0275initServicesIfNeeded",function(){return Vb}),n.d(e,"\u0275overrideComponentView",function(){return Cy}),n.d(e,"\u0275overrideProvider",function(){return Iy}),n.d(e,"\u0275NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR",function(){return Qm}),n.d(e,"\u0275defineBase",function(){return ft}),n.d(e,"\u0275defineComponent",function(){return st}),n.d(e,"\u0275defineDirective",function(){return pt}),n.d(e,"\u0275definePipe",function(){return ht}),n.d(e,"\u0275defineNgModule",function(){return lt}),n.d(e,"\u0275detectChanges",function(){return mo}),n.d(e,"\u0275renderComponent",function(){return Zo}),n.d(e,"\u0275Render3ComponentFactory",function(){return Pu}),n.d(e,"\u0275Render3ComponentRef",function(){return Mu}),n.d(e,"\u0275directiveInject",function(){return Mo}),n.d(e,"\u0275injectAttribute",function(){return qo}),n.d(e,"\u0275getFactoryOf",function(){return qn}),n.d(e,"\u0275getInheritedFactory",function(){return jn}),n.d(e,"\u0275templateRefExtractor",function(){return Ll}),n.d(e,"\u0275ProvidersFeature",function(){return $s}),n.d(e,"\u0275InheritDefinitionFeature",function(){return as}),n.d(e,"\u0275NgOnChangesFeature",function(){return os}),n.d(e,"\u0275LifecycleHooksFeature",function(){return ts}),n.d(e,"\u0275Render3NgModuleRef",function(){return Wc}),n.d(e,"\u0275markDirty",function(){return xo}),n.d(e,"\u0275NgModuleFactory",function(){return Kc}),n.d(e,"\u0275NO_CHANGE",function(){return ha}),n.d(e,"\u0275container",function(){return no}),n.d(e,"\u0275nextContext",function(){return di}),n.d(e,"\u0275elementStart",function(){return _i}),n.d(e,"\u0275namespaceHTML",function(){return bi}),n.d(e,"\u0275namespaceMathML",function(){return mi}),n.d(e,"\u0275namespaceSVG",function(){return gi}),n.d(e,"\u0275element",function(){return yi}),n.d(e,"\u0275listener",function(){return ki}),n.d(e,"\u0275text",function(){return Hi}),n.d(e,"\u0275embeddedViewStart",function(){return oo}),n.d(e,"\u0275query",function(){return El}),n.d(e,"\u0275registerContentQuery",function(){return jo}),n.d(e,"\u0275projection",function(){return lo}),n.d(e,"\u0275bind",function(){return _o}),n.d(e,"\u0275interpolation1",function(){return So}),n.d(e,"\u0275interpolation2",function(){return Oo}),n.d(e,"\u0275interpolation3",function(){return Io}),n.d(e,"\u0275interpolation4",function(){return Co}),n.d(e,"\u0275interpolation5",function(){return ko}),n.d(e,"\u0275interpolation6",function(){return No}),n.d(e,"\u0275interpolation7",function(){return Ro}),n.d(e,"\u0275interpolation8",function(){return Ao}),n.d(e,"\u0275interpolationV",function(){return wo}),n.d(e,"\u0275pipeBind1",function(){return sl}),n.d(e,"\u0275pipeBind2",function(){return ul}),n.d(e,"\u0275pipeBind3",function(){return cl}),n.d(e,"\u0275pipeBind4",function(){return ll}),n.d(e,"\u0275pipeBindV",function(){return dl}),n.d(e,"\u0275pureFunction0",function(){return Zc}),n.d(e,"\u0275pureFunction1",function(){return Xc}),n.d(e,"\u0275pureFunction2",function(){return Jc}),n.d(e,"\u0275pureFunction3",function(){return Qc}),n.d(e,"\u0275pureFunction4",function(){return tl}),n.d(e,"\u0275pureFunction5",function(){return el}),n.d(e,"\u0275pureFunction6",function(){return nl}),n.d(e,"\u0275pureFunction7",function(){return al}),n.d(e,"\u0275pureFunction8",function(){return rl}),n.d(e,"\u0275pureFunctionV",function(){return il}),n.d(e,"\u0275getCurrentView",function(){return Go}),n.d(e,"\u0275getHostElement",function(){return ea}),n.d(e,"\u0275restoreView",function(){return Je}),n.d(e,"\u0275containerRefreshStart",function(){return ro}),n.d(e,"\u0275containerRefreshEnd",function(){return io}),n.d(e,"\u0275queryRefresh",function(){return Dl}),n.d(e,"\u0275loadQueryList",function(){return Lo}),n.d(e,"\u0275elementEnd",function(){return Ni}),n.d(e,"\u0275elementProperty",function(){return Ai}),n.d(e,"\u0275componentHostSyntheticProperty",function(){return Ei}),n.d(e,"\u0275projectionDef",function(){return uo}),n.d(e,"\u0275reference",function(){return Do}),n.d(e,"\u0275enableBindings",function(){return $e}),n.d(e,"\u0275disableBindings",function(){return Ze}),n.d(e,"\u0275allocHostVars",function(){return To}),n.d(e,"\u0275elementAttribute",function(){return Ri}),n.d(e,"\u0275elementContainerStart",function(){return vi}),n.d(e,"\u0275elementContainerEnd",function(){return xi}),n.d(e,"\u0275elementStyling",function(){return ji}),n.d(e,"\u0275elementHostAttrs",function(){return Fi}),n.d(e,"\u0275elementStylingMap",function(){return Vi}),n.d(e,"\u0275elementStyleProp",function(){return Gi}),n.d(e,"\u0275elementStylingApply",function(){return zi}),n.d(e,"\u0275elementClassProp",function(){return Yi}),n.d(e,"\u0275textBinding",function(){return Bi}),n.d(e,"\u0275template",function(){return eo}),n.d(e,"\u0275embeddedViewEnd",function(){return so}),n.d(e,"\u0275store",function(){return Eo}),n.d(e,"\u0275load",function(){return Po}),n.d(e,"\u0275pipe",function(){return ol}),n.d(e,"\u0275whenRendered",function(){return es}),n.d(e,"\u0275i18n",function(){return Pc}),n.d(e,"\u0275i18nAttributes",function(){return Mc}),n.d(e,"\u0275i18nExp",function(){return Fc}),n.d(e,"\u0275i18nStart",function(){return Nc}),n.d(e,"\u0275i18nEnd",function(){return Ec}),n.d(e,"\u0275i18nApply",function(){return zc}),n.d(e,"\u0275i18nPostprocess",function(){return Ac}),n.d(e,"\u0275setClassMetadata",function(){return $c}),n.d(e,"\u0275compileComponent",function(){return Dd}),n.d(e,"\u0275compileDirective",function(){return Ld}),n.d(e,"\u0275compileNgModule",function(){return Sd}),n.d(e,"\u0275compileNgModuleDefs",function(){return Od}),n.d(e,"\u0275patchComponentDefWithScope",function(){return kd}),n.d(e,"\u0275resetCompiledComponents",function(){return Id}),n.d(e,"\u0275compilePipe",function(){return zd}),n.d(e,"\u0275sanitizeHtml",function(){return Ul}),n.d(e,"\u0275sanitizeStyle",function(){return Wl}),n.d(e,"\u0275defaultStyleSanitizer",function(){return Xl}),n.d(e,"\u0275sanitizeScript",function(){return Zl}),n.d(e,"\u0275sanitizeUrl",function(){return Kl}),n.d(e,"\u0275sanitizeResourceUrl",function(){return $l}),n.d(e,"\u0275bypassSanitizationTrustHtml",function(){return ql}),n.d(e,"\u0275bypassSanitizationTrustStyle",function(){return jl}),n.d(e,"\u0275bypassSanitizationTrustScript",function(){return Fl}),n.d(e,"\u0275bypassSanitizationTrustUrl",function(){return zl}),n.d(e,"\u0275bypassSanitizationTrustResourceUrl",function(){return Gl}),n.d(e,"\u0275getLContext",function(){return Fn}),n.d(e,"\u0275bindPlayerFactory",function(){return ar}),n.d(e,"\u0275addPlayer",function(){return Ho}),n.d(e,"\u0275getPlayers",function(){return Bo}),n.d(e,"\u0275compileNgModuleFactory__POST_R3__",function(){return Yp}),n.d(e,"\u0275SWITCH_COMPILE_COMPONENT__POST_R3__",function(){return $d}),n.d(e,"\u0275SWITCH_COMPILE_DIRECTIVE__POST_R3__",function(){return Zd}),n.d(e,"\u0275SWITCH_COMPILE_PIPE__POST_R3__",function(){return Xd}),n.d(e,"\u0275SWITCH_COMPILE_NGMODULE__POST_R3__",function(){return uf}),n.d(e,"\u0275getDebugNode__POST_R3__",function(){return wh}),n.d(e,"\u0275SWITCH_COMPILE_INJECTABLE__POST_R3__",function(){return mf}),n.d(e,"\u0275SWITCH_IVY_ENABLED__POST_R3__",function(){return Qh}),n.d(e,"\u0275SWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__",function(){return ch}),n.d(e,"\u0275Compiler_compileModuleSync__POST_R3__",function(){return up}),n.d(e,"\u0275Compiler_compileModuleAsync__POST_R3__",function(){return lp}),n.d(e,"\u0275Compiler_compileModuleAndAllComponentsSync__POST_R3__",function(){return fp}),n.d(e,"\u0275Compiler_compileModuleAndAllComponentsAsync__POST_R3__",function(){return hp}),n.d(e,"\u0275SWITCH_ELEMENT_REF_FACTORY__POST_R3__",function(){return gu}),n.d(e,"\u0275SWITCH_TEMPLATE_REF_FACTORY__POST_R3__",function(){return ml}),n.d(e,"\u0275SWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__",function(){return oh}),n.d(e,"\u0275SWITCH_RENDERER2_FACTORY__POST_R3__",function(){return Su}),n.d(e,"\u0275getModuleFactory__POST_R3__",function(){return id}),n.d(e,"\u0275publishGlobalUtil",function(){return $o}),n.d(e,"\u0275publishDefaultGlobalUtils",function(){return Ko}),n.d(e,"\u0275SWITCH_INJECTOR_FACTORY__POST_R3__",function(){return gs}),n.d(e,"\u0275registerModuleFactory",function(){return nd}),n.d(e,"\u0275EMPTY_ARRAY",function(){return Zg}),n.d(e,"\u0275EMPTY_MAP",function(){return Xg}),n.d(e,"\u0275and",function(){return Jg}),n.d(e,"\u0275ccf",function(){return ym}),n.d(e,"\u0275cmf",function(){return Ny}),n.d(e,"\u0275crt",function(){return vg}),n.d(e,"\u0275did",function(){return Vm}),n.d(e,"\u0275eld",function(){return Qg}),n.d(e,"\u0275elementEventFullName",function(){return Rg}),n.d(e,"\u0275getComponentViewDefinitionFactory",function(){return vm}),n.d(e,"\u0275inlineInterpolate",function(){return Kg}),n.d(e,"\u0275interpolate",function(){return Wg}),n.d(e,"\u0275mod",function(){return cm}),n.d(e,"\u0275mpd",function(){return um}),n.d(e,"\u0275ncd",function(){return db}),n.d(e,"\u0275nov",function(){return Rm}),n.d(e,"\u0275pid",function(){return Hm}),n.d(e,"\u0275prd",function(){return Bm}),n.d(e,"\u0275pad",function(){return hb}),n.d(e,"\u0275pod",function(){return gb}),n.d(e,"\u0275ppd",function(){return pb}),n.d(e,"\u0275qud",function(){return ob}),n.d(e,"\u0275ted",function(){return bb}),n.d(e,"\u0275unv",function(){return mg}),n.d(e,"\u0275vid",function(){return xb});var a=n("mrSG"),r=n("pugT"),i=n("K9Ia"),o=n("6blF"),s=n("p0ib"),u=n("S1nX");function c(t){for(var e in t)if(t[e]===c)return e;throw Error("Could not find renamed property on target object.")}function l(t,e){for(var n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}var d=c({ngComponentDef:c}),f=c({ngDirectiveDef:c}),p=c({ngInjectableDef:c}),h=c({ngInjectorDef:c}),g=c({ngPipeDef:c}),m=c({ngModuleDef:c}),b=c({ngBaseDef:c}),y=c({__NG_ELEMENT_ID__:c});function v(t){return{providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function x(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function _(t){return t&&t.hasOwnProperty(p)?t[p]:null}function T(t){return t&&t.hasOwnProperty(h)?t[h]:null}var w=function(){function t(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.ngInjectableDef=void 0!==e?v({providedIn:e.providedIn||"root",factory:e.factory}):void 0}return t.prototype.toString=function(){return"InjectionToken "+this._desc},t}(),S="__annotations__",O="__parameters__",I="__prop__metadata__";function C(t,e,n,r,i){var o=k(e);function s(){for(var t,e=[],n=0;n=qt?n:n[St]}function ae(t){return 0!=(4&t.flags)}function re(t){return 1==(1&t.flags)}function ie(t){return null!==t.template}function oe(t){return Array.isArray(t)&&t.length===Yt}function se(t){return 0!=(128&t[xt])}function ue(t){for(var e=Array.isArray(t)?t:de(t);e&&!(128&e[xt]);)e=e[_t];return e}function ce(t){return ue(t)[kt]}function le(t){return t[Vt]}function de(t){var e=le(t);return e?Array.isArray(e)?e:e.lView:null}function fe(t){return t!==Wt}function pe(t){return 32767&t}function he(t){return t>>16}function ge(t,e){for(var n=he(t),a=e;n>0;)a=a[Mt],n--;return a}var me=("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(V);function be(t,e){for(var n=0;n0;)e=e[Mt],t--;return e}(t,on))[kt]}function yn(t){var e=Ue[vt];rn(Ue)?Ue[xt]&=-2:(Ge(Ue,e.viewHooks,e.viewCheckHooks,sn),Ue[xt]&=-11,Ue[xt]|=32,Ue[It]=e.bindingStartIndex),mn(t,null)}var vn=!0;function xn(t){var e=vn;return vn=t,e}var _n=255,Tn=0;function wn(t,e){var n=On(t,e);if(-1!==n)return n;var a=e[vt];a.firstTemplatePass&&(t.injectorIndex=e.length,Sn(a.data,t),Sn(e,null),Sn(a.blueprint,null));var r=In(t,e),i=pe(r),o=ge(r,e),s=t.injectorIndex;if(fe(r))for(var u=o[vt].data,c=0;c<8;c++)e[s+c]=o[i+c]|u[i+c];return e[s+Bt]=r,s}function Sn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function On(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null==e[t.injectorIndex+Bt]?-1:t.injectorIndex}function In(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;for(var n=e[Ot],a=1;n&&-1===n.injectorIndex;)n=(e=e[Mt])?e[Ot]:null,a++;return n?n.injectorIndex|a<<16:-1}function Cn(t,e,n){!function(t,e,n){var a="string"!=typeof n?n[y]:n.charCodeAt(0)||0;null==a&&(a=n[y]=Tn++);var r=a&_n,i=1<>16,l=r?s+c:t.directiveEnd,d=a?s:s+c;d=u&&f.type===n)return d}if(r){var p=o[u];if(p&&ie(p)&&p.type===n)return u}return null}function Dn(t,e,n,a){var r,i=e[n];if(null!=(r=i)&&"object"==typeof r&&Object.getPrototypeOf(r)==$t){var o=i;if(o.resolving)throw new Error("Circular dep for "+Zt(t[n]));var s=xn(o.canSeeViewProviders);o.resolving=!0;var u=void 0;o.injectImpl&&(u=Re(o.injectImpl));var c=Qe(),l=Xe();en(a,e);try{i=e[n]=o.factory(null,t,e,a)}finally{o.injectImpl&&Re(u),xn(s),o.resolving=!1,en(c,l)}}return i}function Ln(t,e,n){var a=64&t,r=32&t;return!!((128&t?a?r?n[e+7]:n[e+6]:r?n[e+5]:n[e+4]:a?r?n[e+3]:n[e+2]:r?n[e+1]:n[e])&1<=0){var h;Yn(h=Jt(a[p]),u=zn(a,p,h)),n=u;break}}}return n||null}function zn(t,e,n){return{lView:t,nodeIndex:e,native:n,component:void 0,directives:void 0,localRefs:void 0}}function Gn(t){var e,n=le(t);if(Array.isArray(n)){var a=Bn(n,t);(r=zn(n,a,(e=ne(a,n))[St])).component=t,Yn(t,r),Yn(r.native,r)}else{var r;e=ne((r=n).nodeIndex,r.lView)}return e}function Yn(t,e){t[Vt]=e}function Vn(t,e){for(var n=t[vt].firstChild;n;){if(te(n,t)===e)return n.index;n=Hn(n)}return-1}function Hn(t){if(t.child)return t.child;if(t.next)return t.next;for(;t.parent&&!t.parent.next;)t=t.parent;return t.parent&&t.parent.next}function Bn(t,e){var n=t[vt].components;if(n)for(var a=0;a=0)&&null})}}return r.sort(ia),r}function ia(t,e){return t.name==e.name?0:t.name-1?e[_t][n]:null}return e[_t][t.parent.index]}function ka(t,e){var n=Ca(t,e);return n?n[Gt]:null}var Na=[];function Ra(t,e,n,a,r){for(var i=t[vt].node,o=-1,s=t,u=i.child;u;){var c=null;if(3===u.type){Aa(e,n,a,te(u,s),r);var l=s[u.index];oe(l)&&Aa(e,n,a,l[zt],r)}else if(0===u.type){var d=s[u.index];Aa(e,n,a,d[zt],r),a&&(d[Gt]=a),d[Ft].length&&(c=(s=d[Ft][0])[vt].node,r=d[zt])}else if(1===u.type){var f=ye(s),p=f[Ot].projection[u.projection];Na[++o]=u,Na[++o]=s,p&&(c=(s=f[_t])[vt].data[p.index])}else c=u.child;if(null===c)for(null===u.next&&2&u.flags&&(s=Na[o--],u=Na[o--]),c=u.next;!c;){if(null===(u=u.parent||s[vt].node)||u===i)return null;0===u.type&&(r=(s=s[_t])[u.index][zt]),c=2===u.type&&s[Tt]?(s=s[Tt])[vt].node:u.next}u=c}}function Aa(t,e,n,a,r){0===t?wa(e)?e.insertBefore(n,a,r):n.insertBefore(a,r,!0):1===t?wa(e)?e.removeChild(n,a):n.removeChild(a):2===t&&e.destroyNode(a)}function Ea(t,e){return wa(e)?e.createText(Zt(t)):e.createTextNode(Zt(t))}function Da(t,e,n){var a=ka(t[vt].node,t);a&&Ra(t,e?0:1,t[At],a,n)}function La(t,e,n,a,r){var i=e[Ft];a>0&&(i[a-1][Tt]=t),a-1&&(t[Lt]=r,t[_t]=n),t[wt]&&t[wt].insertView(a),t[xt]|=16}function Pa(t,e,n){var a=t[Ft],r=a[e];return e>0&&(a[e-1][Tt]=r[Tt]),a.splice(e,1),n||Da(r,!1),r[wt]&&r[wt].removeView(),r[Lt]=-1,r[_t]=null,r[xt]&=-17,r}function Ma(t,e,n){var a=t[Ft][n];Pa(t,n,!!e.detached),ja(a)}function qa(t){var e=t[vt].childIndex;return-1===e?null:t[e]}function ja(t){var e=t[At];wa(e)&&e.destroyNode&&Ra(t,2,e,null),function(t){if(-1===t[vt].childIndex)return za(t);for(var e=qa(t);e;){var n=null;if(e.length>=qt?e[vt].childIndex>-1&&(n=qa(e)):e[Ft].length&&(n=e[Ft][0]),null==n){for(;e&&!e[Tt]&&e!==t;)za(e),e=Fa(e,t);za(e||t),n=e&&e[Tt]}e=n}}(t),t[xt]|=64}function Fa(t,e){var n;return t.length>=qt&&(n=t[Ot])&&2===n.type?Ca(n,t):t[_t]===e?null:t[_t]}function za(t){if(t.length>=qt){var e=t;!function(t){var e,n=t[vt];null!=n&&null!=(e=n.destroyHooks)&&Ye(t,e)}(e),(r=(a=e)[vt]&&a[vt].pipeDestroyHooks)&&Ye(a,r),function(t){var e=t[vt].cleanup;if(null!=e){for(var n=t[Ct],a=0;a=0?n[o]():n[-o].unsubscribe(),a+=2}else"number"==typeof e[a]?(0,n[e[a]])():e[a].call(n[e[a+1]]);t[Ct]=null}}(e);var n=e[Ot];n&&3===n.type&&wa(e[At])&&e[At].destroy()}var a,r}function Ga(t,e){if(Ya(t,e)){if(se(e))return Ha(e[At],te(t,e));var n=e[Ot],a=t.parent;return null!=a&&4===a.type&&(t=Ua(a)),null==t.parent&&2===n.type?ka(n,e):Oa(t,e)}return null}function Ya(t,e){var n,a=t,r=t.parent;return t.parent&&(4===t.parent.type?r=(a=Ua(t)).parent:5===t.parent.type&&(r=(a=Ia(a)).parent)),null===r&&(r=e[Ot]),r&&2===r.type?null!=(n=Ca(r,e))&&null!=n[Gt]:null==a.parent||!(3!==a.parent.type||1&a.parent.flags)}function Va(t,e,n,a){wa(t)?t.insertBefore(e,n,a):e.insertBefore(n,a,!0)}function Ha(t,e){return wa(t)?t.parentNode(e):e.parentNode}function Ba(t,e,n){if(void 0===t&&(t=null),null!==t&&Ya(e,n)){var a=n[At],r=Oa(e,n),i=e.parent||n[Ot];if(2===i.type){var o=Ca(i,n),s=o[Ft],u=s.indexOf(n);Va(a,o[Gt],t,Wa(u,s,o[zt]))}else 4===i.type?Va(a,Ga(e,n),t,r):5===i.type?Va(a,r,t,te(e.parent,n)):wa(a)?a.appendChild(r,t):r.appendChild(t);return!0}return!1}function Ua(t){for(;null!=t.parent&&4===t.parent.type;)t=t.parent;return t}function Wa(t,e,n){if(t+1-1&&h>l?"":c[h+1],8&u&&(i=(a=g).length,s=(o=a.indexOf(r=m))+r.length,-1===o||o>0&&" "!==a[o-1]||s=9?e+0:e;n?t[a]|=1:t[a]&=-2}function Tr(t,e){return 1==(1&t[e>=9?e+0:e])}function wr(t,e){return 2==(2&t[e>=9?e+0:e])}function Sr(t,e){return 4==(4&t[e>=9?e+0:e])}function Or(t,e,n){return 63&t|e<<6|n<<20}function Ir(t,e){var n=Cr(e);return(2&e?t[3]:t[2])[n]}function Cr(t){return t>>6&16383}function kr(t){var e=t>>20&16383;return e>=9?e:-1}function Nr(t){return kr(t[0])}function Rr(t,e,n){t[e+1]=n}function Ar(t,e,n){t[e+2]=n}function Er(t,e,n){var a=t[8];if(e){if(!a||0===n)return!0}else if(!a)return!1;return a[n]!==e}function Dr(t,e,n){var a=t[8]||fr(t);return n>0?a[n]=e:(a.splice(n=a[0],0,e,null),a[0]+=2),n}function Lr(t,e,n,a){var r=function(t,e){return n<<16|t}(a);t[e+3]=r}function Pr(t,e){return t[e+3]>>16&65535}function Mr(t,e){var n=Pr(t,e);if(n){var a=t[8];if(a)return a[n]}return null}function qr(t,e,n){t[0===e?e:e+0]=n}function jr(t,e){return t[0===e?e:e+0]}function Fr(t,e){return t[e+2]}function zr(t,e){return t[e+1]}function Gr(t){return 16&t[0]}function Yr(t,e){_r(t,0,e)}function Vr(t,e){e?t[0]|=8:t[0]&=-9}function Hr(t,e,n){for(var a=(n||0)+1;a=0&&qr(t,c,Or(l=jr(t,c),Cr(l),n));var l,d=kr(u);d>=0&&qr(t,d,Or(l=jr(t,d),Cr(l),e)),Ar(t,e,Fr(t,n)),Rr(t,e,zr(t,n)),qr(t,e,jr(t,n)),Lr(t,e,Pr(t,n),0),Ar(t,n,a),Rr(t,n,r),qr(t,n,i),Lr(t,n,o,0)}function Ur(t,e,n,a,r,i,o,s){var u=e0){var i=Cr(jr(t,r));qr(t,r,Or((Tr(t,r)?1:0)|(wr(t,r)?2:0)|(Sr(t,r)?4:0),i,a))}}}(t)}function Wr(t,e){return e?!!t:null!==t}function Kr(t,e,n,a){var r,i=a&&a(e)?4:0;return n?(i|=2,r=ti(t[3],e)):r=ti(t[2],e),Or(i,r=r>0?r+1:0,0)}function $r(t,e,n){return!(2&t)&&e&&n&&4&t?e.toString()!==n.toString():e!==n}var Zr=function(){function t(t,e,n){this._element=e,this._type=n,this._values={},this._dirty=!1,this._factory=t}return t.prototype.setValue=function(t,e){this._values[t]!==e&&(this._values[t]=e,this._dirty=!0)},t.prototype.buildPlayer=function(t,e){if(this._dirty){var n=this._factory.fn(this._element,this._type,this._values,e,t||null);return this._values={},this._dirty=!1,n}},t}();function Xr(t,e){return 65535&t[e+3]}function Jr(t,e){var n=Qr(t[1],e);return n>0?n/4:0}function Qr(t,e){for(var n=0;nr)for(var o=0===e,s=n.data,u=r;u=0)return-1;a=o/4,r[o+1]=i,r[o+3]=n||null}return a}(t,e,r);if(-1!==o){var s=t[4],u=s[1],c=s[0],l=4*c,d=9+l,f=d+4*u,p=f+l,h=s.length;s.push(a?a.length:0,n?n.length:0);var g=0,m=[];if(a&&a.length)for(var b=0;b=f,A=N>=(R?p:d),E=jr(t,N),D=Cr(E),L=kr(E);qr(t,N,Or(E,D,L+=R?A?4*m.length:0:4*k+4*(A?m.length:0)))}for(var P=0;P<4*m.length;P++)t.splice(p,0,null),t.splice(d,0,null),d++,f++,p+=2;for(var M=0;M<4*v.length;M++)t.splice(f,0,null),t.push(null),f++,p++;for(var q=t[3],j=t[2],F=0;F=m.length,G=z?F-m.length:F,Y=z?v[G]:m[G],V=void 0,H=void 0;z?(V=p+4*(u+G),H=d+4*(u+G)):(V=f+4*(c+G),H=9+4*(c+G));var B=z?q:j,U=ti(B,Y);-1===U?(U=B.length+1,B.push(Y,!z&&null)):U+=1;var W=Kr(t,Y,z,r||null);qr(t,H,Or(W,U,V)),Rr(t,H,Y),Ar(t,H,null),Lr(t,H,0,o),qr(t,V,Or(W,U,H)),Rr(t,V,Y),Ar(t,V,null),Lr(t,V,0,o)}s[1]=u+v.length,s[0]=c+m.length,qr(t,0,Or(0,0,f)|(i?16:0))}}}(r.stylingTemplate,a||null,t,e,n,pr(r))}function Fi(t,e){var n=Qe();n.stylingTemplate||(n.stylingTemplate=hr(e)),function(t,e,n){var a=t[1];if(-1==Qr(a,n)){a.push(n,-1,!1,null);for(var r=null,i=null,o=-1,s=0;s0&&ho(ce(n),2)}function Gi(t,e,n,a,r){var i=null;null!==n&&(i=a?Zt(n)+a:n),yr(ur(t+qt,Xe()),e,i,!1,r)}function Yi(t,e,n,a){var r=n instanceof rr?n:!!n;yr(ur(t+qt,Xe()),e,r,!0,a)}function Vi(t,e,n,a){if(null!=a)return function(t,e,n,a){throw new Error("unimplemented. Should not be needed by ViewEngine compatibility")}();var r=Xe(),i=ee(t,r),o=ur(t+qt,r);if(pr(i)&&e!==ha){var s=ai(o);Mi(r,i.inputs.class,(s.length?s+" ":"")+e)}else!function(t,e,n,a){n=n||null;var r=Jr(t,null),i=t[5],o=e instanceof rr?new Zr(e,i,1):null,s=n instanceof rr?new Zr(n,i,2):null,u=o?e.value:e,c=s?n.value:n,l=Gr(t)||u===ha||u===t[6],d=c===ha||c===t[7];if(!l||!d){t[6]=u,t[7]=c;var f=it,p=!1,h=!1,g=o?1:0;Er(t,o,1)&&(Dr(t,o,1),h=!0);var m=s?3:0;Er(t,s,3)&&(Dr(t,s,3),h=!0),l||("string"==typeof u?(f=u.split(/\s+/),p=!0):f=u?Object.keys(u):it);for(var b=u||rt,y=c?Object.keys(c):it,v=c||rt,x=y.length,_=!1,T=Nr(t),w=0,S=y.length+f.length;T=x)&&!d||M&&!l){var O=M?w-x:w,I=M?f[O]:y[O],C=M?!!p||b[I]:v[I],k=M?g:m;if((q=zr(t,T))===I){var N=Fr(t,T),R=jr(t,T);if(Lr(t,T,k,r),$r(R,N,C)){Ar(t,T,C),h=h||!!k;var A=Ir(t,R);(null!=N||$r(R,A,C))&&(_r(t,T,!0),_=!0)}}else{var E=Hr(t,I,T);if(E>0){var D=Fr(t,E),L=jr(t,E);Br(t,T,E),$r(L,D,C)&&(A=Ir(t,L),Ar(t,T,C),(null!=D||$r(L,A,C))&&(_r(t,T,!0),h=h||!!k,_=!0))}else h=h||!!k,Ur(t,T,M,I,Kr(t,I,M,ei(t,r)),C,r,k),_=!0}}T+=4,w++}for(;T=x)&&!d||M&&!l){O=M?w-x:w;var q=M?f[O]:y[O],j=(N=M?!!p||b[q]:v[q],R=1|Kr(t,q,M,P),k=M?g:m,t.length);t.push(R,q,N,0),Lr(t,j,k,r),_=!0}w++}_&&(Yr(t,!0),ni(t,r,!0)),h&&Vr(t,!0)}}(o,e,n)}function Hi(t,e){var n=Xe(),a=Ea(e,n[At]),r=si(t,3,a,null,null);an(!1),Ba(a,r,n)}function Bi(t,e){if(e!==ha){var n=Xe(),a=Qt(t,n),r=n[At];wa(r)?r.setValue(a,Zt(e)):a.textContent=Zt(e)}}function Ui(t,e,n){var a=-(e.index-qt),r=t.data.length-(65535&e.providerIndexes);(t.expandoInstructions||(t.expandoInstructions=[])).push(a,r,n)}function Wi(t,e,n,a){var r=Qe();Ki(t,r,e,n),r&&r.attrs&&function(t,e,a,i){var o=r.initialInputs;(void 0===o||t>=o.length)&&(o=function(t,e,n){var a=n.initialInputs||(n.initialInputs=[]);a[t]=null;for(var r=n.attrs,i=0;i=i.length||null==i[t])&&(i[t]=Oi(t,null,e,n,r.directiveRegistry,r.pipeRegistry,null)),i[t]}(t,e,n,i),null,4),o[wt]&&(s[wt]=o[wt].createView()),ui(t,s),mn(s,s[vt].node)),o&&(rn(s)&&La(s,o,a,o[jt],-1),o[jt]++),rn(s)?3:2}function so(){var t=Xe(),e=t[Ot];rn(t)&&(ii(t),t[xt]&=-2),ii(t),yn(t[_t]),tn(e),an(!1)}function uo(t,e){var n=ye(Xe())[Ot];if(!n.projection)for(var a=n.projection=new Array(t?t.length+1:1).fill(null),r=a.slice(),i=n.child;null!==i;){var o=t?nr(i,t,e):0,s=i.next;r[o]?r[o].next=i:(a[o]=i,i.next=null),r[o]=i,i=s}}var co=[];function lo(t,e,n){void 0===e&&(e=0);var a=Xe(),r=si(t,1,null,null,n||null);null===r.projection&&(r.projection=e),an(!1);for(var i=ye(a),o=i[Ot].projection[e],s=i[_t],u=-1;o;){if(1===o.type){var c=ye(s),l=c[Ot].projection[o.projection];if(l){co[++u]=o,co[++u]=s,o=l,s=c[_t];continue}}else o.flags|=2,$a(o,r,a,s);null===o.next&&s!==i[_t]&&(s=co[u--],o=co[u--]),o=o.next}}function fo(t,e,n){var a=t[vt],r=dn();return t[Dt]?t[Dt][Tt]=n:r&&(a.childIndex=e),t[Dt]=n,n}function po(t){for(;t&&!(128&t[xt]);)t[xt]|=8,t=t[_t];t[xt]|=8,ho(t[kt],1)}function ho(t,e){var n,a=0===t.flags;t.flags|=e,a&&t.clean==ri&&(t.clean=new Promise(function(t){return n=t}),t.scheduler(function(){if(1&t.flags&&(t.flags&=-2,go(t)),2&t.flags){t.flags&=-3;var e=t.playerHandler;e&&e.flushPlayers()}t.clean=ri,n(null)}))}function go(t){for(var e=0;e=2&&a[r-2]===e.hostBindings?a[r-1]=a[r-1]+n:a.push(e.hostBindings,n)}(n,We,t),function(t,e,n){for(var a=0;a=a.data.length&&(a.data[r]=null),n[r]=e}function Do(t){return Xt(on,t)}function Lo(t){return Xe()[Pt][t]}function Po(t){return Xt(Xe(),t)}function Mo(t,e){return void 0===e&&(e=Ce.Default),t=J(t),Nn(Qe(),Xe(),t,e)}function qo(t){return kn(Qe(),t)}function jo(t,e){var n=Xe(),a=n[vt],r=(n[Pt]||(n[Pt]=[])).push(t);if(dn()){var i=a.contentQueries||(a.contentQueries=[]);e!==(a.contentQueries.length?a.contentQueries[a.contentQueries.length-2]:-1)&&i.push(e,r-1)}}var Fo=ri;function zo(t){return t?(void 0===t.inputs&&(t.inputs=qi(t,0)),t.inputs):null}function Go(){return Xe()}function Yo(t){return t[Ct]||(t[Ct]=[])}function Vo(t){return t[vt].cleanup||(t[vt].cleanup=[])}function Ho(t,e){var n=Fn(t);if(n){var a=n.native,r=n.lView,i=function(t,e){if(!(e=e||Fn(a)))return null;var n=ur(e.nodeIndex,e.lView);return dr(n)||fr(n)}(0,n),o=Zn(r);lr(i,o,a,e,0,t),ho(o,2)}}function Bo(t){var e=Fn(t);if(!e)return[];var n=ur(e.nodeIndex,e.lView),a=n?dr(n):null;return a?function(t){for(var e=[],n=t[0],a=2;a ");else if("object"==typeof e){var r=[];for(var i in e)if(e.hasOwnProperty(i)){var o=e[i];r.push(i+":"+("string"==typeof o?JSON.stringify(o):$(o)))}a="{"+r.join(", ")+"}"}return"StaticInjectorError"+(n?"("+n+")":"")+"["+a+"]: "+t.replace(ws,"\n ")}function ks(t,e){return new Error(Cs(t,e))}var Ns=new w("The presence of this token marks an injector as being the root injector."),Rs={},As={},Es=[],Ds=void 0;function Ls(){return void 0===Ds&&(Ds=new ps),Ds}function Ps(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=null),e=e||Ls(),new Ms(t,n,e)}var Ms=function(){function t(t,e,n){var a=this;this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this.destroyed=!1;var r=[];zs([t],function(t){return a.processInjectorType(t,[],r)}),e&&zs(e,function(n){return a.processProvider(n,t,e)}),this.records.set(fs,Fs(void 0,this)),this.isRootInjector=this.records.has(Ns),this.injectorDefTypes.forEach(function(t){return a.get(t)})}return t.prototype.destroy=function(){this.assertNotDestroyed(),this.destroyed=!0;try{this.onDestroy.forEach(function(t){return t.ngOnDestroy()})}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}},t.prototype.get=function(t,e,n){void 0===e&&(e=ds),void 0===n&&(n=Ce.Default),this.assertNotDestroyed();var a,r=Ne(this);try{if(!(n&Ce.SkipSelf)){var i=this.records.get(t);if(void 0===i){var o=("function"==typeof(a=t)||"object"==typeof a&&a instanceof w)&&_(t);o&&this.injectableDefInScope(o)&&(i=Fs(qs(t),Rs),this.records.set(t,i))}if(void 0!==i)return this.hydrate(t,i)}return(n&Ce.Self?Ls():this.parent).get(t,e)}finally{Ne(r)}},t.prototype.assertNotDestroyed=function(){if(this.destroyed)throw new Error("Injector has already been destroyed.")},t.prototype.processInjectorType=function(t,e,n){var a=this;if(t=J(t)){var r=T(t),i=null==r&&t.ngModule||void 0,o=void 0===i?t:i,s=-1!==n.indexOf(o),u=void 0!==i&&t.providers||Es;if(void 0!==i&&(r=T(i)),null!=r){if(this.injectorDefTypes.add(o),this.records.set(o,Fs(r.factory,Rs)),null!=r.imports&&!s){n.push(o);try{zs(r.imports,function(t){return a.processInjectorType(t,e,n)})}finally{}}var c=r.providers;if(null!=c&&!s){var l=t;zs(c,function(t){return a.processProvider(t,l,c)})}var d=t.ngModule;zs(u,function(t){return a.processProvider(t,d,u)})}}},t.prototype.processProvider=function(t,e,n){var a=Ys(t=J(t))?t:J(t&&t.provide),r=function(t,e,n){var a=js(t,e,n);return Gs(t)?Fs(void 0,t.useValue):Fs(a,Rs)}(t,e,n);if(Ys(t)||!0!==t.multi){var i=this.records.get(a);if(i&&void 0!==i.multi)throw new Error("Mixed multi-provider for "+$(a))}else{var o=this.records.get(a);if(o){if(void 0===o.multi)throw new Error("Mixed multi-provider for "+a+".")}else(o=Fs(void 0,Rs,!0)).factory=function(){return Le(o.multi)},this.records.set(a,o);a=t,o.multi.push(t)}this.records.set(a,r)},t.prototype.hydrate=function(t,e){if(e.value===As)throw new Error("Cannot instantiate cyclic dependency! "+$(t));var n;return e.value===Rs&&(e.value=As,e.value=e.factory()),"object"==typeof e.value&&e.value&&"object"==typeof(n=e.value)&&null!=n&&n.ngOnDestroy&&"function"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value},t.prototype.injectableDefInScope=function(t){return!!t.providedIn&&("string"==typeof t.providedIn?"any"===t.providedIn||"root"===t.providedIn&&this.isRootInjector:this.injectorDefTypes.has(t.providedIn))},t}();function qs(t){var e=_(t);if(null===e){var n=T(t);if(null!==n)return n.factory;if(t instanceof w)throw new Error("Token "+$(t)+" is missing an ngInjectableDef definition.");if(t instanceof Function){var a=t.length;if(a>0){var r=new Array(a).fill("?");throw new Error("Can't resolve all parameters for "+$(t)+": ("+r.join(", ")+").")}return function(){return new t}}throw new Error("unreachable")}return e.factory}function js(t,e,n){var r,i=void 0;if(Ys(t))return qs(J(t));if(Gs(t))i=function(){return J(t.useValue)};else if((r=t)&&r.useExisting)i=function(){return Ee(J(t.useExisting))};else if(t&&t.useFactory)i=function(){return t.useFactory.apply(t,Object(a.__spread)(Le(t.deps||[])))};else{var o=J(t&&(t.useClass||t.provide));if(!o){var s="";throw e&&n&&(s=" - only instances of Provider and Type are allowed, got: ["+n.map(function(e){return e==t?"?"+t+"?":"..."}).join(", ")+"]"),new Error("Invalid provider for the NgModule '"+$(e)+"'"+s)}if(!t.deps)return qs(o);i=function(){return new(o.bind.apply(o,Object(a.__spread)([void 0],Le(t.deps))))}}return i}function Fs(t,e,n){return void 0===n&&(n=!1),{factory:t,value:e,multi:n?[]:void 0}}function zs(t,e){t.forEach(function(t){return Array.isArray(t)?zs(t,e):e(t)})}function Gs(t){return t&&"object"==typeof t&&_s in t}function Ys(t){return"function"==typeof t}function Vs(t,e,n,a,r){if(t=J(t),Array.isArray(t))for(var i=0;i>16;if(Ys(t)||!t.multi){var p=new Kt(u,r,Mo),h=Bs(s,e,r?l:l+f,d);-1==h?(Cn(wn(c,o),o,s),e.push(s),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=65536),n.push(p),o.push(p)):(n[h]=p,o[h]=p)}else{var g=Bs(s,e,l+f,d),m=Bs(s,e,l,l+f),b=m>=0&&n[m];r&&!b||!r&&!(g>=0&&n[g])?(Cn(wn(c,o),o,s),p=function(t,e,n,a,r){var i=new Kt(t,n,Mo);return i.multi=[],i.index=e,i.componentProviders=0,Hs(i,r,a&&!n),i}(r?Ws:Us,n.length,r,a,u),!r&&b&&(n[m].providerFactory=p),e.push(s),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=65536),n.push(p),o.push(p)):Hs(n[r?m:g],u,!r&&a),!r&&a&&b&&n[m].componentProviders++}}}function Hs(t,e,n){t.multi.push(e),n&&t.componentProviders++}function Bs(t,e,n,a){for(var r=n;r-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}ja(this._lView)},t.prototype.onDestroy=function(t){var e,n;n=t,Yo(e=this._lView).push(n),e[vt].firstTemplatePass&&Vo(e).push(e[Ct].length-1,null)},t.prototype.markForCheck=function(){po(this._lView)},t.prototype.detach=function(){this._lView[xt]&=-17},t.prototype.reattach=function(){this._lView[xt]|=16},t.prototype.detectChanges=function(){bo(this._lView,this.context)},t.prototype.checkNoChanges=function(){!function(t){cn(!0);try{mo(t)}finally{cn(!1)}}(this.context)},t.prototype.attachToViewContainerRef=function(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t},t.prototype.detachFromAppRef=function(){this._appRef=null},t.prototype.attachToAppRef=function(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t},t.prototype._lookUpContext=function(){return this._context=this._lView[_t][this._componentIndex]},t}(),lu=function(t){function e(e){var n=t.call(this,e,null,-1)||this;return n._view=e,n}return Object(a.__extends)(e,t),e.prototype.detectChanges=function(){yo(this._view)},e.prototype.checkNoChanges=function(){!function(t){cn(!0);try{yo(t)}finally{cn(!1)}}(this._view)},Object.defineProperty(e.prototype,"context",{get:function(){return null},enumerable:!0,configurable:!0}),e}(cu);function du(t,e,n){return Qs||(Qs=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e}(t)),new Qs(te(e,n))}function fu(t,e,n,r){if(tu||(tu=function(t){function e(e,n,a,r,i,o){var s=t.call(this)||this;return s._declarationParentView=e,s.elementRef=n,s._tView=a,s._renderer=r,s._queries=i,s._injectorIndex=o,s}return Object(a.__extends)(e,t),e.prototype.createEmbeddedView=function(t,e,n,a,r){var i=function(t,e,n,a,r,i){var o=nn(),s=Qe();an(!0),tn(null);var u=oi(n,t,e,4);return u[Mt]=n,r&&(u[wt]=r.createView()),ui(-1,u),t.firstTemplatePass&&(t.node.injectorIndex=i),an(o),tn(s),u}(this._tView,t,this._declarationParentView,0,this._queries,this._injectorIndex);e&&La(i,e,a,r,n.index),li(i,this._tView,t);var o=new cu(i,t,-1);return o._tViewNode=i[Ot],o},e}(t)),0===n.type){var i=r[n.index];return new tu(r,du(e,n,r),n.tViews,Xe()[At],i[wt],n.injectorIndex)}return null}function pu(t,e,n){if(re(t)){var a=t.directiveStart,r=ne(t.index,e);return new cu(r,n,a)}if(3===t.type){var i=ye(e);return new cu(i,i[kt],-1)}return null}var hu=function(){function t(t){this.nativeElement=t}return t.__NG_ELEMENT_ID__=function(){return mu(t)},t}(),gu=function(t){return du(t,Qe(),Xe())},mu=us,bu=function(){return function(t,e,n,a,r,i){this.id=t,this.templateUrl=e,this.slotCount=n,this.encapsulation=a,this.styles=r,this.animations=i}}(),yu=function(){return function(){}}(),vu=function(){return function(){}}(),xu=function(){return function(){}}(),_u=function(){return function(){}}(),Tu=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}({}),wu=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return Ou()},t}(),Su=function(){return function(t){var e=Xe()[At];if(wa(e))return e;throw new Error("Cannot inject Renderer2 when the application uses Renderer3!")}()},Ou=us,Iu=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}({}),Cu=function(){return function(){}}(),ku=function(){return function(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}(),Nu=new ku("7.2.6"),Ru=function(t){function e(e){var n=t.call(this)||this;return n.ngModule=e,n}return Object(a.__extends)(e,t),e.prototype.resolveComponentFactory=function(t){var e=gt(t);return new Pu(e,this.ngModule)},e}(ru);function Au(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}var Eu=new w("ROOT_CONTEXT_TOKEN",{providedIn:"root",factory:function(){return Qo(Ee(Du))}}),Du=new w("SCHEDULER_TOKEN",{providedIn:"root",factory:function(){return me}}),Lu={},Pu=function(t){function e(e,n){var a=t.call(this)||this;return a.componentDef=e,a.ngModule=n,a.componentType=e.type,a.selector=e.selectors[0][0],a.ngContentSelectors=[],a}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"inputs",{get:function(){return Au(this.componentDef.inputs)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){return Au(this.componentDef.outputs)},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,n,a){var r=void 0===n,i=(a=a||this.ngModule)?function(t,e){return{get:function(n,a){var r=t.get(n,Lu);return r!==Lu||a===Lu?r:e.get(n,a)}}}(t,a.injector):t,o=i.get(_u,Sa),s=i.get(Cu,null),u=r?Ti(this.selector,o.createRenderer(null,this.componentDef)):Ci(o,n),c=this.componentDef.onPush?136:132,l=r?Qo():i.get(Eu),d=o.createRenderer(u,this.componentDef);n&&u&&(wa(d)?d.setAttribute(u,"ng-version",Nu.full):u.setAttribute("ng-version",Nu.full));var f,p,h=oi(null,Oi(-1,null,1,0,null,null,null),l,c,o,d,s,i),g=mn(h,null);try{o.begin&&o.begin();var m=Xo(u,this.componentDef,h,o,d);if(p=ee(0,h),e)for(var b=0,y=h[vt],v=p.projection=[],x=0;x',!this.inertBodyElement.querySelector||this.inertBodyElement.querySelector("svg")?(this.inertBodyElement.innerHTML='

',this.getInertBodyElement=this.inertBodyElement.querySelector&&this.inertBodyElement.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(t){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}return t.prototype.getInertBodyElement_XHR=function(t){t=""+t+"";try{t=encodeURI(t)}catch(a){return null}var e=new XMLHttpRequest;e.responseType="document",e.open("GET","data:text/html;charset=utf-8,"+t,!1),e.send(void 0);var n=e.response.body;return n.removeChild(n.firstChild),n},t.prototype.getInertBodyElement_DOMParser=function(t){t=""+t+"";try{var e=(new window.DOMParser).parseFromString(t,"text/html").body;return e.removeChild(e.firstChild),e}catch(n){return null}},t.prototype.getInertBodyElement_InertDocument=function(t){var e=this.inertDocument.createElement("template");return"content"in e?(e.innerHTML=t,e):(this.inertBodyElement.innerHTML=t,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(this.inertBodyElement),this.inertBodyElement)},t.prototype.stripCustomNsAttrs=function(t){for(var e=t.attributes,n=e.length-1;0"),!0},t.prototype.endElement=function(t){var e=t.nodeName.toLowerCase();Qu.hasOwnProperty(e)&&!$u.hasOwnProperty(e)&&(this.buf.push(""))},t.prototype.chars=function(t){this.buf.push(oc(t))},t.prototype.checkClobberedElement=function(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error("Failed to sanitize html because the element is clobbered: "+t.outerHTML);return e},t}(),rc=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,ic=/([^\#-~ |!])/g;function oc(t){return t.replace(/&/g,"&").replace(rc,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(ic,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}function sc(t,e){var n=null;try{Ku=Ku||new Gu(t);var a=e?String(e):"";n=Ku.getInertBodyElement(a);var r=5,i=a;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,a=i,i=n.innerHTML,n=Ku.getInertBodyElement(a)}while(a!==i);var o=new ac,s=o.sanitizeChildren(uc(n)||n);return Fu()&&o.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"),s}finally{if(n)for(var u=uc(n)||n;u.firstChild;)u.removeChild(u.firstChild)}}function uc(t){return"content"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var cc={marker:"element"},lc={marker:"comment"},dc="\ufffd",fc=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,pc=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,hc=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,gc=/\ufffd(\d+):?\d*\ufffd/gi,mc=/({\s*\ufffd\d+:?\d*\ufffd\s*,\s*\S{6}\s*,[\s\S]*})/gi,bc=/\[(\ufffd.+?\ufffd?)\]/g,yc=/({\s*)(VAR_(PLURAL|SELECT)(_\d+)?)(\s*,)/g,vc=/\ufffdI18N_EXP_(ICU(_\d+)?)\ufffd/g;function xc(t){if(!t)return[];var e,n=0,a=[],r=[],i=/[{}]/g;for(i.lastIndex=0;e=i.exec(t);){var o=e.index;if("}"==e[0]){if(a.pop(),0==a.length){var s=t.substring(n,o);fc.test(s)?r.push(_c(s)):s&&r.push(s),n=o+1}}else{if(0==a.length){var u=t.substring(n,o);r.push(u),n=o+1}a.push("{")}}var c=t.substring(n);return""!=c&&r.push(c),r}function _c(t){for(var e=[],n=[],a=1,r=0,i=xc(t=t.replace(fc,function(t,e,n){return a="select"===n?0:1,r=parseInt(e.substr(1),10),""})),o=0;o0&&o!==s&&l.push(o.index<<3|0);for(var d=[],f=[],p=function(t,e){if("number"!=typeof e)return Tc(t);var n=t.indexOf(":"+e+dc)+2+e.toString().length,a=t.search(new RegExp(dc+"\\/\\*\\d+:"+e+dc));return Tc(t.substring(n,a))}(n,a).split(hc),h=0;h>>17,d=void 0;o=Rc(i,d=l===t?a[Ot]:ee(l,a),o),d.next=null;break;case 0:var f=c>>>3;s.push(f),o=i,(i=ee(f,a))&&(tn(i),3===i.type&&an(!0));break;case 5:o=i=ee(c>>>3,a),tn(i),an(!1);break;case 4:Ri(c>>>3,e[++u],e[++u]);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}else switch(c){case lc:var p=e[++u],h=r.createComment(p);o=i,i=si(n++,5,h,null,null),Yn(h,a),i.activeCaseIndex=null,an(!1);break;case cc:var g=e[++u];o=i,i=si(n++,3,r.createElement(g),g,null);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}}return an(!1),s}function Lc(t,e){var n=ee(t,e);Ka(n,Qt(t,e)||null,e),n.detached=!0;var a=Po(t);if(oe(a)){var r=a;0!==n.type&&Ka(n,r[zt]||null,e),r[Gt]=null}}function Pc(t,e,n){Nc(t,e,n),Ec()}function Mc(t,e){var n=Xe()[vt];n.firstTemplatePass&&null===n.data[t+qt]&&function(t,e,n){for(var a=Qe().index-qt,r=[],i=0;i>>2;switch(3&p){case 1:Ri(h,e[++f],d,e[++f]);break;case 0:Bi(h,d);break;case 2:var g=e[++f],m=n[g],b=ee(h,i);if(null!==b.activeCaseIndex)for(var y=m.remove[b.activeCaseIndex],v=0;v>>3,i);break;case 6:var _=ee(y[v+1]>>>3,i).activeCaseIndex;null!==_&&be(n[x>>>3].remove[_],y)}}var T=Yc(m,d);b.activeCaseIndex=-1!==T?T:null,Dc(-1,m.create[T],m.expandoStartIndex,i),s=!0;break;case 3:m=n[g=e[++f]],b=ee(h,i),t(m.update[b.activeCaseIndex],n,a,r,i,s)}}}u+=l}}(a,r,e[It]-jc-1,qc,e),qc=0,jc=0}}var Gc=function(t){return t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other",t}({});function Yc(t,e){var n=t.cases.indexOf(e);if(-1===n)switch(t.type){case 1:var a=function(t,n){switch(function(t,e){"string"==typeof e&&(e=parseInt(e,10));var n=e,a=n.toString().replace(/^[^.]*\.?/,""),r=Math.floor(Math.abs(n)),i=a.length,o=parseInt(a,10),s=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(t.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?Gc.One:Gc.Other;case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?Gc.One:Gc.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===r||1===n?Gc.One:Gc.Other;case"ar":return 0===n?Gc.Zero:1===n?Gc.One:2===n?Gc.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?Gc.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?Gc.Many:Gc.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===r&&0===i?Gc.One:Gc.Other;case"be":return n%10==1&&n%100!=11?Gc.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?Gc.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?Gc.Many:Gc.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?Gc.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?Gc.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?Gc.Few:0!==n&&n%1e6==0?Gc.Many:Gc.Other;case"bs":case"hr":case"sr":return 0===i&&r%10==1&&r%100!=11||o%10==1&&o%100!=11?Gc.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)||o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)?Gc.Few:Gc.Other;case"cs":case"sk":return 1===r&&0===i?Gc.One:r===Math.floor(r)&&r>=2&&r<=4&&0===i?Gc.Few:0!==i?Gc.Many:Gc.Other;case"cy":return 0===n?Gc.Zero:1===n?Gc.One:2===n?Gc.Two:3===n?Gc.Few:6===n?Gc.Many:Gc.Other;case"da":return 1===n||0!==s&&(0===r||1===r)?Gc.One:Gc.Other;case"dsb":case"hsb":return 0===i&&r%100==1||o%100==1?Gc.One:0===i&&r%100==2||o%100==2?Gc.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||o%100===Math.floor(o%100)&&o%100>=3&&o%100<=4?Gc.Few:Gc.Other;case"ff":case"fr":case"hy":case"kab":return 0===r||1===r?Gc.One:Gc.Other;case"fil":return 0===i&&(1===r||2===r||3===r)||0===i&&r%10!=4&&r%10!=6&&r%10!=9||0!==i&&o%10!=4&&o%10!=6&&o%10!=9?Gc.One:Gc.Other;case"ga":return 1===n?Gc.One:2===n?Gc.Two:n===Math.floor(n)&&n>=3&&n<=6?Gc.Few:n===Math.floor(n)&&n>=7&&n<=10?Gc.Many:Gc.Other;case"gd":return 1===n||11===n?Gc.One:2===n||12===n?Gc.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?Gc.Few:Gc.Other;case"gv":return 0===i&&r%10==1?Gc.One:0===i&&r%10==2?Gc.Two:0!==i||r%100!=0&&r%100!=20&&r%100!=40&&r%100!=60&&r%100!=80?0!==i?Gc.Many:Gc.Other:Gc.Few;case"he":return 1===r&&0===i?Gc.One:2===r&&0===i?Gc.Two:0!==i||n>=0&&n<=10||n%10!=0?Gc.Other:Gc.Many;case"is":return 0===s&&r%10==1&&r%100!=11||0!==s?Gc.One:Gc.Other;case"ksh":return 0===n?Gc.Zero:1===n?Gc.One:Gc.Other;case"kw":case"naq":case"se":case"smn":return 1===n?Gc.One:2===n?Gc.Two:Gc.Other;case"lag":return 0===n?Gc.Zero:0!==r&&1!==r||0===n?Gc.Other:Gc.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?Gc.Few:0!==o?Gc.Many:Gc.Other:Gc.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===i&&o%100===Math.floor(o%100)&&o%100>=11&&o%100<=19?Gc.Zero:n%10==1&&n%100!=11||2===i&&o%10==1&&o%100!=11||2!==i&&o%10==1?Gc.One:Gc.Other;case"mk":return 0===i&&r%10==1||o%10==1?Gc.One:Gc.Other;case"mt":return 1===n?Gc.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?Gc.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?Gc.Many:Gc.Other;case"pl":return 1===r&&0===i?Gc.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?Gc.Few:0===i&&1!==r&&r%10===Math.floor(r%10)&&r%10>=0&&r%10<=1||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=12&&r%100<=14?Gc.Many:Gc.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?Gc.One:Gc.Other;case"ro":return 1===r&&0===i?Gc.One:0!==i||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?Gc.Few:Gc.Other;case"ru":case"uk":return 0===i&&r%10==1&&r%100!=11?Gc.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?Gc.Few:0===i&&r%10==0||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=11&&r%100<=14?Gc.Many:Gc.Other;case"shi":return 0===r||1===n?Gc.One:n===Math.floor(n)&&n>=2&&n<=10?Gc.Few:Gc.Other;case"si":return 0===n||1===n||0===r&&1===o?Gc.One:Gc.Other;case"sl":return 0===i&&r%100==1?Gc.One:0===i&&r%100==2?Gc.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||0!==i?Gc.Few:Gc.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?Gc.One:Gc.Other;default:return Gc.Other}}("en-US",e)){case Gc.Zero:return"zero";case Gc.One:return"one";case Gc.Two:return"two";case Gc.Few:return"few";case Gc.Many:return"many";default:return"other"}}();-1===(n=t.cases.indexOf(a))&&"other"!==a&&(n=t.cases.indexOf("other"));break;case 0:n=t.cases.indexOf("other")}return n}function Vc(t,e,n,r){for(var i=[],o=[],s=[],u=[],c=[],l=0;l=0;n--){var a=e[n];if(t===a.name)return a}throw new Error("The pipe '"+t+"' could not be found!")}(e,a.pipeRegistry),a.data[r]=n,n.onDestroy&&(a.pipeDestroyHooks||(a.pipeDestroyHooks=[])).push(r,n.onDestroy)):n=a.data[r];var i=n.factory(null);return Eo(t,i),i}function sl(t,e,n){var a=Po(t);return pl(fl(t)?Xc(e,a.transform,n,a):a.transform(n))}function ul(t,e,n,a){var r=Po(t);return pl(fl(t)?Jc(e,r.transform,n,a,r):r.transform(n,a))}function cl(t,e,n,a,r){var i=Po(t);return pl(fl(t)?Qc(e,i.transform,n,a,r,i):i.transform(n,a,r))}function ll(t,e,n,a,r,i){var o=Po(t);return pl(fl(t)?tl(e,o.transform,n,a,r,i,o):o.transform(n,a,r,i))}function dl(t,e,n){var a=Po(t);return pl(fl(t)?il(e,a.transform,n,a):a.transform.apply(a,n))}function fl(t){return Xe()[vt].data[t+qt].pure}function pl(t){return ca.isWrapped(t)&&(t=ca.unwrap(t),Xe()[hn()]=ha),t}var hl=function(t){function e(e){void 0===e&&(e=!1);var n=t.call(this)||this;return n.__isAsync=e,n}return Object(a.__extends)(e,t),e.prototype.emit=function(e){t.prototype.next.call(this,e)},e.prototype.subscribe=function(e,n,a){var i,o=function(t){return null},s=function(){return null};e&&"object"==typeof e?(i=this.__isAsync?function(t){setTimeout(function(){return e.next(t)})}:function(t){e.next(t)},e.error&&(o=this.__isAsync?function(t){setTimeout(function(){return e.error(t)})}:function(t){e.error(t)}),e.complete&&(s=this.__isAsync?function(){setTimeout(function(){return e.complete()})}:function(){e.complete()})):(i=this.__isAsync?function(t){setTimeout(function(){return e(t)})}:function(t){e(t)},n&&(o=this.__isAsync?function(t){setTimeout(function(){return n(t)})}:function(t){n(t)}),a&&(s=this.__isAsync?function(){setTimeout(function(){return a()})}:function(){a()}));var u=t.prototype.subscribe.call(this,i,o,s);return e instanceof r.a&&e.add(u),u},e}(i.a),gl=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return bl(t,hu)},t}(),ml=function(t,e){return fu(t,e,Qe(),Xe())},bl=us,yl=function(){function t(t,e,n){this.parent=t,this.shallow=e,this.deep=n}return t.prototype.track=function(t,e,n,a){n?this.deep=Rl(this.deep,t,e,null!=a?a:null):this.shallow=Rl(this.shallow,t,e,null!=a?a:null)},t.prototype.clone=function(){return new t(this,null,this.deep)},t.prototype.container=function(){var e=vl(this.shallow),n=vl(this.deep);return e||n?new t(this,e,n):null},t.prototype.createView=function(){var e=xl(this.shallow),n=xl(this.deep);return e||n?new t(this,e,n):null},t.prototype.insertView=function(t){_l(t,this.shallow),_l(t,this.deep)},t.prototype.addNode=function(t){return Cl(this.deep,t),ae(t)?(Cl(this.shallow,t),t.parent&&ae(t.parent)&&Cl(this.parent.shallow,t),this.parent):(function(t){return null===t.parent||ae(t.parent)}(t)&&Cl(this.shallow,t),this)},t.prototype.removeView=function(){Tl(this.shallow),Tl(this.deep)},t}();function vl(t){for(var e=null;t;){var n=[];t.values.push(n),e={next:e,list:t.list,predicate:t.predicate,values:n,containerValues:null},t=t.next}return e}function xl(t){for(var e=null;t;)e={next:e,list:t.list,predicate:t.predicate,values:[],containerValues:t.values},t=t.next;return e}function _l(t,e){for(;e;)e.containerValues.splice(t,0,e.values),e=e.next}function Tl(t){for(;t;){var e=t.containerValues,n=e.indexOf(t.values);e.splice(n,1)[0].length&&t.list.setDirty(),t=t.next}}function wl(t,e){var n=t.localNames;if(n)for(var a=0;a-1?Dn(e[vt].data,e,a,t):function(t,e){return 3===t.type||4===t.type?du(hu,t,e):0===t.type?fu(gl,hu,t,e):null}(t,e)}function Cl(t,e){for(var n=Xe();t;){var a=t.predicate,r=a.type;if(r){var i=null;r===gl?i=Ol(r,e,n,a.read):null!==(u=En(e,n,r,!1,!1))&&(i=Il(e,n,a.read,u)),null!==i&&kl(t,i)}else for(var o=a.selector,s=0;s0?(t=a.concat(t.slice(n+1)),n=0):n++:(e.push(a),n++)}return e}(t),this.dirty=!1},t.prototype.notifyOnChanges=function(){this.changes.emit(this)},t.prototype.setDirty=function(){this.dirty=!0},t.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},t}();function El(t,e,n,a){var r,i,o,s=new Al;return(r=yl,i=Xe(),o=i[wt],He&&He!==i[Ot]&&!ae(He)&&(o&&(o=i[wt]=o.clone()),He.flags|=4),o||(i[wt]=new r(null,null,null))).track(s,e,n,a),function(t,e,n){var a=Yo(t);a.push(e),t[vt].firstTemplatePass&&Vo(t).push(n,a.length-1)}(Xe(),s,s.destroy),null!=t&&Eo(t,s),s}function Dl(t){return!!t.dirty&&(t.reset(t._valuesTree),t.notifyOnChanges(),!0)}function Ll(t,e){return fu(gl,hu,t,e)}var Pl="__SANITIZER_TRUSTED_BRAND__";function Ml(t,e){return t instanceof String&&t[Pl]===e}function ql(t){return Yl(t,"Html")}function jl(t){return Yl(t,"Style")}function Fl(t){return Yl(t,"Script")}function zl(t){return Yl(t,"Url")}function Gl(t){return Yl(t,"ResourceUrl")}function Yl(t,e){var n=new String(t);return n[Pl]=e,n}var Vl=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),Hl=/^url\(([^)]+)\)$/;function Bl(t){if(!(t=String(t).trim()))return"";var e=t.match(Hl);return e&&Hu(e[1])===e[1]||t.match(Vl)&&function(t){for(var e=!0,n=!0,a=0;a=0;t--){var e=_d[t],n=e.moduleType,a=e.ngModule;a.declarations&&a.declarations.every(wd)&&(_d.splice(t,1),Cd(n,a))}}finally{Td=!1}}}(),void 0!==t.ngSelectorScope){var s=Nd(t.ngSelectorScope);kd(n,s)}}return n},configurable:!1})}function Ld(t,e){var n=null;Object.defineProperty(t,f,{get:function(){if(null===n){var a=Md(t,e);n=ve().compileDirective(Ql,"ng://"+(t&&t.name)+"/ngDirectiveDef.js",a)}return n},configurable:!1})}function Pd(t){return Object.getPrototypeOf(t.prototype)===Object.prototype}function Md(t,e){var n=bd().propMetadata(t);return{name:t.name,type:t,typeArgumentCount:0,selector:e.selector,deps:yd(t),host:e.host||rt,propMetadata:n,inputs:e.inputs||it,outputs:e.outputs||it,queries:qd(t,n,jd),lifecycle:{usesOnChanges:void 0!==t.prototype.ngOnChanges},typeSourceSpan:null,usesInheritance:!Pd(t),exportAs:e.exportAs||null,providers:e.providers||null}}function qd(t,e,n){var a=[],r=function(r){e.hasOwnProperty(r)&&e[r].forEach(function(e){if(n(e)){if(!e.selector)throw new Error("Can't construct a query for the property \""+r+'" of "'+Zt(t)+"\" since the query selector wasn't defined.");a.push(function(t,e){return{propertyName:r,predicate:(n=e.selector,"string"==typeof n?n.split(",").map(function(t){return t.trim()}):J(n)),descendants:e.descendants,first:e.first,read:e.read?e.read:null};var n}(0,e))}})};for(var i in e)r(i);return a}function jd(t){var e=t.ngMetadataName;return"ContentChild"===e||"ContentChildren"===e}function Fd(t){var e=t.ngMetadataName;return"ViewChild"===e||"ViewChildren"===e}function zd(t,e){var n=null;Object.defineProperty(t,g,{get:function(){return null===n&&(n=ve().compilePipe(Ql,"ng://"+Zt(t)+"/ngPipeDef.js",{type:t,name:t.name,deps:yd(t),pipeName:e.name,pure:void 0===e.pure||e.pure})),n},configurable:!1})}var Gd=C("Directive",function(t){return void 0===t&&(t={}),t},void 0,void 0,function(t,e){return Qd(t,e)}),Yd=C("Component",function(t){return void 0===t&&(t={}),Object(a.__assign)({changeDetection:j.Default},t)},Gd,void 0,function(t,e){return Jd(t,e)}),Vd=C("Pipe",function(t){return Object(a.__assign)({pure:!0},t)},void 0,void 0,function(t,e){return tf(t,e)}),Hd=function(t){return function(e,n){for(var a=[],r=2;r1?" ("+function(t){for(var e=[],n=0;n-1)return e.push(t[n]),e;e.push(t[n])}return e}(t.slice().reverse()).map(function(t){return $(t.token)}).join(" -> ")+")":""}function If(t,e,n,a){var r=[e],i=n(r),o=a?function(t,e){var n=i+" caused by: "+(e instanceof Error?e.message:e),a=Error(n);return a[vf]=e,a}(0,a):Error(i);return o.addKey=Cf,o.keys=r,o.injectors=[t],o.constructResolvingMessage=n,o[vf]=a,o}function Cf(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage(this.keys)}function kf(t,e){for(var n=[],a=0,r=e.length;a=this._providers.length)throw function(t){return Error("Index "+t+" is out-of-bounds.")}(t);return this._providers[t]},t.prototype._new=function(t){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw If(this,t.key,function(t){return"Cannot instantiate cyclic dependency!"+Of(t)});return this._instantiateProvider(t)},t.prototype._getMaxNumberOfObjects=function(){return this.objs.length},t.prototype._instantiateProvider=function(t){if(t.multiProvider){for(var e=new Array(t.resolvedFactories.length),n=0;n0&&(r=setTimeout(function(){a._callbacks=a._callbacks.filter(function(t){return t.timeoutId!==r}),t(a._didWork,a.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})},t.prototype.whenStable=function(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()},t.prototype.getPendingRequestCount=function(){return this._pendingCount},t.prototype.findProviders=function(t,e,n){return[]},t}(),jp=function(){function t(){this._applications=new Map,Gp.addToWindow(this)}return t.prototype.registerApplication=function(t,e){this._applications.set(t,e)},t.prototype.unregisterApplication=function(t){this._applications.delete(t)},t.prototype.unregisterAllApplications=function(){this._applications.clear()},t.prototype.getTestability=function(t){return this._applications.get(t)||null},t.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},t.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},t.prototype.findTestabilityInTree=function(t,e){return void 0===e&&(e=!0),Gp.findTestabilityInTree(this,t,e)},Object(a.__decorate)([Object(a.__metadata)("design:paramtypes",[])],t)}();function Fp(t){Gp=t}var zp,Gp=new(function(){function t(){}return t.prototype.addToWindow=function(t){},t.prototype.findTestabilityInTree=function(t,e,n){return null},t}());function Yp(t,e,n){return Promise.resolve(new Kc(n))}var Vp=new w("AllowMultipleToken"),Hp=function(){return function(t,e){this.name=t,this.token=e}}();function Bp(t){if(zp&&!zp.destroyed&&!zp.injector.get(Vp,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");zp=t.get(Zp);var e=t.get(Qf,null);return e&&e.forEach(function(t){return t()}),zp}function Up(t,e,n){void 0===n&&(n=[]);var a="Platform: "+e,r=new w(a);return function(e){void 0===e&&(e=[]);var i=$p();if(!i||i.injector.get(Vp,!1))if(t)t(n.concat(e).concat({provide:r,useValue:!0}));else{var o=n.concat(e).concat({provide:r,useValue:!0});Bp(hs.create({providers:o,name:a}))}return Wp(r)}}function Wp(t){var e=$p();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}function Kp(){zp&&!zp.destroyed&&zp.destroy()}function $p(){return zp&&!zp.destroyed?zp:null}var Zp=function(){function t(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return t.prototype.bootstrapModuleFactory=function(t,e){var n,a=this,r="noop"===(n=e?e.ngZone:void 0)?new Mp:("zone.js"===n?void 0:n)||new Rp({enableLongStackTrace:Fu()}),i=[{provide:Rp,useValue:r}];return r.run(function(){var e=hs.create({providers:i,parent:a.injector,name:t.moduleType.name}),n=t.create(e),o=n.injector.get(Sf,null);if(!o)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return n.onDestroy(function(){return Qp(a._modules,n)}),r.runOutsideAngular(function(){return r.onError.subscribe({next:function(t){o.handleError(t)}})}),function(t,e,r){try{var i=((o=n.injector.get(Kf)).runInitializers(),o.donePromise.then(function(){return a._moduleDoBootstrap(n),n}));return Bf(i)?i.catch(function(n){throw e.runOutsideAngular(function(){return t.handleError(n)}),n}):i}catch(s){throw e.runOutsideAngular(function(){return t.handleError(s)}),s}var o}(o,r)})},t.prototype.bootstrapModule=function(t,e){var n=this;void 0===e&&(e=[]);var a=Xp({},e);return function(t,e,n){return t.get(yp).createCompiler([e]).compileModuleAsync(n)}(this.injector,a,t).then(function(t){return n.bootstrapModuleFactory(t,a)})},t.prototype._moduleDoBootstrap=function(t){var e=t.injector.get(Jp);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(function(t){return e.bootstrap(t)});else{if(!t.instance.ngDoBootstrap)throw new Error("The module "+$(t.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');t.instance.ngDoBootstrap(e)}this._modules.push(t)},t.prototype.onDestroy=function(t){this._destroyListeners.push(t)},Object.defineProperty(t.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(t){return t.destroy()}),this._destroyListeners.forEach(function(t){return t()}),this._destroyed=!0},Object.defineProperty(t.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),t}();function Xp(t,e){return Array.isArray(e)?e.reduce(Xp,t):Object(a.__assign)({},t,e)}var Jp=function(){function t(t,e,n,a,r,i){var c=this;this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=a,this._componentFactoryResolver=r,this._initStatus=i,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Fu(),this._zone.onMicrotaskEmpty.subscribe({next:function(){c._zone.run(function(){c.tick()})}});var l=new o.a(function(t){c._stable=c._zone.isStable&&!c._zone.hasPendingMacrotasks&&!c._zone.hasPendingMicrotasks,c._zone.runOutsideAngular(function(){t.next(c._stable),t.complete()})}),d=new o.a(function(t){var e;c._zone.runOutsideAngular(function(){e=c._zone.onStable.subscribe(function(){Rp.assertNotInAngularZone(),W(function(){c._stable||c._zone.hasPendingMacrotasks||c._zone.hasPendingMicrotasks||(c._stable=!0,t.next(!0))})})});var n=c._zone.onUnstable.subscribe(function(){Rp.assertInAngularZone(),c._stable&&(c._stable=!1,c._zone.runOutsideAngular(function(){t.next(!1)}))});return function(){e.unsubscribe(),n.unsubscribe()}});this.isStable=Object(s.a)(l,d.pipe(Object(u.a)()))}var e;return e=t,t.prototype.bootstrap=function(t,e){var n,a=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");n=t instanceof Xs?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);var r=n instanceof ou?null:this._injector.get(su),i=n.create(hs.NULL,[],e||n.selector,r);i.onDestroy(function(){a._unloadComponent(i)});var o=i.injector.get(qp,null);return o&&i.injector.get(jp).registerApplication(i.location.nativeElement,o),this._loadComponent(i),Fu()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),i},t.prototype.tick=function(){var t=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var n=e._tickScope();try{this._runningTick=!0,this._views.forEach(function(t){return t.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(t){return t.checkNoChanges()})}catch(a){this._zone.runOutsideAngular(function(){return t._exceptionHandler.handleError(a)})}finally{this._runningTick=!1,Cp(n)}},t.prototype.attachView=function(t){var e=t;this._views.push(e),e.attachToAppRef(this)},t.prototype.detachView=function(t){var e=t;Qp(this._views,e),e.detachFromAppRef()},t.prototype._loadComponent=function(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(ep,[]).concat(this._bootstrapListeners).forEach(function(e){return e(t)})},t.prototype._unloadComponent=function(t){this.detachView(t.hostView),Qp(this.components,t)},t.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(t){return t.destroy()})},Object.defineProperty(t.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),t._tickScope=Ip("ApplicationRef#tick()"),t}();function Qp(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}var th=function(){function t(){this.dirty=!0,this._results=[],this.changes=new hl,this.length=0}return t.prototype.map=function(t){return this._results.map(t)},t.prototype.filter=function(t){return this._results.filter(t)},t.prototype.find=function(t){return this._results.find(t)},t.prototype.reduce=function(t,e){return this._results.reduce(t,e)},t.prototype.forEach=function(t){this._results.forEach(t)},t.prototype.some=function(t){return this._results.some(t)},t.prototype.toArray=function(){return this._results.slice()},t.prototype[U()]=function(){return this._results[U()]()},t.prototype.toString=function(){return this._results.toString()},t.prototype.reset=function(t){this._results=function t(e){return e.reduce(function(e,n){var a=Array.isArray(n)?t(n):n;return e.concat(a)},[])}(t),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]},t.prototype.notifyOnChanges=function(){this.changes.emit(this)},t.prototype.setDirty=function(){this.dirty=!0},t.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},t}(),eh=function(){return function(){}}(),nh={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},ah=function(){function t(t,e){this._compiler=t,this._config=e||nh}return t.prototype.load=function(t){return this._compiler instanceof mp?this.loadFactory(t):this.loadAndCompile(t)},t.prototype.loadAndCompile=function(t){var e=this,r=Object(a.__read)(t.split("#"),2),i=r[0],o=r[1];return void 0===o&&(o="default"),n("crnd")(i).then(function(t){return t[o]}).then(function(t){return rh(t,i,o)}).then(function(t){return e._compiler.compileModuleAsync(t)})},t.prototype.loadFactory=function(t){var e=Object(a.__read)(t.split("#"),2),r=e[0],i=e[1],o="NgFactory";return void 0===i&&(i="default",o=""),n("crnd")(this._config.factoryPathPrefix+r+this._config.factoryPathSuffix).then(function(t){return t[i+o]}).then(function(t){return rh(t,r,i)})},t}();function rh(t,e,n){if(!t)throw new Error("Cannot find '"+n+"' in '"+e+"'");return t}var ih=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return sh(t,hu)},t}(),oh=function(t,e){return function(t,e,n,r){var i;eu||(eu=function(t){function n(e,n,a){var r=t.call(this)||this;return r._lContainer=e,r._hostTNode=n,r._hostView=a,r._viewRefs=[],r}return Object(a.__extends)(n,t),Object.defineProperty(n.prototype,"element",{get:function(){return du(e,this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"injector",{get:function(){return new Mn(this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"parentInjector",{get:function(){var t=In(this._hostTNode,this._hostView),e=ge(t,this._hostView),n=function(t,e,n){if(n.parent&&-1!==n.parent.injectorIndex){for(var a=n.parent.injectorIndex,r=n.parent;null!=r.parent&&a==r.injectorIndex;)r=r.parent;return r}for(var i=he(t),o=e,s=e[Ot];i>1;)s=(o=o[Mt])[Ot],i--;return s}(t,this._hostView,this._hostTNode);return fe(t)&&null!=n?new Mn(n,e):new Mn(null,this._hostView)},enumerable:!0,configurable:!0}),n.prototype.clear=function(){for(;this._lContainer[Ft].length;)this.remove(0)},n.prototype.get=function(t){return this._viewRefs[t]||null},Object.defineProperty(n.prototype,"length",{get:function(){return this._lContainer[Ft].length},enumerable:!0,configurable:!0}),n.prototype.createEmbeddedView=function(t,e,n){var a=this._adjustIndex(n),r=t.createEmbeddedView(e||{},this._lContainer,this._hostTNode,this._hostView,a);return r.attachToViewContainerRef(this),this._viewRefs.splice(a,0,r),r},n.prototype.createComponent=function(t,e,n,a,r){var i=n||this.parentInjector;!r&&null==t.ngModule&&i&&(r=i.get(su,null));var o=t.create(i,a,void 0,r);return this.insert(o.hostView,e),o},n.prototype.insert=function(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n=t._lView,a=this._adjustIndex(e);return La(n,this._lContainer,this._hostView,a,this._hostTNode.index),Da(n,!0,Wa(a,this._lContainer[Ft],this._lContainer[zt])),t.attachToViewContainerRef(this),this._viewRefs.splice(a,0,t),t},n.prototype.move=function(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n=this.indexOf(t);return this.detach(n),this.insert(t,this._adjustIndex(e)),t},n.prototype.indexOf=function(t){return this._viewRefs.indexOf(t)},n.prototype.remove=function(t){var e=this._adjustIndex(t,-1);Ma(this._lContainer,this._hostTNode,e),this._viewRefs.splice(e,1)},n.prototype.detach=function(t){var e=this._adjustIndex(t,-1),n=Pa(this._lContainer,e,!!this._hostTNode.detached);return null!=this._viewRefs.splice(e,1)[0]?new cu(n,n[kt],n[Lt]):null},n.prototype._adjustIndex=function(t,e){return void 0===e&&(e=0),null==t?this._lContainer[Ft].length+e:t},n}(t));var o=r[n.index];if(oe(o))(i=o)[jt]=-1;else{var s=r[At].createComment("");if(se(r)){var u=r[At],c=te(n,r);Va(u,Ha(u,c),s,function(t,e){return wa(t)?t.nextSibling(e):e.nextSibling}(u,c))}else Ba(s,n,r);r[n.index]=i=to(o,n,r,s,!0),fo(r,n.index,i)}return new eu(i,n,r)}(t,e,Qe(),Xe())},sh=us,uh=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return lh()},t}(),ch=function(){return pu(Qe(),Xe(),null)},lh=function(){for(var t=[],e=0;e-1}(a)||"root"===r.providedIn&&a._def.isRoot))){var l=t._providers.length;return t._def.providersByKey[e.tokenKey]={flags:5120,value:s.factory,deps:[],index:l,token:e.token},t._providers[l]=rm,t._providers[l]=dm(t,t._def.providersByKey[e.tokenKey])}return 4&e.flags?n:t._parent.get(e.token,n)}finally{Ne(i)}}function dm(t,e){var n;switch(201347067&e.flags){case 512:n=function(t,e,n){var r=n.length;switch(r){case 0:return new e;case 1:return new e(lm(t,n[0]));case 2:return new e(lm(t,n[0]),lm(t,n[1]));case 3:return new e(lm(t,n[0]),lm(t,n[1]),lm(t,n[2]));default:for(var i=new Array(r),o=0;o=n.length)&&(e=n.length-1),e<0)return null;var a=n[e];return a.viewContainerParent=null,mm(n,e),cg.dirtyParentQueries(a),hm(a),a}function pm(t,e,n){var a=e?Ng(e,e.def.lastRenderRootNode):t.renderElement,r=n.renderer.parentNode(a),i=n.renderer.nextSibling(a);Fg(n,2,r,i,void 0)}function hm(t){Fg(t,3,null,null,void 0)}function gm(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function mm(t,e){e>=t.length-1?t.pop():t.splice(e,1)}var bm=new Object;function ym(t,e,n,a,r,i){return new xm(t,e,n,a,r,i)}function vm(t){return t.viewDefFactory}var xm=function(t){function e(e,n,a,r,i,o){var s=t.call(this)||this;return s.selector=e,s.componentType=n,s._inputs=r,s._outputs=i,s.ngContentSelectors=o,s.viewDefFactory=a,s}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"inputs",{get:function(){var t=[],e=this._inputs;for(var n in e)t.push({propName:n,templateName:e[n]});return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){var t=[];for(var e in this._outputs)t.push({propName:e,templateName:this._outputs[e]});return t},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,n,a){if(!a)throw new Error("ngModule should be provided");var r=jg(this.viewDefFactory),i=r.nodes[0].element.componentProvider.nodeIndex,o=cg.createRootView(t,e||[],n,r,a,bm),s=ig(o,i).instance;return n&&o.renderer.setAttribute(rg(o,0).renderElement,"ng-version",Nu.full),new _m(o,new Om(o),s)},e}(Xs),_m=function(t){function e(e,n,a){var r=t.call(this)||this;return r._view=e,r._viewRef=n,r._component=a,r._elDef=r._view.def.nodes[0],r.hostView=n,r.changeDetectorRef=n,r.instance=a,r}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return new hu(rg(this._view,this._elDef.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new Nm(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._viewRef.destroy()},e.prototype.onDestroy=function(t){this._viewRef.onDestroy(t)},e}(Zs);function Tm(t,e,n){return new wm(t,e,n)}var wm=function(){function t(t,e,n){this._view=t,this._elDef=e,this._data=n,this._embeddedViews=[]}return Object.defineProperty(t.prototype,"element",{get:function(){return new hu(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new Nm(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parentInjector",{get:function(){for(var t=this._view,e=this._elDef.parent;!e&&t;)e=kg(t),t=t.parent;return t?new Nm(t,e):new Nm(this._view,null)},enumerable:!0,configurable:!0}),t.prototype.clear=function(){for(var t=this._embeddedViews.length-1;t>=0;t--){var e=fm(this._data,t);cg.destroyView(e)}},t.prototype.get=function(t){var e=this._embeddedViews[t];if(e){var n=new Om(e);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(t.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),t.prototype.createEmbeddedView=function(t,e,n){var a=t.createEmbeddedView(e||{});return this.insert(a,n),a},t.prototype.createComponent=function(t,e,n,a,r){var i=n||this.parentInjector;r||t instanceof ou||(r=i.get(su));var o=t.create(i,a,void 0,r);return this.insert(o.hostView,e),o},t.prototype.insert=function(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n,a,r,i,o=t;return i=(n=this._data).viewContainer._embeddedViews,null==(a=e)&&(a=i.length),(r=o._view).viewContainerParent=this._view,gm(i,a,r),function(t,e){var n=Cg(e);if(n&&n!==t&&!(16&e.state)){e.state|=16;var a=n.template._projectedViews;a||(a=n.template._projectedViews=[]),a.push(e),function(t,n){if(!(4&n.flags)){e.parent.def.nodeFlags|=4,n.flags|=4;for(var a=n.parent;a;)a.childFlags|=4,a=a.parent}}(0,e.parentNodeDef)}}(n,r),cg.dirtyParentQueries(r),pm(n,a>0?i[a-1]:null,r),o.attachToViewContainerRef(this),t},t.prototype.move=function(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n,a,r,i,o,s=this._embeddedViews.indexOf(t._view);return r=e,o=(i=(n=this._data).viewContainer._embeddedViews)[a=s],mm(i,a),null==r&&(r=i.length),gm(i,r,o),cg.dirtyParentQueries(o),hm(o),pm(n,r>0?i[r-1]:null,o),t},t.prototype.indexOf=function(t){return this._embeddedViews.indexOf(t._view)},t.prototype.remove=function(t){var e=fm(this._data,t);e&&cg.destroyView(e)},t.prototype.detach=function(t){var e=fm(this._data,t);return e?new Om(e):null},t}();function Sm(t){return new Om(t)}var Om=function(){function t(t){this._view=t,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(t.prototype,"rootNodes",{get:function(){return Fg(this._view,0,void 0,void 0,t=[]),t;var t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),t.prototype.markForCheck=function(){Sg(this._view)},t.prototype.detach=function(){this._view.state&=-5},t.prototype.detectChanges=function(){var t=this._view.root.rendererFactory;t.begin&&t.begin();try{cg.checkAndUpdateView(this._view)}finally{t.end&&t.end()}},t.prototype.checkNoChanges=function(){cg.checkNoChangesView(this._view)},t.prototype.reattach=function(){this._view.state|=4},t.prototype.onDestroy=function(t){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(t)},t.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),cg.destroyView(this._view)},t.prototype.detachFromAppRef=function(){this._appRef=null,hm(this._view),cg.dirtyParentQueries(this._view)},t.prototype.attachToAppRef=function(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t},t.prototype.attachToViewContainerRef=function(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t},t}();function Im(t,e){return new Cm(t,e)}var Cm=function(t){function e(e,n){var a=t.call(this)||this;return a._parentView=e,a._def=n,a}return Object(a.__extends)(e,t),e.prototype.createEmbeddedView=function(t){return new Om(cg.createEmbeddedView(this._parentView,this._def,this._def.element.template,t))},Object.defineProperty(e.prototype,"elementRef",{get:function(){return new hu(rg(this._parentView,this._def.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),e}(gl);function km(t,e){return new Nm(t,e)}var Nm=function(){function t(t,e){this.view=t,this.elDef=e}return t.prototype.get=function(t,e){return void 0===e&&(e=hs.THROW_IF_NOT_FOUND),cg.resolveDep(this.view,this.elDef,!!this.elDef&&0!=(33554432&this.elDef.flags),{flags:0,token:t,tokenKey:gg(t)},e)},t}();function Rm(t,e){var n=t.def.nodes[e];if(1&n.flags){var a=rg(t,n.nodeIndex);return n.element.template?a.template:a.renderElement}if(2&n.flags)return ag(t,n.nodeIndex).renderText;if(20240&n.flags)return ig(t,n.nodeIndex).instance;throw new Error("Illegal state: read nodeValue for node index "+e)}function Am(t){return new Em(t.renderer)}var Em=function(){function t(t){this.delegate=t}return t.prototype.selectRootElement=function(t){return this.delegate.selectRootElement(t)},t.prototype.createElement=function(t,e){var n=Object(a.__read)(Bg(e),2),r=this.delegate.createElement(n[1],n[0]);return t&&this.delegate.appendChild(t,r),r},t.prototype.createViewRoot=function(t){return t},t.prototype.createTemplateAnchor=function(t){var e=this.delegate.createComment("");return t&&this.delegate.appendChild(t,e),e},t.prototype.createText=function(t,e){var n=this.delegate.createText(e);return t&&this.delegate.appendChild(t,n),n},t.prototype.projectNodes=function(t,e){for(var n=0;n0,e.provider.value,e.provider.deps);if(e.outputs.length)for(var a=0;a0,r=e.provider;switch(201347067&e.flags){case 512:return Jm(t,e.parent,n,r.value,r.deps);case 1024:return function(t,e,n,r,i){var o=i.length;switch(o){case 0:return r();case 1:return r(tb(t,e,n,i[0]));case 2:return r(tb(t,e,n,i[0]),tb(t,e,n,i[1]));case 3:return r(tb(t,e,n,i[0]),tb(t,e,n,i[1]),tb(t,e,n,i[2]));default:for(var s=Array(o),u=0;u0)c=g,_b(g)||(l=g);else for(;c&&h===c.nodeIndex+c.childCount;){var y=c.parent;y&&(y.childFlags|=c.childFlags,y.childMatchedQueries|=c.childMatchedQueries),l=(c=y)&&_b(c)?c.renderParent:c}}return{factory:null,nodeFlags:o,rootNodeFlags:s,nodeMatchedQueries:u,flags:t,nodes:e,updateDirectives:n||pg,updateRenderer:a||pg,handleEvent:function(t,n,a,r){return e[n].element.handleEvent(t,a,r)},bindingCount:r,outputCount:i,lastRenderRootNode:p}}function _b(t){return 0!=(1&t.flags)&&null===t.element.name}function Tb(t,e,n){var a=e.element&&e.element.template;if(a){if(!a.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(a.lastRenderRootNode&&16777216&a.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+e.nodeIndex+"!")}if(20224&e.flags&&0==(1&(t?t.flags:0)))throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index "+e.nodeIndex+"!");if(e.query){if(67108864&e.flags&&(!t||0==(16384&t.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+e.nodeIndex+"!");if(134217728&e.flags&&t)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+e.nodeIndex+"!")}if(e.childCount){var r=t?t.nodeIndex+t.childCount:n-1;if(e.nodeIndex<=r&&e.nodeIndex+e.childCount>r)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+e.nodeIndex+"!")}}function wb(t,e,n,a){var r=Ib(t.root,t.renderer,t,e,n);return Cb(r,t.component,a),kb(r),r}function Sb(t,e,n){var a=Ib(t,t.renderer,null,null,e);return Cb(a,n,n),kb(a),a}function Ob(t,e,n,a){var r,i=e.element.componentRendererType;return r=i?t.root.rendererFactory.createRenderer(a,i):t.root.renderer,Ib(t.root,r,t,e.element.componentProvider,n)}function Ib(t,e,n,a,r){var i=new Array(r.nodes.length),o=r.outputCount?new Array(r.outputCount):null;return{def:r,parent:n,viewContainerParent:null,parentNodeDef:a,context:null,component:null,nodes:i,state:13,root:t,renderer:e,oldValues:new Array(r.bindingCount),disposables:o,initIndex:-1}}function Cb(t,e,n){t.component=e,t.context=n}function kb(t){var e;Ag(t)&&(e=rg(t.parent,t.parentNodeDef.parent.nodeIndex).renderElement);for(var n=t.def,a=t.nodes,r=0;r0&&am(t,e,0,n)&&(p=!0),f>1&&am(t,e,1,a)&&(p=!0),f>2&&am(t,e,2,r)&&(p=!0),f>3&&am(t,e,3,i)&&(p=!0),f>4&&am(t,e,4,o)&&(p=!0),f>5&&am(t,e,5,s)&&(p=!0),f>6&&am(t,e,6,u)&&(p=!0),f>7&&am(t,e,7,c)&&(p=!0),f>8&&am(t,e,8,l)&&(p=!0),f>9&&am(t,e,9,d)&&(p=!0),p}(t,e,n,a,r,i,o,s,u,c,l,d);case 2:return function(t,e,n,a,r,i,o,s,u,c,l,d){var f=!1,p=e.bindings,h=p.length;if(h>0&&Tg(t,e,0,n)&&(f=!0),h>1&&Tg(t,e,1,a)&&(f=!0),h>2&&Tg(t,e,2,r)&&(f=!0),h>3&&Tg(t,e,3,i)&&(f=!0),h>4&&Tg(t,e,4,o)&&(f=!0),h>5&&Tg(t,e,5,s)&&(f=!0),h>6&&Tg(t,e,6,u)&&(f=!0),h>7&&Tg(t,e,7,c)&&(f=!0),h>8&&Tg(t,e,8,l)&&(f=!0),h>9&&Tg(t,e,9,d)&&(f=!0),f){var g=e.text.prefix;h>0&&(g+=vb(n,p[0])),h>1&&(g+=vb(a,p[1])),h>2&&(g+=vb(r,p[2])),h>3&&(g+=vb(i,p[3])),h>4&&(g+=vb(o,p[4])),h>5&&(g+=vb(s,p[5])),h>6&&(g+=vb(u,p[6])),h>7&&(g+=vb(c,p[7])),h>8&&(g+=vb(l,p[8])),h>9&&(g+=vb(d,p[9]));var m=ag(t,e.nodeIndex).renderText;t.renderer.setValue(m,g)}return f}(t,e,n,a,r,i,o,s,u,c,l,d);case 16384:return function(t,e,n,a,r,i,o,s,u,c,l,d){var f=ig(t,e.nodeIndex),p=f.instance,h=!1,g=void 0,m=e.bindings.length;return m>0&&_g(t,e,0,n)&&(h=!0,g=nb(t,f,e,0,n,g)),m>1&&_g(t,e,1,a)&&(h=!0,g=nb(t,f,e,1,a,g)),m>2&&_g(t,e,2,r)&&(h=!0,g=nb(t,f,e,2,r,g)),m>3&&_g(t,e,3,i)&&(h=!0,g=nb(t,f,e,3,i,g)),m>4&&_g(t,e,4,o)&&(h=!0,g=nb(t,f,e,4,o,g)),m>5&&_g(t,e,5,s)&&(h=!0,g=nb(t,f,e,5,s,g)),m>6&&_g(t,e,6,u)&&(h=!0,g=nb(t,f,e,6,u,g)),m>7&&_g(t,e,7,c)&&(h=!0,g=nb(t,f,e,7,c,g)),m>8&&_g(t,e,8,l)&&(h=!0,g=nb(t,f,e,8,l,g)),m>9&&_g(t,e,9,d)&&(h=!0,g=nb(t,f,e,9,d,g)),g&&p.ngOnChanges(g),65536&e.flags&&ng(t,256,e.nodeIndex)&&p.ngOnInit(),262144&e.flags&&p.ngDoCheck(),h}(t,e,n,a,r,i,o,s,u,c,l,d);case 32:case 64:case 128:return function(t,e,n,a,r,i,o,s,u,c,l,d){var f=e.bindings,p=!1,h=f.length;if(h>0&&Tg(t,e,0,n)&&(p=!0),h>1&&Tg(t,e,1,a)&&(p=!0),h>2&&Tg(t,e,2,r)&&(p=!0),h>3&&Tg(t,e,3,i)&&(p=!0),h>4&&Tg(t,e,4,o)&&(p=!0),h>5&&Tg(t,e,5,s)&&(p=!0),h>6&&Tg(t,e,6,u)&&(p=!0),h>7&&Tg(t,e,7,c)&&(p=!0),h>8&&Tg(t,e,8,l)&&(p=!0),h>9&&Tg(t,e,9,d)&&(p=!0),p){var g=og(t,e.nodeIndex),m=void 0;switch(201347067&e.flags){case 32:m=new Array(f.length),h>0&&(m[0]=n),h>1&&(m[1]=a),h>2&&(m[2]=r),h>3&&(m[3]=i),h>4&&(m[4]=o),h>5&&(m[5]=s),h>6&&(m[6]=u),h>7&&(m[7]=c),h>8&&(m[8]=l),h>9&&(m[9]=d);break;case 64:m={},h>0&&(m[f[0].name]=n),h>1&&(m[f[1].name]=a),h>2&&(m[f[2].name]=r),h>3&&(m[f[3].name]=i),h>4&&(m[f[4].name]=o),h>5&&(m[f[5].name]=s),h>6&&(m[f[6].name]=u),h>7&&(m[f[7].name]=c),h>8&&(m[f[8].name]=l),h>9&&(m[f[9].name]=d);break;case 128:var b=n;switch(h){case 1:m=b.transform(n);break;case 2:m=b.transform(a);break;case 3:m=b.transform(a,r);break;case 4:m=b.transform(a,r,i);break;case 5:m=b.transform(a,r,i,o);break;case 6:m=b.transform(a,r,i,o,s);break;case 7:m=b.transform(a,r,i,o,s,u);break;case 8:m=b.transform(a,r,i,o,s,u,c);break;case 9:m=b.transform(a,r,i,o,s,u,c,l);break;case 10:m=b.transform(a,r,i,o,s,u,c,l,d)}}g.value=m}return p}(t,e,n,a,r,i,o,s,u,c,l,d);default:throw"unreachable"}}(t,e,r,i,o,s,u,c,l,d,f,p):function(t,e,n){switch(201347067&e.flags){case 1:return function(t,e,n){for(var a=!1,r=0;r0&&wg(t,e,0,n),f>1&&wg(t,e,1,a),f>2&&wg(t,e,2,r),f>3&&wg(t,e,3,i),f>4&&wg(t,e,4,o),f>5&&wg(t,e,5,s),f>6&&wg(t,e,6,u),f>7&&wg(t,e,7,c),f>8&&wg(t,e,8,l),f>9&&wg(t,e,9,d)}(t,e,a,r,i,o,s,u,c,l,d,f):function(t,e,n){for(var a=0;a0){var i=new Set(t.modules);Xb.forEach(function(e,a){if(i.has(_(a).providedIn)){var r={token:a,flags:e.flags|(n?4096:0),deps:Pg(e.deps),value:e.value,index:t.providers.length};t.providers.push(r),t.providersByKey[gg(a)]=r}})}}(t=t.factory(function(){return pg})),t):t}(a))}var Zb=new Map,Xb=new Map,Jb=new Map;function Qb(t){var e;Zb.set(t.token,t),"function"==typeof t.token&&(e=_(t.token))&&"function"==typeof e.providedIn&&Xb.set(t.token,t)}function ty(t,e){var n=jg(vm(e)),a=jg(n.nodes[0].element.componentView);Jb.set(t,a)}function ey(){Zb.clear(),Xb.clear(),Jb.clear()}function ny(t){if(0===Zb.size)return t;var e=function(t){for(var e=[],n=null,a=0;a",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(c),d=["%","/","?",";","#"].concat(l),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n("r8II");function v(t,e,n){if(t&&r.isObject(t)&&t instanceof i)return t;var a=new i;return a.parse(t,e,n),a}i.prototype.parse=function(t,e,n){if(!r.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var i=t.indexOf("?"),s=-1!==i&&i127?D+="x":D+=E[L];if(!D.match(p)){var M=R.slice(0,C),q=R.slice(C+1),j=E.match(h);j&&(M.push(j[1]),q.unshift(j[2])),q.length&&(v="/"+q.join(".")+v),this.hostname=M.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),N||(this.hostname=a.toASCII(this.hostname)),this.host=(this.hostname||"")+(this.port?":"+this.port:""),this.href+=this.host,N&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==v[0]&&(v="/"+v))}if(!g[T])for(C=0,A=l.length;C0)&&n.host.split("@"))&&(n.auth=C.shift(),n.host=n.hostname=C.shift())),n.search=t.search,n.query=t.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!_.length)return n.pathname=null,n.path=n.search?"/"+n.search:null,n.href=n.format(),n;for(var w=_.slice(-1)[0],S=(n.host||t.host||_.length>1)&&("."===w||".."===w)||""===w,O=0,I=_.length;I>=0;I--)"."===(w=_[I])?_.splice(I,1):".."===w?(_.splice(I,1),O++):O&&(_.splice(I,1),O--);if(!v&&!x)for(;O--;O)_.unshift("..");!v||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),S&&"/"!==_.join("/").substr(-1)&&_.push("");var C,k=""===_[0]||_[0]&&"/"===_[0].charAt(0);return T&&(n.hostname=n.host=k?"":_.length?_.shift():"",(C=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=C.shift(),n.host=n.hostname=C.shift())),(v=v||n.host&&_.length)&&!k&&_.unshift(""),_.length?n.pathname=_.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=t.auth||n.auth,n.slashes=n.slashes||t.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var t=this.host,e=s.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},"D/JM":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}()},D4zM:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(t,e){this.elementRef=t,this.renderer=e}return t.prototype.ngOnInit=function(){this.renderer.setAttribute(this.elementRef.nativeElement,"tabindex","-1"),this.iElement=this.renderer.createElement("i"),this.renderer.addClass(this.iElement,"icon-prepend"),this.renderer.addClass(this.iElement,"fa"),this.renderer.appendChild(this.elementRef.nativeElement,this.iElement),this.update()},t.prototype.getInputElement=function(){return document.getElementById(this.cdPasswordButton)},t.prototype.update=function(){var t=this.getInputElement();t&&"text"===t.type?(this.renderer.removeClass(this.iElement,"fa-eye"),this.renderer.addClass(this.iElement,"fa-eye-slash")):(this.renderer.removeClass(this.iElement,"fa-eye-slash"),this.renderer.addClass(this.iElement,"fa-eye"))},t.prototype.onClick=function(){var t=this.getInputElement();t.type="password"===t.type?"text":"password",this.update()},t}()},DKTb:function(t,e,n){"use strict";function a(t){setTimeout(function(){throw t},0)}n.d(e,"a",function(){return a})},"DKr+":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={s:["thodde secondanim","thodde second"],ss:[t+" secondanim",t+" second"],m:["eka mintan","ek minute"],mm:[t+" mintanim",t+" mintam"],h:["eka voran","ek vor"],hh:[t+" voranim",t+" voram"],d:["eka disan","ek dis"],dd:[t+" disanim",t+" dis"],M:["eka mhoinean","ek mhoino"],MM:[t+" mhoineanim",t+" mhoine"],y:["eka vorsan","ek voros"],yy:[t+" vorsanim",t+" vorsam"]};return e?r[n][0]:r[n][1]}n("wd/R").defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(t,e){switch(e){case"D":return t+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return t}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(t,e){return 12===t&&(t=0),"rati"===e?t<4?t:t+12:"sokalli"===e?t:"donparam"===e?t>12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}})}()},DNAf:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){return function(t,e){this.customValidations={},this.i18n=e,this.empty=this.i18n("No items selected."),this.selectionLimit={tooltip:this.i18n("Deselect item to select again"),text:this.i18n("Selection limit reached")},this.filter=this.i18n("Filter tags"),this.add=this.i18n("Add badge"),this.noOptions=this.i18n("There are no items available."),a.merge(this,t)}}()},DQlY:function(t,e,n){"use strict";n.d(e,"a",function(){return s}),n.d(e,"b",function(){return f}),n.d(e,"c",function(){return d}),n.d(e,"d",function(){return l}),n.d(e,"e",function(){return p}),n.d(e,"f",function(){return u});var a=n("CcnG"),r=n("rpEJ"),i=n("lqqz"),o=n("NJnL"),s=function(){return function(){this.hide=Function,this.setClass=Function}}(),u=function(){return function(){}}(),c={backdrop:!0,keyboard:!0,focus:!0,show:!1,ignoreBackdropClick:!1,class:"",animated:!0,initialState:{}},l=function(){function t(t,e,n){this._element=e,this._renderer=n,this.isShown=!1,this.isModalHiding=!1,this.config=Object.assign({},t)}return t.prototype.ngOnInit=function(){var t=this;this.isAnimated&&this._renderer.addClass(this._element.nativeElement,"fade"),this._renderer.setStyle(this._element.nativeElement,"display","block"),setTimeout(function(){t.isShown=!0,t._renderer.addClass(t._element.nativeElement,Object(r.d)()?"in":"show")},this.isAnimated?150:0),document&&document.body&&(1===this.bsModalService.getModalsCount()&&(this.bsModalService.checkScrollbar(),this.bsModalService.setScrollbar()),this._renderer.addClass(document.body,"modal-open")),this._element.nativeElement&&this._element.nativeElement.focus()},t.prototype.onClick=function(t){this.config.ignoreBackdropClick||"static"===this.config.backdrop||t.target!==this._element.nativeElement||(this.bsModalService.setDismissReason("backdrop-click"),this.hide())},t.prototype.onEsc=function(t){this.isShown&&(27!==t.keyCode&&"Escape"!==t.key||t.preventDefault(),this.config.keyboard&&this.level===this.bsModalService.getModalsCount()&&(this.bsModalService.setDismissReason("esc"),this.hide()))},t.prototype.ngOnDestroy=function(){this.isShown&&this.hide()},t.prototype.hide=function(){var t=this;!this.isModalHiding&&this.isShown&&(this.isModalHiding=!0,this._renderer.removeClass(this._element.nativeElement,Object(r.d)()?"in":"show"),setTimeout(function(){t.isShown=!1,document&&document.body&&1===t.bsModalService.getModalsCount()&&t._renderer.removeClass(document.body,"modal-open"),t.bsModalService.hide(t.level),t.isModalHiding=!1},this.isAnimated?300:0))},t}(),d=function(){function t(t,e){this._isShown=!1,this.element=t,this.renderer=e}return Object.defineProperty(t.prototype,"isAnimated",{get:function(){return this._isAnimated},set:function(t){this._isAnimated=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isShown",{get:function(){return this._isShown},set:function(t){this._isShown=t,t?this.renderer.addClass(this.element.nativeElement,"in"):this.renderer.removeClass(this.element.nativeElement,"in"),Object(r.d)()||(t?this.renderer.addClass(this.element.nativeElement,"show"):this.renderer.removeClass(this.element.nativeElement,"show"))},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.isAnimated&&(this.renderer.addClass(this.element.nativeElement,"fade"),r.b.reflow(this.element.nativeElement)),this.isShown=!0},t}(),f=function(){function t(t,e){this.clf=e,this.config=c,this.onShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this.isBodyOverflowing=!1,this.originalBodyPadding=0,this.scrollbarWidth=0,this.modalsCount=0,this.lastDismissReason="",this.loaders=[],this._backdropLoader=this.clf.createLoader(null,null,null),this._renderer=t.createRenderer(null,null)}return t.prototype.show=function(t,e){return this.modalsCount++,this._createLoaders(),this.config=Object.assign({},c,e),this._showBackdrop(),this.lastDismissReason=null,this._showModal(t)},t.prototype.hide=function(t){var e=this;1===this.modalsCount&&(this._hideBackdrop(),this.resetScrollbar()),this.modalsCount=this.modalsCount>=1?this.modalsCount-1:0,setTimeout(function(){e._hideModal(t),e.removeLoaders(t)},this.config.animated?150:0)},t.prototype._showBackdrop=function(){var t=this.config.backdrop||"static"===this.config.backdrop,e=!this.backdropRef||!this.backdropRef.instance.isShown;1===this.modalsCount&&(this.removeBackdrop(),t&&e&&(this._backdropLoader.attach(d).to("body").show({isAnimated:this.config.animated}),this.backdropRef=this._backdropLoader._componentRef))},t.prototype._hideBackdrop=function(){var t=this;this.backdropRef&&(this.backdropRef.instance.isShown=!1,setTimeout(function(){return t.removeBackdrop()},this.config.animated?150:0))},t.prototype._showModal=function(t){var e=this.loaders[this.loaders.length-1],n=new s,a=e.provide({provide:u,useValue:this.config}).provide({provide:s,useValue:n}).attach(l).to("body").show({content:t,isAnimated:this.config.animated,initialState:this.config.initialState,bsModalService:this});return a.instance.level=this.getModalsCount(),n.hide=function(){a.instance.hide()},n.content=e.getInnerComponent()||null,n.setClass=function(t){a.instance.config.class=t},n},t.prototype._hideModal=function(t){var e=this.loaders[t-1];e&&e.hide()},t.prototype.getModalsCount=function(){return this.modalsCount},t.prototype.setDismissReason=function(t){this.lastDismissReason=t},t.prototype.removeBackdrop=function(){this._backdropLoader.hide(),this.backdropRef=null},t.prototype.checkScrollbar=function(){this.isBodyOverflowing=document.body.clientWidth100&&(this.percent-=t-100)},t}(),s=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[r]}},t}()},Dkky:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}()},Dmvi:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},DoHr:function(t,e,n){!function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};t.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(t,n){switch(n){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'\u0131nc\u0131";var a=t%10;return t+(e[a]||e[t%100-a]||e[t>=100?100:null])}},week:{dow:1,doy:7}})}(n("wd/R"))},DtyJ:function(t,e,n){"use strict";n.r(e);var a=n("6blF"),r=n("KhEm"),i=n("IxPp"),o=n("xTla"),s=n("K9Ia"),u=n("26FU"),c=n("S5bw"),l=n("svcd"),d=n("KQya"),f=n("T1DM"),p=n("zo3G"),h=n("tHPV"),g=n("mrSG"),m=n("h9Dq"),b=function(t){function e(e,n){void 0===e&&(e=y),void 0===n&&(n=Number.POSITIVE_INFINITY);var a=t.call(this,e,function(){return a.frame})||this;return a.maxFrames=n,a.frame=0,a.index=-1,a}return g.__extends(e,t),e.prototype.flush=function(){for(var t,e,n=this.actions,a=this.maxFrames;(e=n[0])&&e.delay<=a&&(n.shift(),this.frame=e.delay,!(t=e.execute(e.state,e.delay))););if(t){for(;e=n.shift();)e.unsubscribe();throw t}},e.frameTimeFactor=10,e}(n("CS9Q").a),y=function(t){function e(e,n,a){void 0===a&&(a=e.index+=1);var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.index=a,r.active=!0,r.index=e.index=a,r}return g.__extends(e,t),e.prototype.schedule=function(n,a){if(void 0===a&&(a=0),!this.id)return t.prototype.schedule.call(this,n,a);this.active=!1;var r=new e(this.scheduler,this.work);return this.add(r),r.schedule(n,a)},e.prototype.requestAsyncId=function(t,n,a){void 0===a&&(a=0),this.delay=t.frame+a;var r=t.actions;return r.push(this),r.sort(e.sortActions),!0},e.prototype.recycleAsyncId=function(t,e,n){void 0===n&&(n=0)},e.prototype._execute=function(e,n){if(!0===this.active)return t.prototype._execute.call(this,e,n)},e.sortActions=function(t,e){return t.delay===e.delay?t.index===e.index?0:t.index>e.index?1:-1:t.delay>e.delay?1:-1},e}(m.a),v=n("siIJ"),x=n("pugT"),_=n("FFOo"),T=n("60iU"),w=n("y3By"),S=n("+umK"),O=n("mChF"),I=n("zrt+"),C=n("b7mW"),k=n("3fWJ"),N=n("8g8A"),R=n("awvh"),A=n("3U0i"),E=n("67Y/"),D=n("1fDf"),L=n("isby"),P=n("nkY7");function M(t,e,n){if(e){if(!Object(P.a)(e))return function(){for(var a=[],r=0;r=e){a.complete();break}if(a.next(i++),a.closed)break}})}function gt(t){var e=t.start,n=t.index,a=t.subscriber;n>=t.count?a.complete():(a.next(e),a.closed||(t.index=n+1,t.start=e+1,this.schedule(t)))}var mt=n("XlPw"),bt=n("gI3B");function yt(t,e){return new a.a(function(n){var a,r;try{a=t()}catch(o){return void n.error(o)}try{r=e(a)}catch(o){return void n.error(o)}var i=(r?Object(K.a)(r):U.a).subscribe(n);return function(){i.unsubscribe(),a&&a.unsubscribe()}})}var vt=n("909l"),xt=n("i4X3"),_t=n("iLxQ");n.d(e,"Observable",function(){return a.a}),n.d(e,"ConnectableObservable",function(){return r.a}),n.d(e,"GroupedObservable",function(){return i.a}),n.d(e,"observable",function(){return o.a}),n.d(e,"Subject",function(){return s.a}),n.d(e,"BehaviorSubject",function(){return u.a}),n.d(e,"ReplaySubject",function(){return c.a}),n.d(e,"AsyncSubject",function(){return l.a}),n.d(e,"asapScheduler",function(){return d.a}),n.d(e,"asyncScheduler",function(){return f.a}),n.d(e,"queueScheduler",function(){return p.a}),n.d(e,"animationFrameScheduler",function(){return h.a}),n.d(e,"VirtualTimeScheduler",function(){return b}),n.d(e,"VirtualAction",function(){return y}),n.d(e,"Scheduler",function(){return v.a}),n.d(e,"Subscription",function(){return x.a}),n.d(e,"Subscriber",function(){return _.a}),n.d(e,"Notification",function(){return T.a}),n.d(e,"NotificationKind",function(){return T.b}),n.d(e,"pipe",function(){return w.a}),n.d(e,"noop",function(){return S.a}),n.d(e,"identity",function(){return O.a}),n.d(e,"isObservable",function(){return I.a}),n.d(e,"ArgumentOutOfRangeError",function(){return C.a}),n.d(e,"EmptyError",function(){return k.a}),n.d(e,"ObjectUnsubscribedError",function(){return N.a}),n.d(e,"UnsubscriptionError",function(){return R.a}),n.d(e,"TimeoutError",function(){return A.a}),n.d(e,"bindCallback",function(){return M}),n.d(e,"bindNodeCallback",function(){return F}),n.d(e,"combineLatest",function(){return V.b}),n.d(e,"concat",function(){return H.a}),n.d(e,"defer",function(){return B.a}),n.d(e,"empty",function(){return U.b}),n.d(e,"forkJoin",function(){return W.a}),n.d(e,"from",function(){return K.a}),n.d(e,"fromEvent",function(){return $.a}),n.d(e,"fromEventPattern",function(){return X}),n.d(e,"generate",function(){return J}),n.d(e,"iif",function(){return tt}),n.d(e,"interval",function(){return et.a}),n.d(e,"merge",function(){return nt.a}),n.d(e,"never",function(){return rt}),n.d(e,"of",function(){return it.a}),n.d(e,"onErrorResumeNext",function(){return ot}),n.d(e,"pairs",function(){return st}),n.d(e,"partition",function(){return ft}),n.d(e,"race",function(){return pt.a}),n.d(e,"range",function(){return ht}),n.d(e,"throwError",function(){return mt.a}),n.d(e,"timer",function(){return bt.a}),n.d(e,"using",function(){return yt}),n.d(e,"zip",function(){return vt.b}),n.d(e,"scheduled",function(){return xt.a}),n.d(e,"EMPTY",function(){return U.a}),n.d(e,"NEVER",function(){return at}),n.d(e,"config",function(){return _t.a})},Dwqy:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("wd/R"),r=function(){function t(){}return t.prototype.transform=function(t){return t?a(1e3*t).fromNow():"unknown"},t}()},DxQv:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},Dysq:function(t,e){t.exports='\n \n \n \n Toggle navigation\n \u5207\u63db\u5c0e\u89bd\n \n \n Dashboard\n \u5100\u8868\u677f\n \n \n Cluster\n \u53e2\u96c6\n \n \n Hosts\n \u4e3b\u6a5f\n \n \n Monitors\n \u76e3\u63a7\u7a0b\u5f0f\n \n \n OSDs\n OSD\n \n \n Configuration\n \u7d44\u614b\n \n \n CRUSH map\n CRUSH \u5730\u5716\n \n \n Manager modules\n \u7ba1\u7406\u54e1\u6a21\u7d44\n \n \n Logs\n \u8a18\u9304\n \n \n Alerts\n \u8b66\u793a\n \n \n Silences\n Silences\n \n \n Pools\n \u6c60\n \n \n Block\n \u5340\u584a\n \n \n Images\n \u5f71\u50cf\n \n \n Mirroring\n \u93e1\u50cf\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n \u6a94\u6848\u7cfb\u7d71\n \n \n Object Gateway\n \u7269\u4ef6\u9598\u9053\n \n \n Daemons\n \u7cbe\u9748\n \n \n Users\n \u4f7f\u7528\u8005\n \n \n Buckets\n \u6876\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Retrieving data\n for\n \n \n . Please wait...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Displaying previously cached data\n \n for \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n \n \n Back\n \u8fd4\u56de\n \n \n Select a Language\n \u9078\u53d6\u8a9e\u8a00\n \n \n Loading panel data...\n \u6b63\u5728\u8f09\u5165\u9762\u677f\u8cc7\u6599...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528\u76e3\u63a7\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Grafana \u5100\u8868\u677f\u4e0d\u5b58\u5728\u3002\u5982\u9700\u4e86\u89e3\n \u5982\u4f55\u5411 Grafana\xa0\u65b0\u589e\u5100\u8868\u677f\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Grafana Time Picker\n Grafana \u6642\u9593\u9078\u64c7\u5668\n \n \n Reset Settings\n \u91cd\u8a2d\u8a2d\u5b9a\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \u7121\u6cd5\u8f09\u5165\u8cc7\u6599\u3002\n \n \n selected\n \u9078\u53d6\u7684\u6578\u76ee\n X selected\n \n \n found\n \u627e\u5230\u7684\u6578\u76ee\n X found\n \n \n total\n \u7e3d\u8a08\n X total\n \n \n Edit\n \u7de8\u8f2f\n \n \n Name\n \u540d\u7a31\n \n \n Description\n \u63cf\u8ff0\n \n \n Long description\n \u8a73\u7d30\u63cf\u8ff0\n \n \n Default\n \u9810\u8a2d\u503c\n \n \n Daemon default\n \u7cbe\u9748\u9810\u8a2d\u503c\n \n \n Services\n \u670d\u52d9\n \n \n Values\n \u503c\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u9ad8\uff01\u8a72\u503c\u4e0d\u5f97\u5927\u65bc \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u4f4e\uff01\u8a72\u503c\u4e0d\u5f97\u5c0f\u65bc \n \u3002\n \n \n \n Save\n \u5132\u5b58\n \n \n CRUSH map viewer\n CRUSH \u5730\u5716\u6aa2\u8996\u5668\n \n \n Hosts List\n \u4e3b\u6a5f\u6e05\u55ae\n \n \n Overall Performance\n \u6574\u9ad4\u6548\u80fd\n \n \n No entries found\n \u627e\u4e0d\u5230\u9805\u76ee\n \n \n Cluster Logs\n \u53e2\u96c6\u8a18\u9304\n \n \n Audit Logs\n \u7a3d\u6838\u8a18\u9304\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u6b63\u5728\u8f09\u5165\u7d44\u614b...\n \n \n The configuration could not be loaded.\n \u7121\u6cd5\u8f09\u5165\u7d44\u614b\u3002\n \n \n Edit Manager module\n \u7de8\u8f2f\u7ba1\u7406\u54e1\u6a21\u7d44\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \u8f38\u5165\u7684\u503c\u4e0d\u662f\u6709\u6548\u7684 UUID\uff0c\u4f8b\u5982 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u662f\u6709\u6548\u7684 IP \u4f4d\u5740\u3002\n \n \n This field is required.\n \u6b64\u6b04\u4f4d\u70ba\u5fc5\u586b\u6b04\u4f4d\u3002\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u9ad8\uff01\u8a72\u503c\u5fc5\u9808\u5c0f\u65bc\u6216\u7b49\u65bc \n \u3002\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u4f4e\uff01\u8a72\u503c\u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc \n \u3002\n \n \n \n The entered value needs to be a number.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u70ba\u6578\u5b57\u3002\n \n \n The entered value needs to be a number or decimal.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u70ba\u6578\u5b57\u6216\u5c0f\u6578\u3002\n \n \n Update\n \u66f4\u65b0\n \n \n Status\n \u72c0\u614b\n \n \n Cluster ID\n \u53e2\u96c6 ID\n \n \n monmap modified\n monmap \u4fee\u6539\u6642\u9593\n \n \n monmap epoch\n monmap \u7248\u672c\u7de8\u865f\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n required con\n \n \n required mon\n required mon\n \n \n In Quorum\n \u4ef2\u88c1\u6210\u54e1\n \n \n Not In Quorum\n \u975e\u4ef2\u88c1\u6210\u54e1\n \n \n Cancel\n \u53d6\u6d88\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \u78ba\u5b9a\u8981\n \u9078\u53d6\u7684\n \u55ce\uff1f\n \n \n \n Yes, I am sure.\n \u662f\u7684\uff0c\u6211\u78ba\u5b9a\u3002\n \n \n Cluster-wide OSD Flags\n \u53e2\u96c6\u7bc4\u570d\u7684 OSD \u65d7\u6a19\n \n \n Submit\n \u63d0\u4ea4\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \u9032\u968e...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD \u5fa9\u539f\u512a\u5148\u7a0b\u5ea6\n \n \n Priority\n \u512a\u5148\u7a0b\u5ea6\n \n \n Customize priority values\n \u81ea\u8a02\u512a\u5148\u7a0b\u5ea6\u503c\n \n \n This field is required!\n \u6b64\u6b04\u4f4d\u70ba\u5fc5\u586b\u6b04\u4f4d\uff01\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u9ad8\uff01\u8a72\u503c\u4e0d\u5f97\u5927\u65bc \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u4f4e\uff01\u8a72\u503c\u4e0d\u5f97\u5c0f\u65bc \n \u3002\n \n \n \n Reweight OSD\n \u91cd\u65b0\u8a2d\u5b9a OSD \u7684\u6b0a\u6578\n \n \n The value needs to be between 0 and 1.\n \u8a72\u503c\u5fc5\u9808\u4ecb\u65bc 0 \u81f3 1 \u4e4b\u9593\u3002\n \n \n Reweight\n \u91cd\u65b0\u8a2d\u5b9a\u6b0a\u6578\n \n \n OSDs \n Scrub\n \n OSD \n \u6574\u7406\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5c64} }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n \u5373\u5c07\u5c0d OSD\n \n \n \n \u5957\u7528\n \u6574\u7406\u3002 \n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5c64} }\n \n \n OSDs List\n OSD \u6e05\u55ae\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \u82e5\u7e7c\u7e8c\uff0c\n OSD\n \n \n \u5c07\u88ab\u6a19\u793a\u70ba\n \n \n \u3002\n \n \n \n The OSD is not safe to destroy!\n OSD \u4e0d\u5b89\u5168\uff0c\u7121\u6cd5\u640d\u6bc0\uff01\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \u82e5\u7e7c\u7e8c\uff0c\n OSD\n \n \n \u5c07\u88ab\n \n \n \u3002\n \n \n \n Details\n \u8a73\u7d30\u8cc7\u6599\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \u503c\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \u95dc\u9589\n \n \n Delete\n \u522a\u9664\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \u72c0\u614b\n \n \n Statistics\n \u7d71\u8a08\u8cc7\u6599\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528 NFS Ganesha \u7ba1\u7406\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Clients\n \u7528\u6236\u7aef\n \n \n Any client can access\n \u4efb\u4f55\u7528\u6236\u7aef\u5747\u53ef\u5b58\u53d6\n \n \n Addresses\n \u4f4d\u5740\n \n \n Required field\n \u5fc5\u586b\u6b04\u4f4d\n \n \n Must contain one or more comma-separated values\n \u5fc5\u9808\u5305\u542b\u4e00\u6216\u591a\u500b\u9017\u865f\u5206\u9694\u503c\n \n \n For example:\n \u4f8b\u5982\ufe30\n \n \n Access Type\n \u5b58\u53d6\u985e\u578b\n \n \n Squash\n Squash\n \n \n Add clients\n \u65b0\u589e\u7528\u6236\u7aef\n \n \n Loading...\n \u6b63\u5728\u8f09\u5165...\n \n \n -- No cluster available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u53e2\u96c6 --\n \n \n -- Select the cluster --\n -- \u9078\u53d6\u53e2\u96c6 --\n \n \n Add daemon\n \u65b0\u589e\u7cbe\u9748\n \n \n Storage Backend\n \u5132\u5b58\u5f8c\u7aef\n \n \n -- No data pools available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u8cc7\u6599\u6c60 --\n \n \n -- Select the storage backend --\n -- \u9078\u53d6\u5132\u5b58\u5f8c\u7aef --\n \n \n Object Gateway User\n \u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005\n \n \n -- No users available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u4f7f\u7528\u8005 --\n \n \n -- Select the object gateway user --\n -- \u9078\u53d6\u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005 --\n \n \n CephFS User ID\n CephFS \u4f7f\u7528\u8005 ID\n \n \n -- No clients available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u7528\u6236\u7aef --\n \n \n -- Select the cephx client --\n -- \u9078\u53d6 cephx \u7528\u6236\u7aef --\n \n \n CephFS Name\n CephFS \u540d\u7a31\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \u5b89\u5168\u6a19\u7c64\n \n \n Enable security label\n \u555f\u7528\u5b89\u5168\u6a19\u7c64\n \n \n CephFS Path\n CephFS \u8def\u5f91\n \n \n Path need to start with a \'/\' and can be followed by a word\n \u8def\u5f91\u5fc5\u9808\u4ee5\u300c/\u300d\u958b\u982d\uff0c\u5f8c\u9762\u53ef\u63a5\u55ae\u8a5e\n \n \n New directory will be created\n \u5c07\u5efa\u7acb\u65b0\u76ee\u9304\n \n \n Path\n \u8def\u5f91\n \n \n Path can only be a single \'/\' or a word\n \u8def\u5f91\u53ea\u80fd\u4ee5\u55ae\u4e00\u300c/\u300d\u6216\u55ae\u8a5e\u958b\u982d\n \n \n New bucket will be created\n \u5c07\u5efa\u7acb\u65b0\u6876\n \n \n NFS Protocol\n NFS \u901a\u8a0a\u5354\u5b9a\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \u6a19\u8a18\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \u639b\u63a5\u7684\u5099\u7528\u5b58\u53d6 (\u4e0d\u5f97\u5305\u542b\u524d\u7f6e /)\u3002\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \u7528\u6236\u7aef\u4e0d\u80fd\u639b\u63a5\u5b50\u76ee\u9304 (\u5373\u5982\u679c\u6a19\u8a18\u70ba foo\uff0c\u5247\u7528\u6236\u7aef\u7121\u6cd5\u639b\u63a5 foo/baz)\u3002\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \u900f\u904e\u4f7f\u7528\u4e0d\u540c\u6a19\u8a18\u9078\u9805\uff0c\u53ef\u5c07\u540c\u4e00\u8def\u5f91\u8f38\u51fa\u591a\u6b21\u3002\n \n \n Pseudo\n \u865b\u64ec\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \u6b64 \n NFS v4\n \u8f38\u51fa\u5728\n \u865b\u64ec\u6a94\u6848\u7cfb\u7d71\n \u4e2d\n \u6240\u4f54\u7528\u7684\u4f4d\u7f6e (\u5fc5\u9808\u552f\u4e00)\u3002\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \u900f\u904e\u4f7f\u7528\u4e0d\u540c\u865b\u64ec\u9078\u9805\uff0c\u53ef\u5c07\u540c\u4e00\u8def\u5f91\u8f38\u51fa\u591a\u6b21\u3002\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u5b58\u53d6\u985e\u578b --\n \n \n -- Select the access type --\n -- \u9078\u53d6\u5b58\u53d6\u985e\u578b --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \u6c92\u6709\u53ef\u7528\u7684 squash --\n \n \n --Select what kind of user id squashing is performed --\n -- \u9078\u53d6\u57f7\u884c\u54ea\u7a2e\u985e\u578b\u7684\u4f7f\u7528\u8005 ID \u533f\u540d\u5b58\u53d6 --\n \n \n Transport Protocol\n \u50b3\u8f38\u901a\u8a0a\u5354\u5b9a\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n \u6b61\u8fce\u4f7f\u7528 Ceph\uff01\n The welcome message on the login page\n \n \n Username is required\n \u9700\u8981\u6307\u5b9a\u4f7f\u7528\u8005\u540d\u7a31\n \n \n Password is required\n \u9700\u8981\u6307\u5b9a\u5bc6\u78bc\n \n \n Login\n \u767b\u5165\n \n \n Sorry, the user does not exist in Ceph.\n \u62b1\u6b49\uff0c\u8a72\u4f7f\u7528\u8005\u4e0d\u5b58\u5728\u65bc Ceph \u4e2d\u3002\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \u8fd4\u56de\n \u767b\u5165\u9801\u9762\n \u3002 \u7576\u60a8\u91cd\u8a66\u767b\u5165\u6642\uff0c\u60a8\u5c07\u5f9e\u8eab\u5206\u63d0\u4f9b\u8005\u767b\u51fa\u3002\n \n \n \n Forbidden\n \u5df2\u7981\u6b62\n \n \n Sorry, you are not allowed to see what you were looking for.\n \u62b1\u6b49\uff0c\u60a8\u7121\u6b0a\u67e5\u770b\u60a8\u8981\u5c0b\u627e\u7684\u5167\u5bb9\u3002\n \n \n Sorry, we could not find what you were looking for\n \u62b1\u6b49\uff0c\u6211\u5011\u627e\u4e0d\u5230\u60a8\u8981\u5c0b\u627e\u7684\u5167\u5bb9\u3002\n \n \n Remove all\n \u5168\u90e8\u79fb\u9664\n \n \n Recent Notifications\n \u6700\u8fd1\u7684\u901a\u77e5\n \n \n There are no background tasks.\n \u6c92\u6709\u80cc\u666f\u4efb\u52d9\u3002\n \n \n Background Tasks\n \u80cc\u666f\u4efb\u52d9\n \n \n Help\n \u8aaa\u660e\n \n \n Documentation\n \u6587\u4ef6\n \n \n API\n API\n \n \n About\n \u95dc\u65bc\n \n \n Dashboard Settings\n \u5100\u8868\u677f\u8a2d\u5b9a\n \n \n User management\n \u4f7f\u7528\u8005\u7ba1\u7406\n \n \n Logged in user\n \u767b\u5165\u7684\u4f7f\u7528\u8005\n \n \n Signed in as\n \n \n \n \n \u4ee5\n \n \n \n \u8eab\u5206\u767b\u5165\n \n \n \n Sign out\n \u767b\u51fa\n \n \n Name...\n \u540d\u7a31...\n \n \n The chosen name is already in use.\n \u6240\u9078\u7684\u540d\u7a31\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Description...\n \u63cf\u8ff0...\n \n \n Permissions\n \u8a31\u53ef\u6b0a\n \n \n Roles\n \u89d2\u8272\n \n \n Username\n \u4f7f\u7528\u8005\u540d\u7a31\n \n \n Password\n \u5bc6\u78bc\n \n \n Confirm password\n \u78ba\u8a8d\u5bc6\u78bc\n \n \n Password confirmation doesn\'t match the password.\n \u78ba\u8a8d\u7684\u5bc6\u78bc\u8207\u4e4b\u524d\u8f38\u5165\u7684\u5bc6\u78bc\u4e0d\u7b26\u3002\n \n \n Full name\n \u5168\u540d\n \n \n Email\n \u96fb\u5b50\u90f5\u4ef6\n \n \n Invalid email.\n \u96fb\u5b50\u90f5\u4ef6\u7121\u6548\u3002\n \n \n You are about to remove "user read / update" permissions from your own user.\n \u60a8\u6b63\u8981\u70ba\u60a8\u81ea\u5df1\u7684\u4f7f\u7528\u8005\u79fb\u9664\u300c\u4f7f\u7528\u8005\u8b80\u53d6/\u5beb\u5165\u300d\u8a31\u53ef\u6b0a\u3002\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \u82e5\u7e7c\u7e8c\uff0c\u60a8\u5c07\u518d\u4e5f\u7121\u6cd5\u70ba\u4efb\u4f55\u4f7f\u7528\u8005\u65b0\u589e\u6216\u79fb\u9664\u89d2\u8272\u3002\n \n \n Are you sure you want to continue?\n \u78ba\u5b9a\u8981\u7e7c\u7e8c\u55ce\uff1f\n \n \n Performance counters not available\n \u6c92\u6709\u53ef\u7528\u7684\u6548\u80fd\u8a08\u6578\u5668\n \n \n Attributes (OSD map)\n \u5c6c\u6027 (OSD \u5730\u5716)\n \n \n Metadata not available\n \u7121\u6cd5\u4f7f\u7528\u4e2d\u7e7c\u8cc7\u6599\n \n \n Metadata\n \u4e2d\u7e7c\u8cc7\u6599\n \n \n Performance counter\n \u6548\u80fd\u8a08\u6578\u5668\n \n \n Histogram not available: \n \n \n \u7121\u6cd5\u4f7f\u7528\u9577\u689d\u5716\ufe30\n \n \n \n \n Writes\n \u5beb\u5165\n \n \n Reads\n \u8b80\u53d6\n \n \n Histogram\n \u9577\u689d\u5716\n \n \n Performance Details\n \u6548\u80fd\u8a73\u7d30\u8cc7\u6599\n \n \n Current values\n \u76ee\u524d\u7684\u503c\n \n \n Type\n \u985e\u578b\n \n \n Min\n \u6700\u5c0f\u503c\n \n \n Max\n \u6700\u5927\u503c\n \n \n Flags\n \u65d7\u6a19\n \n \n Source\n \u4f86\u6e90\n \n \n Level\n \u5c64\u7d1a\n \n \n Can be updated at runtime (editable)\n \u53ef\u5728\u57f7\u884c\u6642\u671f\u66f4\u65b0 (\u53ef\u7de8\u8f2f)\n \n \n Tags\n \u6a19\u8a18\n \n \n Enum values\n \u5217\u8209\u503c\n \n \n See also\n \u53e6\u8acb\u53c3\u95b1\n \n \n Cluster Status\n \u53e2\u96c6\u72c0\u614b\n \n \n Manager Daemons\n \u7ba1\u7406\u54e1\u7cbe\u9748\n \n \n Object Gateways\n \u7269\u4ef6\u9598\u9053\n \n \n Metadata Servers\n \u4e2d\u7e7c\u8cc7\u6599\u4f3a\u670d\u5668\n \n \n iSCSI Gateways\n iSCSI \u9598\u9053\n \n \n Client IOPS\n \u7528\u6236\u7aef IOPS\n \n \n Client Throughput\n \u7528\u6236\u7aef\u8f38\u9001\u91cf\n \n \n Client Read/Write\n \u7528\u6236\u7aef\u8b80\u53d6/\u5beb\u5165\n \n \n Recovery Throughput\n \u5fa9\u539f\u8f38\u9001\u91cf\n \n \n Scrub\n \u6574\u7406\n \n \n Performance\n \u6548\u80fd\n \n \n Raw Capacity\n \u539f\u59cb\u5bb9\u91cf\n \n \n Objects\n \u7269\u4ef6\n \n \n PGs per OSD\n \u6bcf\u500b OSD \u7684 PG \u6578\n \n \n PG Status\n PG \u72c0\u614b\n \n \n Capacity\n \u5bb9\u91cf\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \u5982\u9700\u8a73\u7d30\u8cc7\u6599\uff0c\u8acb\u53c3\u95b1\n \u8a18\u9304\n \u3002\n \n \n \n Ranks\n \u968e\u5c64\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \u7528\u6236\u7aef\ufe30\n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \u5c07\u5f71\u50cf\u79fb\u81f3\u5783\u573e\u6876\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \u82e5\u8981\u5c07 \n \n /\n \n \u79fb\u81f3\u5783\u573e\u6876\uff0c\n \u8acb\u6309\u4e00\u4e0b\n \u79fb\u52d5\u5f71\u50cf\n \u3002\u6216\u8005\uff0c\u60a8\u53ef\u4ee5\u9078\u53d6\u4e00\u500b\u904e\u671f\u65e5\u3002\n \n \n \n Protection expires at\n \u4fdd\u8b77\u7684\u904e\u671f\u65e5\u70ba\n \n \n NOT PROTECTED\n \u7121\u4fdd\u8b77\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \u65e5\u671f\u683c\u5f0f\u932f\u8aa4\u3002\u8acb\u4f7f\u7528\u300cYYYY-MM-DD HH:mm:ss\u300d\u3002\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \u4fdd\u8b77\u5df2\u904e\u671f\u3002\u8acb\u9078\u53d6\u4e00\u500b\u672a\u4f86\u7684\u65e5\u671f\u6216\u4fdd\u7559\u7a7a\u767d\u3002\n \n \n Move Image\n \u79fb\u52d5\u5f71\u50cf\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \u7d9c\u89bd\n \n \n Targets\n \u76ee\u6a19\n \n \n Discovery Authentication\n \u63a2\u67e5\u9a57\u8b49\n \n \n User\n \u4f7f\u7528\u8005\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u4f7f\u7528\u8005\u540d\u7a31\u7684\u9577\u5ea6\u5fc5\u9808\u4ecb\u65bc 8 \u81f3 64 \u500b\u5b57\u5143\u4e4b\u9593\uff0c\u4e26\u4e14\u53ea\u80fd\u5305\u542b\u4ee5\u4e0b\n \u5b57\u5143\ufe30\u5b57\u6bcd\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u6216\u300c:\u300d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \u96d9\u5411\u9a57\u8b49\u4f7f\u7528\u8005\n \n \n Mutual Password\n \u96d9\u5411\u9a57\u8b49\u5bc6\u78bc\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528 iSCSI \u76ee\u6a19\u7ba1\u7406\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Available information:\n \u53ef\u7528\u8cc7\u8a0a\ufe30\n \n \n iSCSI Targets not available\n \u7121\u6cd5\u4f7f\u7528 iSCSI \u76ee\u6a19\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \u50c5\u9069\u7528\u65bc\u5df2\u555f\u7528 \n fast-diff\n \u7684 RBD \u5f71\u50cf\n \n \n \n Pool\n \u6c60\n \n \n Data Pool\n \u8cc7\u6599\u6c60\n \n \n Created\n \u5df2\u5efa\u7acb\n \n \n Size\n \u5927\u5c0f\n \n \n Object size\n \u7269\u4ef6\u5927\u5c0f\n \n \n Features\n \u529f\u80fd\n \n \n Provisioned\n \u5df2\u4f48\u5efa\n \n \n N/A\n \u7121\n \n \n Total provisioned\n \u7e3d\u4f48\u5efa\u6578\n \n \n Striping unit\n \u5206\u5272\u55ae\u4f4d\n \n \n Striping count\n \u5206\u5272\u8a08\u6578\n \n \n Parent\n \u7236\n \n \n Block name prefix\n \u5340\u584a\u540d\u7a31\u5b57\u9996\n \n \n Order\n \u9806\u5e8f\n \n \n Snapshots\n \u5feb\u7167\n \n \n Image\n \u5f71\u50cf\n \n \n This setting overrides the global value\n \u6b64\u8a2d\u5b9a\u6703\u8986\u5beb\u5168\u57df\u503c\n \n \n Global\n \u5168\u57df\n \n \n This is the global value. No value for this option has been set for this image.\n \u6b64\u503c\u70ba\u5168\u57df\u503c\u3002\u672a\u70ba\u6b64\u5f71\u50cf\u8a2d\u5b9a\u6b64\u9078\u9805\u7684\u503c\u3002\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u4e0d\u5141\u8a31\u4f7f\u7528\u300c/\u300d\u548c\u300c@\u300d\u3002\n \n \n -- No rbd pools available --\n -- \u6c92\u6709\u53ef\u7528\u7684 RBD \u6c60 --\n \n \n -- Select a pool --\n -- \u9078\u53d6\u6c60 --\n \n \n Use a dedicated data pool\n \u4f7f\u7528\u5c08\u5c6c\u7684\u8cc7\u6599\u6c60\n \n \n Data pool\n \u8cc7\u6599\u6c60\n \n \n Dedicated pool that stores the object-data of the RBD.\n \u5c08\u7528\u65bc\u5132\u5b58 RBD \u7684\u7269\u4ef6\u8cc7\u6599\u7684\u6c60\n \n \n e.g., 10GiB\n \u4f8b\u5982 10 GiB\n \n \n You have to increase the size.\n \u60a8\u5fc5\u9808\u589e\u52a0\u5927\u5c0f\u3002\n \n \n Advanced\n \u9032\u968e\n \n \n Striping\n \u5206\u5272\n \n \n Stripe unit\n \u5206\u5272\u55ae\u4f4d\n \n \n -- Select stripe unit --\n -- \u9078\u53d6\u5206\u5272\u55ae\u4f4d --\n \n \n This field is required because stripe count is defined!\n \u7531\u65bc\u5df2\u5b9a\u7fa9\u5206\u5272\u8a08\u6578\uff0c\u56e0\u6b64\u5fc5\u9808\u586b\u5beb\u6b64\u6b04\u4f4d\uff01\n \n \n Stripe unit is greater than object size.\n \u5206\u5272\u55ae\u4f4d\u5927\u65bc\u7269\u4ef6\u5927\u5c0f\u3002\n \n \n Stripe count\n \u5206\u5272\u8a08\u6578\n \n \n This field is required because stripe unit is defined!\n \u7531\u65bc\u5df2\u5b9a\u7fa9\u5206\u5272\u55ae\u4f4d\uff0c\u56e0\u6b64\u5fc5\u9808\u586b\u5beb\u6b64\u6b04\u4f4d\uff01\n \n \n Stripe count must be greater than 0.\n \u5206\u5272\u8a08\u6578\u5fc5\u9808\u5927\u65bc 0\u3002\n \n \n \n RBD Snapshot\n \n \n RBD \u5feb\u7167\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {\u91cd\u65b0\u547d\u540d} other {\u5efa\u7acb} }\n \n \n \n Snapshot\n \n \n \u5feb\u7167\n \n \n \n PROTECTED\n \u53d7\u4fdd\u8b77\n \n \n UNPROTECTED\n \u672a\u53d7\u4fdd\u8b77\n \n \n You are about to rollback\n \u60a8\u6b63\u8981\u5fa9\u539f\n \n \n Purge Trash\n \u6e05\u9664\u5783\u573e\u6876\n \n \n To purge, select one or All images and click\n \u82e5\u8981\u6e05\u9664\uff0c\u8acb\u9078\u53d6\u4e00\u500b\u6216\u5168\u90e8\u5f71\u50cf\uff0c\u7136\u5f8c\u6309\u4e00\u4e0b\n \n \n Pool:\n \u6c60\ufe30\n \n \n Pool name...\n \u6c60\u540d\u7a31...\n \n \n All\n \u5168\u90e8\n \n \n Restore Image\n \u56de\u5b58\u5f71\u50cf\n \n \n To restore\n \u82e5\u8981\u56de\u5b58\n \n \n type the image\'s new name and click\n \u9375\u5165\u5f71\u50cf\u7684\u65b0\u540d\u7a31\u5e76\u6309\u4e00\u4e0b\n \n \n New Name\n \u65b0\u540d\u7a31\n \n \n Expired at\n \u904e\u671f\u65e5\u70ba\n \n \n Protected until\n \u4fdd\u8b77\u904e\u671f\u65e5\u70ba\n \n \n This image is protected until \n .\n \n \u6b64\u5f71\u50cf\u7684\u4fdd\u8b77\u904e\u671f\u65e5\u70ba \n \u3002\n \n \n \n Trash\n \u5783\u573e\u6876\n \n \n iSCSI Topology\n iSCSI \u62d3\u64b2\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \u901a\u5e38\u4e0d\u9700\u8981\u8b8a\u66f4\u9019\u4e9b\u53c3\u6578\u7684\u9810\u8a2d\u503c\u3002\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \u8a2d\u5b9a\n \n \n Backstore\n \u652f\u63f4\u5132\u5b58\n \n \n Confirm\n \u78ba\u8a8d\n \n \n Advanced Settings\n \u9032\u968e\u8a2d\u5b9a\n \n \n Target IQN\n \u76ee\u6a19 IQN\n \n \n IQN has wrong pattern.\n IQN \u6a21\u5f0f\u932f\u8aa4\u3002\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN \u6a21\u5f0f\u61c9\u5982\u4e0b\u6240\u793a\ufe30\u300ciqn.$year-$month.$reversedAddress:$definedName\u300d\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \u4f8b\u5982\uff1aiqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \u66f4\u591a\u8cc7\u8a0a\n \n \n This target has modified advanced settings.\n \u6b64\u76ee\u6a19\u7684\u9032\u968e\u8a2d\u5b9a\u5b58\u5728\u4fee\u6539\u3002\n \n \n Portals\n \u5165\u53e3\u7db2\u7ad9\n \n \n At least \n gateways are required.\n \n \u81f3\u5c11\u9700\u8981 \n \u500b\u7269\u4ef6\u9598\u9053\u3002\n \n \n \n Add portal\n \u65b0\u589e\u5165\u53e3\u7db2\u7ad9\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \u6b64\u5f71\u50cf\u7684\u8a2d\u5b9a\u5b58\u5728\u4fee\u6539\u3002\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \u65b0\u589e\u5f71\u50cf\n \n \n ACL authentication\n ACL \u9a57\u8b49\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \u555f\u52d5\u5668\n \n \n Initiator\n \u555f\u52d5\u5668\n \n \n Client IQN\n \u7528\u6236\u7aef IQN\n \n \n Initiator IQN needs to be unique.\n \u555f\u52d5\u5668 IQN \u5fc5\u9808\u552f\u4e00\u3002\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u4f7f\u7528\u8005\u540d\u7a31\u7684\u9577\u5ea6\u5fc5\u9808\u4ecb\u65bc 8 \u81f3 64 \u500b\u5b57\u5143\u4e4b\u9593\uff0c\u4e26\u4e14\u53ea\u80fd\u5305\u542b\u4ee5\u4e0b\n \u5b57\u5143\ufe30\u5b57\u6bcd\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u6216\u300c:\u300d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \u555f\u52d5\u5668\u5c6c\u65bc\u7fa4\u7d44\u3002\u5f71\u50cf\u9808\u5728\u7fa4\u7d44\u4e2d\u9032\u884c\u8a2d\u5b9a\u3002 \n \n \n No items added.\n \u672a\u65b0\u589e\u9805\u76ee\u3002\n \n \n Add initiator\n \u65b0\u589e\u555f\u52d5\u5668\n \n \n Groups\n \u7fa4\u7d44\n \n \n Group\n \u7fa4\u7d44\n \n \n Add group\n \u65b0\u589e\u7fa4\u7d44\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD \u7d44\u614b\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \u79fb\u9664\u672c\u5730\u7d44\u614b\u503c\u3002\u5c07\u7e7c\u627f\u4e26\u4f7f\u7528\u7236\u7d44\u614b\u503c\u3002\n \n \n The mininum value is 0\n \u6700\u5c0f\u503c\u70ba 0\n \n \n Issues\n \u554f\u984c\n \n \n Syncing\n \u6b63\u5728\u540c\u6b65\n \n \n Ready\n \u6e96\u5099\u5c31\u7dd2\n \n \n Edit pool mirror mode\n \u7de8\u8f2f\u6c60\u93e1\u50cf\u6a21\u5f0f\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \u82e5\u8981\u7de8\u8f2f\u6c60 \n \n \n \xa0\n \u7684\u93e1\u50cf\u6a21\u5f0f\uff0c\u8acb\u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6\u4e00\u500b\u65b0\u6a21\u5f0f\uff0c\u7136\u5f8c\u6309\u4e00\u4e0b\xa0\n \u66f4\u65b0\n \u3002\n \n \n \n Mode\n \u6a21\u5f0f\n \n \n Peer clusters must be removed prior to disabling mirror.\n \u5728\u505c\u7528\u93e1\u50cf\u4e4b\u524d\uff0c\u5fc5\u9808\u5148\u79fb\u9664\u5c0d\u7b49\u53e2\u96c6\u3002\n \n \n \n \n pool mirror peer\n \n \n \n \u6c60\u93e1\u50cf\u5c0d\u7b49\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {\u7de8\u8f2f} other {\u65b0\u589e} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \u6c60\n \n \n \u7684\n \u93e1\u50cf\u5c0d\u7b49\u5c6c\u6027\uff0c\u7136\u5f8c\u6309\u4e00\u4e0b\n \u63d0\u4ea4\n \u3002\n \n \n \n Cluster Name\n \u53e2\u96c6\u540d\u7a31\n \n \n The cluster name is not valid.\n \u53e2\u96c6\u540d\u7a31\u7121\u6548\u3002\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n CephX ID \u7121\u6548\u3002\n \n \n Monitor Addresses\n \u76e3\u63a7\u7a0b\u5f0f\u4f4d\u5740\n \n \n Comma-delimited addresses...\n \u9017\u865f\u5206\u9694\u7684\u4f4d\u5740...\n \n \n The monitory address is not valid.\n \u76e3\u63a7\u7a0b\u5f0f\u4f4d\u5740\u7121\u6548\u3002\n \n \n CephX Key\n CephX \u91d1\u9470\n \n \n Base64-encoded key...\n Base64 \u7de8\u78bc\u7684\u91d1\u9470...\n \n \n CephX key must be base64 encoded.\n CephX \u91d1\u9470\u5fc5\u9808\u70ba Base64 \u7de8\u78bc\u7684\u91d1\u9470\u3002\n \n \n Pools List\n \u6c60\u6e05\u55ae\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \u540d\u7a31\u53ea\u80fd\u7531\u82f1\u6578\u5b57\u5143\u3001\u7834\u6298\u865f\u548c\u5e95\u7dda\u7d44\u6210\u3002\n \n \n The chosen erasure code profile name is already in use.\n \u6240\u9078\u7684\u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\u540d\u7a31\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Plugin\n \u5916\u639b\u7a0b\u5f0f\n \n \n Data chunks (k)\n \u8cc7\u6599\u5340\u584a (k)\n \n \n Must be equal to or greater than 2.\n \u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc 2\u3002\n \n \n Coding chunks (m)\n \u7de8\u78bc\u5340\u584a (m)\n \n \n Must be equal to or greater than 1.\n \u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc 1\u3002\n \n \n Durability estimator (c)\n \u6301\u4e45\u6027\u4f30\u503c (c)\n \n \n Locality (l)\n \u672c\u5730\u6027 (l)\n \n \n Crush failure domain\n CRUSH \u6545\u969c\u7db2\u57df\n \n \n Crush Locality\n CRUSH \u672c\u5730\u6027\n \n \n None\n \u7121\n \n \n Technique\n \u6280\u8853\n \n \n Packetsize\n \u5c01\u5305\u5927\u5c0f\n \n \n Crush root\n CRUSH \u6839\n \n \n Crush device class\n CRUSH \u88dd\u7f6e\u985e\u5225\n \n \n any\n \u4efb\u4f55\n \n \n Directory\n \u76ee\u9304\n \n \n The chosen Ceph pool name is already in use.\n \u6240\u9078\u7684 Ceph \u6c60\u540d\u7a31\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Pool type\n \u6c60\u985e\u578b\n \n \n -- Select a pool type --\n -- \u9078\u53d6\u6c60\u985e\u578b --\n \n \n Placement groups\n \u653e\u7f6e\u7fa4\u7d44\n \n \n At least one placement group is needed!\n \u81f3\u5c11\u9700\u8981\u4e00\u500b\u653e\u7f6e\u7fa4\u7d44\uff01\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \u60a8\u7684\u53e2\u96c6\u7121\u6cd5\u8655\u7406\u9019\u9ebc\u591a\u7684 PG\u3002\u8acb\u91cd\u65b0\u8a08\u7b97\u6240\u9700\u7684 PG \u6578\u91cf\u3002\n \n \n Calculation help\n \u8a08\u7b97\u8aaa\u660e\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \u5df2\u70ba\u60a8\u8a08\u7b97\u76ee\u524d\u7684 PG \u8a2d\u5b9a\uff0c\u60a8\n \u61c9\u5728\u63d0\u4ea4\u524d\u78ba\u5b9a\u9019\u4e9b\u503c\u7b26\u5408\u60a8\u7684\u9700\u6c42\u3002\n \n \n Crush ruleset\n CRUSH \u898f\u5247\u96c6\n \n \n -- Select a crush rule --\n -- \u9078\u53d6 CRUSH \u898f\u5247 --\n \n \n Crush rule\n CRUSH \u898f\u5247\n \n \n Crush steps\n CRUSH \u6b65\u9a5f\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \u7121\u6cd5\u5728\u76ee\u524d\u7684\u53e2\u96c6\u4e2d\u4f7f\u7528\u6b64\u898f\u5247\uff0c\u56e0\u70ba\u53e2\u96c6\u7684\n OSD \u6578\u91cf\u904e\u5c11\uff0c\u7121\u6cd5\u6eff\u8db3\u898f\u5247\u6240\u9700\u7684\u6700\u4f4e OSD \u6578\u91cf\u3002\n \n \n Replicated size\n \u8907\u88fd\u5927\u5c0f\n \n \n Minimum: \n \n \n \u6700\u4f4e\ufe30\n \n \n \n \n Maximum: \n \n \n \u6700\u9ad8\ufe30\n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \u6307\u5b9a\u7684\u5927\u5c0f\u8d85\u51fa\u4e86\u7bc4\u570d\u3002\u4ecb\u65bc\n \u81f3 \n \u4e4b\u9593\u7684\u503c\u624d\u6709\u6548\u3002\n \n \n \n Erasure code profile\n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\n \n \n -- No erasure code profile available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94 --\n \n \n -- Select an erasure code profile --\n -- \u9078\u53d6\u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94 --\n \n \n EC Overwrites\n EC \u8986\u5beb\n \n \n Applications\n \u61c9\u7528\u7a0b\u5f0f\n \n \n Compression\n \u58d3\u7e2e\n \n \n Algorithm\n \u6f14\u7b97\u6cd5\n \n \n -- No erasure compression algorithm available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u7cfe\u522a\u58d3\u7e2e\u6f14\u7b97\u6cd5 --\n \n \n Minimum blob size\n Blob \u6700\u5c0f\u5927\u5c0f\n \n \n e.g., 128KiB\n \u4f8b\u5982 128 KiB\n \n \n Value should be greater than 0\n \u503c\u61c9\u5927\u65bc 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Blob \u6700\u5927\u5927\u5c0f\n \n \n e.g., 512KiB\n \u4f8b\u5982 512 KiB\n \n \n Value should be greater than the minimum blob size\n \u503c\u61c9\u5927\u65bc blob \u6700\u5c0f\u5927\u5c0f\n \n \n Ratio\n \u6bd4\u7387\n \n \n Compression ratio\n \u58d3\u7e2e\u7387\n \n \n Value should be between 0.0 and 1.0\n \u503c\u61c9\u4ecb\u65bc 0.0 \u81f3 1.0 \u4e4b\u9593\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \u7121\u6cd5\u5efa\u7acb\u540d\u7a31\u4e2d\u5305\u542b\u300c/\u300d\u7684 RBD \u6c60\u3002\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \u8acb\u8b8a\u66f4\u540d\u7a31\u6216\u5c07\u300crbd\u300d\u5f9e\u61c9\u7528\u7a0b\u5f0f\u6e05\u55ae\u4e2d\u79fb\u9664\u3002\n \n \n Cache Tiers Details\n \u5feb\u53d6\u5c64\u8a73\u7d30\u8cc7\u6599\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528\u7269\u4ef6\u9598\u9053\u7ba1\u7406\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Daemons List\n \u7cbe\u9748\u6e05\u55ae\n \n \n Performance Counters\n \u6548\u80fd\u8a08\u6578\u5668\n \n \n Loading bucket data...\n \u6b63\u5728\u8f09\u5165\u6876\u8cc7\u6599...\n \n \n The bucket data could not be loaded.\n \u7121\u6cd5\u8f09\u5165\u6876\u8cc7\u6599\u3002\n \n \n Id\n ID\n \n \n The value is not valid.\n \u8a72\u503c\u7121\u6548\u3002\n \n \n Owner\n \u64c1\u6709\u8005\n \n \n -- Select a user --\n -- \u9078\u53d6\u4f7f\u7528\u8005 --\n \n \n ID\n ID\n \n \n Index type\n \u7d22\u5f15\u985e\u578b\n \n \n Placement rule\n \u653e\u7f6e\u898f\u5247\n \n \n Marker\n \u6a19\u8a18\n \n \n Maximum marker\n \u6700\u5927\u6a19\u8a18\u6578\n \n \n Version\n \u7248\u672c\n \n \n Master version\n \u4e3b\u7248\u672c\n \n \n Modification time\n \u4fee\u6539\u6642\u9593\n \n \n Zonegroup\n \u5340\u57df\u7fa4\u7d44\n \n \n Bucket quota\n \u6876\u5b9a\u984d\n \n \n Enabled\n \u5df2\u555f\u7528\n \n \n Maximum size\n \u6700\u5927\u5927\u5c0f\n \n \n Unlimited\n \u7121\u9650\u5236\n \n \n Maximum objects\n \u6700\u5927\u7269\u4ef6\u6578\n \n \n -- Select a username --\n -- \u9078\u53d6\u4f7f\u7528\u8005\u540d\u7a31 --\n \n \n Auto-generate key\n \u81ea\u52d5\u7522\u751f\u91d1\u9470\n \n \n Access key\n \u5b58\u53d6\u91d1\u9470\n \n \n Secret key\n \u6a5f\u5bc6\u91d1\u9470\n \n \n Email address\n \u96fb\u5b50\u90f5\u4ef6\u5730\u5740\n \n \n Suspended\n \u5df2\u66ab\u505c\n \n \n System\n \u7cfb\u7d71\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {\u5426} 1 {\u662f} }\n \n \n Maximum buckets\n \u6700\u5927\u6876\u6578\n \n \n Subusers\n \u5b50\u4f7f\u7528\u8005\n \n \n Capabilities\n \u529f\u80fd\n \n \n User quota\n \u4f7f\u7528\u8005\u5b9a\u984d\n \n \n Show\n \u986f\u793a\n \n \n Keys\n \u91d1\u9470\n \n \n -- Select a type --\n -- \u9078\u53d6\u985e\u578b --\n \n \n Permission\n \u8a31\u53ef\u6b0a\n \n \n -- Select a permission --\n -- \u9078\u53d6\u8a31\u53ef\u6b0a --\n \n \n Subuser\n \u5b50\u4f7f\u7528\u8005\n \n \n The chosen subuser ID is already in use.\n \u6240\u9078\u7684\u5b50\u4f7f\u7528\u8005 ID \u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n read, write\n \u8b80\u53d6\u3001\u5beb\u5165\n \n \n full\n \u5b8c\u6574\n \n \n Swift key\n Swift \u91d1\u9470\n \n \n Auto-generate secret\n \u81ea\u52d5\u7522\u751f\u6a5f\u5bc6\u91d1\u9470\n \n \n Loading user data...\n \u6b63\u5728\u8f09\u5165\u4f7f\u7528\u8005\u8cc7\u6599...\n \n \n The user data could not be loaded.\n \u7121\u6cd5\u8f09\u5165\u4f7f\u7528\u8005\u8cc7\u6599\u3002\n \n \n The chosen user ID is already in use.\n \u6240\u9078\u7684\u4f7f\u7528\u8005 ID \u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n This is not a valid email address.\n \u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u7121\u6548\u3002\n \n \n The chosen email address is already in use.\n \u6240\u9078\u7684\u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Max. buckets\n \u6700\u5927\u6876\u6578\n \n \n The entered value must be >= 0.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc 0\u3002\n \n \n S3 key\n S3 \u91d1\u9470\n \n \n There are no subusers.\n \u6c92\u6709\u5b50\u4f7f\u7528\u8005\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \u6c92\u6709\u91d1\u9470\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n \u6c92\u6709\u529f\u80fd\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \u5927\u5c0f\u4e0d\u9650\n \n \n Max. size\n \u6700\u5927\u5927\u5c0f\n \n \n Unlimited objects\n \u7269\u4ef6\u6578\u4e0d\u9650\n \n \n Max. objects\n \u6700\u5927\u7269\u4ef6\u6578\n \n \n Current\n \u76ee\u524d\n \n \n Updated discovery authentication\n \u5df2\u66f4\u65b0\u63a2\u67e5\u9a57\u8b49\n \n \n There are no portals available.\n \u6c92\u6709\u53ef\u7528\u7684\u5165\u53e3\u7db2\u7ad9\u3002\n \n \n There are no images available.\n \u6c92\u6709\u53ef\u7528\u7684\u5f71\u50cf\u3002\n \n \n There are no images available. Please make sure you add an image to the target.\n \u6c92\u6709\u53ef\u7528\u7684\u5f71\u50cf\u3002\u8acb\u78ba\u5b9a\u70ba\u76ee\u6a19\u65b0\u589e\u4e00\u500b\u5f71\u50cf\u3002\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \u6c92\u6709\u53ef\u7528\u7684\u555f\u52d5\u5668\u3002\u8acb\u78ba\u5b9a\u70ba\u76ee\u6a19\u65b0\u589e\u4e00\u500b\u555f\u52d5\u5668\u3002\n \n \n target\n target\n \n \n Target\n \u76ee\u6a19\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \u72c0\u614b\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \u8b80\u53d6\u4f4d\u5143\u7d44\u6578\n \n \n Write Bytes\n \u5beb\u5165\u4f4d\u5143\u7d44\u6578\n \n \n Read Ops\n \u8b80\u53d6\u64cd\u4f5c\u6578\n \n \n Write Ops\n \u5beb\u5165\u64cd\u4f5c\u6578\n \n \n A/O Since\n \u4f7f\u7528\u4e2d/\u6700\u4f73\u5316\u958b\u59cb\u6642\u9593\n \n \n Instance\n \u4f8b\u9805\n \n \n Hostname\n \u4e3b\u6a5f\u540d\u7a31\n \n \n Issue\n \u554f\u984c\n \n \n Progress\n \u9032\u5ea6\n \n \n Disabled\n \u5df2\u505c\u7528\n \n \n Edit Mode\n \u7de8\u8f2f\u6a21\u5f0f\n \n \n Add Peer\n \u65b0\u589e\u5c0d\u7b49\n \n \n Edit Peer\n \u7de8\u8f2f\u5c0d\u7b49\n \n \n Delete Peer\n \u522a\u9664\u5c0d\u7b49\n \n \n Leader\n Leader\n \n \n # Local\n \u672c\u5730\u6578\u91cf\n \n \n # Remote\n \u9060\u7aef\u6578\u91cf\n \n \n mirror peer\n \u93e1\u50cf\u5c0d\u7b49\n \n \n Key\n \u91d1\u9470\n \n \n RBD\n RBD\n \n \n Deep flatten\n \u6df1\u5c64\u58d3\u5e73\n \n \n Layering\n \u5206\u5c64\n \n \n Exclusive lock\n \u7368\u4f54\u9396\u5b9a\n \n \n Object map (requires exclusive-lock)\n \u7269\u4ef6\u5c0d\u61c9 (\u9700\u8981\u7368\u4f54\u9396\u5b9a)\n \n \n Journaling (requires exclusive-lock)\n \u8a18\u9304 (\u9700\u8981\u7368\u4f54\u9396\u5b9a)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD \u5feb\u7167\u5fa9\u539f\n \n \n Rollback\n \u5fa9\u539f\n \n \n RBD snapshot\n RBD \u5feb\u7167\n \n \n Deleted At\n \u522a\u9664\u4f4d\u7f6e\n \n \n id\n ID\n \n \n type\n \u985e\u578b\n \n \n state\n \u72c0\u614b\n \n \n version\n \u7248\u672c\n \n \n Host\n \u4e3b\u6a5f\n \n \n root\n \u6839\n \n \n Rank\n \u968e\u5c64\n \n \n Daemon\n \u7cbe\u9748\n \n \n Activity\n \u6d3b\u52d5\n \n \n Dentries\n Dentry\n \n \n Inodes\n Inode\n \n \n Usage\n \u4f7f\u7528\u7387\n \n \n Standby daemons\n \u5f85\u547d\u7cbe\u9748\n \n \n The value can be updated at runtime.\n \u8a72\u503c\u53ef\u5728\u57f7\u884c\u6642\u671f\u66f4\u65b0\u3002\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \u7cbe\u9748/\u7528\u6236\u7aef\u4e0d\u6703\u5f9e\u76e3\u63a7\u7a0b\u5f0f\u7d44\u614b\u8cc7\u6599\u5eab\n \u63d0\u53d6\u6b64\u503c\u3002\u6211\u5011\u4e0d\u5141\u8a31\u900f\u904e\u300cceph config set ...\u300d\n \u8a2d\u5b9a\u6b64\u9078\u9805\u3002\u61c9\u900f\u904e ceph.conf \u6216\u4f7f\u7528\u6307\u4ee4\u884c\n \u9032\u884c\u8a2d\u5b9a\u3002\n \n \n Option takes effect only during daemon startup.\n \u8a72\u9078\u9805\u50c5\u5728\u7cbe\u9748\u555f\u52d5\u671f\u9593\u751f\u6548\u3002\n \n \n Option only affects cluster creation.\n \u8a72\u9078\u9805\u50c5\u5f71\u97ff\u53e2\u96c6\u5efa\u7acb\u3002\n \n \n Option only affects daemon creation.\n \u8a72\u9078\u9805\u50c5\u5f71\u97ff\u7cbe\u9748\u5efa\u7acb\u3002\n \n \n Updated config option \n \n \n \u5df2\u66f4\u65b0\u7d44\u614b\u9078\u9805\n \n \n \n \n Service\n \u670d\u52d9\n \n \n Current value\n \u76ee\u524d\u7684\u503c\n \n \n Editable\n \u53ef\u7de8\u8f2f\n \n \n Updated options for module "\n ".\n \n \u5df2\u66f4\u65b0\u6a21\u7d44\u300c\n \u300d\u7684\u9078\u9805\u3002\n \n \n \n Enable\n \u555f\u7528\n \n \n Disable\n \u505c\u7528\n \n \n Reconnecting, please wait ...\n \u6b63\u5728\u91cd\u65b0\u9023\u63a5\uff0c\u8acb\u7a0d\u5019...\n \n \n Public Address\n \u516c\u7528\u4f4d\u5740\n \n \n Open Sessions\n \u958b\u555f\u7684\u5de5\u4f5c\u968e\u6bb5\n \n \n No In\n \u7981\u6b62\u6a19\u793a\u70ba In\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \u4e4b\u524d\u6a19\u793a\u70ba out \u7684 OSD \u5728\u555f\u52d5\u6642\u5c07\u4e0d\u6703\u91cd\u65b0\u6a19\u793a\u70ba in\n \n \n No Out\n \u7981\u6b62\u6a19\u793a\u70ba Out\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD \u5728\u8a2d\u5b9a\u7684\u9593\u9694\u904e\u5f8c\u5c07\u4e0d\u6703\u81ea\u52d5\u6a19\u793a\u70ba out\n \n \n No Up\n \u7981\u6b62\u6a19\u793a\u70ba Up\n \n \n OSDs are not allowed to start\n \u4e0d\u5141\u8a31 OSD \u555f\u52d5\n \n \n No Down\n \u7981\u6b62\u6a19\u793a\u70ba Down\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n \u5c07\u6703\u5ffd\u7565 OSD \u6545\u969c\u5831\u544a\uff0c\u5982\u6b64\u76e3\u63a7\u7a0b\u5f0f\u4fbf\u4e0d\u6703\u5c07 OSD \u6a19\u793a\u70ba down\n \n \n Pause\n \u66ab\u505c\n \n \n Pauses reads and writes\n \u66ab\u505c\u8b80\u53d6\u548c\u5beb\u5165\n \n \n No Scrub\n \u7981\u6b62\u6574\u7406\n \n \n Scrubbing is disabled\n \u6574\u7406\u5df2\u505c\u7528\n \n \n No Deep Scrub\n \u7981\u6b62\u6df1\u5c64\u6574\u7406\n \n \n Deep Scrubbing is disabled\n \u6df1\u5c64\u6574\u7406\u5df2\u505c\u7528\n \n \n No Backfill\n \u7981\u6b62\u56de\u586b\n \n \n Backfilling of PGs is suspended\n PG \u56de\u586b\u5df2\u66ab\u505c\n \n \n No Recover\n \u7981\u6b62\u5fa9\u539f\n \n \n Recovery of PGs is suspended\n PG \u5fa9\u539f\u5df2\u66ab\u505c\n \n \n Bitwise Sort\n \u6309\u4f4d\u5143\u6392\u5e8f\n \n \n Use bitwise sort\n \u4f7f\u7528\u6309\u4f4d\u5143\u6392\u5e8f\n \n \n Purged Snapdirs\n \u5df2\u6e05\u9664 Snapdir\n \n \n OSDs have converted snapsets\n OSD \u5df2\u8f49\u63db snapset\n \n \n Recovery Deletes\n \u5fa9\u539f\u522a\u9664\n \n \n Deletes performed during recovery instead of peering\n \u5728\u5fa9\u539f\u671f\u9593\uff0c\u800c\u975e\u5728\u5efa\u7acb\u4e92\u806f\u6642\u57f7\u884c\u522a\u9664\n \n \n PG Log Hard Limit\n PG \u8a18\u9304\u786c\u9650\u5236\n \n \n Puts a hard limit on pg log length\n \u70ba pg \u8a18\u9304\u9577\u5ea6\u8a2d\u5b9a\u786c\u9650\u5236\n \n \n Updated OSD Flags\n \u5df2\u66f4\u65b0 OSD \u65d7\u6a19\n \n \n out\n out\n \n \n in\n in\n \n \n down\n down\n \n \n Mark\n \u6a19\u793a\n \n \n OSD lost\n OSD \u907a\u5931\n \n \n marked lost\n \u5df2\u6a19\u793a\u70ba\u907a\u5931\n \n \n Purge\n \u6e05\u9664\n \n \n OSD\n OSD\n \n \n purged\n \u5df2\u6e05\u9664\n \n \n destroy\n \u640d\u6bc0\n \n \n destroyed\n \u5df2\u640d\u6bc0\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG\n \n \n Read bytes\n \u8b80\u53d6\u4f4d\u5143\u7d44\u6578\n \n \n Writes bytes\n \u5beb\u5165\u4f4d\u5143\u7d44\u6578\n \n \n Read ops\n \u8b80\u53d6\u64cd\u4f5c\u6578\n \n \n Write ops\n \u5beb\u5165\u64cd\u4f5c\u6578\n \n \n Mark OSD \n \n \n \u5c07 OSD \u6a19\u793a\u70ba \n \n \n \n \n Mark \n \n \n \u6a19\u793a\u70ba \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \u6700\u5927\u56de\u586b\u6578\n \n \n Recovery Max Active\n \u8655\u65bc\u4f7f\u7528\u4e2d\u72c0\u614b\u7684\u6700\u5927\u5fa9\u539f\u64cd\u4f5c\u6578\n \n \n Recovery Max Single Start\n \u55ae\u6b21\u555f\u52d5\u7684\u6700\u5927\u5fa9\u539f\u64cd\u4f5c\u6578\n \n \n Recovery Sleep\n \u5fa9\u539f\u64cd\u4f5c\u9593\u9694\u7761\u7720\u6642\u9593\n \n \n Custom\n \u81ea\u8a02\n \n \n Updated OSD recovery speed priority "\n "\n \n \u5df2\u66f4\u65b0 OSD \u5fa9\u539f\u901f\u5ea6\u512a\u5148\u7a0b\u5ea6\u300c\n \u300d\n \n \n \n \n was initialized in the following OSD: \n \n \n \u4ee5\u4e0b OSD \u5df2\u555f\u59cb\u5316\n \u64cd\u4f5c\ufe30\n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \u5de5\u4f5c\n \n \n Severity\n \u56b4\u91cd\u6027\n \n \n Started\n \u5df2\u555f\u52d5\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \u5df2\u66f4\u65b0\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \u5df2\u4f7f\u7528\n \n \n Avail.\n \u53ef\u7528\n \n \n Clean\n \u4e7e\u6de8\n \n \n Working\n \u5de5\u4f5c\u4e2d\n \n \n Warning\n \u8b66\u544a\n \n \n Unknown\n \u672a\u77e5\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \u555f\u7528\u4e2d\n \n \n no filesystems\n \u7121\u6a94\u6848\u7cfb\u7d71\n \n \n active\n \u4f7f\u7528\u4e2d\n \n \n standby\n \u5f85\u547d\n \n \n n/a\n \u7121\n \n \n active daemon\n \u4f7f\u7528\u4e2d\u7684\u7cbe\u9748\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n \u672a\u8a2d\u5b9a NFS Ganesha \u670d\u52d9\u3002\n \n \n Transport\n \u50b3\u8f38\n \n \n CephFS User\n CephFS \u4f7f\u7528\u8005\n \n \n CephFS Filesystem\n CephFS \u6a94\u6848\u7cfb\u7d71\n \n \n (inherited from global config)\n (\u7e7c\u627f\u81ea\u5168\u57df\u7d44\u614b)\n \n \n inherited from global config\n \u7e7c\u627f\u81ea\u5168\u57df\u7d44\u614b\n \n \n -- Select what kind of user id squashing is performed --\n -- \u9078\u53d6\u57f7\u884c\u54ea\u7a2e\u985e\u578b\u7684\u4f7f\u7528\u8005 ID \u533f\u540d\u5b58\u53d6 --\n \n \n There are no daemons available.\n \u6c92\u6709\u53ef\u7528\u7684\u7cbe\u9748\u3002\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \u5feb\u53d6\u6a21\u5f0f\n \n \n Min Evict Age\n \u9010\u51fa\u524d\u81f3\u5c11\u53ef\u7559\u5b58\u7684\u6642\u9593\n \n \n Min Flush Age\n \u885d\u6d17\u524d\u81f3\u5c11\u53ef\u7559\u5b58\u7684\u6642\u9593\n \n \n Target Max Bytes\n \u76ee\u6a19\u6700\u5927\u4f4d\u5143\u7d44\u6578\n \n \n Target Max Objects\n \u76ee\u6a19\u6700\u5927\u7269\u4ef6\u6578\n \n \n No applications added\n \u672a\u65b0\u589e\u61c9\u7528\u7a0b\u5f0f\n \n \n Applications limit reached\n \u5df2\u9054\u5230\u61c9\u7528\u7a0b\u5f0f\u4e0a\u9650\n \n \n A pool can only have up to four applications definitions.\n \u4e00\u500b\u6c60\u6700\u591a\u53ea\u80fd\u56db\u500b\u61c9\u7528\u7a0b\u5f0f\u5b9a\u7fa9\u3002\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \u5141\u8a31\u7684\u5b57\u5143\u70ba\u300c_a-zA-Z0-9\u300d\n \n \n Maximum length is 128 characters\n \u6700\u5927\u9577\u5ea6\u70ba 128 \u500b\u5b57\u5143\n \n \n Filter or add applications\n \u904e\u6ffe\u6216\u65b0\u589e\u61c9\u7528\u7a0b\u5f0f\n \n \n Add application\n \u65b0\u589e\u61c9\u7528\u7a0b\u5f0f\n \n \n pool\n pool\n \n \n erasure code profile\n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\n \n \n Replica Size\n \u8907\u672c\u5927\u5c0f\n \n \n Last Change\n \u4e0a\u6b21\u8b8a\u66f4\u6642\u9593\n \n \n Erasure Coded Profile\n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\n \n \n Crush Ruleset\n CRUSH \u898f\u5247\u96c6\n \n \n Write bytes\n \u5beb\u5165\u4f4d\u5143\u7d44\u6578\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \u6876\n \n \n Updated Object Gateway bucket "\n "\n \n \u5df2\u66f4\u65b0\u7269\u4ef6\u9598\u9053\u6876\u300c\n \u300d\n \n \n \n Created Object Gateway bucket "\n "\n \n \u5df2\u5efa\u7acb\u7269\u4ef6\u9598\u9053\u6876\u300c\n \u300d\n \n \n \n buckets\n \u6876\n \n \n capability\n capability\n \n \n user\n \u4f7f\u7528\u8005\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \u5df2\u66f4\u65b0\u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Created Object Gateway user "\n "\n \n \u5df2\u5efa\u7acb\u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n users\n \u4f7f\u7528\u8005\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \u7bc4\u570d\n \n \n Read\n \u8b80\u53d6\n \n \n Create\n \u5efa\u7acb\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \u5df2\u5efa\u7acb\u89d2\u8272\u300c\n \u300d\n \n \n \n Updated role \'\n \'\n \n \u5df2\u66f4\u65b0\u89d2\u8272\u300c\n \u300d\n \n \n \n System Role\n \u7cfb\u7d71\u89d2\u8272\n \n \n Deleted role \'\n \'\n \n \u5df2\u522a\u9664\u89d2\u8272\u300c\n \u300d\n \n \n \n Created user "\n "\n \n \u5df2\u5efa\u7acb\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Update user\n \u66f4\u65b0\u4f7f\u7528\u8005\n \n \n Continue\n \u7e7c\u7e8c\n \n \n You were automatically logged out because your roles have been changed.\n \u60a8\u5df2\u88ab\u81ea\u52d5\u767b\u51fa\uff0c\u56e0\u70ba\u60a8\u7684\u89d2\u8272\u767c\u751f\u4e86\u8b8a\u66f4\u3002\n \n \n Updated user "\n "\n \n \u5df2\u66f4\u65b0\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Deleted user "\n "\n \n \u5df2\u522a\u9664\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Failed to delete user "\n "\n \n \u7121\u6cd5\u522a\u9664\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n You are currently logged in as "\n ".\n \n \u60a8\u76ee\u524d\u6b63\u4ee5\u300c\n \u300d\u8eab\u5206\u767b\u5165\u3002\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \u5404\u7269\u4ef6\u90fd\u88ab\u5206\u5272\u6210\u8cc7\u6599\u5340\u584a\u90e8\u5206\uff0c\u5206\u5225\u5132\u5b58\u65bc\u4e0d\u540c\u7684 OSD\u3002\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \u904b\u7b97\u5404\u7269\u4ef6\u7684\u7de8\u78bc\u5340\u584a\u5e76\u5c07\u5b83\u5011\u5132\u5b58\u5230\u4e0d\u540c\u7684 OSD\u3002\n \u7de8\u78bc\u5340\u584a\u7684\u6578\u91cf\u7b49\u540c\u65bc\u5728\u4e0d\u907a\u5931\u8cc7\u6599\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u505c\u6a5f\u7684 OSD \u6578\u91cf\u3002\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Jerasure \u5916\u639b\u7a0b\u5f0f\u662f\u6700\u4e00\u822c\u3001\u6700\u9748\u6d3b\u7684\u5916\u639b\u7a0b\u5f0f\uff0c\n \u4e5f\u662f Ceph \u7cfe\u522a\u78bc\u6c60\u7684\u9810\u8a2d\u5916\u639b\u7a0b\u5f0f\u3002\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Reed_sol_van \u65b9\u6cd5\u66f4\u9748\u6d3b\ufe30\u5b83\u8db3\u4ee5\u8a2d\u5b9a k\n \u548c m\u3002Cauchy_good \u65b9\u6cd5\u66f4\u5feb\uff0c\u4f46\u60a8\u9700\u8981\u5c0f\u5fc3\u9078\u53d6\u5c01\u5305\u5927\u5c0f\u3002\n \u6240\u6709 reed_sol_r6_op\u3001liberation\u3001blaum_roth\u3001liber8tion \u90fd\n \u7b49\u540c\u65bc RAID6\uff0c\u5b83\u5011\u53ea\u80fd\u8a2d\u5b9a\u70ba m=2\u3002\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \u5c07\u4ee5\u4f4d\u5143\u7d44\u5927\u5c0f\u7684\u5c01\u5305\u70ba\u55ae\u4f4d\u9032\u884c\u7de8\u78bc\u3002\n \u9078\u53d6\u5408\u9069\u7684\u5c01\u5305\u5927\u5c0f\u5f88\u96e3\u3002\n Jerasure \u6587\u4ef6\u5305\u542b\u6709\u95dc\u6b64\u4e3b\u984c\u7684\u8a73\u7d30\u8cc7\u8a0a\u3002\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n \u4f7f\u7528 jerasure \u5916\u639b\u7a0b\u5f0f\u6642\uff0c\u82e5\u7cfe\u522a\u78bc\u7269\u4ef6\u5132\u5b58\u65bc\n \u591a\u500b OSD \u4e0a\uff0c\u5247\u5fa9\u539f\u4e00\u500b\u907a\u5931\u7684 OSD \u6642\u9700\u8981\u8b80\u53d6\u6240\u6709\u5176\u4ed6 OSD\u3002\n \u4f8b\u5982\uff0c\u82e5 jerasure \u8a2d\u5b9a\u70ba k=8 \u4e14 m=4\uff0c\u5247\u907a\u5931\u4e00\u500b OSD \u5f8c\u9700\u8b80\u53d6\n \u5176\u4ed6\u5341\u4e00\u500b OSD \u624d\u80fd\u4fee\u5fa9\u3002\n\n lrc \u7cfe\u522a\u78bc\u5916\u639b\u7a0b\u5f0f\u6703\u5efa\u7acb\u672c\u5730\u540c\u4f4d\u5340\u584a\uff0c\u56e0\u6b64\u53ea\u9700\u8f03\u5c11\u7684 OSD \u5373\n \u53ef\u5fa9\u539f\u3002\u4f8b\u5982\uff0c\u82e5 lrc \u8a2d\u5b9a\u70ba k=8\u3001m=4 \u4e14 l=4\uff0c\u5b83\u5c07\u70ba\u6bcf\u56db\u500b OSD\n \u5efa\u7acb\u984d\u5916\u7684\u540c\u4f4d\u5340\u584a\u3002\u9019\u6a23\uff0c\u7576\u4e00\u500b OSD \u907a\u5931\u6642\uff0c\u5b83\u53ea\u9700\u56db\u500b OSD\n \u5373\u53ef\u5fa9\u539f\uff0c\u800c\u4e0d\u9700\u8981\u5341\u4e00\u500b\u3002\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \u5c07\u7de8\u78bc\u5340\u584a\u548c\u8cc7\u6599\u5340\u584a\u5206\u7d44\u70ba\u5927\u5c0f\u70ba locality \u7684\u96c6\u5408\u3002\u4f8b\u5982\uff0c\n k=4 \u4e14 m=2 \u6642\uff0c\u82e5 locality=3\uff0c\u5247\u6703\u5efa\u7acb 2 \u500b\u5927\u5c0f\u70ba 3 \u7684\u7d44\u3002\u9019\u6a23\uff0c\u5404\u7d44\u90fd\u80fd\n \u81ea\u884c\u5fa9\u539f\uff0c\u800c\u7121\u9700\u5f9e\u53e6\u4e00\u7d44\u8b80\u53d6\u5340\u584a\u3002\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n \u7531 l \u5b9a\u7fa9\u7684\u5340\u584a\u96c6\u5c07\u6309\u54ea\u7a2e CRUSH \u6876\u985e\u578b\u5132\u5b58\u3002\n \u4f8b\u5982\uff0c\u82e5\u8a2d\u5b9a\u70ba\u6a5f\u67b6\uff0c\u5247\u5404\u7d44 l \u5340\u584a\u5c07\u6703\u88ab\u653e\u7f6e\u5230\u4e0d\u540c\u7684\n \u6a5f\u67b6\u4e2d\u3002\u8a72\u503c\u7528\u65bc\u5efa\u7acb\u985e\u4f3c step choose rack \u7684 CRUSH\n \u898f\u5247\u6b65\u9a5f\u3002\u82e5\u672a\u8a2d\u5b9a\uff0c\u5247\u4e0d\u6703\u9032\u884c\u6b64\u985e\u5206\u7d44\u3002\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa \u5916\u639b\u7a0b\u5f0f\u5c01\u5305\u4e86 ISA \u7a0b\u5f0f\u5eab\u3002\u5b83\u53ea\u80fd\u5728 Intel \u8655\u7406\u5668\u4e0a\u57f7\u884c\u3002\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA \u5916\u639b\u7a0b\u5f0f\u5305\u542b\u5169\u7a2e Reed Solomon \u683c\u5f0f\u3002\n \u82e5\u8a2d\u5b9a\u70ba reed_sol_van\uff0c\u5247\u70ba Vandermonde\u3002\u82e5\u8a2d\u5b9a\u70ba cauchy\uff0c\u5247\u70ba Cauchy\u3002\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec \u5916\u639b\u7a0b\u5f0f\u5c01\u5305\u4e86\u591a\u500b SHEC \u7a0b\u5f0f\u5eab\u3002\n \u8207 Reed Solomon \u4ee3\u78bc\u76f8\u6bd4\uff0c\u5b83\u80fd\u66f4\u6709\u6548\u5730\u5fa9\u539f\u8cc7\u6599\u3002\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \u540c\u4f4d\u5340\u584a\u7684\u6578\u91cf\uff0c\u5b83\u5011\u5728\u5404\u81ea\u7684\u8a08\u7b97\u7bc4\u570d\u5167\u5305\u542b\u4e86\n \u5404\u8cc7\u6599\u5340\u584a\u3002\u8a72\u6578\u503c\u88ab\u7528\u505a\u6301\u4e45\u6027\u4f30\u503c\u3002\u4f8b\u5982\uff0c\u82e5 c=2\uff0c\n \u5247\u5728\u4e0d\u907a\u5931\u8cc7\u6599\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u6709 2 \u500b OSD \u505c\u6a5f\u3002\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n CRUSH \u898f\u5247\u7684\u7b2c\u4e00\u6b65\u6240\u6307\u5411\u7684 CRUSH \u6876\u540d\u7a31\u3002\n \u4f8b\u5982 step take default\u3002\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \u78ba\u5b9a\u5169\u500b\u5340\u584a\u4e0d\u6703\u5b58\u5728\u65bc\u540c\u4e00\u6545\u969c\u7db2\u57df\u7684\u6876\u4e2d\u3002\n \u4f8b\u5982\uff0c\u82e5\u6545\u969c\u7db2\u57df\u70ba\u4e3b\u6a5f\uff0c\u5247\u4e0d\u6703\u6709\u5169\u500b\u5340\u584a\u5132\u5b58\u65bc\u540c\u4e00\u4e3b\u6a5f\u4e2d\u3002\n \u8a72\u503c\u7528\u65bc\u5efa\u7acb\u985e\u4f3c step chooseleaf host \u7684 CRUSH \u898f\u5247\u6b65\u9a5f\u3002\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n \u4f7f\u7528 CRUSH \u5730\u5716\u4e2d\u7684 crush \u88dd\u7f6e\u985e\u5225\u540d\u7a31\uff0c\n \u5c07\u653e\u7f6e\u9650\u5236\u65bc\u7279\u5b9a\u985e\u5225\u7684\u88dd\u7f6e (\u4f8b\u5982 ssd \u6216 hdd)\u3002\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \u8a2d\u5b9a\u7cfe\u522a\u78bc\u5916\u639b\u7a0b\u5f0f\u6240\u5728\u76ee\u9304\u3002\n \n \n Allows all operations\n \u5141\u8a31\u6240\u6709\u64cd\u4f5c\n \n \n Allows only operations that do not modify the server\n \u50c5\u5141\u8a31\u4e0d\u4fee\u6539\u4f3a\u670d\u5668\u7684\u64cd\u4f5c\n \n \n Does not allow read or write operations, but allows any other operation\n \u4e0d\u5141\u8a31\u8b80\u53d6\u6216\u5beb\u5165\u64cd\u4f5c\uff0c\u4f46\u662f\u5141\u8a31\u4efb\u4f55\u5176\u4ed6\u64cd\u4f5c\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \u4e0d\u5141\u8a31\u8b80\u53d6\u3001\u5beb\u5165\u6216\u4efb\u4f55\u53ef\u80fd\u4fee\u6539\u6a94\u6848\u5c6c\u6027\u6216\u76ee\u9304\u5167\u5bb9\u7684\u64cd\u4f5c\n \n \n Allows no access at all\n \u5b8c\u5168\u7981\u6b62\u5b58\u53d6\n \n \n -- Select the priority --\n -- \u9078\u53d6\u512a\u5148\u7a0b\u5ea6 --\n \n \n Low\n \u4f4e\n \n \n High\n \u9ad8\n \n \n Last 5 minutes\n \u904e\u53bb 5 \u5206\u9418\n \n \n Last 15 minutes\n \u904e\u53bb 15 \u5206\u9418\n \n \n Last 30 minutes\n \u904e\u53bb 30 \u5206\u9418\n \n \n Last 1 hour (Default)\n \u904e\u53bb 1 \u5c0f\u6642 (\u9810\u8a2d\u503c)\n \n \n Last 3 hours\n \u904e\u53bb 3 \u5c0f\u6642\n \n \n Last 6 hours\n \u904e\u53bb 6 \u5c0f\u6642\n \n \n Last 12 hours\n \u904e\u53bb 12 \u5c0f\u6642\n \n \n Last 24 hours\n \u904e\u53bb 24 \u5c0f\u6642\n \n \n Yesterday\n \u6628\u5929\n \n \n Today\n \u4eca\u5929\n \n \n Today so far\n \u4eca\u5929\u5230\u76ee\u524d\u70ba\u6b62\n \n \n Day before yesterday\n \u524d\u5929\n \n \n Last 2 days\n \u904e\u53bb 2 \u5929\n \n \n This day last week\n \u4e0a\u9031\u7684\u4eca\u5929\n \n \n Previous week\n \u4e0a\u9031\n \n \n This week\n \u672c\u9031\n \n \n This week so far\n \u672c\u9031\u76ee\u524d\u70ba\u6b62\n \n \n Last 7 days\n \u904e\u53bb 7 \u5929\n \n \n Previous month\n \u4e0a\u500b\u6708\n \n \n This month\n \u672c\u6708\n \n \n This month so far\n \u672c\u6708\u76ee\u524d\u70ba\u6b62\n \n \n Last 30 days\n \u904e\u53bb 30 \u5929\n \n \n Last 90 days\n \u904e\u53bb 90 \u5929\n \n \n Last 6 months\n \u904e\u53bb 6 \u500b\u6708\n \n \n Last 1 year\n \u904e\u53bb 1 \u5e74\n \n \n Previous year\n \u53bb\u5e74\n \n \n This year\n \u4eca\u5e74\n \n \n This year so far\n \u4eca\u5e74\u76ee\u524d\u70ba\u6b62\n \n \n Last 2 years\n \u904e\u53bb 2 \u5e74\n \n \n Last 5 years\n \u904e\u53bb 5 \u5e74\n \n \n Information\n \u8cc7\u8a0a\n \n \n No items selected.\n \u672a\u9078\u53d6\u9805\u76ee\u3002\n \n \n Deselect item to select again\n \u53d6\u6d88\u9078\u53d6\u9805\u76ee\u4ee5\u518d\u6b21\u9078\u53d6\n \n \n Selection limit reached\n \u5df2\u9054\u5230\u9078\u53d6\u4e0a\u9650\n \n \n Filter tags\n \u904e\u6ffe\u6a19\u8a18\n \n \n Add badge\n \u65b0\u589e\u5fbd\u7ae0\n \n \n There are no items available.\n \u6c92\u6709\u53ef\u7528\u7684\u9805\u76ee\u3002\n \n \n Add\n \u65b0\u589e\n \n \n Remove\n Remove\n \n \n Clone\n \u514b\u9686\n \n \n Copy\n \u8907\u88fd\n \n \n Deep Scrub\n \u6df1\u5c64\u6574\u7406\n \n \n Destroy\n \u640d\u6bc0\n \n \n Flatten\n \u58d3\u5e73\n \n \n Mark Down\n \u6a19\u793a\u70ba Down\n \n \n Mark In\n \u6a19\u793a\u70ba In\n \n \n Mark Lost\n \u6a19\u793a\u70ba\u907a\u5931\n \n \n Mark Out\n \u6a19\u793a\u70ba Out\n \n \n Protect\n \u4fdd\u8b77\n \n \n Rename\n \u91cd\u65b0\u547d\u540d\n \n \n Restore\n \u9084\u539f\n \n \n Move to Trash\n \u79fb\u81f3\u5783\u573e\u6876\n \n \n Unprotect\n \u53d6\u6d88\u4fdd\u8b77\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \u5df2\u522a\u9664\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \u5df2\u514b\u9686\n \n \n Copied\n \u5df2\u8907\u88fd\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \u662f\n \n \n No\n \u5426\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \u670d\u52d9\u54c1\u8cea\n \n \n BPS Limit\n BPS \u4e0a\u9650\n \n \n The desired limit of IO bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u4f4d\u5143\u7d44\u6578\u4e0a\u9650\u3002\n \n \n IOPS Limit\n IOPS \u4e0a\u9650\n \n \n The desired limit of IO operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u64cd\u4f5c\u6b21\u6578\u4e0a\u9650\u3002\n \n \n Read BPS Limit\n \u8b80\u53d6 BPS \u4e0a\u9650\n \n \n The desired limit of read bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5167\u8b80\u53d6\u7684\u4f4d\u5143\u7d44\u6578\u4e0a\u9650\u3002\n \n \n Read IOPS Limit\n \u8b80\u53d6 IOPS \u4e0a\u9650\n \n \n The desired limit of read operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u8b80\u53d6\u64cd\u4f5c\u6b21\u6578\u4e0a\u9650\u3002\n \n \n Write BPS Limit\n \u5beb\u5165 BPS \u4e0a\u9650\n \n \n The desired limit of write bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5167\u5beb\u5165\u7684\u4f4d\u5143\u7d44\u6578\u4e0a\u9650\u3002\n \n \n Write IOPS Limit\n \u5beb\u5165 IOPS \u4e0a\u9650\n \n \n The desired limit of write operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5beb\u5165\u64cd\u4f5c\u6b21\u6578\u4e0a\u9650\u3002\n \n \n BPS Burst\n BPS \u9ad8\u8f09\n \n \n The desired burst limit of IO bytes.\n \u6307\u5b9a\u7684 IO \u4f4d\u5143\u7d44\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n IOPS Burst\n IOPS \u9ad8\u8f09\n \n \n The desired burst limit of IO operations.\n \u6307\u5b9a\u7684 IO \u64cd\u4f5c\u6b21\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Read BPS Burst\n \u8b80\u53d6 BPS \u9ad8\u8f09\n \n \n The desired burst limit of read bytes.\n \u6307\u5b9a\u7684\u8b80\u53d6\u7684\u4f4d\u5143\u7d44\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Read IOPS Burst\n \u8b80\u53d6 IOPS \u9ad8\u8f09\n \n \n The desired burst limit of read operations.\n \u6307\u5b9a\u7684\u8b80\u53d6\u64cd\u4f5c\u6b21\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Write BPS Burst\n \u5beb\u5165 BPS \u9ad8\u8f09\n \n \n The desired burst limit of write bytes.\n \u6307\u5b9a\u7684\u5beb\u5165\u7684\u4f4d\u5143\u7d44\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Write IOPS Burst\n \u5beb\u5165 IOPS \u9ad8\u8f09\n \n \n The desired burst limit of write operations.\n \u6307\u5b9a\u7684\u5beb\u5165\u64cd\u4f5c\u6b21\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Failed to \n \n \n \n \u7121\u6cd5\n \n \n \n \n \n Executing\n \u6b63\u5728\u57f7\u884c\n \n \n execute\n \u57f7\u884c\n \n \n Executed\n \u5df2\u57f7\u884c\n \n \n unknown task\n \u672a\u77e5\u4efb\u52d9\n \n \n Creating\n \u6b63\u5728\u5efa\u7acb\n \n \n create\n \u5efa\u7acb\n \n \n Updating\n \u6b63\u5728\u66f4\u65b0\n \n \n update\n \u66f4\u65b0\n \n \n Deleting\n \u6b63\u5728\u522a\u9664\n \n \n delete\n \u522a\u9664\n \n \n RBD \'\n \'\n \n RBD\u300c\n \u300d\n \n \n \n RBD snapshot \'\n \'\n \n RBD \u5feb\u7167\u300c\n \u300d\n \n \n \n mirror mode for pool \'\n \'\n \n \u6c60\u300c\n \u300d\u7684\u93e1\u50cf\u6a21\u5f0f\n \n \n \n mirror peer for pool \'\n \'\n \n \u6c60\u300c\n \u300d\u7684\u93e1\u50cf\u5c0d\u7b49\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n \n contains snapshots.\n \n \n \u5305\u542b\u5feb\u7167\u3002\n \n \n \n Cloning\n \u6b63\u5728\u514b\u9686\n \n \n clone\n \u514b\u9686\n \n \n Snapshot of \n must be protected.\n \n \u5fc5\u9808\u4fdd\u8b77 \n \u7684\u5feb\u7167\u3002\n \n \n \n Copying\n \u6b63\u5728\u8907\u88fd\n \n \n copy\n \u8907\u88fd\n \n \n Flattening\n \u6b63\u5728\u58d3\u5e73\n \n \n flatten\n \u58d3\u5e73\n \n \n Flattened\n \u5df2\u58d3\u5e73\n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \u7121\u6cd5\u4fdd\u8b77 \n \uff0c\u56e0\u70ba\u5176\u5305\u542b\u5b50\u5f71\u50cf\u3002\n \n \n \n Cannot delete \n because it\'s protected.\n \n \u7121\u6cd5\u522a\u9664 \n \uff0c\u56e0\u70ba\u5176\u8655\u65bc\u4fdd\u8b77\u72c0\u614b\u3002\n \n \n \n Rolling back\n \u6b63\u5728\u5fa9\u539f\n \n \n rollback\n \u5fa9\u539f\n \n \n Rolled back\n \u5df2\u5fa9\u539f\n \n \n Moving\n \u6b63\u5728\u79fb\u52d5\n \n \n move\n \u79fb\u52d5\n \n \n Moved\n \u5df2\u79fb\u52d5\n \n \n image \'\n \' to trash\n \n \u5f71\u50cf\u300c\n \u300d\u5230\u5783\u573e\u6876\n \n \n \n Could not find image.\n \u627e\u4e0d\u5230\u5f71\u50cf\u3002\n \n \n Restoring\n \u6b63\u5728\u9084\u539f\n \n \n restore\n \u9084\u539f\n \n \n Restored\n \u5df2\u9084\u539f\n \n \n image \'\n \' into \'\n \'\n \n \u5f71\u50cf\u300c\n \u300d(\u5230\u300c\n \u300d)\n \n \n \n Image name \'\n \' is already in use.\n \n \u5f71\u50cf\u540d\u7a31\u300c\n \u300d\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n \n image \'\n \'\n \n \u5f71\u50cf\u300c\n \u300d\n \n \n \n Purging\n \u6b63\u5728\u6e05\u9664\n \n \n purge\n \u6e05\u9664\n \n \n Purged\n \u5df2\u6e05\u9664\n \n \n all pools\n \u6240\u6709\u6c60\n \n \n images from \n \n \n \u5f71\u50cf (\u5f9e \n )\n \n \n \n Cannot disable mirroring because it contains a peer.\n \u7121\u6cd5\u505c\u7528\u93e1\u50cf\uff0c\u56e0\u70ba\u5176\u5305\u542b\u5c0d\u7b49\u3002\n \n \n pool \'\n \'\n \n \u6c60\u300c\n \u300d\n \n \n \n erasure code profile \'\n \'\n \n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\u300c\n \u300d\n \n \n \n target \'\n \'\n \n \u76ee\u6a19\u300c\n \u300d\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},Dzi0:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}()},"E+lV":function(t,e,n){!function(t){"use strict";var e={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"\u0434\u0430\u043d",dd:e.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:e.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},E2fk:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return"[INF]"===t?"info":"[WRN]"===t?"warn":"[ERR]"===t?"err":""},t}()},EBtg:function(t,e,n){"use strict";var a=n("2KeD"),r=n("n73p"),i=n("2qMH"),o=n("LJ/p"),s=n("HZF8"),u=n("90cg"),c=n("yRPT"),l=n("0alx");e.scheduled=function(t,e){if(null!=t){if(s.isInteropObservable(t))return a.scheduleObservable(t,e);if(u.isPromise(t))return r.schedulePromise(t,e);if(c.isArrayLike(t))return i.scheduleArray(t,e);if(l.isIterable(t)||"string"==typeof t)return o.scheduleIterable(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}},EEJc:function(t,e,n){"use strict";var a=n("CcnG"),r=n("ajRT");n.d(e,"b",function(){return i}),n.d(e,"c",function(){return o}),n.d(e,"a",function(){return u});var i=a["\u0275crt"]({encapsulation:0,styles:[[".modal-header[_ngcontent-%COMP%]{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:5px 5px 0 0} .modal-footer{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:0 0 5px 5px} .modal-body{max-height:70vh;overflow-y:auto;overflow-x:hidden}"]],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275eld"](3,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a},null,null)),(t()(),a["\u0275eld"](4,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\xd7"])),a["\u0275ncd"](null,1)],null,null)}function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-modal",[],null,null,null,o,i)),a["\u0275did"](1,49152,null,0,r.a,[],null,null)],null,null)}var u=a["\u0275ccf"]("cd-modal",r.a,s,{modalRef:"modalRef"},{hide:"hide"},[".modal-title",".modal-content"])},EOgW:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(t){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===t},meridiem:function(t,e,n){return t<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}()},ES0t:function(t,e,n){"use strict";n.d(e,"a",function(){return l});var a=n("CcnG"),r=n("OZfm"),i=n("Ip0R"),o=a["\u0275crt"]({encapsulation:0,styles:[".bs3.popover-top[_nghost-%COMP%] {\n margin-bottom: 10px;\n }\n .bs3.popover.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n margin-left: -2px;\n }\n .bs3.popover.top[_nghost-%COMP%] {\n margin-bottom: 10px;\n }\n .popover.bottom[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n margin-left: -4px;\n }\n .bs3.bs-popover-left[_nghost-%COMP%] {\n margin-right: .5rem;\n }\n .bs3.bs-popover-right[_nghost-%COMP%] .arrow[_ngcontent-%COMP%], .bs3.bs-popover-left[_nghost-%COMP%] .arrow[_ngcontent-%COMP%]{\n margin: .3rem 0;\n }"],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"h3",[["class","popover-title popover-header"]],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.component.title)})}function u(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","popover-arrow arrow"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,s)),a["\u0275did"](2,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](3,0,null,null,1,"div",[["class","popover-content popover-body"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],function(t,e){t(e,2,0,e.component.title)},null)}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"popover-container",[["role","tooltip"],["style","display:block;"]],[[8,"className",0],[2,"show",null],[2,"bs3",null]],null,null,u,o)),a["\u0275did"](1,49152,null,0,r.b,[r.a],null,null)],null,function(t,e){t(e,0,0,"popover in popover-"+a["\u0275nov"](e,1).placement+" bs-popover-"+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).containerClass,!a["\u0275nov"](e,1).isBs3,a["\u0275nov"](e,1).isBs3)})}var l=a["\u0275ccf"]("popover-container",r.b,c,{placement:"placement",title:"title"},{},["*"])},EgGo:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("Ip0R"),r=n("sne2"),i=function(){function t(t){this.base=t}return t.concatURLSegments=function(t){return t.reduce(a.Location.joinWithSlash)},t.buildURL=function(e){for(var n=[],a=1;a-1&&(c=l),o.parent=a[c],o.row.level=o.parent.row.level+1,o.parent.children.push(o)}var d=[];return a[0].flatten(function(){d=d.concat([this.row])},!0),d}return t};var r=function(){function t(t){void 0===t&&(t=null),t||(t={level:-1,treeStatus:"expanded"}),this.row=t,this.parent=null,this.children=[]}return t.prototype.flatten=function(t,e){if("expanded"===this.row.treeStatus)for(var n=0,a=this.children.length;n0&&this.table.fetchData.subscribe(function(){t.fetchData.emit()}),this.useData()},t.prototype.ngOnChanges=function(){this.useData()},t.prototype.useData=function(){var t=this;if(this.data){var e=this.makePairs(this.data);this.hideKeys&&(e=e.filter(function(e){return!t.hideKeys.includes(e.key)})),this.tableData=e}},t.prototype.makePairs=function(t){var e=this,n=[];if(t){if(r.isArray(t))n=this.makePairsFromArray(t);else{if(!r.isObject(t))throw new Error("Wrong data format");n=this.makePairsFromObject(t)}return n=n.map(function(t){return t.value=e.convertValue(t.value),t}).filter(function(t){return null!==t.value}),r.sortBy(this.renderObjects?this.insertFlattenObjects(n):n,"key")}},t.prototype.makePairsFromArray=function(t){var e=this,n=[],a=t[0];if(r.isArray(a)){if(2!==a.length)throw new Error("Array contains too many elements ("+a.length+"). Needs to be of type [string, any][]");n=t.map(function(t){return{key:t[0],value:t[1]}})}else r.isObject(a)&&(n=r.has(a,"key")&&r.has(a,"value")?t.slice():t.reduce(function(t,n){return t.concat(e.makePairsFromObject(n))},n));return n},t.prototype.makePairsFromObject=function(t){return Object.keys(t).map(function(e){return{key:e,value:t[e]}})},t.prototype.insertFlattenObjects=function(t){var e=this;return r.flattenDeep(t.map(function(t){var n=t.value,a=r.isObject(n);return!a||r.isEmpty(n)?(a&&(t.value=""),t):e.splitItemIntoItems(t)}))},t.prototype.splitItemIntoItems=function(t){var e=this;return this.makePairs(t.value).map(function(n){return e.appendParentKey&&(n.key=t.key+" "+n.key),n})},t.prototype.convertValue=function(t){if(r.isArray(t)){if(r.isEmpty(t)&&this.hideEmpty)return null;t=t.map(function(t){return r.isObject(t)?JSON.stringify(t):t}).join(", ")}else if(r.isObject(t)){if(this.hideEmpty&&r.isEmpty(t)||!this.renderObjects)return null}else if(r.isString(t)){if(""===t&&this.hideEmpty)return null;this.isDate(t)&&(t=this.datePipe.transform(t)||t)}return t},t.prototype.isDate=function(t){var e="\\d{2}[ -:.TZ]";return t.match(new RegExp("^\\d{4}[ -:.TZ]"+e+e+e+e+e+"\\d*Z?$"))},t}())},FWf1:function(t,e,n){var a=n("mrSG").__extends,r=n("pshJ"),i=n("GiSu"),o=n("zB/H"),s=n("p//D"),u=n("n3uD"),c=n("MkmW"),l=function(t){function e(n,a,r){var o=t.call(this)||this;switch(o.syncErrorValue=null,o.syncErrorThrown=!1,o.syncErrorThrowable=!1,o.isStopped=!1,arguments.length){case 0:o.destination=i.empty;break;case 1:if(!n){o.destination=i.empty;break}if("object"==typeof n){n instanceof e?(o.syncErrorThrowable=n.syncErrorThrowable,o.destination=n,n.add(o)):(o.syncErrorThrowable=!0,o.destination=new d(o,n));break}default:o.syncErrorThrowable=!0,o.destination=new d(o,n,a,r)}return o}return a(e,t),e.prototype[s.rxSubscriber]=function(){return this},e.create=function(t,n,a){var r=new e(t,n,a);return r.syncErrorThrowable=!1,r},e.prototype.next=function(t){this.isStopped||this._next(t)},e.prototype.error=function(t){this.isStopped||(this.isStopped=!0,this._error(t))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this))},e.prototype._next=function(t){this.destination.next(t)},e.prototype._error=function(t){this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},e.prototype._unsubscribeAndRecycle=function(){var t=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=t,this},e}(o.Subscription);e.Subscriber=l;var d=function(t){function e(e,n,a,o){var s,u=t.call(this)||this;u._parentSubscriber=e;var c=u;return r.isFunction(n)?s=n:n&&(s=n.next,a=n.error,o=n.complete,n!==i.empty&&(c=Object.create(n),r.isFunction(c.unsubscribe)&&u.add(c.unsubscribe.bind(c)),c.unsubscribe=u.unsubscribe.bind(u))),u._context=c,u._next=s,u._error=a,u._complete=o,u}return a(e,t),e.prototype.next=function(t){if(!this.isStopped&&this._next){var e=this._parentSubscriber;u.config.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?this.__tryOrSetError(e,this._next,t)&&this.unsubscribe():this.__tryOrUnsub(this._next,t)}},e.prototype.error=function(t){if(!this.isStopped){var e=this._parentSubscriber,n=u.config.useDeprecatedSynchronousErrorHandling;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):c.hostReportError(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;c.hostReportError(t)}}},e.prototype.complete=function(){var t=this;if(!this.isStopped){var e=this._parentSubscriber;if(this._complete){var n=function(){return t._complete.call(t._context)};u.config.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},e.prototype.__tryOrUnsub=function(t,e){try{t.call(this._context,e)}catch(n){if(this.unsubscribe(),u.config.useDeprecatedSynchronousErrorHandling)throw n;c.hostReportError(n)}},e.prototype.__tryOrSetError=function(t,e,n){if(!u.config.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(a){return u.config.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=a,t.syncErrorThrown=!0,!0):(c.hostReportError(a),!0)}return!1},e.prototype._unsubscribe=function(){var t=this._parentSubscriber;this._context=null,this._parentSubscriber=null,t.unsubscribe()},e}(l);e.SafeSubscriber=d},FYBg:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=(n("JZ5S"),n("QG5k")),i=n("TCh0");e.NodeMenuComponent=function(){function t(t,e){this.renderer=t,this.nodeMenuService=e,this.menuItemSelected=new a.EventEmitter,this.availableMenuItems=[{name:"New tag",action:r.NodeMenuItemAction.NewTag,cssClass:"new-tag"},{name:"New folder",action:r.NodeMenuItemAction.NewFolder,cssClass:"new-folder"},{name:"Rename",action:r.NodeMenuItemAction.Rename,cssClass:"rename"},{name:"Remove",action:r.NodeMenuItemAction.Remove,cssClass:"remove"}],this.disposersForGlobalListeners=[]}return t.prototype.ngOnInit=function(){this.availableMenuItems=this.menuItems||this.availableMenuItems,this.disposersForGlobalListeners.push(this.renderer.listen("document","keyup",this.closeMenu.bind(this))),this.disposersForGlobalListeners.push(this.renderer.listen("document","mousedown",this.closeMenu.bind(this)))},t.prototype.ngOnDestroy=function(){this.disposersForGlobalListeners.forEach(function(t){return t()})},t.prototype.onMenuItemSelected=function(t,e){i.isLeftButtonClicked(t)&&(this.menuItemSelected.emit({nodeMenuItemAction:e.action,nodeMenuItemSelected:e.name}),this.nodeMenuService.fireMenuEvent(t.target,r.NodeMenuAction.Close))},t.prototype.closeMenu=function(t){var e=t instanceof MouseEvent,n=this.menuContainer.nativeElement!==t.target&&this.menuContainer.nativeElement.contains(t.target);(e&&!n||i.isEscapePressed(t))&&this.nodeMenuService.fireMenuEvent(t.target,r.NodeMenuAction.Close)},t.decorators=[{type:a.Component,args:[{selector:"node-menu",template:'\n

\n
    \n
  • \n
    \n {{menuItem.name}}\n
  • \n
\n
\n '}]}],t.propDecorators={menuItemSelected:[{type:a.Output}],menuItems:[{type:a.Input}],menuContainer:[{type:a.ViewChild,args:["menuContainer"]}]},t}()},Fgil:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("aXbf");var a=function(){function t(t){this.formatter=t}return t.prototype.transform=function(t){return this.formatter.format_number(t,1024,["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"])},t}()},Fjl2:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DatatableGroupHeaderTemplateDirective=function(){return a([r.Directive({selector:"[ngx-datatable-group-header-template]"})],function(t){this.template=t})}()},Fxb1:function(t,e,n){"use strict";var a=n("+tJ4"),r=n("DKTb"),i=n("En8+"),o=n("xTla"),s=n("2ePl"),u=n("/WYv"),c=n("McSo");n.d(e,"a",function(){return l});var l=function(t){if(t&&"function"==typeof t[o.a])return l=t,function(t){var e=l[o.a]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)};if(Object(s.a)(t))return Object(a.a)(t);if(Object(u.a)(t))return n=t,function(t){return n.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,r.a),t};if(t&&"function"==typeof t[i.a])return e=t,function(t){for(var n=e[i.a]();;){var a=n.next();if(a.done){t.complete();break}if(t.next(a.value),t.closed)break}return"function"==typeof n.return&&t.add(function(){n.return&&n.return()}),t};var e,n,l,d=Object(c.a)(t)?"an invalid object":"'"+t+"'";throw new TypeError("You provided "+d+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")}},G0Q6:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),t.exports=function(t){function e(t,e){return i.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:r.Line,dataElementType:r.Point,update:function(t){var n,a,r,o=this,s=o.getMeta(),u=s.dataset,c=s.data||[],l=o.chart.options,d=l.elements.line,f=o.getScaleForId(s.yAxisID),p=o.getDataset(),h=e(p,l);for(h&&(r=u.custom||{},void 0!==p.tension&&void 0===p.lineTension&&(p.lineTension=p.tension),u._scale=f,u._datasetIndex=o.index,u._children=c,u._model={spanGaps:p.spanGaps?p.spanGaps:l.spanGaps,tension:r.tension?r.tension:i.valueOrDefault(p.lineTension,d.tension),backgroundColor:r.backgroundColor?r.backgroundColor:p.backgroundColor||d.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:p.borderWidth||d.borderWidth,borderColor:r.borderColor?r.borderColor:p.borderColor||d.borderColor,borderCapStyle:r.borderCapStyle?r.borderCapStyle:p.borderCapStyle||d.borderCapStyle,borderDash:r.borderDash?r.borderDash:p.borderDash||d.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:p.borderDashOffset||d.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:p.borderJoinStyle||d.borderJoinStyle,fill:r.fill?r.fill:void 0!==p.fill?p.fill:d.fill,steppedLine:r.steppedLine?r.steppedLine:i.valueOrDefault(p.steppedLine,d.stepped),cubicInterpolationMode:r.cubicInterpolationMode?r.cubicInterpolationMode:i.valueOrDefault(p.cubicInterpolationMode,d.cubicInterpolationMode)},u.pivot()),n=0,a=c.length;n=0;)e+=this.treeArray[t],t=(t&t+1)-1;return e},t.prototype.queryBetween=function(t,e){return this.query(e)-this.query(t-1)},t.prototype.calcRowIndex=function(t){if(!this.treeArray.length)return 0;for(var e=-1,n=this.treeArray.length,a=Math.pow(2,n.toString(2).length-1);0!==a;a>>=1){var r=e+a;r=this.treeArray[r]&&(t-=this.treeArray[r],e=r)}return e+1},t}()},GMZp:function(t,e,n){"use strict";e.isObject=function(t){return null!==t&&"object"==typeof t}},GgAd:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.ngOnChanges=function(){this.usedPercentage=Math.round(this.usedBytes/this.totalBytes*100),this.freePercentage=100-this.usedPercentage,this.freeBytes=this.totalBytes-this.usedBytes},t}()},Gi3i:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("FFOo"),i=n("T1DM");function o(t,e){return void 0===e&&(e=i.a),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.dueTime,this.scheduler))},t}(),u=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.dueTime=n,r.scheduler=a,r.debouncedSubscription=null,r.lastValue=null,r.hasValue=!1,r}return a.__extends(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(c,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var t=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(r.a);function c(t){t.debouncedNext()}},GiSu:function(t,e,n){"use strict";var a=n("n3uD"),r=n("MkmW");e.empty={closed:!0,next:function(t){},error:function(t){if(a.config.useDeprecatedSynchronousErrorHandling)throw t;r.hostReportError(t)},complete:function(){}}},H8ED:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===n?e?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":t+" "+(a=+t,r={ss:e?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:e?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:e?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}n("wd/R").defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:e,mm:e,h:e,hh:e,d:"\u0434\u0437\u0435\u043d\u044c",dd:e,M:"\u043c\u0435\u0441\u044f\u0446",MM:e,y:"\u0433\u043e\u0434",yy:e},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(t)},meridiem:function(t,e,n){return t<4?"\u043d\u043e\u0447\u044b":t<12?"\u0440\u0430\u043d\u0456\u0446\u044b":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!=2&&t%10!=3||t%100==12||t%100==13?t+"-\u044b":t+"-\u0456";case"D":return t+"-\u0433\u0430";default:return t}},week:{dow:1,doy:7}})}()},"HHO+":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=(n("58b6"),n("58b6")),i=n("xZld"),o=n("lJMN"),s=(n("JZ5S"),n("QG5k")),u=n("1PfE"),c=(n("Tff5"),n("TCh0")),l=n("kQXf");e.TreeInternalComponent=function(){function t(t,e,n){this.nodeMenuService=t,this.treeService=e,this.nodeElementRef=n,this.isSelected=!1,this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1,this.isReadOnly=!1,this.subscriptions=[]}return t.prototype.ngAfterViewInit=function(){this.tree.checked&&!this.tree.firstCheckedFired&&(this.tree.firstCheckedFired=!0,this.treeService.fireNodeChecked(this.tree))},t.prototype.ngOnInit=function(){var t=this,e=l.get(this.tree,"node.id","");e&&(this.controller=new o.TreeController(this),this.treeService.setController(e,this.controller)),this.settings=this.settings||new r.Ng2TreeSettings,this.isReadOnly=!l.get(this.settings,"enableCheckboxes",!0),this.tree.isRoot()&&!1===this.settings.rootIsVisible&&this.tree.disableCollapseOnInit(),this.subscriptions.push(this.nodeMenuService.hideMenuStream(this.nodeElementRef).subscribe(function(){t.isRightMenuVisible=!1,t.isLeftMenuVisible=!1})),this.subscriptions.push(this.treeService.unselectStream(this.tree).subscribe(function(){return t.isSelected=!1})),this.subscriptions.push(this.treeService.draggedStream(this.tree,this.nodeElementRef).subscribe(function(e){t.tree.hasSibling(e.captured.tree)?t.swapWithSibling(e.captured.tree,t.tree):t.tree.isBranch()?t.moveNodeToThisTreeAndRemoveFromPreviousOne(e,t.tree):t.moveNodeToParentTreeAndRemoveFromPreviousOne(e,t.tree)})),this.subscriptions.push(this.treeService.nodeChecked$.merge(this.treeService.nodeUnchecked$).filter(function(e){return t.eventContainsId(e)&&t.tree.hasChild(e.node)}).subscribe(function(e){return t.updateCheckboxState()}))},t.prototype.ngOnChanges=function(t){this.controller=new o.TreeController(this)},t.prototype.ngOnDestroy=function(){l.get(this.tree,"node.id","")&&this.treeService.deleteController(this.tree.node.id),this.subscriptions.forEach(function(t){return t&&t.unsubscribe()})},t.prototype.swapWithSibling=function(t,e){e.swapWithSibling(t),this.treeService.fireNodeMoved(t,t.parent)},t.prototype.moveNodeToThisTreeAndRemoveFromPreviousOne=function(t,e){this.treeService.fireNodeRemoved(t.captured.tree);var n=e.addChild(t.captured.tree);this.treeService.fireNodeMoved(n,t.captured.tree.parent)},t.prototype.moveNodeToParentTreeAndRemoveFromPreviousOne=function(t,e){this.treeService.fireNodeRemoved(t.captured.tree);var n=e.addSibling(t.captured.tree,e.positionInParent);this.treeService.fireNodeMoved(n,t.captured.tree.parent)},t.prototype.onNodeSelected=function(t){this.tree.selectionAllowed&&c.isLeftButtonClicked(t)&&(this.isSelected=!0,this.treeService.fireNodeSelected(this.tree))},t.prototype.onNodeUnselected=function(t){this.tree.selectionAllowed&&c.isLeftButtonClicked(t)&&(this.isSelected=!1,this.treeService.fireNodeUnselected(this.tree))},t.prototype.showRightMenu=function(t){this.tree.hasRightMenu()&&(c.isRightButtonClicked(t)&&(this.isRightMenuVisible=!this.isRightMenuVisible,this.nodeMenuService.hideMenuForAllNodesExcept(this.nodeElementRef)),t.preventDefault())},t.prototype.showLeftMenu=function(t){this.tree.hasLeftMenu()&&c.isLeftButtonClicked(t)&&(this.isLeftMenuVisible=!this.isLeftMenuVisible,this.nodeMenuService.hideMenuForAllNodesExcept(this.nodeElementRef),this.isLeftMenuVisible&&t.preventDefault())},t.prototype.onMenuItemSelected=function(t){switch(t.nodeMenuItemAction){case s.NodeMenuItemAction.NewTag:case s.NodeMenuItemAction.NewFolder:this.onNewSelected(t);break;case s.NodeMenuItemAction.Rename:this.onRenameSelected();break;case s.NodeMenuItemAction.Remove:this.onRemoveSelected();break;case s.NodeMenuItemAction.Custom:this.onCustomSelected(),this.treeService.fireMenuItemSelected(this.tree,t.nodeMenuItemSelected);break;default:throw new Error("Chosen menu item doesn't exist")}},t.prototype.onNewSelected=function(t){this.tree.createNode(t.nodeMenuItemAction===s.NodeMenuItemAction.NewFolder),this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1},t.prototype.onRenameSelected=function(){this.tree.markAsBeingRenamed(),this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1},t.prototype.onRemoveSelected=function(){this.treeService.deleteController(l.get(this.tree,"node.id","")),this.treeService.fireNodeRemoved(this.tree)},t.prototype.onCustomSelected=function(){this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1},t.prototype.onSwitchFoldingType=function(){this.tree.switchFoldingType(),this.treeService.fireNodeSwitchFoldingType(this.tree)},t.prototype.applyNewValue=function(t){if((t.action===u.NodeEditableEventAction.Cancel||this.tree.isNew())&&i.Tree.isValueEmpty(t.value))return this.treeService.fireNodeRemoved(this.tree);if(this.tree.isNew()&&(this.tree.value=t.value,this.treeService.fireNodeCreated(this.tree)),this.tree.isBeingRenamed()){var e=this.tree.value;this.tree.value=t.value,this.treeService.fireNodeRenamed(e,this.tree)}this.tree.markAsModified()},t.prototype.shouldShowInputForTreeValue=function(){return this.tree.isNew()||this.tree.isBeingRenamed()},t.prototype.isRootHidden=function(){return this.tree.isRoot()&&!this.settings.rootIsVisible},t.prototype.hasCustomMenu=function(){return this.tree.hasCustomMenu()},t.prototype.switchNodeCheckStatus=function(){this.tree.checked?this.onNodeUnchecked():this.onNodeChecked()},t.prototype.onNodeChecked=function(){this.checkboxElementRef&&(this.checkboxElementRef.nativeElement.indeterminate=!1,this.treeService.fireNodeChecked(this.tree),this.executeOnChildController(function(t){return t.check()}),this.tree.checked=!0)},t.prototype.onNodeUnchecked=function(){this.checkboxElementRef&&(this.checkboxElementRef.nativeElement.indeterminate=!1,this.treeService.fireNodeUnchecked(this.tree),this.executeOnChildController(function(t){return t.uncheck()}),this.tree.checked=!1)},t.prototype.executeOnChildController=function(t){var e=this;this.tree.hasLoadedChildern()&&this.tree.children.forEach(function(n){var a=e.treeService.getController(n.id);l.isNil(a)||t(a)})},t.prototype.updateCheckboxState=function(){var t=this;setTimeout(function(){var e=t.tree.checkedChildrenAmount();0===e?(t.checkboxElementRef.nativeElement.indeterminate=!1,t.tree.checked=!1,t.treeService.fireNodeUnchecked(t.tree)):e===t.tree.loadedChildrenAmount()?(t.checkboxElementRef.nativeElement.indeterminate=!1,t.tree.checked=!0,t.treeService.fireNodeChecked(t.tree)):(t.tree.checked=!1,t.checkboxElementRef.nativeElement.indeterminate=!0,t.treeService.fireNodeIndetermined(t.tree))})},t.prototype.eventContainsId=function(t){return!!t.node.id||(console.warn('"Node with checkbox" feature requires a unique id assigned to every node, please consider to add it.'),!1)},t.decorators=[{type:a.Component,args:[{selector:"tree-internal",template:'\n
    \n
  • \n
    \n\n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n
    \n\n \n\n
    \n
    \n \n \n
    \n\n \n \n\n \n \n\n
    \n \n
    \n \n \n \n
  • \n
\n '}]}],t.propDecorators={tree:[{type:a.Input}],settings:[{type:a.Input}],template:[{type:a.Input}],checkboxElementRef:[{type:a.ViewChild,args:["checkbox"]}]},t}()},HJBe:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t){return void 0===t&&(t=null),function(e){return e.lift(new o(t))}}var o=function(){function t(t){this.defaultValue=t}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.defaultValue))},t}(),s=function(t){function e(e,n){var a=t.call(this,e)||this;return a.defaultValue=n,a.isEmpty=!0,a}return a.__extends(e,t),e.prototype._next=function(t){this.isEmpty=!1,this.destination.next(t)},e.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},e}(r.a)},HP3h:function(t,e,n){!function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},a={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},r=function(t){return function(e,r,i,o){var s=n(e),u=a[t][n(e)];return 2===s&&(u=u[r?0:1]),u.replace(/%d/i,e)}},i=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];t.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(n("wd/R"))},HV4d:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.id=function(){return("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)}},HZF8:function(t,e,n){"use strict";var a=n("zfKp");e.isInteropObservable=function(t){return t&&"function"==typeof t[a.observable]}},Hg4g:function(t,e){t.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},I2ZF:function(t,e){for(var n=[],a=0;a<256;++a)n[a]=(a+256).toString(16).substr(1);t.exports=function(t,e){var a=e||0;return[n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]]].join("")}},IBtZ:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(t){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(t)?t.replace(/\u10d8$/,"\u10e8\u10d8"):t+"\u10e8\u10d8"},past:function(t){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(t)?t.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(t)?t.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(t){return 0===t?t:1===t?t+"-\u10da\u10d8":t<20||t<=100&&t%20==0||t%100==0?"\u10db\u10d4-"+t:t+"-\u10d4"},week:{dow:1,doy:7}})}()},ILDN:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.double="double"}(e.ClickType||(e.ClickType={}))},IPm6:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("5tze"),s=(n("qwkt"),n("SfHT"));e.DataTableBodyComponent=function(){function t(t){var e=this;this.cd=t,this.selected=[],this.scroll=new i.EventEmitter,this.page=new i.EventEmitter,this.activate=new i.EventEmitter,this.select=new i.EventEmitter,this.detailToggle=new i.EventEmitter,this.rowContextmenu=new i.EventEmitter(!1),this.treeAction=new i.EventEmitter,this.rowHeightsCache=new o.RowHeightCache,this.temp=[],this.offsetY=0,this.indexes={},this.rowIndexes=new Map,this.rowExpansions=new Map,this.getDetailRowHeight=function(t,n){if(!e.rowDetail)return 0;var a=e.rowDetail.rowHeight;return"function"==typeof a?a(t,n):a},this.rowTrackingFn=(function(t,e){var n=this.getRowIndex(e);return this.trackByProp?n+"-"+this.trackByProp:n}).bind(this)}return Object.defineProperty(t.prototype,"pageSize",{get:function(){return this._pageSize},set:function(t){this._pageSize=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,this.rowExpansions.clear(),this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=o.columnsByPin(t);this.columnGroupWidths=o.columnGroupWidths(e,t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowCount},set:function(t){this._rowCount=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyHeight",{get:function(){return this._bodyHeight},set:function(t){this._bodyHeight=this.scrollbarV?t+"px":"auto",this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectEnabled",{get:function(){return!!this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollHeight",{get:function(){if(this.scrollbarV&&this.virtualization&&this.rowCount)return this.rowHeightsCache.query(this.rowCount-1)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.rowDetail&&(this.listener=this.rowDetail.toggle.subscribe(function(e){var n=e.type,a=e.value;"row"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()})),this.groupHeader&&(this.listener=this.groupHeader.toggle.subscribe(function(e){var n=e.type,a=e.value;"group"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()}))},t.prototype.ngOnDestroy=function(){this.rowDetail&&this.listener.unsubscribe(),this.groupHeader&&this.listener.unsubscribe()},t.prototype.updateOffsetY=function(t){this.scroller&&(this.scrollbarV&&this.virtualization&&t?t=this.rowHeightsCache.query(this.pageSize*t-1):this.scrollbarV&&!this.virtualization&&(t=0),this.scroller.setOffset(t||0))},t.prototype.onBodyScroll=function(t){var e=t.scrollYPos,n=t.scrollXPos;this.offsetY===e&&this.offsetX===n||this.scroll.emit({offsetY:e,offsetX:n}),this.offsetY=e,this.offsetX=n,this.updateIndexes(),this.updatePage(t.direction),this.updateRows()},t.prototype.updatePage=function(t){var e=this.indexes.first/this.pageSize;"up"===t?e=Math.ceil(e):"down"===t&&(e=Math.floor(e)),void 0===t||isNaN(e)||this.page.emit({offset:e})},t.prototype.updateRows=function(){var t=this.indexes,e=t.last,n=t.first,a=0,r=[];if(this.rowIndexes.clear(),this.groupedRows)for(;n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',changeDetection:i.ChangeDetectionStrategy.OnPush,host:{class:"datatable-body"}})],t)}()},IUTb:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("6blF"),r=n("+tJ4"),i=n("JF+6");function o(t,e){return e?Object(i.a)(t,e):new a.a(Object(r.a)(t))}},IZUe:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){function t(t){this.elementRef=t}return t.prototype.ngAfterViewInit=function(){var t=this.elementRef.nativeElement;a.isFunction(t.focus)&&t.focus()},t}()},Ip0R:function(t,e,n){"use strict";n.r(e),n.d(e,"\u0275angular_packages_common_common_e",function(){return Xt}),n.d(e,"\u0275angular_packages_common_common_d",function(){return B}),n.d(e,"\u0275angular_packages_common_common_a",function(){return Nt}),n.d(e,"\u0275angular_packages_common_common_b",function(){return Dt}),n.d(e,"\u0275angular_packages_common_common_g",function(){return _e}),n.d(e,"\u0275angular_packages_common_common_f",function(){return Ve}),n.d(e,"\u0275registerLocaleData",function(){return m}),n.d(e,"registerLocaleData",function(){return m}),n.d(e,"formatDate",function(){return et}),n.d(e,"formatCurrency",function(){return St}),n.d(e,"formatNumber",function(){return It}),n.d(e,"formatPercent",function(){return Ot}),n.d(e,"NgLocaleLocalization",function(){return Et}),n.d(e,"NgLocalization",function(){return Rt}),n.d(e,"Plural",function(){return v}),n.d(e,"NumberFormatStyle",function(){return y}),n.d(e,"FormStyle",function(){return x}),n.d(e,"TranslationWidth",function(){return _}),n.d(e,"FormatWidth",function(){return T}),n.d(e,"NumberSymbol",function(){return w}),n.d(e,"WeekDay",function(){return S}),n.d(e,"getNumberOfCurrencyDigits",function(){return K}),n.d(e,"getCurrencySymbol",function(){return U}),n.d(e,"getLocaleDayPeriods",function(){return I}),n.d(e,"getLocaleDayNames",function(){return C}),n.d(e,"getLocaleMonthNames",function(){return k}),n.d(e,"getLocaleId",function(){return O}),n.d(e,"getLocaleEraNames",function(){return N}),n.d(e,"getLocaleWeekEndRange",function(){return A}),n.d(e,"getLocaleFirstDayOfWeek",function(){return R}),n.d(e,"getLocaleDateFormat",function(){return E}),n.d(e,"getLocaleDateTimeFormat",function(){return L}),n.d(e,"getLocaleExtraDayPeriodRules",function(){return G}),n.d(e,"getLocaleExtraDayPeriods",function(){return Y}),n.d(e,"getLocalePluralCase",function(){return F}),n.d(e,"getLocaleTimeFormat",function(){return D}),n.d(e,"getLocaleNumberSymbol",function(){return P}),n.d(e,"getLocaleNumberFormat",function(){return M}),n.d(e,"getLocaleCurrencyName",function(){return j}),n.d(e,"getLocaleCurrencySymbol",function(){return q}),n.d(e,"\u0275parseCookieValue",function(){return Lt}),n.d(e,"CommonModule",function(){return He}),n.d(e,"DeprecatedI18NPipesModule",function(){return Be}),n.d(e,"NgClass",function(){return Pt}),n.d(e,"NgForOf",function(){return jt}),n.d(e,"NgForOfContext",function(){return qt}),n.d(e,"NgIf",function(){return zt}),n.d(e,"NgIfContext",function(){return Gt}),n.d(e,"NgPlural",function(){return Wt}),n.d(e,"NgPluralCase",function(){return Kt}),n.d(e,"NgStyle",function(){return $t}),n.d(e,"NgSwitch",function(){return Ht}),n.d(e,"NgSwitchCase",function(){return Bt}),n.d(e,"NgSwitchDefault",function(){return Ut}),n.d(e,"NgTemplateOutlet",function(){return Zt}),n.d(e,"NgComponentOutlet",function(){return Mt}),n.d(e,"DOCUMENT",function(){return Ue}),n.d(e,"AsyncPipe",function(){return Oe}),n.d(e,"DatePipe",function(){return Re}),n.d(e,"I18nPluralPipe",function(){return Ee}),n.d(e,"I18nSelectPipe",function(){return De}),n.d(e,"JsonPipe",function(){return Le}),n.d(e,"LowerCasePipe",function(){return Ie}),n.d(e,"CurrencyPipe",function(){return Fe}),n.d(e,"DecimalPipe",function(){return qe}),n.d(e,"PercentPipe",function(){return je}),n.d(e,"SlicePipe",function(){return Ye}),n.d(e,"UpperCasePipe",function(){return Ne}),n.d(e,"TitleCasePipe",function(){return ke}),n.d(e,"KeyValuePipe",function(){return Pe}),n.d(e,"DeprecatedDatePipe",function(){return ge}),n.d(e,"DeprecatedCurrencyPipe",function(){return xe}),n.d(e,"DeprecatedDecimalPipe",function(){return ye}),n.d(e,"DeprecatedPercentPipe",function(){return ve}),n.d(e,"\u0275PLATFORM_BROWSER_ID",function(){return We}),n.d(e,"\u0275PLATFORM_SERVER_ID",function(){return Ke}),n.d(e,"\u0275PLATFORM_WORKER_APP_ID",function(){return $e}),n.d(e,"\u0275PLATFORM_WORKER_UI_ID",function(){return Ze}),n.d(e,"isPlatformBrowser",function(){return Xe}),n.d(e,"isPlatformServer",function(){return Je}),n.d(e,"isPlatformWorkerApp",function(){return Qe}),n.d(e,"isPlatformWorkerUi",function(){return tn}),n.d(e,"VERSION",function(){return en}),n.d(e,"ViewportScroller",function(){return nn}),n.d(e,"\u0275NullViewportScroller",function(){return rn}),n.d(e,"PlatformLocation",function(){return i}),n.d(e,"LOCATION_INITIALIZED",function(){return o}),n.d(e,"LocationStrategy",function(){return s}),n.d(e,"APP_BASE_HREF",function(){return u}),n.d(e,"HashLocationStrategy",function(){return d}),n.d(e,"PathLocationStrategy",function(){return f}),n.d(e,"Location",function(){return c});var a=n("CcnG"),r=n("mrSG"),i=function(){return function(){}}(),o=new a.InjectionToken("Location Initialized"),s=function(){return function(){}}(),u=new a.InjectionToken("appBaseHref"),c=function(){function t(t){var n=this;this._subject=new a.EventEmitter,this._platformStrategy=t;var r=this._platformStrategy.getBaseHref();this._baseHref=e.stripTrailingSlash(l(r)),this._platformStrategy.onPopState(function(t){n._subject.emit({url:n.path(!0),pop:!0,state:t.state,type:t.type})})}var e;return e=t,t.prototype.path=function(t){return void 0===t&&(t=!1),this.normalize(this._platformStrategy.path(t))},t.prototype.isCurrentPathEqualTo=function(t,n){return void 0===n&&(n=""),this.path()==this.normalize(t+e.normalizeQueryParams(n))},t.prototype.normalize=function(t){return e.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,l(t)))},t.prototype.prepareExternalUrl=function(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)},t.prototype.go=function(t,e,n){void 0===e&&(e=""),void 0===n&&(n=null),this._platformStrategy.pushState(n,"",t,e)},t.prototype.replaceState=function(t,e,n){void 0===e&&(e=""),void 0===n&&(n=null),this._platformStrategy.replaceState(n,"",t,e)},t.prototype.forward=function(){this._platformStrategy.forward()},t.prototype.back=function(){this._platformStrategy.back()},t.prototype.subscribe=function(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})},t.normalizeQueryParams=function(t){return t&&"?"!==t[0]?"?"+t:t},t.joinWithSlash=function(t,e){if(0==t.length)return e;if(0==e.length)return t;var n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e},t.stripTrailingSlash=function(t){var e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)},t}();function l(t){return t.replace(/\/index.html$/,"")}var d=function(t){function e(e,n){var a=t.call(this)||this;return a._platformLocation=e,a._baseHref="",null!=n&&(a._baseHref=n),a}return Object(r.__extends)(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e},e.prototype.prepareExternalUrl=function(t){var e=c.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e},e.prototype.pushState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(t,e,r)},e.prototype.replaceState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,r)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(s),f=function(t){function e(e,n){var a=t.call(this)||this;if(a._platformLocation=e,null==n&&(n=a._platformLocation.getBaseHrefFromDOM()),null==n)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");return a._baseHref=n,a}return Object(r.__extends)(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.prepareExternalUrl=function(t){return c.joinWithSlash(this._baseHref,t)},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.pathname+c.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?""+e+n:e},e.prototype.pushState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));this._platformLocation.pushState(t,e,r)},e.prototype.replaceState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));this._platformLocation.replaceState(t,e,r)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(s),p=void 0,h=["en",[["a","p"],["AM","PM"],p],[["AM","PM"],p,p],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],p,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],p,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",p,"{1} 'at' {0}",p],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"$","US Dollar",{},function(t){var e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}],g={};function m(t,e,n){"string"!=typeof e&&(n=e,e=t[0]),e=e.toLowerCase().replace(/_/g,"-"),g[e]=t,n&&(g[e][19]=n)}var b={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,0],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"\u09f3"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"\u0440.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN\xa5","\xa5"],COP:[void 0,"$",0],CRC:[void 0,"\u20a1",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"K\u010d",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E\xa3"],ESP:[void 0,"\u20a7",0],EUR:["\u20ac"],FJD:[void 0,"$"],FKP:[void 0,"\xa3"],GBP:["\xa3"],GEL:[void 0,"\u20be"],GIP:[void 0,"\xa3"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",0],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",0],ILS:["\u20aa"],INR:["\u20b9"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["\xa5",void 0,0],KHR:[void 0,"\u17db"],KMF:[void 0,"CF",0],KPW:[void 0,"\u20a9",0],KRW:["\u20a9",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"\u20b8"],LAK:[void 0,"\u20ad",0],LBP:[void 0,"L\xa3",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"\u20ae",0],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",0],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"\u20a6"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"\u20b1"],PKR:[void 0,"Rs",0],PLN:[void 0,"z\u0142"],PYG:[void 0,"\u20b2",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"\u20bd"],RUR:[void 0,"\u0440."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"\xa3"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"\xa3"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"\xa3",0],THB:[void 0,"\u0e3f"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"\u20ba"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,0],UAH:[void 0,"\u20b4"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UZS:[void 0,void 0,0],VEF:[void 0,"Bs"],VND:["\u20ab",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]},y=function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t}({}),v=function(t){return t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other",t}({}),x=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}({}),_=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}({}),T=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}({}),w=function(t){return t[t.Decimal=0]="Decimal",t[t.Group=1]="Group",t[t.List=2]="List",t[t.PercentSign=3]="PercentSign",t[t.PlusSign=4]="PlusSign",t[t.MinusSign=5]="MinusSign",t[t.Exponential=6]="Exponential",t[t.SuperscriptingExponent=7]="SuperscriptingExponent",t[t.PerMille=8]="PerMille",t[t[1/0]=9]="Infinity",t[t.NaN=10]="NaN",t[t.TimeSeparator=11]="TimeSeparator",t[t.CurrencyDecimal=12]="CurrencyDecimal",t[t.CurrencyGroup=13]="CurrencyGroup",t}({}),S=function(t){return t[t.Sunday=0]="Sunday",t[t.Monday=1]="Monday",t[t.Tuesday=2]="Tuesday",t[t.Wednesday=3]="Wednesday",t[t.Thursday=4]="Thursday",t[t.Friday=5]="Friday",t[t.Saturday=6]="Saturday",t}({});function O(t){return B(t)[0]}function I(t,e,n){var a=B(t),r=V([a[1],a[2]],e);return V(r,n)}function C(t,e,n){var a=B(t),r=V([a[3],a[4]],e);return V(r,n)}function k(t,e,n){var a=B(t),r=V([a[5],a[6]],e);return V(r,n)}function N(t,e){return V(B(t)[7],e)}function R(t){return B(t)[8]}function A(t){return B(t)[9]}function E(t,e){return V(B(t)[10],e)}function D(t,e){return V(B(t)[11],e)}function L(t,e){return V(B(t)[12],e)}function P(t,e){var n=B(t),a=n[13][e];if(void 0===a){if(e===w.CurrencyDecimal)return n[13][w.Decimal];if(e===w.CurrencyGroup)return n[13][w.Group]}return a}function M(t,e){return B(t)[14][e]}function q(t){return B(t)[15]||null}function j(t){return B(t)[16]||null}function F(t){return B(t)[18]}function z(t){if(!t[19])throw new Error('Missing extra locale data for the locale "'+t[0]+'". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.')}function G(t){var e=B(t);return z(e),(e[19][2]||[]).map(function(t){return"string"==typeof t?H(t):[H(t[0]),H(t[1])]})}function Y(t,e,n){var a=B(t);z(a);var r=V([a[19][0],a[19][1]],e)||[];return V(r,n)||[]}function V(t,e){for(var n=e;n>-1;n--)if(void 0!==t[n])return t[n];throw new Error("Locale data API: locale data undefined")}function H(t){var e=Object(r.__read)(t.split(":"),2);return{hours:+e[0],minutes:+e[1]}}function B(t){var e=t.toLowerCase().replace(/_/g,"-"),n=g[e];if(n)return n;var a=e.split("-")[0];if(n=g[a])return n;if("en"===a)return h;throw new Error('Missing locale data for the locale "'+t+'".')}function U(t,e,n){void 0===n&&(n="en");var a=function(t){return B(t)[17]}(n)[t]||b[t]||[],r=a[1];return"narrow"===e&&"string"==typeof r?r:a[0]||t}var W=2;function K(t){var e,n=b[t];return n&&(e=n[2]),"number"==typeof e?e:W}var $=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Z={},X=/((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/,J=function(t){return t[t.Short=0]="Short",t[t.ShortGMT=1]="ShortGMT",t[t.Long=2]="Long",t[t.Extended=3]="Extended",t}({}),Q=function(t){return t[t.FullYear=0]="FullYear",t[t.Month=1]="Month",t[t.Date=2]="Date",t[t.Hours=3]="Hours",t[t.Minutes=4]="Minutes",t[t.Seconds=5]="Seconds",t[t.FractionalSeconds=6]="FractionalSeconds",t[t.Day=7]="Day",t}({}),tt=function(t){return t[t.DayPeriods=0]="DayPeriods",t[t.Days=1]="Days",t[t.Months=2]="Months",t[t.Eras=3]="Eras",t}({});function et(t,e,n,a){var i=function(t){if(pt(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){t=t.trim();var e,n=parseFloat(t);if(!isNaN(t-n))return new Date(n);if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var a=Object(r.__read)(t.split("-").map(function(t){return+t}),3);return new Date(a[0],a[1]-1,a[2])}if(e=t.match($))return ft(e)}var i=new Date(t);if(!pt(i))throw new Error('Unable to convert "'+t+'" into a date');return i}(t);e=function t(e,n){var a=O(e);if(Z[a]=Z[a]||{},Z[a][n])return Z[a][n];var r="";switch(n){case"shortDate":r=E(e,T.Short);break;case"mediumDate":r=E(e,T.Medium);break;case"longDate":r=E(e,T.Long);break;case"fullDate":r=E(e,T.Full);break;case"shortTime":r=D(e,T.Short);break;case"mediumTime":r=D(e,T.Medium);break;case"longTime":r=D(e,T.Long);break;case"fullTime":r=D(e,T.Full);break;case"short":var i=t(e,"shortTime"),o=t(e,"shortDate");r=nt(L(e,T.Short),[i,o]);break;case"medium":var s=t(e,"mediumTime"),u=t(e,"mediumDate");r=nt(L(e,T.Medium),[s,u]);break;case"long":var c=t(e,"longTime"),l=t(e,"longDate");r=nt(L(e,T.Long),[c,l]);break;case"full":var d=t(e,"fullTime"),f=t(e,"fullDate");r=nt(L(e,T.Full),[d,f])}return r&&(Z[a][n]=r),r}(n,e)||e;for(var o,s=[];e;){if(!(o=X.exec(e))){s.push(e);break}var u=(s=s.concat(o.slice(1))).pop();if(!u)break;e=u}var c=i.getTimezoneOffset();a&&(c=dt(a,c),i=function(t,e,n){var a=t.getTimezoneOffset();return function(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t}(t,-1*(dt(e,a)-a))}(i,a));var l="";return s.forEach(function(t){var e=function(t){if(lt[t])return lt[t];var e;switch(t){case"G":case"GG":case"GGG":e=it(tt.Eras,_.Abbreviated);break;case"GGGG":e=it(tt.Eras,_.Wide);break;case"GGGGG":e=it(tt.Eras,_.Narrow);break;case"y":e=rt(Q.FullYear,1,0,!1,!0);break;case"yy":e=rt(Q.FullYear,2,0,!0,!0);break;case"yyy":e=rt(Q.FullYear,3,0,!1,!0);break;case"yyyy":e=rt(Q.FullYear,4,0,!1,!0);break;case"M":case"L":e=rt(Q.Month,1,1);break;case"MM":case"LL":e=rt(Q.Month,2,1);break;case"MMM":e=it(tt.Months,_.Abbreviated);break;case"MMMM":e=it(tt.Months,_.Wide);break;case"MMMMM":e=it(tt.Months,_.Narrow);break;case"LLL":e=it(tt.Months,_.Abbreviated,x.Standalone);break;case"LLLL":e=it(tt.Months,_.Wide,x.Standalone);break;case"LLLLL":e=it(tt.Months,_.Narrow,x.Standalone);break;case"w":e=ct(1);break;case"ww":e=ct(2);break;case"W":e=ct(1,!0);break;case"d":e=rt(Q.Date,1);break;case"dd":e=rt(Q.Date,2);break;case"E":case"EE":case"EEE":e=it(tt.Days,_.Abbreviated);break;case"EEEE":e=it(tt.Days,_.Wide);break;case"EEEEE":e=it(tt.Days,_.Narrow);break;case"EEEEEE":e=it(tt.Days,_.Short);break;case"a":case"aa":case"aaa":e=it(tt.DayPeriods,_.Abbreviated);break;case"aaaa":e=it(tt.DayPeriods,_.Wide);break;case"aaaaa":e=it(tt.DayPeriods,_.Narrow);break;case"b":case"bb":case"bbb":e=it(tt.DayPeriods,_.Abbreviated,x.Standalone,!0);break;case"bbbb":e=it(tt.DayPeriods,_.Wide,x.Standalone,!0);break;case"bbbbb":e=it(tt.DayPeriods,_.Narrow,x.Standalone,!0);break;case"B":case"BB":case"BBB":e=it(tt.DayPeriods,_.Abbreviated,x.Format,!0);break;case"BBBB":e=it(tt.DayPeriods,_.Wide,x.Format,!0);break;case"BBBBB":e=it(tt.DayPeriods,_.Narrow,x.Format,!0);break;case"h":e=rt(Q.Hours,1,-12);break;case"hh":e=rt(Q.Hours,2,-12);break;case"H":e=rt(Q.Hours,1);break;case"HH":e=rt(Q.Hours,2);break;case"m":e=rt(Q.Minutes,1);break;case"mm":e=rt(Q.Minutes,2);break;case"s":e=rt(Q.Seconds,1);break;case"ss":e=rt(Q.Seconds,2);break;case"S":e=rt(Q.FractionalSeconds,1);break;case"SS":e=rt(Q.FractionalSeconds,2);break;case"SSS":e=rt(Q.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=ot(J.Short);break;case"ZZZZZ":e=ot(J.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=ot(J.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=ot(J.Long);break;default:return null}return lt[t]=e,e}(t);l+=e?e(i,n,c):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function nt(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,function(t,n){return null!=e&&n in e?e[n]:t})),t}function at(t,e,n,a,r){void 0===n&&(n="-");var i="";(t<0||r&&t<=0)&&(r?t=1-t:(t=-t,i=n));for(var o=String(t);o.length0||u>-n)&&(u+=n),t===Q.Hours)0===u&&-12===n&&(u=12);else if(t===Q.FractionalSeconds)return s=e,at(u,3).substr(0,s);var c=P(o,w.MinusSign);return at(u,e,c,a,r)}}function it(t,e,n,a){return void 0===n&&(n=x.Format),void 0===a&&(a=!1),function(r,i){return function(t,e,n,a,r,i){switch(n){case tt.Months:return k(e,r,a)[t.getMonth()];case tt.Days:return C(e,r,a)[t.getDay()];case tt.DayPeriods:var o=t.getHours(),s=t.getMinutes();if(i){var u,c=G(e),l=Y(e,r,a);if(c.forEach(function(t,e){if(Array.isArray(t)){var n=t[0],a=t[1],r=a.hours;o>=n.hours&&s>=n.minutes&&(o0?Math.floor(r/60):Math.ceil(r/60);switch(t){case J.Short:return(r>=0?"+":"")+at(o,2,i)+at(Math.abs(r%60),2,i);case J.ShortGMT:return"GMT"+(r>=0?"+":"")+at(o,1,i);case J.Long:return"GMT"+(r>=0?"+":"")+at(o,2,i)+":"+at(Math.abs(r%60),2,i);case J.Extended:return 0===a?"Z":(r>=0?"+":"")+at(o,2,i)+":"+at(Math.abs(r%60),2,i);default:throw new Error('Unknown zone width "'+t+'"')}}}var st=0,ut=4;function ct(t,e){return void 0===e&&(e=!1),function(n,a){var r,i,o,s;if(e){var u=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,c=n.getDate();r=1+Math.floor((c+u)/7)}else{var l=(o=n.getFullYear(),s=new Date(o,st,1).getDay(),new Date(o,0,1+(s<=ut?ut:ut+7)-s)),d=(i=n,new Date(i.getFullYear(),i.getMonth(),i.getDate()+(ut-i.getDay()))).getTime()-l.getTime();r=1+Math.round(d/6048e5)}return at(r,t,P(a,w.MinusSign))}}var lt={};function dt(t,e){t=t.replace(/:/g,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function ft(t){var e=new Date(0),n=0,a=0,r=t[8]?e.setUTCFullYear:e.setFullYear,i=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),a=Number(t[9]+t[11])),r.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));var o=Number(t[4]||0)-n,s=Number(t[5]||0)-a,u=Number(t[6]||0),c=Math.round(1e3*parseFloat("0."+(t[7]||0)));return i.call(e,o,s,u,c),e}function pt(t){return t instanceof Date&&!isNaN(t.valueOf())}var ht=/^(\d+)?\.((\d+)(-(\d+))?)?$/,gt=22,mt=".",bt="0",yt=";",vt=",",xt="#",_t="\xa4",Tt="%";function wt(t,e,n,a,r,i,o){void 0===o&&(o=!1);var s="",u=!1;if(isFinite(t)){var c=function(e){var n,a,r,i,o,s=Math.abs(t)+"",u=0;for((a=s.indexOf(mt))>-1&&(s=s.replace(mt,"")),(r=s.search(/e/i))>0?(a<0&&(a=r),a+=+s.slice(r+1),s=s.substring(0,r)):a<0&&(a=s.length),r=0;s.charAt(r)===bt;r++);if(r===(o=s.length))n=[0],a=1;else{for(o--;s.charAt(o)===bt;)o--;for(a-=r,n=[],i=0;r<=o;r++,i++)n[i]=Number(s.charAt(r))}return a>gt&&(n=n.splice(0,gt-1),u=a-1,a=1),{digits:n,exponent:u,integerLen:a}}();o&&(c=function(t){if(0===t.digits[0])return t;var e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(c));var l=e.minInt,d=e.minFrac,f=e.maxFrac;if(i){var p=i.match(ht);if(null===p)throw new Error(i+" is not a valid digit info");var h=p[1],g=p[3],m=p[5];null!=h&&(l=kt(h)),null!=g&&(d=kt(g)),null!=m?f=kt(m):null!=g&&d>f&&(f=d)}!function(t,e,n){if(e>n)throw new Error("The minimum number of digits after fraction ("+e+") is higher than the maximum ("+n+").");var a=t.digits,r=a.length-t.integerLen,i=Math.min(Math.max(e,r),n),o=i+t.integerLen,s=a[o];if(o>0){a.splice(Math.max(t.integerLen,o));for(var u=o;u=5)if(o-1<0){for(var l=0;l>o;l--)a.unshift(0),t.integerLen++;a.unshift(1),t.integerLen++}else a[o-1]++;for(;r=f?a.pop():d=!1),e>=10?1:0},0);p&&(a.unshift(p),t.integerLen++)}(c,d,f);var b=c.digits,y=c.integerLen,v=c.exponent,x=[];for(u=b.every(function(t){return!t});y0?x=b.splice(y,b.length):(x=b,b=[0]);var _=[];for(b.length>=e.lgSize&&_.unshift(b.splice(-e.lgSize,b.length).join(""));b.length>e.gSize;)_.unshift(b.splice(-e.gSize,b.length).join(""));b.length&&_.unshift(b.join("")),s=_.join(P(n,a)),x.length&&(s+=P(n,r)+x.join("")),v&&(s+=P(n,w.Exponential)+"+"+v)}else s=P(n,w.Infinity);return t<0&&!u?e.negPre+s+e.negSuf:e.posPre+s+e.posSuf}function St(t,e,n,a,r){var i=Ct(M(e,y.Currency),P(e,w.MinusSign));return i.minFrac=K(a),i.maxFrac=i.minFrac,wt(t,i,e,w.CurrencyGroup,w.CurrencyDecimal,r).replace(_t,n).replace(_t,"")}function Ot(t,e,n){return wt(t,Ct(M(e,y.Percent),P(e,w.MinusSign)),e,w.Group,w.Decimal,n,!0).replace(new RegExp(Tt,"g"),P(e,w.PercentSign))}function It(t,e,n){return wt(t,Ct(M(e,y.Decimal),P(e,w.MinusSign)),e,w.Group,w.Decimal,n)}function Ct(t,e){void 0===e&&(e="-");var n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},a=t.split(yt),r=a[0],i=a[1],o=-1!==r.indexOf(mt)?r.split(mt):[r.substring(0,r.lastIndexOf(bt)+1),r.substring(r.lastIndexOf(bt)+1)],s=o[0],u=o[1]||"";n.posPre=s.substr(0,s.indexOf(xt));for(var c=0;c-1)return r;if(r=n.getPluralCategory(t,a),e.indexOf(r)>-1)return r;if(e.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+t+'"')}var Et=function(t){function e(e,n){var a=t.call(this)||this;return a.locale=e,a.deprecatedPluralFn=n,a}return Object(r.__extends)(e,t),e.prototype.getPluralCategory=function(t,e){switch(this.deprecatedPluralFn?this.deprecatedPluralFn(e||this.locale,t):F(e||this.locale)(t)){case v.Zero:return"zero";case v.One:return"one";case v.Two:return"two";case v.Few:return"few";case v.Many:return"many";default:return"other"}},e}(Rt);function Dt(t,e){"string"==typeof e&&(e=parseInt(e,10));var n=e,a=n.toString().replace(/^[^.]*\.?/,""),r=Math.floor(Math.abs(n)),i=a.length,o=parseInt(a,10),s=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(t.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?v.One:v.Other;case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?v.One:v.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===r||1===n?v.One:v.Other;case"ar":return 0===n?v.Zero:1===n?v.One:2===n?v.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?v.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?v.Many:v.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===r&&0===i?v.One:v.Other;case"be":return n%10==1&&n%100!=11?v.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?v.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?v.Many:v.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?v.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?v.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?v.Few:0!==n&&n%1e6==0?v.Many:v.Other;case"bs":case"hr":case"sr":return 0===i&&r%10==1&&r%100!=11||o%10==1&&o%100!=11?v.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)||o%10===Math.floor(o%10)&&o%10>=2&&o%10<=4&&!(o%100>=12&&o%100<=14)?v.Few:v.Other;case"cs":case"sk":return 1===r&&0===i?v.One:r===Math.floor(r)&&r>=2&&r<=4&&0===i?v.Few:0!==i?v.Many:v.Other;case"cy":return 0===n?v.Zero:1===n?v.One:2===n?v.Two:3===n?v.Few:6===n?v.Many:v.Other;case"da":return 1===n||0!==s&&(0===r||1===r)?v.One:v.Other;case"dsb":case"hsb":return 0===i&&r%100==1||o%100==1?v.One:0===i&&r%100==2||o%100==2?v.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||o%100===Math.floor(o%100)&&o%100>=3&&o%100<=4?v.Few:v.Other;case"ff":case"fr":case"hy":case"kab":return 0===r||1===r?v.One:v.Other;case"fil":return 0===i&&(1===r||2===r||3===r)||0===i&&r%10!=4&&r%10!=6&&r%10!=9||0!==i&&o%10!=4&&o%10!=6&&o%10!=9?v.One:v.Other;case"ga":return 1===n?v.One:2===n?v.Two:n===Math.floor(n)&&n>=3&&n<=6?v.Few:n===Math.floor(n)&&n>=7&&n<=10?v.Many:v.Other;case"gd":return 1===n||11===n?v.One:2===n||12===n?v.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?v.Few:v.Other;case"gv":return 0===i&&r%10==1?v.One:0===i&&r%10==2?v.Two:0!==i||r%100!=0&&r%100!=20&&r%100!=40&&r%100!=60&&r%100!=80?0!==i?v.Many:v.Other:v.Few;case"he":return 1===r&&0===i?v.One:2===r&&0===i?v.Two:0!==i||n>=0&&n<=10||n%10!=0?v.Other:v.Many;case"is":return 0===s&&r%10==1&&r%100!=11||0!==s?v.One:v.Other;case"ksh":return 0===n?v.Zero:1===n?v.One:v.Other;case"kw":case"naq":case"se":case"smn":return 1===n?v.One:2===n?v.Two:v.Other;case"lag":return 0===n?v.Zero:0!==r&&1!==r||0===n?v.Other:v.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?v.Few:0!==o?v.Many:v.Other:v.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===i&&o%100===Math.floor(o%100)&&o%100>=11&&o%100<=19?v.Zero:n%10==1&&n%100!=11||2===i&&o%10==1&&o%100!=11||2!==i&&o%10==1?v.One:v.Other;case"mk":return 0===i&&r%10==1||o%10==1?v.One:v.Other;case"mt":return 1===n?v.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?v.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?v.Many:v.Other;case"pl":return 1===r&&0===i?v.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?v.Few:0===i&&1!==r&&r%10===Math.floor(r%10)&&r%10>=0&&r%10<=1||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=12&&r%100<=14?v.Many:v.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?v.One:v.Other;case"ro":return 1===r&&0===i?v.One:0!==i||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?v.Few:v.Other;case"ru":case"uk":return 0===i&&r%10==1&&r%100!=11?v.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?v.Few:0===i&&r%10==0||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=11&&r%100<=14?v.Many:v.Other;case"shi":return 0===r||1===n?v.One:n===Math.floor(n)&&n>=2&&n<=10?v.Few:v.Other;case"si":return 0===n||1===n||0===r&&1===o?v.One:v.Other;case"sl":return 0===i&&r%100==1?v.One:0===i&&r%100==2?v.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||0!==i?v.Few:v.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?v.One:v.Other;default:return v.Other}}function Lt(t,e){var n,a;e=encodeURIComponent(e);try{for(var i=Object(r.__values)(t.split(";")),o=i.next();!o.done;o=i.next()){var s=o.value,u=s.indexOf("="),c=Object(r.__read)(-1==u?[s,""]:[s.slice(0,u),s.slice(u+1)],2),l=c[1];if(c[0].trim()===e)return decodeURIComponent(l)}}catch(d){n={error:d}}finally{try{o&&!o.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}return null}var Pt=function(){function t(t,e,n,a){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=a,this._initialClasses=[]}return Object.defineProperty(t.prototype,"klass",{set:function(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClass",{set:function(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(Object(a["\u0275isListLikeIterable"])(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._iterableDiffer){var t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){var e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}},t.prototype._applyKeyValueChanges=function(t){var e=this;t.forEachAddedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachChangedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachRemovedItem(function(t){t.previousValue&&e._toggleClass(t.key,!1)})},t.prototype._applyIterableChanges=function(t){var e=this;t.forEachAddedItem(function(t){if("string"!=typeof t.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+Object(a["\u0275stringify"])(t.item));e._toggleClass(t.item,!0)}),t.forEachRemovedItem(function(t){return e._toggleClass(t.item,!1)})},t.prototype._applyClasses=function(t){var e=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return e._toggleClass(t,!0)}):Object.keys(t).forEach(function(n){return e._toggleClass(n,!!t[n])}))},t.prototype._removeClasses=function(t){var e=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return e._toggleClass(t,!1)}):Object.keys(t).forEach(function(t){return e._toggleClass(t,!1)}))},t.prototype._toggleClass=function(t,e){var n=this;(t=t.trim())&&t.split(/\s+/g).forEach(function(t){e?n._renderer.addClass(n._ngEl.nativeElement,t):n._renderer.removeClass(n._ngEl.nativeElement,t)})},t}(),Mt=function(){function t(t){this._viewContainerRef=t,this._componentRef=null,this._moduleRef=null}return t.prototype.ngOnChanges=function(t){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){var e=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(t.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){var n=e.get(a.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(n.injector)}else this._moduleRef=null;var r=(this._moduleRef?this._moduleRef.componentFactoryResolver:e.get(a.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(r,this._viewContainerRef.length,e,this.ngComponentOutletContent)}},t.prototype.ngOnDestroy=function(){this._moduleRef&&this._moduleRef.destroy()},t}(),qt=function(){function t(t,e,n,a){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=a}return Object.defineProperty(t.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"even",{get:function(){return this.index%2==0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),t}(),jt=function(){function t(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOfDirty=!0,this._differ=null}return Object.defineProperty(t.prototype,"ngForOf",{set:function(t){this._ngForOf=t,this._ngForOfDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(t){Object(a.isDevMode)()&&null!=t&&"function"!=typeof t&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(t)+". See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTemplate",{set:function(t){t&&(this._template=t)},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._ngForOfDirty){this._ngForOfDirty=!1;var t=this._ngForOf;if(!this._differ&&t)try{this._differ=this._differs.find(t).create(this.ngForTrackBy)}catch(a){throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+((e=t).name||typeof e)+"'. NgFor only supports binding to Iterables such as Arrays.")}}var e;if(this._differ){var n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}},t.prototype._applyChanges=function(t){var e=this,n=[];t.forEachOperation(function(t,a,r){if(null==t.previousIndex){var i=e._viewContainer.createEmbeddedView(e._template,new qt(null,e._ngForOf,-1,-1),r),o=new Ft(t,i);n.push(o)}else null==r?e._viewContainer.remove(a):(i=e._viewContainer.get(a),e._viewContainer.move(i,r),o=new Ft(t,i),n.push(o))});for(var a=0;a1?"short":"narrow":"long",n}function de(t){return t.reduce(function(t,e){return Object(r.__assign)({},t,e)},{})}function fe(t){return function(e,n){return oe(e,n,t)}}var pe=new Map,he=function(){function t(){}return t.format=function(t,e,n){return function(t,e,n){var a=ee[t];if(a)return a(e,n);var r=t,i=pe.get(r);if(!i){i=[];var o=void 0;te.exec(t);for(var s=t;s;)(o=te.exec(s))?s=(i=i.concat(o.slice(1))).pop():(i.push(s),s=null);pe.set(r,i)}return i.reduce(function(t,a){var r=ne[a];return t+(r?r(e,n):function(t){return"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}(a))},"")}(n,t,e)},t}(),ge=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n){if(void 0===n&&(n="mediumDate"),null==t||""===t||t!=t)return null;var a;if("string"==typeof t&&(t=t.trim()),me(t))a=t;else if(isNaN(t-parseFloat(t)))if("string"==typeof t&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var i=Object(r.__read)(t.split("-").map(function(t){return parseInt(t,10)}),3);a=new Date(i[0],i[1]-1,i[2])}else a=new Date(t);else a=new Date(parseFloat(t));if(!me(a)){var o=void 0;if("string"!=typeof t||!(o=t.match($)))throw Jt(e,t);a=ft(o)}return he.format(a,this._locale,e._ALIASES[n]||n)},t._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},t}();function me(t){return t instanceof Date&&!isNaN(t.valueOf())}function be(t,e,n,a,r,i,o){if(void 0===i&&(i=null),void 0===o&&(o=!1),null==n)return null;if("number"!=typeof(n="string"!=typeof n||isNaN(+n-parseFloat(n))?n:+n))throw Jt(t,n);var s,u,c;if(a!==y.Currency&&(s=1,u=0,c=3),r){var l=r.match(ht);if(null===l)throw new Error(r+" is not a valid digit info for number pipes");null!=l[1]&&(s=kt(l[1])),null!=l[3]&&(u=kt(l[3])),null!=l[5]&&(c=kt(l[5]))}return Qt.format(n,e,a,{minimumIntegerDigits:s,minimumFractionDigits:u,maximumFractionDigits:c,currency:i,currencyAsSymbol:o})}var ye=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n){return be(e,this._locale,t,y.Decimal,n)},t}(),ve=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n){return be(e,this._locale,t,y.Percent,n)},t}(),xe=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n,a,r){return void 0===n&&(n="USD"),void 0===a&&(a=!1),be(e,this._locale,t,y.Currency,r,n,a)},t}(),_e=[ye,ve,xe,ge],Te=function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.subscribe({next:e,error:function(t){throw t}})},t.prototype.dispose=function(t){t.unsubscribe()},t.prototype.onDestroy=function(t){t.unsubscribe()},t}(),we=new(function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.then(e,function(t){throw t})},t.prototype.dispose=function(t){},t.prototype.onDestroy=function(t){},t}()),Se=new Te,Oe=function(){function t(t){this._ref=t,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}var e;return e=t,t.prototype.ngOnDestroy=function(){this._subscription&&this._dispose()},t.prototype.transform=function(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,a.WrappedValue.wrap(this._latestValue)):(t&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue)},t.prototype._subscribe=function(t){var e=this;this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,function(n){return e._updateLatestValue(t,n)})},t.prototype._selectStrategy=function(t){if(Object(a["\u0275isPromise"])(t))return we;if(Object(a["\u0275isObservable"])(t))return Se;throw Jt(e,t)},t.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},t.prototype._updateLatestValue=function(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())},t}(),Ie=function(){function t(){}var e;return e=t,t.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw Jt(e,t);return t.toLowerCase()},t}(),Ce=/(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])\S*/g,ke=function(){function t(){}var e;return e=t,t.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw Jt(e,t);return t.replace(Ce,function(t){return t[0].toUpperCase()+t.substr(1).toLowerCase()})},t}(),Ne=function(){function t(){}var e;return e=t,t.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw Jt(e,t);return t.toUpperCase()},t}(),Re=function(){function t(t){this.locale=t}var e;return e=t,t.prototype.transform=function(t,n,a,r){if(void 0===n&&(n="mediumDate"),null==t||""===t||t!=t)return null;try{return et(t,n,r||this.locale,a)}catch(i){throw Jt(e,i.message)}},t}(),Ae=/#/g,Ee=function(){function t(t){this._localization=t}var e;return e=t,t.prototype.transform=function(t,n,a){if(null==t)return"";if("object"!=typeof n||null===n)throw Jt(e,n);return n[At(t,Object.keys(n),this._localization,a)].replace(Ae,t.toString())},t}(),De=function(){function t(){}var e;return e=t,t.prototype.transform=function(t,n){if(null==t)return"";if("object"!=typeof n||"string"!=typeof t)throw Jt(e,n);return n.hasOwnProperty(t)?n[t]:n.hasOwnProperty("other")?n.other:""},t}(),Le=function(){function t(){}return t.prototype.transform=function(t){return JSON.stringify(t,null,2)},t}(),Pe=function(){function t(t){this.differs=t,this.keyValues=[]}return t.prototype.transform=function(t,e){var n=this;if(void 0===e&&(e=Me),!t||!(t instanceof Map)&&"object"!=typeof t)return null;this.differ||(this.differ=this.differs.find(t).create());var a=this.differ.diff(t);return a&&(this.keyValues=[],a.forEachItem(function(t){n.keyValues.push({key:t.key,value:t.currentValue})}),this.keyValues.sort(e)),this.keyValues},t}();function Me(t,e){var n=t.key,a=e.key;if(n===a)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(null===n)return 1;if(null===a)return-1;if("string"==typeof n&&"string"==typeof a)return nn.length-1&&(a=n.length-1);for(var r=a,i=0,o=0;i0&&(i++,"\n"!==n[--a]||++o!==e););for(i=0,o=0;i]"+t.after+'")':""},t.prototype.toString=function(){var t=this.span.details?", "+this.span.details:"";return""+this.msg+this.contextualMessage()+": "+this.span.start+t},t}(),I=function(t){function e(e,n){return t.call(this,e,n)||this}return Object(a.__extends)(e,t),e}(O);function C(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}var k=new(function(){return function(t,e){this.start=t,this.end=e}}())("{{","}}"),N=0,R=9,A=10,E=11,D=12,L=13,P=32,M=34,q=36,j=39,F=43,z=45,G=47,Y=59,V=61,H=62,B=48,U=57,W=65,K=70,$=90,Z=95,X=97,J=102,Q=110,tt=114,et=116,nt=118,at=122,rt=123,it=160;function ot(t){return t>=R&&t<=P||t===it}function st(t){return B<=t&&t<=U}function ut(t){return t>=X&&t<=at||t>=W&&t<=$}var ct=function(){var t={RAW_TEXT:0,ESCAPABLE_RAW_TEXT:1,PARSABLE_DATA:2};return t[t.RAW_TEXT]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA]="PARSABLE_DATA",t}();function lt(t){if(":"!==t[0])return[null,t];var e=t.indexOf(":",1);if(-1===e)throw new Error('Unsupported format "'+t+'" expecting ":namespace:name"');return[t.slice(1,e),t.slice(e+1)]}function dt(t){return null===t?null:lt(t)[0]}function ft(t,e){return t?":"+t+":"+e:e}var pt={Aacute:"\xc1",aacute:"\xe1",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",AElig:"\xc6",aelig:"\xe6",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",Alpha:"\u0391",alpha:"\u03b1",amp:"&",and:"\u2227",ang:"\u2220",apos:"'",Aring:"\xc5",aring:"\xe5",asymp:"\u2248",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",bdquo:"\u201e",Beta:"\u0392",beta:"\u03b2",brvbar:"\xa6",bull:"\u2022",cap:"\u2229",Ccedil:"\xc7",ccedil:"\xe7",cedil:"\xb8",cent:"\xa2",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",clubs:"\u2663",cong:"\u2245",copy:"\xa9",crarr:"\u21b5",cup:"\u222a",curren:"\xa4",dagger:"\u2020",Dagger:"\u2021",darr:"\u2193",dArr:"\u21d3",deg:"\xb0",Delta:"\u0394",delta:"\u03b4",diams:"\u2666",divide:"\xf7",Eacute:"\xc9",eacute:"\xe9",Ecirc:"\xca",ecirc:"\xea",Egrave:"\xc8",egrave:"\xe8",empty:"\u2205",emsp:"\u2003",ensp:"\u2002",Epsilon:"\u0395",epsilon:"\u03b5",equiv:"\u2261",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",exist:"\u2203",fnof:"\u0192",forall:"\u2200",frac12:"\xbd",frac14:"\xbc",frac34:"\xbe",frasl:"\u2044",Gamma:"\u0393",gamma:"\u03b3",ge:"\u2265",gt:">",harr:"\u2194",hArr:"\u21d4",hearts:"\u2665",hellip:"\u2026",Iacute:"\xcd",iacute:"\xed",Icirc:"\xce",icirc:"\xee",iexcl:"\xa1",Igrave:"\xcc",igrave:"\xec",image:"\u2111",infin:"\u221e",int:"\u222b",Iota:"\u0399",iota:"\u03b9",iquest:"\xbf",isin:"\u2208",Iuml:"\xcf",iuml:"\xef",Kappa:"\u039a",kappa:"\u03ba",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",laquo:"\xab",larr:"\u2190",lArr:"\u21d0",lceil:"\u2308",ldquo:"\u201c",le:"\u2264",lfloor:"\u230a",lowast:"\u2217",loz:"\u25ca",lrm:"\u200e",lsaquo:"\u2039",lsquo:"\u2018",lt:"<",macr:"\xaf",mdash:"\u2014",micro:"\xb5",middot:"\xb7",minus:"\u2212",Mu:"\u039c",mu:"\u03bc",nabla:"\u2207",nbsp:"\xa0",ndash:"\u2013",ne:"\u2260",ni:"\u220b",not:"\xac",notin:"\u2209",nsub:"\u2284",Ntilde:"\xd1",ntilde:"\xf1",Nu:"\u039d",nu:"\u03bd",Oacute:"\xd3",oacute:"\xf3",Ocirc:"\xd4",ocirc:"\xf4",OElig:"\u0152",oelig:"\u0153",Ograve:"\xd2",ograve:"\xf2",oline:"\u203e",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",oplus:"\u2295",or:"\u2228",ordf:"\xaa",ordm:"\xba",Oslash:"\xd8",oslash:"\xf8",Otilde:"\xd5",otilde:"\xf5",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",para:"\xb6",permil:"\u2030",perp:"\u22a5",Phi:"\u03a6",phi:"\u03c6",Pi:"\u03a0",pi:"\u03c0",piv:"\u03d6",plusmn:"\xb1",pound:"\xa3",prime:"\u2032",Prime:"\u2033",prod:"\u220f",prop:"\u221d",Psi:"\u03a8",psi:"\u03c8",quot:'"',radic:"\u221a",rang:"\u27e9",raquo:"\xbb",rarr:"\u2192",rArr:"\u21d2",rceil:"\u2309",rdquo:"\u201d",real:"\u211c",reg:"\xae",rfloor:"\u230b",Rho:"\u03a1",rho:"\u03c1",rlm:"\u200f",rsaquo:"\u203a",rsquo:"\u2019",sbquo:"\u201a",Scaron:"\u0160",scaron:"\u0161",sdot:"\u22c5",sect:"\xa7",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sim:"\u223c",spades:"\u2660",sub:"\u2282",sube:"\u2286",sum:"\u2211",sup:"\u2283",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",supe:"\u2287",szlig:"\xdf",Tau:"\u03a4",tau:"\u03c4",there4:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thinsp:"\u2009",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",times:"\xd7",trade:"\u2122",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",uArr:"\u21d1",Ucirc:"\xdb",ucirc:"\xfb",Ugrave:"\xd9",ugrave:"\xf9",uml:"\xa8",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",Uuml:"\xdc",uuml:"\xfc",weierp:"\u2118",Xi:"\u039e",xi:"\u03be",Yacute:"\xdd",yacute:"\xfd",yen:"\xa5",yuml:"\xff",Yuml:"\u0178",Zeta:"\u0396",zeta:"\u03b6",zwj:"\u200d",zwnj:"\u200c",ngsp:"\ue500"},ht=function(){var t={TAG_OPEN_START:0,TAG_OPEN_END:1,TAG_OPEN_END_VOID:2,TAG_CLOSE:3,TEXT:4,ESCAPABLE_RAW_TEXT:5,RAW_TEXT:6,COMMENT_START:7,COMMENT_END:8,CDATA_START:9,CDATA_END:10,ATTR_NAME:11,ATTR_VALUE:12,DOC_TYPE:13,EXPANSION_FORM_START:14,EXPANSION_CASE_VALUE:15,EXPANSION_CASE_EXP_START:16,EXPANSION_CASE_EXP_END:17,EXPANSION_FORM_END:18,EOF:19};return t[t.TAG_OPEN_START]="TAG_OPEN_START",t[t.TAG_OPEN_END]="TAG_OPEN_END",t[t.TAG_OPEN_END_VOID]="TAG_OPEN_END_VOID",t[t.TAG_CLOSE]="TAG_CLOSE",t[t.TEXT]="TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.RAW_TEXT]="RAW_TEXT",t[t.COMMENT_START]="COMMENT_START",t[t.COMMENT_END]="COMMENT_END",t[t.CDATA_START]="CDATA_START",t[t.CDATA_END]="CDATA_END",t[t.ATTR_NAME]="ATTR_NAME",t[t.ATTR_VALUE]="ATTR_VALUE",t[t.DOC_TYPE]="DOC_TYPE",t[t.EXPANSION_FORM_START]="EXPANSION_FORM_START",t[t.EXPANSION_CASE_VALUE]="EXPANSION_CASE_VALUE",t[t.EXPANSION_CASE_EXP_START]="EXPANSION_CASE_EXP_START",t[t.EXPANSION_CASE_EXP_END]="EXPANSION_CASE_EXP_END",t[t.EXPANSION_FORM_END]="EXPANSION_FORM_END",t[t.EOF]="EOF",t}(),gt=function(){return function(t,e,n){this.type=t,this.parts=e,this.sourceSpan=n}}(),mt=function(t){function e(e,n,a){var r=t.call(this,a,e)||this;return r.tokenType=n,r}return Object(a.__extends)(e,t),e}(O),bt=function(){return function(t,e){this.tokens=t,this.errors=e}}(),yt=/\r\n?/g;function vt(t){return'Unexpected character "'+(t===N?"EOF":String.fromCharCode(t))+'"'}function xt(t){return'Unknown entity "'+t+'" - use the "&#;" or "&#x;" syntax'}var _t=function(){return function(t){this.error=t}}(),Tt=function(){function t(t,e,n,a){void 0===a&&(a=k),this._file=t,this._getTagDefinition=e,this._tokenizeIcu=n,this._interpolationConfig=a,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=t.content,this._length=t.content.length,this._advance()}return t.prototype._processCarriageReturns=function(t){return t.replace(yt,"\n")},t.prototype.tokenize=function(){for(;this._peek!==N;){var t=this._getLocation();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(t):this._attemptCharCode(z)?this._consumeComment(t):this._consumeDocType(t):this._attemptCharCode(G)?this._consumeTagClose(t):this._consumeTagOpen(t):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(e){if(!(e instanceof _t))throw e;this.errors.push(e.error)}}return this._beginToken(ht.EOF),this._endToken([]),new bt(function(t){for(var e=[],n=void 0,a=0;a=this._length)throw this._createError(vt(N),this._getSpan());this._peek===A?(this._line++,this._column=0):this._peek!==A&&this._peek!==L&&this._column++,this._index++,this._peek=this._index>=this._length?N:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?N:this._input.charCodeAt(this._index+1)},t.prototype._attemptCharCode=function(t){return this._peek===t&&(this._advance(),!0)},t.prototype._attemptCharCodeCaseInsensitive=function(t){return e=t,kt(this._peek)===kt(e)&&(this._advance(),!0);var e},t.prototype._requireCharCode=function(t){var e=this._getLocation();if(!this._attemptCharCode(t))throw this._createError(vt(this._peek),this._getSpan(e,e))},t.prototype._attemptStr=function(t){var e=t.length;if(this._index+e>this._length)return!1;for(var n=this._savePosition(),a=0;aa.offset&&i.push(this._input.substring(a.offset,this._index));this._peek!==e;)i.push(this._readChar(t));return this._endToken([this._processCarriageReturns(i.join(""))],a)},t.prototype._consumeComment=function(t){var e=this;this._beginToken(ht.COMMENT_START,t),this._requireCharCode(z),this._endToken([]);var n=this._consumeRawText(!1,z,function(){return e._attemptStr("->")});this._beginToken(ht.COMMENT_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeCdata=function(t){var e=this;this._beginToken(ht.CDATA_START,t),this._requireStr("CDATA["),this._endToken([]);var n=this._consumeRawText(!1,93,function(){return e._attemptStr("]>")});this._beginToken(ht.CDATA_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeDocType=function(t){this._beginToken(ht.DOC_TYPE,t),this._attemptUntilChar(H),this._advance(),this._endToken([this._input.substring(t.offset+2,this._index-1)])},t.prototype._consumePrefixAndName=function(){for(var t,e,n=this._index,a=null;58!==this._peek&&!(((t=this._peek)U));)this._advance();return 58===this._peek?(this._advance(),a=this._input.substring(n,this._index-1),e=this._index):e=n,this._requireCharCodeUntilFn(St,this._index===e?1:0),[a,this._input.substring(e,this._index)]},t.prototype._consumeTagOpen=function(t){var e,n,a=this._savePosition();try{if(!ut(this._peek))throw this._createError(vt(this._peek),this._getSpan());var r=this._index;for(this._consumeTagOpenStart(t),n=(e=this._input.substring(r,this._index)).toLowerCase(),this._attemptCharCodeUntilFn(wt);this._peek!==G&&this._peek!==H;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(wt),this._attemptCharCode(V)&&(this._attemptCharCodeUntilFn(wt),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(wt);this._consumeTagOpenEnd()}catch(o){if(o instanceof _t)return this._restorePosition(a),this._beginToken(ht.TEXT,t),void this._endToken(["<"]);throw o}var i=this._getTagDefinition(e).contentType;i===ct.RAW_TEXT?this._consumeRawTextWithTagClose(n,!1):i===ct.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,!0)},t.prototype._consumeRawTextWithTagClose=function(t,e){var n=this,a=this._consumeRawText(e,60,function(){return!!n._attemptCharCode(G)&&(n._attemptCharCodeUntilFn(wt),!!n._attemptStrCaseInsensitive(t)&&(n._attemptCharCodeUntilFn(wt),n._attemptCharCode(H)))});this._beginToken(ht.TAG_CLOSE,a.sourceSpan.end),this._endToken([null,t])},t.prototype._consumeTagOpenStart=function(t){this._beginToken(ht.TAG_OPEN_START,t);var e=this._consumePrefixAndName();this._endToken(e)},t.prototype._consumeAttributeName=function(){this._beginToken(ht.ATTR_NAME);var t=this._consumePrefixAndName();this._endToken(t)},t.prototype._consumeAttributeValue=function(){var t;if(this._beginToken(ht.ATTR_VALUE),this._peek===j||this._peek===M){var e=this._peek;this._advance();for(var n=[];this._peek!==e;)n.push(this._readChar(!0));t=n.join(""),this._advance()}else{var a=this._index;this._requireCharCodeUntilFn(St,1),t=this._input.substring(a,this._index)}this._endToken([this._processCarriageReturns(t)])},t.prototype._consumeTagOpenEnd=function(){var t=this._attemptCharCode(G)?ht.TAG_OPEN_END_VOID:ht.TAG_OPEN_END;this._beginToken(t),this._requireCharCode(H),this._endToken([])},t.prototype._consumeTagClose=function(t){this._beginToken(ht.TAG_CLOSE,t),this._attemptCharCodeUntilFn(wt);var e=this._consumePrefixAndName();this._attemptCharCodeUntilFn(wt),this._requireCharCode(H),this._endToken(e)},t.prototype._consumeExpansionFormStart=function(){this._beginToken(ht.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(rt),this._endToken([]),this._expansionCaseStack.push(ht.EXPANSION_FORM_START),this._beginToken(ht.RAW_TEXT,this._getLocation());var t=this._readUntil(44);this._endToken([t],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(wt),this._beginToken(ht.RAW_TEXT,this._getLocation());var e=this._readUntil(44);this._endToken([e],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(wt)},t.prototype._consumeExpansionCaseStart=function(){this._beginToken(ht.EXPANSION_CASE_VALUE,this._getLocation());var t=this._readUntil(rt).trim();this._endToken([t],this._getLocation()),this._attemptCharCodeUntilFn(wt),this._beginToken(ht.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(rt),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(wt),this._expansionCaseStack.push(ht.EXPANSION_CASE_EXP_START)},t.prototype._consumeExpansionCaseEnd=function(){this._beginToken(ht.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(125),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(wt),this._expansionCaseStack.pop()},t.prototype._consumeExpansionFormEnd=function(){this._beginToken(ht.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()},t.prototype._consumeText=function(){var t=this._getLocation();this._beginToken(ht.TEXT,t);var e=[];do{this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(e.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(e.push(this._interpolationConfig.end),this._inInterpolation=!1):e.push(this._readChar(!0))}while(!this._isTextEnd());this._endToken([this._processCarriageReturns(e.join(""))])},t.prototype._isTextEnd=function(){if(60===this._peek||this._peek===N)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(Ct(this._input,this._index,this._interpolationConfig))return!0;if(125===this._peek&&this._isInExpansionCase())return!0}return!1},t.prototype._savePosition=function(){return[this._peek,this._index,this._column,this._line,this.tokens.length]},t.prototype._readUntil=function(t){var e=this._index;return this._attemptUntilChar(t),this._input.substring(e,this._index)},t.prototype._restorePosition=function(t){this._peek=t[0],this._index=t[1],this._column=t[2],this._line=t[3];var e=t[4];e0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ht.EXPANSION_CASE_EXP_START},t.prototype._isInExpansionForm=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ht.EXPANSION_FORM_START},t}();function wt(t){return!ot(t)||t===N}function St(t){return ot(t)||t===H||t===G||t===j||t===M||t===V}function Ot(t){return t===Y||t===N||!function(t){return t>=X&&t<=J||t>=W&&t<=K||st(t)}(t)}function It(t){return t===Y||t===N||!ut(t)}function Ct(t,e,n){var a=!!n&&t.indexOf(n.start,e)===e;return t.charCodeAt(e)===rt&&!a}function kt(t){return t>=X&&t<=at?t-X+W:t}var Nt=function(t){function e(e,n,a){var r=t.call(this,n,a)||this;return r.elementName=e,r}return Object(a.__extends)(e,t),e.create=function(t,n,a){return new e(t,n,a)},e}(O),Rt=function(){return function(t,e){this.rootNodes=t,this.errors=e}}(),At=function(){function t(t){this.getTagDefinition=t}return t.prototype.parse=function(t,e,n,a){void 0===n&&(n=!1),void 0===a&&(a=k);var r=function(t,e,n,a,r){return void 0===a&&(a=!1),void 0===r&&(r=k),new Tt(new T(t,e),n,a,r).tokenize()}(t,e,this.getTagDefinition,n,a),i=new Et(r.tokens,this.getTagDefinition).build();return new Rt(i.rootNodes,r.errors.concat(i.errors))},t}(),Et=function(){function t(t,e){this.tokens=t,this.getTagDefinition=e,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}return t.prototype.build=function(){for(;this._peek.type!==ht.EOF;)this._peek.type===ht.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===ht.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===ht.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===ht.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===ht.TEXT||this._peek.type===ht.RAW_TEXT||this._peek.type===ht.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===ht.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new Rt(this._rootNodes,this._errors)},t.prototype._advance=function(){var t=this._peek;return this._index0)return this._errors=this._errors.concat(i.errors),null;var o=new w(e.sourceSpan.start,r.sourceSpan.end),s=new w(n.sourceSpan.start,r.sourceSpan.end);return new u(e.parts[0],i.rootNodes,o,e.sourceSpan,s)},t.prototype._collectExpansionExpTokens=function(t){for(var e=[],n=[ht.EXPANSION_CASE_EXP_START];;){if(this._peek.type!==ht.EXPANSION_FORM_START&&this._peek.type!==ht.EXPANSION_CASE_EXP_START||n.push(this._peek.type),this._peek.type===ht.EXPANSION_CASE_EXP_END){if(!Dt(n,ht.EXPANSION_CASE_EXP_START))return this._errors.push(Nt.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(n.pop(),0===n.length)return e}if(this._peek.type===ht.EXPANSION_FORM_END){if(!Dt(n,ht.EXPANSION_FORM_START))return this._errors.push(Nt.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;n.pop()}if(this._peek.type===ht.EOF)return this._errors.push(Nt.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;e.push(this._advance())}},t.prototype._consumeText=function(t){var e=t.parts[0];if(e.length>0&&"\n"===e[0]){var n=this._getParentElement();null!==n&&0===n.children.length&&this.getTagDefinition(n.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new o(e,t.sourceSpan))},t.prototype._closeVoidElement=function(){var t=this._getParentElement();t&&this.getTagDefinition(t.name).isVoid&&this._elementStack.pop()},t.prototype._consumeStartTag=function(t){for(var e=t.parts[0],n=t.parts[1],a=[];this._peek.type===ht.ATTR_NAME;)a.push(this._consumeAttr(this._advance()));var r=this._getElementFullName(e,n,this._getParentElement()),i=!1;if(this._peek.type===ht.TAG_OPEN_END_VOID){this._advance(),i=!0;var o=this.getTagDefinition(r);o.canSelfClose||null!==dt(r)||o.isVoid||this._errors.push(Nt.create(r,t.sourceSpan,'Only void and foreign elements can be self closed "'+t.parts[1]+'"'))}else this._peek.type===ht.TAG_OPEN_END&&(this._advance(),i=!1);var s=new w(t.sourceSpan.start,this._peek.sourceSpan.start),u=new l(r,a,[],s,s,void 0);this._pushElement(u),i&&(this._popElement(r),u.endSourceSpan=s)},t.prototype._pushElement=function(t){var e=this._getParentElement();e&&this.getTagDefinition(e.name).isClosedByChild(t.name)&&this._elementStack.pop();var n=this.getTagDefinition(t.name),a=this._getParentElementSkippingContainers(),r=a.parent,i=a.container;if(r&&n.requireExtraParent(r.name)){var o=new l(n.parentToAdd,[],[],t.sourceSpan,t.startSourceSpan,t.endSourceSpan);this._insertBeforeContainer(r,i,o)}this._addToParent(t),this._elementStack.push(t)},t.prototype._consumeEndTag=function(t){var e=this._getElementFullName(t.parts[0],t.parts[1],this._getParentElement());this._getParentElement()&&(this._getParentElement().endSourceSpan=t.sourceSpan),this.getTagDefinition(e).isVoid?this._errors.push(Nt.create(e,t.sourceSpan,'Void elements do not have end tags "'+t.parts[1]+'"')):this._popElement(e)||this._errors.push(Nt.create(e,t.sourceSpan,'Unexpected closing tag "'+e+'". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags'))},t.prototype._popElement=function(t){for(var e=this._elementStack.length-1;e>=0;e--){var n=this._elementStack[e];if(n.name===t)return this._elementStack.splice(e,this._elementStack.length-e),!0;if(!this.getTagDefinition(n.name).closedByParent)return!1}return!1},t.prototype._consumeAttr=function(t){var e=ft(t.parts[0],t.parts[1]),n=t.sourceSpan.end,a="",r=void 0;if(this._peek.type===ht.ATTR_VALUE){var i=this._advance();a=i.parts[0],n=i.sourceSpan.end,r=i.sourceSpan}return new c(e,a,new w(t.sourceSpan.start,n),r)},t.prototype._getParentElement=function(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null},t.prototype._getParentElementSkippingContainers=function(){for(var t=null,e=this._elementStack.length-1;e>=0;e--){if("ng-container"!==lt(this._elementStack[e].name)[1])return{parent:this._elementStack[e],container:t};t=this._elementStack[e]}return{parent:null,container:t}},t.prototype._addToParent=function(t){var e=this._getParentElement();null!==e?e.children.push(t):this._rootNodes.push(t)},t.prototype._insertBeforeContainer=function(t,e,n){if(e){if(t){var a=t.children.indexOf(e);t.children[a]=n}else this._rootNodes.push(n);n.children.push(e),this._elementStack.splice(this._elementStack.indexOf(e),0,n)}else this._addToParent(n),this._elementStack.push(n)},t.prototype._getElementFullName=function(t,e,n){return null===t&&null===(t=this.getTagDefinition(e).implicitNamespacePrefix)&&null!==n&&(t=dt(n.name)),ft(t,e)},t}();function Dt(t,e){return t.length>0&&t[t.length-1]===e}var Lt=new(function(){function t(){this.closedByParent=!1,this.contentType=ct.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}return t.prototype.requireExtraParent=function(t){return!1},t.prototype.isClosedByChild=function(t){return!1},t}());function Pt(t){return Lt}var Mt=function(){function t(t){var e=void 0===t?{}:t,n=e.closedByChildren,a=e.requiredParents,r=e.implicitNamespacePrefix,i=e.contentType,o=void 0===i?ct.PARSABLE_DATA:i,s=e.closedByParent,u=void 0!==s&&s,c=e.isVoid,l=void 0!==c&&c,d=e.ignoreFirstLf,f=void 0!==d&&d,p=this;this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,n&&n.length>0&&n.forEach(function(t){return p.closedByChildren[t]=!0}),this.isVoid=l,this.closedByParent=u||l,a&&a.length>0&&(this.requiredParents={},this.parentToAdd=a[0],a.forEach(function(t){return p.requiredParents[t]=!0})),this.implicitNamespacePrefix=r||null,this.contentType=o,this.ignoreFirstLf=f}return t.prototype.requireExtraParent=function(t){if(!this.requiredParents)return!1;if(!t)return!0;var e=t.toLowerCase();return!("template"===e||"ng-template"===t)&&!0!==this.requiredParents[e]},t.prototype.isClosedByChild=function(t){return this.isVoid||t.toLowerCase()in this.closedByChildren},t}(),qt={base:new Mt({isVoid:!0}),meta:new Mt({isVoid:!0}),area:new Mt({isVoid:!0}),embed:new Mt({isVoid:!0}),link:new Mt({isVoid:!0}),img:new Mt({isVoid:!0}),input:new Mt({isVoid:!0}),param:new Mt({isVoid:!0}),hr:new Mt({isVoid:!0}),br:new Mt({isVoid:!0}),source:new Mt({isVoid:!0}),track:new Mt({isVoid:!0}),wbr:new Mt({isVoid:!0}),p:new Mt({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new Mt({closedByChildren:["tbody","tfoot"]}),tbody:new Mt({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new Mt({closedByChildren:["tbody"],closedByParent:!0}),tr:new Mt({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new Mt({closedByChildren:["td","th"],closedByParent:!0}),th:new Mt({closedByChildren:["td","th"],closedByParent:!0}),col:new Mt({requiredParents:["colgroup"],isVoid:!0}),svg:new Mt({implicitNamespacePrefix:"svg"}),math:new Mt({implicitNamespacePrefix:"math"}),li:new Mt({closedByChildren:["li"],closedByParent:!0}),dt:new Mt({closedByChildren:["dt","dd"]}),dd:new Mt({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new Mt({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new Mt({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new Mt({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new Mt({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new Mt({closedByChildren:["optgroup"],closedByParent:!0}),option:new Mt({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new Mt({ignoreFirstLf:!0}),listing:new Mt({ignoreFirstLf:!0}),style:new Mt({contentType:ct.RAW_TEXT}),script:new Mt({contentType:ct.RAW_TEXT}),title:new Mt({contentType:ct.ESCAPABLE_RAW_TEXT}),textarea:new Mt({contentType:ct.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},jt=new Mt;function Ft(t){return qt[t.toLowerCase()]||jt}var zt=function(t){function e(e,n){var a=t.call(this)||this;return a.mapName=n,a.internalToPublic={},a.publicToNextId={},a.publicToInternal={},e.nodes.forEach(function(t){return t.visit(a)}),a}return Object(a.__extends)(e,t),e.prototype.toPublicName=function(t){return this.internalToPublic.hasOwnProperty(t)?this.internalToPublic[t]:null},e.prototype.toInternalName=function(t){return this.publicToInternal.hasOwnProperty(t)?this.publicToInternal[t]:null},e.prototype.visitText=function(t,e){return null},e.prototype.visitTagPlaceholder=function(e,n){this.visitPlaceholderName(e.startName),t.prototype.visitTagPlaceholder.call(this,e,n),this.visitPlaceholderName(e.closeName)},e.prototype.visitPlaceholder=function(t,e){this.visitPlaceholderName(t.name)},e.prototype.visitIcuPlaceholder=function(t,e){this.visitPlaceholderName(t.name)},e.prototype.visitPlaceholderName=function(t){if(t&&!this.internalToPublic.hasOwnProperty(t)){var e=this.mapName(t);if(this.publicToInternal.hasOwnProperty(e)){var n=this.publicToNextId[e];this.publicToNextId[e]=n+1,e=e+"_"+n}else this.publicToNextId[e]=1;this.internalToPublic[t]=e,this.publicToInternal[e]=t}},e}(x),Gt=new r.I18nSelectPipe,Yt=function(){function t(t,e){this.params=e,this.i18nPluralPipe=new r.I18nPluralPipe(new r.NgLocaleLocalization(t))}return t.prototype.visitElement=function(t,e){return Ft(t.name).isVoid?"<"+t.name+this.serializeNodes(t.attrs," ")+"/>":"<"+t.name+this.serializeNodes(t.attrs," ")+">"+this.serializeNodes(t.children)+""},t.prototype.visitAttribute=function(t,e){return t.name+'="'+t.value+'"'},t.prototype.visitText=function(t,e){return t.value},t.prototype.visitComment=function(t,e){return"\x3c!--"+t.value+"--\x3e"},t.prototype.visitExpansion=function(t,e){var n=this,a={};switch(t.cases.forEach(function(t){return a[t.value]=n.serializeNodes(t.expression)}),t.type){case"select":return Gt.transform(this.params[t.switchValue]||"",a);case"plural":return this.i18nPluralPipe.transform(this.params[t.switchValue],a)}throw new Error('Unknown expansion type "'+t.type+'"')},t.prototype.visitExpansionCase=function(t,e){return" "+t.value+" {"+this.serializeNodes(t.expression)+"}"},t.prototype.serializeNodes=function(t,e){var n=this;return void 0===e&&(e=""),0===t.length?"":e+t.map(function(t){return t.visit(n,null)}).join(e)},t}();function Vt(t){return t.id||function(t){var e,n,r=se(t),i=function(t,e){for(var n=Array(t.length+3>>>2),a=0;a>5]|=128<<24-o%32,i[15+(o+64>>9<<4)]=o;for(var h=0;h>>4).toString(16)+(15&a).toString(16)}return e.toLowerCase()}(re([c,l,d,f,p]))}((e=t.nodes,e.map(function(t){return t.visit(Bt,null)})).join("")+"["+t.meaning+"]");var e}var Ht=function(){function t(){}return t.prototype.visitText=function(t,e){return t.value},t.prototype.visitContainer=function(t,e){var n=this;return"["+t.children.map(function(t){return t.visit(n)}).join(", ")+"]"},t.prototype.visitIcu=function(t,e){var n=this,a=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+t.expression+", "+t.type+", "+a.join(", ")+"}"},t.prototype.visitTagPlaceholder=function(t,e){var n=this;return t.isVoid?'':''+t.children.map(function(t){return t.visit(n)}).join(", ")+''},t.prototype.visitPlaceholder=function(t,e){return t.value?''+t.value+"":''},t.prototype.visitIcuPlaceholder=function(t,e){return''+t.value.visit(this)+""},t}(),Bt=new Ht,Ut=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.visitIcu=function(t,e){var n=this,a=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+t.type+", "+a.join(", ")+"}"},e}(Ht);function Wt(t,e,n,a){return t<20?[e&n|~e&a,1518500249]:t<40?[e^n^a,1859775393]:t<60?[e&n|e&a|n&a,2400959708]:[e^n^a,3395469782]}function Kt(t){var e=se(t),n=Object(a.__read)([$t(e,0),$t(e,102072)],2),r=n[0],i=n[1];return 0!==r||0!==i&&1!==i||(r^=319790063,i^=-1801410264),[r,i]}function $t(t,e){var n,r,i=Object(a.__read)([2654435769,2654435769],2),o=i[0],s=i[1],u=t.length;for(n=0;n+12<=u;n+=12)o=Jt(o,ae(t,n,Xt.Little)),s=Jt(s,ae(t,n+4,Xt.Little)),e=Jt(e,ae(t,n+8,Xt.Little)),o=(r=Object(a.__read)(Zt([o,s,e]),3))[0],s=r[1],e=r[2];return o=Jt(o,ae(t,n,Xt.Little)),s=Jt(s,ae(t,n+4,Xt.Little)),e=Jt(e,u),Zt([o,s,e=Jt(e,ae(t,n+8,Xt.Little)<<8)])[2]}function Zt(t){var e=Object(a.__read)(t,3),n=e[0],r=e[1],i=e[2];return n=te(n,r),n=te(n,i),n^=i>>>13,r=te(r,i),r=te(r,n),r^=n<<8,i=te(i,n),i=te(i,r),i^=r>>>13,n=te(n,r),n=te(n,i),n^=i>>>12,r=te(r,i),r=te(r,n),r^=n<<16,i=te(i,n),i=te(i,r),i^=r>>>5,n=te(n,r),n=te(n,i),n^=i>>>3,r=te(r,i),r=te(r,n),r^=n<<10,i=te(i,n),i=te(i,r),[n,r,i^=r>>>15]}var Xt=function(){var t={Little:0,Big:1};return t[t.Little]="Little",t[t.Big]="Big",t}();function Jt(t,e){return Qt(t,e)[1]}function Qt(t,e){var n=(65535&t)+(65535&e),a=(t>>>16)+(e>>>16)+(n>>>16);return[a>>>16,a<<16|65535&n]}function te(t,e){var n=(65535&t)-(65535&e);return(t>>16)-(e>>16)+(n>>16)<<16|65535&n}function ee(t,e){return t<>>32-e}function ne(t,e){return e>=t.length?0:255&t.charCodeAt(e)}function ae(t,e,n){var a=0;if(n===Xt.Big)for(var r=0;r<4;r++)a+=ne(t,e+r)<<24-8*r;else for(r=0;r<4;r++)a+=ne(t,e+r)<<8*r;return a}function re(t){return t.reduce(function(t,e){return t+function(t){for(var e="",n=0;n<4;n++)e+=String.fromCharCode(t>>>8*(3-n)&255);return e}(e)},"")}function ie(t,e){for(var n="",a=Math.max(t.length,e.length),r=0,i=0;r=10?(i=1,n+=o-10):(i=0,n+=o)}return n}function oe(t,e){for(var n="",a=e;0!==t;t>>>=1)1&t&&(n=ie(n,a)),a=ie(a,a);return n}function se(t){for(var e="",n=0;n=55296&&a<=56319&&t.length>n+1){var r=t.charCodeAt(n+1);r>=56320&&r<=57343&&(n++,a=(a-55296<<10)+r-56320+65536)}a<=127?e+=String.fromCharCode(a):a<=2047?e+=String.fromCharCode(a>>6&31|192,63&a|128):a<=65535?e+=String.fromCharCode(a>>12|224,a>>6&63|128,63&a|128):a<=2097151&&(e+=String.fromCharCode(a>>18&7|240,a>>12&63|128,a>>6&63|128,63&a|128))}return e}function ue(t){var e=(new le).parse(t),n=e.msgIdToHtml,r=e.errors,i={},o=new de;if(Object.keys(n).forEach(function(t){var e=o.convert(n[t]),s=e.i18nNodes,u=e.errors;r.push.apply(r,Object(a.__spread)(u)),i[t]=s}),r.length)throw new Error("xliff parse errors:\n"+r.join("\n"));return i}var ce=Vt,le=function(){function t(){}return t.prototype.parse=function(t){this._unitMlString=null,this._msgIdToHtml={};var e=new At(Pt).parse(t,"",!1);return this._errors=e.errors,f(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}},t.prototype.visitElement=function(t,e){switch(t.name){case"trans-unit":this._unitMlString=null;var n=t.attrs.find(function(t){return"id"===t.name});if(n){var a=n.value;this._msgIdToHtml.hasOwnProperty(a)?this._addError(t,"Duplicated translations for msg "+a):(f(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[a]=this._unitMlString:this._addError(t,"Message "+a+" misses a translation"))}else this._addError(t,' misses the "id" attribute');break;case"source":break;case"target":var r=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=r;break;case"file":f(this,t.children,null);break;default:f(this,t.children,null)}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),de=function(){function t(){}return t.prototype.convert=function(t){var e=new At(Pt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:f(this,e.rootNodes),errors:this._errors}},t.prototype.visitText=function(t,e){return new h(t.value,t.sourceSpan)},t.prototype.visitElement=function(t,e){if("x"===t.name){var n=t.attrs.find(function(t){return"id"===t.name});if(n)return new y("",n.value,t.sourceSpan);this._addError(t,' misses the "id" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitExpansion=function(t,e){var n={};return f(this,t.cases).forEach(function(e){n[e.value]=new g(e.nodes,t.sourceSpan)}),new m(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:f(this,t.expression)}},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}();function fe(t){var e=(new he).parse(t),n=e.msgIdToHtml,r=e.errors,i={},o=new ge;if(Object.keys(n).forEach(function(t){var e=o.convert(n[t]),s=e.i18nNodes,u=e.errors;r.push.apply(r,Object(a.__spread)(u)),i[t]=s}),r.length)throw new Error("xliff2 parse errors:\n"+r.join("\n"));return i}var pe=function(t){if(t.id)return t.id;var e=new Ut;return function(t,e){var n,r=Object(a.__read)(Kt(t),2),i=r[0],o=r[1];if(e){var s=Object(a.__read)(Kt(e),2),u=s[0],c=s[1];i=(n=Object(a.__read)(function(t,e){var n=Object(a.__read)(t,2),r=n[0],i=n[1],o=Object(a.__read)(e,2),s=o[0],u=o[1],c=Object(a.__read)(Qt(i,u),2),l=c[0],d=c[1];return[Jt(Jt(r,s),l),d]}(function(t,e){var n=Object(a.__read)(t,2),r=n[0],i=n[1];return[r<<1|i>>>31,i<<1|r>>>31]}([i,o]),[u,c]),2))[0],o=n[1]}return function(t){for(var e="",n="1",a=t.length-1;a>=0;a--)e=ie(e,oe(ne(t,a),n)),n=oe(256,n);return e.split("").reverse().join("")}(re([2147483647&i,o]))}(t.nodes.map(function(t){return t.visit(e,null)}).join(""),t.meaning)},he=function(){function t(){}return t.prototype.parse=function(t){this._unitMlString=null,this._msgIdToHtml={};var e=new At(Pt).parse(t,"",!1);return this._errors=e.errors,f(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}},t.prototype.visitElement=function(t,e){switch(t.name){case"unit":this._unitMlString=null;var n=t.attrs.find(function(t){return"id"===t.name});if(n){var a=n.value;this._msgIdToHtml.hasOwnProperty(a)?this._addError(t,"Duplicated translations for msg "+a):(f(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[a]=this._unitMlString:this._addError(t,"Message "+a+" misses a translation"))}else this._addError(t,' misses the "id" attribute');break;case"source":break;case"target":var r=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=r;break;case"xliff":var i=t.attrs.find(function(t){return"version"===t.name});if(i){var o=i.value;"2.0"!==o?this._addError(t,"The XLIFF file version "+o+" is not compatible with XLIFF 2.0 serializer"):f(this,t.children,null)}break;default:f(this,t.children,null)}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),ge=function(){function t(){}return t.prototype.convert=function(t){var e=new At(Pt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:[].concat.apply([],Object(a.__spread)(f(this,e.rootNodes))),errors:this._errors}},t.prototype.visitText=function(t,e){return new h(t.value,t.sourceSpan)},t.prototype.visitElement=function(t,e){var n=this;switch(t.name){case"ph":var r=t.attrs.find(function(t){return"equiv"===t.name});if(r)return[new y("",r.value,t.sourceSpan)];this._addError(t,' misses the "equiv" attribute');break;case"pc":var i=t.attrs.find(function(t){return"equivStart"===t.name}),o=t.attrs.find(function(t){return"equivEnd"===t.name});if(i){if(o){var s=i.value,u=o.value,c=[];return c.concat.apply(c,Object(a.__spread)([new y("",s,t.sourceSpan)],t.children.map(function(t){return t.visit(n,null)}),[new y("",u,t.sourceSpan)]))}this._addError(t,' misses the "equivEnd" attribute')}else this._addError(t,' misses the "equivStart" attribute');break;default:this._addError(t,"Unexpected tag")}return null},t.prototype.visitExpansion=function(t,e){var n={};return f(this,t.cases).forEach(function(e){n[e.value]=new g(e.nodes,t.sourceSpan)}),new m(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:[].concat.apply([],Object(a.__spread)(f(this,t.expression)))}},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}();function me(t){return t.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}function be(t){var e=(new xe).parse(t),n=e.msgIdToHtml,a=e.errors;if(a.length)throw new Error("xtb parse errors:\n"+a.join("\n"));var r={},i=new _e;return Object.keys(n).forEach(function(t){var e,a;e=r,a=t,Object.defineProperty(e,a,{configurable:!0,enumerable:!0,get:function(){var r=function(){var e=i.convert(n[t]),a=e.i18nNodes,r=e.errors;if(r.length)throw new Error("xtb parse errors:\n"+r.join("\n"));return a}();return Object.defineProperty(e,a,{enumerable:!0,value:r}),r},set:function(t){throw new Error("Could not overwrite an XTB translation")}})}),r}var ye=Vt,ve=function(t){return new zt(t,me)},xe=function(){function t(){}return t.prototype.parse=function(t){this._bundleDepth=0,this._msgIdToHtml={};var e=new At(Pt).parse(t,"",!1);return this._errors=e.errors,f(this,e.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}},t.prototype.visitElement=function(t,e){switch(t.name){case"translationbundle":this._bundleDepth++,this._bundleDepth>1&&this._addError(t," elements can not be nested"),f(this,t.children,null),this._bundleDepth--;break;case"translation":var n=t.attrs.find(function(t){return"id"===t.name});if(n){var a=n.value;if(this._msgIdToHtml.hasOwnProperty(a))this._addError(t,"Duplicated translations for msg "+a);else{var r=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._msgIdToHtml[a]=r}}else this._addError(t,' misses the "id" attribute');break;default:this._addError(t,"Unexpected tag")}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),_e=function(){function t(){}return t.prototype.convert=function(t){var e=new At(Pt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:f(this,e.rootNodes),errors:this._errors}},t.prototype.visitText=function(t,e){return new h(t.value,t.sourceSpan)},t.prototype.visitExpansion=function(t,e){var n={};return f(this,t.cases).forEach(function(e){n[e.value]=new g(e.nodes,t.sourceSpan)}),new m(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:f(this,t.expression)}},t.prototype.visitElement=function(t,e){if("ph"===t.name){var n=t.attrs.find(function(t){return"name"===t.name});if(n)return new y("",n.value,t.sourceSpan);this._addError(t,' misses the "name" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),Te=function(){return function(t,e,n,a){this.input=e,this.errLocation=n,this.ctxLocation=a,this.message="Parser Error: "+t+" "+n+" ["+e+"] in "+a}}(),we=function(){return function(t,e){this.start=t,this.end=e}}(),Se=function(){function t(t){this.span=t}return t.prototype.visit=function(t,e){return void 0===e&&(e=null),null},t.prototype.toString=function(){return"AST"},t}(),Oe=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.prefix=n,i.uninterpretedExpression=a,i.location=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitQuote(this,e)},e.prototype.toString=function(){return"Quote"},e}(Se),Ie=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){void 0===e&&(e=null)},e}(Se),Ce=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitImplicitReceiver(this,e)},e}(Se),ke=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expressions=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitChain(this,e)},e}(Se),Ne=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.condition=n,i.trueExp=a,i.falseExp=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitConditional(this,e)},e}(Se),Re=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.receiver=n,r.name=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyRead(this,e)},e}(Se),Ae=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.receiver=n,i.name=a,i.value=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyWrite(this,e)},e}(Se),Ee=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.receiver=n,r.name=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafePropertyRead(this,e)},e}(Se),De=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.obj=n,r.key=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedRead(this,e)},e}(Se),Le=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.obj=n,i.key=a,i.value=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedWrite(this,e)},e}(Se),Pe=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.exp=n,i.name=a,i.args=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPipe(this,e)},e}(Se),Me=function(t){function e(e,n){var a=t.call(this,e)||this;return a.value=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralPrimitive(this,e)},e}(Se),qe=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expressions=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralArray(this,e)},e}(Se),je=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.keys=n,r.values=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralMap(this,e)},e}(Se),Fe=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.strings=n,r.expressions=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitInterpolation(this,e)},e}(Se),ze=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.operation=n,i.left=a,i.right=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitBinary(this,e)},e}(Se),Ge=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expression=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPrefixNot(this,e)},e}(Se),Ye=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expression=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitNonNullAssert(this,e)},e}(Se),Ve=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.receiver=n,i.name=a,i.args=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitMethodCall(this,e)},e}(Se),He=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.receiver=n,i.name=a,i.args=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafeMethodCall(this,e)},e}(Se),Be=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.target=n,r.args=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitFunctionCall(this,e)},e}(Se),Ue=function(t){function e(e,n,a,r){var i=t.call(this,new we(0,null==n?0:n.length))||this;return i.ast=e,i.source=n,i.location=a,i.errors=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),this.ast.visit(t,e)},e.prototype.toString=function(){return this.source+" in "+this.location},e}(Se),We=function(){return function(t,e,n,a,r){this.span=t,this.key=e,this.keyIsVar=n,this.name=a,this.expression=r}}(),Ke=function(){var t={Character:0,Identifier:1,Keyword:2,String:3,Operator:4,Number:5,Error:6};return t[t.Character]="Character",t[t.Identifier]="Identifier",t[t.Keyword]="Keyword",t[t.String]="String",t[t.Operator]="Operator",t[t.Number]="Number",t[t.Error]="Error",t}(),$e=["var","let","as","null","undefined","true","false","if","else","this"],Ze=function(){function t(){}return t.prototype.tokenize=function(t){for(var e=new en(t),n=[],a=e.scanToken();null!=a;)n.push(a),a=e.scanToken();return n},t}(),Xe=function(){function t(t,e,n,a){this.index=t,this.type=e,this.numValue=n,this.strValue=a}return t.prototype.isCharacter=function(t){return this.type===Ke.Character&&this.numValue===t},t.prototype.isNumber=function(){return this.type===Ke.Number},t.prototype.isString=function(){return this.type===Ke.String},t.prototype.isOperator=function(t){return this.type===Ke.Operator&&this.strValue===t},t.prototype.isIdentifier=function(){return this.type===Ke.Identifier},t.prototype.isKeyword=function(){return this.type===Ke.Keyword},t.prototype.isKeywordLet=function(){return this.type===Ke.Keyword&&"let"===this.strValue},t.prototype.isKeywordAs=function(){return this.type===Ke.Keyword&&"as"===this.strValue},t.prototype.isKeywordNull=function(){return this.type===Ke.Keyword&&"null"===this.strValue},t.prototype.isKeywordUndefined=function(){return this.type===Ke.Keyword&&"undefined"===this.strValue},t.prototype.isKeywordTrue=function(){return this.type===Ke.Keyword&&"true"===this.strValue},t.prototype.isKeywordFalse=function(){return this.type===Ke.Keyword&&"false"===this.strValue},t.prototype.isKeywordThis=function(){return this.type===Ke.Keyword&&"this"===this.strValue},t.prototype.isError=function(){return this.type===Ke.Error},t.prototype.toNumber=function(){return this.type===Ke.Number?this.numValue:-1},t.prototype.toString=function(){switch(this.type){case Ke.Character:case Ke.Identifier:case Ke.Keyword:case Ke.Operator:case Ke.String:case Ke.Error:return this.strValue;case Ke.Number:return this.numValue.toString();default:return null}},t}();function Je(t,e){return new Xe(t,Ke.Character,e,String.fromCharCode(e))}function Qe(t,e){return new Xe(t,Ke.Operator,0,e)}var tn=new Xe(-1,Ke.Character,0,""),en=function(){function t(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}return t.prototype.advance=function(){this.peek=++this.index>=this.length?N:this.input.charCodeAt(this.index)},t.prototype.scanToken=function(){for(var t=this.input,e=this.length,n=this.peek,a=this.index;n<=P;){if(++a>=e){n=N;break}n=t.charCodeAt(a)}if(this.peek=n,this.index=a,a>=e)return null;if(nn(n))return this.scanIdentifier();if(st(n))return this.scanNumber(a);var r=a;switch(n){case 46:return this.advance(),st(this.peek)?this.scanNumber(r):Je(r,46);case 40:case 41:case rt:case 125:case 91:case 93:case 44:case 58:case Y:return this.scanCharacter(r,n);case j:case M:return this.scanString();case 35:case F:case z:case 42:case G:case 37:case 94:return this.scanOperator(r,String.fromCharCode(n));case 63:return this.scanComplexOperator(r,"?",46,".");case 60:case H:return this.scanComplexOperator(r,String.fromCharCode(n),V,"=");case 33:case V:return this.scanComplexOperator(r,String.fromCharCode(n),V,"=",V,"=");case 38:return this.scanComplexOperator(r,"&",38,"&");case 124:return this.scanComplexOperator(r,"|",124,"|");case it:for(;ot(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character ["+String.fromCharCode(n)+"]",0)},t.prototype.scanCharacter=function(t,e){return this.advance(),Je(t,e)},t.prototype.scanOperator=function(t,e){return this.advance(),Qe(t,e)},t.prototype.scanComplexOperator=function(t,e,n,a,r,i){this.advance();var o=e;return this.peek===n&&(this.advance(),o+=a),null!=r&&this.peek===r&&(this.advance(),o+=i),Qe(t,o)},t.prototype.scanIdentifier=function(){var t=this.index;for(this.advance();an(this.peek);)this.advance();var e=this.input.substring(t,this.index);return $e.indexOf(e)>-1?new Xe(t,Ke.Keyword,0,e):new Xe(t,Ke.Identifier,0,e)},t.prototype.scanNumber=function(t){var e,n=this.index===t;for(this.advance();;){if(st(this.peek));else if(46===this.peek)n=!1;else{if(101!==(e=this.peek)&&69!==e)break;if(this.advance(),rn(this.peek)&&this.advance(),!st(this.peek))return this.error("Invalid exponent",-1);n=!1}this.advance()}var a=this.input.substring(t,this.index),r=n?function(t){var e=parseInt(t,10);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}(a):parseFloat(a);return new Xe(t,Ke.Number,r,"")},t.prototype.scanString=function(){var t=this.index,e=this.peek;this.advance();for(var n="",a=this.index,r=this.input;this.peek!==e;)if(92===this.peek){n+=r.substring(a,this.index),this.advance();var i=void 0;if(this.peek=this.peek,117===this.peek){var o=r.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(o))return this.error("Invalid unicode escape [\\u"+o+"]",0);i=parseInt(o,16);for(var s=0;s<5;s++)this.advance()}else i=on(this.peek),this.advance();n+=String.fromCharCode(i),a=this.index}else{if(this.peek===N)return this.error("Unterminated quote",0);this.advance()}var u=r.substring(a,this.index);return this.advance(),new Xe(t,Ke.String,0,n+u)},t.prototype.error=function(t,e){var n=this.index+e;return function(t,e){return new Xe(n,Ke.Error,0,e)}(0,"Lexer Error: "+t+" at column "+n+" in expression ["+this.input+"]")},t}();function nn(t){return X<=t&&t<=at||W<=t&&t<=$||t===Z||t===q}function an(t){return ut(t)||st(t)||t===Z||t===q}function rn(t){return t===z||t===F}function on(t){switch(t){case Q:return A;case J:return D;case tt:return L;case et:return R;case nt:return E;default:return t}}var sn=function(){return function(t,e,n){this.strings=t,this.expressions=e,this.offsets=n}}(),un=function(){return function(t,e,n){this.templateBindings=t,this.warnings=e,this.errors=n}}();function cn(t){var e=C(t.start)+"([\\s\\S]*?)"+C(t.end);return new RegExp(e,"g")}var ln=function(){function t(t){this._lexer=t,this.errors=[]}return t.prototype.parseAction=function(t,e,n){void 0===n&&(n=k),this._checkNoInterpolation(t,e,n);var a=this._stripComments(t),r=this._lexer.tokenize(this._stripComments(t)),i=new dn(t,e,r,a.length,!0,this.errors,t.length-a.length).parseChain();return new Ue(i,t,e,this.errors)},t.prototype.parseBinding=function(t,e,n){void 0===n&&(n=k);var a=this._parseBindingAst(t,e,n);return new Ue(a,t,e,this.errors)},t.prototype.parseSimpleBinding=function(t,e,n){void 0===n&&(n=k);var a=this._parseBindingAst(t,e,n),r=fn.check(a);return r.length>0&&this._reportError("Host binding expression cannot contain "+r.join(" "),t,e),new Ue(a,t,e,this.errors)},t.prototype._reportError=function(t,e,n,a){this.errors.push(new Te(t,e,n,a))},t.prototype._parseBindingAst=function(t,e,n){var a=this._parseQuote(t,e);if(null!=a)return a;this._checkNoInterpolation(t,e,n);var r=this._stripComments(t),i=this._lexer.tokenize(r);return new dn(t,e,i,r.length,!1,this.errors,t.length-r.length).parseChain()},t.prototype._parseQuote=function(t,e){if(null===t)return null;var n=t.indexOf(":");if(-1===n)return null;var a=t.substring(0,n).trim();if(!function(t){if(0===a.length)return!1;var e=new en(a);if(!nn(e.peek))return!1;for(e.advance();e.peek!==N;){if(!an(e.peek))return!1;e.advance()}return!0}())return null;var r=t.substring(n+1);return new Oe(new we(0,t.length),a,r,e)},t.prototype.parseTemplateBindings=function(t,e,n){var r=this._lexer.tokenize(e);if(t){var i=this._lexer.tokenize(t).map(function(t){return t.index=0,t});r.unshift.apply(r,Object(a.__spread)(i))}return new dn(e,n,r,e.length,!1,this.errors,0).parseTemplateBindings()},t.prototype.parseInterpolation=function(t,e,n){void 0===n&&(n=k);var a=this.splitInterpolation(t,e,n);if(null===a)return null;for(var r=[],i=0;i0?(u+=n.start.length,o.push(l),s.push(u),u+=l.length+n.end.length):(this._reportError("Blank expressions are not allowed in interpolated strings",t,"at column "+this._findInterpolationErrorColumn(r,c,n)+" in",e),o.push("$implict"),s.push(u))}return new sn(i,o,s)},t.prototype.wrapLiteralPrimitive=function(t,e){return new Ue(new Me(new we(0,null===t?0:t.length),t),t,e,this.errors)},t.prototype._stripComments=function(t){var e=this._commentStart(t);return null!=e?t.substring(0,e).trim():t},t.prototype._commentStart=function(t){for(var e,n=null,a=0;a1&&this._reportError("Got interpolation ("+n.start+n.end+") where expression was expected",t,"at column "+this._findInterpolationErrorColumn(r,1,n)+" in",e)},t.prototype._findInterpolationErrorColumn=function(t,e,n){for(var a="",r=0;r":case"<=":case">=":this.advance();var n=this.parseAdditive();t=new ze(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parseAdditive=function(){for(var t=this.parseMultiplicative();this.next.type===Ke.Operator;){var e=this.next.strValue;switch(e){case"+":case"-":this.advance();var n=this.parseMultiplicative();t=new ze(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parseMultiplicative=function(){for(var t=this.parsePrefix();this.next.type===Ke.Operator;){var e=this.next.strValue;switch(e){case"*":case"%":case"/":this.advance();var n=this.parsePrefix();t=new ze(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parsePrefix=function(){if(this.next.type===Ke.Operator){var t=this.inputIndex,e=this.next.strValue,n=void 0;switch(e){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),n=this.parsePrefix(),new ze(this.span(t),e,new Me(new we(t,t),0),n);case"!":return this.advance(),n=this.parsePrefix(),new Ge(this.span(t),n)}}return this.parseCallChain()},t.prototype.parseCallChain=function(){for(var t=this.parsePrimary();;)if(this.optionalCharacter(46))t=this.parseAccessMemberOrMethodCall(t,!1);else if(this.optionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,!0);else if(this.optionalCharacter(91)){this.rbracketsExpected++;var e=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(93),this.optionalOperator("=")){var n=this.parseConditional();t=new Le(this.span(t.span.start),t,e,n)}else t=new De(this.span(t.span.start),t,e)}else if(this.optionalCharacter(40)){this.rparensExpected++;var a=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(41),t=new Be(this.span(t.span.start),t,a)}else{if(!this.optionalOperator("!"))return t;t=new Ye(this.span(t.span.start),t)}},t.prototype.parsePrimary=function(){var t=this.inputIndex;if(this.optionalCharacter(40)){this.rparensExpected++;var e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),e}if(this.next.isKeywordNull())return this.advance(),new Me(this.span(t),null);if(this.next.isKeywordUndefined())return this.advance(),new Me(this.span(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new Me(this.span(t),!0);if(this.next.isKeywordFalse())return this.advance(),new Me(this.span(t),!1);if(this.next.isKeywordThis())return this.advance(),new Ce(this.span(t));if(this.optionalCharacter(91)){this.rbracketsExpected++;var n=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new qe(this.span(t),n)}if(this.next.isCharacter(rt))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Ce(this.span(t)),!1);if(this.next.isNumber()){var a=this.next.toNumber();return this.advance(),new Me(this.span(t),a)}if(this.next.isString()){var r=this.next.toString();return this.advance(),new Me(this.span(t),r)}return this.index>=this.tokens.length?(this.error("Unexpected end of expression: "+this.input),new Ie(this.span(t))):(this.error("Unexpected token "+this.next),new Ie(this.span(t)))},t.prototype.parseExpressionList=function(t){var e=[];if(!this.next.isCharacter(t))do{e.push(this.parsePipe())}while(this.optionalCharacter(44));return e},t.prototype.parseLiteralMap=function(){var t=[],e=[],n=this.inputIndex;if(this.expectCharacter(rt),!this.optionalCharacter(125)){this.rbracesExpected++;do{var a=this.next.isString(),r=this.expectIdentifierOrKeywordOrString();t.push({key:r,quoted:a}),this.expectCharacter(58),e.push(this.parsePipe())}while(this.optionalCharacter(44));this.rbracesExpected--,this.expectCharacter(125)}return new je(this.span(n),t,e)},t.prototype.parseAccessMemberOrMethodCall=function(t,e){void 0===e&&(e=!1);var n=t.span.start,a=this.expectIdentifierOrKeyword();if(this.optionalCharacter(40)){this.rparensExpected++;var r=this.parseCallArguments();this.expectCharacter(41),this.rparensExpected--;var i=this.span(n);return e?new He(i,t,a,r):new Ve(i,t,a,r)}if(e)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new Ie(this.span(n))):new Ee(this.span(n),t,a);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new Ie(this.span(n));var o=this.parseConditional();return new Ae(this.span(n),t,a,o)}return new Re(this.span(n),t,a)},t.prototype.parseCallArguments=function(){if(this.next.isCharacter(41))return[];var t=[];do{t.push(this.parsePipe())}while(this.optionalCharacter(44));return t},t.prototype.expectTemplateBindingKey=function(){var t="",e=!1;do{t+=this.expectIdentifierOrKeywordOrString(),(e=this.optionalOperator("-"))&&(t+="-")}while(e);return t.toString()},t.prototype.parseTemplateBindings=function(){for(var t=[],e=null;this.index":">")},t.prototype._hashClosingTag=function(t){return this._hashTag("/"+t,{},!1)},t.prototype._generateUniqueName=function(t){if(!this._placeHolderNameCounts.hasOwnProperty(t))return this._placeHolderNameCounts[t]=1,t;var e=this._placeHolderNameCounts[t];return this._placeHolderNameCounts[t]=e+1,t+"_"+e},t}(),gn=new ln(new Ze),mn=function(){function t(t,e){this._expressionParser=t,this._interpolationConfig=e}return t.prototype.toI18nMessage=function(t,e,n,a){this._isIcu=1===t.length&&t[0]instanceof s,this._icuDepth=0,this._placeholderRegistry=new hn,this._placeholderToContent={},this._placeholderToMessage={};var r=f(this,t,{});return new p(r,this._placeholderToContent,this._placeholderToMessage,e,n,a)},t.prototype.visitElement=function(t,e){var n=f(this,t.children),a={};t.attrs.forEach(function(t){a[t.name]=t.value});var r=Ft(t.name).isVoid,i=this._placeholderRegistry.getStartTagPlaceholderName(t.name,a,r);this._placeholderToContent[i]=t.sourceSpan?t.sourceSpan.toString():"";var o="";return r||(o=this._placeholderRegistry.getCloseTagPlaceholderName(t.name),this._placeholderToContent[o]=""),new b(t.name,a,i,o,n,r,t.sourceSpan)},t.prototype.visitAttribute=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitText=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitComment=function(t,e){return null},t.prototype.visitExpansion=function(e,n){var a=this;this._icuDepth++;var r={},i=new m(e.switchValue,e.type,r,e.sourceSpan);if(e.cases.forEach(function(t){r[t.value]=new g(t.expression.map(function(t){return t.visit(a,{})}),t.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0){var o=this._placeholderRegistry.getUniquePlaceholder("VAR_"+e.type);return i.expressionPlaceholder=o,this._placeholderToContent[o]=e.switchValue,i}var s=this._placeholderRegistry.getPlaceholderName("ICU",e.sourceSpan.toString()),u=new t(this._expressionParser,this._interpolationConfig);return this._placeholderToMessage[s]=u.toI18nMessage([e],"","",""),new v(i,s,e.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){throw new Error("Unreachable code")},t.prototype._visitTextWithInterpolation=function(t,e){var n=this._expressionParser.splitInterpolation(t,e.start.toString(),this._interpolationConfig);if(!n)return new h(t,e);for(var a=[],r=new g(a,e),i=this._interpolationConfig,o=i.start,s=i.end,u=0;u":"<"+a+" "+r+">"+t.children.map(function(t){return t.visit(n)}).join("")+""},t.prototype.visitIcuPlaceholder=function(t,e){return this.convertToText(this._srcMsg.placeholderToMessage[t.name])},t.prototype.convertToText=function(t){var e,n=this,a=this._digest(t),r=this._mapperFactory?this._mapperFactory(t):null;this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=t,this._i18nNodesByMsgId.hasOwnProperty(a)?(e=this._i18nNodesByMsgId[a],this._mapper=function(t){return r?r.toInternalName(t):t}):(this._missingTranslationStrategy===i.MissingTranslationStrategy.Error?this._addError(t.nodes[0],'Missing translation for message "'+a+'"'):this._console&&this._missingTranslationStrategy===i.MissingTranslationStrategy.Warning&&this._console.warn('Missing translation for message "'+a+'"'),e=t.nodes,this._mapper=function(t){return t});var o=e.map(function(t){return t.visit(n)}).join(""),s=this._contextStack.pop();return this._srcMsg=s.msg,this._mapper=s.mapper,o},t.prototype.convertToValue=function(t){var e=t.replace(this._interpolationConfig.start,"").replace(this._interpolationConfig.end,"");return-1!==this._paramKeys.indexOf(e)?this._params[e]:t},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),Tn=function(){var t={Extract:0,Merge:1};return t[t.Extract]="Extract",t[t.Merge]="Merge",t}(),wn=function(){function t(t){void 0===t&&(t=[]),this._implicitTags=t,this.blockChildren=[]}return t.prototype.extract=function(t,e){return this.init(Tn.Extract,e),t.visit(this,null),this.inI18nBlock&&this._reportError(t,"Unclosed block"),new vn(this.messages,this.errors)},t.prototype.merge=function(t,e,n,a,r){void 0===r&&(r={}),this.init(Tn.Merge,n,a),this.translations=e,this.metadata=r;var i=t.visit(this,null);return this.inI18nBlock&&this._reportError(t,"Unclosed block"),new Rt(i.children,this.errors)},t.prototype.visitExpansionCase=function(t,e){var n=f(this,t.expression,e);if(this.mode===Tn.Merge)return new u(t.value,n,t.sourceSpan,t.valueSourceSpan,t.expSourceSpan)},t.prototype.visitExpansion=function(t,e){this.mayBeAddBlockChildren(t);var n=this.inIcu;this.inIcu||(this.isInTranslatableSection&&this.addMessage([t]),this.inIcu=!0);var a=f(this,t.cases,e);return this.mode===Tn.Merge&&(t=new s(t.switchValue,t.type,a,t.sourceSpan,t.switchValueSourceSpan)),this.inIcu=n,t},t.prototype.visitComment=function(t,e){},t.prototype.visitText=function(t,e){return this.isInTranslatableSection&&this.mayBeAddBlockChildren(t),t},t.prototype.visitElement=function(t,e){var n=this;this.mayBeAddBlockChildren(t),this.depth++;var a=this.inI18nNode,r=this.inImplicitNode,i=[],o=void 0,s=t.attrs.find(function(t){return"i18n"===t.name})||null,u=this._implicitTags.some(function(e){return t.name===e})&&!this.inIcu&&!this.isInTranslatableSection,c=!r&&u;if(this.inImplicitNode=r||u,this.isInTranslatableSection||this.inIcu)(s||c)&&this._reportError(t,"Could not mark an element as translatable inside a translatable section"),this.mode===Tn.Extract&&f(this,t.children);else{if(s||c){this.inI18nNode=!0;var d=this.addMessage(t.children,this.metadata);o=this.translateMessage(t,d)}if(this.mode===Tn.Extract){var p=s||c;p&&this.openTranslatableSection(t),f(this,t.children),p&&this._closeTranslatableSection(t,t.children)}}return this.mode===Tn.Merge&&(o||t.children).forEach(function(t){var a=t.visit(n,e);a&&!n.isInTranslatableSection&&(i=i.concat(a))}),this.depth--,this.inI18nNode=a,this.inImplicitNode=r,this.mode===Tn.Merge?new l(t.name,[],i,t.sourceSpan,t.startSourceSpan,t.endSourceSpan):null},t.prototype.visitAttribute=function(t,e){throw new Error("unreachable code")},t.prototype.init=function(t,e,n){void 0===n&&(n={}),this.mode=t,this.inI18nBlock=!1,this.inI18nNode=!1,this.depth=0,this.inIcu=!1,this.msgCountAtSectionStart=void 0,this.errors=[],this.messages=[],this.inImplicitNode=!1,this.createI18nMessage=function(t){var e=new mn(gn,t);return function(t,n,a,r){return e.toI18nMessage(t,n,a,r)}}(e),this.params=n},t.prototype.addMessage=function(t,e){var n=void 0===e?{}:e,a=n.meaning,r=n.description,i=n.id;if(0===t.length||1===t.length&&t[0]instanceof c&&!t[0].value)return null;var o=this.createI18nMessage(t,void 0===a?"":a,void 0===r?"":r,void 0===i?"":i);return this.messages.push(o),o},t.prototype.translateMessage=function(t,e){if(e&&this.mode===Tn.Merge){var n=this.translations.get(e,this.params);if(n)return n;this._reportError(t,'Translation unavailable for message id="'+this.translations.digest(e)+'"')}return[]},t.prototype.mayBeAddBlockChildren=function(t){this.inI18nBlock&&!this.inIcu&&this.depth===this.blockStartDepth&&this.blockChildren.push(t)},t.prototype.openTranslatableSection=function(t){this.isInTranslatableSection?this._reportError(t,"Unexpected section start"):this.msgCountAtSectionStart=this.messages.length},Object.defineProperty(t.prototype,"isInTranslatableSection",{get:function(){return void 0!==this.msgCountAtSectionStart},enumerable:!0,configurable:!0}),t.prototype._closeTranslatableSection=function(t,e){if(this.isInTranslatableSection){var n=this.msgCountAtSectionStart;if(1===e.reduce(function(t,e){return t+(e instanceof d?0:1)},0))for(var a=this.messages.length-1;a>=n;a--){var r=this.messages[a].nodes;if(!(1===r.length&&r[0]instanceof h)){this.messages.splice(a,1);break}}this.msgCountAtSectionStart=void 0}else this._reportError(t,"Unexpected section end")},t.prototype._reportError=function(t,e){this.errors.push(new I(t.sourceSpan,e))},t}(),Sn=new i.InjectionToken("MissingTranslationStrategy"),On=function(){return function(t,e,n,a){var r,o;void 0===a&&(a=i.MissingTranslationStrategy.Warning);var s=function(t){return null};switch(t=(t||"xlf").toLowerCase()){case"xtb":r=be,o=ye,s=ve;break;case"xliff2":case"xlf2":r=fe,o=pe;break;case"xliff":case"xlf":r=ue,o=ce;break;default:throw new Error("Unknown translations format "+t)}var u=new yn,c=xn.load(e,"i18n",o,s,r,a);return function(t,e){void 0===e&&(e={});var a="string"==typeof t?t:t.value,r={};"object"==typeof t&&(r.id=t.id,r.meaning=t.meaning,r.description=t.description);var i=u.parse(a,"",!0);if(i.errors.length)throw i.errors;return function(t,e,n){return t.map(function(t){return t.visit(new Yt(e,n),null)})}(u.mergeTranslations(i.rootNodes,c,e,r,["wrapper"]).rootNodes,n,e).join("")}}}()},JvlW:function(t,e,n){!function(t){"use strict";var e={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function n(t,e,n,a){return e?r(n)[0]:a?r(n)[1]:r(n)[2]}function a(t){return t%10==0||t>10&&t<20}function r(t){return e[t].split("_")}function i(t,e,i,o){var s=t+" ";return 1===t?s+n(0,e,i[0],o):e?s+(a(t)?r(i)[1]:r(i)[0]):o?s+r(i)[1]:s+(a(t)?r(i)[1]:r(i)[2])}t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function(t,e,n,a){return e?"kelios sekund\u0117s":a?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:i,m:n,mm:i,h:n,hh:i,d:n,dd:i,M:n,MM:i,y:n,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}})}(n("wd/R"))},JxMD:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("xdbM");n("dgut"),n("Fgil"),n.d(e,"a",function(){return o}),n.d(e,"b",function(){return s});var o=a["\u0275crt"]({encapsulation:0,styles:[["canvas[_ngcontent-%COMP%]{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;-webkit-transition:.1s;transition:all .1s ease;pointer-events:none;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif!important;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{-webkit-transform:translate(-10%,0);transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{-webkit-transform:translate(-90%,0);transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:' ';position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent} .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:static!important}"]],data:{}});function s(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{chartCanvasRef:0}),a["\u0275qud"](402653184,2,{chartTooltipRef:0}),(t()(),a["\u0275eld"](2,0,null,null,5,"div",[["class","chart-container"]],null,null,null,null,null)),a["\u0275did"](3,278528,null,0,r.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275eld"](4,0,[[1,0],["sparkCanvas",1]],null,1,"canvas",[["baseChart",""]],null,null,null,null,null)),a["\u0275did"](5,737280,null,0,i.BaseChartDirective,[a.ElementRef],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),a["\u0275eld"](6,0,[[2,0],["sparkTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,0,"table",[],null,null,null,null,null))],function(t,e){var n=e.component;t(e,3,0,n.style),t(e,5,0,n.datasets,n.labels,n.options,"line",n.colors)},null)}},"K/tc":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(t){return/^nm$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}()},K2E3:function(t,e,n){"use strict";var a=n("6ww4"),r=n("RDha"),i=function(t){r.extend(this,t),this.initialize.apply(this,arguments)};r.extend(i.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=r.clone(t._model)),t._start={},t},transition:function(t){var e=this,n=e._model,r=e._start,i=e._view;return n&&1!==t?(i||(i=e._view={}),r||(r=e._start={}),function(t,e,n,r){var i,o,s,u,c,l,d,f,p,h=Object.keys(n);for(i=0,o=h.length;i0||(e.forEach(function(e){delete t[e]}),delete t._chartjs)}}t.DatasetController=function(t,e){this.initialize(t,e)},a.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),a=this.getDataset().data||[],r=n.data;for(t=0,e=a.length;tn&&this.insertElements(n,a-n)},insertElements:function(t,e){for(var n=0;n0?t.prototype.requestAsyncId.call(this,e,n,a):(e.actions.push(this),e.scheduled||(e.scheduled=(o=e.flush.bind(e,null),s=r++,i[s]=o,Promise.resolve().then(function(){return function(t){var e=i[t];e&&e()}(s)}),s)));var o,s},e.prototype.recycleAsyncId=function(e,n,a){if(void 0===a&&(a=0),null!==a&&a>0||null===a&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,a);0===e.actions.length&&(delete i[n],e.scheduled=void 0)},e}(n("h9Dq").a),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,a=-1,r=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++a=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},KVJa:function(t,e,n){"use strict";var a=n("CcnG");n("Z21x"),n("Ip0R"),n("sne2"),n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i});var r=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function i(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](-1,null,["\xa0\n"])),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-sm btn-default tc_backButton"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.back()&&a),a},null,null)),(t()(),a["\u0275ted"](2,null,[" ","\n"]))],null,function(t,e){t(e,2,0,e.component.name)})}},KhEm:function(t,e,n){"use strict";n.d(e,"a",function(){return u}),n.d(e,"b",function(){return l});var a=n("mrSG"),r=n("K9Ia"),i=n("6blF"),o=(n("FFOo"),n("pugT")),s=n("yGWI"),u=function(t){function e(e,n){var a=t.call(this)||this;return a.source=e,a.subjectFactory=n,a._refCount=0,a._isComplete=!1,a}return a.__extends(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new o.a).add(this.source.subscribe(new d(this.getSubject(),this))),t.closed&&(this._connection=null,t=o.a.EMPTY)),t},e.prototype.refCount=function(){return Object(s.a)()(this)},e}(i.a),c=u.prototype,l={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:c._subscribe},_isComplete:{value:c._isComplete,writable:!0},getSubject:{value:c.getSubject},connect:{value:c.connect},refCount:{value:c.refCount}},d=function(t){function e(e,n){var a=t.call(this,e)||this;return a.connectable=n,a}return a.__extends(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(r.b)},"L/V9":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()},L5sC:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DataTableColumnCellTreeToggle=function(){return a([r.Directive({selector:"[ngx-datatable-tree-toggle]"})],function(t){this.template=t})}()},LBXl:function(t,e,n){"use strict";function a(t){return Error.call(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(t,e){return e+1+") "+t.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t,this}a.prototype=Object.create(Error.prototype),e.UnsubscriptionError=a},"LJ/p":function(t,e,n){"use strict";var a=n("Q1FS"),r=n("zB/H"),i=n("VKeD");e.scheduleIterable=function(t,e){if(!t)throw new Error("Iterable cannot be null");return new a.Observable(function(n){var a,o=new r.Subscription;return o.add(function(){a&&"function"==typeof a.return&&a.return()}),o.add(e.schedule(function(){a=t[i.iterator](),o.add(e.schedule(function(){if(!n.closed){var t,e;try{var r=a.next();t=r.value,e=r.done}catch(i){return void n.error(i)}e?n.complete():(n.next(t),this.schedule())}}))})),o})}},LceX:function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return i}),n.d(e,"d",function(){return o}),n.d(e,"e",function(){return s}),n.d(e,"f",function(){return u}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return l});var a=n("sne2"),r=(n("eTJe"),n("n/D3"),n("V3my"),n("ZEkX"),function(){return function(){}}()),i={breadcrumbs:"Users"},o={breadcrumbs:a.a.CREATE},s={breadcrumbs:a.a.EDIT},u={breadcrumbs:"Roles"},c={breadcrumbs:a.a.CREATE},l={breadcrumbs:a.a.EDIT},d=function(){return function(){}}()},Loxo:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}()},LvDl:function(t,e,n){(function(t){var a;(function(){var r,i=200,o="Expected a function",s="__lodash_placeholder__",u=1,c=2,l=4,d=1,f=2,p=1,h=2,g=4,m=8,b=16,y=32,v=64,x=128,_=256,T=512,w=800,S=16,O=1/0,I=9007199254740991,C=1.7976931348623157e308,k=NaN,N=4294967295,R=N-1,A=N>>>1,E=[["ary",x],["bind",p],["bindKey",h],["curry",m],["curryRight",b],["flip",T],["partial",y],["partialRight",v],["rearg",_]],D="[object Arguments]",L="[object Array]",P="[object AsyncFunction]",M="[object Boolean]",q="[object Date]",j="[object DOMException]",F="[object Error]",z="[object Function]",G="[object GeneratorFunction]",Y="[object Map]",V="[object Number]",H="[object Null]",B="[object Object]",U="[object Proxy]",W="[object RegExp]",K="[object Set]",$="[object String]",Z="[object Symbol]",X="[object Undefined]",J="[object WeakMap]",Q="[object ArrayBuffer]",tt="[object DataView]",et="[object Float32Array]",nt="[object Float64Array]",at="[object Int8Array]",rt="[object Int16Array]",it="[object Int32Array]",ot="[object Uint8Array]",st="[object Uint8ClampedArray]",ut="[object Uint16Array]",ct="[object Uint32Array]",lt=/\b__p \+= '';/g,dt=/\b(__p \+=) '' \+/g,ft=/(__e\(.*?\)|\b__t\)) \+\n'';/g,pt=/&(?:amp|lt|gt|quot|#39);/g,ht=/[&<>"']/g,gt=RegExp(pt.source),mt=RegExp(ht.source),bt=/<%-([\s\S]+?)%>/g,yt=/<%([\s\S]+?)%>/g,vt=/<%=([\s\S]+?)%>/g,xt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_t=/^\w*$/,Tt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,wt=/[\\^$.*+?()[\]{}|]/g,St=RegExp(wt.source),Ot=/^\s+|\s+$/g,It=/^\s+/,Ct=/\s+$/,kt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Nt=/\{\n\/\* \[wrapped with (.+)\] \*/,Rt=/,? & /,At=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Et=/\\(\\)?/g,Dt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Lt=/\w*$/,Pt=/^[-+]0x[0-9a-f]+$/i,Mt=/^0b[01]+$/i,qt=/^\[object .+?Constructor\]$/,jt=/^0o[0-7]+$/i,Ft=/^(?:0|[1-9]\d*)$/,zt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Gt=/($^)/,Yt=/['\n\r\u2028\u2029\\]/g,Vt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ht="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Bt="["+Ht+"]",Ut="["+Vt+"]",Wt="\\d+",Kt="[a-z\\xdf-\\xf6\\xf8-\\xff]",$t="[^\\ud800-\\udfff"+Ht+Wt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",Zt="\\ud83c[\\udffb-\\udfff]",Xt="[^\\ud800-\\udfff]",Jt="(?:\\ud83c[\\udde6-\\uddff]){2}",Qt="[\\ud800-\\udbff][\\udc00-\\udfff]",te="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ee="(?:"+Kt+"|"+$t+")",ne="(?:"+te+"|"+$t+")",ae="(?:"+Ut+"|"+Zt+")?",re="[\\ufe0e\\ufe0f]?"+ae+"(?:\\u200d(?:"+[Xt,Jt,Qt].join("|")+")[\\ufe0e\\ufe0f]?"+ae+")*",ie="(?:"+["[\\u2700-\\u27bf]",Jt,Qt].join("|")+")"+re,oe="(?:"+[Xt+Ut+"?",Ut,Jt,Qt,"[\\ud800-\\udfff]"].join("|")+")",se=RegExp("['\u2019]","g"),ue=RegExp(Ut,"g"),ce=RegExp(Zt+"(?="+Zt+")|"+oe+re,"g"),le=RegExp([te+"?"+Kt+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[Bt,te,"$"].join("|")+")",ne+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[Bt,te+ee,"$"].join("|")+")",te+"?"+ee+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",te+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Wt,ie].join("|"),"g"),de=RegExp("[\\u200d\\ud800-\\udfff"+Vt+"\\ufe0e\\ufe0f]"),fe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,pe=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],he=-1,ge={};ge[et]=ge[nt]=ge[at]=ge[rt]=ge[it]=ge[ot]=ge[st]=ge[ut]=ge[ct]=!0,ge[D]=ge[L]=ge[Q]=ge[M]=ge[tt]=ge[q]=ge[F]=ge[z]=ge[Y]=ge[V]=ge[B]=ge[W]=ge[K]=ge[$]=ge[J]=!1;var me={};me[D]=me[L]=me[Q]=me[tt]=me[M]=me[q]=me[et]=me[nt]=me[at]=me[rt]=me[it]=me[Y]=me[V]=me[B]=me[W]=me[K]=me[$]=me[Z]=me[ot]=me[st]=me[ut]=me[ct]=!0,me[F]=me[z]=me[J]=!1;var be={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ye=parseFloat,ve=parseInt,xe="object"==typeof global&&global&&global.Object===Object&&global,_e="object"==typeof self&&self&&self.Object===Object&&self,Te=xe||_e||Function("return this")(),we=e&&!e.nodeType&&e,Se=we&&"object"==typeof t&&t&&!t.nodeType&&t,Oe=Se&&Se.exports===we,Ie=Oe&&xe.process,Ce=function(){try{return Se&&Se.require&&Se.require("util").types||Ie&&Ie.binding&&Ie.binding("util")}catch(t){}}(),ke=Ce&&Ce.isArrayBuffer,Ne=Ce&&Ce.isDate,Re=Ce&&Ce.isMap,Ae=Ce&&Ce.isRegExp,Ee=Ce&&Ce.isSet,De=Ce&&Ce.isTypedArray;function Le(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function Pe(t,e,n,a){for(var r=-1,i=null==t?0:t.length;++r-1}function ze(t,e,n){for(var a=-1,r=null==t?0:t.length;++a-1;);return n}function cn(t,e){for(var n=t.length;n--&&$e(e,t[n],0)>-1;);return n}var ln=tn({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),dn=tn({"&":"&","<":"<",">":">",'"':""","'":"'"});function fn(t){return"\\"+be[t]}function pn(t){return de.test(t)}function hn(t){var e=-1,n=Array(t.size);return t.forEach(function(t,a){n[++e]=[a,t]}),n}function gn(t,e){return function(n){return t(e(n))}}function mn(t,e){for(var n=-1,a=t.length,r=0,i=[];++n",""":'"',"'":"'"}),Tn=function t(e){var n,a=(e=null==e?Te:Tn.defaults(Te.Object(),e,Tn.pick(Te,pe))).Array,Vt=e.Date,Ht=e.Error,Bt=e.Function,Ut=e.Math,Wt=e.Object,Kt=e.RegExp,$t=e.String,Zt=e.TypeError,Xt=a.prototype,Jt=Wt.prototype,Qt=e["__core-js_shared__"],te=Bt.prototype.toString,ee=Jt.hasOwnProperty,ne=0,ae=(n=/[^.]+$/.exec(Qt&&Qt.keys&&Qt.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",re=Jt.toString,ie=te.call(Wt),oe=Te._,ce=Kt("^"+te.call(ee).replace(wt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),de=Oe?e.Buffer:r,be=e.Symbol,xe=e.Uint8Array,_e=de?de.allocUnsafe:r,we=gn(Wt.getPrototypeOf,Wt),Se=Wt.create,Ie=Jt.propertyIsEnumerable,Ce=Xt.splice,Ue=be?be.isConcatSpreadable:r,tn=be?be.iterator:r,wn=be?be.toStringTag:r,Sn=function(){try{var t=Ti(Wt,"defineProperty");return t({},"",{}),t}catch(e){}}(),On=e.clearTimeout!==Te.clearTimeout&&e.clearTimeout,In=Vt&&Vt.now!==Te.Date.now&&Vt.now,Cn=e.setTimeout!==Te.setTimeout&&e.setTimeout,kn=Ut.ceil,Nn=Ut.floor,Rn=Wt.getOwnPropertySymbols,An=de?de.isBuffer:r,En=e.isFinite,Dn=Xt.join,Ln=gn(Wt.keys,Wt),Pn=Ut.max,Mn=Ut.min,qn=Vt.now,jn=e.parseInt,Fn=Ut.random,zn=Xt.reverse,Gn=Ti(e,"DataView"),Yn=Ti(e,"Map"),Vn=Ti(e,"Promise"),Hn=Ti(e,"Set"),Bn=Ti(e,"WeakMap"),Un=Ti(Wt,"create"),Wn=Bn&&new Bn,Kn={},$n=Ki(Gn),Zn=Ki(Yn),Xn=Ki(Vn),Jn=Ki(Hn),Qn=Ki(Bn),ta=be?be.prototype:r,ea=ta?ta.valueOf:r,na=ta?ta.toString:r;function aa(t){if(fs(t)&&!es(t)&&!(t instanceof sa)){if(t instanceof oa)return t;if(ee.call(t,"__wrapped__"))return $i(t)}return new oa(t)}var ra=function(){function t(){}return function(e){if(!ds(e))return{};if(Se)return Se(e);t.prototype=e;var n=new t;return t.prototype=r,n}}();function ia(){}function oa(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=r}function sa(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=N,this.__views__=[]}function ua(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function wa(t,e,n,a,i,o){var s,d=e&u,f=e&c,p=e&l;if(n&&(s=i?n(t,a,i,o):n(t)),s!==r)return s;if(!ds(t))return t;var h=es(t);if(h){if(s=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&ee.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!d)return zr(t,s)}else{var g=Oi(t),m=g==z||g==G;if(is(t))return Lr(t,d);if(g==B||g==D||m&&!i){if(s=f||m?{}:Ci(t),!d)return f?function(t,e){return Gr(t,Si(t),e)}(t,function(e,n){return e&&Gr(t,Vs(t),e)}(s)):function(t,e){return Gr(t,wi(t),e)}(t,va(s,t))}else{if(!me[g])return i?t:{};s=function(t,e,n){var a,r,i=t.constructor;switch(e){case Q:return Pr(t);case M:case q:return new i(+t);case tt:return function(t,e){var n=e?Pr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case et:case nt:case at:case rt:case it:case ot:case st:case ut:case ct:return Mr(t,n);case Y:return new i;case V:case $:return new i(t);case W:return(r=new(a=t).constructor(a.source,Lt.exec(a))).lastIndex=a.lastIndex,r;case K:return new i;case Z:return ea?Wt(ea.call(t)):{}}}(t,g,d)}}o||(o=new fa);var b=o.get(t);if(b)return b;o.set(t,s),bs(t)?t.forEach(function(a){s.add(wa(a,e,n,a,t,o))}):ps(t)&&t.forEach(function(a,r){s.set(r,wa(a,e,n,r,t,o))});var y=h?r:(p?f?gi:hi:f?Vs:Ys)(t);return Me(y||t,function(a,r){y&&(a=t[r=a]),ma(s,r,wa(a,e,n,r,t,o))}),s}function Sa(t,e,n){var a=n.length;if(null==t)return!a;for(t=Wt(t);a--;){var i=n[a],o=t[i];if(o===r&&!(i in t)||!(0,e[i])(o))return!1}return!0}function Oa(t,e,n){if("function"!=typeof t)throw new Zt(o);return Gi(function(){t.apply(r,n)},e)}function Ia(t,e,n,a){var r=-1,o=Fe,s=!0,u=t.length,c=[],l=e.length;if(!u)return c;n&&(e=Ge(e,rn(n))),a?(o=ze,s=!1):e.length>=i&&(o=sn,s=!1,e=new da(e));t:for(;++r-1},ca.prototype.set=function(t,e){var n=this.__data__,a=ba(n,t);return a<0?(++this.size,n.push([t,e])):n[a][1]=e,this},la.prototype.clear=function(){this.size=0,this.__data__={hash:new ua,map:new(Yn||ca),string:new ua}},la.prototype.delete=function(t){var e=xi(this,t).delete(t);return this.size-=e?1:0,e},la.prototype.get=function(t){return xi(this,t).get(t)},la.prototype.has=function(t){return xi(this,t).has(t)},la.prototype.set=function(t,e){var n=xi(this,t),a=n.size;return n.set(t,e),this.size+=n.size==a?0:1,this},da.prototype.add=da.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},da.prototype.has=function(t){return this.__data__.has(t)},fa.prototype.clear=function(){this.__data__=new ca,this.size=0},fa.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},fa.prototype.get=function(t){return this.__data__.get(t)},fa.prototype.has=function(t){return this.__data__.has(t)},fa.prototype.set=function(t,e){var n=this.__data__;if(n instanceof ca){var a=n.__data__;if(!Yn||a.length0&&n(s)?e>1?Ea(s,e-1,n,a,r):Ye(r,s):a||(r[r.length]=s)}return r}var Da=Br(),La=Br(!0);function Pa(t,e){return t&&Da(t,e,Ys)}function Ma(t,e){return t&&La(t,e,Ys)}function qa(t,e){return je(e,function(e){return us(t[e])})}function ja(t,e){for(var n=0,a=(e=Rr(e,t)).length;null!=t&&ne}function Ya(t,e){return null!=t&&ee.call(t,e)}function Va(t,e){return null!=t&&e in Wt(t)}function Ha(t,e,n){for(var i=n?ze:Fe,o=t[0].length,s=t.length,u=s,c=a(s),l=1/0,d=[];u--;){var f=t[u];u&&e&&(f=Ge(f,rn(e))),l=Mn(f.length,l),c[u]=!n&&(e||o>=120&&f.length>=120)?new da(u&&f):r}f=t[0];var p=-1,h=c[0];t:for(;++p=s?u:u*("desc"==n[a]?-1:1)}return t.index-e.index}(t,e,n)});a--;)t[a]=t[a].value;return t}(Qa(t,function(t,n,r){return{criteria:Ge(e,function(e){return e(t)}),index:++a,value:t}}))}function ir(t,e,n){for(var a=-1,r=e.length,i={};++a-1;)s!==t&&Ce.call(s,u,1),Ce.call(t,u,1);return t}function sr(t,e){for(var n=t?e.length:0,a=n-1;n--;){var r=e[n];if(n==a||r!==i){var i=r;Ni(r)?Ce.call(t,r,1):Tr(t,r)}}return t}function ur(t,e){return t+Nn(Fn()*(e-t+1))}function cr(t,e){var n="";if(!t||e<1||e>I)return n;do{e%2&&(n+=t),(e=Nn(e/2))&&(t+=t)}while(e);return n}function lr(t,e){return Yi(qi(t,e,hu),t+"")}function dr(t,e,n,a){if(!ds(t))return t;for(var i=-1,o=(e=Rr(e,t)).length,s=o-1,u=t;null!=u&&++ii?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=a(i);++r>>1,o=t[i];null!==o&&!vs(o)&&(n?o<=e:o=i){var l=e?null:oi(t);if(l)return bn(l);s=!1,r=sn,c=new da}else c=e?[]:u;t:for(;++a=a?t:hr(t,e,n)}var Dr=On||function(t){return Te.clearTimeout(t)};function Lr(t,e){if(e)return t.slice();var n=t.length,a=_e?_e(n):new t.constructor(n);return t.copy(a),a}function Pr(t){var e=new t.constructor(t.byteLength);return new xe(e).set(new xe(t)),e}function Mr(t,e){var n=e?Pr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function qr(t,e){if(t!==e){var n=t!==r,a=null===t,i=t==t,o=vs(t),s=e!==r,u=null===e,c=e==e,l=vs(e);if(!u&&!l&&!o&&t>e||o&&s&&c&&!u&&!l||a&&s&&c||!n&&c||!i)return 1;if(!a&&!o&&!l&&t1?n[i-1]:r,s=i>2?n[2]:r;for(o=t.length>3&&"function"==typeof o?(i--,o):r,s&&Ri(n[0],n[1],s)&&(o=i<3?r:o,i=1),e=Wt(e);++a-1?i[o?e[s]:s]:r}}function Zr(t){return pi(function(e){var n=e.length,a=n,i=oa.prototype.thru;for(t&&e.reverse();a--;){var s=e[a];if("function"!=typeof s)throw new Zt(o);if(i&&!u&&"wrapper"==bi(s))var u=new oa([],!0)}for(a=u?a:n;++a1&&m.reverse(),f&&lu))return!1;var l=o.get(t);if(l&&o.get(e))return l==e;var p=-1,h=!0,g=n&f?new da:r;for(o.set(t,e),o.set(e,t);++p-1&&t%1==0&&t1?"& ":"")+e[a],e=e.join(n>2?", ":" "),t.replace(kt,"{\n/* [wrapped with "+e+"] */\n")}(a,function(t,e){return Me(E,function(n){var a="_."+n[0];e&n[1]&&!Fe(t,a)&&t.push(a)}),t.sort()}(function(t){var e=t.match(Nt);return e?e[1].split(Rt):[]}(a),n)))}function Hi(t){var e=0,n=0;return function(){var a=qn(),i=S-(a-n);if(n=a,i>0){if(++e>=w)return arguments[0]}else e=0;return t.apply(r,arguments)}}function Bi(t,e){var n=-1,a=t.length,i=a-1;for(e=e===r?a:e;++n1?t[e-1]:r;return n="function"==typeof n?(t.pop(),n):r,mo(t,n)});function wo(t){var e=aa(t);return e.__chain__=!0,e}function So(t,e){return e(t)}var Oo=pi(function(t){var e=t.length,n=e?t[0]:0,a=this.__wrapped__,i=function(e){return _a(e,t)};return!(e>1||this.__actions__.length)&&a instanceof sa&&Ni(n)?((a=a.slice(n,+n+(e?1:0))).__actions__.push({func:So,args:[i],thisArg:r}),new oa(a,this.__chain__).thru(function(t){return e&&!t.length&&t.push(r),t})):this.thru(i)}),Io=Yr(function(t,e,n){ee.call(t,n)?++t[n]:xa(t,n,1)}),Co=$r(Qi),ko=$r(to);function No(t,e){return(es(t)?Me:Ca)(t,vi(e,3))}function Ro(t,e){return(es(t)?function(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}:ka)(t,vi(e,3))}var Ao=Yr(function(t,e,n){ee.call(t,n)?t[n].push(e):xa(t,n,[e])}),Eo=lr(function(t,e,n){var r=-1,i="function"==typeof e,o=as(t)?a(t.length):[];return Ca(t,function(t){o[++r]=i?Le(e,t,n):Ba(t,e,n)}),o}),Do=Yr(function(t,e,n){xa(t,n,e)});function Lo(t,e){return(es(t)?Ge:Qa)(t,vi(e,3))}var Po=Yr(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]}),Mo=lr(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Ri(t,e[0],e[1])?e=[]:n>2&&Ri(e[0],e[1],e[2])&&(e=[e[0]]),rr(t,Ea(e,1),[])}),qo=In||function(){return Te.Date.now()};function jo(t,e,n){return e=n?r:e,ui(t,x,r,r,r,r,e=t&&null==e?t.length:e)}function Fo(t,e){var n;if("function"!=typeof e)throw new Zt(o);return t=Os(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=r),n}}var zo=lr(function(t,e,n){var a=p;if(n.length){var r=mn(n,yi(zo));a|=y}return ui(t,a,e,n,r)}),Go=lr(function(t,e,n){var a=p|h;if(n.length){var r=mn(n,yi(Go));a|=y}return ui(e,a,t,n,r)});function Yo(t,e,n){var a,i,s,u,c,l,d=0,f=!1,p=!1,h=!0;if("function"!=typeof t)throw new Zt(o);function g(e){var n=a,o=i;return a=i=r,d=e,u=t.apply(o,n)}function m(t){var n=t-l;return l===r||n>=e||n<0||p&&t-d>=s}function b(){var t=qo();if(m(t))return y(t);c=Gi(b,function(t){var n=e-(t-l);return p?Mn(n,s-(t-d)):n}(t))}function y(t){return c=r,h&&a?g(t):(a=i=r,u)}function v(){var t=qo(),n=m(t);if(a=arguments,i=this,l=t,n){if(c===r)return function(t){return d=t,c=Gi(b,e),f?g(t):u}(l);if(p)return Dr(c),c=Gi(b,e),g(l)}return c===r&&(c=Gi(b,e)),u}return e=Cs(e)||0,ds(n)&&(f=!!n.leading,s=(p="maxWait"in n)?Pn(Cs(n.maxWait)||0,e):s,h="trailing"in n?!!n.trailing:h),v.cancel=function(){c!==r&&Dr(c),d=0,a=l=i=c=r},v.flush=function(){return c===r?u:y(qo())},v}var Vo=lr(function(t,e){return Oa(t,1,e)}),Ho=lr(function(t,e,n){return Oa(t,Cs(e)||0,n)});function Bo(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Zt(o);var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],i=n.cache;if(i.has(r))return i.get(r);var o=t.apply(this,a);return n.cache=i.set(r,o)||i,o};return n.cache=new(Bo.Cache||la),n}function Uo(t){if("function"!=typeof t)throw new Zt(o);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Bo.Cache=la;var Wo=Ar(function(t,e){var n=(e=1==e.length&&es(e[0])?Ge(e[0],rn(vi())):Ge(Ea(e,1),rn(vi()))).length;return lr(function(a){for(var r=-1,i=Mn(a.length,n);++r=e}),ts=Ua(function(){return arguments}())?Ua:function(t){return fs(t)&&ee.call(t,"callee")&&!Ie.call(t,"callee")},es=a.isArray,ns=ke?rn(ke):function(t){return fs(t)&&za(t)==Q};function as(t){return null!=t&&ls(t.length)&&!us(t)}function rs(t){return fs(t)&&as(t)}var is=An||Cu,os=Ne?rn(Ne):function(t){return fs(t)&&za(t)==q};function ss(t){if(!fs(t))return!1;var e=za(t);return e==F||e==j||"string"==typeof t.message&&"string"==typeof t.name&&!gs(t)}function us(t){if(!ds(t))return!1;var e=za(t);return e==z||e==G||e==P||e==U}function cs(t){return"number"==typeof t&&t==Os(t)}function ls(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=I}function ds(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function fs(t){return null!=t&&"object"==typeof t}var ps=Re?rn(Re):function(t){return fs(t)&&Oi(t)==Y};function hs(t){return"number"==typeof t||fs(t)&&za(t)==V}function gs(t){if(!fs(t)||za(t)!=B)return!1;var e=we(t);if(null===e)return!0;var n=ee.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&te.call(n)==ie}var ms=Ae?rn(Ae):function(t){return fs(t)&&za(t)==W},bs=Ee?rn(Ee):function(t){return fs(t)&&Oi(t)==K};function ys(t){return"string"==typeof t||!es(t)&&fs(t)&&za(t)==$}function vs(t){return"symbol"==typeof t||fs(t)&&za(t)==Z}var xs=De?rn(De):function(t){return fs(t)&&ls(t.length)&&!!ge[za(t)]},_s=ai(Ja),Ts=ai(function(t,e){return t<=e});function ws(t){if(!t)return[];if(as(t))return ys(t)?xn(t):zr(t);if(tn&&t[tn])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[tn]());var e=Oi(t);return(e==Y?hn:e==K?bn:Xs)(t)}function Ss(t){return t?(t=Cs(t))===O||t===-O?(t<0?-1:1)*C:t==t?t:0:0===t?t:0}function Os(t){var e=Ss(t),n=e%1;return e==e?n?e-n:e:0}function Is(t){return t?Ta(Os(t),0,N):0}function Cs(t){if("number"==typeof t)return t;if(vs(t))return k;if(ds(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=ds(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Ot,"");var n=Mt.test(t);return n||jt.test(t)?ve(t.slice(2),n?2:8):Pt.test(t)?k:+t}function ks(t){return Gr(t,Vs(t))}function Ns(t){return null==t?"":xr(t)}var Rs=Vr(function(t,e){if(Li(e)||as(e))Gr(e,Ys(e),t);else for(var n in e)ee.call(e,n)&&ma(t,n,e[n])}),As=Vr(function(t,e){Gr(e,Vs(e),t)}),Es=Vr(function(t,e,n,a){Gr(e,Vs(e),t,a)}),Ds=Vr(function(t,e,n,a){Gr(e,Ys(e),t,a)}),Ls=pi(_a),Ps=lr(function(t,e){t=Wt(t);var n=-1,a=e.length,i=a>2?e[2]:r;for(i&&Ri(e[0],e[1],i)&&(a=1);++n1),e}),Gr(t,gi(t),n),a&&(n=wa(n,u|c|l,di));for(var r=e.length;r--;)Tr(n,e[r]);return n}),Ws=pi(function(t,e){return null==t?{}:function(t,e){return ir(t,e,function(e,n){return js(t,n)})}(t,e)});function Ks(t,e){if(null==t)return{};var n=Ge(gi(t),function(t){return[t]});return e=vi(e),ir(t,n,function(t,n){return e(t,n[0])})}var $s=si(Ys),Zs=si(Vs);function Xs(t){return null==t?[]:on(t,Ys(t))}var Js=Wr(function(t,e,n){return e=e.toLowerCase(),t+(n?Qs(e):e)});function Qs(t){return su(Ns(t).toLowerCase())}function tu(t){return(t=Ns(t))&&t.replace(zt,ln).replace(ue,"")}var eu=Wr(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),nu=Wr(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),au=Ur("toLowerCase"),ru=Wr(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}),iu=Wr(function(t,e,n){return t+(n?" ":"")+su(e)}),ou=Wr(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),su=Ur("toUpperCase");function uu(t,e,n){return t=Ns(t),(e=n?r:e)===r?function(t){return fe.test(t)}(t)?function(t){return t.match(le)||[]}(t):function(t){return t.match(At)||[]}(t):t.match(e)||[]}var cu=lr(function(t,e){try{return Le(t,r,e)}catch(n){return ss(n)?n:new Ht(n)}}),lu=pi(function(t,e){return Me(e,function(e){e=Wi(e),xa(t,e,zo(t[e],t))}),t});function du(t){return function(){return t}}var fu=Zr(),pu=Zr(!0);function hu(t){return t}function gu(t){return Za("function"==typeof t?t:wa(t,u))}var mu=lr(function(t,e){return function(n){return Ba(n,t,e)}}),bu=lr(function(t,e){return function(n){return Ba(t,n,e)}});function yu(t,e,n){var a=Ys(e),r=qa(e,a);null!=n||ds(e)&&(r.length||!a.length)||(n=e,e=t,t=this,r=qa(e,Ys(e)));var i=!(ds(n)&&"chain"in n&&!n.chain),o=us(t);return Me(r,function(n){var a=e[n];t[n]=a,o&&(t.prototype[n]=function(){var e=this.__chain__;if(i||e){var n=t(this.__wrapped__);return(n.__actions__=zr(this.__actions__)).push({func:a,args:arguments,thisArg:t}),n.__chain__=e,n}return a.apply(t,Ye([this.value()],arguments))})}),t}function vu(){}var xu=ti(Ge),_u=ti(qe),Tu=ti(Be);function wu(t){return Ai(t)?Qe(Wi(t)):function(t){return function(e){return ja(e,t)}}(t)}var Su=ni(),Ou=ni(!0);function Iu(){return[]}function Cu(){return!1}var ku,Nu=Qr(function(t,e){return t+e},0),Ru=ii("ceil"),Au=Qr(function(t,e){return t/e},1),Eu=ii("floor"),Du=Qr(function(t,e){return t*e},1),Lu=ii("round"),Pu=Qr(function(t,e){return t-e},0);return aa.after=function(t,e){if("function"!=typeof e)throw new Zt(o);return t=Os(t),function(){if(--t<1)return e.apply(this,arguments)}},aa.ary=jo,aa.assign=Rs,aa.assignIn=As,aa.assignInWith=Es,aa.assignWith=Ds,aa.at=Ls,aa.before=Fo,aa.bind=zo,aa.bindAll=lu,aa.bindKey=Go,aa.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return es(t)?t:[t]},aa.chain=wo,aa.chunk=function(t,e,n){e=(n?Ri(t,e,n):e===r)?1:Pn(Os(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var o=0,s=0,u=a(kn(i/e));oi?0:i+n),(a=a===r||a>i?i:Os(a))<0&&(a+=i),a=n>a?0:Is(a);n>>0)?(t=Ns(t))&&("string"==typeof e||null!=e&&!ms(e))&&!(e=xr(e))&&pn(t)?Er(xn(t),0,n):t.split(e,n):[]},aa.spread=function(t,e){if("function"!=typeof t)throw new Zt(o);return e=null==e?0:Pn(Os(e),0),lr(function(n){var a=n[e],r=Er(n,0,e);return a&&Ye(r,a),Le(t,this,r)})},aa.tail=function(t){var e=null==t?0:t.length;return e?hr(t,1,e):[]},aa.take=function(t,e,n){return t&&t.length?hr(t,0,(e=n||e===r?1:Os(e))<0?0:e):[]},aa.takeRight=function(t,e,n){var a=null==t?0:t.length;return a?hr(t,(e=a-(e=n||e===r?1:Os(e)))<0?0:e,a):[]},aa.takeRightWhile=function(t,e){return t&&t.length?Sr(t,vi(e,3),!1,!0):[]},aa.takeWhile=function(t,e){return t&&t.length?Sr(t,vi(e,3)):[]},aa.tap=function(t,e){return e(t),t},aa.throttle=function(t,e,n){var a=!0,r=!0;if("function"!=typeof t)throw new Zt(o);return ds(n)&&(a="leading"in n?!!n.leading:a,r="trailing"in n?!!n.trailing:r),Yo(t,e,{leading:a,maxWait:e,trailing:r})},aa.thru=So,aa.toArray=ws,aa.toPairs=$s,aa.toPairsIn=Zs,aa.toPath=function(t){return es(t)?Ge(t,Wi):vs(t)?[t]:zr(Ui(Ns(t)))},aa.toPlainObject=ks,aa.transform=function(t,e,n){var a=es(t),r=a||is(t)||xs(t);if(e=vi(e,4),null==n){var i=t&&t.constructor;n=r?a?new i:[]:ds(t)&&us(i)?ra(we(t)):{}}return(r?Me:Pa)(t,function(t,a,r){return e(n,t,a,r)}),n},aa.unary=function(t){return jo(t,1)},aa.union=fo,aa.unionBy=po,aa.unionWith=ho,aa.uniq=function(t){return t&&t.length?_r(t):[]},aa.uniqBy=function(t,e){return t&&t.length?_r(t,vi(e,2)):[]},aa.uniqWith=function(t,e){return e="function"==typeof e?e:r,t&&t.length?_r(t,r,e):[]},aa.unset=function(t,e){return null==t||Tr(t,e)},aa.unzip=go,aa.unzipWith=mo,aa.update=function(t,e,n){return null==t?t:wr(t,e,Nr(n))},aa.updateWith=function(t,e,n,a){return a="function"==typeof a?a:r,null==t?t:wr(t,e,Nr(n),a)},aa.values=Xs,aa.valuesIn=function(t){return null==t?[]:on(t,Vs(t))},aa.without=bo,aa.words=uu,aa.wrap=function(t,e){return Ko(Nr(e),t)},aa.xor=yo,aa.xorBy=vo,aa.xorWith=xo,aa.zip=_o,aa.zipObject=function(t,e){return Cr(t||[],e||[],ma)},aa.zipObjectDeep=function(t,e){return Cr(t||[],e||[],dr)},aa.zipWith=To,aa.entries=$s,aa.entriesIn=Zs,aa.extend=As,aa.extendWith=Es,yu(aa,aa),aa.add=Nu,aa.attempt=cu,aa.camelCase=Js,aa.capitalize=Qs,aa.ceil=Ru,aa.clamp=function(t,e,n){return n===r&&(n=e,e=r),n!==r&&(n=(n=Cs(n))==n?n:0),e!==r&&(e=(e=Cs(e))==e?e:0),Ta(Cs(t),e,n)},aa.clone=function(t){return wa(t,l)},aa.cloneDeep=function(t){return wa(t,u|l)},aa.cloneDeepWith=function(t,e){return wa(t,u|l,e="function"==typeof e?e:r)},aa.cloneWith=function(t,e){return wa(t,l,e="function"==typeof e?e:r)},aa.conformsTo=function(t,e){return null==e||Sa(t,e,Ys(e))},aa.deburr=tu,aa.defaultTo=function(t,e){return null==t||t!=t?e:t},aa.divide=Au,aa.endsWith=function(t,e,n){t=Ns(t),e=xr(e);var a=t.length,i=n=n===r?a:Ta(Os(n),0,a);return(n-=e.length)>=0&&t.slice(n,i)==e},aa.eq=Xo,aa.escape=function(t){return(t=Ns(t))&&mt.test(t)?t.replace(ht,dn):t},aa.escapeRegExp=function(t){return(t=Ns(t))&&St.test(t)?t.replace(wt,"\\$&"):t},aa.every=function(t,e,n){var a=es(t)?qe:Na;return n&&Ri(t,e,n)&&(e=r),a(t,vi(e,3))},aa.find=Co,aa.findIndex=Qi,aa.findKey=function(t,e){return We(t,vi(e,3),Pa)},aa.findLast=ko,aa.findLastIndex=to,aa.findLastKey=function(t,e){return We(t,vi(e,3),Ma)},aa.floor=Eu,aa.forEach=No,aa.forEachRight=Ro,aa.forIn=function(t,e){return null==t?t:Da(t,vi(e,3),Vs)},aa.forInRight=function(t,e){return null==t?t:La(t,vi(e,3),Vs)},aa.forOwn=function(t,e){return t&&Pa(t,vi(e,3))},aa.forOwnRight=function(t,e){return t&&Ma(t,vi(e,3))},aa.get=qs,aa.gt=Jo,aa.gte=Qo,aa.has=function(t,e){return null!=t&&Ii(t,e,Ya)},aa.hasIn=js,aa.head=no,aa.identity=hu,aa.includes=function(t,e,n,a){t=as(t)?t:Xs(t),n=n&&!a?Os(n):0;var r=t.length;return n<0&&(n=Pn(r+n,0)),ys(t)?n<=r&&t.indexOf(e,n)>-1:!!r&&$e(t,e,n)>-1},aa.indexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=null==n?0:Os(n);return r<0&&(r=Pn(a+r,0)),$e(t,e,r)},aa.inRange=function(t,e,n){return e=Ss(e),n===r?(n=e,e=0):n=Ss(n),function(t,e,n){return t>=Mn(e,n)&&t=-I&&t<=I},aa.isSet=bs,aa.isString=ys,aa.isSymbol=vs,aa.isTypedArray=xs,aa.isUndefined=function(t){return t===r},aa.isWeakMap=function(t){return fs(t)&&Oi(t)==J},aa.isWeakSet=function(t){return fs(t)&&"[object WeakSet]"==za(t)},aa.join=function(t,e){return null==t?"":Dn.call(t,e)},aa.kebabCase=eu,aa.last=oo,aa.lastIndexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var i=a;return n!==r&&(i=(i=Os(n))<0?Pn(a+i,0):Mn(i,a-1)),e==e?function(t,e,n){for(var a=n+1;a--;)if(t[a]===e)return a;return a}(t,e,i):Ke(t,Xe,i,!0)},aa.lowerCase=nu,aa.lowerFirst=au,aa.lt=_s,aa.lte=Ts,aa.max=function(t){return t&&t.length?Ra(t,hu,Ga):r},aa.maxBy=function(t,e){return t&&t.length?Ra(t,vi(e,2),Ga):r},aa.mean=function(t){return Je(t,hu)},aa.meanBy=function(t,e){return Je(t,vi(e,2))},aa.min=function(t){return t&&t.length?Ra(t,hu,Ja):r},aa.minBy=function(t,e){return t&&t.length?Ra(t,vi(e,2),Ja):r},aa.stubArray=Iu,aa.stubFalse=Cu,aa.stubObject=function(){return{}},aa.stubString=function(){return""},aa.stubTrue=function(){return!0},aa.multiply=Du,aa.nth=function(t,e){return t&&t.length?ar(t,Os(e)):r},aa.noConflict=function(){return Te._===this&&(Te._=oe),this},aa.noop=vu,aa.now=qo,aa.pad=function(t,e,n){t=Ns(t);var a=(e=Os(e))?vn(t):0;if(!e||a>=e)return t;var r=(e-a)/2;return ei(Nn(r),n)+t+ei(kn(r),n)},aa.padEnd=function(t,e,n){t=Ns(t);var a=(e=Os(e))?vn(t):0;return e&&ae){var a=t;t=e,e=a}if(n||t%1||e%1){var i=Fn();return Mn(t+i*(e-t+ye("1e-"+((i+"").length-1))),e)}return ur(t,e)},aa.reduce=function(t,e,n){var a=es(t)?Ve:en,r=arguments.length<3;return a(t,vi(e,4),n,r,Ca)},aa.reduceRight=function(t,e,n){var a=es(t)?He:en,r=arguments.length<3;return a(t,vi(e,4),n,r,ka)},aa.repeat=function(t,e,n){return e=(n?Ri(t,e,n):e===r)?1:Os(e),cr(Ns(t),e)},aa.replace=function(){var t=arguments,e=Ns(t[0]);return t.length<3?e:e.replace(t[1],t[2])},aa.result=function(t,e,n){var a=-1,i=(e=Rr(e,t)).length;for(i||(i=1,t=r);++aI)return[];var n=N,a=Mn(t,N);e=vi(e),t-=N;for(var r=an(a,e);++n=o)return t;var u=n-vn(a);if(u<1)return a;var c=s?Er(s,0,u).join(""):t.slice(0,u);if(i===r)return c+a;if(s&&(u+=c.length-u),ms(i)){if(t.slice(u).search(i)){var l,d=c;for(i.global||(i=Kt(i.source,Ns(Lt.exec(i))+"g")),i.lastIndex=0;l=i.exec(d);)var f=l.index;c=c.slice(0,f===r?u:f)}}else if(t.indexOf(xr(i),u)!=u){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+a},aa.unescape=function(t){return(t=Ns(t))&>.test(t)?t.replace(pt,_n):t},aa.uniqueId=function(t){var e=++ne;return Ns(t)+e},aa.upperCase=ou,aa.upperFirst=su,aa.each=No,aa.eachRight=Ro,aa.first=no,yu(aa,(ku={},Pa(aa,function(t,e){ee.call(aa.prototype,e)||(ku[e]=t)}),ku),{chain:!1}),aa.VERSION="4.17.14",Me(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){aa[t].placeholder=aa}),Me(["drop","take"],function(t,e){sa.prototype[t]=function(n){n=n===r?1:Pn(Os(n),0);var a=this.__filtered__&&!e?new sa(this):this.clone();return a.__filtered__?a.__takeCount__=Mn(n,a.__takeCount__):a.__views__.push({size:Mn(n,N),type:t+(a.__dir__<0?"Right":"")}),a},sa.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Me(["filter","map","takeWhile"],function(t,e){var n=e+1,a=1==n||3==n;sa.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:vi(t,3),type:n}),e.__filtered__=e.__filtered__||a,e}}),Me(["head","last"],function(t,e){var n="take"+(e?"Right":"");sa.prototype[t]=function(){return this[n](1).value()[0]}}),Me(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");sa.prototype[t]=function(){return this.__filtered__?new sa(this):this[n](1)}}),sa.prototype.compact=function(){return this.filter(hu)},sa.prototype.find=function(t){return this.filter(t).head()},sa.prototype.findLast=function(t){return this.reverse().find(t)},sa.prototype.invokeMap=lr(function(t,e){return"function"==typeof t?new sa(this):this.map(function(n){return Ba(n,t,e)})}),sa.prototype.reject=function(t){return this.filter(Uo(vi(t)))},sa.prototype.slice=function(t,e){t=Os(t);var n=this;return n.__filtered__&&(t>0||e<0)?new sa(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==r&&(n=(e=Os(e))<0?n.dropRight(-e):n.take(e-t)),n)},sa.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},sa.prototype.toArray=function(){return this.take(N)},Pa(sa.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),a=/^(?:head|last)$/.test(e),i=aa[a?"take"+("last"==e?"Right":""):e],o=a||/^find/.test(e);i&&(aa.prototype[e]=function(){var e=this.__wrapped__,s=a?[1]:arguments,u=e instanceof sa,c=s[0],l=u||es(e),d=function(t){var e=i.apply(aa,Ye([t],s));return a&&f?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(u=l=!1);var f=this.__chain__,p=o&&!f,h=u&&!this.__actions__.length;if(!o&&l){e=h?e:new sa(this);var g=t.apply(e,s);return g.__actions__.push({func:So,args:[d],thisArg:r}),new oa(g,f)}return p&&h?t.apply(this,s):(g=this.thru(d),p?a?g.value()[0]:g.value():g)})}),Me(["pop","push","shift","sort","splice","unshift"],function(t){var e=Xt[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",a=/^(?:pop|shift)$/.test(t);aa.prototype[t]=function(){var t=arguments;if(a&&!this.__chain__){var r=this.value();return e.apply(es(r)?r:[],t)}return this[n](function(n){return e.apply(es(n)?n:[],t)})}}),Pa(sa.prototype,function(t,e){var n=aa[e];if(n){var a=n.name+"";ee.call(Kn,a)||(Kn[a]=[]),Kn[a].push({name:e,func:n})}}),Kn[Xr(r,h).name]=[{name:"wrapper",func:r}],sa.prototype.clone=function(){var t=new sa(this.__wrapped__);return t.__actions__=zr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=zr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=zr(this.__views__),t},sa.prototype.reverse=function(){if(this.__filtered__){var t=new sa(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},sa.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=es(t),a=e<0,r=n?t.length:0,i=function(t,e,n){for(var a=-1,r=n.length;++a=this.__values__.length;return{done:t,value:t?r:this.__values__[this.__index__++]}},aa.prototype.plant=function(t){for(var e,n=this;n instanceof ia;){var a=$i(n);a.__index__=0,a.__values__=r,e?i.__wrapped__=a:e=a;var i=a;n=n.__wrapped__}return i.__wrapped__=t,e},aa.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof sa){var e=t;return this.__actions__.length&&(e=new sa(this)),(e=e.reverse()).__actions__.push({func:So,args:[lo],thisArg:r}),new oa(e,this.__chain__)}return this.thru(lo)},aa.prototype.toJSON=aa.prototype.valueOf=aa.prototype.value=function(){return Or(this.__wrapped__,this.__actions__)},aa.prototype.first=aa.prototype.head,tn&&(aa.prototype[tn]=function(){return this}),aa}();Te._=Tn,(a=(function(){return Tn}).call(e,n,e,t))===r||(t.exports=a)}).call(this)}).call(this,n("YuTi")(t))},Lwhh:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DataTableColumnHeaderDirective=function(){return a([r.Directive({selector:"[ngx-datatable-header-template]"})],function(t){this.template=t})}()},"M/6F":function(t,e,n){"use strict";var a=n("CcnG"),r=n("IZUe"),i=n("MdoF"),o=n("lTVp"),s=n("Ip0R");n("NDi4"),n.d(e,"a",function(){return u}),n.d(e,"b",function(){return l});var u=a["\u0275crt"]({encapsulation:0,styles:[[".error-panel-alert-icon[_ngcontent-%COMP%]{vertical-align:top;padding-right:15px}.error-panel-alert-title[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,2,"button",[["autofocus",""],["class","btn btn-sm btn-default tc_backButton"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.backAction.emit()&&a),a},null,null)),a["\u0275did"](2,4210688,null,0,r.a,[a.ElementRef],null,null),(t()(),a["\u0275ted"](-1,null,["Back"]))],null,null)}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,11,"alert",[["type","danger"]],null,null,null,i.c,i.b)),a["\u0275did"](1,114688,null,0,o.a,[o.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["\u0275eld"](2,0,null,0,9,"table",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"td",[["class","error-panel-alert-icon"],["rowspan","2"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-3x fa-times-circle alert-danger"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,1,"td",[["class","error-panel-alert-title"]],null,null,null,null,null)),(t()(),a["\u0275ted"](8,null,[" "," "])),(t()(),a["\u0275eld"](9,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](10,0,null,null,1,"td",[["class","error-panel-alert-text"]],null,null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](13,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"danger"),t(e,13,0,n.backAction.observers.length>0)},function(t,e){t(e,8,0,e.component.title)})}},M9eX:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("DtyJ"),s=(n("czA5"),n("ahDk"));e.ResizeableDirective=function(){function t(t,e){this.renderer=e,this.resizeEnabled=!0,this.resize=new i.EventEmitter,this.resizing=!1,this.element=t.nativeElement}return t.prototype.ngAfterViewInit=function(){var t=this.renderer,e=t.createElement("span");t.addClass(e,this.resizeEnabled?"resize-handle":"resize-handle--not-resizable"),t.appendChild(this.element,e)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this._destroySubscription(),this.resize.emit(this.element.clientWidth))},t.prototype.onMousedown=function(t){var e=this,n=t.target.classList.contains("resize-handle"),a=this.element.clientWidth,r=t.screenX;if(n){t.stopPropagation(),this.resizing=!0;var i=o.fromEvent(document,"mouseup");this.subscription=i.subscribe(function(t){return e.onMouseup()});var u=o.fromEvent(document,"mousemove").pipe(s.takeUntil(i)).subscribe(function(t){return e.move(t,a,r)});this.subscription.add(u)}},t.prototype.move=function(t,e,n){var a=e+(t.screenX-n);(!this.minWidth||a>=this.minWidth)&&(!this.maxWidth||a<=this.maxWidth)&&(this.element.style.width=a+"px")},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeEnabled",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"resize",void 0),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMousedown",null),a([i.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}})],t)}()},MGBS:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.destination.next(e)},e.prototype.notifyError=function(t,e){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.destination.complete()},e}(n("FFOo").a)},MaEZ:function(t,e){t.exports='\n \n \n \n Toggle navigation\n Zobraz./skr\xfdt navigaci\n \n \n Dashboard\n P\u0159ehled\n \n \n Cluster\n Klastr\n \n \n Hosts\n Stroje\n \n \n Monitors\n Monitory\n \n \n OSDs\n OSD\n \n \n Configuration\n Nastaven\xed\n \n \n CRUSH map\n CRUSH mapa\n \n \n Manager modules\n Moduly spr\xe1vy\n \n \n Logs\n Z\xe1znamy ud\xe1lost\xed\n \n \n Alerts\n V\xfdstrahy\n \n \n Silences\n Silences\n \n \n Pools\n Fondy\n \n \n Block\n Blok\n \n \n Images\n Obrazy\n \n \n Mirroring\n Zrcadlen\xed\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Souborov\xe9 syst\xe9my\n \n \n Object Gateway\n Objektov\xe1 br\xe1na\n \n \n Daemons\n Procesy slu\u017eeb\n \n \n Users\n U\u017eivatel\xe9\n \n \n Buckets\n N\xe1doby\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Z\xedsk\xe1vaj\xed se data\n pro\n \n \n . \u010cekejte\u2026\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Zobrazuj\xed se data\n z mezipam\u011bti\n pro \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Neda\u0159\xed se na\u010d\xedst dat \n pro\n \n \n .\n Zkontrolujte zdrav\xed klastru.\n \n \n \n Back\n Zp\u011bt\n \n \n Select a Language\n Vyberte jazyk\n \n \n Loading panel data...\n Na\u010d\xedt\xe1n\xed \xfadaj\u016f panelu\u2026\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Nahl\xe9dn\u011bte do\n dokumentace\n , kde naleznete jak\n nastavit a zapnout funkci monitorov\xe1n\xed.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Grafana p\u0159ehled neexistuje. Pod\xedvejte se do\n dokumentace\n jak\n p\u0159idat p\u0159ehledy do Grafany.\n \n \n \n Grafana Time Picker\n Grafana Time Picker\n \n \n Reset Settings\n Resetovat nastaven\xed\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Data se nepoda\u0159ilo na\u010d\xedst\n \n \n selected\n vybr\xe1no\n X selected\n \n \n found\n nalezeno\n X found\n \n \n total\n celkem\n X total\n \n \n Edit\n Upravit\n \n \n Name\n N\xe1zev\n \n \n Description\n Popis\n \n \n Long description\n Podrobn\u011bj\u0161\xed popis\n \n \n Default\n V\xfdchoz\xed\n \n \n Daemon default\n V\xfdchoz\xed pro proces slu\u017eby\n \n \n Services\n Slu\u017eby\n \n \n Values\n Hodnoty\n \n \n The entered value is too high! It must not be greater than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 vysok\xe1! Nem\u016f\u017ee b\xfdt vy\u0161\u0161\xed ne\u017e \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 n\xedzk\xe1! Nem\u016f\u017ee b\xfdt ni\u017e\u0161\xed ne\u017e \n .\n \n \n \n Save\n Ulo\u017eit\n \n \n CRUSH map viewer\n prohl\xed\u017ee\u010d CRUSH mapy\n \n \n Hosts List\n Seznam stroj\u016f\n \n \n Overall Performance\n Celkov\xe1 v\xfdkonnost\n \n \n No entries found\n Nenalezeny \u017e\xe1dn\xe9 polo\u017eky\n \n \n Cluster Logs\n Z\xe1znamy ud\xe1lost\xed v klastra\n \n \n Audit Logs\n Auditn\xed z\xe1znamy ud\xe1lost\xed\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Na\u010d\xedt\xe1n\xed nastaven\xed\u2026\n \n \n The configuration could not be loaded.\n Toto nastaven\xed se nepoda\u0159ilo na\u010d\xedst.\n \n \n Edit Manager module\n Upravit modul spr\xe1vy\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Zadan\xe1 hodnota nen\xed platn\xe9 UUID, nap\u0159.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Je t\u0159eba, aby zadan\xe1 hodnota byla platnou IP adresou.\n \n \n This field is required.\n Tuto kolonku je t\u0159eba vyplnit.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n The entered value is too high! It must be lower or equal to \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n The entered value is too low! It must be greater or equal to \n .\n \n \n \n The entered value needs to be a number.\n Je t\u0159eba, aby zadan\xe1 hodnota byla \u010d\xedslo.\n \n \n The entered value needs to be a number or decimal.\n Je t\u0159eba, aby zadan\xe1 hodnota byla \u010d\xedslo nebo des\xedtkov\xe9.\n \n \n Update\n Aktualizovat\n \n \n Status\n Stav\n \n \n Cluster ID\n Identif. kastru\n \n \n monmap modified\n mapa monitor\u016f zm\u011bn\u011bna\n \n \n monmap epoch\n monmap epocha\n \n \n quorum con\n kv\xf3rum spojen\xed\n \n \n quorum mon\n kv\xf3rum monitor\n \n \n required con\n vy\u017eadov\xe1no spojen\xed\n \n \n required mon\n vy\u017eadov\xe1no monitor\u016f\n \n \n In Quorum\n V kv\xf3ru\n \n \n Not In Quorum\n Nen\xed v kv\xf3ru\n \n \n Cancel\n Storno\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Opravdu chcete ozna\u010den\xe9 \n \n ?\n \n \n \n Yes, I am sure.\n Ano, opravdu to chci.\n \n \n Cluster-wide OSD Flags\n P\u0159\xedznaky OSD pro cel\xfd klastr\n \n \n Submit\n Odeslat\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Pokro\u010dil\xe9\u2026\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorita obnoven\xed OSD\n \n \n Priority\n Priorita\n \n \n Customize priority values\n P\u0159izp\u016fsobit hodnoty priority\n \n \n This field is required!\n Tuto kolonku je t\u0159eba vyplnit!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 vysok\xe1, je t\u0159eba, aby nebyla vy\u0161\u0161\xed ne\u017e \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 n\xedzk\xe1! Je t\u0159eba, aby byla ni\u017e\u0161\xed ne\u017e \n .\n \n \n \n Reweight OSD\n Znovu vyv\xe1\u017eit OSD\n \n \n The value needs to be between 0 and 1.\n Je t\u0159eba, aby hodnota byla mezi 0 a 1.\n \n \n Reweight\n Znovu vyv\xe1\u017eit\n \n \n OSDs \n Scrub\n \n OSD \n kontrola\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, vybrat, 1 {Deep } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Chyst\xe1te se pou\u017e\xedt kontrolu na\n scrub to\n OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, vybrat, 1 {deep } }\n \n \n OSDs List\n Seznam OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n Pokud budete pokra\u010dovat, \n OSD \n \n \n \n \n bude ozna\u010deno\n \n \n \n The OSD is not safe to destroy!\n OSD nen\xed mo\u017en\xe9 bezpe\u010dn\u011b zlikvidovat!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n Pokud budete pokra\u010dovat,\n OSD \n \n bude \n \n \n .\n \n \n \n Details\n Podrobnosti\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Hodnota\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Zav\u0159\xedt\n \n \n Delete\n Smazat\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Zdrav\xed\n \n \n Statistics\n Statistiky\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Ohledn\u011b nastaven\xed a zapnut\xed funkce spr\xe1vy NFS Ganesha nahl\xe9dn\u011bte do \n dokumentace\n \n \n \n \n Clients\n Klienti\n \n \n Any client can access\n P\u0159istupovat m\u016f\u017ee libovoln\xfd klient\n \n \n Addresses\n Adresy\n \n \n Required field\n Vy\u017eadovan\xe1 kolonka\n \n \n Must contain one or more comma-separated values\n Je t\u0159eba, aby obsahovalo jednu nebo v\xedce \u010d\xe1rkou odd\u011blovan\xfdch hodnot\n \n \n For example:\n Nap\u0159\xedklad:\n \n \n Access Type\n Typ p\u0159\xedstupu\n \n \n Squash\n Squash\n \n \n Add clients\n P\u0159idat klienty\n \n \n Loading...\n Na\u010d\xedt\xe1n\xed\u2026\n \n \n -- No cluster available --\n -- \u017d\xe1dn\xfd klastr k dispozici --\n \n \n -- Select the cluster --\n -- Vyberte klastr --\n \n \n Add daemon\n P\u0159idat proces slu\u017eby\n \n \n Storage Backend\n Podp\u016frn\xe1 vrstva \xfalo\u017ei\u0161t\u011b\n \n \n -- No data pools available --\n -- \u017d\xe1dn\xe9 fondy k dispozici --\n \n \n -- Select the storage backend --\n -- Vyberte podp\u016frnou vrstvu \xfalo\u017ei\u0161t\u011b --\n \n \n Object Gateway User\n U\u017eivatel objektov\xe9 br\xe1ny\n \n \n -- No users available --\n -- \u017d\xe1dn\xed u\u017eivatel\xe9 k dispozici --\n \n \n -- Select the object gateway user --\n -- Vyberte u\u017eivatele br\xe1ny objekt\u016f --\n \n \n CephFS User ID\n Identif. u\u017eivatele CephFS\n \n \n -- No clients available --\n -- \u017d\xe1dn\xed klienti k dispozici --\n \n \n -- Select the cephx client --\n -- Vyberte cephx klienta --\n \n \n CephFS Name\n N\xe1zev CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Security Label\n \n \n Enable security label\n Enable security label\n \n \n CephFS Path\n Popis um\xedst\u011bn\xed CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n Je t\u0159eba, aby popis um\xedst\u011bn\xed za\u010d\xednal na \u201e/\u201c, za kter\xfdm n\xe1sleduje slovo\n \n \n New directory will be created\n Bude vytvo\u0159ena nov\xe1 slo\u017eka\n \n \n Path\n Popis um\xedst\u011bn\xed\n \n \n Path can only be a single \'/\' or a word\n Popis um\xedst\u011bn\xed m\u016f\u017ee b\xfdt pouze jedin\xe9 \u201e/\u201c nebo slovo\n \n \n New bucket will be created\n Bude vytvo\u0159ena nov\xe1 n\xe1doba\n \n \n NFS Protocol\n NFS protokol\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \u0161t\xedtek\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternativn\xed p\u0159\xedstup pro \n NFS v3\n p\u0159ipojen\xed (nem\u016f\u017ee za\u010d\xednat na /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n By using different Tag options, the same Path may be exported multiple times.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n By using different Pseudo options, the same Path may be exported multiple times.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u017d\xe1dn\xfd typ p\u0159\xedstupu k dispozici --\n \n \n -- Select the access type --\n -- Vyberte typ p\u0159\xedstupu --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- No squash available --\n \n \n --Select what kind of user id squashing is performed --\n --Select what kind of user id squashing is performed --\n \n \n Transport Protocol\n Transportn\xed protokol\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n V\xedtejte v Ceph!\n The welcome message on the login page\n \n \n Username is required\n Je t\u0159eba vyplnit u\u017eivatelsk\xe9 jm\xe9no\n \n \n Password is required\n Je t\u0159eba vyplnit heslo\n \n \n Login\n P\u0159ihl\xe1sit\n \n \n Sorry, the user does not exist in Ceph.\n Je n\xe1m l\xedto, u\u017eivatel v Ceph neexistuje.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Vr\xe1tit se na \n P\u0159ihla\u0161ovac\xed str\xe1nku\n . Budete odhl\xe1\u0161eni od poskytovatele identity kdy\u017e se pokus\xedte znovu p\u0159ihl\xe1sit.\n \n \n \n Forbidden\n Odep\u0159eno\n \n \n Sorry, you are not allowed to see what you were looking for.\n Omlouv\xe1me se, ale nem\xe1te opr\xe1vn\u011bn\xed zobrazit to, po \u010dem se poohl\xed\u017e\xedte.\n \n \n Sorry, we could not find what you were looking for\n Omlouv\xe1me se, nepoda\u0159ilo se naj\xedt to, po \u010dem se poohl\xed\u017e\xedte\n \n \n Remove all\n Odebrat v\u0161e\n \n \n Recent Notifications\n Ned\xe1vn\xe1 ozn\xe1men\xed\n \n \n There are no background tasks.\n Nejsou zde \u017e\xe1dn\xe9 \xfalohy na pozad\xed.\n \n \n Background Tasks\n \xdalohy na pozad\xed\n \n \n Help\n N\xe1pov\u011bda\n \n \n Documentation\n Dokumentace\n \n \n API\n Aplika\u010dn\xed program. rozhran\xed\n \n \n About\n O aplikaci\n \n \n Dashboard Settings\n Nastaven\xed p\u0159ehledu\n \n \n User management\n Spr\xe1va u\u017eivatel\u016f\n \n \n Logged in user\n P\u0159ihl\xe1\u0161en\xfd u\u017eivatel\n \n \n Signed in as\n \n \n \n \n P\u0159ihl\xe1\u0161eni jako\n \n \n \n \n \n \n Sign out\n Odhl\xe1sit\n \n \n Name...\n N\xe1zev\u2026\n \n \n The chosen name is already in use.\n Zvolen\xfd n\xe1zev u\u017e je pou\u017e\xedv\xe1n.\n \n \n Description...\n Popis\u2026\n \n \n Permissions\n Opr\xe1vn\u011bn\xed\n \n \n Roles\n Role\n \n \n Username\n U\u017eivatelsk\xe9 jm\xe9no\n \n \n Password\n Heslo\n \n \n Confirm password\n Potvrzen\xed zad\xe1n\xed hesla\n \n \n Password confirmation doesn\'t match the password.\n Zad\xe1n\xed hesla se neshoduj\xed.\n \n \n Full name\n Cel\xe9 jm\xe9no\n \n \n Email\n E-mail\n \n \n Invalid email.\n Neplatn\xfd e-mail.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Chyst\xe1te se odebrat opr\xe1vn\u011bn\xed \u201eu\u017eivatel \u010d\xedst/aktualizovat\u201c sv\xe9mu vlastn\xedmu \xfa\u010dtu.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Pokud budete pokra\u010dovat, nebudete nad\xe1le schopn\xed p\u0159id\xe1vat nebo nebo odeb\xedrat role \u017e\xe1dn\xe9mu z u\u017eivatel\u016f.\n \n \n Are you sure you want to continue?\n Opravdu chcete pokra\u010dovat?\n \n \n Performance counters not available\n V\xfdkonnostn\xed \u010d\xedta\u010de nejsou k dispozici\n \n \n Attributes (OSD map)\n Atributy (OSD mapa)\n \n \n Metadata not available\n Metadata nejsou k dispozici\n \n \n Metadata\n Metadata\n \n \n Performance counter\n V\xfdkonnostn\xed \u010d\xedta\u010d\n \n \n Histogram not available: \n \n \n Histogram nen\xed k dispozici: \n \n \n \n \n Writes\n Z\xe1pisy\n \n \n Reads\n \u010cten\xed\n \n \n Histogram\n Histogram\n \n \n Performance Details\n Podrobnosti o v\xfdkonnosti\n \n \n Current values\n St\xe1vaj\xedc\xed hodnoty\n \n \n Type\n Typ\n \n \n Min\n Min\n \n \n Max\n Max\n \n \n Flags\n P\u0159\xedznaky\n \n \n Source\n Zdroj\n \n \n Level\n \xdarove\u0148\n \n \n Can be updated at runtime (editable)\n Je mo\u017en\xe9 aktualizovat za provozu (upraviteln\xe9)\n \n \n Tags\n \u0160t\xedtky\n \n \n Enum values\n Vy\u010d\xedslit hodnoty\n \n \n See also\n Viz tak\xe9\n \n \n Cluster Status\n Stav klastru\n \n \n Manager Daemons\n Procesy slu\u017eby spr\xe1vy\n \n \n Object Gateways\n Objektov\xe9 br\xe1ny\n \n \n Metadata Servers\n Metadata servery\n \n \n iSCSI Gateways\n iSCSI br\xe1ny\n \n \n Client IOPS\n vst/v\xfdst. klienta\n \n \n Client Throughput\n Propustnost klienta\n \n \n Client Read/Write\n \u010cten\xed/z\xe1pis klienta\n \n \n Recovery Throughput\n Propustnost zotaven\xed\n \n \n Scrub\n Kontrola\n \n \n Performance\n V\xfdkonnost\n \n \n Raw Capacity\n Hol\xe1 kapacita\n \n \n Objects\n Objekty\n \n \n PGs per OSD\n Skupin um\xedst\u011bn\xed na OSD\n \n \n PG Status\n Stav skupiny um\xedst\u011bn\xed\n \n \n Capacity\n Kapacita\n \n \n \n \n See \n Logs\n for more details.\n \n Dal\u0161\xed podrobnosti \n \n naleznete v \n z\xe1znamech ud\xe1lost\xed\n .\n \n \n \n Ranks\n Hodnocen\xed\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Klienti: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n P\u0159esunout obraz do ko\u0161e\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Pro p\u0159esunut\xed \n \n /\n \n do ko\u0161e,\n klikn\u011bte na \n P\u0159esunout obraz\n . Voliteln\u011b je mo\u017en\xe9 zvolit datum skon\u010den\xed platnosti.\n \n \n \n Protection expires at\n Platnost ochrany skon\u010d\xed v\n \n \n NOT PROTECTED\n NECHR\xc1N\u011aNO\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Chybn\xfd form\xe1t data. Pou\u017eijte \u201eRRRR-MM-DD HH:mm:ss\u201c.\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Platnost ochrany u\u017e skon\u010dila. Zvolte budouc\xed datum nebo nevypl\u0148ujte.\n \n \n Move Image\n P\u0159esunout obraz\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n P\u0159ehled\n \n \n Targets\n C\xedle\n \n \n Discovery Authentication\n Ov\u011b\u0159ov\xe1n\xed pro objevov\xe1n\xed\n \n \n User\n U\u017eivatele\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n U\u017eivatel pro vz\xe1jemn\xe9 ov\u011b\u0159en\xed\n \n \n Mutual Password\n Heslo pro vz\xe1jemn\xe9 ov\u011b\u0159en\xed\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Pod\xedvejte se do \n dokumentace\n \n jak nastavit a zapnout funkci spr\xe1vy iSCSI c\xedl\u016f.\n \n \n \n Available information:\n Informace k dispozici:\n \n \n iSCSI Targets not available\n iSCSI c\xedl nen\xed k dispozici\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n K dispozici pouze pro RBD obrazy se zapnut\xfdm \n fast-diff\n \n \n \n \n Pool\n Fond\n \n \n Data Pool\n Datov\xfd fond\n \n \n Created\n Vytvo\u0159eno\n \n \n Size\n Velikost\n \n \n Object size\n Velikost objektu\n \n \n Features\n Funkce\n \n \n Provisioned\n Poskytov\xe1no\n \n \n N/A\n N/A\n \n \n Total provisioned\n Celkem poskytov\xe1no\n \n \n Striping unit\n Prou\u017ekovac\xed jednotka\n \n \n Striping count\n Po\u010det prou\u017ekov\xe1n\xed\n \n \n Parent\n Nad\u0159azen\xe9\n \n \n Block name prefix\n P\u0159edpona n\xe1zvu bloku\n \n \n Order\n Po\u0159ad\xed\n \n \n Snapshots\n Zachycen\xe9 stavy\n \n \n Image\n Obraz\n \n \n This setting overrides the global value\n Toto nastaven\xed p\u0159ebije glob\xe1ln\xed hodnotu\n \n \n Global\n Glob\xe1ln\xed\n \n \n This is the global value. No value for this option has been set for this image.\n Toto je glob\xe1ln\xed hodnota. Pro tento obraz nebyla u t\xe9to volby nastavena \u017e\xe1dn\xe1 hodnota.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u201e/\u201c a \u201e@\u201c nejsou dovoleny.\n \n \n -- No rbd pools available --\n -- \u017d\xe1dn\xe9 rbd fondy k dispozici --\n \n \n -- Select a pool --\n -- Vybrat fond --\n \n \n Use a dedicated data pool\n Pou\u017e\xedt vyhrazen\xfd datov\xfd fond\n \n \n Data pool\n Datov\xfd fond\n \n \n Dedicated pool that stores the object-data of the RBD.\n Vyhrazen\xfd fond kter\xfd uchov\xe1v\xe1 objektov\xe1 data RBD.\n \n \n e.g., 10GiB\n nap\u0159. 10 GiB\n \n \n You have to increase the size.\n Je t\u0159eba zv\u011bt\u0161it.\n \n \n Advanced\n Pokro\u010dil\xe9\n \n \n Striping\n Prou\u017ekov\xe1n\xed\n \n \n Stripe unit\n Jednotka prou\u017eku\n \n \n -- Select stripe unit --\n -- Vybrat jednotku prou\u017eku --\n \n \n This field is required because stripe count is defined!\n Tuto kolonku je t\u0159eba vyplnit, proto\u017ee je definov\xe1n po\u010det prou\u017ek\u016f!\n \n \n Stripe unit is greater than object size.\n Jednotka prou\u017eku je vy\u0161\u0161\xed ne\u017e velikost objektu.\n \n \n Stripe count\n Po\u010det prou\u017ek\u016f\n \n \n This field is required because stripe unit is defined!\n Tuto kolonku je t\u0159eba vyplnit, proto\u017ee je definov\xe1na jednotka prou\u017eku!\n \n \n Stripe count must be greater than 0.\n Je t\u0159eba, aby po\u010det prou\u017ek\u016f byl v\u011bt\u0161\xed ne\u017e nula.\n \n \n \n RBD Snapshot\n \n \n RBD zachycen\xfd stav\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, vybrat, skute\u010dn\xe9 {Rename} ostatn\xed {Create} }\n \n \n \n Snapshot\n \n \n zachycen\xfd stav\n \n \n \n PROTECTED\n CHR\xc1N\u011aNO\n \n \n UNPROTECTED\n NECHR\xc1N\u011aNO\n \n \n You are about to rollback\n Chyst\xe1te se vr\xe1tit zp\u011bt\n \n \n Purge Trash\n Vysypat ko\u0161\n \n \n To purge, select one or All images and click\n Pro vy\u010di\u0161t\u011bn\xed, vyberte jeden nebo v\u0161echny obrazy a klikn\u011bte na\n \n \n Pool:\n Fond:\n \n \n Pool name...\n N\xe1zev fondu\u2026\n \n \n All\n V\u0161e\n \n \n Restore Image\n Obnovit obraz\n \n \n To restore\n Pro obnoven\xed\n \n \n type the image\'s new name and click\n zadejte nov\xfd n\xe1zev pro obraz a klikn\u011bte na\n \n \n New Name\n Nov\xfd n\xe1zev\n \n \n Expired at\n Platnost skon\u010dila v\n \n \n Protected until\n Chr\xe1n\u011bno do\n \n \n This image is protected until \n .\n \n Tento obraz je chr\xe1n\u011bn do\n .\n \n \n \n Trash\n Ko\u0161\n \n \n iSCSI Topology\n Topologie iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n M\u011bnit tyto parametry z jejich v\xfdchoz\xedch hodnot obvykle nen\xed pot\u0159eba.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Nastaven\xed\n \n \n Backstore\n Backstore\n \n \n Confirm\n Potvrdit\n \n \n Advanced Settings\n Pokro\u010dil\xe1 nastaven\xed\n \n \n Target IQN\n IQN c\xedle\n \n \n IQN has wrong pattern.\n IQN nem\xe1 spr\xe1vn\xfd form\xe1t.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN m\xe1 n\xe1sleduj\xedc\xed formu z\xe1pisu \u201eiqn.$rok-$m\u011bs\xedc.$adresaObr\xe1cen\u011b:$ur\u010den\xfdN\xe1zev\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Nap\u0159\xedklad: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Dal\u0161\xed informace\n \n \n This target has modified advanced settings.\n Tento c\xedl m\xe1 zm\u011bn\u011bn\xe1 pokro\u010dil\xe1 nastaven\xed.\n \n \n Portals\n Port\xe1ly\n \n \n At least \n gateways are required.\n \n Je t\u0159eba alespo\u0148 \n bran.\n \n \n \n Add portal\n P\u0159idat port\xe1l\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Tento obraz m\xe1 zm\u011bn\u011bn\xe1 nastaven\xed.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n P\u0159idat obraz\n \n \n ACL authentication\n ACL ov\u011b\u0159ov\xe1n\xed\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Inici\xe1tory\n \n \n Initiator\n Inici\xe1tor\n \n \n Client IQN\n IQN klienta\n \n \n Initiator IQN needs to be unique.\n Je t\u0159eba, aby se IQN inici\xe1toru neopakovalo.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Je t\u0159eba, aby u\u017eivatelsk\xe1 jm\xe9na m\u011bla d\xe9lku 8 a\u017e 64 znak\u016f a\n mohou obsahovat pouze p\xedsmena a znaky \u201e.\u201c, \u201e@\u201c, \u201e-\u201c, \u201e_\u201c nebo \u201e:\u201c.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Inici\xe1tor spad\xe1 do skupiny. Obrazy budou nastaveny ve skupin\u011b.\n \n \n No items added.\n Nep\u0159id\xe1ny \u017e\xe1dn\xe9 polo\u017eky.\n \n \n Add initiator\n P\u0159idat inici\xe1tor\n \n \n Groups\n Skupiny\n \n \n Group\n Skupina\n \n \n Add group\n P\u0159idat skupinu\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Nastaven\xed RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Odebrat hodnotu m\xedstn\xedmu nastaven\xed. Nam\xedsto n\xed bude pou\u017eita hodnota nad\u0159azen\xe9ho nastaven\xed.\n \n \n The mininum value is 0\n Minim\xe1ln\xed hodnota je 0\n \n \n Issues\n probl\xe9my\n \n \n Syncing\n Synchronizuje se\n \n \n Ready\n P\u0159ipraveno\n \n \n Edit pool mirror mode\n Upravit re\u017eim zrcadlen\xed fondu\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Pro \xfapravu re\u017eimu zrcadlen\xed pro fond\xa0\n \n \n , vyberte ze seznamu nov\xfd re\u017eim a klikn\u011bte na\xa0\n Aktualizovat\n .\n \n \n \n Mode\n Re\u017eim\n \n \n Peer clusters must be removed prior to disabling mirror.\n P\u0159ed vypnut\xedm zrcadlen\xed je t\u0159eba odebrat klastry-prot\u011bj\u0161ky.\n \n \n \n \n pool mirror peer\n \n \n \n prot\u011bj\u0161ek zrcadlen\xed fondu\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n atributy\n prot\u011bj\u0161ku zrcadlen\xed pro fond \n \n \n a klikn\u011bte na \n Odeslat\n .\n \n \n \n Cluster Name\n N\xe1zev klastru\n \n \n The cluster name is not valid.\n N\xe1zev klastru nen\xed platn\xfd\n \n \n CephX ID\n CephX identif.\n \n \n CephX ID...\n CephX identif. \u2026\n \n \n The CephX ID is not valid.\n CephX identif. nen\xed platn\xfd.\n \n \n Monitor Addresses\n Adresy monitor\u016f\n \n \n Comma-delimited addresses...\n \u010c\xe1rkou odd\u011blovan\xe9 adresy\u2026\n \n \n The monitory address is not valid.\n Adresa monitoru nen\xed platn\xe1.\n \n \n CephX Key\n CephX kl\xed\u010d\n \n \n Base64-encoded key...\n Kl\xed\u010d v base64 k\xf3dov\xe1n\xed\u2026\n \n \n CephX key must be base64 encoded.\n Je t\u0159eba, aby CephX kl\xed\u010d byl v k\xf3dov\xe1n\xed base64.\n \n \n Pools List\n Seznam fond\u016f\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n N\xe1zev m\u016f\u017ee b\xfdt tvo\u0159en pouze p\xedsmeny a \u010d\xedslicemi, d\xe1le je\u0161t\u011b spojovn\xedky a podtr\u017e\xedtky.\n \n \n The chosen erasure code profile name is already in use.\n Zvolen\xfd n\xe1zev pro profil mazac\xedho k\xf3du je u\u017e pou\u017e\xedv\xe1n.\n \n \n Plugin\n Z\xe1suvn\xfd modul\n \n \n Data chunks (k)\n Shluky dat (k)\n \n \n Must be equal to or greater than 2.\n Je t\u0159eba, aby bylo 2 a v\xedce.\n \n \n Coding chunks (m)\n Shluky k\xf3dov\xe1n\xed (m)\n \n \n Must be equal to or greater than 1.\n Je t\u0159eba, aby bylo 1 a v\xedce.\n \n \n Durability estimator (c)\n Odhadov\xe1n\xed odolnosti (c)\n \n \n Locality (l)\n Um\xedst\u011bn\xed (l)\n \n \n Crush failure domain\n Dom\xe9na selh\xe1n\xed crush\n \n \n Crush Locality\n Lokalita crush\n \n \n None\n \u017d\xe1dn\xe9\n \n \n Technique\n Technika\n \n \n Packetsize\n Velikostpaketu\n \n \n Crush root\n Ko\u0159en crush\n \n \n Crush device class\n T\u0159\xedda crush za\u0159\xedzen\xed\n \n \n any\n libovoln\xe9\n \n \n Directory\n Slo\u017eka\n \n \n The chosen Ceph pool name is already in use.\n Zvolen\xfd n\xe1zev pro Ceph fond je u\u017e pou\u017e\xedv\xe1n.\n \n \n Pool type\n Typ fondul\n \n \n -- Select a pool type --\n -- Vybrat typ fondu --\n \n \n Placement groups\n Skupiny um\xedst\u011bn\xed\n \n \n At least one placement group is needed!\n Je t\u0159eba alespo\u0148 jedn\xe9 skupiny um\xedst\u011bn\xed!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n V\xe1\u0161 klastr nem\u016f\u017ee obslou\u017eit tolik skupin um\xedst\u011bn\xed. P\u0159epo\u010d\xedtejte pot\u0159ebn\xe9 mno\u017estv\xed skupin um\xedst\u011bn\xed.\n \n \n Calculation help\n N\xe1pov\u011bda k v\xfdpo\u010dtu\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \n \n Crush ruleset\n Sada pravidel crush\n \n \n -- Select a crush rule --\n -- Vybrat crush pravidlo --\n \n \n Crush rule\n Crush pravidlo\n \n \n Crush steps\n Crush kroky\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Pravidlo nem\u016f\u017ee b\xfdt uplatn\u011bno na st\xe1vaj\xedc\xed klastr proto\u017ee m\xe1\n p\u0159\xedli\u0161 m\xe1lo OSD aby splnil minimum OSD vy\u017eadovan\xfdch t\xedmto pravidlem.\n \n \n Replicated size\n Replikovan\xe1 velikost\n \n \n Minimum: \n \n \n Nejm\xe9n\u011b: \n \n \n \n \n Maximum: \n \n \n Nejv\xedce: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Zadan\xe1 velikost je mimo rozsah. Platn\xe9 hodnoty jsou od \n do \n .\n \n \n \n Erasure code profile\n Profil mazac\xedho k\xf3du\n \n \n -- No erasure code profile available --\n -- \u017d\xe1dn\xfd profil mazac\xedho k\xf3du --\n \n \n -- Select an erasure code profile --\n -- Vyberte profil mazac\xedho k\xf3du --\n \n \n EC Overwrites\n EC p\u0159ebit\xed\n \n \n Applications\n Aplikace\n \n \n Compression\n Komprese\n \n \n Algorithm\n Algoritmus\n \n \n -- No erasure compression algorithm available --\n -- \u017d\xe1dn\xfd algoritmus komprese maz\xe1n\xed --\n \n \n Minimum blob size\n Minim\xe1ln\xed velikost blobu\n \n \n e.g., 128KiB\n nap\u0159. 128 KiB\n \n \n Value should be greater than 0\n Hodnota by m\u011bla b\xfdt vy\u0161\u0161\xed ne\u017e nula\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Nejvy\u0161\u0161\xed velikost blobu\n \n \n e.g., 512KiB\n nap\u0159. 512 KiB\n \n \n Value should be greater than the minimum blob size\n Hodnota by m\u011bla b\xfdt vy\u0161\u0161\xed ne\u017e nejni\u017e\u0161\xed velikost blobu\n \n \n Ratio\n Pom\u011br\n \n \n Compression ratio\n Kompresn\xed pom\u011br\n \n \n Value should be between 0.0 and 1.0\n Hodnota by m\u011bla b\xfdt z rozmez\xed 0.0 a\u017e 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Nen\xed mo\u017en\xe9 vytvo\u0159it RBD fond, kter\xfd m\xe1 v n\xe1zvu \u201e/\u201c.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Zm\u011b\u0148te n\xe1zev nebo ze seznamu pou\u017eit\xed odeberte \u201erbd\u201c\n \n \n Cache Tiers Details\n Podrobnosti o stupn\xedch mezipam\u011bti\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Pod\xedvejte se do \n dokumentace\n \n jak nastavit a zapnout funkci spr\xe1vy br\xe1ny objekt\u016f.\n \n \n \n Daemons List\n Seznam proces\u016f slu\u017eeb\n \n \n Performance Counters\n V\xfdkonnostn\xed \u010d\xedta\u010de\n \n \n Loading bucket data...\n Na\u010d\xedt\xe1n\xed dat n\xe1doby\u2026\n \n \n The bucket data could not be loaded.\n Data n\xe1doby se nepoda\u0159ilo na\u010d\xedst.\n \n \n Id\n Identif.\n \n \n The value is not valid.\n Hodnota nen\xed platn\xe1.\n \n \n Owner\n Vlastn\xedk\n \n \n -- Select a user --\n -- Vybrat u\u017eivatele --\n \n \n ID\n Identif.\n \n \n Index type\n Typ rejst\u0159\xedku\n \n \n Placement rule\n Pravidlo um\xedst\u011bn\xed\n \n \n Marker\n Ozna\u010dova\u010d\n \n \n Maximum marker\n Nejvy\u0161\u0161\xed ozna\u010dova\u010d\n \n \n Version\n Verze\n \n \n Master version\n Hlavn\xed verze\n \n \n Modification time\n Okam\u017eik \xfapravy\n \n \n Zonegroup\n Skupinaz\xf3ny\n \n \n Bucket quota\n Kv\xf3ta n\xe1doby\n \n \n Enabled\n Zapnuto\n \n \n Maximum size\n Nejvy\u0161\u0161\xed velikost\n \n \n Unlimited\n Neomezeno\n \n \n Maximum objects\n Nejv\xfd\u0161e objekt\u016f\n \n \n -- Select a username --\n -- Vybrat u\u017eivatelsk\xe9 jm\xe9no --\n \n \n Auto-generate key\n Automaticky vytvo\u0159it kl\xed\u010d\n \n \n Access key\n P\u0159\xedstupov\xfd kl\xed\u010d\n \n \n Secret key\n Tajn\xfd kl\xed\u010d\n \n \n Email address\n E-mailov\xe1 adresa\n \n \n Suspended\n Pozastaveno\n \n \n System\n Syst\xe9m\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n \n \n Maximum buckets\n Nejv\xfd\u0161e n\xe1dob\n \n \n Subusers\n D\xedl\u010d\xed u\u017eivatel\xe9\n \n \n Capabilities\n Schopnosti\n \n \n User quota\n Kv\xf3ta u\u017eivatele\n \n \n Show\n Zobrazit\n \n \n Keys\n Kl\xed\u010de\n \n \n -- Select a type --\n -- Vybrat typ --\n \n \n Permission\n Opr\xe1vn\u011bn\xed\n \n \n -- Select a permission --\n -- Vybrat opr\xe1vn\u011bn\xed --\n \n \n Subuser\n D\xedl\u010d\xed u\u017eivatel\n \n \n The chosen subuser ID is already in use.\n Zvolen\xfd identifik\xe1tor d\xedl\u010d\xedho u\u017eivatele u\u017e je pou\u017e\xedv\xe1n.\n \n \n read, write\n \u010d\xedst, zapisovat\n \n \n full\n pln\xe9\n \n \n Swift key\n Swift kl\xed\u010d\n \n \n Auto-generate secret\n Automaticky vytvo\u0159it tajemstv\xed\n \n \n Loading user data...\n Na\u010d\xedt\xe1n\xed \xfadaj\u016f u\u017eivatele\u2026\n \n \n The user data could not be loaded.\n \xdadaje u\u017eivatele se nepoda\u0159ilo na\u010d\xedst.\n \n \n The chosen user ID is already in use.\n Zvolen\xfd identif. u\u017eivatele u\u017e je pou\u017e\xedv\xe1n.\n \n \n This is not a valid email address.\n Toto nen\xed platn\xe1 e-mailov\xe1 adresa.\n \n \n The chosen email address is already in use.\n Zvolen\xe1 e-mailov\xe1 adresa u\u017e je pou\u017e\xedv\xe1na.\n \n \n Max. buckets\n Nejv\xfd\u0161e n\xe1dob\n \n \n The entered value must be >= 0.\n Je t\u0159eba, aby zadan\xe1 hodnota byla 0 a vy\u0161\u0161\xed.\n \n \n S3 key\n S3 kl\xed\u010d\n \n \n There are no subusers.\n Nejsou zde \u017e\xe1dn\xed d\xedl\u010d\xed u\u017eivatel\xe9.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Nejsou zde \u017e\xe1dn\xe9 kl\xed\u010de.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Nejsou zde \u017e\xe1dn\xe9 schopnosti.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Neomezen\xe1 velikost\n \n \n Max. size\n Nejvy\u0161\u0161\xed velikost\n \n \n Unlimited objects\n Neomezen\xe9 objekty\n \n \n Max. objects\n Nejv\xfd\u0161e objekt\u016f\n \n \n Current\n St\xe1vaj\xedc\xed\n \n \n Updated discovery authentication\n Aktualizov\xe1no ov\u011b\u0159ov\xe1n\xed pro objevov\xe1n\xed\n \n \n There are no portals available.\n Nejsou k dispozici \u017e\xe1dn\xe9 port\xe1ly.\n \n \n There are no images available.\n Nejsou k dispozici \u017e\xe1dn\xe9 obrazy.\n \n \n There are no images available. Please make sure you add an image to the target.\n Nejsou k dispozici \u017e\xe1dn\xe9 obrazy. Ov\u011b\u0159te, \u017ee jste c\xedli p\u0159idali obraz.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Nejsou k dispozici \u017e\xe1dn\xe9 inici\xe1tory. Ov\u011b\u0159te, \u017ee jste c\xedli p\u0159idali inici\xe1tor.\n \n \n target\n target\n \n \n Target\n C\xedl\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Stav\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bajt\u016f \u010dten\xed\n \n \n Write Bytes\n Bajt\u016f z\xe1pis\n \n \n Read Ops\n Operac\xed/s \u010dten\xed\n \n \n Write Ops\n Operac\xed/s z\xe1pis\n \n \n A/O Since\n A/O od\n \n \n Instance\n Instance\n \n \n Hostname\n N\xe1zev stroje\n \n \n Issue\n Probl\xe9m\n \n \n Progress\n Ukazatel postupu\n \n \n Disabled\n Vypnuto\n \n \n Edit Mode\n Upravit re\u017eim\n \n \n Add Peer\n P\u0159idat prot\u011bj\u0161ek\n \n \n Edit Peer\n Upravit prot\u011bj\u0161ek\n \n \n Delete Peer\n Smazat prot\u011bj\u0161ek\n \n \n Leader\n Vedouc\xed\n \n \n # Local\n Po\u010det m\xedstn\xedch\n \n \n # Remote\n Po\u010det vzd\xe1len\xfdch\n \n \n mirror peer\n zrcadlit prot\u011bj\u0161ek\n \n \n Key\n Kl\xed\u010d\n \n \n RBD\n RBD\n \n \n Deep flatten\n Hlubok\xe9 zplo\u0161t\u011bn\xed\n \n \n Layering\n Vrstven\xed\n \n \n Exclusive lock\n V\xfdhradn\xed z\xe1mek\n \n \n Object map (requires exclusive-lock)\n Mapa objekt\u016f (vy\u017eaduje v\xfdhradn\xed z\xe1mek)\n \n \n Journaling (requires exclusive-lock)\n \u017durn\xe1lov\xe1n\xed (vy\u017eaduje v\xfdhradn\xed z\xe1mek)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Vr\xe1cen\xed zachycen\xe9ho stavu RBD zp\u011bt\n \n \n Rollback\n Vr\xe1cen\xed zp\u011bt\n \n \n RBD snapshot\n Zachycen\xfd stav RBD\n \n \n Deleted At\n Smaz\xe1no v\n \n \n id\n identif.\n \n \n type\n typ\n \n \n state\n stav\n \n \n version\n verze\n \n \n Host\n Stroj\n \n \n root\n ko\u0159en\n \n \n Rank\n Hodnocen\xed\n \n \n Daemon\n Proces slu\u017eby\n \n \n Activity\n Aktivita\n \n \n Dentries\n Struktury slo\u017eek\n \n \n Inodes\n I-uzl\u016f\n \n \n Usage\n Vyu\u017eit\xed\n \n \n Standby daemons\n Procesy slu\u017eeb v pohotovosti\n \n \n The value can be updated at runtime.\n Hodnotu je mo\u017en\xe9 aktualizovat za chodu.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Procesy slu\u017eeb / klienti nez\xedsk\xe1vaj\xed tuto hodnotu\n z datab\xe1ze nastaven\xed monitoru. Nen\xed umo\u017en\u011bno nastavit tuto volbu\n prost\u0159ednictv\xedm \u201eceph config set \u2026\'. Tato volba by m\u011bla b\xfdt nastavena\n z p\u0159\xedkazov\xe9ho \u0159\xe1dku.\n \n \n Option takes effect only during daemon startup.\n Volba se uplatn\xed pouze p\u0159i spou\u0161t\u011bn\xed procesu slu\u017eby.\n \n \n Option only affects cluster creation.\n Volba ovlivn\xed pouze vytv\xe1\u0159en\xed klastru.\n \n \n Option only affects daemon creation.\n Volba ovlivn\xed pouze vytvo\u0159en\xed procesu slu\u017eby.\n \n \n Updated config option \n \n \n Aktualizov\xe1na volba nastaven\xed \n \n \n \n \n Service\n Slu\u017eba\n \n \n Current value\n St\xe1vaj\xedc\xed hodnota\n \n \n Editable\n Upraviteln\xe9\n \n \n Updated options for module "\n ".\n \n Aktualizov\xe1na volba pro modul \u201e\n \u201c\n \n \n \n Enable\n Zapnout\n \n \n Disable\n Vypnout\n \n \n Reconnecting, please wait ...\n Op\u011btovn\xe9 p\u0159ipojov\xe1n\xed, \u010dekejte\u2026\n \n \n Public Address\n Ve\u0159ejn\xe1 adresa\n \n \n Open Sessions\n Otev\u0159en\xe9 relace\n \n \n No In\n Po\u010det do\n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSD kter\xe9 byly d\u0159\xedve odzna\u010deny nebudou ozna\u010deny nazp\u011bt kdy\u017e spust\xed\n \n \n No Out\n Po\u010det ven\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD nebudou automaticky odzna\u010deny po nastaven\xe9m intervalu\n \n \n No Up\n Po\u010det aktivn\xedch\n \n \n OSDs are not allowed to start\n OSD nen\xed dovoleno spu\u0161t\u011bn\xed\n \n \n No Down\n Po\u010det neaktivn\xedch\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Hl\xe1\u0161en\xed o selh\xe1n\xed OSD jsou ignorov\xe1ny, jako nap\u0159\xedklad \u017ee monitory OSD neozna\u010d\xed jako nedostupn\xe9\n \n \n Pause\n Pozastavit\n \n \n Pauses reads and writes\n Pozastavit \u010dten\xed a z\xe1pisy\n \n \n No Scrub\n \u017d\xe1dn\xe1 kontrola\n \n \n Scrubbing is disabled\n Kontrola je vypnut\xe1\n \n \n No Deep Scrub\n \u017d\xe1dn\xe1 hloubkov\xe1 kontrola\n \n \n Deep Scrubbing is disabled\n Hloubkov\xe1 kontrola je vypnut\xe1\n \n \n No Backfill\n \u017d\xe1dn\xe9 zasyp\xe1v\xe1n\xed\n \n \n Backfilling of PGs is suspended\n Zasyp\xe1v\xe1n\xed skupin um\xedst\u011bn\xed je pozastaveno\n \n \n No Recover\n \u017d\xe1dn\xe9 obnoven\xed\n \n \n Recovery of PGs is suspended\n Obnovov\xe1n\xed skupin um\xedst\u011bn\xed je pozastaveno\n \n \n Bitwise Sort\n Bitov\xe9 t\u0159\xedd\u011bn\xed\n \n \n Use bitwise sort\n T\u0159\xeddit podle bit\u016f\n \n \n Purged Snapdirs\n Vy\u010di\u0161t\u011bn\xe9 slo\u017eky zachycen\xfdch stav\u016f\n \n \n OSDs have converted snapsets\n OSD maj\xed p\u0159eveden\xe9 sady zachycen\xfdch stav\u016f\n \n \n Recovery Deletes\n Smaz\xe1no p\u0159i zotavov\xe1n\xed\n \n \n Deletes performed during recovery instead of peering\n Maz\xe1n\xed proveden\xe1 p\u0159i obnovov\xe1n\xed nam\xedsto peeringu\n \n \n PG Log Hard Limit\n Nep\u0159ekro\u010diteln\xfd limit z\xe1znamu ud\xe1lost\xed PG\n \n \n Puts a hard limit on pg log length\n Zapne nep\u0159ekro\u010diteln\xfd limit na d\xe9lku z\xe1znamu ud\xe1lost\xed v pg\n \n \n Updated OSD Flags\n Aktualizov\xe1ny OSD p\u0159\xedznaky\n \n \n out\n ven\n \n \n in\n dovnit\u0159\n \n \n down\n nedostupn\xe9\n \n \n Mark\n Zna\u010dka\n \n \n OSD lost\n OSD ztraceno\n \n \n marked lost\n ozna\u010deno jako ztracen\xe9\n \n \n Purge\n Vy\u010distit\n \n \n OSD\n OSD\n \n \n purged\n vy\u010di\u0161t\u011bno\n \n \n destroy\n zlikvidovat\n \n \n destroyed\n zlikvidov\xe1no\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n skupiny um\xedst\u011bn\xed\n \n \n Read bytes\n P\u0159e\u010dteno bajt\u016f\n \n \n Writes bytes\n Zaps\xe1no bajt\u016f\n \n \n Read ops\n Operac\xed/s \u010dten\xed\n \n \n Write ops\n Operac\xed/s z\xe1pis\n \n \n Mark OSD \n \n \n Ozna\u010dit OSD \n \n \n \n \n Mark \n \n \n Ozna\u010dit \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Max Backfills\n \n \n Recovery Max Active\n Recovery Max Active\n \n \n Recovery Max Single Start\n Recovery Max Single Start\n \n \n Recovery Sleep\n Recovery Sleep\n \n \n Custom\n U\u017eivatelsky ur\u010den\xe9\n \n \n Updated OSD recovery speed priority "\n "\n \n Aktualizov\xe1na rychlost zotaven\xed OSD \u201e\n \u201c\n \n \n \n \n was initialized in the following OSD: \n \n \n \n bylo inicializov\xe1no v n\xe1sleduj\xedc\xedm OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \xdaloha\n \n \n Severity\n Z\xe1va\u017enost\n \n \n Started\n Zah\xe1jeno\n \n \n URL\n URL adresa\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Aktualizov\xe1no\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Pou\u017eito\n \n \n Avail.\n K dispozici\n \n \n Clean\n \u010cist\xe9\n \n \n Working\n Pracuj\xedc\xed\n \n \n Warning\n Varov\xe1n\xed\n \n \n Unknown\n Nezn\xe1m\xe9\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n aktivn\xed\n \n \n no filesystems\n \u017e\xe1dn\xe9 souborov\xe9 syst\xe9my\n \n \n active\n aktivn\xed\n \n \n standby\n v pohotovosti\n \n \n n/a\n n/a\n \n \n active daemon\n aktivn\xed proces slu\u017eby\n \n \n quorum\n kv\xf3rum\n \n \n The NFS Ganesha service is not configured.\n Slu\u017eba NFS Ganesha nen\xed nastavena.\n \n \n Transport\n Transport\n \n \n CephFS User\n CephFS u\u017eivatel\n \n \n CephFS Filesystem\n Souborov\xfd syst\xe9m CephFS\n \n \n (inherited from global config)\n (p\u0159evzato z glob\xe1ln\xedho nastaven\xed)\n \n \n inherited from global config\n p\u0159evzato z glob\xe1ln\xedho nastaven\xed\n \n \n -- Select what kind of user id squashing is performed --\n -- Select what kind of user id squashing is performed --\n \n \n There are no daemons available.\n Nejsou k dispozici \u017e\xe1dn\xe9 procesy slu\u017eeb.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Re\u017eim mezipam\u011bti\n \n \n Min Evict Age\n Min Evict Age\n \n \n Min Flush Age\n Min Flush Age\n \n \n Target Max Bytes\n Nejv\xfd\u0161e bajt\u016f c\xedle\n \n \n Target Max Objects\n Nejv\xfd\u0161e objekt\u016f c\xedle\n \n \n No applications added\n Nebyla p\u0159id\xe1na \u017e\xe1dn\xe1 aplikace\n \n \n Applications limit reached\n Dosa\u017een limit aplikac\xed\n \n \n A pool can only have up to four applications definitions.\n Fond m\u016f\u017ee m\xedt nejv\xfd\u0161e \u010dty\u0159i definice aplikac\xed.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Pou\u017eiteln\xe9 znaky \u201e_a-zA-Z0-9\u201c\n \n \n Maximum length is 128 characters\n Nejvy\u0161\u0161\xed d\xe9lka je 128 znak\u016f\n \n \n Filter or add applications\n Filtrovat nebo p\u0159idat aplikace\n \n \n Add application\n P\u0159idat aplikaci\n \n \n pool\n pool\n \n \n erasure code profile\n profil mazac\xedho k\xf3du\n \n \n Replica Size\n Velikost repliky\n \n \n Last Change\n Nejnov\u011bj\u0161\xed zm\u011bna\n \n \n Erasure Coded Profile\n Maz\xe1n\xedm k\xf3dovan\xfd profil\n \n \n Crush Ruleset\n Sada crush pravidel\n \n \n Write bytes\n Zaps\xe1no bajt\u016f\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n n\xe1doba\n \n \n Updated Object Gateway bucket "\n "\n \n Aktualizov\xe1na n\xe1doba objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n Created Object Gateway bucket "\n "\n \n Vytvo\u0159ena n\xe1doba objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n buckets\n n\xe1doby\n \n \n capability\n capability\n \n \n user\n u\u017eivatel\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Aktualizov\xe1n u\u017eivatel objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n Created Object Gateway user "\n "\n \n Vytvo\u0159en u\u017eivatel objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n users\n u\u017eivatel\xe9\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Rozsah\n \n \n Read\n \u010cten\xed\n \n \n Create\n Vytvo\u0159it\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Vytvo\u0159ena role \u201e\n \u201c\n \n \n \n Updated role \'\n \'\n \n Aktualizov\xe1na role \u201e\n \u201c\n \n \n \n System Role\n Syst\xe9mov\xe1 role\n \n \n Deleted role \'\n \'\n \n Smaz\xe1na role \u201e\n \u201c\n \n \n \n Created user "\n "\n \n Vytvo\u0159en u\u017eivatel \u201e\n \u201c\n \n \n \n Update user\n Aktualizovat u\u017eivatele\n \n \n Continue\n Pokra\u010dovat\n \n \n You were automatically logged out because your roles have been changed.\n Byli jste automaticky odhl\xe1\u0161eni proto\u017ee va\u0161e role byly zm\u011bn\u011bny.\n \n \n Updated user "\n "\n \n Aktualizov\xe1n u\u017eivatel \u201e\n \u201c\n \n \n \n Deleted user "\n "\n \n Smaz\xe1n u\u017eivatel \u201e\n \u201c\n \n \n \n Failed to delete user "\n "\n \n Nepoda\u0159ilo se smazat u\u017eivatele \u201e\n \u201c\n \n \n \n You are currently logged in as "\n ".\n \n Nyn\xed jste p\u0159ihl\xe1\u0161en\xed jako \u201e\n \u201c.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Ka\u017ed\xfd objekt je rozd\u011blen v \u010d\xe1stech shluk\u016f dat, ka\u017ed\xe9 ulo\u017een\xe9 na jin\xe9m OSD.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Po\u010d\xedtat k\xf3dovac\xed shluky pro ka\u017ed\xfd objekt a ukl\xe1dat je na r\u016fzn\xfdch OSD.\n Po\u010det k\xf3dovac\xedch shluk\u016f je tak\xe9 po\u010det OSD, kter\xe9 mohou vypadnou, ani\u017e dojde ke ztr\xe1t\u011b dat.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Z\xe1suvn\xfd modul jerasure je nejobecn\u011bj\u0161\xed a nejp\u0159izp\u016fsobiv\u011bj\u0161\xed,\n je tak\xe9 v\xfdchoz\xed pro Ceph fondy k\xf3dovan\xe9 maz\xe1n\xedm.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Z\xe1suvn\xfd modul isa obaluje knihovnu ISA. Funguje pouze na procesorech Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n N\xe1zev crush n\xe1doby slou\u017e\xedc\xed jako prvn\xed krok CRUSH pravidla.\n Nap\u0159\xedklad krok vz\xedt v\xfdchoz\xed.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Omezit um\xedst\u011bn\xed na za\u0159\xedzen\xed ur\u010dit\xe9 t\u0159\xeddy\n (nap\u0159., ssd nebo hdd), pomoc\xed n\xe1zvu crush t\u0159\xeddy za\u0159\xedzen\xed v CRUSH map\u011b.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Nastavit slo\u017eku ze kter\xe9 na\u010d\xedtat z\xe1suvn\xfd modul mazac\xedho k\xf3du.\n \n \n Allows all operations\n Umo\u017enit v\u0161echny operace\n \n \n Allows only operations that do not modify the server\n Umo\u017enit pouze operace kter\xe9 neuprav\xed server\n \n \n Does not allow read or write operations, but allows any other operation\n Neumo\u017e\u0148uje operace \u010dten\xed \u010di z\xe1pisu, ale umo\u017e\u0148uje ostatn\xed\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Neumo\u017e\u0148uje \u010dten\xed, z\xe1pis nebo jinou operaci kter\xe1 upravuje atributy souboru nebo obsah slo\u017eky\n \n \n Allows no access at all\n Neumo\u017enit v\u016fbec \u017e\xe1dn\xfd p\u0159\xedstup\n \n \n -- Select the priority --\n -- Vyberte prioritu --\n \n \n Low\n N\xedzk\xe1\n \n \n High\n Vysok\xe1\n \n \n Last 5 minutes\n Uplynul\xfdch 5 minut\n \n \n Last 15 minutes\n Uplynul\xfdch 15 minut\n \n \n Last 30 minutes\n Uplynul\xfdch 30 minut\n \n \n Last 1 hour (Default)\n Uplynul\xe1 1 hodina (v\xfdchoz\xed)\n \n \n Last 3 hours\n Uplynul\xe9 3 hodiny\n \n \n Last 6 hours\n Uplynul\xfdch 6 hodin\n \n \n Last 12 hours\n Uplynul\xfdch 12 hodin\n \n \n Last 24 hours\n Uplynul\xfdch 24 hodin\n \n \n Yesterday\n V\u010dera\n \n \n Today\n Dnes\n \n \n Today so far\n Dnes doposud\n \n \n Day before yesterday\n V\u010derej\u0161ek\n \n \n Last 2 days\n Uplynul\xe9 2 dny\n \n \n This day last week\n Tento den minul\xfd t\xfdden\n \n \n Previous week\n P\u0159edchoz\xed t\xfdden\n \n \n This week\n Tento t\xfdden\n \n \n This week so far\n Tento t\xfdden doposud\n \n \n Last 7 days\n Uplynul\xfdch 7 dn\u016f\n \n \n Previous month\n P\u0159edchoz\xed m\u011bs\xedc\n \n \n This month\n Tento m\u011bs\xedc\n \n \n This month so far\n Tento m\u011bs\xedc doposud\n \n \n Last 30 days\n Uplynul\xfdch 30 dn\u016f\n \n \n Last 90 days\n Uplynul\xfdch 90 dn\u016f\n \n \n Last 6 months\n Uplynul\xfdch 6 m\u011bs\xedc\u016f\n \n \n Last 1 year\n Uplynul\xfd 1 rok\n \n \n Previous year\n P\u0159edchoz\xed rok\n \n \n This year\n Tento rok\n \n \n This year so far\n Tento rok doposud\n \n \n Last 2 years\n Uplynul\xe9 2 roky\n \n \n Last 5 years\n Uplynul\xfdch 5 let\n \n \n Information\n Informace\n \n \n No items selected.\n Nevybr\xe1ny \u017e\xe1dn\xe9 polo\u017eky.\n \n \n Deselect item to select again\n Aby polo\u017eku bylo mo\u017en\xe9 znovu vybrat, je t\u0159eba nejprve zru\u0161it jej\xed v\xfdb\u011br\n \n \n Selection limit reached\n Dosa\u017een limit v\xfdb\u011bru\n \n \n Filter tags\n Filtrovat \u0161t\xedtky\n \n \n Add badge\n P\u0159idat odznak\n \n \n There are no items available.\n Nejsou k dispozici \u017e\xe1dn\xe9 polo\u017eky.\n \n \n Add\n P\u0159idat\n \n \n Remove\n Remove\n \n \n Clone\n Klonovat\n \n \n Copy\n Kop\xedrovat\n \n \n Deep Scrub\n Hloubkov\xe1 kontrola\n \n \n Destroy\n Zlikvidovat\n \n \n Flatten\n Zplo\u0161tit\n \n \n Mark Down\n Ozna\u010dit\n \n \n Mark In\n Ozna\u010dit\n \n \n Mark Lost\n Ozna\u010dit ztracen\xe9\n \n \n Mark Out\n Odzna\u010dit\n \n \n Protect\n Ochr\xe1nit\n \n \n Rename\n P\u0159ejmenovat\n \n \n Restore\n Obnovit\n \n \n Move to Trash\n P\u0159esunout do ko\u0161e\n \n \n Unprotect\n Zru\u0161it ochranu\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Smaz\xe1no\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Naklonov\xe1no\n \n \n Copied\n Zkop\xedrov\xe1no\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Ano\n \n \n No\n Ne\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Kvalita slu\u017eby\n \n \n BPS Limit\n BPS Limit\n \n \n The desired limit of IO bytes per second.\n Po\u017eadovan\xfd limit vst./v\xfdstup. bajt\u016f za sekundu.\n \n \n IOPS Limit\n IOPS Limit\n \n \n The desired limit of IO operations per second.\n Po\u017eadovan\xfd limit vst./v\xfdstup. operac\xed za sekundu.\n \n \n Read BPS Limit\n Read BPS Limit\n \n \n The desired limit of read bytes per second.\n Po\u017eadovan\xfd limit \u010dten\xed bajt\u016f za sekundu.\n \n \n Read IOPS Limit\n Read IOPS Limit\n \n \n The desired limit of read operations per second.\n Po\u017eadovan\xfd limit operac\xed \u010dten\xed za sekundu.\n \n \n Write BPS Limit\n Write BPS Limit\n \n \n The desired limit of write bytes per second.\n Po\u017eadovan\xfd limit z\xe1pisu bajt\u016f za sekundu.\n \n \n Write IOPS Limit\n Write IOPS Limit\n \n \n The desired limit of write operations per second.\n Po\u017eadovan\xfd limit operac\xed \u010dten\xed za sekundu.\n \n \n BPS Burst\n BPS d\xe1vka\n \n \n The desired burst limit of IO bytes.\n The desired burst limit of IO bytes.\n \n \n IOPS Burst\n IOPS Burst\n \n \n The desired burst limit of IO operations.\n Po\u017eadovan\xfd limit d\xe1vky vst./v\xfdstup. operac\xed.\n \n \n Read BPS Burst\n Read BPS Burst\n \n \n The desired burst limit of read bytes.\n Po\u017eadovan\xfd limit d\xe1vky bajt\u016f \u010dten\xed.\n \n \n Read IOPS Burst\n Read IOPS Burst\n \n \n The desired burst limit of read operations.\n Po\u017eadovan\xfd limit d\xe1vky \u010dten\xed bajt\u016f.\n \n \n Write BPS Burst\n Write BPS Burst\n \n \n The desired burst limit of write bytes.\n Po\u017eadovan\xfd limit bajt\u016f d\xe1vky z\xe1pisu.\n \n \n Write IOPS Burst\n Write IOPS Burst\n \n \n The desired burst limit of write operations.\n Po\u017eadovan\xfd limit d\xe1vky operace z\xe1pisu.\n \n \n Failed to \n \n \n \n Nepoda\u0159ilo se \n \n \n \n \n \n Executing\n Vykon\xe1v\xe1 se\n \n \n execute\n vykonat\n \n \n Executed\n Vykon\xe1no\n \n \n unknown task\n nezn\xe1m\xfd \xfakol\n \n \n Creating\n Vytv\xe1\u0159\xed se\n \n \n create\n vytvo\u0159it\n \n \n Updating\n Aktualizuje se\n \n \n update\n aktualizovat\n \n \n Deleting\n Ma\u017ee se\n \n \n delete\n smazat\n \n \n RBD \'\n \'\n \n RBD \u201e\n \u201c\n \n \n \n RBD snapshot \'\n \'\n \n RBD zachycen\xfd stav \u201e\n \u201c\n \n \n \n mirror mode for pool \'\n \'\n \n re\u017eim zrcadlen\xed pro fond \u201e\n \u201c\n \n \n \n mirror peer for pool \'\n \'\n \n prot\u011bj\u0161ek zrcadlen\xed pro fond \u201e\n \u201c\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n \n .\n \n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n \n .\n \n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n \n .\n \n \n \n \n contains snapshots.\n \n \n obsahuje zachycen\xe9 stavy.\n \n \n \n Cloning\n Klonuje se\n \n \n clone\n klonovat\n \n \n Snapshot of \n must be protected.\n \n Je t\u0159eba, aby zachycen\xfd stav \n byl chr\xe1n\u011bn\xfd.\n \n \n \n Copying\n Kop\xedruje se\n \n \n copy\n zkop\xedrovat\n \n \n Flattening\n Zplo\u0161t\u011bn\xed\n \n \n flatten\n zplo\u0161tit\n \n \n Flattened\n Zplo\u0161t\u011bno\n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n pro \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Nen\xed mo\u017en\xe9 zru\u0161it ochranu \n , proto\u017ee obsahuje pod\u0159\xedzen\xe9 obrazy.\n \n \n \n Cannot delete \n because it\'s protected.\n \n \n nen\xed mo\u017en\xe9 smazat, proto\u017ee je chr\xe1n\u011bn\xe9.\n \n \n \n Rolling back\n Bere se zp\u011bt\n \n \n rollback\n vz\xedt zp\u011bt\n \n \n Rolled back\n Vzato zp\u011bt\n \n \n Moving\n P\u0159esouv\xe1 se\n \n \n move\n p\u0159esunout\n \n \n Moved\n P\u0159esunuto\n \n \n image \'\n \' to trash\n \n obraz \u201e\n \u201c do ko\u0161e\n \n \n \n Could not find image.\n Obraz se neda\u0159\xed naj\xedt.\n \n \n Restoring\n Obnovuje se\n \n \n restore\n obnovit\n \n \n Restored\n Obnoveno\n \n \n image \'\n \' into \'\n \'\n \n obraz \u201e\n \u201c do \u201e\n \u201c\n \n \n \n Image name \'\n \' is already in use.\n \n N\xe1zev \u201e\n \u201c u\u017e je pou\u017e\xedv\xe1n pro jin\xfd obraz.\n \n \n \n image \'\n \'\n \n obraz \u201e\n \u201c\n \n \n \n Purging\n \u010cist\xed se\n \n \n purge\n vy\u010distit\n \n \n Purged\n Vy\u010di\u0161t\u011bno\n \n \n all pools\n v\u0161echny fondy\n \n \n images from \n \n \n obrazy z \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Zrcadlen\xed nelze vypnout proto\u017ee obsahuje prot\u011bj\u0161ek.\n \n \n pool \'\n \'\n \n fond \u201e\n \u201c\n \n \n \n erasure code profile \'\n \'\n \n profil mazac\xedho k\xf3du \u201e\n \u201c\n \n \n \n target \'\n \'\n \n c\xedl \u201e\n \u201c\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},McSo:function(t,e,n){"use strict";function a(t){return null!==t&&"object"==typeof t}n.d(e,"a",function(){return a})},MdoF:function(t,e,n){"use strict";n.d(e,"b",function(){return o}),n.d(e,"c",function(){return c}),n.d(e,"a",function(){return d});var a=n("CcnG"),r=n("lTVp"),i=n("Ip0R"),o=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"button",[["aria-label","Close"],["class","close"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\xd7"])),(t()(),a["\u0275eld"](3,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Close"]))],null,null)}function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["role","alert"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,s)),a["\u0275did"](3,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275ncd"](null,0)],function(t,e){var n=e.component;t(e,1,0,"alert alert-"+n.type,n.classes),t(e,3,0,n.dismissible)},null)}function c(t){return a["\u0275vid"](2,[(t()(),a["\u0275and"](16777216,null,null,1,null,u)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.isOpen)},null)}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"alert",[],null,null,null,c,o)),a["\u0275did"](1,114688,null,0,r.a,[r.b,a.ChangeDetectorRef],null,null)],function(t,e){t(e,1,0)},null)}var d=a["\u0275ccf"]("alert,bs-alert",r.a,l,{type:"type",dismissible:"dismissible",dismissOnTimeout:"dismissOnTimeout",isOpen:"isOpen"},{onClose:"onClose",onClosed:"onClosed"},["*"])},Mfce:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG");n("czA5"),e.DataTableRowWrapperComponent=function(){function t(t,e){this.cd=t,this.differs=e,this.rowContextmenu=new i.EventEmitter(!1),this.groupContext={group:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this.rowContext={row:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this._expanded=!1,this.rowDiffer=e.find({}).create()}return Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.rowContext.rowIndex=t,this.groupContext.rowIndex=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.groupContext.expanded=t,this.rowContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.row)&&(this.rowContext.row=this.row,this.groupContext.group=this.row,this.cd.markForCheck())},t.prototype.onContextmenu=function(t){this.rowContextmenu.emit({event:t,row:this.row})},t.prototype.getGroupHeaderStyle=function(){var t={};return t.transform="translate3d("+this.offsetX+"px, 0px, 0px)",t["backface-visibility"]="hidden",t.width=this.innerWidth,t},a([i.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"detailRowHeight",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([i.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([i.Component({selector:"datatable-row-wrapper",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n
\n \n \n \n \n \n \n ',host:{class:"datatable-row-wrapper"}})],t)}()},MgB7:function(t,e,n){"use strict";function a(t,e,n){var a,r,i;n=n||{};var o=null,s=0;function u(){s=!1===n.leading?0:+new Date,o=null,i=t.apply(a,r)}return function(){var c=+new Date;s||!1!==n.leading||(s=c);var l=e-(c-s);return a=this,r=arguments,l<=0?(clearTimeout(o),o=null,s=c,i=t.apply(a,r)):o||!1===n.trailing||(o=setTimeout(u,l)),i}}Object.defineProperty(e,"__esModule",{value:!0}),e.throttle=a,e.throttleable=function(t,e){return function(n,r,i){return{configurable:!0,enumerable:i.enumerable,get:function(){return Object.defineProperty(this,r,{configurable:!0,enumerable:i.enumerable,value:a(i.value,t,e)}),this[r]}}}}},MkmW:function(t,e,n){"use strict";e.hostReportError=function(t){setTimeout(function(){throw t},0)}},MuvH:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("CcnG"),r=n("t/Na"),i=n("pL04"),o=function(){function t(t){this.http=t}return t.prototype.getConfigData=function(){return this.http.get("api/cluster_conf/")},t.prototype.get=function(t){return this.http.get("api/cluster_conf/"+t)},t.prototype.filter=function(t){return this.http.get("api/cluster_conf/filter?names="+t.join(","))},t.prototype.create=function(t){return this.http.post("api/cluster_conf/",t)},t.prototype.delete=function(t,e){return this.http.delete("api/cluster_conf/"+t+"?section="+e)},t.prototype.bulkCreate=function(t){return this.http.put("api/cluster_conf/",t)},t.ngInjectableDef=a.defineInjectable({factory:function(){return new t(a.inject(r.c))},token:t,providedIn:i.a}),t}()},MwfX:function(t,e,n){"use strict";n.d(e,"a",function(){return d}),n.d(e,"b",function(){return f});var a=n("mrSG"),r=n("zo3G"),i=n("26FU"),o=n("6blF"),s=n("mZXl"),u=n("dC0D"),c=n("67Y/"),l=n("ad02"),d=function(t){function e(e,n,a){var i=t.call(this,e)||this;return n.pipe(Object(s.b)(r.a)).pipe(Object(u.a)(function(t,e){return e?a(t,e):t},e)).subscribe(function(t){return i.next(t)}),i}return Object(a.__extends)(e,t),e}(i.a),f=function(t){function e(e,n,a){var r=t.call(this)||this;return r._dispatcher=e,r._reducer=n,r.source=a,r}return Object(a.__extends)(e,t),e.prototype.select=function(t){return this.source.pipe(Object(c.a)(t)).pipe(Object(l.a)())},e.prototype.lift=function(t){var n=new e(this._dispatcher,this._reducer,this);return n.operator=t,n},e.prototype.dispatch=function(t){this._dispatcher.next(t)},e.prototype.next=function(t){this._dispatcher.next(t)},e.prototype.error=function(t){this._dispatcher.error(t)},e.prototype.complete=function(){},e}(o.a)},Mxhz:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("CcnG"),r=n("t/Na"),i=n("pL04"),o=function(){function t(t){this.http=t}return t.prototype.list=function(){return this.http.get("api/user")},t.prototype.delete=function(t){return this.http.delete("api/user/"+t)},t.prototype.get=function(t){return this.http.get("api/user/"+t)},t.prototype.create=function(t){return this.http.post("api/user",t)},t.prototype.update=function(t){return this.http.put("api/user/"+t.username,t)},t.ngInjectableDef=a.defineInjectable({factory:function(){return new t(a.inject(r.c))},token:t,providedIn:i.a}),t}()},NDi4:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("CcnG"),r=function(){return function(){this.title="Error",this.backAction=new a.EventEmitter}}()},NEZu:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(t,e,n,a){this.customColors={backgroundColor:void 0,borderColor:void 0},this.checkOffset=!1,this.chartEl=t.nativeElement,this.getStyleLeft=n,this.getStyleTop=a,this.tooltipEl=e.nativeElement}return t.prototype.customTooltips=function(t){var e=this;if(0!==t.opacity){if(this.tooltipEl.classList.remove("above","below","no-transform"),this.tooltipEl.classList.add(t.yAlign?t.yAlign:"no-transform"),t.body){var n=t.title||[],a=t.body.map(function(t){return t.lines}),r="";n.forEach(function(t){r+=""+e.getTitle(t)+""}),r+="",a.forEach(function(n,a){var i=t.labelColors[a],o="background:"+(e.customColors.backgroundColor||i.backgroundColor);o+="; border-color:"+(e.customColors.borderColor||i.borderColor),r+=''+e.getBody(n)+""}),r+="",this.tooltipEl.querySelector("table").innerHTML=r}var i=this.chartEl.offsetTop,o=this.chartEl.offsetLeft;if(this.checkOffset){var s=t.width/2;this.tooltipEl.classList.remove("transform-left"),this.tooltipEl.classList.remove("transform-right"),t.caretX-s<0?this.tooltipEl.classList.add("transform-left"):t.caretX+s>this.chartEl.width&&this.tooltipEl.classList.add("transform-right")}this.tooltipEl.style.left=this.getStyleLeft(t,o),this.tooltipEl.style.top=this.getStyleTop(t,i),this.tooltipEl.style.opacity=1,this.tooltipEl.style.fontFamily=t._fontFamily,this.tooltipEl.style.fontSize=t.fontSize,this.tooltipEl.style.fontStyle=t._fontStyle,this.tooltipEl.style.padding=t.yPadding+"px "+t.xPadding+"px"}else this.tooltipEl.style.opacity=0},t.prototype.getBody=function(t){return t},t.prototype.getTitle=function(t){return t},t}()},NJnL:function(t,e,n){"use strict";n.d(e,"a",function(){return G});var a=n("mrSG"),r=n("CcnG"),i=n("Ip0R"),o=n("K9Ia"),s=n("p0ib"),u=n("bne5"),c=n("F/XL"),l=n("tHPV");function d(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function f(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function p(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=d(t),n=e.overflowX,a=e.overflowY;return/(auto|scroll|overlay)/.test(String(e.overflow)+String(a)+String(n))?t:p(f(t))}var h="undefined"!=typeof window&&"undefined"!=typeof document,g=h&&!(!window.MSInputMethodContext||!document.documentMode),m=h&&!(!window.MSInputMethodContext||!/MSIE 10/.test(navigator.userAgent));function b(t){return 11===t?g:10===t?m:g||m}function y(t){if(!t)return document.documentElement;for(var e,n=b(10)?document.body:null,a=t.offsetParent||null;a===n&&t.nextElementSibling&&e!==t.nextElementSibling;)a=(e=t.nextElementSibling).offsetParent;var r=a&&a.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(a.nodeName)&&"static"===d(a,"position")?y(a):a:e?e.ownerDocument.documentElement:document.documentElement}function v(t){return null!==t.parentNode?v(t.parentNode):t}function x(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,a=n?t:e,r=n?e:t,i=document.createRange();i.setStart(a,0),i.setEnd(r,0);var o,s,u=i.commonAncestorContainer;if(t!==u&&e!==u||a.contains(r))return"BODY"===(s=(o=u).nodeName)||"HTML"!==s&&y(o.firstElementChild)!==o?y(u):u;var c=v(t);return c.host?x(c.host,e):x(t,v(e).host)}function _(t,e){var n="x"===e?"Left":"Top",a="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+a+"Width"])}function T(t,e,n,a){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],b(10)?parseInt(n["offset"+t],10)+parseInt(a["margin"+("Height"===t?"Top":"Left")],10)+parseInt(a["margin"+("Height"===t?"Bottom":"Right")],10):0)}function w(t){var e=t.body,n=t.documentElement,a=b(10)&&getComputedStyle(n);return{height:T("Height",e,n,a),width:T("Width",e,n,a)}}function S(t,e){void 0===e&&(e="top");var n="top"===e?"scrollTop":"scrollLeft",a=t.nodeName;return"BODY"===a||"HTML"===a?(t.ownerDocument.scrollingElement||t.ownerDocument.documentElement)[n]:t[n]}function O(t){return Object(a.__assign)({},t,{right:t.left+t.width,bottom:t.top+t.height})}function I(t){var e={};try{if(b(10)){e=t.getBoundingClientRect();var n=S(t,"top"),a=S(t,"left");e.top+=n,e.left+=a,e.bottom+=n,e.right+=a}else e=t.getBoundingClientRect()}catch(c){return}var r={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},i="HTML"===t.nodeName?w(t.ownerDocument):{},o=t.offsetWidth-(i.width||t.clientWidth||r.right-r.left),s=t.offsetHeight-(i.height||t.clientHeight||r.bottom-r.top);if(o||s){var u=d(t);o-=_(u,"x"),s-=_(u,"y"),r.width-=o,r.height-=s}return O(r)}function C(t,e,n){void 0===n&&(n=!1);var a=b(10),r="HTML"===e.nodeName,i=I(t),o=I(e),s=p(t),u=d(e),c=parseFloat(u.borderTopWidth),l=parseFloat(u.borderLeftWidth);n&&r&&(o.top=Math.max(o.top,0),o.left=Math.max(o.left,0));var f=O({top:i.top-o.top-c,left:i.left-o.left-l,width:i.width,height:i.height});if(f.marginTop=0,f.marginLeft=0,!a&&r){var h=parseFloat(u.marginTop),g=parseFloat(u.marginLeft);f.top-=c-h,f.bottom-=c-h,f.left-=l-g,f.right-=l-g,f.marginTop=h,f.marginLeft=g}return(a&&!n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(f=function(t,e,n){void 0===n&&(n=!1);var a=S(e,"top"),r=S(e,"left"),i=n?-1:1;return t.top+=a*i,t.bottom+=a*i,t.left+=r*i,t.right+=r*i,t}(f,e)),f}function k(t){if(!t||!t.parentElement||b())return document.documentElement;for(var e=t.parentElement;e&&"none"===d(e,"transform");)e=e.parentElement;return e||document.documentElement}function N(t,e,n,a,r){void 0===n&&(n=0),void 0===r&&(r=!1);var i={top:0,left:0},o=r?k(t):x(t,e);if("viewport"===a)i=function(t,e){void 0===e&&(e=!1);var n=o.ownerDocument.documentElement,a=C(o,n),r=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:S(n),u=e?0:S(n,"left");return O({top:s-Number(a.top)+Number(a.marginTop),left:u-Number(a.left)+Number(a.marginLeft),width:r,height:i})}(0,r);else{var s=void 0;"scrollParent"===a?"BODY"===(s=p(f(e))).nodeName&&(s=t.ownerDocument.documentElement):s="window"===a?t.ownerDocument.documentElement:a;var u=C(s,o,r);if("HTML"!==s.nodeName||function t(e){var n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===d(e,"position")||t(f(e)))}(o))i=u;else{var c=w(t.ownerDocument),l=c.height,h=c.width;i.top+=u.top-u.marginTop,i.bottom=Number(l)+Number(u.top),i.left+=u.left-u.marginLeft,i.right=Number(h)+Number(u.left)}}return i.left+=n,i.top+=n,i.right-=n,i.bottom-=n,i}function R(t,e,n,r,i,o,s){if(void 0===i&&(i=["top","bottom","right","left"]),void 0===o&&(o="viewport"),void 0===s&&(s=0),-1===t.indexOf("auto"))return t;var u=N(n,r,s,o),c={top:{width:u.width,height:e.top-u.top},right:{width:u.right-e.right,height:u.height},bottom:{width:u.width,height:u.bottom-e.bottom},left:{width:e.left-u.left,height:u.height}},l=Object.keys(c).map(function(t){return Object(a.__assign)({key:t},c[t],{area:(e=c[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),d=l.filter(function(t){return t.width>=n.clientWidth&&t.height>=n.clientHeight}),f=(d=d.filter(function(t){return i.some(function(e){return e===t.key})})).length>0?d[0].key:l[0].key,p=t.split(" ")[1];return n.className=n.className.replace(/bs-tooltip-auto/g,"bs-tooltip-"+f),f+(p?"-"+p:"")}function A(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),a=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:Number(t.offsetWidth)+a,height:Number(t.offsetHeight)+n}}function E(t,e,n){return void 0===n&&(n=null),C(e,n?k(t):x(t,e),n)}function D(t,e,n){var a,r=n.split(" ")[0],i=A(t),o={width:i.width,height:i.height},s=-1!==["right","left"].indexOf(r),u=s?"top":"left",c=s?"left":"top",l=s?"height":"width",d=s?"width":"height";return o[u]=e[u]+e[l]/2-i[l]/2,o[c]=r===c?e[c]-i[d]:e[(a={left:"right",right:"left",bottom:"top",top:"bottom"},c.replace(/left|right|bottom|top/g,function(t){return a[t]}))],o}function L(t,e){return t&&t.modifiers&&t.modifiers[e]&&t.modifiers[e].enabled}function P(t,e,n){Object.keys(e).forEach(function(a){var r,i="";-1!==["width","height","top","right","bottom","left"].indexOf(a)&&""!==(r=e[a])&&!isNaN(parseFloat(r))&&isFinite(r)&&(i="px"),n?n.setStyle(t,a,""+String(e[a])+i):t.style[a]=String(e[a])+i})}function M(t){var e,n=t.offsets.target,a=t.instance.target.querySelector(".arrow");if(!a)return t;var r=-1!==["left","right"].indexOf(t.placement),i=r?"height":"width",o=r?"Top":"Left",s=o.toLowerCase(),u=r?"left":"top",c=r?"bottom":"right",l=A(a)[i];t.offsets.host[c]-ln[c]&&(n[s]+=Number(t.offsets.host[s])+Number(l)-Number(n[c])),n=O(n);var f=Number(t.offsets.host[s])+Number(t.offsets.host[i]/2-l/2),p=d(t.instance.target),h=parseFloat(p["margin"+o]),g=parseFloat(p["border"+o+"Width"]),m=f-n[s]-h-g;return m=Math.max(Math.min(n[i]-l,m),0),t.offsets.arrow=((e={})[s]=Math.round(m),e[u]="",e),t.instance.arrow=a,t}function q(t){if(t.offsets.target=O(t.offsets.target),!L(t.options,"flip"))return t.offsets.target=Object(a.__assign)({},t.offsets.target,D(t.instance.target,t.offsets.host,t.placement)),t;var e=N(t.instance.target,t.instance.host,0,"viewport",!1),n=t.placement.split(" ")[0],r=t.placement.split(" ")[1]||"",i=R("auto",t.offsets.host,t.instance.target,t.instance.host,t.options.allowedPositions),o=[n,i];return o.forEach(function(i,s){if(n!==i||o.length===s+1)return t;var u="left"===(n=t.placement.split(" ")[0])&&Math.floor(t.offsets.target.right)>Math.floor(t.offsets.host.left)||"right"===n&&Math.floor(t.offsets.target.left)Math.floor(t.offsets.host.top)||"bottom"===n&&Math.floor(t.offsets.target.top)Math.floor(e.right),d=Math.floor(t.offsets.target.top)Math.floor(e.bottom),p="left"===n&&c||"right"===n&&l||"top"===n&&d||"bottom"===n&&f,h=-1!==["top","bottom"].indexOf(n),g=h&&"left"===r&&c||h&&"right"===r&&l||!h&&"left"===r&&d||!h&&"right"===r&&f;(u||p||g)&&((u||p)&&(n=o[s+1]),g&&(r=function(t){return"right"===t?"left":"left"===t?"right":t}(r)),t.placement=n+(r?" "+r:""),t.offsets.target=Object(a.__assign)({},t.offsets.target,D(t.instance.target,t.offsets.host,t.placement)))}),t}function j(t){if(!L(t.options,"preventOverflow"))return t;var e=t.instance.target.style,n=e.top,r=e.left,i=e.transform;e.top="",e.left="",e.transform="";var o=N(t.instance.target,t.instance.host,0,"scrollParent",!1);e.top=n,e.left=r,e.transform=i;var s,u={primary:function(e){var n,a=t.offsets.target[e];return t.offsets.target[e]o[e]&&(r=Math.min(t.offsets.target[a],o[e]-("right"===e?t.offsets.target.width:t.offsets.target.height))),(n={})[a]=r,n}};return["left","right","top","bottom"].forEach(function(e){s=-1!==["left","top"].indexOf(e)?"primary":"secondary",t.offsets.target=Object(a.__assign)({},t.offsets.target,u[s](e))}),t}function F(t){var e,n,r=t.placement,i=r.split(" ")[0],o=r.split(" ")[1];if(o){var s=t.offsets,u=s.host,c=s.target,l=-1!==["bottom","top"].indexOf(i),d=l?"left":"top",f=l?"width":"height",p={start:(e={},e[d]=u[d],e),end:(n={},n[d]=u[d]+u[f]-c[f],n)};t.offsets.target=Object(a.__assign)({},c,p[o])}return t}var z=new(function(){function t(){}return t.prototype.position=function(t,e,n){return void 0===n&&(n=!0),this.offset(t,e,!1)},t.prototype.offset=function(t,e,n){return void 0===n&&(n=!0),E(e,t)},t.prototype.positionElements=function(t,e,n,a,r){return[q,F,j,M].reduce(function(t,e){return e(t)},function(t,e,n,a){var r=E(t,e);n.match(/^(auto)*\s*(left|right|top|bottom)*$/)||n.match(/^(left|right|top|bottom)*\s*(start|end)*$/)||(n="auto");var i=!!n.match(/auto/g),o=n.match(/auto\s(left|right|top|bottom)/)?n.split(" ")[1]||"auto":n;return{options:a,instance:{target:t,host:e,arrow:null},offsets:{target:D(t,r,o),host:r,arrow:null},positionFixed:!1,placement:o=R(o,r,t,e,a?a.allowedPositions:void 0),placementAuto:i}}(e,t,n,r))},t}()),G=function(){function t(t,e){var n=this;this.update$$=new o.a,this.positionElements=new Map,this.isDisabled=!1,Object(i.isPlatformBrowser)(e)&&(this.triggerEvent$=Object(s.a)(Object(u.a)(window,"scroll"),Object(u.a)(window,"resize"),Object(c.a)(0,l.a),this.update$$),this.triggerEvent$.subscribe(function(){n.isDisabled||n.positionElements.forEach(function(e){var a,r,i,o,s,u,c,l;a=Y(e.target),r=Y(e.element),i=e.attachment,o=e.appendToBody,s=n.options,u=t.createRenderer(null,null),P(r,{"will-change":"transform",top:"0px",left:"0px",transform:"translate3d("+(l=function(t){return{width:t.offsets.target.width,height:t.offsets.target.height,left:Math.floor(t.offsets.target.left),top:Math.round(t.offsets.target.top),bottom:Math.round(t.offsets.target.bottom),right:Math.floor(t.offsets.target.right)}}(c=z.positionElements(a,r,i,o,s))).left+"px, "+l.top+"px, 0px)"},u),c.instance.arrow&&P(c.instance.arrow,c.offsets.arrow,u),function(t,e){var n=t.instance.target,a=n.className;t.placementAuto&&(-1!==(a=(a=(a=a.replace(/bs-popover-auto/g,"bs-popover-"+t.placement)).replace(/bs-tooltip-auto/g,"bs-tooltip-"+t.placement)).replace(/\sauto/g," "+t.placement)).indexOf("popover")&&-1===a.indexOf("popover-auto")&&(a+=" popover-auto"),-1!==a.indexOf("tooltip")&&-1===a.indexOf("tooltip-auto")&&(a+=" tooltip-auto")),a=a.replace(/left|right|top|bottom/g,""+t.placement.split(" ")[0]),e?e.setAttribute(n,"class",a):n.className=a}(c,u)})}))}return t.prototype.position=function(t){this.addPositionElement(t)},Object.defineProperty(t.prototype,"event$",{get:function(){return this.triggerEvent$},enumerable:!0,configurable:!0}),t.prototype.disable=function(){this.isDisabled=!0},t.prototype.enable=function(){this.isDisabled=!1},t.prototype.addPositionElement=function(t){this.positionElements.set(Y(t.element),t)},t.prototype.calcPosition=function(){this.update$$.next()},t.prototype.deletePositionElement=function(t){this.positionElements.delete(Y(t))},t.prototype.setOptions=function(t){this.options=t},t}();function Y(t){return"string"==typeof t?document.querySelector(t):t instanceof r.ElementRef?t.nativeElement:t}},NUGo:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("ZYCi"),o=n("xtZt"),s=n("lqqz");n("S7zO"),n.d(e,"a",function(){return u}),n.d(e,"b",function(){return g});var u=a["\u0275crt"]({encapsulation:0,styles:[[".dropdown-menu[_ngcontent-%COMP%] > .disabled[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{pointer-events:auto;cursor:default!important}"]],data:{}});function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,6,"button",[["class","btn btn-sm btn-primary"],["type","button"]],null,[[null,"click"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==a["\u0275nov"](t,4).onClick()&&r),"click"===e&&(r=!1!==i.useClickAction(t.context.ngIf)&&r),r},null,null)),a["\u0275did"](2,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](3,{disabled:0}),a["\u0275did"](4,16384,null,0,i.m,[i.l,i.a,[8,null],a.Renderer2,a.ElementRef],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["\u0275eld"](5,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](7,null,["",""]))],function(t,e){var n=e.component,a=t(e,3,0,n.disableSelectionAction(e.context.ngIf));t(e,2,0,"btn btn-sm btn-primary",a),t(e,4,0,e.context.ngIf.preserveFragment?"":null,n.useRouterLink(e.context.ngIf))},function(t,e){t(e,5,0,a["\u0275inlineInterpolate"](1,"fa fa-fw ",e.context.ngIf.icon,"")),t(e,7,0,e.context.ngIf.name)})}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.component.onlyDropDown)})}function d(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"span",[["class","sr-only"]],null,null,null,null,null))],null,null)}function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"button",[["class","btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split"],["dropdownToggle",""],["type","button"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick()&&r),r},null,null)),a["\u0275did"](1,147456,null,0,o.g,[a.ChangeDetectorRef,o.c,a.ElementRef,a.Renderer2,o.f],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,l)),a["\u0275did"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](4,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,d)),a["\u0275did"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.onlyDropDown),t(e,6,0,!n.onlyDropDown)},function(t,e){t(e,0,0,!0,a["\u0275nov"](e,1).isDisabled,a["\u0275nov"](e,1).isOpen)})}function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,8,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,7,"li",[["data-toggle","tooltip"],["role","menuitem"]],[[8,"title",0]],null,null,null,null)),a["\u0275did"](2,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](3,{disabled:0}),(t()(),a["\u0275eld"](4,0,null,null,4,"a",[["class","dropdown-item"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==a["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),"click"===e&&(r=!1!==i.useClickAction(t.context.$implicit)&&r),r},null,null)),a["\u0275did"](5,671744,null,0,i.o,[i.l,i.a,r.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](8,null,["",""]))],function(t,e){var n=e.component,r=a["\u0275inlineInterpolate"](1,"",n.toClassName(e.context.$implicit.name),""),i=t(e,3,0,n.disableSelectionAction(e.context.$implicit));t(e,2,0,r,i),t(e,5,0,e.context.$implicit.preserveFragment?"":null,n.useRouterLink(e.context.$implicit))},function(t,e){t(e,1,0,a["\u0275inlineInterpolate"](1,"",e.component.useDisableDesc(e.context.$implicit),"")),t(e,4,0,a["\u0275nov"](e,5).target,a["\u0275nov"](e,5).href),t(e,6,0,a["\u0275inlineInterpolate"](1,"fa fa-fw ",e.context.$implicit.icon,"")),t(e,8,0,e.context.$implicit.name)})}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"ul",[["class","dropdown-menu"],["role","menu"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](2,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.dropDownActions)},null)}function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,16777216,null,null,8,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["\u0275prd"](512,null,o.f,o.f,[]),a["\u0275did"](2,212992,null,0,o.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,s.a,o.a,o.f],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,f)),a["\u0275did"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,h)),a["\u0275did"](8,16384,null,0,o.d,[o.f,a.ViewContainerRef,a.TemplateRef],null,null)],function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.getCurrentButton()),t(e,6,0,n.showDropDownActions())},function(t,e){t(e,0,0,a["\u0275nov"](e,2).dropup,a["\u0275nov"](e,2).isOpen,a["\u0275nov"](e,2).isOpen&&a["\u0275nov"](e,2).isBs4)})}},Nehr:function(t,e,n){"use strict";t.exports={isString:function(t){return"string"==typeof t},isObject:function(t){return"object"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}}},Nia1:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("3/HP")),a(n("FLvf")),a(n("2V7f")),a(n("fktO")),a(n("QHrR")),a(n("i3PA"))},O5R2:function(t,e,n){"use strict";n.r(e);var a=n("6blF"),r=n("VnD/");a.a.prototype.filter=function(t,e){return Object(r.a)(t,e)(this)}},OAkW:function(t,e,n){"use strict";e.subscribeToArray=function(t){return function(e){for(var n=0,a=t.length;n\n \n \n \n Toggle navigation\n Alternar navega\xe7\xe3o\n \n \n Dashboard\n Painel de controle\n \n \n Cluster\n Cluster\n \n \n Hosts\n Hosts\n \n \n Monitors\n Monitores\n \n \n OSDs\n OSDs\n \n \n Configuration\n Configura\xe7\xe3o\n \n \n CRUSH map\n Mapa CRUSH\n \n \n Manager modules\n M\xf3dulos do gerenciador\n \n \n Logs\n Registros\n \n \n Alerts\n Alertas\n \n \n Silences\n Silences\n \n \n Pools\n Pools\n \n \n Block\n Bloco\n \n \n Images\n Imagens\n \n \n Mirroring\n Espelhamento\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Sistemas de arquivos\n \n \n Object Gateway\n Gateway de Objetos\n \n \n Daemons\n Daemons\n \n \n Users\n Usu\xe1rios\n \n \n Buckets\n Compartimentos\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Recuperando dados\n de\n \n \n . Aguarde...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Exibindo dados armazenados em cache anteriormente\n \n para \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n N\xe3o foi poss\xedvel carregar os dados\n de\n \n \n .\n Verifique a sa\xfade do cluster.\n \n \n \n Back\n Voltar\n \n \n Select a Language\n Selecionar Idioma\n \n \n Loading panel data...\n Carregando dados do painel...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Consulte a\n documenta\xe7\xe3o\n sobre como\n configurar e habilitar a funcionalidade de monitoramento.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n O Painel de Controle do Grafana n\xe3o existe. Consulte a\n documenta\xe7\xe3o\n sobre como\n adicionar pain\xe9is de controle ao Grafana.\n \n \n \n Grafana Time Picker\n Seletor de Hor\xe1rio do Grafana\n \n \n Reset Settings\n Redefinir Configura\xe7\xf5es\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Falha ao carregar dados.\n \n \n selected\n selecionado(s)\n X selected\n \n \n found\n encontrado(s)\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Editar\n \n \n Name\n Nome\n \n \n Description\n Descri\xe7\xe3o\n \n \n Long description\n Descri\xe7\xe3o extensa\n \n \n Default\n Padr\xe3o\n \n \n Daemon default\n Padr\xe3o do daemon\n \n \n Services\n Servi\xe7os\n \n \n Values\n Valores\n \n \n The entered value is too high! It must not be greater than \n .\n \n O valor inserido \xe9 muito alto! Ele n\xe3o pode ser maior do que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n O valor inserido \xe9 muito baixo! Ele n\xe3o deve ser menor do que \n .\n \n \n \n Save\n Salvar\n \n \n CRUSH map viewer\n Visualizador de mapa CRUSH\n \n \n Hosts List\n Lista de Hosts\n \n \n Overall Performance\n Desempenho Geral\n \n \n No entries found\n Nenhuma entrada encontrada\n \n \n Cluster Logs\n Registros do Cluster\n \n \n Audit Logs\n Registros de Auditoria\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Carregando configura\xe7\xe3o...\n \n \n The configuration could not be loaded.\n N\xe3o foi poss\xedvel carregar a configura\xe7\xe3o.\n \n \n Edit Manager module\n Editar m\xf3dulo do gerenciador\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n O valor inserido n\xe3o \xe9 um UUID v\xe1lido. Ex.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n O valor inserido precisa ser um endere\xe7o IP v\xe1lido.\n \n \n This field is required.\n Este campo \xe9 obrigat\xf3rio.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n O valor inserido \xe9 muito alto! Ele deve ser menor ou igual a \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n O valor inserido \xe9 muito baixo! Ele deve ser maior ou igual a \n .\n \n \n \n The entered value needs to be a number.\n O valor inserido precisa ser um n\xfamero.\n \n \n The entered value needs to be a number or decimal.\n O valor inserido precisa ser um n\xfamero ou decimal.\n \n \n Update\n Atualizar\n \n \n Status\n Status\n \n \n Cluster ID\n ID do Cluster\n \n \n monmap modified\n monmap modificado\n \n \n monmap epoch\n \xe9poca de monmap\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n con obrigat\xf3rio\n \n \n required mon\n mon obrigat\xf3rio\n \n \n In Quorum\n No Quorum\n \n \n Not In Quorum\n N\xe3o est\xe1 no Quorum\n \n \n Cancel\n Cancelar\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Deseja realmente \n o(a) \n selecionado(a)?\n \n \n \n Yes, I am sure.\n Sim, desejo.\n \n \n Cluster-wide OSD Flags\n Flags OSD de todo o Cluster\n \n \n Submit\n Enviar\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avan\xe7ado...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Prioridade de Recupera\xe7\xe3o de OSD\n \n \n Priority\n Prioridade\n \n \n Customize priority values\n Personalizar valores de prioridade\n \n \n This field is required!\n Este campo \xe9 obrigat\xf3rio!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n O valor inserido \xe9 muito alto! Ele n\xe3o pode ser maior do que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n O valor inserido \xe9 muito baixo! Ele n\xe3o deve ser menor do que \n .\n \n \n \n Reweight OSD\n Reponderar OSD\n \n \n The value needs to be between 0 and 1.\n O valor precisa ser entre 0 e 1.\n \n \n Reweight\n Reponderar\n \n \n OSDs \n Scrub\n \n Remo\xe7\xe3o de OSDs \n \n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Profundo } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Voc\xea est\xe1 prestes a aplicar uma \n remo\xe7\xe3o ao\n OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {profundo} }\n \n \n OSDs List\n Lista de OSDs\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n OSD \n \n ser\xe1 marcado como\n \n \n se voc\xea continuar.\n \n \n \n The OSD is not safe to destroy!\n N\xe3o \xe9 seguro destruir o OSD!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n OSD \n \n ser\xe1\n \n \n se voc\xea continuar.\n \n \n \n Details\n Detalhes\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valor\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Fechar\n \n \n Delete\n Excluir\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Sa\xfade\n \n \n Statistics\n Estat\xedsticas\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Consulte a \n documenta\xe7\xe3o\n \n sobre como configurar e habilitar a funcionalidade de gerenciamento do NFS Ganesha.\n \n \n \n Clients\n Clientes\n \n \n Any client can access\n Qualquer cliente pode acessar\n \n \n Addresses\n Endere\xe7os\n \n \n Required field\n Campo obrigat\xf3rio\n \n \n Must contain one or more comma-separated values\n Deve conter um ou mais valores separados por v\xedrgula\n \n \n For example:\n Por exemplo:\n \n \n Access Type\n Tipo de Acesso\n \n \n Squash\n Executar Squash\n \n \n Add clients\n Adicionar clientes\n \n \n Loading...\n Carregando...\n \n \n -- No cluster available --\n -- N\xe3o h\xe1 clusters dispon\xedveis --\n \n \n -- Select the cluster --\n -- Selecionar cluster --\n \n \n Add daemon\n Adicionar daemon\n \n \n Storage Backend\n Backend de Armazenamento\n \n \n -- No data pools available --\n -- N\xe3o h\xe1 pools de dados dispon\xedveis --\n \n \n -- Select the storage backend --\n -- Selecionar backend de armazenamento --\n \n \n Object Gateway User\n Usu\xe1rio do Gateway de Objetos\n \n \n -- No users available --\n -- N\xe3o h\xe1 usu\xe1rios dispon\xedveis --\n \n \n -- Select the object gateway user --\n -- Selecionar usu\xe1rio do gateway de objetos --\n \n \n CephFS User ID\n ID de Usu\xe1rio do CephFS\n \n \n -- No clients available --\n -- N\xe3o h\xe1 clientes dispon\xedveis --\n \n \n -- Select the cephx client --\n -- Selecionar cliente do cephx --\n \n \n CephFS Name\n Nome do CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n R\xf3tulo de Seguran\xe7a\n \n \n Enable security label\n Habilitar r\xf3tulo de seguran\xe7a\n \n \n CephFS Path\n Caminho do CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n O caminho precisa come\xe7ar com \'/\' e pode ser seguido de uma palavra\n \n \n New directory will be created\n Novo diret\xf3rio ser\xe1 criado\n \n \n Path\n Caminho\n \n \n Path can only be a single \'/\' or a word\n O caminho pode ser apenas uma \'/\' ou uma palavra\n \n \n New bucket will be created\n Novo compartimento ser\xe1 criado\n \n \n NFS Protocol\n Protocolo NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Acesso alternativo \xe0s montagens do \n NFS v3\n (n\xe3o deve ter / \xe0 esquerda).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Clientes n\xe3o podem montar subdiret\xf3rios (ou seja, se Tag = foo, o cliente n\xe3o poder\xe1 montar foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Ao usar op\xe7\xf5es diferentes de Tag, o mesmo Caminho pode ser exportado v\xe1rias vezes.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n A posi\xe7\xe3o que esta exporta\xe7\xe3o de \n NFS v4\n ocupa\n no \n Pseudo FS\n (deve ser exclusiva).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Ao usar op\xe7\xf5es diferentes de Pseudo, o mesmo Caminho pode ser exportado v\xe1rias vezes.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- N\xe3o h\xe1 tipos de acesso dispon\xedveis --\n \n \n -- Select the access type --\n -- Selecionar tipo de acesso --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- N\xe3o h\xe1 squashes dispon\xedveis --\n \n \n --Select what kind of user id squashing is performed --\n --Selecionar que tipo de squash de ID de usu\xe1rio ser\xe1 executado --\n \n \n Transport Protocol\n Protocolo de Transporte\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Bem-vindo ao Ceph!\n The welcome message on the login page\n \n \n Username is required\n Nome de usu\xe1rio \xe9 obrigat\xf3rio\n \n \n Password is required\n Senha \xe9 obrigat\xf3ria\n \n \n Login\n Login\n \n \n Sorry, the user does not exist in Ceph.\n O usu\xe1rio n\xe3o existe no Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Retorne \xe0 \n P\xe1gina de Login\n . Seu logout ser\xe1 efetuado do Provedor de Identidade quando voc\xea repetir o login.\n \n \n \n Forbidden\n Proibido\n \n \n Sorry, you are not allowed to see what you were looking for.\n Voc\xea n\xe3o tem permiss\xe3o para ver o que est\xe1 procurando.\n \n \n Sorry, we could not find what you were looking for\n N\xe3o foi poss\xedvel localizar o que voc\xea est\xe1 procurando\n \n \n Remove all\n Remover tudo\n \n \n Recent Notifications\n Notifica\xe7\xf5es Recentes\n \n \n There are no background tasks.\n N\xe3o h\xe1 tarefas em segundo plano.\n \n \n Background Tasks\n Tarefas em Segundo Plano\n \n \n Help\n Ajuda\n \n \n Documentation\n Documenta\xe7\xe3o\n \n \n API\n API\n \n \n About\n Sobre\n \n \n Dashboard Settings\n Configura\xe7\xf5es do Painel de Controle\n \n \n User management\n Gerenciamento de usu\xe1rios\n \n \n Logged in user\n Usu\xe1rio que efetuou login\n \n \n Signed in as\n \n \n \n \n Efetuar login como\n \n \n \n \n \n \n Sign out\n Efetuar logout\n \n \n Name...\n Nome...\n \n \n The chosen name is already in use.\n O nome escolhido j\xe1 est\xe1 em uso.\n \n \n Description...\n Descri\xe7\xe3o...\n \n \n Permissions\n Permiss\xf5es\n \n \n Roles\n Fun\xe7\xf5es\n \n \n Username\n Nome de usu\xe1rio\n \n \n Password\n Senha\n \n \n Confirm password\n Confirmar senha\n \n \n Password confirmation doesn\'t match the password.\n A confirma\xe7\xe3o de senha n\xe3o corresponde \xe0 senha.\n \n \n Full name\n Nome completo\n \n \n Email\n E-mail\n \n \n Invalid email.\n E-mail inv\xe1lido.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Voc\xea est\xe1 prestes a remover as permiss\xf5es de "leitura/atualiza\xe7\xe3o de usu\xe1rio" do seu pr\xf3prio usu\xe1rio.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Se voc\xea continuar, n\xe3o poder\xe1 mais adicionar ou remover fun\xe7\xf5es de nenhum usu\xe1rio.\n \n \n Are you sure you want to continue?\n Deseja realmente continuar?\n \n \n Performance counters not available\n Contadores de desempenho n\xe3o dispon\xedveis\n \n \n Attributes (OSD map)\n Atributos (mapa OSD)\n \n \n Metadata not available\n Metadados n\xe3o dispon\xedveis\n \n \n Metadata\n Metadados\n \n \n Performance counter\n Contador de desempenho\n \n \n Histogram not available: \n \n \n Histograma n\xe3o dispon\xedvel: \n \n \n \n \n Writes\n Grava\xe7\xf5es\n \n \n Reads\n Leituras\n \n \n Histogram\n Histograma\n \n \n Performance Details\n Detalhes de Desempenho\n \n \n Current values\n Valores atuais\n \n \n Type\n Tipo\n \n \n Min\n M\xedn.\n \n \n Max\n M\xe1x.\n \n \n Flags\n Flags\n \n \n Source\n Origem\n \n \n Level\n N\xedvel\n \n \n Can be updated at runtime (editable)\n Pode ser atualizado em tempo de execu\xe7\xe3o (edit\xe1vel)\n \n \n Tags\n Tags\n \n \n Enum values\n Valores de enum\n \n \n See also\n Consulte tamb\xe9m\n \n \n Cluster Status\n Status do Cluster\n \n \n Manager Daemons\n Daemons do Gerenciador\n \n \n Object Gateways\n Gateways de Objetos\n \n \n Metadata Servers\n Servidores de Metadados\n \n \n iSCSI Gateways\n Gateways iSCSI\n \n \n Client IOPS\n IOPS do Cliente\n \n \n Client Throughput\n Throughput do Cliente\n \n \n Client Read/Write\n Leitura/Grava\xe7\xe3o do Cliente\n \n \n Recovery Throughput\n Throughput de Recupera\xe7\xe3o\n \n \n Scrub\n Remo\xe7\xe3o\n \n \n Performance\n Desempenho\n \n \n Raw Capacity\n Capacidade Bruta\n \n \n Objects\n Objetos\n \n \n PGs per OSD\n PGs por OSD\n \n \n PG Status\n Status do PG\n \n \n Capacity\n Capacidade\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Consulte os \n Registros\n para obter mais detalhes.\n \n \n \n Ranks\n Posi\xe7\xf5es\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clientes: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Mover imagem para o lixo\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Para mover \n \n /\n \n para o lixo,\n clique em \n Mover Imagem\n . Se preferir, escolha uma data de vencimento.\n \n \n \n Protection expires at\n Vencimento da prote\xe7\xe3o em\n \n \n NOT PROTECTED\n N\xc3O PROTEGIDO\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Formato de data incorreto. Use "AAAA-MM-DD HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n A prote\xe7\xe3o j\xe1 venceu. Escolha uma data no futuro ou deixe-a vazia.\n \n \n Move Image\n Mover Imagem\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Vis\xe3o geral\n \n \n Targets\n Destinos\n \n \n Discovery Authentication\n Autentica\xe7\xe3o de Descoberta\n \n \n User\n Usu\xe1rio\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Os nomes de usu\xe1rio devem ter entre 8 e 64 caracteres e\n apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Usu\xe1rio M\xfatuo\n \n \n Mutual Password\n Senha M\xfatua\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Consulte a \n documenta\xe7\xe3o\n \n sobre como configurar e habilitar a funcionalidade de gerenciamento de Destinos iSCSI.\n \n \n \n Available information:\n Informa\xe7\xf5es dispon\xedveis:\n \n \n iSCSI Targets not available\n Destinos iSCSI n\xe3o dispon\xedveis\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Dispon\xedvel apenas para imagens RBD com \n diff r\xe1pido\n habilitado\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Pool de Dados\n \n \n Created\n Criado\n \n \n Size\n Tamanho\n \n \n Object size\n Tamanho do objeto\n \n \n Features\n Recursos\n \n \n Provisioned\n Aprovisionado\n \n \n N/A\n N/A\n \n \n Total provisioned\n Total aprovisionado\n \n \n Striping unit\n Unidade de distribui\xe7\xe3o\n \n \n Striping count\n Total de distribui\xe7\xf5es\n \n \n Parent\n Pai\n \n \n Block name prefix\n Prefixo do nome do bloco\n \n \n Order\n Ordem\n \n \n Snapshots\n Instant\xe2neos\n \n \n Image\n Imagem\n \n \n This setting overrides the global value\n Esta configura\xe7\xe3o substitui o valor global\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Este \xe9 o valor global. Nenhum valor para esta op\xe7\xe3o foi definido para esta imagem.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' e \'@\' n\xe3o s\xe3o permitidos.\n \n \n -- No rbd pools available --\n -- N\xe3o h\xe1 pools de RBD dispon\xedveis --\n \n \n -- Select a pool --\n -- Selecionar pool --\n \n \n Use a dedicated data pool\n Usar pool de dados dedicado\n \n \n Data pool\n Pool de dados\n \n \n Dedicated pool that stores the object-data of the RBD.\n Pool dedicado que armazena os dados de objetos do RBD.\n \n \n e.g., 10GiB\n ex. 10 GiB\n \n \n You have to increase the size.\n Voc\xea precisa aumentar o tamanho.\n \n \n Advanced\n Avan\xe7ado\n \n \n Striping\n Distribui\xe7\xe3o\n \n \n Stripe unit\n Unidade de distribui\xe7\xe3o\n \n \n -- Select stripe unit --\n -- Selecionar unidade de distribui\xe7\xe3o --\n \n \n This field is required because stripe count is defined!\n Este campo \xe9 obrigat\xf3rio porque o total de distribui\xe7\xf5es foi definido!\n \n \n Stripe unit is greater than object size.\n A unidade de distribui\xe7\xe3o \xe9 maior do que o tamanho do objeto.\n \n \n Stripe count\n Total de distribui\xe7\xf5es\n \n \n This field is required because stripe unit is defined!\n Este campo \xe9 obrigat\xf3rio porque a unidade de distribui\xe7\xe3o foi definida!\n \n \n Stripe count must be greater than 0.\n O total de distribui\xe7\xf5es deve ser maior do que 0.\n \n \n \n RBD Snapshot\n \n \n Instant\xe2neo do RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Renomear} other {Criar} }\n \n \n \n Snapshot\n \n \n Instant\xe2neo\n \n \n \n PROTECTED\n PROTEGIDO\n \n \n UNPROTECTED\n N\xc3O PROTEGIDO\n \n \n You are about to rollback\n Voc\xea est\xe1 prestes a fazer rollback\n \n \n Purge Trash\n Purgar Lixo\n \n \n To purge, select one or All images and click\n Para purgar, selecione uma ou Todas as imagens e clique em\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Nome do pool...\n \n \n All\n Tudo\n \n \n Restore Image\n Restaurar Imagem\n \n \n To restore\n Para restaurar\n \n \n type the image\'s new name and click\n digite o novo nome da imagem e clique em\n \n \n New Name\n Novo Nome\n \n \n Expired at\n Venceu em\n \n \n Protected until\n Protegido at\xe9\n \n \n This image is protected until \n .\n \n Esta imagem est\xe1 protegida at\xe9 \n .\n \n \n \n Trash\n Lixo\n \n \n iSCSI Topology\n Topologia iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n N\xe3o costuma ser necess\xe1rio mudar o valor padr\xe3o destes par\xe2metros.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Configura\xe7\xf5es\n \n \n Backstore\n Backstore\n \n \n Confirm\n Confirmar\n \n \n Advanced Settings\n Configura\xe7\xf5es Avan\xe7adas\n \n \n Target IQN\n IQN de Destino\n \n \n IQN has wrong pattern.\n IQN tem padr\xe3o incorreto.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Um IQN tem a seguinte nota\xe7\xe3o \'iqn.$year-$month.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Por exemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Mais informa\xe7\xf5es\n \n \n This target has modified advanced settings.\n Este destino tem configura\xe7\xf5es avan\xe7adas modificadas.\n \n \n Portals\n Portais\n \n \n At least \n gateways are required.\n \n Pelo menos \n gateways s\xe3o necess\xe1rios.\n \n \n \n Add portal\n Adicionar portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Esta imagem tem configura\xe7\xf5es modificadas.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Adicionar imagem\n \n \n ACL authentication\n Autentica\xe7\xe3o ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Iniciadores\n \n \n Initiator\n Iniciador\n \n \n Client IQN\n IQN do Cliente\n \n \n Initiator IQN needs to be unique.\n O IQN do Iniciador precisa ser exclusivo.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Os nomes de usu\xe1rio devem ter entre 8 e 64 caracteres e\n apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n O iniciador pertence a um grupo. As imagens ser\xe3o configuradas no grupo.\n \n \n No items added.\n Nenhum item adicionado.\n \n \n Add initiator\n Adicionar iniciador\n \n \n Groups\n Grupos\n \n \n Group\n Grupo\n \n \n Add group\n Adicionar grupo\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configura\xe7\xe3o de RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Remova o valor de configura\xe7\xe3o local. No lugar dele, o valor de configura\xe7\xe3o pai ser\xe1 herdado e usado.\n \n \n The mininum value is 0\n O valor m\xednimo \xe9 0\n \n \n Issues\n Problemas\n \n \n Syncing\n Sincronizando\n \n \n Ready\n Pronto\n \n \n Edit pool mirror mode\n Editar modo de espelho do pool\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Para editar o modo de espelho do pool\xa0\n \n \n , selecione o novo modo na lista e clique em\xa0\n Atualizar\n .\n \n \n \n Mode\n Modo\n \n \n Peer clusters must be removed prior to disabling mirror.\n Clusters de peer devem ser removidos antes de desabilitar o espelho.\n \n \n \n \n pool mirror peer\n \n \n \n peer de espelho do pool\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Editar} other {Adicionar} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n os atributos\n de peer de espelho do pool \n \n \n e clique em \n Enviar\n .\n \n \n \n Cluster Name\n Nome do Cluster\n \n \n The cluster name is not valid.\n O nome do cluster n\xe3o \xe9 v\xe1lido.\n \n \n CephX ID\n ID do CephX\n \n \n CephX ID...\n ID do CephX...\n \n \n The CephX ID is not valid.\n O ID do CephX n\xe3o \xe9 v\xe1lido.\n \n \n Monitor Addresses\n Endere\xe7os do Monitor\n \n \n Comma-delimited addresses...\n Endere\xe7os delimitados por v\xedrgula...\n \n \n The monitory address is not valid.\n O endere\xe7o de monitoria n\xe3o \xe9 v\xe1lido.\n \n \n CephX Key\n Chave do CephX\n \n \n Base64-encoded key...\n Chave codificada com base64...\n \n \n CephX key must be base64 encoded.\n A chave do CephX deve ser codificada com base64.\n \n \n Pools List\n Lista de Pools\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n O nome pode conter apenas caracteres alfanum\xe9ricos, tra\xe7os e sublinhados.\n \n \n The chosen erasure code profile name is already in use.\n O nome do perfil de c\xf3digo de elimina\xe7\xe3o escolhido j\xe1 est\xe1 em uso.\n \n \n Plugin\n Plug-in\n \n \n Data chunks (k)\n Pacotes de dados (k)\n \n \n Must be equal to or greater than 2.\n Deve ser igual ou maior do que 2.\n \n \n Coding chunks (m)\n Pacotes de codifica\xe7\xe3o (m)\n \n \n Must be equal to or greater than 1.\n Deve ser igual ou maior do que 1.\n \n \n Durability estimator (c)\n Estimador de durabilidade (c)\n \n \n Locality (l)\n Localidade (l)\n \n \n Crush failure domain\n Dom\xednio de falha do Crush\n \n \n Crush Locality\n Localidade do Crush\n \n \n None\n Nenhum\n \n \n Technique\n T\xe9cnica\n \n \n Packetsize\n Tamanho do pacote\n \n \n Crush root\n Raiz do Crush\n \n \n Crush device class\n Classe do dispositivo do Crush\n \n \n any\n qualquer\n \n \n Directory\n Diret\xf3rio\n \n \n The chosen Ceph pool name is already in use.\n O nome do pool do Ceph escolhido j\xe1 est\xe1 em uso.\n \n \n Pool type\n Tipo de pool\n \n \n -- Select a pool type --\n -- Selecionar tipo de pool --\n \n \n Placement groups\n Grupos de posicionamento\n \n \n At least one placement group is needed!\n Pelo menos um grupo de posicionamento \xe9 necess\xe1rio!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Seu cluster n\xe3o pode processar tantos PGs. Recalcule a quantidade de PG necess\xe1ria.\n \n \n Calculation help\n Ajuda no c\xe1lculo\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n As configura\xe7\xf5es de PGs atuais foram calculadas para voc\xea. Verifique\n se os valores atendem \xe0s suas necessidades antes de enviar.\n \n \n Crush ruleset\n Conjunto de regras do Crush\n \n \n -- Select a crush rule --\n -- Selecionar regra de crush --\n \n \n Crush rule\n Regra de Crush\n \n \n Crush steps\n Etapas do Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Imposs\xedvel usar a regra no cluster atual porque ela tem\n poucos OSDs para atender ao OSD m\xednimo necess\xe1rio para esta regra.\n \n \n Replicated size\n Tamanho replicado\n \n \n Minimum: \n \n \n M\xednimo: \n \n \n \n \n Maximum: \n \n \n M\xe1ximo: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n O tamanho especificado est\xe1 fora da faixa. Um valor de\n a \n \xe9 v\xe1lido.\n \n \n \n Erasure code profile\n Perfil do c\xf3digo de elimina\xe7\xe3o\n \n \n -- No erasure code profile available --\n -- N\xe3o h\xe1 perfis de c\xf3digo de elimina\xe7\xe3o dispon\xedveis --\n \n \n -- Select an erasure code profile --\n -- Selecionar perfil do c\xf3digo de elimina\xe7\xe3o --\n \n \n EC Overwrites\n Sobregrava\xe7\xf5es de EC\n \n \n Applications\n Aplicativos\n \n \n Compression\n Compacta\xe7\xe3o\n \n \n Algorithm\n Algoritmo\n \n \n -- No erasure compression algorithm available --\n -- N\xe3o h\xe1 algoritmos de compacta\xe7\xe3o de elimina\xe7\xe3o dispon\xedveis --\n \n \n Minimum blob size\n Tamanho m\xednimo do blob\n \n \n e.g., 128KiB\n ex. 128 KiB\n \n \n Value should be greater than 0\n O valor deve ser maior do que 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Tamanho m\xe1ximo do blob\n \n \n e.g., 512KiB\n ex. 512 KiB\n \n \n Value should be greater than the minimum blob size\n O valor deve ser maior do que o tamanho m\xednimo do blob\n \n \n Ratio\n Taxa\n \n \n Compression ratio\n Taxa de compacta\xe7\xe3o\n \n \n Value should be between 0.0 and 1.0\n O valor deve ser entre 0.0 e 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Imposs\xedvel criar um pool de RBD com \'/\' no nome.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Altere o nome ou remova o \'rbd\' da lista de aplicativos.\n \n \n Cache Tiers Details\n Detalhes das Camadas do Cache\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Consulte a \n documenta\xe7\xe3o\n \n sobre como configurar e habilitar a funcionalidade de gerenciamento do Gateway de Objetos.\n \n \n \n Daemons List\n Lista de Daemons\n \n \n Performance Counters\n Contadores de Desempenho\n \n \n Loading bucket data...\n Carregando dados do compartimento...\n \n \n The bucket data could not be loaded.\n N\xe3o foi poss\xedvel carregar os dados do compartimento.\n \n \n Id\n ID\n \n \n The value is not valid.\n O valor n\xe3o \xe9 v\xe1lido.\n \n \n Owner\n Propriet\xe1rio\n \n \n -- Select a user --\n -- Selecionar usu\xe1rio --\n \n \n ID\n ID\n \n \n Index type\n Tipo de \xedndice\n \n \n Placement rule\n Regra de posicionamento\n \n \n Marker\n Marcador\n \n \n Maximum marker\n Marcador m\xe1ximo\n \n \n Version\n Vers\xe3o\n \n \n Master version\n Vers\xe3o master\n \n \n Modification time\n Hor\xe1rio da modifica\xe7\xe3o\n \n \n Zonegroup\n Grupo de zonas\n \n \n Bucket quota\n Cota do compartimento\n \n \n Enabled\n Habilitado\n \n \n Maximum size\n Tamanho m\xe1ximo\n \n \n Unlimited\n Ilimitado\n \n \n Maximum objects\n M\xe1ximo de objetos\n \n \n -- Select a username --\n -- Selecionar nome de usu\xe1rio --\n \n \n Auto-generate key\n Gerar chave automaticamente\n \n \n Access key\n Chave de acesso\n \n \n Secret key\n Chave secreta\n \n \n Email address\n Endere\xe7o de e-mail\n \n \n Suspended\n Suspenso\n \n \n System\n Sistema\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {N\xe3o} 1 {Sim} }\n \n \n Maximum buckets\n M\xe1ximo de compartimentos\n \n \n Subusers\n Subusu\xe1rios\n \n \n Capabilities\n Recursos\n \n \n User quota\n Cota do usu\xe1rio\n \n \n Show\n Mostrar\n \n \n Keys\n Chaves\n \n \n -- Select a type --\n -- Selecionar tipo --\n \n \n Permission\n Permiss\xe3o\n \n \n -- Select a permission --\n -- Selecionar permiss\xe3o --\n \n \n Subuser\n Subusu\xe1rio\n \n \n The chosen subuser ID is already in use.\n O ID de subusu\xe1rio escolhido j\xe1 est\xe1 em uso.\n \n \n read, write\n leitura, grava\xe7\xe3o\n \n \n full\n completo\n \n \n Swift key\n Chave Swift\n \n \n Auto-generate secret\n Gerar segredo automaticamente\n \n \n Loading user data...\n Carregando dados do usu\xe1rio...\n \n \n The user data could not be loaded.\n N\xe3o foi poss\xedvel carregar os dados do usu\xe1rio.\n \n \n The chosen user ID is already in use.\n O ID de usu\xe1rio escolhido j\xe1 est\xe1 em uso.\n \n \n This is not a valid email address.\n Este n\xe3o \xe9 um endere\xe7o de e-mail v\xe1lido.\n \n \n The chosen email address is already in use.\n O endere\xe7o de e-mail escolhido j\xe1 est\xe1 em uso.\n \n \n Max. buckets\n M\xe1x. de compartimentos\n \n \n The entered value must be >= 0.\n O valor inserido deve ser >= 0.\n \n \n S3 key\n Chave S3\n \n \n There are no subusers.\n N\xe3o h\xe1 subusu\xe1rios.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n N\xe3o h\xe1 chaves.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n N\xe3o h\xe1 recursos.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Tamanho ilimitado\n \n \n Max. size\n Tamanho m\xe1x.\n \n \n Unlimited objects\n Objetos ilimitados\n \n \n Max. objects\n M\xe1x. de objetos\n \n \n Current\n Atual\n \n \n Updated discovery authentication\n Autentica\xe7\xe3o de descoberta atualizada\n \n \n There are no portals available.\n N\xe3o h\xe1 portais dispon\xedveis.\n \n \n There are no images available.\n N\xe3o h\xe1 imagens dispon\xedveis.\n \n \n There are no images available. Please make sure you add an image to the target.\n N\xe3o h\xe1 imagens dispon\xedveis. Adicione uma imagem ao destino.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n N\xe3o h\xe1 iniciadores dispon\xedveis. Adicione um iniciador ao destino.\n \n \n target\n target\n \n \n Target\n Destino\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Estado\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bytes de Leitura\n \n \n Write Bytes\n Bytes de Grava\xe7\xe3o\n \n \n Read Ops\n Op. de Leitura\n \n \n Write Ops\n Op. de Grava\xe7\xe3o\n \n \n A/O Since\n A/O Desde\n \n \n Instance\n Inst\xe2ncia\n \n \n Hostname\n Nome de host\n \n \n Issue\n Problema\n \n \n Progress\n Andamento\n \n \n Disabled\n Desabilitado\n \n \n Edit Mode\n Modo de Edi\xe7\xe3o\n \n \n Add Peer\n Adicionar Peer\n \n \n Edit Peer\n Editar Peer\n \n \n Delete Peer\n Excluir Peer\n \n \n Leader\n Leader\n \n \n # Local\n N\xba Local\n \n \n # Remote\n N\xba Remoto\n \n \n mirror peer\n espelhar peer\n \n \n Key\n Chave\n \n \n RBD\n RBD\n \n \n Deep flatten\n Nivelamento profundo\n \n \n Layering\n Disposi\xe7\xe3o em camadas\n \n \n Exclusive lock\n Bloqueio exclusivo\n \n \n Object map (requires exclusive-lock)\n Mapa de objetos (requer bloqueio exclusivo)\n \n \n Journaling (requires exclusive-lock)\n Registro em di\xe1rio (requer bloqueio exclusivo)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Rollback de instant\xe2neo do RBD\n \n \n Rollback\n Fazer Rollback\n \n \n RBD snapshot\n Instant\xe2neo do RBD\n \n \n Deleted At\n Exclu\xeddo \xe0(s)\n \n \n id\n ID\n \n \n type\n tipo\n \n \n state\n estado\n \n \n version\n vers\xe3o\n \n \n Host\n Host\n \n \n root\n raiz\n \n \n Rank\n Posi\xe7\xe3o\n \n \n Daemon\n Daemon\n \n \n Activity\n Atividade\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodes\n \n \n Usage\n Uso\n \n \n Standby daemons\n Daemons de standby\n \n \n The value can be updated at runtime.\n \xc9 poss\xedvel atualizar o valor em temo de execu\xe7\xe3o.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Daemons/clientes n\xe3o extraem este valor do\n banco de dados de configura\xe7\xe3o do monitor. A configura\xe7\xe3o desta op\xe7\xe3o n\xe3o \xe9 permitida por meio de \'ceph config\n set ...\'. Essa op\xe7\xe3o deve ser configurada por meio do ceph.conf ou da\n linha de comando.\n \n \n Option takes effect only during daemon startup.\n A op\xe7\xe3o entra em vigor apenas durante a inicializa\xe7\xe3o do daemon.\n \n \n Option only affects cluster creation.\n A op\xe7\xe3o afeta apenas a cria\xe7\xe3o do cluster.\n \n \n Option only affects daemon creation.\n A op\xe7\xe3o afeta apenas a cria\xe7\xe3o do daemon.\n \n \n Updated config option \n \n \n Op\xe7\xe3o de configura\xe7\xe3o \n atualizada\n \n \n \n Service\n Servi\xe7o\n \n \n Current value\n Valor atual\n \n \n Editable\n Edit\xe1vel\n \n \n Updated options for module "\n ".\n \n Op\xe7\xf5es atualizadas para o m\xf3dulo &quot;\n &quot;.\n \n \n \n Enable\n Habilitar\n \n \n Disable\n Desabilitar\n \n \n Reconnecting, please wait ...\n Reconectando, aguarde...\n \n \n Public Address\n Endere\xe7o P\xfablico\n \n \n Open Sessions\n Sess\xf5es Abertas\n \n \n No In\n N\xe3o Entrada\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Os OSDs que j\xe1 foram marcados como sa\xedda n\xe3o ser\xe3o remarcados como entrada ao serem iniciados\n \n \n No Out\n N\xe3o Sa\xedda\n \n \n OSDs will not automatically be marked out after the configured interval\n Os OSDs n\xe3o ser\xe3o automaticamente marcados como sa\xedda ap\xf3s o intervalo configurado\n \n \n No Up\n N\xe3o Ativo\n \n \n OSDs are not allowed to start\n Os OSDs n\xe3o podem ser iniciados\n \n \n No Down\n N\xe3o Inativo\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Os relat\xf3rios de falha de OSD est\xe3o sendo ignorados, portanto, os monitores n\xe3o marcar\xe3o os OSDs como inativos\n \n \n Pause\n Pausar\n \n \n Pauses reads and writes\n Pausa leituras e grava\xe7\xf5es\n \n \n No Scrub\n Sem Remo\xe7\xe3o\n \n \n Scrubbing is disabled\n Remo\xe7\xe3o desabilitada\n \n \n No Deep Scrub\n Sem Remo\xe7\xe3o Profunda\n \n \n Deep Scrubbing is disabled\n Remo\xe7\xe3o Profunda desabilitada\n \n \n No Backfill\n Sem Provisionamento\n \n \n Backfilling of PGs is suspended\n Provisionamento de PGs suspenso\n \n \n No Recover\n Sem Recupera\xe7\xe3o\n \n \n Recovery of PGs is suspended\n Recupera\xe7\xe3o de PGs suspensa\n \n \n Bitwise Sort\n Classifica\xe7\xe3o Bit a Bit\n \n \n Use bitwise sort\n Usar classifica\xe7\xe3o bit a bit\n \n \n Purged Snapdirs\n Snapdirs Purgados\n \n \n OSDs have converted snapsets\n OSDs converteram snapsets\n \n \n Recovery Deletes\n Exclus\xf5es de Recupera\xe7\xe3o\n \n \n Deletes performed during recovery instead of peering\n Exclus\xf5es realizadas durante a recupera\xe7\xe3o, e n\xe3o o emparelhamento\n \n \n PG Log Hard Limit\n Limite F\xedsico do Registro de PG\n \n \n Puts a hard limit on pg log length\n Atribui um limite f\xedsico ao tamanho do registro de PG\n \n \n Updated OSD Flags\n Flags OSD Atualizadas\n \n \n out\n sa\xedda\n \n \n in\n entrada\n \n \n down\n inativo\n \n \n Mark\n Marcar\n \n \n OSD lost\n OSD perdido\n \n \n marked lost\n marcado como perdido\n \n \n Purge\n Purgar\n \n \n OSD\n OSD\n \n \n purged\n purgado\n \n \n destroy\n destruir\n \n \n destroyed\n destru\xeddo\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PGs\n \n \n Read bytes\n Bytes de leitura\n \n \n Writes bytes\n Bytes de grava\xe7\xe3o\n \n \n Read ops\n Op. de leitura\n \n \n Write ops\n Op. de grava\xe7\xe3o\n \n \n Mark OSD \n \n \n Marcar OSD como \n \n \n \n \n Mark \n \n \n Marcar como \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n M\xe1x. de Provisionamentos\n \n \n Recovery Max Active\n M\xe1x. Recupera\xe7\xe3o Ativo\n \n \n Recovery Max Single Start\n M\xe1x. Recupera\xe7\xe3o Inicializa\xe7\xe3o \xdanica\n \n \n Recovery Sleep\n Suspens\xe3o de Recupera\xe7\xe3o\n \n \n Custom\n Personalizado\n \n \n Updated OSD recovery speed priority "\n "\n \n Prioridade de velocidade de recupera\xe7\xe3o de OSD &quot;\n &quot atualizada;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n foi inicializado no seguinte OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Tarefa\n \n \n Severity\n Gravidade\n \n \n Started\n Iniciado\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Atualizado\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Usado\n \n \n Avail.\n Disp.\n \n \n Clean\n Limpar\n \n \n Working\n Em funcionamento\n \n \n Warning\n Aviso\n \n \n Unknown\n Desconhecido\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n ativo\n \n \n no filesystems\n sem sistemas de arquivos\n \n \n active\n ativo\n \n \n standby\n standby\n \n \n n/a\n n/a\n \n \n active daemon\n daemon ativo\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n O servi\xe7o NFS Ganesha n\xe3o est\xe1 configurado.\n \n \n Transport\n Transporte\n \n \n CephFS User\n Usu\xe1rio do CephFS\n \n \n CephFS Filesystem\n Sistema de Arquivos do CephFS\n \n \n (inherited from global config)\n (herdado da configura\xe7\xe3o global)\n \n \n inherited from global config\n herdado da configura\xe7\xe3o global\n \n \n -- Select what kind of user id squashing is performed --\n -- Selecionar que tipo de squash de ID de usu\xe1rio ser\xe1 executado --\n \n \n There are no daemons available.\n N\xe3o h\xe1 daemons dispon\xedveis.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Modo de Cache\n \n \n Min Evict Age\n Tempo M\xedn. Expuls\xe3o\n \n \n Min Flush Age\n Tempo M\xedn. Descarregamento\n \n \n Target Max Bytes\n M\xe1x. de Bytes de Destino\n \n \n Target Max Objects\n M\xe1x. de Objetos de Destino\n \n \n No applications added\n Nenhum aplicativo adicionado\n \n \n Applications limit reached\n Limite de aplicativos atingido\n \n \n A pool can only have up to four applications definitions.\n Um pool apenas pode ter at\xe9 quatro defini\xe7\xf5es de aplicativos.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caracteres permitidos: \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Tamanho m\xe1ximo de 128 caracteres\n \n \n Filter or add applications\n Filtrar ou adicionar aplicativos\n \n \n Add application\n Adicionar aplicativo\n \n \n pool\n pool\n \n \n erasure code profile\n perfil de c\xf3digo de elimina\xe7\xe3o\n \n \n Replica Size\n Tamanho da R\xe9plica\n \n \n Last Change\n \xdaltima Altera\xe7\xe3o\n \n \n Erasure Coded Profile\n Perfil Codificado para Elimina\xe7\xe3o\n \n \n Crush Ruleset\n Conjunto de Regras do Crush\n \n \n Write bytes\n Bytes de grava\xe7\xe3o\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n compartimento\n \n \n Updated Object Gateway bucket "\n "\n \n Compartimento do Gateway de Objetos &quot;\n &quot; atualizado\n \n \n \n Created Object Gateway bucket "\n "\n \n Compartimento do Gateway de Objetos &quot;\n &quot; criado\n \n \n \n buckets\n compartimentos\n \n \n capability\n capability\n \n \n user\n usu\xe1rio\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Usu\xe1rio do Gateway de Objetos &quot;\n &quot; atualizado\n \n \n \n Created Object Gateway user "\n "\n \n Usu\xe1rio do Gateway de Objetos &quot;\n &quot; criado\n \n \n \n users\n usu\xe1rios\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Escopo\n \n \n Read\n Leitura\n \n \n Create\n Criar\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Fun\xe7\xe3o \'\n \' criada\n \n \n \n Updated role \'\n \'\n \n Fun\xe7\xe3o \'\n \' atualizada\n \n \n \n System Role\n Fun\xe7\xe3o do Sistema\n \n \n Deleted role \'\n \'\n \n Fun\xe7\xe3o \'\n \' exclu\xedda\n \n \n \n Created user "\n "\n \n Usu\xe1rio &quot;\n &quot; criado\n \n \n \n Update user\n Atualizar usu\xe1rio\n \n \n Continue\n Continuar\n \n \n You were automatically logged out because your roles have been changed.\n Voc\xea foi automaticamente desconectado porque suas fun\xe7\xf5es foram alteradas.\n \n \n Updated user "\n "\n \n Usu\xe1rio &quot;\n &quot; atualizado\n \n \n \n Deleted user "\n "\n \n Usu\xe1rio &quot;\n &quot; exclu\xeddo\n \n \n \n Failed to delete user "\n "\n \n Falha ao excluir o usu\xe1rio &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n No momento, voc\xea est\xe1 conectado como &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Cada objeto \xe9 dividido em partes de pacotes de dados, cada uma armazenada em um OSD diferente.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calcule os pacotes de codifica\xe7\xe3o de cada objeto e armazene-os em diferentes OSDs.\n O n\xfamero de pacotes de codifica\xe7\xe3o \xe9 tamb\xe9m o n\xfamero de OSDs que podem ficar inativos sem perda de dados.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n O plug-in jerasure \xe9 o mais gen\xe9rico e flex\xedvel,\n al\xe9m de ser o padr\xe3o para pools codificados para elimina\xe7\xe3o do Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n A t\xe9cnica mais flex\xedvel \xe9 reed_sol_van: ela \xe9 suficiente para definir k\n e m. A t\xe9cnica cauchy_good pode ser mais r\xe1pida, mas voc\xea precisa escolher o tamanho do pacote\n com cuidado. Todos os reed_sol_r6_op, liberation, blaum_roth e liber8tion s\xe3o equivalentes ao RAID6\n no sentido de que s\xf3 podem ser configurados com m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n A codifica\xe7\xe3o ser\xe1 feita em pacotes de tamanho de bytes um de cada vez.\n A escolha do tamanho do pacote certo \xe9 dif\xedcil.\n A documenta\xe7\xe3o do jerasure cont\xe9m informa\xe7\xf5es completas sobre este t\xf3pico.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Com o plug-in jerasure, quando um objeto codificado para elimina\xe7\xe3o \xe9 armazenado em\n v\xe1rios OSDs, a recupera\xe7\xe3o ap\xf3s a perda de um OSD requer a leitura de todos os outros.\n Por exemplo, se o jerasure for configurado com k=8 e m=4, a perda de um OSD exigir\xe1 a leitura\n dos outros onze para fazer o reparo.\n\n O plug-in de c\xf3digo de elimina\xe7\xe3o lrc cria pacotes locais de paridade para conseguir recuperar usando\n menos OSDs. Por exemplo, se o lrc for configurado com k=8, m=4 e l=4, ele criar\xe1\n um pacote de paridade adicional para cada quatro OSDs. Quando um \xfanico OSD \xe9 perdido, ele pode ser\n recuperado apenas com quatro OSDs, em vez de onze.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Agrupe os pacotes de codifica\xe7\xe3o e dados em conjuntos de localidades com tamanho. Por exemplo,\n no caso de k=4 e m=2, quando locality=3, dois grupos de tr\xeas s\xe3o criados. Cada conjunto pode\n ser recuperado sem a leitura dos pacotes do outro conjunto.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n O tipo do compartimento de crush em que cada conjunto de pacotes definido\n por l ser\xe1 armazenado. Por exemplo, se isso for definido como rack, cada grupo de pacotes l ser\xe1\n colocado em um rack diferente. Isso \xe9 usado para criar uma etapa da regra CRUSH, como a etapa de escolha do\n rack. Se isso n\xe3o for definido, esse tipo de agrupamento n\xe3o ser\xe1 feito.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n O plug-in isa encapsula a biblioteca ISA. Ele apenas \xe9 executado em processadores Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n O plug-in ISA vem em dois formatos de Reed Solomon.\n Se reed_sol_van for definido, ele ser\xe1 Vandermonde, se cauchy for definido, ele ser\xe1 Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n O plug-in shec encapsula a biblioteca m\xfaltipla SHEC.\n Ele permite ao ceph recuperar dados com mais efici\xeancia do que os c\xf3digos de Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n O n\xfamero de pacotes de paridade, em que cada um inclui cada pacote de dados em sua\n faixa de c\xe1lculo. O n\xfamero \xe9 usado como estimador de durabilidade. Por exemplo, se c=2,\n 2 OSDs podem ficar inativos sem perda de dados.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n O nome do compartimento de crush usado para a primeira etapa da regra CRUSH.\n Por exemplo, a etapa assumir o padr\xe3o.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Verifique se n\xe3o h\xe1 dois pacotes em um compartimento com o mesmo dom\xednio de\n falha. Por exemplo, se o dom\xednio de falha for um host, n\xe3o armazene dois pacotes no mesmo\n host. Isso \xe9 usado para criar uma etapa da regra CRUSH, como a etapa de escolha do host folha.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Restrinja o posicionamento a dispositivos de uma classe espec\xedfica\n (ex. ssd ou hdd), usando nomes de classe de dispositivo crush no mapa CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Defina o nome do diret\xf3rio do qual o plug-in de c\xf3digo de elimina\xe7\xe3o \xe9 carregado.\n \n \n Allows all operations\n Permite todas as opera\xe7\xf5es\n \n \n Allows only operations that do not modify the server\n Permite apenas as opera\xe7\xf5es que n\xe3o modificam o servidor\n \n \n Does not allow read or write operations, but allows any other operation\n N\xe3o permite opera\xe7\xf5es de leitura ou grava\xe7\xe3o, mas permite qualquer outra opera\xe7\xe3o\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n N\xe3o permite leitura, grava\xe7\xe3o ou qualquer opera\xe7\xe3o que modifica os atributos do arquivo ou o conte\xfado do diret\xf3rio\n \n \n Allows no access at all\n N\xe3o permite nenhum tipo de acesso\n \n \n -- Select the priority --\n -- Selecionar prioridade --\n \n \n Low\n Baixa\n \n \n High\n Alta\n \n \n Last 5 minutes\n \xdaltimos 5 minutos\n \n \n Last 15 minutes\n \xdaltimos 15 minutos\n \n \n Last 30 minutes\n \xdaltimos 30 minutos\n \n \n Last 1 hour (Default)\n \xdaltima 1 hora (Padr\xe3o)\n \n \n Last 3 hours\n \xdaltimas 3 horas\n \n \n Last 6 hours\n \xdaltimas 6 horas\n \n \n Last 12 hours\n \xdaltimas 12 horas\n \n \n Last 24 hours\n \xdaltimas 24 horas\n \n \n Yesterday\n Ontem\n \n \n Today\n Hoje\n \n \n Today so far\n At\xe9 agora hoje\n \n \n Day before yesterday\n Antes de ontem\n \n \n Last 2 days\n \xdaltimos 2 dias\n \n \n This day last week\n Este dia na semana passada\n \n \n Previous week\n Semana anterior\n \n \n This week\n Esta semana\n \n \n This week so far\n At\xe9 agora nesta semana\n \n \n Last 7 days\n \xdaltimos 7 dias\n \n \n Previous month\n M\xeas anterior\n \n \n This month\n Este m\xeas\n \n \n This month so far\n At\xe9 agora neste m\xeas\n \n \n Last 30 days\n \xdaltimos 30 dias\n \n \n Last 90 days\n \xdaltimos 90 dias\n \n \n Last 6 months\n \xdaltimos 6 meses\n \n \n Last 1 year\n \xdaltimo ano\n \n \n Previous year\n Ano anterior\n \n \n This year\n Este ano\n \n \n This year so far\n At\xe9 agora neste ano\n \n \n Last 2 years\n \xdaltimos 2 anos\n \n \n Last 5 years\n \xdaltimos 5 anos\n \n \n Information\n Informa\xe7\xf5es\n \n \n No items selected.\n Nenhum item selecionado.\n \n \n Deselect item to select again\n Desmarcar item para selecionar novamente\n \n \n Selection limit reached\n Limite de sele\xe7\xe3o atingido\n \n \n Filter tags\n Tags de filtro\n \n \n Add badge\n Adicionar selo\n \n \n There are no items available.\n N\xe3o h\xe1 itens dispon\xedveis.\n \n \n Add\n Adicionar\n \n \n Remove\n Remove\n \n \n Clone\n Clonar\n \n \n Copy\n Copiar\n \n \n Deep Scrub\n Remo\xe7\xe3o Profunda\n \n \n Destroy\n Destruir\n \n \n Flatten\n Nivelar\n \n \n Mark Down\n Marcar como Inativo\n \n \n Mark In\n Marcar como Entrada\n \n \n Mark Lost\n Marcar como Perdido\n \n \n Mark Out\n Marcar como Sa\xedda\n \n \n Protect\n Proteger\n \n \n Rename\n Renomear\n \n \n Restore\n Restaurar\n \n \n Move to Trash\n Mover para Lixo\n \n \n Unprotect\n Cancelar prote\xe7\xe3o\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Exclu\xeddo\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clonado\n \n \n Copied\n Copiado\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Sim\n \n \n No\n N\xe3o\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Qualidade do Servi\xe7o\n \n \n BPS Limit\n Limite de BPS\n \n \n The desired limit of IO bytes per second.\n O limite de bytes por segundo de E/S desejado.\n \n \n IOPS Limit\n Limite de IOPS\n \n \n The desired limit of IO operations per second.\n O limite de opera\xe7\xf5es por segundo de E/S desejado.\n \n \n Read BPS Limit\n Limite de BPS de Leitura\n \n \n The desired limit of read bytes per second.\n O limite de bytes por segundo de leitura desejado.\n \n \n Read IOPS Limit\n Limite de IOPS de Leitura\n \n \n The desired limit of read operations per second.\n O limite de opera\xe7\xf5es por segundo de leitura desejado.\n \n \n Write BPS Limit\n Limite de BPS de Grava\xe7\xe3o\n \n \n The desired limit of write bytes per second.\n O limite de bytes por segundo de grava\xe7\xe3o desejado.\n \n \n Write IOPS Limit\n Limite de IOPS de Grava\xe7\xe3o\n \n \n The desired limit of write operations per second.\n O limite de opera\xe7\xf5es por segundo de grava\xe7\xe3o desejado.\n \n \n BPS Burst\n Intermit\xeancia de BPS\n \n \n The desired burst limit of IO bytes.\n O limite de bytes de E/S de intermit\xeancia desejado.\n \n \n IOPS Burst\n Intermit\xeancia de IOPS\n \n \n The desired burst limit of IO operations.\n O limite de opera\xe7\xf5es de E/S de intermit\xeancia desejado.\n \n \n Read BPS Burst\n Intermit\xeancia de BPS de Leitura\n \n \n The desired burst limit of read bytes.\n O limite de bytes de leitura de intermit\xeancia desejado.\n \n \n Read IOPS Burst\n Intermit\xeancia de IOPS de Leitura\n \n \n The desired burst limit of read operations.\n O limite de opera\xe7\xf5es de leitura de intermit\xeancia desejado.\n \n \n Write BPS Burst\n Intermit\xeancia de BPS de Grava\xe7\xe3o\n \n \n The desired burst limit of write bytes.\n O limite de bytes de grava\xe7\xe3o de intermit\xeancia desejado.\n \n \n Write IOPS Burst\n Intermit\xeancia de IOPS de Grava\xe7\xe3o\n \n \n The desired burst limit of write operations.\n O limite de opera\xe7\xf5es de grava\xe7\xe3o de intermit\xeancia desejado.\n \n \n Failed to \n \n \n \n Falha ao \n \n \n \n \n \n Executing\n Executando\n \n \n execute\n executar\n \n \n Executed\n Executado\n \n \n unknown task\n tarefa desconhecida\n \n \n Creating\n Criando\n \n \n create\n criar\n \n \n Updating\n Atualizando\n \n \n update\n atualizar\n \n \n Deleting\n Excluindo\n \n \n delete\n excluir\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Instant\xe2neo do RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n modo de espelho para o pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n espelhar peer para o pool \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n \n contains snapshots.\n \n \n cont\xe9m instant\xe2neos.\n \n \n \n Cloning\n Clonando\n \n \n clone\n clonar\n \n \n Snapshot of \n must be protected.\n \n O instant\xe2neo de \n deve ser protegido.\n \n \n \n Copying\n Copiando\n \n \n copy\n copiar\n \n \n Flattening\n Nivelando\n \n \n flatten\n nivelar\n \n \n Flattened\n Nivelado\n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Imposs\xedvel cancelar a prote\xe7\xe3o de \n porque h\xe1 imagens filho.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Imposs\xedvel excluir \n porque est\xe1 protegido.\n \n \n \n Rolling back\n Fazendo rollback\n \n \n rollback\n rollback\n \n \n Rolled back\n Rollback feito\n \n \n Moving\n Movendo\n \n \n move\n mover\n \n \n Moved\n Movido\n \n \n image \'\n \' to trash\n \n imagem \'\n \' para jogar no lixo\n \n \n \n Could not find image.\n Imagem n\xe3o encontrada.\n \n \n Restoring\n Restaurando\n \n \n restore\n restaurar\n \n \n Restored\n Restaurado\n \n \n image \'\n \' into \'\n \'\n \n imagem \'\n \' para \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Nome da imagem \'\n \' j\xe1 est\xe1 em uso.\n \n \n \n image \'\n \'\n \n imagem \'\n \'\n \n \n \n Purging\n Purgando\n \n \n purge\n purgar\n \n \n Purged\n Purgado\n \n \n all pools\n todos os pools\n \n \n images from \n \n \n imagens de \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Imposs\xedvel desabilitar espelhamento porque ele cont\xe9m um peer.\n \n \n pool \'\n \'\n \n pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n perfil de c\xf3digo de elimina\xe7\xe3o \'\n \'\n \n \n \n target \'\n \'\n \n destino \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},OXbD:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),o=a.global.defaultColor;function s(t){var e=this._view;return!!e&&Math.abs(t-e.x)=t.left&&1.01*t.right>=n.x&&n.y>=t.top&&1.01*t.bottom>=n.y)&&(r.strokeStyle=e.borderColor||o,r.lineWidth=i.valueOrDefault(e.borderWidth,a.global.elements.point.borderWidth),r.fillStyle=e.backgroundColor||o,i.canvas.drawPoint(r,s,c,l,d,u))}})},OZfm:function(t,e,n){"use strict";n.d(e,"a",function(){return o}),n.d(e,"b",function(){return s}),n.d(e,"c",function(){return u}),n.d(e,"d",function(){return c});var a=n("lqqz"),r=n("rpEJ"),i=n("NJnL"),o=function(){return function(){this.adaptivePosition=!0,this.placement="top",this.triggers="click",this.outsideClick=!1}}(),s=function(){function t(t){Object.assign(this,t)}return Object.defineProperty(t.prototype,"isBs3",{get:function(){return Object(r.d)()},enumerable:!0,configurable:!0}),t}(),u=function(){function t(t,e,n,a,r,i){this._positionService=i,this.outsideClick=!1,this.containerClass="",this._isInited=!1,this._popover=r.createLoader(e,a,n).provide({provide:o,useValue:t}),Object.assign(this,t),this.onShown=this._popover.onShown,this.onHidden=this._popover.onHidden,"undefined"!=typeof window&&e.nativeElement.addEventListener("click",function(){try{e.nativeElement.focus()}catch(t){return}})}return Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._popover.isShown},set:function(t){t?this.show():this.hide()},enumerable:!0,configurable:!0}),t.prototype.show=function(){!this._popover.isShown&&this.popover&&(this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}}),this._popover.attach(s).to(this.container).position({attachment:this.placement}).show({content:this.popover,context:this.popoverContext,placement:this.placement,title:this.popoverTitle,containerClass:this.containerClass}),this.adaptivePosition||(this._positionService.calcPosition(),this._positionService.deletePositionElement(this._popover._componentRef.location)),this.isOpen=!0)},t.prototype.hide=function(){this.isOpen&&(this._popover.hide(),this.isOpen=!1)},t.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},t.prototype.ngOnInit=function(){var t=this;this._isInited||(this._isInited=!0,this._popover.listen({triggers:this.triggers,outsideClick:this.outsideClick,show:function(){return t.show()}}))},t.prototype.ngOnDestroy=function(){this._popover.dispose()},t}(),c=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[o,a.a,i.a]}},t}()},Oaa7:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},Ob0Z:function(t,e,n){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function a(t,e,n,a){var r="";if(e)switch(n){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":r="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":r="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":r="%d \u0924\u093e\u0938";break;case"d":r="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":r="%d \u0926\u093f\u0935\u0938";break;case"M":r="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":r="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u0947"}else switch(n){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":r="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":r="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":r="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":r="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":r="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":r="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":r="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return r.replace(/%d/i,t)}t.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===e?t<4?t:t+12:"\u0938\u0915\u093e\u0933\u0940"===e?t:"\u0926\u0941\u092a\u093e\u0930\u0940"===e?t>=10?t:t+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0930\u093e\u0924\u094d\u0930\u0940":t<10?"\u0938\u0915\u093e\u0933\u0940":t<17?"\u0926\u0941\u092a\u093e\u0930\u0940":t<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(n("wd/R"))},OjkT:function(t,e,n){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};t.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924\u093f"===e?t<4?t:t+12:"\u092c\u093f\u0939\u093e\u0928"===e?t:"\u0926\u093f\u0909\u0901\u0938\u094b"===e?t>=10?t:t+12:"\u0938\u093e\u0901\u091d"===e?t+12:void 0},meridiem:function(t,e,n){return t<3?"\u0930\u093e\u0924\u093f":t<12?"\u092c\u093f\u0939\u093e\u0928":t<16?"\u0926\u093f\u0909\u0901\u0938\u094b":t<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(n("wd/R"))},Oxv6:function(t,e,n){!function(t){"use strict";var e={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};t.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0448\u0430\u0431"===e?t<4?t:t+12:"\u0441\u0443\u0431\u04b3"===e?t:"\u0440\u04ef\u0437"===e?t>=11?t:t+12:"\u0431\u0435\u0433\u043e\u04b3"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0448\u0430\u0431":t<11?"\u0441\u0443\u0431\u04b3":t<16?"\u0440\u04ef\u0437":t<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},P6uZ:function(t,e,n){"use strict";n.d(e,"a",function(){return c});var a=n("3fWJ"),r=n("VnD/"),i=n("t9fZ"),o=n("HJBe"),s=n("tNVB"),u=n("mChF");function c(t,e){var n=arguments.length>=2;return function(c){return c.pipe(t?Object(r.a)(function(e,n){return t(e,n,c)}):u.a,Object(i.a)(1),n?Object(o.a)(e):Object(s.a)(function(){return new a.a}))}}},P8lu:function(t,e,n){"use strict";n.d(e,"a",function(){return f});var a=n("mrSG"),r=n("t/Na"),i=n("LvDl"),o=n("VNr4"),s=n("F/XL"),u=n("psW0"),c=n("xTzq"),l=n("CcnG"),d=n("pL04"),f=function(){function t(t){this.http=t,this.url="api/rgw/user"}return t.prototype.list=function(){var t=this;return this.enumerate().pipe(Object(u.a)(function(e){return e.length>0?Object(o.a)(e.map(function(e){return t.get(e)})):Object(s.a)([])}))},t.prototype.enumerate=function(){return this.http.get(this.url)},t.prototype.enumerateEmail=function(){return this.http.get(this.url+"/get_emails")},t.prototype.get=function(t){return this.http.get(this.url+"/"+t)},t.prototype.getQuota=function(t){return this.http.get(this.url+"/"+t+"/quota")},t.prototype.create=function(t){var e=new r.h;return i.keys(t).forEach(function(n){e=e.append(n,t[n])}),this.http.post(this.url,null,{params:e})},t.prototype.update=function(t,e){var n=new r.h;return i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.put(this.url+"/"+t,null,{params:n})},t.prototype.updateQuota=function(t,e){var n=new r.h;return i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.put(this.url+"/"+t+"/quota",null,{params:n})},t.prototype.delete=function(t){return this.http.delete(this.url+"/"+t)},t.prototype.createSubuser=function(t,e){var n=new r.h;return i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.post(this.url+"/"+t+"/subuser",null,{params:n})},t.prototype.deleteSubuser=function(t,e){return this.http.delete(this.url+"/"+t+"/subuser/"+e)},t.prototype.addCapability=function(t,e,n){var a=new r.h;return a=(a=a.append("type",e)).append("perm",n),this.http.post(this.url+"/"+t+"/capability",null,{params:a})},t.prototype.deleteCapability=function(t,e,n){var a=new r.h;return a=(a=a.append("type",e)).append("perm",n),this.http.delete(this.url+"/"+t+"/capability",{params:a})},t.prototype.addS3Key=function(t,e){var n=new r.h;return n=n.append("key_type","s3"),i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.post(this.url+"/"+t+"/key",null,{params:n})},t.prototype.deleteS3Key=function(t,e){var n=new r.h;return n=(n=n.append("key_type","s3")).append("access_key",e),this.http.delete(this.url+"/"+t+"/key",{params:n})},t.prototype.exists=function(t){return this.enumerate().pipe(Object(u.a)(function(e){var n=i.indexOf(e,t);return Object(s.a)(-1!==n)}))},t.prototype.emailExists=function(t){return t=decodeURIComponent(t),this.enumerateEmail().pipe(Object(u.a)(function(e){var n=i.indexOf(e,t);return Object(s.a)(-1!==n)}))},t.ngInjectableDef=l.defineInjectable({factory:function(){return new t(l.inject(r.c))},token:t,providedIn:d.a}),t=a.__decorate([c.a,a.__metadata("design:paramtypes",[r.c])],t)}()},PA2r:function(t,e,n){!function(t){"use strict";var e="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),n="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),a=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],r=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function i(t){return t>1&&t<5&&1!=~~(t/10)}function o(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return e||a?r+(i(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(i(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(i(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(i(t)?"dny":"dn\xed"):r+"dny";case"M":return e||a?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return e||a?r+(i(t)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):r+"m\u011bs\xedci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(i(t)?"roky":"let"):r+"lety"}}t.defineLocale("cs",{months:e,monthsShort:n,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:o,ss:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},PCNd:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},"PEr+":function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("EEJc"),o=n("ajRT"),s=n("gIcY"),u=n("IZUe"),c=n("gp3X"),l=n("sb0X"),d=n("KVJa"),f=n("Z21x"),p=n("sne2"),h=n("0+/T"),g=n("DQlY");n.d(e,"a",function(){return k});var m=a["\u0275crt"]({encapsulation:0,styles:[[".modal-body[_ngcontent-%COMP%] .question[_ngcontent-%COMP%]{margin-top:1em}.modal-body[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-weight:700}.modal-body[_ngcontent-%COMP%] .question[_ngcontent-%COMP%] .checkbox[_ngcontent-%COMP%]{padding-top:7px}"]],data:{}});function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function v(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"p",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["Are you sure that you want to "," "])),a["\u0275ppd"](2,1),(t()(),a["\u0275eld"](3,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](4,null,["",""])),(t()(),a["\u0275ted"](-1,null,["?"]))],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r),t(e,4,0,n.itemNames[0])})}function x(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function _(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["Are you sure that you want to "," the selected items?"])),a["\u0275ppd"](2,1),(t()(),a["\u0275eld"](3,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,x)),a["\u0275did"](5,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.itemNames)},function(t,e){var n=e.component,r=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r)})}function T(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,v)),a["\u0275did"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["manyNames",2]],null,0,null,_))],function(t,e){t(e,2,0,1===e.component.itemNames.length,a["\u0275nov"](e,3))},null)}function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["Are you sure that you want to "," the selected ","?"])),a["\u0275ppd"](2,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent,0),n.actionDescription));t(e,1,0,r,n.itemDescription)})}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](0,null,[" "," ","\n"])),a["\u0275ppd"](1,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent,1),n.actionDescription));t(e,0,0,r,n.itemDescription)})}function I(t){return a["\u0275vid"](0,[a["\u0275pid"](0,r.LowerCasePipe,[]),a["\u0275pid"](0,r.TitleCasePipe,[]),a["\u0275qud"](402653184,1,{submitButton:0}),(t()(),a["\u0275eld"](3,0,null,null,37,"cd-modal",[],null,null,null,i.c,i.b)),a["\u0275did"](4,49152,[["modal",4]],0,o.a,[],{modalRef:[0,"modalRef"]},null),(t()(),a["\u0275eld"](5,0,null,0,2,null,null,null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,b)),a["\u0275did"](7,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](8,0,null,1,32,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](9,0,null,null,31,"form",[["name","deletionForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["\u0275nov"](t,11).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["\u0275nov"](t,11).onReset()&&r),r},null,null)),a["\u0275did"](10,16384,null,0,s.D,[],null,null),a["\u0275did"](11,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["\u0275prd"](2048,null,s.d,null,[s.l]),a["\u0275did"](13,16384,null,0,s.s,[[4,s.d]],null,null),(t()(),a["\u0275eld"](14,0,null,null,19,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,y)),a["\u0275did"](16,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](17,0,null,null,16,"div",[["class","question"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,T)),a["\u0275did"](19,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["noNames",2]],null,0,null,w)),(t()(),a["\u0275eld"](21,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),a["\u0275did"](22,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](23,{"has-error":0}),(t()(),a["\u0275eld"](24,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),a["\u0275eld"](25,0,null,null,6,"input",[["autofocus",""],["formControlName","confirmation"],["id","confirmation"],["name","confirmation"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["\u0275nov"](t,26).onChange(n.target.checked)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,26).onTouched()&&r),r},null,null)),a["\u0275did"](26,16384,null,0,s.c,[a.Renderer2,a.ElementRef],null,null),a["\u0275prd"](1024,null,s.p,function(t){return[t]},[s.c]),a["\u0275did"](28,671744,null,0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.F]],{name:[0,"name"]},null),a["\u0275prd"](2048,null,s.q,null,[s.j]),a["\u0275did"](30,16384,null,0,s.r,[[4,s.q]],null,null),a["\u0275did"](31,4210688,null,0,u.a,[a.ElementRef],null,null),(t()(),a["\u0275eld"](32,0,null,null,1,"label",[["for","confirmation"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Yes, I am sure."])),(t()(),a["\u0275eld"](34,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["\u0275eld"](35,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.callSubmitAction()&&a),a},c.b,c.a)),a["\u0275did"](36,114688,[[1,4],["submitButton",4]],0,l.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["\u0275and"](16777216,null,0,1,null,S)),a["\u0275did"](38,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](39,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,d.b,d.a)),a["\u0275did"](40,49152,null,0,f.a,[r.Location,p.b],{name:[0,"name"],back:[1,"back"]},null),(t()(),a["\u0275and"](0,[["deletionHeading",2]],null,0,null,O))],function(t,e){var n=e.component;t(e,4,0,n.modalRef),t(e,7,0,a["\u0275nov"](e,41)),t(e,11,0,n.deletionForm),t(e,16,0,n.bodyContext,n.bodyTemplate),t(e,19,0,n.itemNames,a["\u0275nov"](e,20));var r=t(e,23,0,n.deletionForm.showError("confirmation",a["\u0275nov"](e,11)));t(e,22,0,"form-group",r),t(e,28,0,"confirmation"),t(e,36,0,n.deletionForm),t(e,38,0,a["\u0275nov"](e,41)),t(e,40,0,"Cancel",n.modalRef.hide)},function(t,e){t(e,9,0,a["\u0275nov"](e,13).ngClassUntouched,a["\u0275nov"](e,13).ngClassTouched,a["\u0275nov"](e,13).ngClassPristine,a["\u0275nov"](e,13).ngClassDirty,a["\u0275nov"](e,13).ngClassValid,a["\u0275nov"](e,13).ngClassInvalid,a["\u0275nov"](e,13).ngClassPending),t(e,25,0,a["\u0275nov"](e,30).ngClassUntouched,a["\u0275nov"](e,30).ngClassTouched,a["\u0275nov"](e,30).ngClassPristine,a["\u0275nov"](e,30).ngClassDirty,a["\u0275nov"](e,30).ngClassValid,a["\u0275nov"](e,30).ngClassInvalid,a["\u0275nov"](e,30).ngClassPending)})}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-deletion-modal",[],null,null,null,I,m)),a["\u0275did"](1,114688,null,0,h.a,[g.a],null,null)],function(t,e){t(e,1,0)},null)}var k=a["\u0275ccf"]("cd-deletion-modal",h.a,C,{},{},[])},PNOi:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.ProgressBarComponent=function(){return a([r.Component({selector:"datatable-progress",template:'\n
\n
\n
\n
\n
\n ',changeDetection:r.ChangeDetectionStrategy.OnPush})],function(){})}()},PeUW:function(t,e,n){!function(t){"use strict";var e={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},n={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};t.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(t){return t+"\u0bb5\u0ba4\u0bc1"},preparse:function(t){return t.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(t,e,n){return t<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":t<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":t<10?" \u0b95\u0bbe\u0bb2\u0bc8":t<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":t<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":t<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(t,e){return 12===t&&(t=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===e?t<2?t:t+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===e||"\u0b95\u0bbe\u0bb2\u0bc8"===e?t:"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===e&&t>=10?t:t+12},week:{dow:0,doy:6}})}(n("wd/R"))},Phjn:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("psW0");function r(t,e){return Object(a.a)(t,e,1)}},PpIw:function(t,e,n){!function(t){"use strict";var e={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},n={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};t.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(t){return t.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===e?t<4?t:t+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===e?t:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===e?t>=10?t:t+12:"\u0cb8\u0c82\u0c9c\u0cc6"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":t<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":t<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":t<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(t){return t+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(n("wd/R"))},Q1FS:function(t,e,n){"use strict";var a=n("yx2s"),r=n("Xwq/"),i=n("zfKp"),o=n("9AGB"),s=n("n3uD");function u(t){if(t||(t=s.config.Promise||Promise),!t)throw new Error("no Promise impl found");return t}e.Observable=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var a=this.operator,i=r.toSubscriber(t,e,n);if(i.add(a?a.call(i,this.source):this.source||s.config.useDeprecatedSynchronousErrorHandling&&!i.syncErrorThrowable?this._subscribe(i):this._trySubscribe(i)),s.config.useDeprecatedSynchronousErrorHandling&&i.syncErrorThrowable&&(i.syncErrorThrowable=!1,i.syncErrorThrown))throw i.syncErrorValue;return i},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){s.config.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),a.canReportError(t)?t.error(e):console.warn(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=u(e))(function(e,a){var r;r=n.subscribe(function(e){try{t(e)}catch(n){a(n),r&&r.unsubscribe()}},a,e)})},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[i.observable]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;edocumentation\n on how to\n add dashboards to Grafana.\n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n
\n \n Grafana Time Picker\n \uadf8\ub77c\ud30c\ub098 \ud0c0\uc784 \ud53d\ucee4\n \n \n Reset Settings\n \uc124\uc815 \ucd08\uae30\ud654\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \ub370\uc774\ud0c0 \ub85c\ub529 \uc2e4\ud3d0\n \n \n selected\n \uc120\ud0dd\ub41c\n X selected\n \n \n found\n \ubc1c\uacac\ub41c\n X found\n \n \n total\n \uc804\uccb4\n X total\n \n \n Edit\n \ud3b8\uc9d1\n \n \n Name\n \uc774\ub984\n \n \n Description\n \uc124\uba85\n \n \n Long description\n \uc790\uc138\ud55c \uc124\uba85\n \n \n Default\n \uae30\ubcf8\uac12\n \n \n Daemon default\n \ub370\ubaa8 \uae30\ubcf8\uac12\n \n \n Services\n \uc11c\ube44\uc2a4\ub4e4\n \n \n Values\n \uac12\ub4e4\n \n \n The entered value is too high! It must not be greater than \n .\n \n \uc785\ub825\uac12\uc774 \ub108\ubb34 \ud07d\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \uc791\uc2b5\ub2c8\ub2e4.! \uadf8\uac83\uc740 \n \uc791\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n Save\n \uc800\uc7a5\ud558\uae30\n \n \n CRUSH map viewer\n \ud06c\ub7ec\uc26c\ub9f5 \ubcf4\uae30\n \n \n Hosts List\n \ud638\uc2a4\ud2b8 \ubaa9\ub85d\ub4e4\n \n \n Overall Performance\n \ud1b5\ud569 \uc131\ub2a5\uce58\n \n \n No entries found\n \ud56d\ubaa9\ub4e4\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc74c\n \n \n Cluster Logs\n \ud074\ub7ec\uc2a4\ud130 \ub85c\uadf8\ub4e4\n \n \n Audit Logs\n \uac10\uc0ac \ub85c\uadf8\ub4e4\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \uc124\uc815 \ub85c\ub529 \uc911\n \n \n The configuration could not be loaded.\n \uc124\uc815\uc744 \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Edit Manager module\n \uad00\ub9ac\ubaa8\ub4c8 \ud3b8\uc9d1\ud558\uae30\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \uc785\ub825\ub41c \uac12\uc774 \uc720\ud6a8\ud55c UUID\uac00 \uc544\ub2d9\ub2c8\ub2e4, \uc608.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n \uc785\ub825\ub41c \uac12\uc740 \uc720\ud6a8\ud55c IP\uc8fc\uc18c \uc5ec\uc57c \ud569\ub2c8\ub2e4.\n \n \n This field is required.\n \uc774 \ud544\ub4dc\ub294 \ud544\uc218\uc801\uc785\ub2c8\ub2e4.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \uc785\ub825\uac12\uc774 \ub108\ubb34 \ud07d\ub2c8\ub2e4! \uadf8\uac83\uc740 \ubc18\ub4dc\uc2dc \n \uc791\uac70\ub098 \uac19\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \uc791\uc2b5\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \ud06c\uac70\ub098 \uac19\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n The entered value needs to be a number.\n \uc785\ub825\ub41c \uac12\uc740 \uc801\uc5b4\ub3c4 \ud558\ub098\uc758 \uc22b\uc790\ub97c \ud544\uc694\ub85c \ud569\ub2c8\ub2e4.\n \n \n The entered value needs to be a number or decimal.\n \uc785\ub825 \ub41c \uac12\uc740 \uc22b\uc790 \ub610\ub294 \uc2ed\uc9c4\uc218\uc5ec\uc57c \ud569\ub2c8\ub2e4.\n \n \n Update\n \uac31\uc2e0\n \n \n Status\n \uc0c1\ud0dc\n \n \n Cluster ID\n \ud074\ub7ec\uc2a4\ud130 ID\n \n \n monmap modified\n \ubaac\ub9f5 \ubcc0\uacbd\uc2dc\uac04\n \n \n monmap epoch\n \ubaac\ub9f5 \ubcc0\uacbd\ubc88\ud638\n \n \n quorum con\n \uc815\uc871\uc218 \uc77c\uce58\ubc88\ud638\n \n \n quorum mon\n \uc815\uc871\uc218 \ubaa8\ub2c8\ud130\uc0c1\ud0dc\n \n \n required con\n \uc694\uad6c\ub418\ub294 \uc77c\uce58\ubc88\ud638\n \n \n required mon\n \uc694\uad6c\ub418\ub294 \ubaa8\ub2c8\ud130\uc0c1\ud0dc\n \n \n In Quorum\n \uc815\uc871\uc218\uc5d0 \ud3ec\ud568\n \n \n Not In Quorum\n \uc815\uc871\uc218 \ubbf8\ud3ec\ud568\n \n \n Cancel\n \ucde8\uc18c\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \uc120\ud0dd\ub41c \n \ub85c \n \uc744 \ud558\ub294 \uac83\uc774 \ud655\uc2e4\ud569\ub2c8\uae4c?\n \n \n \n Yes, I am sure.\n \uc608, \ud655\uc2e4\ud569\ub2c8\ub2e4.\n \n \n Cluster-wide OSD Flags\n \ud074\ub7ec\uc2a4\ud130-\uc218\uc900\uc758 OSD \ud50c\ub808\uadf8\ub4e4\n \n \n Submit\n \uc81c\ucd9c\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \uc790\uc138\ud55c \uc635\uc158...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD \ubcf5\uad6c \uc6b0\uc120\uc21c\uc704\n \n \n Priority\n \uc6b0\uc120\uc21c\uc704\n \n \n Customize priority values\n \uc6b0\uc120 \uc21c\uc704 \uac12 \ub9de\ucda4 \uc124\uc815\n \n \n This field is required!\n \uc774 \ud544\ub4dc\ub294 \uc694\uad6c\ub429\ub2c8\ub2e4!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \ud07d\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \ud06c\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4..\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \uc791\uc2b5\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \uc791\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n Reweight OSD\n OSD \uc7ac-\uc870\uc815\n \n \n The value needs to be between 0 and 1.\n \uac12\uc740 0\uacfc 1\uc0ac\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n Reweight\n \uc7ac-\uc870\uc815\n \n \n OSDs \n Scrub\n \n OSD\ub4e4 \n \uccad\uc18c\ud558\uae30\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, \uc120\ud0dd, 1 {\uae4a\uc774 } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n OSD \n \n \n \uc744 \uccad\uc18c\ud558\uae30 \uc704\ud574, \ub2f9\uc2e0\uc740 \n \uc744 \uc801\uc6a9\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, \uc120\ud0dd, 1 {\uae4a\uc774 } }\n \n \n OSDs List\n OSD \ubaa9\ub85d\ub4e4\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \uacc4\uc18d\uc9c4\ud589\ud558\uba74 \n OSD \n \n \ub294 \n \n \n \ub85c \ud45c\uc2dc\ub429\ub2c8\ub2e4.\n \n \n \n The OSD is not safe to destroy!\n OSD\ub294 \ud30c\uad34\ud558\uae30\uc5d0 \uc548\uc804\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \uacc4\uc18d\uc9c4\ud589\ud558\uba74 \n OSD \n \n \ub294\n \n \n \uac00 \ub420 \uac83\uc785\ub2c8\ub2e4.\n \n \n \n Details\n \uc138\ubd80\uc124\uba85\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \uac12\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \ub2eb\uae30\n \n \n Delete\n \uc0ad\uc81c\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \uac74\uac15\uc0c1\ud0dc\n \n \n Statistics\n \ud1b5\uacc4\ub4e4\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n \n \n Clients\n \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\n \n \n Any client can access\n \ubaa8\ub4e0 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc811\uadfc\uac00\ub2a5\n \n \n Addresses\n \uc8fc\uc18c\ub4e4\n \n \n Required field\n \ud544\uc218 \uc785\ub825\ub780\n \n \n Must contain one or more comma-separated values\n \ubc18\ub4dc\uc2dc \ud558\ub098 \uc774\uc0c1\uc758 \uc27c\ud45c\ub85c \uad6c\ubd84 \ub41c \uac12\uc744 \ud3ec\ud568\ud574\uc57c \ud568\n \n \n For example:\n \uc608\ub97c\ub4e4\uba74:\n \n \n Access Type\n \uc811\uadfc\ud615\ud0dc\n \n \n Squash\n Squash\n \n \n Add clients\n \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4 \ucd94\uac00\n \n \n Loading...\n \ub85c\ub529\uc911...\n \n \n -- No cluster available --\n -- \uc0ac\uc6a9\uac00\ub2a5 \ud074\ub7ec\uc2a4\ud130 \uc5c6\uc74c --\n \n \n -- Select the cluster --\n -- \ud074\ub7ec\uc2a4\ud130 \uc120\ud0dd --\n \n \n Add daemon\n \ub370\ubaac \ucd94\uac00\ud558\uae30\n \n \n Storage Backend\n \uc2a4\ud1a0\ub9ac\uc9c0 \ubc31\uc5d4\ub4dc\n \n \n -- No data pools available --\n -- \uc774\uc6a9\uac00\ub2a5\ud55c \ub370\uc774\ud0c0\ud480 \uc5c6\uc74c --\n \n \n -- Select the storage backend --\n -- \uc2a4\ud1a0\ub9ac\uc9c0 \ubc31\uc5d4\ub4dc \uc120\ud0dd --\n \n \n Object Gateway User\n \uac1d\uccb4 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790\n \n \n -- No users available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc0ac\uc6a9\uc790\ub4e4 \uc5c6\uc74c --\n \n \n -- Select the object gateway user --\n -- \uac1d\uccb4 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790 \uc120\ud0dd --\n \n \n CephFS User ID\n CephFS \uc0ac\uc6a9\uc790 ID\n \n \n -- No clients available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c \ud074\ub77c\uc774\uc5b8\ud2b8 \uc5c6\uc74c --\n \n \n -- Select the cephx client --\n -- cephx \ud074\ub77c\uc774\uc5b8\ud2b8 \uc120\ud0dd --\n \n \n CephFS Name\n CephFS \uc774\ub984\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \ubcf4\uc548 \ub808\uc774\ube14\n \n \n Enable security label\n \ubcf4\uc548 \ub808\uc774\ube14 \uc0ac\uc6a9\n \n \n CephFS Path\n CephFS \uacbd\ub85c\n \n \n Path need to start with a \'/\' and can be followed by a word\n \uacbd\ub85c\ub294 \'/\'\ub85c \uc2dc\uc791\ud574\uc57c\ud558\uba70 \uadf8 \ub4a4\uc5d0 \ub2e8\uc5b4\uac00 \uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4\n \n \n New directory will be created\n \uc0c8\ub85c\uc6b4 \ub514\ub809\ud1a0\ub9ac\uac00 \ub9cc\ub4e4\uc5b4 \uc9c8 \uac83\uc785\ub2c8\ub2e4\n \n \n Path\n \uacbd\ub85c\n \n \n Path can only be a single \'/\' or a word\n \uacbd\ub85c\ub294 \ud558\ub098\uc758 \'/\' \ub610\ub294 \ud558\ub098\uc758 \ub2e8\uc5b4 \uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4\n \n \n New bucket will be created\n \uc0c8\ub85c\uc6b4 \ubc84\ud0b7\uc774 \ub9cc\ub4e4\uc5b4 \uc9c8 \uac83\uc785\ub2c8\ub2e4\n \n \n NFS Protocol\n NFS \ud504\ub85c\ud1a0\ucf5c\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \ud0dc\ud06c\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \ub9c8\uc6b4\ud2b8\ub4e4\uc744 \uc704\ud55c \ub300\uccb4 \uc811\uadfc (/\uac00 \uc55e\uc5d0 \uc640\uc57c \ud568).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\ub97c \ub9c8\uc6b4\ud2b8 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4 (\uc989, Tag = foo \uc778 \uacbd\uc6b0 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 foo / baz\ub97c \ub9c8\uc6b4\ud2b8\ud558\uc9c0 \ubabb\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \ub2e4\ub978 \ud0dc\uadf8 \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 \uac19\uc740 \uacbd\ub85c\ub97c \uc5ec\ub7ec \ubc88 \ub0b4\ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \ub2e4\ub978 Pseudo \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 \ub3d9\uc77c\ud55c \uacbd\ub85c\ub97c \uc5ec\ub7ec \ubc88 \ub0b4\ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc811\uadfc\ud615\ud0dc \uc5c6\uc74c --\n \n \n -- Select the access type --\n -- \uc811\uadfc\ud615\ud0dc \uc120\ud0dd --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c squash \uc5c6\uc74c --\n \n \n --Select what kind of user id squashing is performed --\n -- \uc5b4\ub5a4 \uc885\ub958\uc758 \uc0ac\uc6a9\uc790 ID \uc2a4\ucffc\uc2dc\uac00 \uc218\ud589\ub418\ub294\uc9c0 \uc120\ud0dd\ud558\uc138\uc694 --\n \n \n Transport Protocol\n \uc804\uc1a1\ud504\ub85c\ud1a0\ucf5c\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Ceph \uc0ac\uc6a9\uc744 \ud658\uc601\ud569\ub2c8\ub2e4.\n The welcome message on the login page\n \n \n Username is required\n \uc0ac\uc6a9\uc790\uc774\ub984\uc774 \ud544\uc694\ud569\ub2c8\ub2e4\n \n \n Password is required\n \uc554\ud638\uac00 \ud544\uc694\ud569\ub2c8\ub2e4\n \n \n Login\n \ub85c\uadf8\uc778\n \n \n Sorry, the user does not exist in Ceph.\n \ubbf8\uc548\ud569\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\uac00 Ceph\ub0b4\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \n \n Forbidden\n \uae08\uc9c0\ub428\n \n \n Sorry, you are not allowed to see what you were looking for.\n \ubbf8\uc548\ud569\ub2c8\ub2e4. \ub2f9\uc2e0\uc774 \uc694\uccad\ud560 \uac83\uc744 \uc5f4\ub78c\ud558\ub294 \uac83\uc774 \ud5c8\ub77d\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Sorry, we could not find what you were looking for\n \ubbf8\uc548\ud569\ub2c8\ub2e4. \ub2f9\uc2e0\uc774 \uc694\uccad\ud560 \uac83\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Remove all\n \ubaa8\ub4e0 \uac83 \uc81c\uac70\n \n \n Recent Notifications\n \ucd5c\uadfc \uc54c\ub9bc\ub4e4\n \n \n There are no background tasks.\n \ubc31\uadf8\ub77c\uc6b4\ub4dc \uc791\uc5c5\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Background Tasks\n \ubc31\uadf8\ub77c\uc6b4\ub4dc \uc791\uc5c5\ub4e4\n \n \n Help\n \ub3c4\uc6c0\ub9d0\n \n \n Documentation\n \ubb38\uc11c\n \n \n API\n API\n \n \n About\n \ub300\ud558\uc5ec\n \n \n Dashboard Settings\n \ub300\uc26c\ubcf4\ub4dc \uc124\uc815\n \n \n User management\n \uc0ac\uc6a9\uc790 \uad00\ub9ac\n \n \n Logged in user\n \ub85c\uadf8\uc778\ub41c \uc0ac\uc6a9\uc790\n \n \n Signed in as\n \n \n \n \n \n \n \n \n\ub85c\uc368 \uc2b9\uc778\ub428\n \n \n \n Sign out\n \ub85c\uadf8\uc544\uc6c3\n \n \n Name...\n \uc774\ub984...\n \n \n The chosen name is already in use.\n \uc120\ud0dd\ud55c \uc774\ub984\uc774 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n Description...\n \uc138\ubd80\uc124\uba85...\n \n \n Permissions\n \uad8c\ud55c\ub4e4\n \n \n Roles\n \uc5ed\ud560\ub4e4\n \n \n Username\n \uc0ac\uc6a9\uc790\uba85\n \n \n Password\n \uc554\ud638\n \n \n Confirm password\n \uc554\ud638 \ud655\uc778\n \n \n Password confirmation doesn\'t match the password.\n \uc554\ud638 \ud655\uc778\uc774 \uc554\ud638\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Full name\n \uc804\uccb4 \uc774\ub984\n \n \n Email\n \uc804\uc790\uc6b0\ud3b8\n \n \n Invalid email.\n \uc720\ud6a8\ud558\uc9c0\uc54a\ub294 \uc804\uc790\uc6b0\ud3b8.\n \n \n You are about to remove "user read / update" permissions from your own user.\n \ub2f9\uc2e0\uc758 \uc0ac\uc6a9\uc790\ub85c\ubd80\ud130 "\uc0ac\uc6a9\uc790 \uc77d\uae30 / \uc5c5\ub370\uc774\ud2b8"\uad8c\ud55c\uc744 \uc81c\uac70\ud558\ub824\uace0\ud569\ub2c8\ub2e4.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \uacc4\uc18d\ud558\uba74 \ubaa8\ub4e0 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc5ed\ud560\uc744 \ucd94\uac00\ud558\uac70\ub098 \uc81c\uac70 \ud560 \uc218 \uc5c6\uac8c\ub429\ub2c8\ub2e4.\n \n \n Are you sure you want to continue?\n \uacc4\uc18d \uc9c4\ud589\ud558\uae30\ub97c \uc6d0\ud558\uc2ed\ub2c8\uae4c?\n \n \n Performance counters not available\n \uc131\ub2a5 \uce74\uc6b4\ud130\ub4e4\uc744 \uc0ac\uc6a9 \ud560 \uc218 \uc5c6\uc74c\n \n \n Attributes (OSD map)\n \uc18d\uc131\ub4e4 (OSD \ub9f5)\n \n \n Metadata not available\n \uba54\ud0c0\ub370\uc774\ud0c0 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c\n \n \n Metadata\n \uba54\ud0c0\ub370\uc774\ud0c0\n \n \n Performance counter\n \uc131\ub2a5 \uce74\uc6b4\ud130\n \n \n Histogram not available: \n \n \n \ud788\uc2a4\ud1a0\uadf8\ub7a8\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c: \n \n \n \n \n Writes\n \uc4f0\uae30\n \n \n Reads\n \uc77d\uae30\n \n \n Histogram\n \ud788\uc2a4\ud1a0\uadf8\ub7a8\n \n \n Performance Details\n \uc131\ub2a5 \uc138\ubd80\uc815\ubcf4\ub4e4\n \n \n Current values\n \ud604\uc7ac \uac12\ub4e4\n \n \n Type\n \ud615\ud0dc\n \n \n Min\n \ucd5c\uc18c\n \n \n Max\n \ucd5c\ub300\n \n \n Flags\n \ud50c\ub808\uadf8\ub4e4\n \n \n Source\n \uc18c\uc2a4\n \n \n Level\n \uc218\uc900\n \n \n Can be updated at runtime (editable)\n \uc218\ud589\uc2dc\uac04\uc5d0 \uac31\uc2e0\uac00\ub2a5\ud568(\ud3b8\uc9d1\uac00\ub2a5)\n \n \n Tags\n \ud14c\ud06c\ub4e4\n \n \n Enum values\n \uc5f4\uac70\ud615 \uac12\ub4e4\n \n \n See also\n \ucd94\uac00\ub85c \ub354\ubcf4\uae30\n \n \n Cluster Status\n \ud074\ub7ec\uc2a4\ud130 \uc0c1\ud0dc\n \n \n Manager Daemons\n \uad00\ub9ac\uc790 \ub370\ubaac\ub4e4\n \n \n Object Gateways\n \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774\ub4e4\n \n \n Metadata Servers\n \uba54\ud0c0\ub370\uc774\ud0c0 \uc11c\ubc84\ub4e4\n \n \n iSCSI Gateways\n iSCSI \uac8c\uc774\ud2b8\uc6e8\uc774\ub4e4\n \n \n Client IOPS\n \ud074\ub77c\uc774\uc5b8\ud2b8 IOPS\n \n \n Client Throughput\n \ud074\ub77c\uc774\uc5b8\ud2b8 \ucc98\ub9ac\ub7c9\n \n \n Client Read/Write\n \ud074\ub77c\uc774\uc5b8\ud2b8 \uc77d\uae30/\uc4f0\uae30\n \n \n Recovery Throughput\n \ubcf5\uad6c \ucc98\ub9ac\ub7c9\n \n \n Scrub\n \uc138\uc815\uc791\uc5c5\n \n \n Performance\n \uc131\ub2a5\n \n \n Raw Capacity\n \uc6d0\uc2dc\uc6a9\ub7c9\n \n \n Objects\n \uc624\ube0c\uc81d\ud2b8\ub4e4\n \n \n PGs per OSD\n OSD\ub2f9 PG\ub4e4\n \n \n PG Status\n PG \uc0c1\ud0dc\ub4e4\n \n \n Capacity\n \uc6a9\ub7c9\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \ub354 \uc790\uc138\ud55c \ub0b4\uc6a9\uc744 \uc704\ud574 \n \ub85c\uadf8\n \ubcf4\uc2ed\uc2dc\uc624.\n \n \n \n Ranks\n \uc21c\uc704\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \uc774\ubbf8\uc9c0\ub97c \ud734\uc9c0\ud1b5\uc5d0 \uc774\ub3d9\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \ud734\uc9c0\ud1b5\uc73c\ub85c \n \n /\n \n \uc62e\uae30\uae30 \uc704\ud574, \n \uc120\ud0dd, \n \uc774\ubbf8\uc9c0 \uc62e\uae30\uc138\uc694. \uc120\ud0dd\uc801\uc73c\ub85c, \ud3d0\uae30\ub0a0\uc9dc\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n \n Protection expires at\n \ubcf4\ud638\uac00 \ub9cc\ub8cc\ub418\ub294 \n \n \n NOT PROTECTED\n \ubcf4\ud638\ub418\uc9c0 \uc54a\uc74c\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \ub0a0\uc9dc \ud615\uc2dd \uc624\ub958. "YYYY-MM-DD HH:mm:ss" \ud615\uc2dd\uc73c\ub85c \uc9c0\uc815\ud558\uc138\uc694.\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \ubcf4\ud638\uae30\uac04\uc774 \uc774\ubbf8 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub354 \ubbf8\ub798\uc758 \ub0a0\uc9dc\ub97c \uc120\ud0dd\ud558\uac70\ub098 \uacf5\ub780\uc73c\ub85c \ub0a8\uaca8\ub450\uc138\uc694.\n \n \n Move Image\n \uc774\ubbf8\uc9c0 \uc62e\uae30\uae30\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \uac1c\uad00\n \n \n Targets\n \ud0c0\uac9f\ub4e4\n \n \n Discovery Authentication\n \uc778\uc99d \ud0d0\uc0c9\n \n \n User\n \uc0ac\uc6a9\uc790\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \uc0ac\uc6a9\uc790\uc774\ub984\uc740 8~64\uc790\uae4c\uc9c0 \uae38\uc774\uc758 \ubb38\uc790\ub4e4\uc744 \uac00\uc838\uc57c \ud558\uba70 \uadf8\ub9ac\uace0, \uc624\uc9c1 , \'.\', \'@\', \'-\', \'_\', \':\' \ub4f1\uc758 \ud2b9\uc218 \ubb38\uc790\ub4e4\ub9cc\uc744 \ud3ec\ud568\uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \uacf5\ub3d9 \uc0ac\uc6a9\uc790\n \n \n Mutual Password\n \uacf5\ud1b5 \uc554\ud638\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n iSCSI \ud0c0\uac9f\ub4e4 \uad00\ub9ac \uae30\ub2a5\ub4e4\uc744 \uc124\uc815\ud558\uace0 \ucf1c\uae30\uc704\ud574\uc11c \n \ubb38\uc11c\n \ubd80\ubd84\uc744 \ucc38\uc870\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n \n \n \n Available information:\n \uc774\uc6a9\uac00\ub2a5\ud55c \uc815\ubcf4:\n \n \n iSCSI Targets not available\n iSCSI \ud0c0\uac9f\uc774 \uc774\uc6a9 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \uc624\uc9c1 \n fast-diff\n \uc124\uc815\ub41c RBD \uc774\ubbf8\uc9c0\ub4e4\uacfc \ud568\uaed8 \uc0ac\uc6a9\uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n \n Pool\n \ud480\n \n \n Data Pool\n \ub370\uc774\ud0c0 \ud480\n \n \n Created\n \uc0dd\uc131\ub41c\n \n \n Size\n \ud06c\uae30\n \n \n Object size\n \uac1d\uccb4\ud06c\uae30\n \n \n Features\n \ud2b9\uc9d5\ub4e4\n \n \n Provisioned\n \uc900\ube44\ub41c\n \n \n N/A\n \uc774\uc6a9\ubd88\uac00\n \n \n Total provisioned\n \uc900\ube44\ub41c \ucd1d\uacc4\n \n \n Striping unit\n \uc2a4\ud2b8\ub77c\uc774\ud551 \ub2e8\uc704\n \n \n Striping count\n \uc2a4\ud2b8\ub77c\uc774\ud551 \ud69f\uc218\n \n \n Parent\n \uc0c1\uc704\n \n \n Block name prefix\n \ube14\ub85d \uc774\ub984 \uc811\ub450\uc0ac\n \n \n Order\n \uc21c\uc11c\n \n \n Snapshots\n \uc2a4\ub0c5\uc0bf\n \n \n Image\n \uc774\ubbf8\uc9c0\n \n \n This setting overrides the global value\n \uc774 \uc124\uc815\uc740 \uc804\uc5ed \uac12\uc744 \ub36e\uc5b4\uc501\ub2c8\ub2e4.\n \n \n Global\n \uae00\ub85c\ubc8c\n \n \n This is the global value. No value for this option has been set for this image.\n \uc774\uac83\uc740 \uc804\uc5ed \uac12\uc785\ub2c8\ub2e4. \uc774 \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud574 \uc774 \uc635\uc158\uc758 \uac12\uc774 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' \uc640 \'@\' \ubb38\uc790\ub294 \uc0ac\uc6a9\ubd88\uac00\uc785\ub2c8\ub2e4.\n \n \n -- No rbd pools available --\n -- \uc774\uc6a9\uac00\ub2a5\ud55c rbd\ud480 \uc5c6\uc74c --\n \n \n -- Select a pool --\n -- \ud480 \uc120\ud0dd --\n \n \n Use a dedicated data pool\n \uc804\uc6a9 \ub370\uc774\ud0c0 \ud480\ub4e4\uc744 \uc0ac\uc6a9\ud558\uc138\uc694\n \n \n Data pool\n \ub370\uc774\ud0c0 \ud480\n \n \n Dedicated pool that stores the object-data of the RBD.\n RBD\uc758 \uac1d\uccb4-\ub370\uc774\ud0c0\ub97c \uc800\uc7a5\ud558\uace0 \uc788\ub294 \uc804\uc6a9 \ud480\n \n \n e.g., 10GiB\n \uc608., 100 GiB\n \n \n You have to increase the size.\n \uc0ac\uc774\uc988\ub97c \uc99d\uac00\uc2dc\ucf1c\uc57c \ud569\ub2c8\ub2e4.\n \n \n Advanced\n \uc790\uc138\ud55c\n \n \n Striping\n \ubd84\uc0b0\uc800\uc7a5\n \n \n Stripe unit\n \ubd84\uc0b0\uc800\uc7a5\ub2e8\uc704\n \n \n -- Select stripe unit --\n -- \ubd84\uc0b0\uc800\uc7a5\ub2e8\uc704 \uc120\ud0dd --\n \n \n This field is required because stripe count is defined!\n \ubd84\uc0b0\uc800\uc7a5 \uac1c\uc218\uac00 \uc815\uc758\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \uc774 \ud544\ub4dc\ub294 \ud544\uc218\uc785\ub2c8\ub2e4!\n \n \n Stripe unit is greater than object size.\n \ubd84\uc0b0\uc800\uc7a5\ub2e8\uc704\ub294 \uac1d\uccb4\ud06c\uae30\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n Stripe count\n \ubd84\uc0b0\uc800\uc7a5 \uac2f\uc218\n \n \n This field is required because stripe unit is defined!\n \ubd84\uc0b0\uc800\uc7a5 \ub2e8\uc704\uac00 \uc815\uc758\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \uc774 \ud544\ub4dc\ub294 \ud544\uc218\uc785\ub2c8\ub2e4!\n \n \n Stripe count must be greater than 0.\n \ubd84\uc0b0\uc800\uc7a5 \uac2f\uc218\ub294 \ubc18\ub4dc\uc2dc 0\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n RBD Snapshot\n \n \n RBD \uc2a4\ub0c5\uc0f7\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Rename} other {Create} }\n \n \n \n Snapshot\n \n \n \uc2a4\ub0c5\uc0f7\n \n \n \n PROTECTED\n \ubcf4\ud638\ub428\n \n \n UNPROTECTED\n \ubcf4\ud638\uc548\ub428\n \n \n You are about to rollback\n \ub864\ubc31\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.\n \n \n Purge Trash\n \ud734\uc9c0\ud1b5 \ube44\uc6b0\uae30\n \n \n To purge, select one or All images and click\n \ube44\uc6b0\uae30 \uc704\ud574, \ud558\ub098 \ub610\ub294 \ubaa8\ub4e0 \uc774\ubbf8\uc9c0\ub4e4\uc744 \uc120\ud0dd\ud558\uace0 \ud074\ub9ad\ud558\uc138\uc694.\n \n \n Pool:\n \ud480:\n \n \n Pool name...\n \ud480 \uc774\ub984:\n \n \n All\n \ubaa8\ub4e0\n \n \n Restore Image\n \uc774\ubbf8\uc9c0 \ubcf5\uad6c\ud558\uae30\n \n \n To restore\n \ubcf5\uad6c\ub97c \uc704\ud574\n \n \n type the image\'s new name and click\n \uc774\ubbf8\uc9c0\ub4e4\uc758 \uc0c8\ub85c\uc6b4 \uc774\ub984\uc744 \uc785\ub825\ud558\uace0 \ud074\ub9ad\ud558\uc138\uc694\n \n \n New Name\n \uc0c8\ub85c\uc6b4 \uc774\ub984\n \n \n Expired at\n \ud3d0\uae30\ub420\n \n \n Protected until\n \uae4c\uc9c0 \ubcf4\ud638\ub428\n \n \n This image is protected until \n .\n \n \uc774 \uc774\ubbf8\uc9c0\ub294 \n \uae4c\uc9c0 \ubcf4\ud638\ub429\ub2c8\ub2e4.\n \n \n \n Trash\n \ud734\uc9c0\ud1b5\n \n \n iSCSI Topology\n iSCSI \ud1a0\ud3f4\ub85c\uc9c0\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \uae30\ubcf8\uc124\uc815 \uac12\ub4e4\ub85c \ubd80\ud130 \uc778\uc790\ub97c \ubcc0\uacbd\ud558\ub294 \uac83\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \uc124\uc815\ub4e4\n \n \n Backstore\n \ubc31\uc2a4\ud1a0\uc5b4\n \n \n Confirm\n \ud655\uc778\n \n \n Advanced Settings\n \uace0\uae09\uc124\uc815\ub4e4\n \n \n Target IQN\n \ud0c0\uac9f IQN\n \n \n IQN has wrong pattern.\n IQN\uc774 \uc798\ubabb\ub41c \ud328\ud134\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uc9c0\uc815\uaddc\uce59\uc774 \uc788\uc2b5\ub2c8\ub2e4.\n\'iqn.$\ub144-$\ub2ec.$\ub4a4\uc9d1\uc5b4\uc9c4\uc8fc\uc18c:$\uc815\uc758\ub41c\uc774\ub984\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Key\n\uc608\ub97c\ub4e4\uba74: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \ucd94\uac00 \uc815\ubcf4\n \n \n This target has modified advanced settings.\n \uc774 \ud0c0\uac9f\uc740 \uace0\uae09\uc124\uc815\ub4e4\uc744 \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4.\n \n \n Portals\n \ud3ec\ud138\n \n \n At least \n gateways are required.\n \n \uc801\uc5b4\ub3c4 \n \uac8c\uc774\ud2b8\uc6e8\uc774\ub4e4\uc744 \ud544\uc694\ub85c \ud569\ub2c8\ub2e4.\n \n \n \n Add portal\n \ud3ec\ud138 \ucd94\uac00\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \uc774 \uc774\ubbf8\uc9c0\ub294 \uc124\uc815\ub4e4\uc744 \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4. \n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \uc774\ubbf8\uc9c0 \ucd94\uac00\n \n \n ACL authentication\n ACL \uc778\uc99d\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \uac1c\uc2dc\uc790\ub4e4\n \n \n Initiator\n \uac1c\uc2dc\uc790\ub4e4\n \n \n Client IQN\n \ud074\ub77c\uc774\uc5b8\ud2b8 IQN\n \n \n Initiator IQN needs to be unique.\n \uac1c\uc2dc\uc790 IQN\uc740 \uc720\uc77c\ud574\uc57c \ud569\ub2c8\ub2e4.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \uc0ac\uc6a9\uc790\uc774\ub984\uc740 8~64\uc790\uae4c\uc9c0 \uae38\uc774\uc758 \ubb38\uc790\ub4e4\uc744 \uac00\uc838\uc57c \ud558\uba70 \uadf8\ub9ac\uace0, \uc624\uc9c1 , \'.\', \'@\', \'-\', \'_\', \':\' \ub4f1\uc758 \ud2b9\uc218 \ubb38\uc790\ub4e4\ub9cc \ud3ec\ud568\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \uac1c\uc2dc\uc790\ub294 \ud558\ub098\uc758 \uadf8\ub8f9\uc5d0 \uc18d\ud574\uc57c \ud558\uace0, \uc774\ubbf8\uc9c0\ub294 \uadf8\ub8f9\uc548\uc5d0\uc11c \uc124\uc815\ud569\ub2c8\ub2e4.\n \n \n No items added.\n \ucd94\uac00\ub41c \uc544\uc774\ud15c\ub4e4\uc774 \uc5c6\uc74c\n \n \n Add initiator\n \uac8c\uc2dc\uc790 \ucd94\uac00\n \n \n Groups\n \uadf8\ub8f9\ub4e4\n \n \n Group\n \uadf8\ub8f9\n \n \n Add group\n \uadf8\ub8f9\ucd94\uac00\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD \uc124\uc815\ub4e4\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \ub85c\uceec \uad6c\uc131 \uac12\uc744 \uc81c\uac70\ud558\uc2ed\uc2dc\uc624. \uc0c1\uc704 \uad6c\uc131 \uac12\uc740 \uacc4\uc2b9\ub418\uace0 \ub300\uc2e0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.\n \n \n The mininum value is 0\n \ucd5c\uc18c\uac12\uc740 0\uc785\ub2c8\ub2e4.\n \n \n Issues\n \uc774\uc288\ub4e4\n \n \n Syncing\n \ub3d9\uae30\ud654\uc911\n \n \n Ready\n \uc900\ube44\ub428\n \n \n Edit pool mirror mode\n \ud480 \ubbf8\ub7ec\ubaa8\ub4dc\ub97c \ud3b8\uc9d1\ud558\uae30\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \ud480\uc744 \uc704\ud55c \ubbf8\ub7ec\ubaa8\ub4dc\ub97c \ud3b8\uc9d1\ud558\uae30 \uc704\ud574\xa0\n \n \n , \uadf8 \ubaa9\ub85d\uc73c\ub85c \ubd80\ud130 \uc0c8\ub85c\uc6b4 \ubaa8\ub4dc\ub97c \uc120\ud0dd\ud558\uace0, \ud074\ub9ad\n \uac31\uc2e0\n .\n \n \n \n Mode\n \uc591\uc2dd\n \n \n Peer clusters must be removed prior to disabling mirror.\n \uc0c1\ub300\ubc29 \ud074\ub7ec\uc2a4\ud130\ub4e4\uc740 \ubbf8\ub7ec\ub97c \ub2e8\uc808\ud558\uae30 \uc804\uc5d0 \ubc18\ub4dc\uc2dc \uc81c\uac70\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n \n pool mirror peer\n \n \n \n \ud480 \ubbf8\ub7ec \uc0c1\ub300\ubc29\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \ud480 \n \n \n \ud480\uc744 \uc704\ud558\uc5ec \uc0c1\ub300\ubc29 \uc18d\uc131 \ubbf8\ub7ec\ud558\uace0,\n \uc120\ud0dd \n \uc81c\ucd9c \n .\n \n \n \n Cluster Name\n \ud074\ub7ec\uc2a4\ud130 \uc774\ub984\n \n \n The cluster name is not valid.\n \ud074\ub7ec\uc2a4\ud130 \uc774\ub984\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n CephX ID\n CephX \uc544\uc774\ub514\n \n \n CephX ID...\n CephX \uc544\uc774\ub514...\n \n \n The CephX ID is not valid.\n CephX \uc544\uc774\ub514\uac00 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Monitor Addresses\n \ubaa8\ub2c8\ud130 \uc8fc\uc18c\ub4e4\n \n \n Comma-delimited addresses...\n \ucf64\ub9c8\ub85c \ubd84\ub9ac\ub41c \uc8fc\uc18c\ub4e4...\n \n \n The monitory address is not valid.\n \ubaa8\ub2c8\ud130 \uc8fc\uc18c\uac00 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n CephX Key\n CephX \ud0a4\n \n \n Base64-encoded key...\n Base64\ub85c \uc778\ucf54\ub529 \ub41c \ud0a4 ...\n \n \n CephX key must be base64 encoded.\n CephX \ud0a4\ub294 \ubc18\ub4dc\uc2dc base64\ub85c \uc778\ucf54\ub4dc \ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n Pools List\n \ud480 \ubaa9\ub85d\ub4e4\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \uc774\ub984\uc740 \uc601\uc22b\uc790, \ub300\uc2dc \ubc0f \ubc11\uc904\ub85c\ub9cc \uad6c\uc131 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The chosen erasure code profile name is already in use.\n \uc120\ud0dd\ud55c Erasure Code \ud504\ub85c\ud30c\uc77c \uc774\ub984\uc774 \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.\n \n \n Plugin\n \ud50c\ub7ec\uadf8\uc778\n \n \n Data chunks (k)\n \ub370\uc774\ud130 \ub369\uc5b4\ub9ac\ub4e4 (k)\n \n \n Must be equal to or greater than 2.\n \ubc18\ub4dc\uc2dc 2\ubcf4\ub2e4 \ud06c\uac70\ub098 \uac19\uc544\uc57c\ud569\ub2c8\ub2e4.\n \n \n Coding chunks (m)\n \ucf54\ub529 \ub369\uc5b4\ub9ac\ub4e4 (m)\n \n \n Must be equal to or greater than 1.\n \ubc18\ub4dc\uc2dc 1\ubcf4\ub2e4 \ud06c\uac70\ub098 \uac19\uc544\uc57c\ud569\ub2c8\ub2e4.\n \n \n Durability estimator (c)\n \ub0b4\uad6c\uc131 \ud3c9\uac00(c)\n \n \n Locality (l)\n \uc9c0\uc5ed (l)\n \n \n Crush failure domain\n \ud06c\ub7ec\uc26c \uc2e4\ud328 \ub3c4\uba54\uc778\n \n \n Crush Locality\n \ud06c\ub7ec\uc26c \uc9c0\uc5ed\n \n \n None\n \uc5c6\uc74c\n \n \n Technique\n \uae30\uc220\n \n \n Packetsize\n \ud328\ud0b7\ud06c\uae30\n \n \n Crush root\n \ud06c\ub7ec\uc26c\ub8e8\ud2b8\n \n \n Crush device class\n \ud06c\ub7ec\uc26c \uc7a5\uce58 \ud074\ub798\uc2a4\n \n \n any\n \ubaa8\ub4e0\n \n \n Directory\n \ub514\ub809\ud1a0\ub9ac\n \n \n The chosen Ceph pool name is already in use.\n \uc120\ud0dd\ud55c Ceph \ud480\uc774\ub984\uc774 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n Pool type\n \ud480 \ud615\ud0dc\n \n \n -- Select a pool type --\n -- \ud480 \ud615\ud0dc \uc120\ud0dd --\n \n \n Placement groups\n \uac8c\uc7ac\uc704\uce58 \uadf8\ub8f9\n \n \n At least one placement group is needed!\n \uc801\uc5b4\ub3c4 \ud558\ub098\uc758 \uac8c\uc7ac\uc704\uce58 \uadf8\ub8f9\uc774 \ud544\uc694\ud568!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \ud074\ub7ec\uc2a4\ud130\ub294 \uc774 \ub9ce\uc740 PG\ub4e4\ub97c \ucc98\ub9ac \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ud544\uc694\ud55c PG \uc591\uc744 \ub2e4\uc2dc \uacc4\uc0b0\ud558\uc2ed\uc2dc\uc624.\n \n \n Calculation help\n \uacc4\uc0b0 \ub3c4\uc6c0\ub9d0\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \ud604\uc7ac\uc758 PG\ub4e4 \uc124\uc815\ub4e4\uc774 \ub2f9\uc2e0\uc744 \uc704\ud574 \uacc4\uc0b0\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n\ub2f9\uc2e0\uc740 \uc81c\ucd9c\ud558\uae30 \uc804\uc5d0 \ub2f9\uc2e0\uc758 \uc694\uad6c\uc5d0 \uc801\ud569\ud55c \uac12\uc778\uc9c0\ub97c \ud655\uc778\ud574\uc57c \ud569\ub2c8\ub2e4.\n \n \n Crush ruleset\n \ud06c\ub7ec\uc26c \ub8f0\uc14b\n \n \n -- Select a crush rule --\n -- \ud06c\ub7ec\uc26c \ub8f0 \uc120\ud0dd --\n \n \n Crush rule\n \ud06c\ub7ec\uc26c \ub8f0\n \n \n Crush steps\n \ud06c\ub7ec\uc26c \ub2e8\uacc4\ub4e4\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \uc774 \ub8f0\uc5d0 \uc758\ud558\uc5ec \ucd5c\uc18c\ub85c \ud544\uc694\ub85c \ud558\ub294 OSD\ubcf4\ub2e4 \uc801\uc740 OSD\ub97c \uac00\uc9c0\uace0 \uc788\uae30\ub54c\ubb38\uc5d0 \uc774 \ub8f0\uc740 \ud604\uc7ac\uc758 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Replicated size\n \ubcf5\uc81c\ub418\ub294 \ud06c\uae30\n \n \n Minimum: \n \n \n \ucd5c\uc18c: \n \n \n \n \n Maximum: \n \n \n \ucd5c\ub300: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \uc9c0\uc815\ub41c \ud06c\uae30\ub294 \ubc94\uc704\ub97c \ubc97\uc5b4\ub0ac\uc2b5\ub2c8\ub2e4.\n \uc5d0\uc11c \n \uc0ac\uc774\uc758 \uac12\uc774 \uc720\ud6a8\ud569\ub2c8\ub2e4.\n \n \n \n Erasure code profile\n Erasure Code \ud504\ub85c\ud30c\uc77c\n \n \n -- No erasure code profile available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c Erasure Code \ud504\ub85c\ud30c\uc77c \uc5c6\uc74c --\n \n \n -- Select an erasure code profile --\n -- \ud55c\uac1c\uc758 Erasure Code \ud504\ub85c\ud30c\uc77c \uc120\ud0dd --\n \n \n EC Overwrites\n EC \ub36e\uc5b4\uc4f0\uae30\n \n \n Applications\n \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8\ub4e4\n \n \n Compression\n \uc555\ucd95\n \n \n Algorithm\n \uc54c\uace0\ub9ac\uc998\n \n \n -- No erasure compression algorithm available --\n -- \uc774\uc6a9\uac00\ub2a5\ud55c Erasure \uc555\ucd95\uc54c\uace0\ub9ac\uc998 \uc5c6\uc74c --\n \n \n Minimum blob size\n \ucd5c\uc18c blob \ud06c\uae30\n \n \n e.g., 128KiB\n \uc608) 128KiB\n \n \n Value should be greater than 0\n \uac12\uc740 0\ubcf4\ub2e4 \ucee4\uc57c\ud569\ub2c8\ub2e4\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n \ucd5c\ub300 blob \ud06c\uae30\n \n \n e.g., 512KiB\n \uc608) 512KiB\n \n \n Value should be greater than the minimum blob size\n \uac12\uc740 \ucd5c\uc18c blob \ud06c\uae30\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4\n \n \n Ratio\n \ube44\uc728\n \n \n Compression ratio\n \uc555\ucd95\uc728\n \n \n Value should be between 0.0 and 1.0\n \uac12\uc740 0.0\uacfc 1.0 \uc0ac\uc774 \uc5ec\uc57c \ud569\ub2c8\ub2e4.\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \uc774\ub984\uc5d0 \'/\'\uac00 \ud3ec\ud568 \ub41c RBD \ud480\uc744 \uc0dd\uc131 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \uc774\ub984\uc744 \ubcc0\uacbd\ud558\uac70\ub098 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8 \ubaa9\ub85d\uc5d0\uc11c \'rbd\'\ub97c \uc81c\uac70\ud558\uc2ed\uc2dc\uc624.\n \n \n Cache Tiers Details\n \ucf00\uc26c \uacc4\uce35\ub4e4 \uc0c1\uc138\uc124\uba85\ub4e4\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \uad00\ub9ac\uae30\ub2a5\ub4e4\uc744 \uc5b4\ub5bb\uac8c \uc124\uc815\ud558\uace0 \ucf1c\ub294\uc9c0\uc5d0 \ub300\ud574 \n\ubb38\uc11c\n \uc0c1\uc758 \n \ubd80\ubd84\uc744 \ucc38\uc870\ud558\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n \n \n \n Daemons List\n \ub370\ubaac \ubaa9\ub85d\ub4e4\n \n \n Performance Counters\n \uc131\ub2a5 \uce74\uc6b4\ud130\n \n \n Loading bucket data...\n \ubc84\ud0b7\ub370\uc774\ud0c0 \uc801\uc7ac \uc911\n \n \n The bucket data could not be loaded.\n \ubc84\ud0b7 \ub370\uc774\ud0c0\ub97c \uc801\uc7ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Id\n \uc544\uc774\ub514\n \n \n The value is not valid.\n \uac12\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Owner\n \uc18c\uc720\uc790\n \n \n -- Select a user --\n -- \uc0ac\uc6a9\uc790 \uc120\ud0dd --\n \n \n ID\n \uc544\uc774\ub514\n \n \n Index type\n \uc0c9\uc778\ud615\uc2dd\n \n \n Placement rule\n \uc704\uce58\uaddc\uce59\n \n \n Marker\n \ud45c\uc2dc\n \n \n Maximum marker\n \ucd5c\ub300 \ub9c8\ucee4\n \n \n Version\n \ubc84\uc83c\n \n \n Master version\n \ub9c8\uc2a4\ud130 \ubc84\uc83c\n \n \n Modification time\n \uc218\uc815\ub41c \uc2dc\uac04\n \n \n Zonegroup\n \uc81c\ub85c\uadf8\ub8f9\n \n \n Bucket quota\n \ubc84\ud0b7 \ud560\ub2f9\ub7c9\n \n \n Enabled\n \uc774\uc6a9\uac00\ub2a5\n \n \n Maximum size\n \ucd5c\ub300 \ud06c\uae30\n \n \n Unlimited\n \ubb34\uc81c\ud55c\n \n \n Maximum objects\n \ucd5c\ub300 \uac1d\uccb4\ub4e4\n \n \n -- Select a username --\n -- \uc0ac\uc6a9\uc790\uba85 \uc120\ud0dd --\n \n \n Auto-generate key\n \uc790\ub3d9\uc0dd\uc131\ub41c \ud0a4\n \n \n Access key\n \uc811\uadfc \ud0a4\n \n \n Secret key\n \ube44\ubc00 \ud0a4\n \n \n Email address\n \uc804\uc790\uc6b0\ud3b8 \uc8fc\uc18c\n \n \n Suspended\n \uc720\uc608\ub418\ub2e4.\n \n \n System\n \uc2dc\uc2a4\ud15c\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, \uc120\ud0dd, 0 {\uc544\ub2c8\uc624} 1 {\uc608} }\n \n \n Maximum buckets\n \ucd5c\ub300 \ubc84\ud0b7\ub4e4\n \n \n Subusers\n \ubcf4\uc870\uc0ac\uc6a9\uc790\ub4e4\n \n \n Capabilities\n \ub2a5\ub825\uce58\ub4e4\n \n \n User quota\n \uc0ac\uc6a9\uc790 \ud560\ub2f9\ub7c9\n \n \n Show\n \ubcf4\uae30\n \n \n Keys\n \ud0a4\ub4e4\n \n \n -- Select a type --\n -- \ud615\ud0dc \uc120\ud0dd --\n \n \n Permission\n \uad8c\ud55c\n \n \n -- Select a permission --\n -- \uad8c\ud55c \uc120\ud0dd --\n \n \n Subuser\n \ubcf4\uc870\uc0ac\uc6a9\uc790\n \n \n The chosen subuser ID is already in use.\n \uc120\ud0dd\ud55c \ubcf4\uc870\uc0ac\uc6a9\uc790 \uc544\uc774\ub514\uac00 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n read, write\n \uc77d\uae30, \uc4f0\uae30\n \n \n full\n \uac00\ub4dd\ucc2c\n \n \n Swift key\n \uc2a4\uc704\ud504\ud2b8 \ud0a4\n \n \n Auto-generate secret\n \uc790\ub3d9\uc0dd\uc120\ub41c \ube44\ubc00\n \n \n Loading user data...\n \uc0ac\uc6a9\uc790 \ub370\uc774\ud0c0 \uc801\uc7ac \uc911...\n \n \n The user data could not be loaded.\n \uc0ac\uc6a9\uc790 \ub370\uc774\ud0c0\ub97c \uc801\uc7ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n The chosen user ID is already in use.\n \uc120\ud0dd\ub41c \uc0ac\uc6a9\uc790 \uc544\uc774\ub514\uac00 \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.\n \n \n This is not a valid email address.\n \uc774\uac83\uc740 \uc720\ud6a8\ud55c \uc804\uc790\uc6b0\ud3b8 \uc8fc\uc18c\uac00 \uc544\ub2d9\ub2c8\ub2e4.\n \n \n The chosen email address is already in use.\n \uc120\ud0dd\ud55c \uc804\uc790\uc6b0\ud3b8 \uc8fc\uc18c\uac00 \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.\n \n \n Max. buckets\n \ucd5c\ub300 \ubc84\ud0b7\ub4e4\n \n \n The entered value must be >= 0.\n \uc785\ub825\ub41c \uac12\uc740 \ubc18\ub4dc\uc2dc 0\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n S3 key\n S3 \ud0a4\n \n \n There are no subusers.\n \ubcf4\uc870\uc0ac\uc6a9\uc790\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \ud0a4\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n \uc2a4\uc704\ud504\ud2b8\n \n \n There are no capabilities.\n \ub2a5\ub825\uce58\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \ubb34\uc81c\ud55c \ud06c\uae30\n \n \n Max. size\n \ucd5c\ub300 \ud06c\uae30\n \n \n Unlimited objects\n \ubb34\uc81c\ud55c \uac1d\uccb4\ub4e4\n \n \n Max. objects\n \ucd5c\ub300 \uac1d\uccb4\ub4e4\n \n \n Current\n \ud604\uc7ac\n \n \n Updated discovery authentication\n \uc5c5\ub370\uc774\ud2b8\ub41c \uac80\uc0c9 \uc778\uc99d\n \n \n There are no portals available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \ud3ec\ud0c8\ub4e4\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n There are no images available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc774\ubbf8\uc9c0\ub4e4\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n There are no images available. Please make sure you add an image to the target.\n \uc0ac\uc6a9\ud560 \uc218\uc788\ub294 \uc774\ubbf8\uc9c0\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uc0c1\uc5d0 \uc774\ubbf8\uc9c0\ub97c \ucd94\uac00\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \uc0ac\uc6a9\ud560 \uc218\uc788\ub294 \uac1c\uc2dc\uc790\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uc0c1\uc5d0 \uac1c\uc2dc\uc790\ub97c \ucd94\uac00\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.\n \n \n target\n target\n \n \n Target\n \ud0c0\uac9f\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \uc0c1\ud0dc\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \uc77d\uc740 \ubc14\uc774\ud2b8\ub4e4\n \n \n Write Bytes\n \uc4f0\uae30 \ubc14\uc774\ud2b8\ub4e4\n \n \n Read Ops\n \uc77d\uae30 Ops\n \n \n Write Ops\n \uc4f0\uae30 Ops\n \n \n A/O Since\n A/O \uc774\ub798\ub85c\n \n \n Instance\n \uc778\uc2a4\ud0c4\uc2a4\n \n \n Hostname\n \ud638\uc2a4\ud2b8\uc774\ub984\n \n \n Issue\n \uc774\uc288\n \n \n Progress\n \uc9c4\ud589\uc911\n \n \n Disabled\n \uc124\uc815\ud574\uc81c\ub428\n \n \n Edit Mode\n \ud3b8\uc9d1\ubaa8\ub4dc\n \n \n Add Peer\n \uc0c1\ub300\ubc29 \ucd94\uac00\n \n \n Edit Peer\n \uc0c1\ub300\ubc29 \ud3b8\uc9d1\n \n \n Delete Peer\n \uc0c1\ub300\ubc29 \uc0ad\uc81c\n \n \n Leader\n \ub9ac\ub354\n \n \n # Local\n # \ub85c\uceec\n \n \n # Remote\n # \uc6d0\uaca9\n \n \n mirror peer\n \uc0c1\ub300\ubc29 \ubbf8\ub7ec\n \n \n Key\n \ud0a4\n \n \n RBD\n RBD\n \n \n Deep flatten\n \ub525 \ud328\ud134\n \n \n Layering\n \uacc4\uce35\ud654\n \n \n Exclusive lock\n \ubc30\ud0c0\uc801\uc778 \ub77d\n \n \n Object map (requires exclusive-lock)\n \uc624\ud504\uc81d\ud2b8-\ub9f5(\ubc30\ud0c0\uc801\uc778-\ub77d\uc744 \uc694\uad6c\ud55c\ub2e4)\n \n \n Journaling (requires exclusive-lock)\n \uc800\ub110\ub9c1(\ubc30\ud0c1\uc801\uc778-\ub77d\uc744 \uc694\uad6c\ud569\ub2c8\ub2e4.)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD \uc2a4\ub0c5\uc0f7 \ub864\ubc31\n \n \n Rollback\n \ub864\ubc31\n \n \n RBD snapshot\n RBD \uc2a4\ub0c5\uc0f7\n \n \n Deleted At\n \uc0ad\uc81c\ub420 \n \n \n id\n \uc544\uc774\ub514\n \n \n type\n \ud615\ud0dc\n \n \n state\n \uc0c1\ud0dc\n \n \n version\n \ubc84\uc83c\n \n \n Host\n \ud638\uc2a4\ud2b8\n \n \n root\n \ub8e8\ud2b8\n \n \n Rank\n \uc21c\uc704\n \n \n Daemon\n \ub370\ubaac\n \n \n Activity\n \ud65c\ub3d9\n \n \n Dentries\n \ub374\ud2b8\ub9ac\ub4e4\n \n \n Inodes\n \uc544\uc774\ub178\ub4dc\ub4e4\n \n \n Usage\n \uc0ac\uc6a9\ub7c9\n \n \n Standby daemons\n \ub300\uae30 \ub370\ubaac\ub4e4\n \n \n The value can be updated at runtime.\n \uc774 \uac12\uc740 \ub7f0\ud0c0\uc784\uc5d0 \uc5c5\ub370\uc774\ud2b8 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \ub370\ubaac\ub4e4 / \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc740 \ubaa8\ub2c8\ud130 \uad6c\uc131 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c\uc774 \uac12\uc744 \uac00\uc838 \uc624\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \'ceph config set ...\'\uc744 \ud1b5\ud574\uc774 \uc635\uc158\uc744 \uc124\uc815\ud558\ub294 \uac83\uc740 \ud5c8\ub77d\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc774 \uc635\uc158\uc740 ceph.conf \ub610\ub294 \uba85\ub839 \uc904\uc744 \ud1b5\ud574 \uad6c\uc131\ud574\uc57c\ud569\ub2c8\ub2e4.\n \n \n Option takes effect only during daemon startup.\n \uc635\uc158\uc740 \ub370\ubaac \uc2dc\uc791 \uc911\uc5d0 \ub9cc \uc801\uc6a9\ub429\ub2c8\ub2e4.\n \n \n Option only affects cluster creation.\n \uc635\uc158\uc740 \ud074\ub7ec\uc2a4\ud130 \uc0dd\uc131\ud560 \ub54c \ub9cc \uc601\ud5a5\uc744 \uc90d\ub2c8\ub2e4.\n \n \n Option only affects daemon creation.\n \uc635\uc158\uc740 \ub370\ubaac \uc0dd\uc131\ud560 \ub54c\ub9cc \uc601\ud5a5\uc744\uc90d\ub2c8\ub2e4.\n \n \n Updated config option \n \n \n \uac31\uc2e0\ub41c \uc124\uc815 \uc635\uc158 \n \n \n \n \n Service\n \uc11c\ube44\uc2a4\n \n \n Current value\n \ud604\uc7ac\uac12\n \n \n Editable\n \ud3b8\uc9d1\uac00\ub2a5\n \n \n Updated options for module "\n ".\n \n \ubaa8\ub4c8\uc744 \uc704\ud574 \uac31\uc2e0\ub41c \uc635\uc158\ub4e4 &quot;\n &quot;.\n \n \n \n Enable\n \uc0ac\uc6a9\uac00\ub2a5\n \n \n Disable\n \uc0ac\uc6a9\ubd88\uac00\n \n \n Reconnecting, please wait ...\n \uc7ac-\uc811\uc18d \uc911, \uae30\ub2e4\ub824 \uc8fc\uc138\uc694...\n \n \n Public Address\n \uacf5\uac1c \uc8fc\uc18c\n \n \n Open Sessions\n \uc5f4\ub9b0 \uc138\uc158\ub4e4\n \n \n No In\n \ub4e4\uc5b4\uc62c \uc218 \uc5c6\ub294\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \uc774\uc804\uc5d0 \ub9c8\ud06c \uc544\uc6c3 \ub41c OSD\ub294 \uc2dc\uc791\uc2dc \ub2e4\uc2dc \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n No Out\n \ub098\uac08 \uc218 \uc5c6\ub294\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD\ub4e4\uc740 \uad6c\uc131\ub41c \uac04\uaca9 \ud6c4\uc5d0\ub294 \uc790\ub3d9\uc73c\ub85c \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n No Up\n \uc0b4\uc544\ub098\uc9c0 \uc54a\ub294\n \n \n OSDs are not allowed to start\n OSD\ub294 \uc2dc\uc791\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n No Down\n \uc8fd\uc77c \uc218 \uc5c6\ub294\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n \ubaa8\ub2c8\ud130\uac00 OSD\ub4e4\uc758 \ub2e4\uc6b4\uc744 \ud45c\uc2dc\ud558\uc9c0 \uc54a\ub3c4\ub85d OSD \uc7a5\uc560 \ubcf4\uace0\uc11c\uac00 \ubb34\uc2dc\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Pause\n \uba48\ucd9c\n \n \n Pauses reads and writes\n \uc77d\uae30\uc640 \uc4f0\uae30\ub97c \uba48\ucda4\n \n \n No Scrub\n \uc2a4\ud06c\ub7ec\ube59 \uc54a\ub428\n \n \n Scrubbing is disabled\n \uc2a4\ud06c\ub7ec\ube59\uc774 \ube44\ud65c\uc131\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n No Deep Scrub\n \ub525 \uc2a4\ud06c\ub7fd \uc548\ub428\n \n \n Deep Scrubbing is disabled\n \ub525 \uc2a4\ud06c\ub7ec\ube59\uc774 \ube44\ud65c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n No Backfill\n \ubc31\ud544 \uc5c6\uc74c\n \n \n Backfilling of PGs is suspended\n PG\ub4e4\uc758 \ubc31\ud544\uc774 \uc77c\uc2dc\uc911\uc9c0 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n No Recover\n \ubcf5\uad6c \uc54a\ub428\n \n \n Recovery of PGs is suspended\n PG\ub4e4\uc758 \ubcf5\uad6c\uac00 \uc77c\uc2dc\uc911\uc9c0 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n Bitwise Sort\n \ube44\ud2b8\ub2e8\uc704 \uc815\ub82c\n \n \n Use bitwise sort\n \ube44\ud2b8\ub2e8\uc704 \uc815\ub82c\uc744 \uc0ac\uc6a9\ud558\uc138\uc694\n \n \n Purged Snapdirs\n \uc644\uc804\uc0ad\uc81c\ub41c \uc2a4\ub0c5\ub514\ub809\ud1a0\ub9ac\ub4e4\n \n \n OSDs have converted snapsets\n OSD\ub4e4\uc774 \ubcc0\ud654\ub41c \uc2a4\ub0c5\uc14b\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Recovery Deletes\n \uc0ad\uc81c\ub41c \ubcf5\uad6c\ub4e4\n \n \n Deletes performed during recovery instead of peering\n \ud53c\uc5b4\ub9c1 \ub300\uc2e0 \ubcf5\uad6c \uc911\uc5d0 \uc218\ud589\ub41c \uc0ad\uc81c\ubb3c\ub4e4\n \n \n PG Log Hard Limit\n PG \ub85c\uadf8 \ud558\ub4dc \ud55c\uacc4\n \n \n Puts a hard limit on pg log length\n pg \ub85c\uadf8 \uae38\uc774\uc5d0 \ud558\ub4dc \ud55c\uacc4\ub97c \ub123\uc73c\uc138\uc694\n \n \n Updated OSD Flags\n \uac31\uc2e0\ub41c OSD \ud50c\ub798\uadf8\ub4e4\n \n \n out\n \uc544\uc6c3\n \n \n in\n \uc778\n \n \n down\n \ub2e4\uc6b4\n \n \n Mark\n \ud45c\uc2dc\n \n \n OSD lost\n OSD \uc190\uc2e4\n \n \n marked lost\n \uc190\uc2e4 \ud45c\uc2dc\n \n \n Purge\n \uc644\uc804\uc81c\uac70\n \n \n OSD\n OSD\n \n \n purged\n \uc644\uc804\uc81c\uac70\ub41c\n \n \n destroy\n \ud30c\uad34\ub428\n \n \n destroyed\n \ud30c\uad34\ub41c\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n \ud30c\uad34\ub428\n \n \n Read bytes\n \uc77d\uc740 \ubc14\uc774\ud2b8\ub4e4\n \n \n Writes bytes\n \uc4f0\uae30\ub41c \ubc14\uc774\ud2b8\ub4e4\n \n \n Read ops\n \uc77d\uae30 ops\n \n \n Write ops\n \uc4f0\uae30 ops\n \n \n Mark OSD \n \n \n \ud45c\uc2dc\ub41c OSD \n \n \n \n \n Mark \n \n \n \ud45c\uc2dc\ub41c \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \ucd5c\ub300 \ubc31\ud544\ub4e4\n \n \n Recovery Max Active\n \ucd5c\ub300 \ud65c\uc131\ud654\ub97c \ubcf5\uad6c\ud558\uae30\n \n \n Recovery Max Single Start\n \ucd5c\ub300 \ub2e8\uc77c \uc2dc\uc791\uc744 \ubcf5\uad6c\ud558\uae30\n \n \n Recovery Sleep\n \uc7a0\uc790\uae30\ub97c \ubcf5\uad6c\ud558\uae30\n \n \n Custom\n \ucee4\uc2a4\ud140\n \n \n Updated OSD recovery speed priority "\n "\n \n \uac31\uc2e0\ub41c OSD \ubcf5\uad6c \uc18d\ub3c4 \uc6b0\uc120\uc21c\uc704 &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n \uc740 \ub2e4\uc74c\uc758 OSD\ub4e4 \uc548\uc5d0 \ucd08\uae30\ud654\ub428: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \uc77c\n \n \n Severity\n \uc2ec\uac01\ub3c4\n \n \n Started\n \uc2dc\uc791\ub41c\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \uac31\uc2e0\ub41c\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \uc0ac\uc6a9\ub41c\n \n \n Avail.\n \uc774\uc6a9\uac00\ub2a5:\n \n \n Clean\n \uae68\ub057\ud55c\n \n \n Working\n \uc815\uc0c1\ub3d9\uc791\uc911\n \n \n Warning\n \uacbd\uace0\n \n \n Unknown\n \uc54c\ub824\uc9c0\uc9c0 \uc54a\uc740\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \uc815\uc0c1\n \n \n no filesystems\n \ud30c\uc77c\uc2dc\uc2a4\ud15c\ub4e4 \uc5c6\uc74c\n \n \n active\n \ud65c\uc131\ud654\ub41c\n \n \n standby\n \ub300\uae30\uc911\uc778\n \n \n n/a\n \uc774\uc6a9\ubd88\uac00\n \n \n active daemon\n \ud65c\uc131\ud654\ub41c \ub370\ubaac\ub4e4\n \n \n quorum\n \uc815\uc871\uc218\n \n \n The NFS Ganesha service is not configured.\n NFS Ganesha \uc11c\ube44\uc2a4\uac00 \uc124\uc815\ub418\uc9c0 \uc54a\uc74c\n \n \n Transport\n \uc804\uc1a1\n \n \n CephFS User\n CephFS \uc0ac\uc6a9\uc790\n \n \n CephFS Filesystem\n CephFS \ud30c\uc77c\uc2dc\uc2a4\ud15c\n \n \n (inherited from global config)\n (\uc804\uc5ed \uad6c\uc131\uc5d0\uc11c \uc0c1\uc18d)\n \n \n inherited from global config\n \uc804\uc5ed \uad6c\uc131\uc5d0\uc11c \uc0c1\uc18d\n \n \n -- Select what kind of user id squashing is performed --\n - \uc5b4\ub5a4 \uc885\ub958\uc758 \uc0ac\uc6a9\uc790 ID \uc2a4\ucffc\uc2dc\uac00 \uc218\ud589\ub418\ub294\uc9c0 \uc120\ud0dd -\n \n \n There are no daemons available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \ub370\ubaac\uc774 \uc5c6\uc74d\ub2c8\ub2e4.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \uce90\uc26c\ubaa8\ub4dc\n \n \n Min Evict Age\n \ucd5c\uc18c \ud1f4\uac70 \uc5f0\ub839\n \n \n Min Flush Age\n \ucd5c\uc18c \ud50c\ub7ec\uc2dc \uc5f0\ub839\n \n \n Target Max Bytes\n \ubaa9\ud45c \ucd5c\ub300 \ubc14\uc774\ud2b8\ub4e4\n \n \n Target Max Objects\n \ubaa9\ud45c \ucd5c\ub300 \uc624\ube0c\uc81d\ud2b8\ub4e4\n \n \n No applications added\n \ucd94\uac00\ub41c \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \uc5c6\uc74c\n \n \n Applications limit reached\n \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ud55c\uacc4\uc5d0 \ub3c4\ub2ec\ud568\n \n \n A pool can only have up to four applications definitions.\n \ud558\ub098\uc758 \ud480\uc740 \uc624\uc9c1 \ub124\uac1c\uc758 \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \uc815\uc758\ub4e4\uc744 \uac00\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \'_a-zA-Z0-9\' \ubb38\uc790\ub4e4\ub9cc \ud5c8\ub77d\ub428\n \n \n Maximum length is 128 characters\n \ucd5c\ub300 \uae38\uc774\ub294 128\uae00\uc790\uc774\ub2e4.\n \n \n Filter or add applications\n \ud544\ud130 \ub610\ub294 \ucd94\uac00\ub41c \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8\ub4e4\n \n \n Add application\n \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ucd94\uac00\n \n \n pool\n pool\n \n \n erasure code profile\n Erasure \ucf54\ub4dc \ud504\ub85c\ud30c\uc77c\n \n \n Replica Size\n \ubcf5\uc81c \ud06c\uae30\n \n \n Last Change\n \ub9c8\uc9c0\ub9c9 \ubcc0\uacbd\n \n \n Erasure Coded Profile\n Erasure \ucf54\ub4dc\ud654\ub41c \ud504\ub85c\ud30c\uc77c\n \n \n Crush Ruleset\n \ud06c\ub7ec\uc26c \ub8f0\uc14b\n \n \n Write bytes\n \uc4f0\uc5ec\uc9c4 \ubc14\uc774\ud2b8\ub4e4\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \ubc84\ud0b7\n \n \n Updated Object Gateway bucket "\n "\n \n \uac31\uc2e0\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc5b4 \ubc84\ud0b7 &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n \uc0dd\uc131\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \ubc84\ud0b7 &quot;\n &quot;\n \n \n \n buckets\n \ubc84\ud0b7\ub4e4\n \n \n capability\n capability\n \n \n user\n \uc0ac\uc6a9\uc790\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \uac31\uc2e0\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n \uc0dd\uc131\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n users\n \uc0ac\uc6a9\uc790\ub4e4\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \ubc94\uc704\n \n \n Read\n \uc77d\uae30\n \n \n Create\n \ub9cc\ub4e4\uae30\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \uc0dd\uc131\ub41c \ub864 \'\n \'\n \n \n \n Updated role \'\n \'\n \n \uac31\uc2e0\ub41c \ub864 \'\n \'\n \n \n \n System Role\n \uc2dc\uc2a4\ud15c \ub864\n \n \n Deleted role \'\n \'\n \n \uc0ad\uc81c\ub41c \ub864 \'\n \'\n \n \n \n Created user "\n "\n \n \uc0dd\uc131\ub41c \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Update user\n \uac31\uc2e0\ub41c \uc0ac\uc6a9\uc790\n \n \n Continue\n \uacc4\uc18d\n \n \n You were automatically logged out because your roles have been changed.\n \ub2f9\uc2e0\uc758 \ub864\ub4e4\uc774 \ubcc0\uacbd\ub418\uc5b4 \ub2f9\uc2e0\uc740 \uc790\ub3d9\uc801\uc73c\ub85c \ub85c\uadf8\uc544\uc6c3\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n Updated user "\n "\n \n \uac31\uc2e0\ub41c \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n \uc0ad\uc81c\ub41c \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n \uc0ac\uc6a9\uc790 \uc0ad\uc81c\uac00 \uc2e4\ud3d0\ub41c &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n \ub2f9\uc2e0\uc740 \ud604\uc7ac &quot;\n &quot; \ub85c \ub85c\uadf8\uc778\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \uac01\uac01\uc758 \uc624\ube0c\uc81d\ud2b8\ub4e4\uc740 \ub370\uc774\ud0c0-\uccad\ud06c \ubd80\ubd84\ub4e4\ub85c \ubd84\ub9ac\ub418\uc5b4, \uac01\uae30 \ub2e4\ub978 OSD\uc5d0 \ubcf4\uad00\ub429\ub2c8\ub2e4.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \uac01 \uc624\ube0c\uc81d\ud2b8\ub4e4\uc5d0 \ub300\ud55c \ucf54\ub529 \uccad\ud06c\ub97c \uacc4\uc0b0\ud558\uace0 \uc11c\ub85c \ub2e4\ub978 OSD\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \n\ucf54\ub529\ub41c \uccad\ud06c\uc758 \uc218\ub294 \ub370\uc774\ud130 \uc190\uc2e4\uc5c6\uc774 \uc791\ub3d9\uc911\uc9c0 \ub418\uc5b4 \uc9c8 \uc218\uc788\ub294 OSD\uc758 \uc22b\uc790\uc774\uae30\ub3c4\ud569\ub2c8\ub2e4.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Jerasure \ud50c\ub7ec\uadf8\uc778\uc740 \uac00\uc7a5 \uc77c\ubc18\uc801\uc774\uace0 \uc720\uc5f0\ud55c \ud50c\ub7ec\uadf8\uc778\uc73c\ub85c,\n\ub610\ud55c Ceph erasure \ucf54\ub4dc \ud480\uc758 \uae30\ubcf8\uac12\uc774\uae30\ub3c4\ud569\ub2c8\ub2e4.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n \ubcf4\ub2e4 \uc720\uc5f0\ud55c \uae30\uc220\uc740 reed_sol_van\uc785\ub2c8\ub2e4 : k\uc640 m\uc744 \uc124\uc815\ud558\uba74 \ucda9\ubd84\ud569\ub2c8\ub2e4. \ncauchy_good \uae30\uc220\uc740 \ube60\ub97c \uc218 \uc788\uc9c0\ub9cc \ud328\ud0b7\ud06c\uae30\ub97c \uc8fc\uc758\uae4a\uac8c \uc120\ud0dd\ud574\uc57c\ud569\ub2c8\ub2e4. \nreed_sol_r6_op, liberation, blaum_roth, liber8tion\uc740 \ubaa8\ub450 m = 2\ub85c\ub9cc \uad6c\uc131 \ud560 \uc218 \uc788\ub2e4\ub294 \uc810\uc5d0\uc11c RAID-6\uc5d0 \ud574\ub2f9\ud569\ub2c8\ub2e4.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \uc778\ucf54\ub529\uc740 \ud55c\ubc88\uc5d0 \ubc14\uc774\ud2b8\ub4e4 \ud06c\uae30\uc758 \ud328\ud0b7\uc5d0 \ub300\ud574 \uc218\ud589\ub429\ub2c8\ub2e4. \uc62c\ubc14\ub978 \ud328\ud0b7 \ud06c\uae30\ub97c \uc120\ud0dd\ud558\ub294 \uac83\uc740 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. jerasure \ubb38\uc11c\uc5d0\ub294\uc774 \uc8fc\uc81c\uc5d0 \ub300\ud55c \uad11\ubc94\uc704\ud55c \uc815\ubcf4\uac00 \ub4e4\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n jerasure \ud50c\ub7ec\uadf8\uc778\uc744 \uc0ac\uc6a9\ud558\uba74 \uc0ad\uc81c \ub41c \ucf54\ub529 \ub41c \uac1d\uccb4\uac00 \uc5ec\ub7ec OSD\uc5d0 \uc800\uc7a5 \ub420 \ub54c \ud558\ub098\uc758 OSD\uac00 \uc190\uc2e4\ub418\ub294 \uac83\uc744 \ubcf5\uad6c\ud558\ub824\uba74 \ub2e4\ub978 \ubaa8\ub4e0 OSD\ub97c \uc77d\uc5b4\uc57c\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 jerasure\uac00 k = 8 \ubc0f m = 4\ub85c \uad6c\uc131\ub418\uc5b4\uc788\ub294 \uacbd\uc6b0 \ud558\ub098\uc758 OSD\ub97c \uc783\uc5b4 \ubc84\ub9ac\uba74 11 \uba85\uc758 \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc774 \uc218\ub9ac\ud574\uc57c\ud569\ub2c8\ub2e4.\nlrc erasure code plugin\uc740 \uc801\uc740 \uc591\uc758 OSD\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubcf5\uad6c \ud560 \uc218 \uc788\ub3c4\ub85d \ub85c\uceec \ud328\ub9ac\ud2f0 \uccad\ud06c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, lrc\uac00 k = 8, m = 4 \ubc0f l = 4\ub85c \uad6c\uc131\ub41c \uacbd\uc6b0 4 \uac1c\uc758 OSD\ub9c8\ub2e4 \ucd94\uac00 \ud328\ub9ac\ud2f0 \ub369\uc5b4\ub9ac\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. \ub2e8\uc77c OSD\uac00 \uc190\uc2e4\ub418\uba74 11 \uac1c \ub300\uc2e0 4 \uac1c\uc758 OSD\ub9cc\uc73c\ub85c \ubcf5\uad6c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \ucf54\ub529 \ubc0f \ub370\uc774\ud130 \uccad\ud06c\ub97c \ud06c\uae30 \uc9c0\uc5ed \uc9d1\ud569\uc73c\ub85c \uadf8\ub8f9\ud654\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, k = 4 \ubc0f m = 2\uc5d0 \ub300\ud574, \uc9c0\uc5ed\uc131 = 3 \uc77c \ub54c \ub450 \uac1c\uc758 \uc138 \uadf8\ub8f9\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4. \uac01 \uc138\ud2b8\ub294 \ub2e4\ub978 \uc138\ud2b8\uc758 \uccad\ud06c\ub97c \uc77d\uc9c0 \uc54a\uace0\ub3c4 \ubcf5\uad6c \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n l\ub85c \uc815\uc758 \ub41c \uac01 \uccad\ud06c \uc9d1\ud569\uc774 \uc800\uc7a5\ub418\ub294 \ud06c\ub7ec\uc2dc \ubc84\ud0b7\uc758 \uc720\ud615\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub799\uc73c\ub85c \uc124\uc815\ud558\uba74 l \uac1c\uc758 \uccad\ud06c \uadf8\ub8f9\uc774 \uac01\uac01 \ub2e4\ub978 \ub799\uc5d0 \ubc30\uce58\ub429\ub2c8\ub2e4. \n\ub799 \uc120\ud0dd \ub2e8\uacc4\uc640 \uac19\uc740 CRUSH \uaddc\uce59 \ub2e8\uacc4\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc124\uc815\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc73c\uba74, \uadf8\ub7ec\ud55c \uadf8\ub8f9\ud654\uac00 \uc218\ud589\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa \ud50c\ub7ec\uadf8\uc778\uc740 ISA \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucea1\uc290\ud654\ud569\ub2c8\ub2e4. \uc778\ud154 \ud504\ub85c\uc138\uc11c\uc5d0\uc11c\ub9cc \uc2e4\ud589\ub429\ub2c8\ub2e4.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA \ud50c\ub7ec\uadf8\uc778\uc740 \ub450 \uac1c\uc758 \ub9ac\ub4dc \uc194\ub85c\ubaac \ud615\uc2dd\uc73c\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4.\nreed_sol_van\uc774 \uc124\uc815\ub418\uba74 Vandermonde, cauchy\uac00 \uc124\uc815\ub418\uba74 Cauchy\uc785\ub2c8\ub2e4.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec plugin\uc740 \ub2e4\uc911 SHEC \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucea1\uc290\ud654\ud569\ub2c8\ub2e4.\n\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 ceph\uac00 \ub9ac\ub4dc \uc194\ub85c\ubaac \ucf54\ub4dc\ubcf4\ub2e4 \ub354 \ud6a8\uc728\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ubcf5\uad6c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \uac01 \ub370\uc774\ud130 \uccad\ud06c\uac00 \uacc4\uc0b0 \ubc94\uc704\uc5d0 \ud3ec\ud568\ub418\ub294 \ud328\ub9ac\ud2f0 \uccad\ud06c\uc758 \uc218\uc785\ub2c8\ub2e4. \uc774 \uc218\uce58\ub294 \ub0b4\uad6c\uc131 \uce21\uc815\uae30\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, c = 2 \uc778 \uacbd\uc6b0 2 \uac1c\uc758 OSD\uac00 \ub370\uc774\ud130 \uc190\uc2e4\uc5c6\uc774 \uc911\ub2e8 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n CRUSH \uaddc\uce59\uc758 \uccab \ubc88\uc9f8 \ub2e8\uacc4\uc5d0 \uc0ac\uc6a9 \ub41c \ud06c\ub7ec\uc2dc \ubc84\ud0b7\uc758 \uc774\ub984\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 step\uc740 \uae30\ubcf8\uac12\uc744 \ucde8\ud569\ub2c8\ub2e4.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \ub3d9\uc77c\ud55c \uc2e4\ud328 \ub3c4\uba54\uc778\uc744 \uac00\uc9c4 \uc591\ub3d9\uc774\uc5d0 \ub450 \uac1c\uc758 \uccad\ud06c\uac00 \uc5c6\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624. \uc608\ub97c \ub4e4\uc5b4 \uc2e4\ud328 \ub3c4\uba54\uc778\uc774 \ud638\uc2a4\ud2b8 \uc778 \uacbd\uc6b0 \ub450 \uac1c\uc758 \uccad\ud06c\uac00 \ub3d9\uc77c\ud55c \ud638\uc2a4\ud2b8\uc5d0 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc774 \ub2e8\uacc4\ub294 \ub9ac\ud504 \ud638\uc2a4\ud2b8\ub97c \uc120\ud0dd\ud558\ub294 \ub2e8\uacc4\uc640 \uac19\uc740 CRUSH \uaddc\uce59 \ub2e8\uacc4\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n CRUSH\uc9c0\ub3c4\uc5d0\uc11c \ud06c\ub798\uc2dc \uc7a5\uce58 \ud074\ub798\uc2a4 \uc774\ub984\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud2b9\uc815 \ud074\ub798\uc2a4 (\uc608 : ssd \ub610\ub294 hdd)\uc758 \uc7a5\uce58\ub85c \ubc30\uce58\ub97c \uc81c\ud55c\ud569\ub2c8\ub2e4.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \uc0ad\uc81c \ucf54\ub4dc \ud50c\ub7ec\uadf8\uc778\uc774\ub85c\ub4dc\ub418\ub294 \ub514\ub809\ud1a0\ub9ac \uc774\ub984\uc744 \uc124\uc815\ud558\uc2ed\uc2dc\uc624.\n \n \n Allows all operations\n \ubaa8\ub4e0 \uc791\uc5c5\ub4e4 \ud5c8\uc6a9\n \n \n Allows only operations that do not modify the server\n \uc624\uc9c1 \uc11c\ubc84\ub97c \uc218\uc815\ud558\uc9c0 \uc54a\ub294 \uc791\uc5c5\ub4e4\ub9cc \uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Does not allow read or write operations, but allows any other operation\n \uc77d\uae30\uc640 \uc4f0\uae30 \uc791\uc5c5\uc740 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc9c0\ub9cc, \uadf8\uc678 \ubaa8\ub4e0 \uc791\uc5c5\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \ud30c\uc77c\uc758 \uc18d\uc131\uacfc \ub514\ub809\ud1a0\ub9ac \ub0b4\uc6a9\uc744 \ubcc0\uacbd\ud558\ub294 \uc77d\uae30, \uc4f0\uae30 \ub610\ub294 \uc5b4\ub5a0\ud55c \uc791\uc5c5\uc740 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Allows no access at all\n \uc804\ud600 \uc5b4\ub5a0\ud55c \uc811\uadfc\ub3c4 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n -- Select the priority --\n -- \uc6b0\uc120\uc21c\uc704 \uc120\ud0dd --\n \n \n Low\n \ub0ae\uc74c\n \n \n High\n \ub192\uc74c\n \n \n Last 5 minutes\n \ub9c8\uc9c0\ub9c9 5\ubd84\n \n \n Last 15 minutes\n \uc9c0\ub09c 15\ubd84\n \n \n Last 30 minutes\n \uc9c0\ub09c 30\ubd84\n \n \n Last 1 hour (Default)\n \uc9c0\ub09c 1\uc2dc\uac04(\uae30\ubcf8)\n \n \n Last 3 hours\n \uc9c0\ub09c 3\uc2dc\uac04\n \n \n Last 6 hours\n \uc9c0\ub09c 6\uc2dc\uac04\n \n \n Last 12 hours\n \uc9c0\ub09c 12\uc2dc\uac04\n \n \n Last 24 hours\n \uc9c0\ub09c 24\uc2dc\uac04\n \n \n Yesterday\n \uc5b4\uc81c\n \n \n Today\n \uc624\ub298\n \n \n Today so far\n \uc624\ub298 \uc9c0\uae08\uae4c\uc9c0\n \n \n Day before yesterday\n \uadf8\uc800\uaed8\n \n \n Last 2 days\n \uc9c0\ub09c 2\uc77c\n \n \n This day last week\n \uc774\ubc88 \uc8fc \ub9c8\uc9c0\ub9c9\ub0a0\n \n \n Previous week\n \uc804\uc8fc\n \n \n This week\n \uc774\ubc88\uc8fc\n \n \n This week so far\n \uc774\ubc88\uc8fc \uc9c0\uae08\uae4c\uc9c0\n \n \n Last 7 days\n \uc9c0\ub09c 7\uc77c\n \n \n Previous month\n \uc9c0\ub09c \ub2ec\n \n \n This month\n \uc774\ubc88 \ub2ec\n \n \n This month so far\n \uc774\ubc88 \ub2ec \uc9c0\uae08\uae4c\uc9c0\n \n \n Last 30 days\n \uc9c0\ub09c 30\uc77c\n \n \n Last 90 days\n \uc9c0\ub09c 90\uc77c\n \n \n Last 6 months\n \uc9c0\ub09c 6\uac1c\uc6d4\n \n \n Last 1 year\n \uc9c0\ub09c 1\ub144\n \n \n Previous year\n \uc804\ub144\ub3c4\n \n \n This year\n \uae08\ub144\ub3c4\n \n \n This year so far\n \uae08\ub144 \uc9c0\uae08\uae4c\uc9c0\n \n \n Last 2 years\n \uc9c0\ub09c 2\ub144\n \n \n Last 5 years\n \uc9c0\ub09c 5\ub144\n \n \n Information\n \uc815\ubcf4\n \n \n No items selected.\n \uc120\ud0dd\ub41c \uc544\uc774\ud15c \uc5c6\uc74c\n \n \n Deselect item to select again\n \ub2e4\uc2dc \uc120\ud0dd\ud558\uae30 \uc704\ud574 \uc544\uc774\ud15c \uc120\ud0dd\uc744 \ucde8\uc18c\n \n \n Selection limit reached\n \uc120\ud0dd \ud55c\uacc4\uc5d0 \ub3c4\ub2ec\ud568\n \n \n Filter tags\n \ud544\ud130 \ud14c\uadf8\ub4e4\n \n \n Add badge\n \ubca0\ucc0c \ucd94\uac00\n \n \n There are no items available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc544\uc774\ud15c \uc5c6\uc74c\n \n \n Add\n \ucd94\uac00\n \n \n Remove\n Remove\n \n \n Clone\n \ubcf5\uc81c\n \n \n Copy\n \ubcf5\uc0ac\n \n \n Deep Scrub\n \ub525 \uc2a4\ud06c\ub7fd\n \n \n Destroy\n \ud30c\uad34\ub428\n \n \n Flatten\n \ub2e8\uc870\ub85c\uc6c0\n \n \n Mark Down\n \ub2e4\uc6b4 \ud45c\uc2dc\n \n \n Mark In\n \uc778 \ud45c\uc2dc\n \n \n Mark Lost\n \uc190\uc2e4 \ud45c\uc2dc\n \n \n Mark Out\n \uc544\uc6c3 \ud45c\uc2dc\n \n \n Protect\n \ubcf4\ud638\n \n \n Rename\n \uc774\ub984\ubcc0\uacbd\n \n \n Restore\n \ubcf5\uad6c\n \n \n Move to Trash\n \ud734\uc9c0\ud1b5\uc73c\ub85c \uc62e\uae30\uae30\n \n \n Unprotect\n \ubcf4\ud638\uc54a\ub428\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \uc0ad\uc81c\ub3d4\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \ubcf5\uc81c\ub41c\n \n \n Copied\n \ubcf5\uc0ac\ub41c\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \uc608\n \n \n No\n \uc544\ub2c8\uc624\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \uc11c\ube44\uc2a4 \ub7c9\n \n \n BPS Limit\n BPS \ud55c\uacc4\n \n \n The desired limit of IO bytes per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 IO \ubc14\uc774\ud2b8 \uc218 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n IOPS Limit\n IOPS \uc81c\ud55c\n \n \n The desired limit of IO operations per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 IO \uc791\uc5c5 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Read BPS Limit\n \uc77d\uae30 BPS \uc81c\ud55c\n \n \n The desired limit of read bytes per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc77d\uae30 \ubc14\uc774\uc2a4 \uc218 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Read IOPS Limit\n \uc77d\uae30 IOPS \ud55c\ub3c4\n \n \n The desired limit of read operations per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc77d\uae30 \uc791\uc5c5 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Write BPS Limit\n \uc4f0\uae30 BPS \ud55c\ub3c4\n \n \n The desired limit of write bytes per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc4f0\uae30 \ubc14\uc774\ud2b8 \uc218 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Write IOPS Limit\n \uc4f0\uae30 IOPS \uc81c\ud55c\n \n \n The desired limit of write operations per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc4f0\uae30 \uc791\uc5c5 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n BPS Burst\n BPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of IO bytes.\n \uc6d0\ud558\ub294 \ubc84\uc2a4\ud2b8 IO \ubc14\uc774\ud2b8 \ud55c\ub3c4 \uc785\ub2c8\ub2e4.\n \n \n IOPS Burst\n IOPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of IO operations.\n \uc6d0\ud558\ub294 IO \uc791\uc5c5\uc758 \ubc84\uc2a4\ud2b8 \ud55c\uacc4\uc785\ub2c8\ub2e4.\n \n \n Read BPS Burst\n \uc77d\uae30 BPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of read bytes.\n \uc6d0\ud558\ub294 \uc77d\uae30 \ubc84\uc2a4\ud2b8 \ud55c\uacc4\uc785\ub2c8\ub2e4.\n \n \n Read IOPS Burst\n \uc77d\uae30 IOPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of read operations.\n \uc6d0\ud558\ub294 \uc77d\uae30 \uc791\uc5c5\uc758 \ubc84\uc2a4\ud2b8 \ud55c\ub3c4\uc785\ub2c8\ub2e4.\n \n \n Write BPS Burst\n \uc4f0\uae30 BPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of write bytes.\n \uc4f0\uae30 \ubc14\uc774\ud2b8\uc758 \uc6d0\ud558\ub294 \ubc84\uc2a4\ud2b8 \ud55c\ub3c4.\n \n \n Write IOPS Burst\n \uc4f0\uae30 IOPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of write operations.\n \uc4f0\uae30 \ubc14\uc774\ud2b8\uc758 \uc6d0\ud558\ub294 \ubc84\uc2a4\ud2b8 \ud55c\ub3c4.\n \n \n Failed to \n \n \n \n \n \n \uc758 \uc2e4\ud3d0\n \n \n \n Executing\n \uc218\ud589\uc911\n \n \n execute\n \uc218\ud589\n \n \n Executed\n \uc218\ud589\ub41c\n \n \n unknown task\n \uc54c\ub824\uc9c0\uc9c0 \uc54a\ub294 \uc791\uc5c5\n \n \n Creating\n \uc0dd\uc131\ud558\ub294 \uc911\n \n \n create\n \uc0dd\uc131\n \n \n Updating\n \uac31\uc2e0 \uc911\n \n \n update\n \uac31\uc2e0\n \n \n Deleting\n \uc0ad\uc81c \uc911\n \n \n delete\n \uc0ad\uc81c\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n RBD \uc2a4\ub0c5\uc0bf \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n \ud480 \'\n \' \uc744 \uc704\ud55c \ubbf8\ub7ec\ubaa8\ub4dc\n \n \n \n mirror peer for pool \'\n \'\n \n \ud480 \'\n \' \ubbf8\ub7ec \uc0c1\ub300\ubc29\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \uc774\ub984\uc740 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n \n Name is already used by \n .\n \n \uc774\ub984\uc740 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n \n Name is already used by \n .\n \n \uc774\ub984\uc774 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n \n \n contains snapshots.\n \n \n \uc774 \ud3ec\ud568\ub41c \uc2a4\ub0c5\uc0bf\ub4e4.\n \n \n \n Cloning\n \ubcf5\uc81c\uc911\n \n \n clone\n \ubcf5\uc81c\n \n \n Snapshot of \n must be protected.\n \n \ubc18\ub4dc\uc2dc\n \uc758 \uc2a4\ub0c5\uc0bf\uc740 \ubcf4\ud638\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n Copying\n \ubcf5\uc0ac\uc911\n \n \n copy\n \ubcf5\uc0ac\n \n \n Flattening\n \ud3c9\ud3c9\ud558\uac8c \ud558\ub294 \uc911\n \n \n flatten\n \ud3c9\ud3c9\ud568\n \n \n Flattened\n \ud3c9\ud3c9\ud558\uac8c \ub428\n \n \n Name is already used by \n .\n \n \uc774\ub984\uc774 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9 \uc911.\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \n \uc744 \ubcf4\ud638\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc65c\ub0d0\ud558\uba74 \uadf8\uac83\uc740 \uc790\uc2dd \uc774\ubbf8\uc9c0\ub4e4\uc744 \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4,\n \n \n \n Cannot delete \n because it\'s protected.\n \n \n \uc744 \uc0ad\uc81c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc65c\ub0d0\ud558\uba74 \uadf8\uac83\uc740 \ubcf4\ud638\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n \n Rolling back\n \ub864\ubc31 \uc911\n \n \n rollback\n \ub864\ubc31\n \n \n Rolled back\n \ub864\ubc31\ub428\n \n \n Moving\n \uc62e\uae30\ub294 \uc911\n \n \n move\n \uc62e\uae30\uae30\n \n \n Moved\n \uc62e\uaca8\uc9d0\n \n \n image \'\n \' to trash\n \n \uc774\ubbf8\uc9c0 \'\n \' \ubc84\ub9ac\uae30\n \n \n \n Could not find image.\n \uc774\ubbf8\uc9c0\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Restoring\n \ubcf5\uad6c\uc911\n \n \n restore\n \ubcf5\uad6c\n \n \n Restored\n \ubcf5\uad6c\ub428\n \n \n image \'\n \' into \'\n \'\n \n \uc774\ubbf8\uc9c0 \'\n \' \uc744 \'\n \' \ub85c\n \n \n \n Image name \'\n \' is already in use.\n \n \uc774\ubbf8\uc9c0 \uc774\ub984 \'\n \' \uc774 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n \n image \'\n \'\n \n \uc774\ubbf8\uc9c0 \'\n \'\n \n \n \n Purging\n \uc644\uc804\uc0ad\uc81c \uc911\n \n \n purge\n \uc644\uc804\uc0ad\uc81c\n \n \n Purged\n \uc644\uc804\uc0ad\uc81c\ub428\n \n \n all pools\n \ubaa8\ub4e0 \ud480\ub4e4\n \n \n images from \n \n \n \n \ub85c \ubd80\ud130\uc758 \uc774\ubbf8\uc9c0\ub4e4\n \n \n \n Cannot disable mirroring because it contains a peer.\n \ud53c\uc5b4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \ubbf8\ub7ec\ub9c1\uc744 \ube44\ud65c\uc131\ud654 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n pool \'\n \'\n \n \ud480 \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n Erasure \ucf54\ub4dc \ud504\ub85c\ud30c\uc77c \'\n \'\n \n \n \n target \'\n \'\n \n \ud0c0\uae43 \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},QC43:function(t,e,n){"use strict";var a=n("CcnG"),r=n("MdoF"),i=n("lTVp");n("XFyV"),n.d(e,"a",function(){return o}),n.d(e,"b",function(){return s});var o=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"alert",[["type","info"]],null,null,null,r.c,r.b)),a["\u0275did"](1,114688,null,0,i.a,[i.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["\u0275eld"](2,0,null,0,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-spinner fa-spin fa-fw"]],null,null,null,null,null)),a["\u0275ncd"](0,0)],function(t,e){t(e,1,0,"info")},null)}},QFaf:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(e,n,a){var r=t.call(this,e,n,a)||this;return r.controls=e,r}return a.__extends(e,t),e.prototype.get=function(t){var e=this._get(t);if(!e)throw new Error("Control '"+t+"' could not be found!");return e},e.prototype._get=function(n){return t.prototype.get.call(this,n)||Object.values(this.controls).filter(function(t){return t.get}).map(function(t){return t instanceof e?t._get(n):t.get(n)}).find(function(t){return Boolean(t)})},e.prototype.getValue=function(t){return this.get(t).value},e.prototype.silentSet=function(t,e){this.get(t).setValue(e,{emitEvent:!1})},e.prototype.showError=function(t,e,n){var a=this.get(t);return(e.submitted||a.dirty)&&(n?a.hasError(n):a.invalid)},e}(n("gIcY").k)},QG5k:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeMenuItemAction=function(t){return t[t.NewFolder=0]="NewFolder",t[t.NewTag=1]="NewTag",t[t.Rename=2]="Rename",t[t.Remove=3]="Remove",t[t.Custom=4]="Custom",t}(e.NodeMenuItemAction||{}),e.NodeMenuAction=function(t){return t[t.Close=0]="Close",t}(e.NodeMenuAction||{})},QGcS:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeDraggableEvent=function(){return function(t,e){this.captured=t,this.target=e}}()},QHrR:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("Y0Co")),a(n("Lwhh")),a(n("8iEZ")),a(n("L5sC"))},QTAa:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e}(n("t/zF").a)},Qexa:function(t,e,n){"use strict";t.exports=function(t){t.Bubble=function(e,n){return n.type="bubble",new t(e,n)}}},Qgas:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("dC0D"),r=n("AxiF"),i=n("HJBe"),o=n("y3By");function s(t,e){return arguments.length>=2?function(n){return Object(o.a)(Object(a.a)(t,e),Object(r.a)(1),Object(i.a)(e))(n)}:function(e){return Object(o.a)(Object(a.a)(function(e,n,a){return t(e,n,a+1)}),Object(r.a)(1))(e)}}},Qj4J:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}()},"R+r5":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("Qgas");function r(t,e,n){return 0===n?[e]:(t.push(e),t)}function i(){return Object(a.a)(r,[])}},RAwQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return e?r[n][0]:r[n][1]}function a(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10;return a(0===e?t/10:e)}if(t<1e4){for(;t>=10;)t/=10;return a(t)}return a(t/=1e3)}n("wd/R").defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(t){return a(t.substr(0,t.indexOf(" ")))?"a "+t:"an "+t},past:function(t){return a(t.substr(0,t.indexOf(" ")))?"viru "+t:"virun "+t},s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d M\xe9int",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},RCHg:function(t,e,n){"use strict";var a=n("wd/R");a="function"==typeof a?a:window.moment;var r=n("CDJp"),i=n("RDha"),o=n("cdu6"),s=n("tjFV"),u=Number.MIN_SAFE_INTEGER||-9007199254740991,c=Number.MAX_SAFE_INTEGER||9007199254740991,l={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},d=Object.keys(l);function f(t,e){return t-e}function p(t){var e,n,a,r={},i=[];for(e=0,n=t.length;e=0&&o<=s;){if(i=t[a=o+s>>1],!(r=t[a-1]||null))return{lo:null,hi:i};if(i[e]n))return{lo:r,hi:i};s=a-1}}return{lo:i,hi:null}}(t,e,n),i=r.lo?r.hi?r.lo:t[t.length-2]:t[0],o=r.lo?r.hi?r.hi:t[t.length-1]:t[1],s=o[e]-i[e];return i[a]+(o[a]-i[a])*(s?(n-i[e])/s:0)}function g(t,e){var n=e.parser,r=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof r?a(t,r):(t instanceof a||(t=a(t)),t.isValid()?t:"function"==typeof r?r(t):t)}function m(t,e){if(i.isNullOrUndef(t))return null;var n=e.options.time,a=g(e.getRightValue(t),n);return a.isValid()?(n.round&&a.startOf(n.round),a.valueOf()):null}function b(t){for(var e=d.indexOf(t)+1,n=d.length;e=o&&n<=s&&y.push(n);return r.min=o,r.max=s,r._unit=f.unit||function(t,e,n,i){var o,s,u=a.duration(a(r.max).diff(a(n)));for(o=d.length-1;o>=d.indexOf(e);o--)if(l[s=d[o]].common&&u.as(s)>=t.length)return s;return d[e?d.indexOf(e):0]}(y,f.minUnit,r.min),r._majorUnit=b(r._unit),r._table=function(t,e,n,a){if("linear"===u.distribution||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var r,i,o,s,c,l=[],d=[e];for(r=0,i=t.length;re&&s1?e[1]:a,"pos")-h(t,"time",i,"pos"))/2),r.time.max||(i=e.length>1?e[e.length-2]:n,s=(h(t,"time",e[e.length-1],"pos")-h(t,"time",i,"pos"))/2)),{left:o,right:s}}(r._table,y,o,s,u),r._labelFormat=function(t,e){var n,a,r,i=t.length;for(n=0;n=0&&t0?s:1}});s.registerScaleType("time",t,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},RDha:function(t,e,n){"use strict";t.exports=n("TC34"),t.exports.easing=n("u0Op"),t.exports.canvas=n("Sfow"),t.exports.options=n("As3K")},RnPR:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Keys=function(t){return t[t.up=38]="up",t[t.down=40]="down",t[t.return=13]="return",t[t.escape=27]="escape",t[t.left=37]="left",t[t.right=39]="right",t}(e.Keys||{})},RnhZ:function(t,e,n){var a={"./af":"K/tc","./af.js":"K/tc","./ar":"jnO4","./ar-dz":"o1bE","./ar-dz.js":"o1bE","./ar-kw":"Qj4J","./ar-kw.js":"Qj4J","./ar-ly":"HP3h","./ar-ly.js":"HP3h","./ar-ma":"CoRJ","./ar-ma.js":"CoRJ","./ar-sa":"gjCT","./ar-sa.js":"gjCT","./ar-tn":"bYM6","./ar-tn.js":"bYM6","./ar.js":"jnO4","./az":"SFxW","./az.js":"SFxW","./be":"H8ED","./be.js":"H8ED","./bg":"hKrs","./bg.js":"hKrs","./bm":"p/rL","./bm.js":"p/rL","./bn":"kEOa","./bn.js":"kEOa","./bo":"0mo+","./bo.js":"0mo+","./br":"aIdf","./br.js":"aIdf","./bs":"JVSJ","./bs.js":"JVSJ","./ca":"1xZ4","./ca.js":"1xZ4","./cs":"PA2r","./cs.js":"PA2r","./cv":"A+xa","./cv.js":"A+xa","./cy":"l5ep","./cy.js":"l5ep","./da":"DxQv","./da.js":"DxQv","./de":"tGlX","./de-at":"s+uk","./de-at.js":"s+uk","./de-ch":"u3GI","./de-ch.js":"u3GI","./de.js":"tGlX","./dv":"WYrj","./dv.js":"WYrj","./el":"jUeY","./el.js":"jUeY","./en-SG":"zavE","./en-SG.js":"zavE","./en-au":"Dmvi","./en-au.js":"Dmvi","./en-ca":"OIYi","./en-ca.js":"OIYi","./en-gb":"Oaa7","./en-gb.js":"Oaa7","./en-ie":"4dOw","./en-ie.js":"4dOw","./en-il":"czMo","./en-il.js":"czMo","./en-nz":"b1Dy","./en-nz.js":"b1Dy","./eo":"Zduo","./eo.js":"Zduo","./es":"iYuL","./es-do":"CjzT","./es-do.js":"CjzT","./es-us":"Vclq","./es-us.js":"Vclq","./es.js":"iYuL","./et":"7BjC","./et.js":"7BjC","./eu":"D/JM","./eu.js":"D/JM","./fa":"jfSC","./fa.js":"jfSC","./fi":"gekB","./fi.js":"gekB","./fo":"ByF4","./fo.js":"ByF4","./fr":"nyYc","./fr-ca":"2fjn","./fr-ca.js":"2fjn","./fr-ch":"Dkky","./fr-ch.js":"Dkky","./fr.js":"nyYc","./fy":"cRix","./fy.js":"cRix","./ga":"USCx","./ga.js":"USCx","./gd":"9rRi","./gd.js":"9rRi","./gl":"iEDd","./gl.js":"iEDd","./gom-latn":"DKr+","./gom-latn.js":"DKr+","./gu":"4MV3","./gu.js":"4MV3","./he":"x6pH","./he.js":"x6pH","./hi":"3E1r","./hi.js":"3E1r","./hr":"S6ln","./hr.js":"S6ln","./hu":"WxRl","./hu.js":"WxRl","./hy-am":"1rYy","./hy-am.js":"1rYy","./id":"UDhR","./id.js":"UDhR","./is":"BVg3","./is.js":"BVg3","./it":"bpih","./it-ch":"bxKX","./it-ch.js":"bxKX","./it.js":"bpih","./ja":"B55N","./ja.js":"B55N","./jv":"tUCv","./jv.js":"tUCv","./ka":"IBtZ","./ka.js":"IBtZ","./kk":"bXm7","./kk.js":"bXm7","./km":"6B0Y","./km.js":"6B0Y","./kn":"PpIw","./kn.js":"PpIw","./ko":"Ivi+","./ko.js":"Ivi+","./ku":"JCF/","./ku.js":"JCF/","./ky":"lgnt","./ky.js":"lgnt","./lb":"RAwQ","./lb.js":"RAwQ","./lo":"sp3z","./lo.js":"sp3z","./lt":"JvlW","./lt.js":"JvlW","./lv":"uXwI","./lv.js":"uXwI","./me":"KTz0","./me.js":"KTz0","./mi":"aIsn","./mi.js":"aIsn","./mk":"aQkU","./mk.js":"aQkU","./ml":"AvvY","./ml.js":"AvvY","./mn":"lYtQ","./mn.js":"lYtQ","./mr":"Ob0Z","./mr.js":"Ob0Z","./ms":"6+QB","./ms-my":"ZAMP","./ms-my.js":"ZAMP","./ms.js":"6+QB","./mt":"G0Uy","./mt.js":"G0Uy","./my":"honF","./my.js":"honF","./nb":"bOMt","./nb.js":"bOMt","./ne":"OjkT","./ne.js":"OjkT","./nl":"+s0g","./nl-be":"2ykv","./nl-be.js":"2ykv","./nl.js":"+s0g","./nn":"uEye","./nn.js":"uEye","./pa-in":"8/+R","./pa-in.js":"8/+R","./pl":"jVdC","./pl.js":"jVdC","./pt":"8mBD","./pt-br":"0tRk","./pt-br.js":"0tRk","./pt.js":"8mBD","./ro":"lyxo","./ro.js":"lyxo","./ru":"lXzo","./ru.js":"lXzo","./sd":"Z4QM","./sd.js":"Z4QM","./se":"//9w","./se.js":"//9w","./si":"7aV9","./si.js":"7aV9","./sk":"e+ae","./sk.js":"e+ae","./sl":"gVVK","./sl.js":"gVVK","./sq":"yPMs","./sq.js":"yPMs","./sr":"zx6S","./sr-cyrl":"E+lV","./sr-cyrl.js":"E+lV","./sr.js":"zx6S","./ss":"Ur1D","./ss.js":"Ur1D","./sv":"X709","./sv.js":"X709","./sw":"dNwA","./sw.js":"dNwA","./ta":"PeUW","./ta.js":"PeUW","./te":"XLvN","./te.js":"XLvN","./tet":"V2x9","./tet.js":"V2x9","./tg":"Oxv6","./tg.js":"Oxv6","./th":"EOgW","./th.js":"EOgW","./tl-ph":"Dzi0","./tl-ph.js":"Dzi0","./tlh":"z3Vd","./tlh.js":"z3Vd","./tr":"DoHr","./tr.js":"DoHr","./tzl":"z1FC","./tzl.js":"z1FC","./tzm":"wQk9","./tzm-latn":"tT3J","./tzm-latn.js":"tT3J","./tzm.js":"wQk9","./ug-cn":"YRex","./ug-cn.js":"YRex","./uk":"raLr","./uk.js":"raLr","./ur":"UpQW","./ur.js":"UpQW","./uz":"Loxo","./uz-latn":"AQ68","./uz-latn.js":"AQ68","./uz.js":"Loxo","./vi":"KSF8","./vi.js":"KSF8","./x-pseudo":"/X5v","./x-pseudo.js":"/X5v","./yo":"fzPg","./yo.js":"fzPg","./zh-cn":"XDpg","./zh-cn.js":"XDpg","./zh-hk":"SatO","./zh-hk.js":"SatO","./zh-tw":"kOpN","./zh-tw.js":"kOpN"};function r(t){var e=i(t);return n(e)}function i(t){var e=a[t];if(!(e+1)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return e}r.keys=function(){return Object.keys(a)},r.resolve=i,t.exports=r,r.id="RnhZ"},S1nX:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("xlPZ"),r=n("yGWI"),i=n("K9Ia");function o(){return new i.a}function s(){return function(t){return Object(r.a)()(Object(a.a)(o)(t))}}},"S3/U":function(t,e,n){"use strict";t.exports=function(t){t.Scatter=function(e,n){return n.type="scatter",new t(e,n)}}},S5bw:function(t,e,n){"use strict";n.d(e,"a",function(){return l});var a=n("mrSG"),r=n("K9Ia"),i=n("zo3G"),o=n("pugT"),s=n("mZXl"),u=n("8g8A"),c=n("uMaO"),l=function(t){function e(e,n,a){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var r=t.call(this)||this;return r.scheduler=a,r._events=[],r._infiniteTimeWindow=!1,r._bufferSize=e<1?1:e,r._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(r._infiniteTimeWindow=!0,r.next=r.nextInfiniteTimeWindow):r.next=r.nextTimeWindow,r}return a.__extends(e,t),e.prototype.nextInfiniteTimeWindow=function(e){var n=this._events;n.push(e),n.length>this._bufferSize&&n.shift(),t.prototype.next.call(this,e)},e.prototype.nextTimeWindow=function(e){this._events.push(new d(this._getNow(),e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,n=this._infiniteTimeWindow,a=n?this._events:this._trimBufferThenGetEvents(),r=this.scheduler,i=a.length;if(this.closed)throw new u.a;if(this.isStopped||this.hasError?e=o.a.EMPTY:(this.observers.push(t),e=new c.a(this,t)),r&&t.add(t=new s.a(t,r)),n)for(var l=0;le&&(i=Math.max(i,r-e)),i>0&&a.splice(0,i),a},e}(r.a),d=function(){return function(t,e){this.time=t,this.value=e}}()},S6ln:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+(1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi");case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+(1===t?"minuta":2===t||3===t||4===t?"minute":"minuta");case"h":return e?"jedan sat":"jednog sata";case"hh":return a+(1===t?"sat":2===t||3===t||4===t?"sata":"sati");case"dd":return a+(1===t?"dan":"dana");case"MM":return a+(1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci");case"yy":return a+(1===t?"godina":2===t||3===t||4===t?"godine":"godina")}}n("wd/R").defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}()},S7Ns:function(t,e,n){"use strict";t.exports=function(t){t.Doughnut=function(e,n){return n.type="doughnut",new t(e,n)}}},S7zO:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=(n("vCyI"),n("jKX/"),function(){function t(){this.dropDownActions=[]}return t.prototype.ngOnInit=function(){this.removeActionsWithNoPermissions(),this.updateDropDownActions()},t.prototype.toClassName=function(t){return t.replace(/ /g,"-").replace(/[^a-z-]/gi,"").toLowerCase()},t.prototype.removeActionsWithNoPermissions=function(){var t=this;if(this.permission){var e=Object.keys(this.permission).filter(function(e){return t.permission[e]});this.tableActions=this.tableActions.filter(function(t){return e.includes(t.permission)})}else this.tableActions=[]},t.prototype.updateDropDownActions=function(){var t=this;this.dropDownActions=this.tableActions.filter(function(e){return e.visible?e.visible(t.selection):e})},t.prototype.getCurrentButton=function(){var t=this;if(!this.onlyDropDown){var e=this.dropDownActions.find(function(e){return t.showableAction(e)});return!e&&this.dropDownActions.length>0&&(e=this.dropDownActions[0]),e}},t.prototype.showableAction=function(t){var e=t.canBePrimary,n=this.selection.hasSingleSelection,a="create"===t.permission?!n:n;return e&&e(this.selection)||!e&&a},t.prototype.useRouterLink=function(t){if(t.routerLink&&!this.disableSelectionAction(t))return a.isString(t.routerLink)?t.routerLink:t.routerLink()},t.prototype.disableSelectionAction=function(t){var e=t.permission,n=t.disable;if(n)return Boolean(n(this.selection));var a=this.selection.hasSingleSelection&&this.selection.first();return Boolean(["update","delete"].includes(e)&&(!a||a.cdExecuting))},t.prototype.showDropDownActions=function(){return this.updateDropDownActions(),this.dropDownActions.length>1},t.prototype.useClickAction=function(t){return!this.disableSelectionAction(t)&&t.click&&t.click()},t.prototype.useDisableDesc=function(t){return t.disableDesc&&t.disableDesc()},t}())},"SB+Q":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return encodeURIComponent(t)},t}()},SFxW:function(t,e,n){!function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};t.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(t){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(t)},meridiem:function(t,e,n){return t<4?"gec\u0259":t<12?"s\u0259h\u0259r":t<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(t){if(0===t)return t+"-\u0131nc\u0131";var n=t%10;return t+(e[n]||e[t%100-n]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},STEd:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n("FBEI");var a=n("CcnG"),r=n("xtUU"),i=n("HHO+"),o=n("Ip0R"),s=n("/TVo"),u=n("urB8"),c=n("ty8c"),l=n("FYBg"),d=n("JZ5S"),f=n("Tff5"),p=n("VUo1");e.TreeModule=function(){function t(){}return t.decorators=[{type:a.NgModule,args:[{imports:[o.CommonModule],declarations:[s.NodeDraggableDirective,r.TreeComponent,c.NodeEditableDirective,l.NodeMenuComponent,i.TreeInternalComponent,p.SafeHtmlPipe],exports:[r.TreeComponent],providers:[u.NodeDraggableService,d.NodeMenuService,f.TreeService]}]}],t}()},SXH0:function(t,e){t.exports='\n\n \n \n \n Toggle navigation\n Toggle navigation\n \n app/core/navigation/navigation/navigation.component.html\n 15\n \n \n Dashboard\n Dashboard\n \n app/core/navigation/navigation/navigation.component.html\n 35\n \n \n Cluster\n Cluster\n \n app/core/navigation/navigation/navigation.component.html\n 47\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 21\n \n \n Hosts\n Hosts\n \n app/core/navigation/navigation/navigation.component.html\n 57\n \n \n app/ceph/dashboard/health/health.component.html\n 81\n \n \n Monitors\n Monitors\n \n app/core/navigation/navigation/navigation.component.html\n 64\n \n \n app/ceph/dashboard/health/health.component.html\n 48\n \n \n OSDs\n OSDs\n \n app/core/navigation/navigation/navigation.component.html\n 71\n \n \n app/ceph/dashboard/health/health.component.html\n 57\n \n \n Configuration\n Configuration\n \n app/core/navigation/navigation/navigation.component.html\n 78\n \n \n app/ceph/block/rbd-details/rbd-details.component.html\n 125\n \n \n app/ceph/pool/pool-details/pool-details.component.html\n 22\n \n \n CRUSH map\n CRUSH map\n \n app/core/navigation/navigation/navigation.component.html\n 85\n \n \n Manager modules\n Manager modules\n \n app/core/navigation/navigation/navigation.component.html\n 92\n \n \n Logs\n Logs\n \n app/core/navigation/navigation/navigation.component.html\n 99\n \n \n Alerts\n Alerts\n \n app/core/navigation/navigation/navigation.component.html\n 105\n \n \n app/ceph/cluster/prometheus/prometheus-tabs/prometheus-tabs.component.html\n 2\n \n \n Silences\n Silences\n \n app/core/navigation/navigation/navigation.component.html\n 111\n \n \n app/ceph/cluster/prometheus/prometheus-tabs/prometheus-tabs.component.html\n 7\n \n \n Pools\n Pools\n \n app/core/navigation/navigation/navigation.component.html\n 121\n \n \n app/ceph/dashboard/health/health.component.html\n 186\n \n \n app/ceph/cephfs/cephfs-detail/cephfs-detail.component.html\n 19\n \n \n app/ceph/block/mirroring/overview/overview.component.html\n 12\n \n \n Block\n Block\n \n app/core/navigation/navigation/navigation.component.html\n 135\n \n \n Images\n Images\n \n app/core/navigation/navigation/navigation.component.html\n 144\n \n \n app/ceph/block/mirroring/overview/overview.component.html\n 21\n \n \n app/ceph/block/iscsi/iscsi.component.html\n 9\n \n \n app/ceph/block/rbd-images/rbd-images.component.html\n 3\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 120\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 363\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 502\n \n \n Mirroring\n Mirroring\n \n app/core/navigation/navigation/navigation.component.html\n 152\n \n \n iSCSI\n iSCSI\n \n app/core/navigation/navigation/navigation.component.html\n 164\n \n \n NFS\n NFS\n \n app/core/navigation/navigation/navigation.component.html\n 174\n \n \n Filesystems\n Filesystems\n \n app/core/navigation/navigation/navigation.component.html\n 182\n \n \n Object Gateway\n Object Gateway\n \n app/core/navigation/navigation/navigation.component.html\n 193\n \n \n app/ceph/nfs/nfs-list/nfs-list.component.html\n 27\n \n \n Daemons\n Daemons\n \n app/core/navigation/navigation/navigation.component.html\n 202\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 53\n \n \n app/ceph/block/mirroring/overview/overview.component.html\n 5\n \n \n Users\n Users\n \n app/core/navigation/navigation/navigation.component.html\n 208\n \n \n app/core/auth/user-tabs/user-tabs.component.html\n 2\n \n \n Buckets\n Buckets\n \n app/core/navigation/navigation/navigation.component.html\n 214\n \n \n Retrieving data for\n . Please wait...\n Retrieving data for\n . Please wait...\n \n app/shared/components/view-cache/view-cache.component.html\n 2\n \n \n Displaying previously cached data\n for .\n Displaying previously cached data\n for .\n \n app/shared/components/view-cache/view-cache.component.html\n 7\n \n \n Could not load data for\n .\n Please check the cluster health.\n Could not load data for\n .\n Please check the cluster health.\n \n app/shared/components/view-cache/view-cache.component.html\n 12\n \n \n Back\n Back\n \n app/shared/components/error-panel/error-panel.component.html\n 27\n \n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 118\n \n \n Select a Language\n Select a Language\n \n app/shared/components/language-selector/language-selector.component.html\n 7\n \n \n Loading panel data...\n Loading panel data...\n \n app/shared/components/grafana/grafana.component.html\n 3\n \n \n Please consult the\n documentation on how to\n configure and enable the monitoring functionality.\n Please consult the\n documentation on how to\n configure and enable the monitoring functionality.\n \n app/shared/components/grafana/grafana.component.html\n 6\n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation on how to\n add dashboards to Grafana.\n Grafana Dashboard doesn\'t exist. Please refer to\n documentation on how to\n add dashboards to Grafana.\n \n app/shared/components/grafana/grafana.component.html\n 11\n \n \n Grafana Time Picker\n Grafana Time Picker\n \n app/shared/components/grafana/grafana.component.html\n 20\n \n \n Reset Settings\n Reset Settings\n \n app/shared/components/grafana/grafana.component.html\n 35\n \n \n Refresh\n Refresh\n \n app/shared/components/refresh-selector/refresh-selector.component.html\n 5\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n app/shared/components/config-option/config-option.component.html\n 48\n \n \n The entered value is too high! It must not be greater than .\n The entered value is too high! It must not be greater than .\n \n app/shared/components/config-option/config-option.component.html\n 64\n \n \n The entered value is too low! It must not be lower than .\n The entered value is too low! It must not be lower than .\n \n app/shared/components/config-option/config-option.component.html\n 67\n \n \n Failed to load data.\n Failed to load data.\n \n app/shared/datatable/table/table.component.html\n 2\n \n \n selected\n selected\n \n app/shared/datatable/table/table.component.html\n 112\n \n X selected\n \n found\n found\n \n app/shared/datatable/table/table.component.html\n 115\n \n X found\n \n total\n total\n \n app/shared/datatable/table/table.component.html\n 118\n \n X total\n \n Edit\n Edit\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 10\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 32\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 236\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 375\n \n \n Name\n Name\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 18\n \n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 22\n \n \n app/core/auth/role-form/role-form.component.html\n 19\n \n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 8\n \n \n app/ceph/block/rbd-details/rbd-details.component.html\n 13\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 35\n \n \n app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html\n 23\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 445\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 21\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 25\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 42\n \n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 8\n \n \n Description\n Description\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 32\n \n \n app/core/auth/role-form/role-form.component.html\n 46\n \n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 13\n \n \n Long description\n Long description\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 46\n \n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 18\n \n \n Default\n Default\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 60\n \n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 32\n \n \n Daemon default\n Daemon default\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 74\n \n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 37\n \n \n Services\n Services\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 88\n \n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 68\n \n \n Values\n Values\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 101\n \n \n The entered value is too high! It must not be greater than .\n The entered value is too high! It must not be greater than .\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 139\n \n \n The entered value is too low! It must not be lower than .\n The entered value is too low! It must not be lower than .\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 142\n \n \n Save\n Save\n \n app/ceph/cluster/configuration/configuration-form/configuration-form.component.html\n 154\n \n \n CRUSH map viewer\n CRUSH map viewer\n \n app/ceph/cluster/crushmap/crushmap.component.html\n 6\n \n \n Hosts List\n Hosts List\n \n app/ceph/cluster/hosts/hosts.component.html\n 3\n \n \n Overall Performance\n Overall Performance\n \n app/ceph/cluster/hosts/hosts.component.html\n 29\n \n \n app/ceph/cluster/osd/osd-list/osd-list.component.html\n 72\n \n \n app/ceph/block/rbd-images/rbd-images.component.html\n 12\n \n \n app/ceph/pool/pool-list/pool-list.component.html\n 35\n \n \n app/ceph/rgw/rgw-daemon-list/rgw-daemon-list.component.html\n 16\n \n \n No entries found\n No entries found\n \n app/ceph/cluster/logs/logs.component.html\n 15\n \n \n app/ceph/cluster/logs/logs.component.html\n 31\n \n \n Cluster Logs\n Cluster Logs\n \n app/ceph/cluster/logs/logs.component.html\n 5\n \n \n Audit Logs\n Audit Logs\n \n app/ceph/cluster/logs/logs.component.html\n 21\n \n \n Priority:\n Priority:\n \n app/ceph/cluster/logs/logs.component.html\n 41\n \n \n Keyword:\n Keyword:\n \n app/ceph/cluster/logs/logs.component.html\n 51\n \n \n Date:\n Date:\n \n app/ceph/cluster/logs/logs.component.html\n 70\n \n \n Datepicker\n Datepicker\n \n app/ceph/cluster/logs/logs.component.html\n 75\n \n \n Time range:\n Time range:\n \n app/ceph/cluster/logs/logs.component.html\n 91\n \n \n Loading configuration...\n Loading configuration...\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 2\n \n \n The configuration could not be loaded.\n The configuration could not be loaded.\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 4\n \n \n Edit Manager module\n Edit Manager module\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 15\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 62\n \n \n The entered value needs to be a valid IP address.\n The entered value needs to be a valid IP address.\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 65\n \n \n This field is required.\n This field is required.\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 79\n \n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 100\n \n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 31\n \n \n app/ceph/cluster/osd/osd-reweight-modal/osd-reweight-modal.component.html\n 18\n \n \n app/core/auth/role-form/role-form.component.html\n 34\n \n \n app/core/auth/user-form/user-form.component.html\n 33\n \n \n app/core/auth/user-form/user-form.component.html\n 61\n \n \n app/core/auth/user-form/user-form.component.html\n 88\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 25\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 60\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 84\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 119\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 48\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 94\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 154\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 178\n \n \n app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html\n 36\n \n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 32\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 43\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 231\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 253\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 288\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 313\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 348\n \n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 36\n \n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 58\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 58\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 92\n \n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 47\n \n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 96\n \n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 131\n \n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 47\n \n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 72\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 51\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 83\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 132\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 39\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 63\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 102\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 167\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 199\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 450\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 487\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 543\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 580\n \n \n The entered value is too high! It must be lower or equal to .\n The entered value is too high! It must be lower or equal to .\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 82\n \n \n The entered value is too low! It must be greater or equal to .\n The entered value is too low! It must be greater or equal to .\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 85\n \n \n The entered value needs to be a number.\n The entered value needs to be a number.\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 88\n \n \n The entered value needs to be a number or decimal.\n The entered value needs to be a number or decimal.\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 103\n \n \n Update\n Update\n \n app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.html\n 113\n \n \n app/ceph/block/mirroring/pool-edit-mode-modal/pool-edit-mode-modal.component.html\n 41\n \n \n Status\n Status\n \n app/ceph/cluster/monitor/monitor.component.html\n 4\n \n \n app/ceph/dashboard/health/health.component.html\n 3\n \n \n Cluster ID\n Cluster ID\n \n app/ceph/cluster/monitor/monitor.component.html\n 9\n \n \n monmap modified\n monmap modified\n \n app/ceph/cluster/monitor/monitor.component.html\n 14\n \n \n monmap epoch\n monmap epoch\n \n app/ceph/cluster/monitor/monitor.component.html\n 19\n \n \n quorum con\n quorum con\n \n app/ceph/cluster/monitor/monitor.component.html\n 24\n \n \n quorum mon\n quorum mon\n \n app/ceph/cluster/monitor/monitor.component.html\n 29\n \n \n required con\n required con\n \n app/ceph/cluster/monitor/monitor.component.html\n 34\n \n \n required mon\n required mon\n \n app/ceph/cluster/monitor/monitor.component.html\n 39\n \n \n In Quorum\n In Quorum\n \n app/ceph/cluster/monitor/monitor.component.html\n 48\n \n \n Not In Quorum\n Not In Quorum\n \n app/ceph/cluster/monitor/monitor.component.html\n 54\n \n \n Cancel\n Cancel\n \n app/shared/components/confirmation-modal/confirmation-modal.component.html\n 19\n \n \n app/shared/components/critical-confirmation-modal/critical-confirmation-modal.component.html\n 37\n \n \n app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.html\n 37\n \n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 90\n \n \n app/ceph/cluster/osd/osd-reweight-modal/osd-reweight-modal.component.html\n 32\n \n \n app/ceph/cluster/osd/osd-scrub-modal/osd-scrub-modal.component.html\n 23\n \n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 42\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 136\n \n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 43\n \n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 42\n \n \n app/ceph/block/iscsi-target-image-settings-modal/iscsi-target-image-settings-modal.component.html\n 52\n \n \n app/ceph/block/iscsi-target-iqn-settings-modal/iscsi-target-iqn-settings-modal.component.html\n 55\n \n \n app/ceph/block/mirroring/pool-edit-mode-modal/pool-edit-mode-modal.component.html\n 43\n \n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 108\n \n \n Are you sure that you want to the selected ?\n Are you sure that you want to the selected ?\n \n app/shared/components/critical-confirmation-modal/critical-confirmation-modal.component.html\n 15\n \n \n Yes, I am sure.\n Yes, I am sure.\n \n app/shared/components/critical-confirmation-modal/critical-confirmation-modal.component.html\n 25\n \n \n Cluster-wide OSD Flags\n Cluster-wide OSD Flags\n \n app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.html\n 3\n \n \n Submit\n Submit\n \n app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.html\n 35\n \n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 88\n \n \n app/ceph/cluster/osd/osd-scrub-modal/osd-scrub-modal.component.html\n 21\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 515\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 134\n \n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 106\n \n \n \n \n \n app/ceph/cluster/osd/osd-pg-scrub-modal/osd-pg-scrub-modal.component.html\n 3\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 58\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 211\n \n \n app/core/auth/role-form/role-form.component.html\n 10\n \n \n app/core/auth/user-form/user-form.component.html\n 10\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 10\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 11\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 3\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 16\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 17\n \n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 3\n \n \n app/ceph/rgw/rgw-user-swift-key-modal/rgw-user-swift-key-modal.component.html\n 3\n \n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 3\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 3\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 16\n \n Example: Create Pool\n form title\n \n Advanced...\n Advanced...\n \n app/ceph/cluster/osd/osd-pg-scrub-modal/osd-pg-scrub-modal.component.html\n 23\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 213\n \n \n Advanced configuration options\n Advanced configuration options\n \n app/ceph/cluster/osd/osd-pg-scrub-modal/osd-pg-scrub-modal.component.html\n 28\n \n \n \n \n \n app/ceph/cluster/osd/osd-pg-scrub-modal/osd-pg-scrub-modal.component.html\n 42\n \n \n app/core/auth/role-form/role-form.component.html\n 81\n \n \n app/core/auth/user-form/user-form.component.html\n 149\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 311\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 563\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 327\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 455\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 102\n \n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 141\n \n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 81\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 143\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 595\n \n Example: Create Pool\n form action button\n \n OSD Recovery Priority\n OSD Recovery Priority\n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 3\n \n \n Priority\n Priority\n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 16\n \n \n Customize priority values\n Customize priority values\n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 44\n \n \n This field is required!\n This field is required!\n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 67\n \n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 39\n \n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 60\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 83\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 104\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 126\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 146\n \n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 167\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 34\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 67\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 91\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 117\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 165\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 39\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 68\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 93\n \n \n \n \n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 71\n \n \n The entered value is too high! It must not be greater than .\n The entered value is too high! It must not be greater than .\n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 75\n \n \n The entered value is too low! It must not be lower than .\n The entered value is too low! It must not be lower than .\n \n app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.html\n 79\n \n \n Reweight OSD\n Reweight OSD\n \n app/ceph/cluster/osd/osd-reweight-modal/osd-reweight-modal.component.html\n 3\n \n \n The value needs to be between 0 and 1.\n The value needs to be between 0 and 1.\n \n app/ceph/cluster/osd/osd-reweight-modal/osd-reweight-modal.component.html\n 20\n \n \n Reweight\n Reweight\n \n app/ceph/cluster/osd/osd-reweight-modal/osd-reweight-modal.component.html\n 30\n \n \n OSDs Scrub\n OSDs Scrub\n \n app/ceph/cluster/osd/osd-scrub-modal/osd-scrub-modal.component.html\n 3\n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Deep } }\n \n app/ceph/cluster/osd/osd-scrub-modal/osd-scrub-modal.component.html\n 3\n \n \n You are about to apply a scrub to\n the OSD .\n You are about to apply a scrub to\n the OSD .\n \n app/ceph/cluster/osd/osd-scrub-modal/osd-scrub-modal.component.html\n 13\n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {deep } }\n \n app/ceph/cluster/osd/osd-scrub-modal/osd-scrub-modal.component.html\n 13\n \n \n OSDs List\n OSDs List\n \n app/ceph/cluster/osd/osd-list/osd-list.component.html\n 3\n \n \n OSD will be marked\n if you proceed.\n OSD will be marked\n if you proceed.\n \n app/ceph/cluster/osd/osd-list/osd-list.component.html\n 82\n \n \n The OSD is not safe to destroy!\n The OSD is not safe to destroy!\n \n app/ceph/cluster/osd/osd-list/osd-list.component.html\n 91\n \n \n OSD will be\n if you proceed.\n OSD will be\n if you proceed.\n \n app/ceph/cluster/osd/osd-list/osd-list.component.html\n 93\n \n \n Details\n Details\n \n app/ceph/cluster/prometheus/alert-list/alert-list.component.html\n 17\n \n \n app/ceph/cluster/prometheus/silence-list/silence-list.component.html\n 18\n \n \n app/core/auth/role-details/role-details.component.html\n 2\n \n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 3\n \n \n app/ceph/cluster/mgr-modules/mgr-module-details/mgr-module-details.component.html\n 2\n \n \n app/ceph/cephfs/cephfs-detail/cephfs-detail.component.html\n 3\n \n \n app/ceph/nfs/nfs-details/nfs-details.component.html\n 2\n \n \n app/ceph/block/rbd-details/rbd-details.component.html\n 8\n \n \n app/ceph/pool/pool-details/pool-details.component.html\n 5\n \n \n app/ceph/rgw/rgw-daemon-details/rgw-daemon-details.component.html\n 3\n \n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 2\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 3\n \n \n Matcher\n Matcher\n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 3\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 31\n \n \n Value\n Value\n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 48\n \n \n Use regular expression\n Use regular expression\n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 80\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 90\n \n \n Close\n Close\n \n app/ceph/cluster/prometheus/silence-matcher-modal/silence-matcher-modal.component.html\n 93\n \n \n app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html\n 48\n \n \n Delete\n Delete\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 40\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 243\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 297\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 382\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 62\n \n \n Creator\n Creator\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 72\n \n \n Comment\n Comment\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 92\n \n \n Start time\n Start time\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 113\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 114\n \n \n Duration\n Duration\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 135\n \n \n End time\n End time\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 155\n \n \n Matchers*\n Matchers*\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 173\n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 177\n \n \n Add matcher\n Add matcher\n \n app/ceph/cluster/prometheus/silence-form/silence-form.component.html\n 191\n \n \n Health\n Health\n \n app/ceph/dashboard/dashboard/dashboard.component.html\n 5\n \n \n Statistics\n Statistics\n \n app/ceph/dashboard/dashboard/dashboard.component.html\n 9\n \n \n Please consult the documentation\n on how to configure and enable the NFS Ganesha management functionality.\n Please consult the documentation\n on how to configure and enable the NFS Ganesha management functionality.\n \n app/ceph/nfs/nfs-501/nfs-501.component.html\n 3\n \n \n Clients\n Clients\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 3\n \n \n Any client can access\n Any client can access\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 11\n \n \n Addresses\n Addresses\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 32\n \n \n Required field\n Required field\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 42\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 44\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 118\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 151\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 183\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 216\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 253\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 277\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 309\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 349\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 396\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 434\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 466\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 498\n \n \n Must contain one or more comma-separated values\n Must contain one or more comma-separated values\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 45\n \n \n For example:\n For example:\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 47\n \n \n Access Type\n Access Type\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 57\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 408\n \n \n Squash\n Squash\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 78\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 443\n \n \n Add clients\n Add clients\n \n app/ceph/nfs/nfs-form-client/nfs-form-client.component.html\n 99\n \n \n NFS export \n NFS export \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 10\n \n \n Loading...\n Loading...\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 32\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 106\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 139\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 171\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 204\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 418\n \n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 453\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 82\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 142\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 59\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 186\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 210\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 5\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 218\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 341\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 83\n \n \n -- No cluster available --\n -- No cluster available --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 35\n \n \n -- Select the cluster --\n -- Select the cluster --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 38\n \n \n Add daemon\n Add daemon\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 81\n \n \n Storage Backend\n Storage Backend\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 95\n \n \n -- No data pools available --\n -- No data pools available --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 109\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 145\n \n \n -- Select the storage backend --\n -- Select the storage backend --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 112\n \n \n Object Gateway User\n Object Gateway User\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 128\n \n \n -- No users available --\n -- No users available --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 142\n \n \n -- Select the object gateway user --\n -- Select the object gateway user --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 145\n \n \n CephFS User ID\n CephFS User ID\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 161\n \n \n -- No clients available --\n -- No clients available --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 174\n \n \n -- Select the cephx client --\n -- Select the cephx client --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 177\n \n \n CephFS Name\n CephFS Name\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 193\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 207\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 210\n \n \n Security Label\n Security Label\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 227\n \n \n Enable security label\n Enable security label\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 239\n \n \n CephFS Path\n CephFS Path\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 263\n \n \n Path need to start with a \'/\' and can be followed by a word\n Path need to start with a \'/\' and can be followed by a word\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 281\n \n \n New directory will be created\n New directory will be created\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 284\n \n \n Path\n Path\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 294\n \n \n Path can only be a single \'/\' or a word\n Path can only be a single \'/\' or a word\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 313\n \n \n New bucket will be created\n New bucket will be created\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 317\n \n \n NFS Protocol\n NFS Protocol\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 326\n \n \n NFSv3\n NFSv3\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 336\n \n \n NFSv4\n NFSv4\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 344\n \n \n NFS Tag\n NFS Tag\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 358\n \n \n Alternative access for NFS v3 mounts (it must not have a leading /).\n Alternative access for NFS v3 mounts (it must not have a leading /).\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 360\n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 361\n \n \n By using different Tag options, the same Path may be exported multiple times.\n By using different Tag options, the same Path may be exported multiple times.\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 362\n \n \n Pseudo\n Pseudo\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 380\n \n \n The position that this NFS v4 export occupies\n in the Pseudo FS (it must be unique).\n The position that this NFS v4 export occupies\n in the Pseudo FS (it must be unique).\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 383\n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n By using different Pseudo options, the same Path may be exported multiple times.\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 385\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 399\n \n \n -- No access type available --\n -- No access type available --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 421\n \n \n -- Select the access type --\n -- Select the access type --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 424\n \n \n -- No squash available --\n -- No squash available --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 456\n \n \n --Select what kind of user id squashing is performed --\n --Select what kind of user id squashing is performed --\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 459\n \n \n Transport Protocol\n Transport Protocol\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 475\n \n \n UDP\n UDP\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 485\n \n \n TCP\n TCP\n \n app/ceph/nfs/nfs-form/nfs-form.component.html\n 493\n \n \n CephFS\n CephFS\n \n app/ceph/nfs/nfs-list/nfs-list.component.html\n 25\n \n \n Welcome to Ceph!\n Welcome to Ceph!\n \n app/core/auth/login/login.component.html\n 10\n \n The welcome message on the login page\n \n Username is required\n Username is required\n \n app/core/auth/login/login.component.html\n 34\n \n \n Password is required\n Password is required\n \n app/core/auth/login/login.component.html\n 58\n \n \n Login\n Login\n \n app/core/auth/login/login.component.html\n 64\n \n \n Sorry, the user does not exist in Ceph.\n Sorry, the user does not exist in Ceph.\n \n app/core/auth/sso/sso-not-found/sso-not-found.component.html\n 3\n \n \n Return to Login Page. You\'ll be logged out from the Identity Provider when you retry logging in.\n Return to Login Page. You\'ll be logged out from the Identity Provider when you retry logging in.\n \n app/core/auth/sso/sso-not-found/sso-not-found.component.html\n 4\n \n \n Forbidden\n Forbidden\n \n app/core/forbidden/forbidden.component.html\n 3\n \n \n Sorry, you are not allowed to see what you were looking for.\n Sorry, you are not allowed to see what you were looking for.\n \n app/core/forbidden/forbidden.component.html\n 7\n \n \n Sorry, we could not find what you were looking for\n Sorry, we could not find what you were looking for\n \n app/core/not-found/not-found.component.html\n 3\n \n \n Remove all\n Remove all\n \n app/core/navigation/notifications/notifications.component.html\n 6\n \n \n Recent Notifications\n Recent Notifications\n \n app/core/navigation/notifications/notifications.component.html\n 56\n \n \n app/core/navigation/notifications/notifications.component.html\n 53\n \n \n There are no background tasks.\n There are no background tasks.\n \n app/core/navigation/task-manager/task-manager.component.html\n 71\n \n \n Background Tasks\n Background Tasks\n \n app/core/navigation/task-manager/task-manager.component.html\n 83\n \n \n app/core/navigation/task-manager/task-manager.component.html\n 79\n \n \n Help\n Help\n \n app/core/navigation/dashboard-help/dashboard-help.component.html\n 13\n \n \n app/core/navigation/dashboard-help/dashboard-help.component.html\n 10\n \n \n Documentation\n Documentation\n \n app/core/navigation/dashboard-help/dashboard-help.component.html\n 23\n \n \n API\n API\n \n app/core/navigation/dashboard-help/dashboard-help.component.html\n 28\n \n \n About\n About\n \n app/core/navigation/dashboard-help/dashboard-help.component.html\n 33\n \n \n Dashboard Settings\n Dashboard Settings\n \n app/core/navigation/administration/administration.component.html\n 10\n \n \n app/core/navigation/administration/administration.component.html\n 7\n \n \n User management\n User management\n \n app/core/navigation/administration/administration.component.html\n 18\n \n \n Logged in user\n Logged in user\n \n app/core/navigation/identity/identity.component.html\n 9\n \n \n app/core/navigation/identity/identity.component.html\n 6\n \n \n Signed in as\n \n Signed in as\n \n \n app/core/navigation/identity/identity.component.html\n 19\n \n \n Sign out\n Sign out\n \n app/core/navigation/identity/identity.component.html\n 27\n \n \n Name...\n Name...\n \n app/core/auth/role-form/role-form.component.html\n 27\n \n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 28\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 33\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 52\n \n \n The chosen name is already in use.\n The chosen name is already in use.\n \n app/core/auth/role-form/role-form.component.html\n 37\n \n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 64\n \n \n Description...\n Description...\n \n app/core/auth/role-form/role-form.component.html\n 51\n \n \n Permissions\n Permissions\n \n app/core/auth/role-form/role-form.component.html\n 61\n \n \n Roles\n Roles\n \n app/core/auth/user-tabs/user-tabs.component.html\n 7\n \n \n app/core/auth/user-form/user-form.component.html\n 132\n \n \n Username\n Username\n \n app/core/auth/user-form/user-form.component.html\n 19\n \n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 22\n \n \n app/ceph/rgw/rgw-user-swift-key-modal/rgw-user-swift-key-modal.component.html\n 19\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 9\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 22\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 25\n \n \n Password\n Password\n \n app/core/auth/user-form/user-form.component.html\n 42\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 39\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 267\n \n \n Confirm password\n Confirm password\n \n app/core/auth/user-form/user-form.component.html\n 70\n \n \n Password confirmation doesn\'t match the password.\n Password confirmation doesn\'t match the password.\n \n app/core/auth/user-form/user-form.component.html\n 91\n \n \n Full name\n Full name\n \n app/core/auth/user-form/user-form.component.html\n 99\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 14\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 51\n \n \n Email\n Email\n \n app/core/auth/user-form/user-form.component.html\n 115\n \n \n Invalid email.\n Invalid email.\n \n app/core/auth/user-form/user-form.component.html\n 126\n \n \n You are about to remove "user read / update" permissions from your own user.\n You are about to remove "user read / update" permissions from your own user.\n \n app/core/auth/user-form/user-form.component.html\n 158\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n If you continue, you will no longer be able to add or remove roles from any user.\n \n app/core/auth/user-form/user-form.component.html\n 160\n \n \n Are you sure you want to continue?\n Are you sure you want to continue?\n \n app/core/auth/user-form/user-form.component.html\n 162\n \n \n Performance counters not available\n Performance counters not available\n \n app/ceph/performance-counter/table-performance-counter/table-performance-counter.component.html\n 12\n \n \n Attributes (OSD map)\n Attributes (OSD map)\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 2\n \n \n Metadata not available\n Metadata not available\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 15\n \n \n Metadata\n Metadata\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 8\n \n \n Performance counter\n Performance counter\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 18\n \n \n Histogram not available: \n Histogram not available: \n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 28\n \n \n Writes\n Writes\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 33\n \n \n Reads\n Reads\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 38\n \n \n Histogram\n Histogram\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 25\n \n \n Performance Details\n Performance Details\n \n app/ceph/cluster/osd/osd-details/osd-details.component.html\n 46\n \n \n app/ceph/cluster/hosts/host-details/host-details.component.html\n 3\n \n \n app/ceph/cephfs/cephfs-detail/cephfs-detail.component.html\n 46\n \n \n app/ceph/pool/pool-details/pool-details.component.html\n 13\n \n \n app/ceph/rgw/rgw-daemon-details/rgw-daemon-details.component.html\n 16\n \n \n Current values\n Current values\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 23\n \n \n Type\n Type\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 42\n \n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 22\n \n \n Min\n Min\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 47\n \n \n Max\n Max\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 52\n \n \n Flags\n Flags\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 57\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 270\n \n \n Source\n Source\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 77\n \n \n Level\n Level\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 82\n \n \n Can be updated at runtime (editable)\n Can be updated at runtime (editable)\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 87\n \n \n Tags\n Tags\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 92\n \n \n Enum values\n Enum values\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 97\n \n \n See also\n See also\n \n app/ceph/cluster/configuration/configuration-details/configuration-details.component.html\n 102\n \n \n Cluster Status\n Cluster Status\n \n app/ceph/dashboard/health/health.component.html\n 15\n \n \n Manager Daemons\n Manager Daemons\n \n app/ceph/dashboard/health/health.component.html\n 69\n \n \n Object Gateways\n Object Gateways\n \n app/ceph/dashboard/health/health.component.html\n 90\n \n \n Metadata Servers\n Metadata Servers\n \n app/ceph/dashboard/health/health.component.html\n 98\n \n \n iSCSI Gateways\n iSCSI Gateways\n \n app/ceph/dashboard/health/health.component.html\n 109\n \n \n Client IOPS\n Client IOPS\n \n app/ceph/dashboard/health/health.component.html\n 125\n \n \n Client Throughput\n Client Throughput\n \n app/ceph/dashboard/health/health.component.html\n 134\n \n \n Client Read/Write\n Client Read/Write\n \n app/ceph/dashboard/health/health.component.html\n 143\n \n \n Recovery Throughput\n Recovery Throughput\n \n app/ceph/dashboard/health/health.component.html\n 158\n \n \n Scrub\n Scrub\n \n app/ceph/dashboard/health/health.component.html\n 167\n \n \n Performance\n Performance\n \n app/ceph/dashboard/health/health.component.html\n 119\n \n \n Raw Capacity\n Raw Capacity\n \n app/ceph/dashboard/health/health.component.html\n 196\n \n \n Objects\n Objects\n \n app/ceph/dashboard/health/health.component.html\n 209\n \n \n app/ceph/block/rbd-details/rbd-details.component.html\n 38\n \n \n PGs per OSD\n PGs per OSD\n \n app/ceph/dashboard/health/health.component.html\n 221\n \n \n PG Status\n PG Status\n \n app/ceph/dashboard/health/health.component.html\n 230\n \n \n Capacity\n Capacity\n \n app/ceph/dashboard/health/health.component.html\n 178\n \n \n See Logs for more details.\n See Logs for more details.\n \n app/ceph/dashboard/health/health.component.html\n 263\n \n \n Ranks\n Ranks\n \n app/ceph/cephfs/cephfs-detail/cephfs-detail.component.html\n 6\n \n \n MDS performance counters\n MDS performance counters\n \n app/ceph/cephfs/cephfs-detail/cephfs-detail.component.html\n 28\n \n \n Clients: \n Clients: \n \n app/ceph/cephfs/cephfs-detail/cephfs-detail.component.html\n 37\n \n \n Clients ()\n Clients ()\n \n app/ceph/nfs/nfs-details/nfs-details.component.html\n 8\n \n \n Move an image to trash\n Move an image to trash\n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 3\n \n \n To move / to trash,\n click Move Image. Optionally, you can pick an expiration date.\n To move / to trash,\n click Move Image. Optionally, you can pick an expiration date.\n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 12\n \n \n Protection expires at\n Protection expires at\n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 18\n \n \n NOT PROTECTED\n NOT PROTECTED\n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 20\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 29\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Protection has already expired. Please pick a future date or leave it empty.\n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 32\n \n \n Move Image\n Move Image\n \n app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html\n 40\n \n \n Gateways\n Gateways\n \n app/ceph/block/iscsi/iscsi.component.html\n 3\n \n \n Overview\n Overview\n \n app/ceph/block/iscsi-tabs/iscsi-tabs.component.html\n 2\n \n \n Targets\n Targets\n \n app/ceph/block/iscsi-tabs/iscsi-tabs.component.html\n 7\n \n \n Discovery Authentication\n Discovery Authentication\n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 3\n \n \n User\n User\n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 17\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 245\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 29\n \n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 88\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 64\n \n \n Mutual User\n Mutual User\n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 74\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 303\n \n \n Mutual Password\n Mutual Password\n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 98\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 327\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html\n 123\n \n \n Please consult the documentation\n on how to configure and enable the iSCSI Targets management functionality.\n Please consult the documentation\n on how to configure and enable the iSCSI Targets management functionality.\n \n app/ceph/block/iscsi-target-list/iscsi-target-list.component.html\n 6\n \n \n Available information:\n Available information:\n \n app/ceph/block/iscsi-target-list/iscsi-target-list.component.html\n 12\n \n \n iSCSI Targets not available\n iSCSI Targets not available\n \n app/ceph/block/iscsi-target-list/iscsi-target-list.component.html\n 4\n \n \n Discovery authentication\n Discovery authentication\n \n app/ceph/block/iscsi-target-list/iscsi-target-list.component.html\n 39\n \n \n Only available for RBD images with fast-diff enabled\n Only available for RBD images with fast-diff enabled\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 2\n \n \n Pool\n Pool\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 18\n \n \n Data Pool\n Data Pool\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 23\n \n \n Created\n Created\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 28\n \n \n Size\n Size\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 33\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 163\n \n \n Object size\n Object size\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 43\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 229\n \n \n Features\n Features\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 48\n \n \n app/ceph/block/rbd-form/rbd-form.component.html\n 191\n \n \n Provisioned\n Provisioned\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 57\n \n \n N/A\n N/A\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 63\n \n \n app/ceph/block/rbd-details/rbd-details.component.html\n 78\n \n \n Total provisioned\n Total provisioned\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 72\n \n \n Striping unit\n Striping unit\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 87\n \n \n Striping count\n Striping count\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 92\n \n \n Parent\n Parent\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 97\n \n \n Block name prefix\n Block name prefix\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 107\n \n \n Order\n Order\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 112\n \n \n Snapshots\n Snapshots\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 119\n \n \n Image\n Image\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 135\n \n \n This setting overrides the global value\n This setting overrides the global value\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 135\n \n \n Global\n Global\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 137\n \n \n This is the global value. No value for this option has been set for this image.\n This is the global value. No value for this option has been set for this image.\n \n app/ceph/block/rbd-details/rbd-details.component.html\n 137\n \n \n from\n from\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 19\n \n \n \'/\' and \'@\' are not allowed.\n \'/\' and \'@\' are not allowed.\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 52\n \n \n -- No rbd pools available --\n -- No rbd pools available --\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 85\n \n \n -- Select a pool --\n -- Select a pool --\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 88\n \n \n Use a dedicated data pool\n Use a dedicated data pool\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 108\n \n \n Data pool\n Data pool\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 119\n \n \n Dedicated pool that stores the object-data of the RBD.\n Dedicated pool that stores the object-data of the RBD.\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 123\n \n \n e.g., 10GiB\n e.g., 10GiB\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 173\n \n \n You have to increase the size.\n You have to increase the size.\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 181\n \n \n Advanced\n Advanced\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 219\n \n \n Striping\n Striping\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 222\n \n \n Stripe unit\n Stripe unit\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 246\n \n \n -- Select stripe unit --\n -- Select stripe unit --\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 257\n \n \n This field is required because stripe count is defined!\n This field is required because stripe count is defined!\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 263\n \n \n Stripe unit is greater than object size.\n Stripe unit is greater than object size.\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 266\n \n \n Stripe count\n Stripe count\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 275\n \n \n This field is required because stripe unit is defined!\n This field is required because stripe unit is defined!\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 288\n \n \n Stripe count must be greater than 0.\n Stripe count must be greater than 0.\n \n app/ceph/block/rbd-form/rbd-form.component.html\n 291\n \n \n RBD Snapshot\n RBD Snapshot\n \n app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html\n 3\n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Rename} other {Create} }\n \n app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html\n 3\n \n \n app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html\n 46\n \n \n Snapshot\n Snapshot\n \n app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html\n 46\n \n \n PROTECTED\n PROTECTED\n \n app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.html\n 17\n \n \n UNPROTECTED\n UNPROTECTED\n \n app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.html\n 20\n \n \n You are about to rollback\n You are about to rollback\n \n app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.html\n 25\n \n \n Purge Trash\n Purge Trash\n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 3\n \n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 14\n \n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 41\n \n \n app/ceph/block/rbd-trash-list/rbd-trash-list.component.html\n 25\n \n \n To purge, select one or All images and click\n To purge, select one or All images and click\n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 13\n \n \n Pool:\n Pool:\n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 19\n \n \n Pool name...\n Pool name...\n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 22\n \n \n All\n All\n \n app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html\n 30\n \n \n Restore Image\n Restore Image\n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 3\n \n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 16\n \n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 40\n \n \n To restore\n To restore\n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 13\n \n \n type the image\'s new name and click\n type the image\'s new name and click\n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 15\n \n \n New Name\n New Name\n \n app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html\n 22\n \n \n Expired at\n Expired at\n \n app/ceph/block/rbd-trash-list/rbd-trash-list.component.html\n 34\n \n \n Protected until\n Protected until\n \n app/ceph/block/rbd-trash-list/rbd-trash-list.component.html\n 37\n \n \n This image is protected until .\n This image is protected until .\n \n app/ceph/block/rbd-trash-list/rbd-trash-list.component.html\n 47\n \n \n Trash\n Trash\n \n app/ceph/block/rbd-images/rbd-images.component.html\n 8\n \n \n iSCSI Topology\n iSCSI Topology\n \n app/ceph/block/iscsi-target-details/iscsi-target-details.component.html\n 2\n \n \n Settings\n Settings\n \n app/ceph/block/iscsi-target-image-settings-modal/iscsi-target-image-settings-modal.component.html\n 3\n \n \n Changing these parameters from their default values is usually not necessary.\n Changing these parameters from their default values is usually not necessary.\n \n app/ceph/block/iscsi-target-image-settings-modal/iscsi-target-image-settings-modal.component.html\n 10\n \n \n app/ceph/block/iscsi-target-iqn-settings-modal/iscsi-target-iqn-settings-modal.component.html\n 13\n \n \n Backstore\n Backstore\n \n app/ceph/block/iscsi-target-image-settings-modal/iscsi-target-image-settings-modal.component.html\n 16\n \n \n Confirm\n Confirm\n \n app/ceph/block/iscsi-target-image-settings-modal/iscsi-target-image-settings-modal.component.html\n 50\n \n \n app/ceph/block/iscsi-target-iqn-settings-modal/iscsi-target-iqn-settings-modal.component.html\n 53\n \n \n Advanced Settings\n Advanced Settings\n \n app/ceph/block/iscsi-target-iqn-settings-modal/iscsi-target-iqn-settings-modal.component.html\n 3\n \n \n Target IQN\n Target IQN\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 20\n \n \n IQN has wrong pattern.\n IQN has wrong pattern.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 47\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 235\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 51\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 53\n \n \n More information\n More information\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 57\n \n \n This target has modified advanced settings.\n This target has modified advanced settings.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 62\n \n \n Portals\n Portals\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 72\n \n \n At least gateways are required.\n At least gateways are required.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 96\n \n \n Add portal\n Add portal\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 106\n \n \n Backstore: .\xa0\n Backstore: .\xa0\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 147\n \n \n This image has modified settings.\n This image has modified settings.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 150\n \n \n At least 1 image is required.\n At least 1 image is required.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 156\n \n \n Add image\n Add image\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 166\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 393\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 529\n \n \n ACL authentication\n ACL authentication\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 184\n \n \n Initiators\n Initiators\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 196\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 460\n \n \n Initiator\n Initiator\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 203\n \n \n Client IQN\n Client IQN\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 216\n \n \n Initiator IQN needs to be unique.\n Initiator IQN needs to be unique.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 227\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 257\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 317\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 292\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 352\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Initiator belongs to a group. Images will be configure in the group.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 383\n \n \n No items added.\n No items added.\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 406\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 544\n \n \n Add initiator\n Add initiator\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 411\n \n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 488\n \n \n Groups\n Groups\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 426\n \n \n Group\n Group\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 433\n \n \n Add group\n Add group\n \n app/ceph/block/iscsi-target-form/iscsi-target-form.component.html\n 549\n \n \n \n \n \n app/ceph/block/rbd-configuration-list/rbd-configuration-list.component.html\n 13\n \n \n app/ceph/block/rbd-configuration-list/rbd-configuration-list.component.html\n 14\n \n \n app/ceph/block/rbd-configuration-list/rbd-configuration-list.component.html\n 15\n \n \n RBD Configuration\n RBD Configuration\n \n app/ceph/block/rbd-configuration-form/rbd-configuration-form.component.html\n 2\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \n app/ceph/block/rbd-configuration-form/rbd-configuration-form.component.html\n 60\n \n \n The mininum value is 0\n The mininum value is 0\n \n app/ceph/block/rbd-configuration-form/rbd-configuration-form.component.html\n 71\n \n \n Issues\n Issues\n \n app/ceph/block/mirroring/image-list/image-list.component.html\n 2\n \n \n Syncing\n Syncing\n \n app/ceph/block/mirroring/image-list/image-list.component.html\n 11\n \n \n app/ceph/block/mirroring/image-list/image-list.component.html\n 38\n \n \n Ready\n Ready\n \n app/ceph/block/mirroring/image-list/image-list.component.html\n 20\n \n \n Edit pool mirror mode\n Edit pool mirror mode\n \n app/ceph/block/mirroring/pool-edit-mode-modal/pool-edit-mode-modal.component.html\n 3\n \n \n To edit the mirror mode for pool\xa0\n , select a new mode from the list and click\xa0\n Update.\n To edit the mirror mode for pool\xa0\n , select a new mode from the list and click\xa0\n Update.\n \n app/ceph/block/mirroring/pool-edit-mode-modal/pool-edit-mode-modal.component.html\n 13\n \n \n Mode\n Mode\n \n app/ceph/block/mirroring/pool-edit-mode-modal/pool-edit-mode-modal.component.html\n 22\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 314\n \n \n Peer clusters must be removed prior to disabling mirror.\n Peer clusters must be removed prior to disabling mirror.\n \n app/ceph/block/mirroring/pool-edit-mode-modal/pool-edit-mode-modal.component.html\n 33\n \n \n \n pool mirror peer\n \n pool mirror peer\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 3\n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 3\n \n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 14\n \n \n the pool\n mirror peer attributes for pool and click \n Submit.\n the pool\n mirror peer attributes for pool and click \n Submit.\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 14\n \n \n Cluster Name\n Cluster Name\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 23\n \n \n The cluster name is not valid.\n The cluster name is not valid.\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 39\n \n \n CephX ID\n CephX ID\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 46\n \n \n CephX ID...\n CephX ID...\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 51\n \n \n The CephX ID is not valid.\n The CephX ID is not valid.\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 61\n \n \n Monitor Addresses\n Monitor Addresses\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 68\n \n \n Comma-delimited addresses...\n Comma-delimited addresses...\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 72\n \n \n The monitory address is not valid.\n The monitory address is not valid.\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 79\n \n \n CephX Key\n CephX Key\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 86\n \n \n Base64-encoded key...\n Base64-encoded key...\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 90\n \n \n CephX key must be base64 encoded.\n CephX key must be base64 encoded.\n \n app/ceph/block/mirroring/pool-edit-peer-modal/pool-edit-peer-modal.component.html\n 97\n \n \n Pools List\n Pools List\n \n app/ceph/pool/pool-list/pool-list.component.html\n 2\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n The name can only consist of alphanumeric characters, dashes and underscores.\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 37\n \n \n The chosen erasure code profile name is already in use.\n The chosen erasure code profile name is already in use.\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 40\n \n \n Plugin\n Plugin\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 47\n \n \n Data chunks (k)\n Data chunks (k)\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 75\n \n \n Must be equal to or greater than 2.\n Must be equal to or greater than 2.\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 94\n \n \n Coding chunks (m)\n Coding chunks (m)\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 102\n \n \n Must be equal to or greater than 1.\n Must be equal to or greater than 1.\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 120\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 142\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 168\n \n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 261\n \n \n Durability estimator (c)\n Durability estimator (c)\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 129\n \n \n Locality (l)\n Locality (l)\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 151\n \n \n Crush failure domain\n Crush failure domain\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 175\n \n \n Crush Locality\n Crush Locality\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 199\n \n \n None\n None\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 213\n \n \n Technique\n Technique\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 226\n \n \n Packetsize\n Packetsize\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 248\n \n \n Crush root\n Crush root\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 269\n \n \n Crush device class\n Crush device class\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 286\n \n \n any\n any\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 296\n \n \n Directory\n Directory\n \n app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html\n 308\n \n \n The chosen Ceph pool name is already in use.\n The chosen Ceph pool name is already in use.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 42\n \n \n Pool type\n Pool type\n \n app/ceph/pool/pool-form/pool-form.component.html\n 51\n \n \n -- Select a pool type --\n -- Select a pool type --\n \n app/ceph/pool/pool-form/pool-form.component.html\n 60\n \n \n Placement groups\n Placement groups\n \n app/ceph/pool/pool-form/pool-form.component.html\n 78\n \n \n At least one placement group is needed!\n At least one placement group is needed!\n \n app/ceph/pool/pool-form/pool-form.component.html\n 96\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 99\n \n \n You can only increase the number of PGs of an existing pool.\n Currently your pool has PGs.\n You can only increase the number of PGs of an existing pool.\n Currently your pool has PGs.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 102\n \n \n Calculation help\n Calculation help\n \n app/ceph/pool/pool-form/pool-form.component.html\n 107\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 111\n \n \n Crush ruleset\n Crush ruleset\n \n app/ceph/pool/pool-form/pool-form.component.html\n 122\n \n \n -- Select a crush rule --\n -- Select a crush rule --\n \n app/ceph/pool/pool-form/pool-form.component.html\n 130\n \n \n Crush rule\n Crush rule\n \n app/ceph/pool/pool-form/pool-form.component.html\n 151\n \n \n Crush steps\n Crush steps\n \n app/ceph/pool/pool-form/pool-form.component.html\n 157\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 168\n \n \n Replicated size\n Replicated size\n \n app/ceph/pool/pool-form/pool-form.component.html\n 179\n \n \n Minimum: \n Minimum: \n \n app/ceph/pool/pool-form/pool-form.component.html\n 193\n \n \n Maximum: \n Maximum: \n \n app/ceph/pool/pool-form/pool-form.component.html\n 194\n \n \n The size specified is out of range. A value from\n to is valid.\n The size specified is out of range. A value from\n to is valid.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 199\n \n \n Erasure code profile\n Erasure code profile\n \n app/ceph/pool/pool-form/pool-form.component.html\n 209\n \n \n -- No erasure code profile available --\n -- No erasure code profile available --\n \n app/ceph/pool/pool-form/pool-form.component.html\n 221\n \n \n -- Select an erasure code profile --\n -- Select an erasure code profile --\n \n app/ceph/pool/pool-form/pool-form.component.html\n 224\n \n \n EC Overwrites\n EC Overwrites\n \n app/ceph/pool/pool-form/pool-form.component.html\n 278\n \n \n Applications\n Applications\n \n app/ceph/pool/pool-form/pool-form.component.html\n 289\n \n \n Compression\n Compression\n \n app/ceph/pool/pool-form/pool-form.component.html\n 308\n \n \n Algorithm\n Algorithm\n \n app/ceph/pool/pool-form/pool-form.component.html\n 333\n \n \n -- No erasure compression algorithm available --\n -- No erasure compression algorithm available --\n \n app/ceph/pool/pool-form/pool-form.component.html\n 344\n \n \n Minimum blob size\n Minimum blob size\n \n app/ceph/pool/pool-form/pool-form.component.html\n 358\n \n \n e.g., 128KiB\n e.g., 128KiB\n \n app/ceph/pool/pool-form/pool-form.component.html\n 367\n \n \n Value should be greater than 0\n Value should be greater than 0\n \n app/ceph/pool/pool-form/pool-form.component.html\n 372\n \n \n app/ceph/pool/pool-form/pool-form.component.html\n 397\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n app/ceph/pool/pool-form/pool-form.component.html\n 375\n \n \n Maximum blob size\n Maximum blob size\n \n app/ceph/pool/pool-form/pool-form.component.html\n 384\n \n \n e.g., 512KiB\n e.g., 512KiB\n \n app/ceph/pool/pool-form/pool-form.component.html\n 392\n \n \n Value should be greater than the minimum blob size\n Value should be greater than the minimum blob size\n \n app/ceph/pool/pool-form/pool-form.component.html\n 400\n \n \n Ratio\n Ratio\n \n app/ceph/pool/pool-form/pool-form.component.html\n 409\n \n \n Compression ratio\n Compression ratio\n \n app/ceph/pool/pool-form/pool-form.component.html\n 420\n \n \n Value should be between 0.0 and 1.0\n Value should be between 0.0 and 1.0\n \n app/ceph/pool/pool-form/pool-form.component.html\n 423\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n It\'s not possible to create an RBD pool with \'/\' in the name.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 443\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Please change the name or remove \'rbd\' from the applications list.\n \n app/ceph/pool/pool-form/pool-form.component.html\n 445\n \n \n Cache Tiers Details\n Cache Tiers Details\n \n app/ceph/pool/pool-details/pool-details.component.html\n 27\n \n \n Please consult the documentation\n on how to configure and enable the Object Gateway management functionality.\n Please consult the documentation\n on how to configure and enable the Object Gateway management functionality.\n \n app/ceph/rgw/rgw-501/rgw-501.component.html\n 3\n \n \n Daemons List\n Daemons List\n \n app/ceph/rgw/rgw-daemon-list/rgw-daemon-list.component.html\n 2\n \n \n Performance Counters\n Performance Counters\n \n app/ceph/rgw/rgw-daemon-details/rgw-daemon-details.component.html\n 9\n \n \n Loading bucket data...\n Loading bucket data...\n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 2\n \n \n The bucket data could not be loaded.\n The bucket data could not be loaded.\n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 5\n \n \n Id\n Id\n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 26\n \n \n The value is not valid.\n The value is not valid.\n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 61\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 453\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 546\n \n \n Owner\n Owner\n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 73\n \n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 18\n \n \n -- Select a user --\n -- Select a user --\n \n app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html\n 86\n \n \n ID\n ID\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 13\n \n \n Index type\n Index type\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 23\n \n \n Placement rule\n Placement rule\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 28\n \n \n Marker\n Marker\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 33\n \n \n Maximum marker\n Maximum marker\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 38\n \n \n Version\n Version\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 43\n \n \n Master version\n Master version\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 48\n \n \n Modification time\n Modification time\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 53\n \n \n Zonegroup\n Zonegroup\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 58\n \n \n Bucket quota\n Bucket quota\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 66\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 97\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 497\n \n \n Enabled\n Enabled\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 71\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 66\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 102\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 414\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 507\n \n \n Maximum size\n Maximum size\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 76\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 71\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 107\n \n \n Unlimited\n Unlimited\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 79\n \n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 90\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 74\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 85\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 110\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 121\n \n \n Maximum objects\n Maximum objects\n \n app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html\n 87\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 82\n \n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 118\n \n \n -- Select a username --\n -- Select a username --\n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 41\n \n \n Auto-generate key\n Auto-generate key\n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 60\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 134\n \n \n Access key\n Access key\n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 71\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 145\n \n \n Secret key\n Secret key\n \n app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html\n 106\n \n \n app/ceph/rgw/rgw-user-swift-key-modal/rgw-user-swift-key-modal.component.html\n 34\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 110\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 177\n \n \n Email address\n Email address\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 19\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 72\n \n \n Suspended\n Suspended\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 24\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 117\n \n \n System\n System\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 29\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 31\n \n \n Maximum buckets\n Maximum buckets\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 35\n \n \n Subusers\n Subusers\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 40\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 206\n \n \n Capabilities\n Capabilities\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 49\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 353\n \n \n User quota\n User quota\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 61\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 404\n \n \n Show\n Show\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 149\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 290\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 340\n \n \n Keys\n Keys\n \n app/ceph/rgw/rgw-user-details/rgw-user-details.component.html\n 134\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 265\n \n \n -- Select a type --\n -- Select a type --\n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 41\n \n \n Permission\n Permission\n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 56\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 63\n \n \n -- Select a permission --\n -- Select a permission --\n \n app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.html\n 64\n \n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 71\n \n \n Subuser\n Subuser\n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 37\n \n \n The chosen subuser ID is already in use.\n The chosen subuser ID is already in use.\n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 54\n \n \n read, write\n read, write\n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 77\n \n \n full\n full\n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 79\n \n \n Swift key\n Swift key\n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 89\n \n \n Auto-generate secret\n Auto-generate secret\n \n app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html\n 99\n \n \n Loading user data...\n Loading user data...\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 2\n \n \n The user data could not be loaded.\n The user data could not be loaded.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 5\n \n \n The chosen user ID is already in use.\n The chosen user ID is already in use.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 42\n \n \n This is not a valid email address.\n This is not a valid email address.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 80\n \n \n The chosen email address is already in use.\n The chosen email address is already in use.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 83\n \n \n Max. buckets\n Max. buckets\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 92\n \n \n The entered value must be >= 0.\n The entered value must be >= 0.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 105\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 490\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 583\n \n \n S3 key\n S3 key\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 124\n \n \n There are no subusers.\n There are no subusers.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 212\n \n \n \n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 257\n \n \n S3\n S3\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 269\n \n \n There are no keys.\n There are no keys.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 274\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 324\n \n \n \n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 311\n \n \n Swift\n Swift\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 319\n \n \n There are no capabilities.\n There are no capabilities.\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 359\n \n \n \n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 396\n \n \n Unlimited size\n Unlimited size\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 428\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 521\n \n \n Max. size\n Max. size\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 439\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 532\n \n \n Unlimited objects\n Unlimited objects\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 466\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 559\n \n \n Max. objects\n Max. objects\n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 477\n \n \n app/ceph/rgw/rgw-user-form/rgw-user-form.component.html\n 570\n \n \n \n Current\n Current\n \n src/app/ceph/block/iscsi-target-details/iscsi-target-details.component.ts\n 1\n \n \n \n Updated discovery authentication\n Updated discovery authentication\n \n src/app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.ts\n 1\n \n \n \n There are no portals available.\n There are no portals available.\n \n src/app/ceph/block/iscsi-target-form/iscsi-target-form.component.ts\n 1\n \n \n \n There are no images available.\n There are no images available.\n \n src/app/ceph/block/iscsi-target-form/iscsi-target-form.component.ts\n 1\n \n \n \n There are no images available. Please make sure you add an image to the target.\n There are no images available. Please make sure you add an image to the target.\n \n src/app/ceph/block/iscsi-target-form/iscsi-target-form.component.ts\n 1\n \n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n There are no initiators available. Please make sure you add an initiator to the target.\n \n src/app/ceph/block/iscsi-target-form/iscsi-target-form.component.ts\n 1\n \n \n \n target\n target\n \n src/app/ceph/block/iscsi-target-form/iscsi-target-form.component.ts\n 1\n \n \n \n Add\n Add\n \n src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.ts\n 1\n \n \n src/app/ceph/nfs/nfs-list/nfs-list.component.ts\n 1\n \n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Target\n Target\n \n src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.ts\n 1\n \n \n \n # Sessions\n # Sessions\n \n src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.ts\n 1\n \n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n \n State\n State\n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n src/app/ceph/block/mirroring/image-list/image-list.component.ts\n 1\n \n \n src/app/ceph/block/mirroring/image-list/image-list.component.ts\n 1\n \n \n src/app/ceph/block/mirroring/image-list/image-list.component.ts\n 1\n \n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.ts\n 1\n \n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n src/app/ceph/cluster/prometheus/alert-list/alert-list.component.ts\n 1\n \n \n \n # Targets\n # Targets\n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n \n Read Bytes\n Read Bytes\n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n \n Write Bytes\n Write Bytes\n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n \n Read Ops\n Read Ops\n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n \n Write Ops\n Write Ops\n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n \n A/O Since\n A/O Since\n \n src/app/ceph/block/iscsi/iscsi.component.ts\n 1\n \n \n \n Instance\n Instance\n \n src/app/ceph/block/mirroring/daemon-list/daemon-list.component.ts\n 1\n \n \n \n Hostname\n Hostname\n \n src/app/ceph/block/mirroring/daemon-list/daemon-list.component.ts\n 1\n \n \n src/app/ceph/cluster/hosts/hosts.component.ts\n 1\n \n \n src/app/ceph/rgw/rgw-daemon-list/rgw-daemon-list.component.ts\n 1\n \n \n \n Issue\n Issue\n \n src/app/ceph/block/mirroring/image-list/image-list.component.ts\n 1\n \n \n \n Progress\n Progress\n \n src/app/ceph/block/mirroring/image-list/image-list.component.ts\n 1\n \n \n \n Disabled\n Disabled\n \n src/app/ceph/block/mirroring/pool-edit-mode-modal/pool-edit-mode-modal.component.ts\n 1\n \n \n \n Edit Mode\n Edit Mode\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n Add Peer\n Add Peer\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n Edit Peer\n Edit Peer\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n Delete Peer\n Delete Peer\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n Leader\n Leader\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n # Local\n # Local\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n # Remote\n # Remote\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n mirror peer\n mirror peer\n \n src/app/ceph/block/mirroring/pool-list/pool-list.component.ts\n 1\n \n \n \n Key\n Key\n \n src/app/ceph/block/rbd-configuration-list/rbd-configuration-list.component.ts\n 1\n \n \n \n RBD\n RBD\n \n src/app/ceph/block/rbd-form/rbd-form.component.ts\n 1\n \n \n \n Deep flatten\n Deep flatten\n \n src/app/ceph/block/rbd-form/rbd-form.component.ts\n 1\n \n \n \n Layering\n Layering\n \n src/app/ceph/block/rbd-form/rbd-form.component.ts\n 1\n \n \n \n Exclusive lock\n Exclusive lock\n \n src/app/ceph/block/rbd-form/rbd-form.component.ts\n 1\n \n \n \n Object map (requires exclusive-lock)\n Object map (requires exclusive-lock)\n \n src/app/ceph/block/rbd-form/rbd-form.component.ts\n 1\n \n \n \n Journaling (requires exclusive-lock)\n Journaling (requires exclusive-lock)\n \n src/app/ceph/block/rbd-form/rbd-form.component.ts\n 1\n \n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n src/app/ceph/block/rbd-form/rbd-form.component.ts\n 1\n \n \n \n Copy\n Copy\n \n src/app/ceph/block/rbd-list/rbd-list.component.ts\n 1\n \n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts\n 1\n \n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Flatten\n Flatten\n \n src/app/ceph/block/rbd-list/rbd-list.component.ts\n 1\n \n \n \n Move to Trash\n Move to Trash\n \n src/app/ceph/block/rbd-list/rbd-list.component.ts\n 1\n \n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Create\n Create\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts\n 1\n \n \n src/app/core/auth/role-details/role-details.component.ts\n 1\n \n \n src/app/core/auth/role-form/role-form.component.ts\n 1\n \n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Rename\n Rename\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts\n 1\n \n \n \n Protect\n Protect\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts\n 1\n \n \n \n Unprotect\n Unprotect\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts\n 1\n \n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Clone\n Clone\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts\n 1\n \n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Rollback\n Rollback\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-actions.model.ts\n 1\n \n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.ts\n 1\n \n \n \n RBD snapshot rollback\n RBD snapshot rollback\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.ts\n 1\n \n \n \n RBD snapshot\n RBD snapshot\n \n src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.ts\n 1\n \n \n \n Restore\n Restore\n \n src/app/ceph/block/rbd-trash-list/rbd-trash-list.component.ts\n 1\n \n \n \n Deleted At\n Deleted At\n \n src/app/ceph/block/rbd-trash-list/rbd-trash-list.component.ts\n 1\n \n \n \n id\n id\n \n src/app/ceph/cephfs/cephfs-clients/cephfs-clients.component.ts\n 1\n \n \n \n type\n type\n \n src/app/ceph/cephfs/cephfs-clients/cephfs-clients.component.ts\n 1\n \n \n \n state\n state\n \n src/app/ceph/cephfs/cephfs-clients/cephfs-clients.component.ts\n 1\n \n \n \n version\n version\n \n src/app/ceph/cephfs/cephfs-clients/cephfs-clients.component.ts\n 1\n \n \n \n Host\n Host\n \n src/app/ceph/cephfs/cephfs-clients/cephfs-clients.component.ts\n 1\n \n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n root\n root\n \n src/app/ceph/cephfs/cephfs-clients/cephfs-clients.component.ts\n 1\n \n \n \n Rank\n Rank\n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n src/app/ceph/cluster/monitor/monitor.component.ts\n 1\n \n \n src/app/ceph/cluster/monitor/monitor.component.ts\n 1\n \n \n \n Daemon\n Daemon\n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n \n Activity\n Activity\n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n \n Dentries\n Dentries\n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n \n Inodes\n Inodes\n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n \n Usage\n Usage\n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Standby daemons\n Standby daemons\n \n src/app/ceph/cephfs/cephfs-detail/cephfs-detail.component.ts\n 1\n \n \n \n The value can be updated at runtime.\n The value can be updated at runtime.\n \n src/app/ceph/cluster/configuration/configuration-details/configuration-details.component.ts\n 1\n \n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \n src/app/ceph/cluster/configuration/configuration-details/configuration-details.component.ts\n 1\n \n \n \n Option takes effect only during daemon startup.\n Option takes effect only during daemon startup.\n \n src/app/ceph/cluster/configuration/configuration-details/configuration-details.component.ts\n 1\n \n \n \n Option only affects cluster creation.\n Option only affects cluster creation.\n \n src/app/ceph/cluster/configuration/configuration-details/configuration-details.component.ts\n 1\n \n \n \n Option only affects daemon creation.\n Option only affects daemon creation.\n \n src/app/ceph/cluster/configuration/configuration-details/configuration-details.component.ts\n 1\n \n \n \n Updated config option \n Updated config option \n \n src/app/ceph/cluster/configuration/configuration-form/configuration-form.component.ts\n 1\n \n \n \n Service\n Service\n \n src/app/ceph/cluster/configuration/configuration.component.ts\n 1\n \n \n \n Current value\n Current value\n \n src/app/ceph/cluster/configuration/configuration.component.ts\n 1\n \n \n \n Editable\n Editable\n \n src/app/ceph/cluster/configuration/configuration.component.ts\n 1\n \n \n \n Updated options for module "".\n Updated options for module "".\n \n src/app/ceph/cluster/mgr-modules/mgr-module-form/mgr-module-form.component.ts\n 1\n \n \n \n Enable\n Enable\n \n src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.ts\n 1\n \n \n \n Disable\n Disable\n \n src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.ts\n 1\n \n \n \n Reconnecting, please wait ...\n Reconnecting, please wait ...\n \n src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.ts\n 1\n \n \n \n Public Address\n Public Address\n \n src/app/ceph/cluster/monitor/monitor.component.ts\n 1\n \n \n src/app/ceph/cluster/monitor/monitor.component.ts\n 1\n \n \n \n Open Sessions\n Open Sessions\n \n src/app/ceph/cluster/monitor/monitor.component.ts\n 1\n \n \n \n No In\n No In\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSDs that were previously marked out will not be marked back in when they start\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n No Out\n No Out\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n OSDs will not automatically be marked out after the configured interval\n OSDs will not automatically be marked out after the configured interval\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n No Up\n No Up\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n OSDs are not allowed to start\n OSDs are not allowed to start\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n No Down\n No Down\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Pause\n Pause\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Pauses reads and writes\n Pauses reads and writes\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n No Scrub\n No Scrub\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Scrubbing is disabled\n Scrubbing is disabled\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n No Deep Scrub\n No Deep Scrub\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Deep Scrubbing is disabled\n Deep Scrubbing is disabled\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n No Backfill\n No Backfill\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Backfilling of PGs is suspended\n Backfilling of PGs is suspended\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n No Recover\n No Recover\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Recovery of PGs is suspended\n Recovery of PGs is suspended\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Bitwise Sort\n Bitwise Sort\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Use bitwise sort\n Use bitwise sort\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Purged Snapdirs\n Purged Snapdirs\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n OSDs have converted snapsets\n OSDs have converted snapsets\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Recovery Deletes\n Recovery Deletes\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Deletes performed during recovery instead of peering\n Deletes performed during recovery instead of peering\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n PG Log Hard Limit\n PG Log Hard Limit\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Puts a hard limit on pg log length\n Puts a hard limit on pg log length\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Updated OSD Flags\n Updated OSD Flags\n \n src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.ts\n 1\n \n \n \n Deep Scrub\n Deep Scrub\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Mark Out\n Mark Out\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n out\n out\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/dashboard/osd-summary.pipe.ts\n 1\n \n \n \n Mark In\n Mark In\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n in\n in\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/dashboard/osd-summary.pipe.ts\n 1\n \n \n \n Mark Down\n Mark Down\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n down\n down\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/dashboard/osd-summary.pipe.ts\n 1\n \n \n \n Mark Lost\n Mark Lost\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Mark\n Mark\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n OSD lost\n OSD lost\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n marked lost\n marked lost\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Purge\n Purge\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n OSD\n OSD\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n purged\n purged\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Destroy\n Destroy\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n destroy\n destroy\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n destroyed\n destroyed\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n PG scrub\n PG scrub\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n PGs\n PGs\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Read bytes\n Read bytes\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Writes bytes\n Writes bytes\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Read ops\n Read ops\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Write ops\n Write ops\n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Mark OSD \n Mark OSD \n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n Mark \n Mark \n \n src/app/ceph/cluster/osd/osd-list/osd-list.component.ts\n 1\n \n \n \n PG scrub options\n PG scrub options\n \n src/app/ceph/cluster/osd/osd-pg-scrub-modal/osd-pg-scrub-modal.component.ts\n 1\n \n \n \n Updated PG scrub options\n Updated PG scrub options\n \n src/app/ceph/cluster/osd/osd-pg-scrub-modal/osd-pg-scrub-modal.component.ts\n 1\n \n \n \n Max Backfills\n Max Backfills\n \n src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts\n 1\n \n \n \n Recovery Max Active\n Recovery Max Active\n \n src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts\n 1\n \n \n \n Recovery Max Single Start\n Recovery Max Single Start\n \n src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts\n 1\n \n \n \n Recovery Sleep\n Recovery Sleep\n \n src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts\n 1\n \n \n \n Custom\n Custom\n \n src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts\n 1\n \n \n src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts\n 1\n \n \n \n Updated OSD recovery speed priority ""\n Updated OSD recovery speed priority ""\n \n src/app/ceph/cluster/osd/osd-recv-speed-modal/osd-recv-speed-modal.component.ts\n 1\n \n \n \n was initialized in the following OSD: \n was initialized in the following OSD: \n \n src/app/ceph/cluster/osd/osd-scrub-modal/osd-scrub-modal.component.ts\n 1\n \n \n \n Create silence\n Create silence\n \n src/app/ceph/cluster/prometheus/alert-list/alert-list.component.ts\n 1\n \n \n \n Job\n Job\n \n src/app/ceph/cluster/prometheus/alert-list/alert-list.component.ts\n 1\n \n \n \n Severity\n Severity\n \n src/app/ceph/cluster/prometheus/alert-list/alert-list.component.ts\n 1\n \n \n \n Started\n Started\n \n src/app/ceph/cluster/prometheus/alert-list/alert-list.component.ts\n 1\n \n \n src/app/ceph/cluster/prometheus/silence-list/silence-list.component.ts\n 1\n \n \n \n URL\n URL\n \n src/app/ceph/cluster/prometheus/alert-list/alert-list.component.ts\n 1\n \n \n \n silence\n silence\n \n src/app/ceph/cluster/prometheus/silence-form/silence-form.component.ts\n 1\n \n \n \n Attribute name\n Attribute name\n \n src/app/ceph/cluster/prometheus/silence-form/silence-form.component.ts\n 1\n \n \n \n Regular expression\n Regular expression\n \n src/app/ceph/cluster/prometheus/silence-form/silence-form.component.ts\n 1\n \n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n src/app/ceph/cluster/prometheus/silence-form/silence-form.component.ts\n 1\n \n \n \n Created by\n Created by\n \n src/app/ceph/cluster/prometheus/silence-list/silence-list.component.ts\n 1\n \n \n \n Updated\n Updated\n \n src/app/ceph/cluster/prometheus/silence-list/silence-list.component.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Ends\n Ends\n \n src/app/ceph/cluster/prometheus/silence-list/silence-list.component.ts\n 1\n \n \n \n Silence\n Silence\n \n src/app/ceph/cluster/prometheus/silence-list/silence-list.component.ts\n 1\n \n \n \n Used\n Used\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Avail.\n Avail.\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Clean\n Clean\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Working\n Working\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Warning\n Warning\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Unknown\n Unknown\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Healthy\n Healthy\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Misplaced\n Misplaced\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Degraded\n Degraded\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n Unfound\n Unfound\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n replicas\n replicas\n \n src/app/ceph/dashboard/health/health.component.ts\n 1\n \n \n \n up\n up\n \n src/app/ceph/dashboard/mds-summary.pipe.ts\n 1\n \n \n src/app/ceph/dashboard/osd-summary.pipe.ts\n 1\n \n \n \n no filesystems\n no filesystems\n \n src/app/ceph/dashboard/mds-summary.pipe.ts\n 1\n \n \n src/app/ceph/dashboard/mds-summary.pipe.ts\n 1\n \n \n \n active\n active\n \n src/app/ceph/dashboard/mds-summary.pipe.ts\n 1\n \n \n src/app/ceph/dashboard/mgr-summary.pipe.ts\n 1\n \n \n \n standby\n standby\n \n src/app/ceph/dashboard/mds-summary.pipe.ts\n 1\n \n \n src/app/ceph/dashboard/mgr-summary.pipe.ts\n 1\n \n \n \n n/a\n n/a\n \n src/app/ceph/dashboard/mgr-summary.pipe.ts\n 1\n \n \n \n active daemon\n active daemon\n \n src/app/ceph/dashboard/mgr-summary.pipe.ts\n 1\n \n \n \n quorum\n quorum\n \n src/app/ceph/dashboard/mon-summary.pipe.ts\n 1\n \n \n \n The NFS Ganesha service is not configured.\n The NFS Ganesha service is not configured.\n \n src/app/ceph/nfs/nfs-501/nfs-501.component.ts\n 1\n \n \n \n Transport\n Transport\n \n src/app/ceph/nfs/nfs-details/nfs-details.component.ts\n 1\n \n \n \n CephFS User\n CephFS User\n \n src/app/ceph/nfs/nfs-details/nfs-details.component.ts\n 1\n \n \n \n CephFS Filesystem\n CephFS Filesystem\n \n src/app/ceph/nfs/nfs-details/nfs-details.component.ts\n 1\n \n \n \n (inherited from global config)\n (inherited from global config)\n \n src/app/ceph/nfs/nfs-form-client/nfs-form-client.component.ts\n 1\n \n \n \n inherited from global config\n inherited from global config\n \n src/app/ceph/nfs/nfs-form-client/nfs-form-client.component.ts\n 1\n \n \n \n -- Select what kind of user id squashing is performed --\n -- Select what kind of user id squashing is performed --\n \n src/app/ceph/nfs/nfs-form-client/nfs-form-client.component.ts\n 1\n \n \n \n There are no daemons available.\n There are no daemons available.\n \n src/app/ceph/nfs/nfs-form/nfs-form.component.ts\n 1\n \n \n \n Export\n Export\n \n src/app/ceph/nfs/nfs-list/nfs-list.component.ts\n 1\n \n \n \n EC Profile\n EC Profile\n \n src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.ts\n 1\n \n \n \n Cache Mode\n Cache Mode\n \n src/app/ceph/pool/pool-details/pool-details.component.ts\n 1\n \n \n \n Min Evict Age\n Min Evict Age\n \n src/app/ceph/pool/pool-details/pool-details.component.ts\n 1\n \n \n \n Min Flush Age\n Min Flush Age\n \n src/app/ceph/pool/pool-details/pool-details.component.ts\n 1\n \n \n \n Target Max Bytes\n Target Max Bytes\n \n src/app/ceph/pool/pool-details/pool-details.component.ts\n 1\n \n \n \n Target Max Objects\n Target Max Objects\n \n src/app/ceph/pool/pool-details/pool-details.component.ts\n 1\n \n \n \n No applications added\n No applications added\n \n src/app/ceph/pool/pool-form/pool-form-data.ts\n 1\n \n \n \n Applications limit reached\n Applications limit reached\n \n src/app/ceph/pool/pool-form/pool-form-data.ts\n 1\n \n \n \n A pool can only have up to four applications definitions.\n A pool can only have up to four applications definitions.\n \n src/app/ceph/pool/pool-form/pool-form-data.ts\n 1\n \n \n \n Allowed characters \'_a-zA-Z0-9\'\n Allowed characters \'_a-zA-Z0-9\'\n \n src/app/ceph/pool/pool-form/pool-form-data.ts\n 1\n \n \n \n Maximum length is 128 characters\n Maximum length is 128 characters\n \n src/app/ceph/pool/pool-form/pool-form-data.ts\n 1\n \n \n \n Filter or add applications\n Filter or add applications\n \n src/app/ceph/pool/pool-form/pool-form-data.ts\n 1\n \n \n \n Add application\n Add application\n \n src/app/ceph/pool/pool-form/pool-form-data.ts\n 1\n \n \n \n pool\n pool\n \n src/app/ceph/pool/pool-form/pool-form.component.ts\n 1\n \n \n \n erasure code profile\n erasure code profile\n \n src/app/ceph/pool/pool-form/pool-form.component.ts\n 1\n \n \n \n Replica Size\n Replica Size\n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Last Change\n Last Change\n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Erasure Coded Profile\n Erasure Coded Profile\n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Crush Ruleset\n Crush Ruleset\n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Write bytes\n Write bytes\n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n src/app/ceph/pool/pool-list/pool-list.component.ts\n 1\n \n \n \n bucket\n bucket\n \n src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.ts\n 1\n \n \n src/app/ceph/rgw/rgw-bucket-list/rgw-bucket-list.component.ts\n 1\n \n \n \n Updated Object Gateway bucket ""\n Updated Object Gateway bucket ""\n \n src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.ts\n 1\n \n \n \n Created Object Gateway bucket ""\n Created Object Gateway bucket ""\n \n src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.ts\n 1\n \n \n \n buckets\n buckets\n \n src/app/ceph/rgw/rgw-bucket-list/rgw-bucket-list.component.ts\n 1\n \n \n \n capability\n capability\n \n src/app/ceph/rgw/rgw-user-capability-modal/rgw-user-capability-modal.component.ts\n 1\n \n \n src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts\n 1\n \n \n \n user\n user\n \n src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts\n 1\n \n \n src/app/ceph/rgw/rgw-user-list/rgw-user-list.component.ts\n 1\n \n \n src/app/core/auth/user-form/user-form.component.ts\n 1\n \n \n \n subuser\n subuser\n \n src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts\n 1\n \n \n \n S3 Key\n S3 Key\n \n src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts\n 1\n \n \n src/app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.ts\n 1\n \n \n \n Updated Object Gateway user ""\n Updated Object Gateway user ""\n \n src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts\n 1\n \n \n \n Created Object Gateway user ""\n Created Object Gateway user ""\n \n src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.ts\n 1\n \n \n \n users\n users\n \n src/app/ceph/rgw/rgw-user-list/rgw-user-list.component.ts\n 1\n \n \n \n Swift Key\n Swift Key\n \n src/app/ceph/rgw/rgw-user-swift-key-modal/rgw-user-swift-key-modal.component.ts\n 1\n \n \n \n Scope\n Scope\n \n src/app/core/auth/role-details/role-details.component.ts\n 1\n \n \n \n Read\n Read\n \n src/app/core/auth/role-details/role-details.component.ts\n 1\n \n \n src/app/core/auth/role-form/role-form.component.ts\n 1\n \n \n \n role\n role\n \n src/app/core/auth/role-form/role-form.component.ts\n 1\n \n \n \n Created role \'\'\n Created role \'\'\n \n src/app/core/auth/role-form/role-form.component.ts\n 1\n \n \n \n Updated role \'\'\n Updated role \'\'\n \n src/app/core/auth/role-form/role-form.component.ts\n 1\n \n \n \n System Role\n System Role\n \n src/app/core/auth/role-list/role-list.component.ts\n 1\n \n \n \n Deleted role \'\'\n Deleted role \'\'\n \n src/app/core/auth/role-list/role-list.component.ts\n 1\n \n \n \n Created user ""\n Created user ""\n \n src/app/core/auth/user-form/user-form.component.ts\n 1\n \n \n \n Update user\n Update user\n \n src/app/core/auth/user-form/user-form.component.ts\n 1\n \n \n \n Continue\n Continue\n \n src/app/core/auth/user-form/user-form.component.ts\n 1\n \n \n \n You were automatically logged out because your roles have been changed.\n You were automatically logged out because your roles have been changed.\n \n src/app/core/auth/user-form/user-form.component.ts\n 1\n \n \n \n Updated user ""\n Updated user ""\n \n src/app/core/auth/user-form/user-form.component.ts\n 1\n \n \n \n Deleted user ""\n Deleted user ""\n \n src/app/core/auth/user-list/user-list.component.ts\n 1\n \n \n \n Failed to delete user ""\n Failed to delete user ""\n \n src/app/core/auth/user-list/user-list.component.ts\n 1\n \n \n \n You are currently logged in as "".\n You are currently logged in as "".\n \n src/app/core/auth/user-list/user-list.component.ts\n 1\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Each object is split in data-chunks parts, each stored on a different OSD.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n Set the directory name from which the erasure code plugin is loaded.\n Set the directory name from which the erasure code plugin is loaded.\n \n src/app/shared/api/erasure-code-profile.service.ts\n 1\n \n \n \n Allows all operations\n Allows all operations\n \n src/app/shared/api/nfs.service.ts\n 1\n \n \n \n Allows only operations that do not modify the server\n Allows only operations that do not modify the server\n \n src/app/shared/api/nfs.service.ts\n 1\n \n \n \n Does not allow read or write operations, but allows any other operation\n Does not allow read or write operations, but allows any other operation\n \n src/app/shared/api/nfs.service.ts\n 1\n \n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Does not allow read, write, or any operation that modifies file attributes or directory content\n \n src/app/shared/api/nfs.service.ts\n 1\n \n \n \n Allows no access at all\n Allows no access at all\n \n src/app/shared/api/nfs.service.ts\n 1\n \n \n \n -- Select the priority --\n -- Select the priority --\n \n src/app/shared/api/osd.service.ts\n 1\n \n \n \n Low\n Low\n \n src/app/shared/api/osd.service.ts\n 1\n \n \n \n High\n High\n \n src/app/shared/api/osd.service.ts\n 1\n \n \n \n Last 5 minutes\n Last 5 minutes\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 15 minutes\n Last 15 minutes\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 30 minutes\n Last 30 minutes\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 1 hour (Default)\n Last 1 hour (Default)\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 3 hours\n Last 3 hours\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 6 hours\n Last 6 hours\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 12 hours\n Last 12 hours\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 24 hours\n Last 24 hours\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Yesterday\n Yesterday\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Today\n Today\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Today so far\n Today so far\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Day before yesterday\n Day before yesterday\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 2 days\n Last 2 days\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n This day last week\n This day last week\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Previous week\n Previous week\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n This week\n This week\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n This week so far\n This week so far\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 7 days\n Last 7 days\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Previous month\n Previous month\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n This month\n This month\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n This month so far\n This month so far\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 30 days\n Last 30 days\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 90 days\n Last 90 days\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 6 months\n Last 6 months\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 1 year\n Last 1 year\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Previous year\n Previous year\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n This year\n This year\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n This year so far\n This year so far\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 2 years\n Last 2 years\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Last 5 years\n Last 5 years\n \n src/app/shared/components/grafana/grafana.component.ts\n 1\n \n \n \n Information\n Information\n \n src/app/shared/components/info-panel/info-panel.component.ts\n 1\n \n \n \n No items selected.\n No items selected.\n \n src/app/shared/components/select/select-messages.model.ts\n 1\n \n \n \n Deselect item to select again\n Deselect item to select again\n \n src/app/shared/components/select/select-messages.model.ts\n 1\n \n \n \n Selection limit reached\n Selection limit reached\n \n src/app/shared/components/select/select-messages.model.ts\n 1\n \n \n \n Filter tags\n Filter tags\n \n src/app/shared/components/select/select-messages.model.ts\n 1\n \n \n \n Add badge\n Add badge\n \n src/app/shared/components/select/select-messages.model.ts\n 1\n \n \n \n There are no items available.\n There are no items available.\n \n src/app/shared/components/select/select-messages.model.ts\n 1\n \n \n \n Remove\n Remove\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Recreate\n Recreate\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Expire\n Expire\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Deleted\n Deleted\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Added\n Added\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Removed\n Removed\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Edited\n Edited\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Canceled\n Canceled\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Cloned\n Cloned\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Copied\n Copied\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Showed\n Showed\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Moved to Trash\n Moved to Trash\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Unprotected\n Unprotected\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Recreated\n Recreated\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Expired\n Expired\n \n src/app/shared/constants/app.constants.ts\n 1\n \n \n \n Yes\n Yes\n \n src/app/shared/pipes/boolean-text.pipe.ts\n 1\n \n \n \n No\n No\n \n src/app/shared/pipes/boolean-text.pipe.ts\n 1\n \n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n src/app/shared/services/prometheus-silence-matcher.service.ts\n 1\n \n \n \n no active alerts\n no active alerts\n \n src/app/shared/services/prometheus-silence-matcher.service.ts\n 1\n \n \n \n 1 active alert\n 1 active alert\n \n src/app/shared/services/prometheus-silence-matcher.service.ts\n 1\n \n \n \n active alerts\n active alerts\n \n src/app/shared/services/prometheus-silence-matcher.service.ts\n 1\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n src/app/shared/services/prometheus-silence-matcher.service.ts\n 1\n \n \n \n Matches rules\n Matches rules\n \n src/app/shared/services/prometheus-silence-matcher.service.ts\n 1\n \n \n \n with .\n with .\n \n src/app/shared/services/prometheus-silence-matcher.service.ts\n 1\n \n \n \n Quality of Service\n Quality of Service\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n BPS Limit\n BPS Limit\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired limit of IO bytes per second.\n The desired limit of IO bytes per second.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n IOPS Limit\n IOPS Limit\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired limit of IO operations per second.\n The desired limit of IO operations per second.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Read BPS Limit\n Read BPS Limit\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired limit of read bytes per second.\n The desired limit of read bytes per second.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Read IOPS Limit\n Read IOPS Limit\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired limit of read operations per second.\n The desired limit of read operations per second.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Write BPS Limit\n Write BPS Limit\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired limit of write bytes per second.\n The desired limit of write bytes per second.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Write IOPS Limit\n Write IOPS Limit\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired limit of write operations per second.\n The desired limit of write operations per second.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n BPS Burst\n BPS Burst\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired burst limit of IO bytes.\n The desired burst limit of IO bytes.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n IOPS Burst\n IOPS Burst\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired burst limit of IO operations.\n The desired burst limit of IO operations.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Read BPS Burst\n Read BPS Burst\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired burst limit of read bytes.\n The desired burst limit of read bytes.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Read IOPS Burst\n Read IOPS Burst\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired burst limit of read operations.\n The desired burst limit of read operations.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Write BPS Burst\n Write BPS Burst\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired burst limit of write bytes.\n The desired burst limit of write bytes.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Write IOPS Burst\n Write IOPS Burst\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n The desired burst limit of write operations.\n The desired burst limit of write operations.\n \n src/app/shared/services/rbd-configuration.service.ts\n 1\n \n \n \n Failed to \n Failed to \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Executing\n Executing\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n execute\n execute\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Executed\n Executed\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n unknown task\n unknown task\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Creating\n Creating\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n create\n create\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Updating\n Updating\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n update\n update\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Deleting\n Deleting\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n delete\n delete\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n RBD \'\'\n RBD \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n RBD snapshot \'\'\n RBD snapshot \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n mirror mode for pool \'\'\n mirror mode for pool \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n mirror peer for pool \'\'\n mirror peer for pool \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n all dashboards\n all dashboards\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Name is already used by .\n Name is already used by .\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Name is already used by .\n Name is already used by .\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Name is already used by .\n Name is already used by .\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n contains snapshots.\n contains snapshots.\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Cloning\n Cloning\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n clone\n clone\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Snapshot of must be protected.\n Snapshot of must be protected.\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Copying\n Copying\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n copy\n copy\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Flattening\n Flattening\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n flatten\n flatten\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Flattened\n Flattened\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Name is already used by .\n Name is already used by .\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Cannot unprotect because it contains child images.\n Cannot unprotect because it contains child images.\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Cannot delete because it\'s protected.\n Cannot delete because it\'s protected.\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Rolling back\n Rolling back\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n rollback\n rollback\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Rolled back\n Rolled back\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Moving\n Moving\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n move\n move\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Moved\n Moved\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n image \'\' to trash\n image \'\' to trash\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Could not find image.\n Could not find image.\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Restoring\n Restoring\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n restore\n restore\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Restored\n Restored\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n image \'\' into \'\'\n image \'\' into \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Image name \'\' is already in use.\n Image name \'\' is already in use.\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n image \'\'\n image \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Purging\n Purging\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n purge\n purge\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Purged\n Purged\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n all pools\n all pools\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n images from \n images from \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n Cannot disable mirroring because it contains a peer.\n Cannot disable mirroring because it contains a peer.\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n pool \'\'\n pool \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n erasure code profile \'\'\n erasure code profile \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n target \'\'\n target \'\'\n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n NFS \n NFS \n \n src/app/shared/services/task-message.service.ts\n 1\n \n \n \n \n\n'},SZbH:function(t,e,n){"use strict";n.d(e,"a",function(){return _}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return x}),n.d(e,"d",function(){return u}),n.d(e,"e",function(){return S}),n.d(e,"f",function(){return I}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return w}),n.d(e,"i",function(){return T}),n.d(e,"j",function(){return v});var a=n("mrSG"),r=n("CcnG"),i=n("K9Ia"),o=n("ZYjt"),s=n("Ip0R"),u=function(){return function(){}}(),c=function(){function t(t,e,n,a,r,o){var s=this;this.toastId=t,this.config=e,this.message=n,this.title=a,this.toastType=r,this.toastRef=o,this._onTap=new i.a,this._onAction=new i.a,this.toastRef.afterClosed().subscribe(function(){s._onAction.complete(),s._onTap.complete()})}return t.prototype.triggerTap=function(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()},t.prototype.onTap=function(){return this._onTap.asObservable()},t.prototype.triggerAction=function(t){this._onAction.next(t)},t.prototype.onAction=function(){return this._onAction.asObservable()},t}(),l={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},d=new r.InjectionToken("ToastConfig"),f=function(){function t(t,e){this.component=t,this.injector=e}return t.prototype.attach=function(t,e){return this._attachedHost=t,t.attach(this,e)},t.prototype.detach=function(){var t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()},Object.defineProperty(t.prototype,"isAttached",{get:function(){return null!=this._attachedHost},enumerable:!0,configurable:!0}),t.prototype.setAttachedHost=function(t){this._attachedHost=t},t}(),p=function(t){function e(e,n,a){var r=t.call(this)||this;return r._hostDomElement=e,r._componentFactoryResolver=n,r._appRef=a,r}return Object(a.__extends)(e,t),e.prototype.attachComponentPortal=function(t,e){var n,a=this,r=this._componentFactoryResolver.resolveComponentFactory(t.component);return n=r.create(t.injector),this._appRef.attachView(n.hostView),this.setDisposeFn(function(){a._appRef.detachView(n.hostView),n.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(n),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(n)),n},e.prototype._getComponentRootNode=function(t){return t.hostView.rootNodes[0]},e}(function(){function t(){}return t.prototype.attach=function(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)},t.prototype.detach=function(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)},t.prototype.setDisposeFn=function(t){this._disposeFn=t},t}()),h=function(){function t(t){this._document=t}return t.prototype.ngOnDestroy=function(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)},t.prototype.getContainerElement=function(){return this._containerElement||this._createContainer(),this._containerElement},t.prototype._createContainer=function(){var t=this._document.createElement("div");t.classList.add("overlay-container"),this._document.body.appendChild(t),this._containerElement=t},t.ngInjectableDef=Object(r.defineInjectable)({factory:function(){return new t(Object(r.inject)(s.DOCUMENT))},token:t,providedIn:"root"}),t}(),g=function(){function t(t){this._portalHost=t}return t.prototype.attach=function(t,e){return void 0===e&&(e=!0),this._portalHost.attach(t,e)},t.prototype.detach=function(){return this._portalHost.detach()},t}(),m=function(){function t(t,e,n,a){this._overlayContainer=t,this._componentFactoryResolver=e,this._appRef=n,this._document=a,this._paneElements=new Map}return t.prototype.create=function(t,e){return this._createOverlayRef(this.getPaneElement(t,e))},t.prototype.getPaneElement=function(t,e){return void 0===t&&(t=""),this._paneElements.get(e)||this._paneElements.set(e,{}),this._paneElements.get(e)[t]||(this._paneElements.get(e)[t]=this._createPaneElement(t,e)),this._paneElements.get(e)[t]},t.prototype._createPaneElement=function(t,e){var n=this._document.createElement("div");return n.id="toast-container",n.classList.add(t),n.classList.add("toast-container"),e?e.getContainerElement().appendChild(n):this._overlayContainer.getContainerElement().appendChild(n),n},t.prototype._createPortalHost=function(t){return new p(t,this._componentFactoryResolver,this._appRef)},t.prototype._createOverlayRef=function(t){return new g(this._createPortalHost(t))},t.ngInjectableDef=Object(r.defineInjectable)({factory:function(){return new t(Object(r.inject)(h),Object(r.inject)(r.ComponentFactoryResolver),Object(r.inject)(r.ApplicationRef),Object(r.inject)(s.DOCUMENT))},token:t,providedIn:"root"}),t}(),b=function(){function t(t){this._overlayRef=t,this.duplicatesCount=0,this._afterClosed=new i.a,this._activate=new i.a,this._manualClose=new i.a,this._resetTimeout=new i.a,this._countDuplicate=new i.a}return t.prototype.manualClose=function(){this._manualClose.next(),this._manualClose.complete()},t.prototype.manualClosed=function(){return this._manualClose.asObservable()},t.prototype.timeoutReset=function(){return this._resetTimeout.asObservable()},t.prototype.countDuplicate=function(){return this._countDuplicate.asObservable()},t.prototype.close=function(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()},t.prototype.afterClosed=function(){return this._afterClosed.asObservable()},t.prototype.isInactive=function(){return this._activate.isStopped},t.prototype.activate=function(){this._activate.next(),this._activate.complete()},t.prototype.afterActivate=function(){return this._activate.asObservable()},t.prototype.onDuplicate=function(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)},t}(),y=function(){function t(t,e){this._toastPackage=t,this._parentInjector=e}return t.prototype.get=function(t,e,n){return t===c?this._toastPackage:this._parentInjector.get(t,e,n)},t}(),v=function(){function t(t,e,n,r,i){this.overlay=e,this._injector=n,this.sanitizer=r,this.ngZone=i,this.currentlyActive=0,this.toasts=[],this.index=0,this.toastrConfig=Object(a.__assign)({},t.default,t.config),t.config.iconClasses&&(this.toastrConfig.iconClasses=Object(a.__assign)({},t.default.iconClasses,t.config.iconClasses))}return t.prototype.show=function(t,e,n,a){return void 0===n&&(n={}),void 0===a&&(a=""),this._preBuildNotification(a,t,e,this.applyConfig(n))},t.prototype.success=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.success||"",t,e,this.applyConfig(n))},t.prototype.error=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.error||"",t,e,this.applyConfig(n))},t.prototype.info=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.info||"",t,e,this.applyConfig(n))},t.prototype.warning=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",t,e,this.applyConfig(n))},t.prototype.clear=function(t){var e,n;try{for(var r=Object(a.__values)(this.toasts),i=r.next();!i.done;i=r.next()){var o=i.value;if(void 0!==t){if(o.toastId===t)return void o.toastRef.manualClose()}else o.toastRef.manualClose()}}catch(s){e={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},t.prototype.remove=function(t){var e=this._findToast(t);if(!e)return!1;if(e.activeToast.toastRef.close(),this.toasts.splice(e.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length)return!1;if(this.currentlyActive=this.toastrConfig.maxOpened&&(s=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));var u=this.overlay.create(a.positionClass,this.overlayContainer);this.index=this.index+1;var l=e;e&&a.enableHtml&&(l=this.sanitizer.sanitize(r.SecurityContext.HTML,e));var d=new b(u),p=new c(this.index,a,l,n,t,d),h=new y(p,this._injector),g=new f(a.toastComponent,h),m=u.attach(g,this.toastrConfig.newestOnTop);d.componentInstance=m._component;var v={toastId:this.index,message:e||"",toastRef:d,onShown:d.afterActivate(),onHidden:d.afterClosed(),onTap:p.onTap(),onAction:p.onAction(),portal:m};return s||setTimeout(function(){v.toastRef.activate(),i.currentlyActive=i.currentlyActive+1}),this.toasts.push(v),v},t.ngInjectableDef=Object(r.defineInjectable)({factory:function(){return new t(Object(r.inject)(d),Object(r.inject)(m),Object(r.inject)(r.INJECTOR),Object(r.inject)(o.DomSanitizer),Object(r.inject)(r.NgZone))},token:t,providedIn:"root"}),t}(),x=function(){function t(t,e,n){var a=this;this.toastrService=t,this.toastPackage=e,this.ngZone=n,this.width=-1,this.toastClasses="",this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}},this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=e.toastType+" "+e.config.toastClass,this.sub=e.toastRef.afterActivate().subscribe(function(){a.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(function(){a.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(function(){a.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(function(t){a.duplicatesCount=t})}return Object.defineProperty(t.prototype,"displayStyle",{get:function(){return"inactive"===this.state.value?"none":"inherit"},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)},t.prototype.activateToast=function(){var t=this;this.state=Object(a.__assign)({},this.state,{value:"active"}),!this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(function(){return t.remove()},this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(function(){return t.updateProgress()},10))},t.prototype.updateProgress=function(){if(0!==this.width&&100!==this.width&&this.options.timeOut){var t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}},t.prototype.resetTimeout=function(){var t=this;clearTimeout(this.timeout),clearInterval(this.intervalId),this.state=Object(a.__assign)({},this.state,{value:"active"}),this.outsideTimeout(function(){return t.remove()},this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(function(){return t.updateProgress()},10)},t.prototype.remove=function(){var t=this;"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state=Object(a.__assign)({},this.state,{value:"removed"}),this.outsideTimeout(function(){return t.toastrService.remove(t.toastPackage.toastId)},+this.toastPackage.config.easeTime))},t.prototype.tapToast=function(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())},t.prototype.stickAround=function(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)},t.prototype.delayedHideToast=function(){var t=this;this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(function(){return t.remove()},this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(function(){return t.updateProgress()},10))},t.prototype.outsideTimeout=function(t,e){var n=this;this.ngZone?this.ngZone.runOutsideAngular(function(){return n.timeout=setTimeout(function(){return n.runInsideAngular(t)},e)}):this.timeout=setTimeout(function(){return t()},e)},t.prototype.outsideInterval=function(t,e){var n=this;this.ngZone?this.ngZone.runOutsideAngular(function(){return n.intervalId=setInterval(function(){return n.runInsideAngular(t)},e)}):this.intervalId=setInterval(function(){return t()},e)},t.prototype.runInsideAngular=function(t){this.ngZone?this.ngZone.run(function(){return t()}):t()},t}(),_=Object(a.__assign)({},l,{toastComponent:x}),T=function(){function t(){}var e;return e=t,t.forRoot=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[{provide:d,useValue:{default:_,config:t}}]}},t}(),w=function(){function t(){}return t.forRoot=function(t){return void 0===t&&(t={}),{ngModule:T,providers:[{provide:d,useValue:{default:l,config:t}}]}},t}(),S=function(){function t(t,e,n){var a=this;this.toastrService=t,this.toastPackage=e,this.appRef=n,this.width=-1,this.toastClasses="",this.state="inactive",this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=e.toastType+" "+e.config.toastClass,this.sub=e.toastRef.afterActivate().subscribe(function(){a.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(function(){a.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(function(){a.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(function(t){a.duplicatesCount=t})}return Object.defineProperty(t.prototype,"displayStyle",{get:function(){return"inactive"===this.state?"none":"inherit"},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)},t.prototype.activateToast=function(){var t=this;this.state="active",!this.options.disableTimeOut&&this.options.timeOut&&(this.timeout=setTimeout(function(){t.remove()},this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(function(){return t.updateProgress()},10))),this.options.onActivateTick&&this.appRef.tick()},t.prototype.updateProgress=function(){if(0!==this.width&&100!==this.width&&this.options.timeOut){var t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}},t.prototype.resetTimeout=function(){var t=this;clearTimeout(this.timeout),clearInterval(this.intervalId),this.state="active",this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(function(){return t.remove()},this.originalTimeout),this.hideTime=(new Date).getTime()+(this.originalTimeout||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(function(){return t.updateProgress()},10))},t.prototype.remove=function(){var t=this;"removed"!==this.state&&(clearTimeout(this.timeout),this.state="removed",this.timeout=setTimeout(function(){return t.toastrService.remove(t.toastPackage.toastId)}))},t.prototype.tapToast=function(){"removed"!==this.state&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())},t.prototype.stickAround=function(){"removed"!==this.state&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)},t.prototype.delayedHideToast=function(){var t=this;this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state||(this.timeout=setTimeout(function(){return t.remove()},this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(function(){return t.updateProgress()},10)))},t}(),O=Object(a.__assign)({},l,{toastComponent:S}),I=function(){function t(){}var e;return e=t,t.forRoot=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[{provide:d,useValue:{default:O,config:t}}]}},t}()},SatO:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e2d\u5348"===e?t>=11?t:t+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u9031";default:return t}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}()},SfHT:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG");e.ScrollerComponent=function(){function t(t,e,n){this.ngZone=t,this.renderer=n,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new i.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this.element=e.nativeElement}return t.prototype.ngOnInit=function(){if(this.scrollbarV||this.scrollbarH){var t=this.renderer;this.parentElement=t.parentNode(t.parentNode(this.element)),this.parentElement.addEventListener("scroll",this.onScrolled.bind(this))}},t.prototype.ngOnDestroy=function(){(this.scrollbarV||this.scrollbarH)&&this.parentElement.removeEventListener("scroll",this.onScrolled.bind(this))},t.prototype.setOffset=function(t){this.parentElement&&(this.parentElement.scrollTop=t)},t.prototype.onScrolled=function(t){var e=this,n=t.currentTarget;requestAnimationFrame(function(){e.scrollYPos=n.scrollTop,e.scrollXPos=n.scrollLeft,e.updateOffset()})},t.prototype.updateOffset=function(){var t;this.scrollYPosthis.prevScrollYPos&&(t="up"),this.scroll.emit({direction:t,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos},a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([i.HostBinding("style.height.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollHeight",void 0),a([i.HostBinding("style.width.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"scroll",void 0),a([i.Component({selector:"datatable-scroller",template:"\n \n ",host:{class:"datatable-scroll"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},Sfow:function(t,e,n){"use strict";var a=n("TC34");e=t.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,a,r,i){if(i){var o=Math.min(i,r/2-1e-7,a/2-1e-7);t.moveTo(e+o,n),t.lineTo(e+a-o,n),t.arcTo(e+a,n,e+a,n+o,o),t.lineTo(e+a,n+r-o),t.arcTo(e+a,n+r,e+a-o,n+r,o),t.lineTo(e+o,n+r),t.arcTo(e,n+r,e,n+r-o,o),t.lineTo(e,n+o),t.arcTo(e,n,e+o,n,o),t.closePath(),t.moveTo(e,n)}else t.rect(e,n,a,r)},drawPoint:function(t,e,n,a,r,i){var o,s,u,c,l,d;if(i=i||0,!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(n)||n<=0)){switch(t.save(),t.translate(a,r),t.rotate(i*Math.PI/180),t.beginPath(),e){default:t.arc(0,0,n,0,2*Math.PI),t.closePath();break;case"triangle":l=(s=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(-s/2,l/3),t.lineTo(s/2,l/3),t.lineTo(0,-2*l/3),t.closePath();break;case"rect":d=1/Math.SQRT2*n,t.rect(-d,-d,2*d,2*d);break;case"rectRounded":var f=n/Math.SQRT2,p=Math.SQRT2*n;this.roundedRect(t,-f,-f,p,p,.425*n);break;case"rectRot":d=1/Math.SQRT2*n,t.moveTo(-d,0),t.lineTo(0,d),t.lineTo(d,0),t.lineTo(0,-d),t.closePath();break;case"cross":t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-n,0),t.lineTo(n,0);break;case"crossRot":u=Math.cos(Math.PI/4)*n,c=Math.sin(Math.PI/4)*n,t.moveTo(-u,-c),t.lineTo(u,c),t.moveTo(-u,c),t.lineTo(u,-c);break;case"star":t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-n,0),t.lineTo(n,0),u=Math.cos(Math.PI/4)*n,c=Math.sin(Math.PI/4)*n,t.moveTo(-u,-c),t.lineTo(u,c),t.moveTo(-u,c),t.lineTo(u,-c);break;case"line":t.moveTo(-n,0),t.lineTo(n,0);break;case"dash":t.moveTo(0,0),t.lineTo(n,0)}t.fill(),t.stroke(),t.restore()}}else t.drawImage(e,a-e.width/2,r-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,a){if(n.steppedLine)return"after"===n.steppedLine&&!a||"after"!==n.steppedLine&&a?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(a?e.controlPointPreviousX:e.controlPointNextX,a?e.controlPointPreviousY:e.controlPointNextY,a?n.controlPointNextX:n.controlPointPreviousX,a?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}},a.clear=e.clear,a.drawRoundedRectangle=function(t){t.beginPath(),e.roundedRect.apply(e,arguments)}},SgmB:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("F/XL"),r=n("psW0"),i=n("CcnG"),o=n("t/Na"),s=n("pL04"),u=function(){function t(t){this.http=t}return t.prototype.list=function(){return this.http.get("api/role")},t.prototype.delete=function(t){return this.http.delete("api/role/"+t)},t.prototype.get=function(t){return this.http.get("api/role/"+t)},t.prototype.create=function(t){return this.http.post("api/role",t)},t.prototype.update=function(t){return this.http.put("api/role/"+t.name,t)},t.prototype.exists=function(t){return this.list().pipe(Object(r.a)(function(e){var n=e.some(function(e){return e.name===t});return Object(a.a)(n)}))},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(o.c))},token:t,providedIn:s.a}),t}()},SjWX:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(){return function(t,e,n){this.name=t,this.version=e,this.os=n}}();e.BrowserInfo=a;var r=function(){return function(t){this.version=t,this.name="node",this.os=process.platform}}();e.NodeInfo=r;var i=function(){return function(){this.bot=!0,this.name="bot",this.version=null,this.os=null}}();e.BotInfo=i;var o=3,s=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["vivaldi",/Vivaldi\/([0-9\.]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)$/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FBAV\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["searchbot",/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/]],u=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/],["Search Bot",/(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\/Teoma)|(ia_archiver)/]];function c(t){var e=""!==t&&s.reduce(function(e,n){var a=n[0];if(e)return e;var r=n[1].exec(t);return!!r&&[a,r]},!1);if(!e)return null;var n=e[0],r=e[1];if("searchbot"===n)return new i;var u=r[1]&&r[1].split(/[._]/).slice(0,3);return u?u.length=0;i--)e.call(n,t[i],i);else for(i=0;i=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}()},UReH:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DatatableRowDetailTemplateDirective=function(){return a([r.Directive({selector:"[ngx-datatable-row-detail-template]"})],function(t){this.template=t})}()},USCx:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ga",{months:["Ean\xe1ir","Feabhra","M\xe1rta","Aibre\xe1n","Bealtaine","M\xe9itheamh","I\xfail","L\xfanasa","Me\xe1n F\xf3mhair","Deaireadh F\xf3mhair","Samhain","Nollaig"],monthsShort:["Ean\xe1","Feab","M\xe1rt","Aibr","Beal","M\xe9it","I\xfail","L\xfana","Me\xe1n","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["D\xe9 Domhnaigh","D\xe9 Luain","D\xe9 M\xe1irt","D\xe9 C\xe9adaoin","D\xe9ardaoin","D\xe9 hAoine","D\xe9 Satharn"],weekdaysShort:["Dom","Lua","M\xe1i","C\xe9a","D\xe9a","hAo","Sat"],weekdaysMin:["Do","Lu","M\xe1","Ce","D\xe9","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Am\xe1rach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inn\xe9 aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",ss:"%d soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xed",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}()},UpQW:function(t,e,n){!function(t){"use strict";var e=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],a=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];n("wd/R").defineLocale("ur",{months:e,monthsShort:e,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(t){return"\u0634\u0627\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}()},UqmZ:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),o=a.global;a._set("global",{elements:{line:{tension:.4,backgroundColor:o.defaultColor,borderWidth:3,borderColor:o.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),t.exports=r.extend({draw:function(){var t,e,n,a,r=this._view,s=this._chart.ctx,u=r.spanGaps,c=this._children.slice(),l=o.elements.line,d=-1;for(this._loop&&c.length&&c.push(c[0]),s.save(),s.lineCap=r.borderCapStyle||l.borderCapStyle,s.setLineDash&&s.setLineDash(r.borderDash||l.borderDash),s.lineDashOffset=r.borderDashOffset||l.borderDashOffset,s.lineJoin=r.borderJoinStyle||l.borderJoinStyle,s.lineWidth=r.borderWidth||l.borderWidth,s.strokeStyle=r.borderColor||o.defaultColor,s.beginPath(),d=-1,t=0;t=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}()},"V/fk":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},V2x9:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},V3my:function(t,e,n){"use strict";var a,r=n("gIcY"),i=n("LvDl"),o=(n("DSvg"),n("SgmB"),n("Mxhz"),n("OLbh")),s=n("DNAf"),u=(n("sne2"),n("mtw6")),c=n("QFaf"),l=n("1Ni5");n("aexS"),n("9nlD"),function(t){t.editing="editing"}(a||(a={}));var d=function(){return function(){}}();n.d(e,"a",function(){return f});var f=function(){function t(t,e,n,r,i,o,u,c,l,d){this.authService=t,this.authStorageService=e,this.route=n,this.router=r,this.modalService=i,this.roleService=o,this.userService=u,this.notificationService=c,this.i18n=l,this.actionLabels=d,this.userFormMode=a,this.messages=new s.a({empty:"There are no roles."},this.i18n),this.resource=this.i18n("user"),this.createForm(),this.messages=new s.a({empty:"There are no roles."},this.i18n)}return t.prototype.createForm=function(){this.userForm=new c.a({username:new r.i("",{validators:[r.A.required]}),name:new r.i(""),password:new r.i("",{validators:[]}),confirmpassword:new r.i("",{updateOn:"blur",validators:[]}),email:new r.i("",{validators:[r.A.email]}),roles:new r.i([])},{validators:[l.a.match("password","confirmpassword")]})},t.prototype.ngOnInit=function(){var t=this;this.router.url.startsWith("/user-management/users/edit")?(this.mode=this.userFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.roleService.list().subscribe(function(e){t.allRoles=i.map(e,function(t){return t.enabled=!0,t})}),this.mode===this.userFormMode.editing&&this.initEdit()},t.prototype.initEdit=function(){var t=this;this.disableForEdit(),this.route.params.subscribe(function(e){t.userService.get(e.username).subscribe(function(e){t.response=i.cloneDeep(e),t.setResponse(e)})})},t.prototype.disableForEdit=function(){this.userForm.get("username").disable()},t.prototype.setResponse=function(t){var e=this;["username","name","email","roles"].forEach(function(n){return e.userForm.get(n).setValue(t[n])})},t.prototype.getRequest=function(){var t=this,e=new d;return["username","password","name","email","roles"].forEach(function(n){return e[n]=t.userForm.get(n).value}),e},t.prototype.createAction=function(){var t=this,e=this.getRequest();this.userService.create(e).subscribe(function(){t.notificationService.show(u.a.success,t.i18n('Created user "{{username}}"',{username:e.username})),t.router.navigate(["/user-management/users"])},function(){t.userForm.setErrors({cdSubmitButton:!0})})},t.prototype.editAction=function(){var t=this;if(this.isUserRemovingNeededRolePermissions()){var e={titleText:this.i18n("Update user"),buttonText:this.i18n("Continue"),bodyTpl:this.removeSelfUserReadUpdatePermissionTpl,onSubmit:function(){t.modalRef.hide(),t.doEditAction()},onCancel:function(){t.userForm.setErrors({cdSubmitButton:!0}),t.userForm.get("roles").reset(t.userForm.get("roles").value)}};this.modalRef=this.modalService.show(o.a,{initialState:e})}else this.doEditAction()},t.prototype.isCurrentUser=function(){return this.authStorageService.getUsername()===this.userForm.getValue("username")},t.prototype.isUserChangingRoles=function(){return this.isCurrentUser()&&this.response&&!i.isEqual(this.response.roles,this.userForm.getValue("roles"))},t.prototype.isUserRemovingNeededRolePermissions=function(){return this.isCurrentUser()&&!this.hasUserReadUpdatePermissions(this.userForm.getValue("roles"))},t.prototype.hasUserReadUpdatePermissions=function(t){void 0===t&&(t=[]);for(var e=function(e){if(-1!==t.indexOf(e.name)&&e.scopes_permissions.user){var n=e.scopes_permissions.user;return{value:["read","update"].every(function(t){return-1!==n.indexOf(t)})}}},n=0,a=this.allRoles;n0),t(e,4,0,0===n.data.length&&n.options.length>0),t(e,6,0,0===n.options.length)},null)}},WxRl:function(t,e,n){!function(t){"use strict";var e="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function n(t,e,n,a){var r=t;switch(n){case"s":return a||e?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return r+(a||e)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(a||e?" perc":" perce");case"mm":return r+(a||e?" perc":" perce");case"h":return"egy"+(a||e?" \xf3ra":" \xf3r\xe1ja");case"hh":return r+(a||e?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(a||e?" nap":" napja");case"dd":return r+(a||e?" nap":" napja");case"M":return"egy"+(a||e?" h\xf3nap":" h\xf3napja");case"MM":return r+(a||e?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(a||e?" \xe9v":" \xe9ve");case"yy":return r+(a||e?" \xe9v":" \xe9ve")}return""}function a(t){return(t?"":"[m\xfalt] ")+"["+e[this.day()]+"] LT[-kor]"}t.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,n){return t<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return a.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return a.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},WyAD:function(t,e,n){var a=n("yPMN")();a.helpers=n("RDha"),n("nDWh")(a),a.Animation=n("A5uo"),a.animationService=n("dpnK"),a.defaults=n("CDJp"),a.Element=n("K2E3"),a.elements=n("vvH+"),a.Interaction=n("mlr9"),a.layouts=n("fELs"),a.platform=n("iM7B"),a.plugins=n("VgNv"),a.Scale=n("cdu6"),a.scaleService=n("tjFV"),a.Ticks=n("g8vO"),a.Tooltip=n("x8uC"),n("6rqY")(a),n("KAQS")(a),n("paOr")(a),n("8TtQ")(a),n("YSsK")(a),n("Y4Rb")(a),n("8//i")(a),n("RCHg")(a),n("ZANz")(a),n("bidN")(a),n("XQh+")(a),n("G0Q6")(a),n("5ZZ7")(a),n("aB2c")(a),n("35yf")(a),n("ODdm")(a),n("Qexa")(a),n("S7Ns")(a),n("7O6V")(a),n("qzaf")(a),n("iYGd")(a),n("S3/U")(a);var r=n("jXIB");for(var i in r)r.hasOwnProperty(i)&&a.plugins.register(r[i]);a.platform.initialize(),t.exports=a,"undefined"!=typeof window&&(window.Chart=a),a.Legend=r.legend._element,a.Title=r.title._element,a.pluginService=a.plugins,a.PluginBase=a.Element.extend({}),a.canvasHelpers=a.helpers.canvas,a.layoutService=a.layouts},X709:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"e":1===e?"a":2===e?"a":"e")},week:{dow:1,doy:4}})}()},X8CM:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha");a._set("global",{elements:{arc:{backgroundColor:a.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),t.exports=r.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)u;)r-=2*Math.PI;for(;r=s&&r<=u&&o>=n.innerRadius&&o<=n.outerRadius}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,a=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,a),t.arc(e.x,e.y,e.innerRadius,a,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},XDpg:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u5468";default:return t}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}()},XFyV:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},XLvN:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===e?t<4?t:t+12:"\u0c09\u0c26\u0c2f\u0c02"===e?t:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===e?t>=10?t:t+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":t<10?"\u0c09\u0c26\u0c2f\u0c02":t<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":t<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}()},"XQh+":function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('
    ');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i'),r[i]&&e.push(r[i]),e.push("");return e.push("
"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,a){var r=t.getDatasetMeta(0),o=e.datasets[0],s=r.data[a],u=s&&s.custom||{},c=i.valueAtIndexOrDefault,l=t.options.elements.arc;return{text:n,fillStyle:u.backgroundColor?u.backgroundColor:c(o.backgroundColor,a,l.backgroundColor),strokeStyle:u.borderColor?u.borderColor:c(o.borderColor,a,l.borderColor),lineWidth:u.borderWidth?u.borderWidth:c(o.borderWidth,a,l.borderWidth),hidden:isNaN(o.data[a])||r.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,a,r,i=e.index,o=this.chart;for(n=0,a=(o.data.datasets||[]).length;n=Math.PI?-1:h<-Math.PI?1:0))+p,m={x:Math.cos(h),y:Math.sin(h)},b={x:Math.cos(g),y:Math.sin(g)},y=h<=0&&g>=0||h<=2*Math.PI&&2*Math.PI<=g,v=h<=.5*Math.PI&&.5*Math.PI<=g||h<=2.5*Math.PI&&2.5*Math.PI<=g,x=h<=-Math.PI&&-Math.PI<=g||h<=Math.PI&&Math.PI<=g,_=h<=.5*-Math.PI&&.5*-Math.PI<=g||h<=1.5*Math.PI&&1.5*Math.PI<=g,T=f/100,w={x:x?-1:Math.min(m.x*(m.x<0?1:T),b.x*(b.x<0?1:T)),y:_?-1:Math.min(m.y*(m.y<0?1:T),b.y*(b.y<0?1:T))},S={x:y?1:Math.max(m.x*(m.x>0?1:T),b.x*(b.x>0?1:T)),y:v?1:Math.max(m.y*(m.y>0?1:T),b.y*(b.y>0?1:T))},O={width:.5*(S.x-w.x),height:.5*(S.y-w.y)};c=Math.min(s/O.width,u/O.height),l={x:-.5*(S.x+w.x),y:-.5*(S.y+w.y)}}n.borderWidth=e.getMaxBorderWidth(d.data),n.outerRadius=Math.max((c-n.borderWidth)/2,0),n.innerRadius=Math.max(f?n.outerRadius/100*f:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=l.x*n.outerRadius,n.offsetY=l.y*n.outerRadius,d.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),i.each(d.data,function(n,a){e.updateElement(n,a,t)})},updateElement:function(t,e,n){var a=this,r=a.chart,o=r.chartArea,s=r.options,u=s.animation,c=(o.left+o.right)/2,l=(o.top+o.bottom)/2,d=s.rotation,f=s.rotation,p=a.getDataset(),h=n&&u.animateRotate?0:t.hidden?0:a.calculateCircumference(p.data[e])*(s.circumference/(2*Math.PI));i.extend(t,{_datasetIndex:a.index,_index:e,_model:{x:c+r.offsetX,y:l+r.offsetY,startAngle:d,endAngle:f,circumference:h,outerRadius:n&&u.animateScale?0:a.outerRadius,innerRadius:n&&u.animateScale?0:a.innerRadius,label:(0,i.valueAtIndexOrDefault)(p.label,e,r.data.labels[e])}});var g=t._model,m=t.custom||{},b=i.valueAtIndexOrDefault,y=this.chart.options.elements.arc;g.backgroundColor=m.backgroundColor?m.backgroundColor:b(p.backgroundColor,e,y.backgroundColor),g.borderColor=m.borderColor?m.borderColor:b(p.borderColor,e,y.borderColor),g.borderWidth=m.borderWidth?m.borderWidth:b(p.borderWidth,e,y.borderWidth),n&&u.animateRotate||(g.startAngle=0===e?s.rotation:a.getMeta().data[e-1]._model.endAngle,g.endAngle=g.startAngle+g.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),a=0;return i.each(n.data,function(n,r){t=e.data[r],isNaN(t)||n.hidden||(a+=Math.abs(t))}),a},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){for(var e,n,a=0,r=this.index,i=t.length,o=0;o(a=(e=t[o]._model?t[o]._model.borderWidth:0)>a?e:a)?n:a;return a}})}},Xg1U:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("CcnG"),r=n("eajB"),i=(n("Ip0R"),a["\u0275crt"]({encapsulation:0,styles:[".tooltip[_nghost-%COMP%] {\n display: block;\n pointer-events: none;\n }\n .bs3.tooltip.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n margin-left: -2px;\n }\n .bs3.tooltip.bottom[_nghost-%COMP%] {\n margin-top: 0px;\n }\n .bs3.bs-tooltip-left[_nghost-%COMP%], .bs3.bs-tooltip-right[_nghost-%COMP%]{\n margin: 0px;\n }\n .bs3.bs-tooltip-right[_nghost-%COMP%] .arrow[_ngcontent-%COMP%], .bs3.bs-tooltip-left[_nghost-%COMP%] .arrow[_ngcontent-%COMP%] {\n margin: .3rem 0;\n }"],data:{}}));function o(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","tooltip-arrow arrow"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","tooltip-inner"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],null,null)}function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-tooltip-container",[["role","tooltip"]],[[8,"className",0],[2,"show",null],[2,"bs3",null],[1,"id",0]],null,null,o,i)),a["\u0275did"](1,4243456,null,0,r.b,[r.a],null,null)],null,function(t,e){t(e,0,0,"tooltip in tooltip-"+a["\u0275nov"](e,1).placement+" bs-tooltip-"+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).containerClass,!a["\u0275nov"](e,1).isBs3,a["\u0275nov"](e,1).isBs3,a["\u0275nov"](e,1).id)})}var u=a["\u0275ccf"]("bs-tooltip-container",r.b,s,{},{},["*"])},XlPw:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("6blF");function r(t,e){return new a.a(e?function(n){return e.schedule(i,0,{error:t,subscriber:n})}:function(e){return e.error(t)})}function i(t){t.subscriber.error(t.error)}},"Xwq/":function(t,e,n){"use strict";var a=n("FWf1"),r=n("p//D"),i=n("GiSu");e.toSubscriber=function(t,e,n){if(t){if(t instanceof a.Subscriber)return t;if(t[r.rxSubscriber])return t[r.rxSubscriber]()}return t||e||n?new a.Subscriber(t,e,n):new a.Subscriber(i.empty)}},Y0Co:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("Lwhh"),s=n("8iEZ"),u=n("L5sC");n("BARL"),e.DataTableColumnDirective=function(){function t(t){this.columnChangesService=t,this.isFirstChange=!0}return t.prototype.ngOnChanges=function(){this.isFirstChange?this.isFirstChange=!1:this.columnChangesService.onInputChange()},a([i.Input(),r("design:type",String)],t.prototype,"name",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"prop",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenLeft",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenRight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"flexGrow",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"comparator",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pipe",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"sortable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"draggable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"canAutoResize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"width",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"checkboxable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"headerCheckboxable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"headerClass",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"cellClass",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"isTreeColumn",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"treeLevelIndent",void 0),a([i.Input(),r("design:type",Function)],t.prototype,"summaryFunc",void 0),a([i.Input(),r("design:type",i.TemplateRef)],t.prototype,"summaryTemplate",void 0),a([i.Input(),i.ContentChild(s.DataTableColumnCellDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"cellTemplate",void 0),a([i.Input(),i.ContentChild(o.DataTableColumnHeaderDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"headerTemplate",void 0),a([i.Input(),i.ContentChild(u.DataTableColumnCellTreeToggle,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"treeToggleTemplate",void 0),a([i.Directive({selector:"ngx-datatable-column"})],t)}()},Y4Rb:function(t,e,n){"use strict";var a=n("RDha"),r=n("cdu6"),i=n("tjFV"),o=n("g8vO");t.exports=function(t){var e={position:"left",ticks:{callback:o.formatters.logarithmic}},n=r.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,r=n.data.datasets,i=t.isHorizontal();function o(e){return i?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var s=e.stacked;if(void 0===s&&a.each(r,function(t,e){if(!s){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&o(a)&&void 0!==a.stack&&(s=!0)}}),e.stacked||s){var u={};a.each(r,function(r,i){var s=n.getDatasetMeta(i),c=[s.type,void 0===e.stacked&&void 0===s.stack?i:"",s.stack].join(".");n.isDatasetVisible(i)&&o(s)&&(void 0===u[c]&&(u[c]=[]),a.each(r.data,function(e,n){var a=u[c],r=+t.getRightValue(e);isNaN(r)||s.data[n].hidden||r<0||(a[n]=a[n]||0,a[n]+=r)}))}),a.each(u,function(e){if(e.length>0){var n=a.min(e),r=a.max(e);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?r:Math.max(t.max,r)}})}else a.each(r,function(e,r){var i=n.getDatasetMeta(r);n.isDatasetVisible(r)&&o(i)&&a.each(e.data,function(e,n){var a=+t.getRightValue(e);isNaN(a)||i.data[n].hidden||a<0||(null===t.min?t.min=a:at.max&&(t.max=a),0!==a&&(null===t.minNotZero||a0?t.min:t.max<1?Math.pow(10,Math.floor(a.log10(t.max))):1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),r=t.ticks=function(t,e){var n,r,i=[],o=a.valueOrDefault,s=o(t.min,Math.pow(10,Math.floor(a.log10(e.min)))),u=Math.floor(a.log10(e.max)),c=Math.ceil(e.max/Math.pow(10,u));0===s?(n=Math.floor(a.log10(e.minNotZero)),r=Math.floor(e.minNotZero/Math.pow(10,n)),i.push(s),s=r*Math.pow(10,n)):(n=Math.floor(a.log10(s)),r=Math.floor(s/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{i.push(s),10==++r&&(r=1,l=++n>=0?1:l),s=Math.round(r*Math.pow(10,n)*l)/l}while(n=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":a<900?"\u0633\u06d5\u06be\u06d5\u0631":a<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":a<1230?"\u0686\u06c8\u0634":a<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return t+"-\u06be\u06d5\u067e\u062a\u06d5";default:return t}},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}()},YSsK:function(t,e,n){"use strict";var a=n("CDJp"),r=n("RDha"),i=n("tjFV"),o=n("g8vO");t.exports=function(t){var e={position:"left",ticks:{callback:o.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data.datasets,i=t.isHorizontal();function o(e){return i?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var s=e.stacked;if(void 0===s&&r.each(a,function(t,e){if(!s){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&o(a)&&void 0!==a.stack&&(s=!0)}}),e.stacked||s){var u={};r.each(a,function(a,i){var s=n.getDatasetMeta(i),c=[s.type,void 0===e.stacked&&void 0===s.stack?i:"",s.stack].join(".");void 0===u[c]&&(u[c]={positiveValues:[],negativeValues:[]});var l=u[c].positiveValues,d=u[c].negativeValues;n.isDatasetVisible(i)&&o(s)&&r.each(a.data,function(n,a){var r=+t.getRightValue(n);isNaN(r)||s.data[a].hidden||(l[a]=l[a]||0,d[a]=d[a]||0,e.relativePoints?l[a]=100:r<0?d[a]+=r:l[a]+=r)})}),r.each(u,function(e){var n=e.positiveValues.concat(e.negativeValues),a=r.min(n),i=r.max(n);t.min=null===t.min?a:Math.min(t.min,a),t.max=null===t.max?i:Math.max(t.max,i)})}else r.each(a,function(e,a){var i=n.getDatasetMeta(a);n.isDatasetVisible(a)&&o(i)&&r.each(e.data,function(e,n){var a=+t.getRightValue(e);isNaN(a)||i.data[n].hidden||(null===t.min?t.min=a:at.max&&(t.max=a))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.width/50));else{var n=r.valueOrDefault(e.fontSize,a.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.height/(2*n)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,n=e.start,a=+e.getRightValue(t),r=e.end-n;return e.isHorizontal()?e.left+e.width/r*(a-n):e.bottom-e.height/r*(a-n)},getValueForPixel:function(t){var e=this,n=e.isHorizontal();return e.start+(n?t-e.left:e.bottom-t)/(n?e.width:e.height)*(e.end-e.start)},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});i.registerScaleType("linear",n,e)}},YVFZ:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("5tze"),s=n("qwkt");n("czA5"),e.DataTableBodyCellComponent=function(){function t(t,e){this.cd=e,this.activate=new i.EventEmitter,this.treeAction=new i.EventEmitter,this.isFocused=!1,this.onCheckboxChangeFn=this.onCheckboxChange.bind(this),this.activateFn=this.activate.emit.bind(this.activate),this.cellContext={onCheckboxChangeFn:this.onCheckboxChangeFn,activateFn:this.activateFn,row:this.row,group:this.group,value:this.value,column:this.column,rowHeight:this.rowHeight,isSelected:this.isSelected,rowIndex:this.rowIndex,treeStatus:this.treeStatus,onTreeAction:this.onTreeAction.bind(this)},this._element=t.nativeElement}return Object.defineProperty(t.prototype,"group",{get:function(){return this._group},set:function(t){this._group=t,this.cellContext.group=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){this._rowHeight=t,this.cellContext.rowHeight=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this._isSelected},set:function(t){this._isSelected=t,this.cellContext.isSelected=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.cellContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.cellContext.rowIndex=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"row",{get:function(){return this._row},set:function(t){this._row=t,this.cellContext.row=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.calcSortDir=this.calcSortDir(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"treeStatus",{get:function(){return this._treeStatus},set:function(t){this._treeStatus="collapsed"!==t&&"expanded"!==t&&"loading"!==t&&"disabled"!==t?"collapsed":t,this.cellContext.treeStatus=this._treeStatus,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-body-cell";if(this.column.cellClass)if("string"==typeof this.column.cellClass)t+=" "+this.column.cellClass;else if("function"==typeof this.column.cellClass){var e=this.column.cellClass({row:this.row,group:this.group,column:this.column,value:this.value,rowHeight:this.rowHeight});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n]+(>|$)/g,""):t},t.prototype.onTreeAction=function(){this.treeAction.emit(this.row)},t.prototype.calcLeftMargin=function(t,e){return t.isTreeColumn?e.level*(null!=t.treeLevelIndent?t.treeLevelIndent:50):0},a([i.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"group",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowHeight",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"isSelected",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"row",null),a([i.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([i.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"treeStatus",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"treeAction",void 0),a([i.ViewChild("cellTemplate",{read:i.ViewContainerRef}),r("design:type",i.ViewContainerRef)],t.prototype,"cellTemplate",void 0),a([i.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([i.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([i.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([i.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([i.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"height",null),a([i.HostListener("focus"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onFocus",null),a([i.HostListener("blur"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onBlur",null),a([i.HostListener("click",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onClick",null),a([i.HostListener("dblclick",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onDblClick",null),a([i.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([i.Component({selector:"datatable-body-cell",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n \n \n \n \n \n \n\n \n \n \n \n
\n '})],t)}()},YcCt:function(t,e,n){"use strict";function a(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,n,r){n=n||"=";var i={};if("string"!=typeof t||0===t.length)return i;var o=/\+/g;t=t.split(e=e||"&");var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var u=t.length;s>0&&u>s&&(u=s);for(var c=0;c=0?(l=h.substr(0,g),d=h.substr(g+1)):(l=h,d=""),f=decodeURIComponent(l),p=decodeURIComponent(d),a(i,f)?Array.isArray(i[f])?i[f].push(p):i[f]=[i[f],p]:i[f]=p}return i}},YuTi:function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},Z21x:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("sne2");var a=function(){return function(t,e){var n=this;this.location=t,this.actionLabels=e,this.name=this.actionLabels.CANCEL,this.back=function(){return n.location.back()}}}()},Z4QM:function(t,e,n){!function(t){"use strict";var e=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],a=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];n("wd/R").defineLocale("sd",{months:e,monthsShort:e,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(t){return"\u0634\u0627\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}()},Z5tI:function(t,e,n){"use strict";var a=n("MkmW");e.subscribeToPromise=function(t){return function(e){return t.then(function(t){e.closed||(e.next(t),e.complete())},function(t){return e.error(t)}).then(null,a.hostReportError),e}}},ZAMP:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}()},ZANz:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),a._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index0?Math.min(o,a-n):o,n=a;return o}(n,c):-1,pixels:c,start:s,end:u,stackCount:a,scale:n}},calculateBarValuePixels:function(t,e){var n,a,r,i,o,s,u=this.chart,c=this.getMeta(),l=this.getValueScale(),d=u.data.datasets,f=l.getRightValue(d[t].data[e]),p=l.options.stacked,h=c.stack,g=0;if(p||void 0===p&&void 0!==h)for(n=0;n=0&&r>0)&&(g+=r));return i=l.getPixelForValue(g),{size:s=((o=l.getPixelForValue(g+f))-i)/2,base:i,head:o,center:o+s/2}},calculateBarIndexPixels:function(t,e,n){var a=n.scale.options,r="flex"===a.barThickness?function(t,e,n){var a=e.pixels,r=a[t],i=t>0?a[t-1]:null,o=tt.length)return null;if("full"===n.pathMatch&&(e.hasChildren()||a.length0?t[t.length-1]:null}function dt(t,e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n)}function ft(t){return Object(i["\u0275isObservable"])(t)?t:Object(i["\u0275isPromise"])(t)?Object(s.a)(Promise.resolve(t)):Object(o.a)(t)}function pt(t,e,n){return n?function(t,e){return ut(t,e)}(t.queryParams,e.queryParams)&&function t(e,n){if(!bt(e.segments,n.segments))return!1;if(e.numberOfChildren!==n.numberOfChildren)return!1;for(var a in n.children){if(!e.children[a])return!1;if(!t(e.children[a],n.children[a]))return!1}return!0}(t.root,e.root):function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(function(n){return e[n]===t[n]})}(t.queryParams,e.queryParams)&&function t(e,n){return function e(n,a,r){if(n.segments.length>r.length)return!!bt(o=n.segments.slice(0,r.length),r)&&!a.hasChildren();if(n.segments.length===r.length){if(!bt(n.segments,r))return!1;for(var i in a.children){if(!n.children[i])return!1;if(!t(n.children[i],a.children[i]))return!1}return!0}var o=r.slice(0,n.segments.length),s=r.slice(n.segments.length);return!!bt(n.segments,o)&&!!n.children[X]&&e(n.children[X],a,s)}(e,n,n.segments)}(t.root,e.root)}var ht=function(){function t(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}return Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=Q(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return _t.serialize(this)},t}(),gt=function(){function t(t,e){var n=this;this.segments=t,this.children=e,this.parent=null,dt(e,function(t,e){return t.parent=n})}return t.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(t.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Tt(this)},t}(),mt=function(){function t(t,e){this.path=t,this.parameters=e}return Object.defineProperty(t.prototype,"parameterMap",{get:function(){return this._parameterMap||(this._parameterMap=Q(this.parameters)),this._parameterMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return kt(this)},t}();function bt(t,e){return t.length===e.length&&t.every(function(t,n){return t.path===e[n].path})}function yt(t,e){var n=[];return dt(t.children,function(t,a){a===X&&(n=n.concat(e(t,a)))}),dt(t.children,function(t,a){a!==X&&(n=n.concat(e(t,a)))}),n}var vt=function(){return function(){}}(),xt=function(){function t(){}return t.prototype.parse=function(t){var e=new Dt(t);return new ht(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())},t.prototype.serialize=function(t){var e,n;return"/"+function t(e,n){if(!e.hasChildren())return Tt(e);if(n){var a=e.children[X]?t(e.children[X],!1):"",r=[];return dt(e.children,function(e,n){n!==X&&r.push(n+":"+t(e,!1))}),r.length>0?a+"("+r.join("//")+")":a}var i=yt(e,function(n,a){return a===X?[t(e.children[X],!1)]:[a+":"+t(n,!1)]});return Tt(e)+"/("+i.join("//")+")"}(t.root,!0)+(e=t.queryParams,(n=Object.keys(e).map(function(t){var n=e[t];return Array.isArray(n)?n.map(function(e){return St(t)+"="+St(e)}).join("&"):St(t)+"="+St(n)})).length?"?"+n.join("&"):"")+("string"==typeof t.fragment?"#"+encodeURI(t.fragment):"")},t}(),_t=new xt;function Tt(t){return t.segments.map(function(t){return kt(t)}).join("/")}function wt(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function St(t){return wt(t).replace(/%3B/gi,";")}function Ot(t){return wt(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function It(t){return decodeURIComponent(t)}function Ct(t){return It(t.replace(/\+/g,"%20"))}function kt(t){return""+Ot(t.path)+(e=t.parameters,Object.keys(e).map(function(t){return";"+Ot(t)+"="+Ot(e[t])}).join(""));var e}var Nt=/^[^\/()?;=#]+/;function Rt(t){var e=t.match(Nt);return e?e[0]:""}var At=/^[^=?&#]+/,Et=/^[^?&#]+/,Dt=function(){function t(t){this.url=t,this.remaining=t}return t.prototype.parseRootSegment=function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new gt([],{}):new gt([],this.parseChildren())},t.prototype.parseQueryParams=function(){var t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t},t.prototype.parseFragment=function(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null},t.prototype.parseChildren=function(){if(""===this.remaining)return{};this.consumeOptional("/");var t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());var e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n[X]=new gt(t,e)),n},t.prototype.parseSegment=function(){var t=Rt(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");return this.capture(t),new mt(It(t),this.parseMatrixParams())},t.prototype.parseMatrixParams=function(){for(var t={};this.consumeOptional(";");)this.parseParam(t);return t},t.prototype.parseParam=function(t){var e=Rt(this.remaining);if(e){this.capture(e);var n="";if(this.consumeOptional("=")){var a=Rt(this.remaining);a&&this.capture(n=a)}t[It(e)]=It(n)}},t.prototype.parseQueryParam=function(t){var e,n=(e=this.remaining.match(At))?e[0]:"";if(n){this.capture(n);var a="";if(this.consumeOptional("=")){var r=function(t){var e=t.match(Et);return e?e[0]:""}(this.remaining);r&&this.capture(a=r)}var i=Ct(n),o=Ct(a);if(t.hasOwnProperty(i)){var s=t[i];Array.isArray(s)||(t[i]=s=[s]),s.push(o)}else t[i]=o}},t.prototype.parseParens=function(t){var e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var n=Rt(this.remaining),a=this.remaining[n.length];if("/"!==a&&")"!==a&&";"!==a)throw new Error("Cannot parse url '"+this.url+"'");var r=void 0;n.indexOf(":")>-1?(r=n.substr(0,n.indexOf(":")),this.capture(r),this.capture(":")):t&&(r=X);var i=this.parseChildren();e[r]=1===Object.keys(i).length?i[X]:new gt([],i),this.consumeOptional("//")}return e},t.prototype.peekStartsWith=function(t){return this.remaining.startsWith(t)},t.prototype.consumeOptional=function(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)},t.prototype.capture=function(t){if(!this.consumeOptional(t))throw new Error('Expected "'+t+'".')},t}(),Lt=function(){function t(t){this._root=t}return Object.defineProperty(t.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),t.prototype.parent=function(t){var e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null},t.prototype.children=function(t){var e=Pt(t,this._root);return e?e.children.map(function(t){return t.value}):[]},t.prototype.firstChild=function(t){var e=Pt(t,this._root);return e&&e.children.length>0?e.children[0].value:null},t.prototype.siblings=function(t){var e=Mt(t,this._root);return e.length<2?[]:e[e.length-2].children.map(function(t){return t.value}).filter(function(e){return e!==t})},t.prototype.pathFromRoot=function(t){return Mt(t,this._root).map(function(t){return t.value})},t}();function Pt(t,e){var n,r;if(t===e.value)return e;try{for(var i=Object(a.__values)(e.children),o=i.next();!o.done;o=i.next()){var s=Pt(t,o.value);if(s)return s}}catch(u){n={error:u}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return null}function Mt(t,e){var n,r;if(t===e.value)return[e];try{for(var i=Object(a.__values)(e.children),o=i.next();!o.done;o=i.next()){var s=Mt(t,o.value);if(s.length)return s.unshift(e),s}}catch(u){n={error:u}}finally{try{o&&!o.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return[]}var qt=function(){function t(t,e){this.value=t,this.children=e}return t.prototype.toString=function(){return"TreeNode("+this.value+")"},t}();function jt(t){var e={};return t&&t.children.forEach(function(t){return e[t.value.outlet]=t}),e}var Ft=function(t){function e(e,n){var a=t.call(this,e)||this;return a.snapshot=n,Bt(a,e),a}return Object(a.__extends)(e,t),e.prototype.toString=function(){return this.snapshot.toString()},e}(Lt);function zt(t,e){var n=function(t,e){var n=new Vt([],{},{},"",{},X,e,null,t.root,-1,{});return new Ht("",new qt(n,[]))}(t,e),a=new u.a([new mt("",{})]),r=new u.a({}),i=new u.a({}),o=new u.a({}),s=new u.a(""),c=new Gt(a,r,o,s,i,X,e,n.root);return c.snapshot=n.root,new Ft(new qt(c,[]),n)}var Gt=function(){function t(t,e,n,a,r,i,o,s){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=i,this.component=o,this._futureSnapshot=s}return Object.defineProperty(t.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=this.params.pipe(Object(g.a)(function(t){return Q(t)}))),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(g.a)(function(t){return Q(t)}))),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},t}();function Yt(t,e){void 0===e&&(e="emptyOnly");var n=t.pathFromRoot,r=0;if("always"!==e)for(r=n.length-1;r>=1;){var i=n[r],o=n[r-1];if(i.routeConfig&&""===i.routeConfig.path)r--;else{if(o.component)break;r--}}return function(t){return t.reduce(function(t,e){return{params:Object(a.__assign)({},t.params,e.params),data:Object(a.__assign)({},t.data,e.data),resolve:Object(a.__assign)({},t.resolve,e._resolvedData)}},{params:{},data:{},resolve:{}})}(n.slice(r))}var Vt=function(){function t(t,e,n,a,r,i,o,s,u,c,l){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=i,this.component=o,this.routeConfig=s,this._urlSegment=u,this._lastPathIndex=c,this._resolve=l}return Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=Q(this.params)),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=Q(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return"Route(url:'"+this.url.map(function(t){return t.toString()}).join("/")+"', path:'"+(this.routeConfig?this.routeConfig.path:"")+"')"},t}(),Ht=function(t){function e(e,n){var a=t.call(this,n)||this;return a.url=e,Bt(a,n),a}return Object(a.__extends)(e,t),e.prototype.toString=function(){return Ut(this._root)},e}(Lt);function Bt(t,e){e.value._routerState=t,e.children.forEach(function(e){return Bt(t,e)})}function Ut(t){var e=t.children.length>0?" { "+t.children.map(Ut).join(", ")+" } ":"";return""+t.value+e}function Wt(t){if(t.snapshot){var e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,ut(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),ut(e.params,n.params)||t.params.next(n.params),function(t,e){if(t.length!==e.length)return!1;for(var n=0;n0&&$t(n[0]))throw new Error("Root segment cannot have matrix parameters");var a=n.find(function(t){return"object"==typeof t&&null!=t&&t.outlets});if(a&&a!==lt(n))throw new Error("{outlets:{}} has to be the last command")}return t.prototype.toRoot=function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]},t}(),Jt=function(){return function(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}}();function Qt(t){return"object"==typeof t&&null!=t&&t.outlets?t.outlets[X]:""+t}function te(t,e,n){if(t||(t=new gt([],{})),0===t.segments.length&&t.hasChildren())return ee(t,e,n);var a=function(t,e,n){for(var a=0,r=e,i={match:!1,pathIndex:0,commandIndex:0};r=n.length)return i;var o=t.segments[r],s=Qt(n[a]),u=a0&&void 0===s)break;if(s&&u&&"object"==typeof u&&void 0===u.outlets){if(!ie(s,u,o))return i;a+=2}else{if(!ie(s,{},o))return i;a++}r++}return{match:!0,pathIndex:r,commandIndex:a}}(t,e,n),r=n.slice(a.commandIndex);if(a.match&&a.pathIndex0?new gt([],((a={})[X]=t,a)):t;return new ht(r,e,n)},t.prototype.expandSegmentGroup=function(t,e,n,a){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(t,e,n).pipe(Object(g.a)(function(t){return new gt([],t)})):this.expandSegment(t,n,e,n.segments,a,!0)},t.prototype.expandChildren=function(t,e,n){var a=this;return function(n,r){if(0===Object.keys(n).length)return Object(o.a)({});var i=[],s=[],u={};return dt(n,function(n,r){var o,c,l=(o=r,c=n,a.expandSegmentGroup(t,e,c,o)).pipe(Object(g.a)(function(t){return u[r]=t}));r===X?i.push(l):s.push(l)}),o.a.apply(null,i.concat(s)).pipe(Object(m.a)(),Object(b.a)(),Object(g.a)(function(){return u}))}(n.children)},t.prototype.expandSegment=function(t,e,n,r,i,s){var u=this;return o.a.apply(void 0,Object(a.__spread)(n)).pipe(Object(g.a)(function(a){return u.expandSegmentAgainstRoute(t,e,n,a,r,i,s).pipe(Object(y.a)(function(t){if(t instanceof le)return Object(o.a)(null);throw t}))}),Object(m.a)(),Object(v.a)(function(t){return!!t}),Object(y.a)(function(t,n){if(t instanceof l.a||"EmptyError"===t.name){if(u.noLeftoversInUrl(e,r,i))return Object(o.a)(new gt([],{}));throw new le(e)}throw t}))},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.expandSegmentAgainstRoute=function(t,e,n,a,r,i,o){return ve(a)!==i?fe(e):void 0===a.redirectTo?this.matchSegmentAgainstRoute(t,e,a,r):o&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i):fe(e)},t.prototype.expandSegmentAgainstRouteUsingRedirect=function(t,e,n,a,r,i){return"**"===a.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,a,i):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i)},t.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(t,e,n,a){var r=this,i=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?pe(i):this.lineralizeSegments(n,i).pipe(Object(x.a)(function(n){var i=new gt(n,{});return r.expandSegment(t,i,e,n,a,!1)}))},t.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(t,e,n,a,r,i){var o=this,s=me(e,a,r),u=s.consumedSegments,c=s.lastChild,l=s.positionalParamSegments;if(!s.matched)return fe(e);var d=this.applyRedirectCommands(u,a.redirectTo,l);return a.redirectTo.startsWith("/")?pe(d):this.lineralizeSegments(a,d).pipe(Object(x.a)(function(a){return o.expandSegment(t,e,n,a.concat(r.slice(c)),i,!1)}))},t.prototype.matchSegmentAgainstRoute=function(t,e,n,r){var i=this;if("**"===n.path)return n.loadChildren?this.configLoader.load(t.injector,n).pipe(Object(g.a)(function(t){return n._loadedConfig=t,new gt(r,{})})):Object(o.a)(new gt(r,{}));var s=me(e,n,r),u=s.consumedSegments,c=s.lastChild;if(!s.matched)return fe(e);var l=r.slice(c);return this.getChildConfig(t,n,r).pipe(Object(x.a)(function(t){var n=t.module,r=t.routes,s=function(t,e,n,r){return n.length>0&&function(t,e,n){return r.some(function(n){return ye(t,e,n)&&ve(n)!==X})}(t,n)?{segmentGroup:be(new gt(e,function(t,e){var n,r,i={};i[X]=e;try{for(var o=Object(a.__values)(t),s=o.next();!s.done;s=o.next()){var u=s.value;""===u.path&&ve(u)!==X&&(i[ve(u)]=new gt([],{}))}}catch(c){n={error:c}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return i}(r,new gt(n,t.children)))),slicedSegments:[]}:0===n.length&&function(t,e,n){return r.some(function(n){return ye(t,e,n)})}(t,n)?{segmentGroup:be(new gt(t.segments,function(t,e,n,r){var i,o,s={};try{for(var u=Object(a.__values)(n),c=u.next();!c.done;c=u.next()){var l=c.value;ye(t,e,l)&&!r[ve(l)]&&(s[ve(l)]=new gt([],{}))}}catch(d){i={error:d}}finally{try{c&&!c.done&&(o=u.return)&&o.call(u)}finally{if(i)throw i.error}}return Object(a.__assign)({},r,s)}(t,n,r,t.children))),slicedSegments:n}:{segmentGroup:t,slicedSegments:n}}(e,u,l,r),c=s.segmentGroup,d=s.slicedSegments;return 0===d.length&&c.hasChildren()?i.expandChildren(n,r,c).pipe(Object(g.a)(function(t){return new gt(u,t)})):0===r.length&&0===d.length?Object(o.a)(new gt(u,{})):i.expandSegment(n,c,r,d,X,!0).pipe(Object(g.a)(function(t){return new gt(u.concat(t.segments),t.children)}))}))},t.prototype.getChildConfig=function(t,e,n){var a=this;return e.children?Object(o.a)(new at(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?Object(o.a)(e._loadedConfig):function(t,e,n){var a=e.canLoad;return a&&0!==a.length?Object(s.a)(a).pipe(Object(g.a)(function(a){var r,i=t.get(a);if(function(t){return t&&ue(t.canLoad)}(i))r=i.canLoad(e,n);else{if(!ue(i))throw new Error("Invalid CanLoad guard");r=i(e,n)}return ft(r)})).pipe(Object(m.a)(),Object(_.a)(function(t){return!0===t})):Object(o.a)(!0)}(t.injector,e,n).pipe(Object(x.a)(function(n){return n?a.configLoader.load(t.injector,e).pipe(Object(g.a)(function(t){return e._loadedConfig=t,t})):function(t){return new c.a(function(e){return e.error(et("Cannot load children because the guard of the route \"path: '"+t.path+"'\" returned false"))})}(e)})):Object(o.a)(new at([],t))},t.prototype.lineralizeSegments=function(t,e){for(var n=[],a=e.root;;){if(n=n.concat(a.segments),0===a.numberOfChildren)return Object(o.a)(n);if(a.numberOfChildren>1||!a.children[X])return he(t.redirectTo);a=a.children[X]}},t.prototype.applyRedirectCommands=function(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)},t.prototype.applyRedirectCreatreUrlTree=function(t,e,n,a){var r=this.createSegmentGroup(t,e.root,n,a);return new ht(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)},t.prototype.createQueryParams=function(t,e){var n={};return dt(t,function(t,a){if("string"==typeof t&&t.startsWith(":")){var r=t.substring(1);n[a]=e[r]}else n[a]=t}),n},t.prototype.createSegmentGroup=function(t,e,n,a){var r=this,i=this.createSegments(t,e.segments,n,a),o={};return dt(e.children,function(e,i){o[i]=r.createSegmentGroup(t,e,n,a)}),new gt(i,o)},t.prototype.createSegments=function(t,e,n,a){var r=this;return e.map(function(e){return e.path.startsWith(":")?r.findPosParam(t,e,a):r.findOrReturn(e,n)})},t.prototype.findPosParam=function(t,e,n){var a=n[e.path.substring(1)];if(!a)throw new Error("Cannot redirect to '"+t+"'. Cannot find '"+e.path+"'.");return a},t.prototype.findOrReturn=function(t,e){var n,r,i=0;try{for(var o=Object(a.__values)(e),s=o.next();!s.done;s=o.next()){var u=s.value;if(u.path===t.path)return e.splice(i),u;i++}}catch(c){n={error:c}}finally{try{s&&!s.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return t},t}();function me(t,e,n){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var a=(e.matcher||nt)(n,t,e);return a?{matched:!0,consumedSegments:a.consumed,lastChild:a.consumed.length,positionalParamSegments:a.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function be(t){if(1===t.numberOfChildren&&t.children[X]){var e=t.children[X];return new gt(t.segments.concat(e.segments),e.children)}return t}function ye(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0!==n.redirectTo}function ve(t){return t.outlet||X}var xe=function(){return function(t){this.path=t,this.route=this.path[this.path.length-1]}}(),_e=function(){return function(t,e){this.component=t,this.route=e}}();function Te(t,e,n){var a=function(t){if(!t)return null;for(var e=t.parent;e;e=e.parent){var n=e.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(e);return(a?a.module.injector:n).get(t)}function we(t,e,n,a,r){void 0===r&&(r={canDeactivateChecks:[],canActivateChecks:[]});var i=jt(e);return t.children.forEach(function(t){!function(t,e,n,a,r){void 0===r&&(r={canDeactivateChecks:[],canActivateChecks:[]});var i=t.value,o=e?e.value:null,s=n?n.getContext(t.value.outlet):null;if(o&&i.routeConfig===o.routeConfig){var u=function(t,e,n){if("function"==typeof n)return n(t,e);switch(n){case"pathParamsChange":return!bt(t.url,e.url);case"pathParamsOrQueryParamsChange":return!bt(t.url,e.url)||!ut(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Kt(t,e)||!ut(t.queryParams,e.queryParams);case"paramsChange":default:return!Kt(t,e)}}(o,i,i.routeConfig.runGuardsAndResolvers);u?r.canActivateChecks.push(new xe(a)):(i.data=o.data,i._resolvedData=o._resolvedData),we(t,e,i.component?s?s.children:null:n,a,r),u&&r.canDeactivateChecks.push(new _e(s&&s.outlet&&s.outlet.component||null,o))}else o&&Se(e,s,r),r.canActivateChecks.push(new xe(a)),we(t,null,i.component?s?s.children:null:n,a,r)}(t,i[t.value.outlet],n,a.concat([t.value]),r),delete i[t.value.outlet]}),dt(i,function(t,e){return Se(t,n.getContext(e),r)}),r}function Se(t,e,n){var a=jt(t),r=t.value;dt(a,function(t,a){Se(t,r.component?e?e.children.getContext(a):null:e,n)}),n.canDeactivateChecks.push(new _e(r.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,r))}var Oe=Symbol("INITIAL_VALUE");function Ie(){return Object(T.a)(function(t){return d.b.apply(void 0,Object(a.__spread)(t.map(function(t){return t.pipe(Object(w.a)(1),Object(S.a)(Oe))}))).pipe(Object(O.a)(function(t,e){var n=!1;return e.reduce(function(t,a,r){if(t!==Oe)return t;if(a===Oe&&(n=!0),!n){if(!1===a)return a;if(r===e.length-1||ce(a))return a}return t},t)},Oe),Object(I.a)(function(t){return t!==Oe}),Object(g.a)(function(t){return ce(t)?t:!0===t}),Object(w.a)(1))})}function Ce(t,e){return null!==t&&e&&e(new W(t)),Object(o.a)(!0)}function ke(t,e){return null!==t&&e&&e(new B(t)),Object(o.a)(!0)}function Ne(t,e,n){var a=e.routeConfig?e.routeConfig.canActivate:null;if(!a||0===a.length)return Object(o.a)(!0);var r=a.map(function(a){return Object(f.a)(function(){var r,i=Te(a,e,n);if(function(t){return t&&ue(t.canActivate)}(i))r=ft(i.canActivate(e,t));else{if(!ue(i))throw new Error("Invalid CanActivate guard");r=ft(i(e,t))}return r.pipe(Object(v.a)())})});return Object(o.a)(r).pipe(Ie())}function Re(t,e,n){var a=e[e.length-1],r=e.slice(0,e.length-1).reverse().map(function(t){return function(t){var e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)}).filter(function(t){return null!==t}).map(function(e){return Object(f.a)(function(){var r=e.guards.map(function(r){var i,o=Te(r,e.node,n);if(function(t){return t&&ue(t.canActivateChild)}(o))i=ft(o.canActivateChild(a,t));else{if(!ue(o))throw new Error("Invalid CanActivateChild guard");i=ft(o(a,t))}return i.pipe(Object(v.a)())});return Object(o.a)(r).pipe(Ie())})});return Object(o.a)(r).pipe(Ie())}var Ae=function(){return function(){}}(),Ee=function(){function t(t,e,n,a,r,i){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=a,this.paramsInheritanceStrategy=r,this.relativeLinkResolution=i}return t.prototype.recognize=function(){try{var t=Pe(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,X),n=new Vt([],Object.freeze({}),Object.freeze(Object(a.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,{},X,this.rootComponentType,null,this.urlTree.root,-1,{}),r=new qt(n,e),i=new Ht(this.url,r);return this.inheritParamsAndData(i._root),Object(o.a)(i)}catch(s){return new c.a(function(t){return t.error(s)})}},t.prototype.inheritParamsAndData=function(t){var e=this,n=t.value,a=Yt(n,this.paramsInheritanceStrategy);n.params=Object.freeze(a.params),n.data=Object.freeze(a.data),t.children.forEach(function(t){return e.inheritParamsAndData(t)})},t.prototype.processSegmentGroup=function(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)},t.prototype.processChildren=function(t,e){var n,a=this,r=yt(e,function(e,n){return a.processSegmentGroup(t,e,n)});return n={},r.forEach(function(t){var e=n[t.value.outlet];if(e){var a=e.url.map(function(t){return t.toString()}).join("/"),r=t.value.url.map(function(t){return t.toString()}).join("/");throw new Error("Two segments cannot have the same outlet name: '"+a+"' and '"+r+"'.")}n[t.value.outlet]=t.value}),r.sort(function(t,e){return t.value.outlet===X?-1:e.value.outlet===X?1:t.value.outlet.localeCompare(e.value.outlet)}),r},t.prototype.processSegment=function(t,e,n,r){var i,o;try{for(var s=Object(a.__values)(t),u=s.next();!u.done;u=s.next()){var c=u.value;try{return this.processSegmentAgainstRoute(c,e,n,r)}catch(l){if(!(l instanceof Ae))throw l}}}catch(d){i={error:d}}finally{try{u&&!u.done&&(o=s.return)&&o.call(s)}finally{if(i)throw i.error}}if(this.noLeftoversInUrl(e,n,r))return[];throw new Ae},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.processSegmentAgainstRoute=function(t,e,n,r){if(t.redirectTo)throw new Ae;if((t.outlet||X)!==r)throw new Ae;var i,o=[],s=[];if("**"===t.path){var u=n.length>0?lt(n).parameters:{};i=new Vt(n,u,Object.freeze(Object(a.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,je(t),r,t.component,t,De(e),Le(e)+n.length,Fe(t))}else{var c=function(t,e,n){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new Ae;return{consumedSegments:[],lastChild:0,parameters:{}}}var r=(e.matcher||nt)(n,t,e);if(!r)throw new Ae;var i={};dt(r.posParams,function(t,e){i[e]=t.path});var o=r.consumed.length>0?Object(a.__assign)({},i,r.consumed[r.consumed.length-1].parameters):i;return{consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:o}}(e,t,n);o=c.consumedSegments,s=n.slice(c.lastChild),i=new Vt(o,c.parameters,Object.freeze(Object(a.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,je(t),r,t.component,t,De(e),Le(e)+o.length,Fe(t))}var l=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),d=Pe(e,o,s,l,this.relativeLinkResolution),f=d.segmentGroup,p=d.slicedSegments;if(0===p.length&&f.hasChildren()){var h=this.processChildren(l,f);return[new qt(i,h)]}if(0===l.length&&0===p.length)return[new qt(i,[])];var g=this.processSegment(l,f,p,X);return[new qt(i,g)]},t}();function De(t){for(var e=t;e._sourceSegment;)e=e._sourceSegment;return e}function Le(t){for(var e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;e._sourceSegment;)n+=(e=e._sourceSegment)._segmentIndexShift?e._segmentIndexShift:0;return n-1}function Pe(t,e,n,r,i){if(n.length>0&&function(t,e,n){return r.some(function(n){return Me(t,e,n)&&qe(n)!==X})}(t,n)){var o=new gt(e,function(t,e,n,r){var i,o,s={};s[X]=r,r._sourceSegment=t,r._segmentIndexShift=e.length;try{for(var u=Object(a.__values)(n),c=u.next();!c.done;c=u.next()){var l=c.value;if(""===l.path&&qe(l)!==X){var d=new gt([],{});d._sourceSegment=t,d._segmentIndexShift=e.length,s[qe(l)]=d}}}catch(f){i={error:f}}finally{try{c&&!c.done&&(o=u.return)&&o.call(u)}finally{if(i)throw i.error}}return s}(t,e,r,new gt(n,t.children)));return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:[]}}if(0===n.length&&function(t,e,n){return r.some(function(n){return Me(t,e,n)})}(t,n)){var s=new gt(t.segments,function(t,e,n,r,i,o){var s,u,c={};try{for(var l=Object(a.__values)(r),d=l.next();!d.done;d=l.next()){var f=d.value;if(Me(t,n,f)&&!i[qe(f)]){var p=new gt([],{});p._sourceSegment=t,p._segmentIndexShift="legacy"===o?t.segments.length:e.length,c[qe(f)]=p}}}catch(h){s={error:h}}finally{try{d&&!d.done&&(u=l.return)&&u.call(l)}finally{if(s)throw s.error}}return Object(a.__assign)({},i,c)}(t,e,n,r,t.children,i));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:n}}var u=new gt(t.segments,t.children);return u._sourceSegment=t,u._segmentIndexShift=e.length,{segmentGroup:u,slicedSegments:n}}function Me(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0===n.redirectTo}function qe(t){return t.outlet||X}function je(t){return t.data||{}}function Fe(t){return t.resolve||{}}function ze(t,e,n,a){var r=Te(t,e,a);return ft(r.resolve?r.resolve(e,n):r(e,n))}function Ge(t){return function(e){return e.pipe(Object(T.a)(function(e){var n=t(e);return n?Object(s.a)(n).pipe(Object(g.a)(function(){return e})):Object(s.a)([e])}))}}var Ye=function(){return function(){}}(),Ve=function(){function t(){}return t.prototype.shouldDetach=function(t){return!1},t.prototype.store=function(t,e){},t.prototype.shouldAttach=function(t){return!1},t.prototype.retrieve=function(t){return null},t.prototype.shouldReuseRoute=function(t,e){return t.routeConfig===e.routeConfig},t}(),He=new i.InjectionToken("ROUTES"),Be=function(){function t(t,e,n,a){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=a}return t.prototype.load=function(t,e){var n=this;return this.onLoadStartListener&&this.onLoadStartListener(e),this.loadModuleFactory(e.loadChildren).pipe(Object(g.a)(function(a){n.onLoadEndListener&&n.onLoadEndListener(e);var r=a.create(t);return new at(ct(r.injector.get(He)).map(st),r)}))},t.prototype.loadModuleFactory=function(t){var e=this;return"string"==typeof t?Object(s.a)(this.loader.load(t)):ft(t()).pipe(Object(x.a)(function(t){return t instanceof i.NgModuleFactory?Object(o.a)(t):Object(s.a)(e.compiler.compileModuleAsync(t))}))},t}(),Ue=function(){return function(){}}(),We=function(){function t(){}return t.prototype.shouldProcessUrl=function(t){return!0},t.prototype.extract=function(t){return t},t.prototype.merge=function(t,e){return t},t}();function Ke(t){throw t}function $e(t,e,n){return e.parse("/")}function Ze(t,e){return Object(o.a)(null)}var Xe=function(){function t(t,e,n,a,r,o,s,c){var l=this;this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=n,this.location=a,this.config=c,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new p.a,this.errorHandler=Ke,this.malformedUriErrorHandler=$e,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:Ze,afterPreactivation:Ze},this.urlHandlingStrategy=new We,this.routeReuseStrategy=new Ve,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="legacy",this.ngModule=r.get(i.NgModuleRef),this.console=r.get(i["\u0275Console"]);var d=r.get(i.NgZone);this.isNgZoneEnabled=d instanceof i.NgZone,this.resetConfig(c),this.currentUrlTree=new ht(new gt([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Be(o,s,function(t){return l.triggerEvent(new V(t))},function(t){return l.triggerEvent(new H(t))}),this.routerState=zt(this.currentUrlTree,this.rootComponentType),this.transitions=new u.a({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}return t.prototype.setupNavigations=function(t){var e=this,n=this.events;return t.pipe(Object(I.a)(function(t){return 0!==t.id}),Object(g.a)(function(t){return Object(a.__assign)({},t,{extractedUrl:e.urlHandlingStrategy.extract(t.rawUrl)})}),Object(N.a)(function(t){e.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:e.lastSuccessfulNavigation?Object(a.__assign)({},e.lastSuccessfulNavigation,{previousNavigation:null}):null}}),Object(T.a)(function(t){var r,i,c,l=!1,d=!1;return Object(o.a)(t).pipe(Object(T.a)(function(t){var r,i,s,u,c=!e.navigated||t.extractedUrl.toString()!==e.browserUrlTree.toString();if(("reload"===e.onSameUrlNavigation||c)&&e.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return Object(o.a)(t).pipe(Object(T.a)(function(t){var a=e.transitions.getValue();return n.next(new L(t.id,e.serializeUrl(t.extractedUrl),t.source,t.restoredState)),a!==e.transitions.getValue()?h.a:[t]}),Object(T.a)(function(t){return Promise.resolve(t)}),(r=e.ngModule.injector,i=e.configLoader,s=e.urlSerializer,u=e.config,function(t){return t.pipe(Object(T.a)(function(t){return function(e,n,a,r,i){return new ge(e,n,a,t.extractedUrl,i).apply()}(r,i,s,0,u).pipe(Object(g.a)(function(e){return Object(a.__assign)({},t,{urlAfterRedirects:e})}))}))}),Object(N.a)(function(t){e.currentNavigation=Object(a.__assign)({},e.currentNavigation,{finalUrl:t.urlAfterRedirects})}),function(t,n,r,i,o){return function(r){return r.pipe(Object(x.a)(function(r){return function(t,e,n,a,r,i){return void 0===r&&(r="emptyOnly"),void 0===i&&(i="legacy"),new Ee(t,e,n,a,r,i).recognize()}(t,n,r.urlAfterRedirects,(s=r.urlAfterRedirects,e.serializeUrl(s)),i,o).pipe(Object(g.a)(function(t){return Object(a.__assign)({},r,{targetSnapshot:t})}));var s}))}}(e.rootComponentType,e.config,0,e.paramsInheritanceStrategy,e.relativeLinkResolution),Object(N.a)(function(t){"eager"===e.urlUpdateStrategy&&(t.extras.skipLocationChange||e.setBrowserUrl(t.urlAfterRedirects,!!t.extras.replaceUrl,t.id),e.browserUrlTree=t.urlAfterRedirects)}),Object(N.a)(function(t){var a=new j(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);n.next(a)}));if(c&&e.rawUrlTree&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){var l=t.extractedUrl,d=t.source,f=t.restoredState,p=t.extras,m=new L(t.id,e.serializeUrl(l),d,f);n.next(m);var b=zt(l,e.rootComponentType).snapshot;return Object(o.a)(Object(a.__assign)({},t,{targetSnapshot:b,urlAfterRedirects:l,extras:Object(a.__assign)({},p,{skipLocationChange:!1,replaceUrl:!1})}))}return e.rawUrlTree=t.rawUrl,t.resolve(null),h.a}),Ge(function(t){var n=t.extras;return e.hooks.beforePreactivation(t.targetSnapshot,{navigationId:t.id,appliedUrlTree:t.extractedUrl,rawUrlTree:t.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),Object(N.a)(function(t){var n=new F(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}),Object(g.a)(function(t){return Object(a.__assign)({},t,{guards:(n=t.targetSnapshot,r=t.currentSnapshot,i=e.rootContexts,o=n._root,we(o,r?r._root:null,i,[o.value]))});var n,r,i,o}),function(t,e){return function(n){return n.pipe(Object(x.a)(function(n){var r=n.targetSnapshot,i=n.currentSnapshot,u=n.guards,c=u.canActivateChecks,l=u.canDeactivateChecks;return 0===l.length&&0===c.length?Object(o.a)(Object(a.__assign)({},n,{guardsResult:!0})):function(t,e,n,a){return Object(s.a)(t).pipe(Object(x.a)(function(t){return function(t,e,n,a,r){var i=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!i||0===i.length)return Object(o.a)(!0);var s=i.map(function(i){var o,s=Te(i,e,r);if(function(t){return t&&ue(t.canDeactivate)}(s))o=ft(s.canDeactivate(t,e,n,a));else{if(!ue(s))throw new Error("Invalid CanDeactivate guard");o=ft(s(t,e,n,a))}return o.pipe(Object(v.a)())});return Object(o.a)(s).pipe(Ie())}(t.component,t.route,n,e,a)}),Object(v.a)(function(t){return!0!==t},!0))}(l,r,i,t).pipe(Object(x.a)(function(n){return n&&"boolean"==typeof n?function(t,e,n,a){return Object(s.a)(e).pipe(Object(C.a)(function(e){return Object(s.a)([ke(e.route.parent,a),Ce(e.route,a),Re(t,e.path,n),Ne(t,e.route,n)]).pipe(Object(m.a)(),Object(v.a)(function(t){return!0!==t},!0))}),Object(v.a)(function(t){return!0!==t},!0))}(r,c,t,e):Object(o.a)(n)}),Object(g.a)(function(t){return Object(a.__assign)({},n,{guardsResult:t})}))}))}}(e.ngModule.injector,function(t){return e.triggerEvent(t)}),Object(N.a)(function(t){if(ce(t.guardsResult)){var n=et('Redirecting to "'+e.serializeUrl(t.guardsResult)+'"');throw n.url=t.guardsResult,n}}),Object(N.a)(function(t){var n=new z(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);e.triggerEvent(n)}),Object(I.a)(function(t){if(!t.guardsResult){e.resetUrlToCurrentUrlTree();var a=new M(t.id,e.serializeUrl(t.extractedUrl),"");return n.next(a),t.resolve(!1),!1}return!0}),Ge(function(t){if(t.guards.canActivateChecks.length)return Object(o.a)(t).pipe(Object(N.a)(function(t){var n=new G(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}),(n=e.paramsInheritanceStrategy,r=e.ngModule.injector,function(t){return t.pipe(Object(x.a)(function(t){var e=t.targetSnapshot,i=t.guards.canActivateChecks;return i.length?Object(s.a)(i).pipe(Object(C.a)(function(t){return function(t,n,r,i){return function(t,e,n,a){var r=Object.keys(t);if(0===r.length)return Object(o.a)({});if(1===r.length){var i=r[0];return ze(t[i],e,n,a).pipe(Object(g.a)(function(t){var e;return(e={})[i]=t,e}))}var u={};return Object(s.a)(r).pipe(Object(x.a)(function(r){return ze(t[r],e,n,a).pipe(Object(g.a)(function(t){return u[r]=t,t}))})).pipe(Object(b.a)(),Object(g.a)(function(){return u}))}(t._resolve,t,e,i).pipe(Object(g.a)(function(e){return t._resolvedData=e,t.data=Object(a.__assign)({},t.data,Yt(t,r).resolve),null}))}(t.route,0,n,r)}),Object(k.a)(function(t,e){return t}),Object(g.a)(function(e){return t})):Object(o.a)(t)}))}),Object(N.a)(function(t){var n=new Y(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}));var n,r}),Ge(function(t){var n=t.extras;return e.hooks.afterPreactivation(t.targetSnapshot,{navigationId:t.id,appliedUrlTree:t.extractedUrl,rawUrlTree:t.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),Object(g.a)(function(t){var n,r,i,o=(i=function t(e,n,r){if(r&&e.shouldReuseRoute(n.value,r.value.snapshot)){(l=r.value)._futureSnapshot=n.value;var i=function(e,n,r){return n.children.map(function(n){var i,o;try{for(var s=Object(a.__values)(r.children),u=s.next();!u.done;u=s.next()){var c=u.value;if(e.shouldReuseRoute(c.value.snapshot,n.value))return t(e,n,c)}}catch(l){i={error:l}}finally{try{u&&!u.done&&(o=s.return)&&o.call(s)}finally{if(i)throw i.error}}return t(e,n)})}(e,n,r);return new qt(l,i)}var o=e.retrieve(n.value);if(o){var s=o.route;return function t(e,n){if(e.value.routeConfig!==n.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(e.children.length!==n.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");n.value._futureSnapshot=e.value;for(var a=0;as;){if(u-=s,!(o=o.parent))throw new Error("Invalid number of '../'");s=o.segments.length}return new Jt(o,!1,s-u)}()}(o,0,t),u=s.processChildren?ee(s.segmentGroup,s.index,o.commands):te(s.segmentGroup,s.index,o.commands);return Zt(s.segmentGroup,u,e,r,i)}(l,this.currentUrlTree,t,f,d)},t.prototype.navigateByUrl=function(t,e){void 0===e&&(e={skipLocationChange:!1}),Object(i.isDevMode)()&&this.isNgZoneEnabled&&!i.NgZone.isInAngularZone()&&this.console.warn("Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?");var n=ce(t)?t:this.parseUrl(t),a=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(a,"imperative",null,e)},t.prototype.navigate=function(t,e){return void 0===e&&(e={skipLocationChange:!1}),function(t){for(var e=0;e0},e.prototype.tagName=function(t){return t.tagName},e.prototype.attributeMap=function(t){for(var e=new Map,n=t.attributes,a=0;a0;s||(s=t[o]=[]);var c=at(e)?Zone.root:Zone.current;if(0===s.length)s.push({zone:c,handler:r});else{for(var l=!1,d=0;d-1},e}(L),dt=["alt","control","meta","shift"],ft={alt:function(t){return t.altKey},control:function(t){return t.ctrlKey},meta:function(t){return t.metaKey},shift:function(t){return t.shiftKey}},pt=function(t){function e(e){return t.call(this,e)||this}var n;return Object(a.__extends)(e,t),n=e,e.prototype.supports=function(t){return null!=n.parseEventName(t)},e.prototype.addEventListener=function(t,e,a){var r=n.parseEventName(e),i=n.eventCallback(r.fullKey,a,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return s().onAndCancel(t,r.domEventName,i)})},e.parseEventName=function(t){var e=t.toLowerCase().split("."),a=e.shift();if(0===e.length||"keydown"!==a&&"keyup"!==a)return null;var r=n._normalizeKey(e.pop()),i="";if(dt.forEach(function(t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),i+=t+".")}),i+=r,0!=e.length||0===r.length)return null;var o={};return o.domEventName=a,o.fullKey=i,o},e.getEventFullKey=function(t){var e="",n=s().getEventKey(t);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),dt.forEach(function(a){a!=n&&(0,ft[a])(t)&&(e+=a+".")}),e+=n},e.eventCallback=function(t,e,a){return function(r){n.getEventFullKey(r)===t&&a.runGuarded(function(){return e(r)})}},e._normalizeKey=function(t){switch(t){case"esc":return"escape";default:return t}},e}(L),ht=function(){return function(){}}(),gt=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n}return Object(a.__extends)(e,t),e.prototype.sanitize=function(t,e){if(null==e)return null;switch(t){case i.SecurityContext.NONE:return e;case i.SecurityContext.HTML:return e instanceof bt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),Object(i["\u0275_sanitizeHtml"])(this._doc,String(e)));case i.SecurityContext.STYLE:return e instanceof yt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),Object(i["\u0275_sanitizeStyle"])(e));case i.SecurityContext.SCRIPT:if(e instanceof vt)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case i.SecurityContext.URL:return e instanceof _t||e instanceof xt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),Object(i["\u0275_sanitizeUrl"])(String(e)));case i.SecurityContext.RESOURCE_URL:if(e instanceof _t)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+t+" (see http://g.co/ng/security#xss)")}},e.prototype.checkNotSafeValue=function(t,e){if(t instanceof mt)throw new Error("Required a safe "+e+", got a "+t.getTypeName()+" (see http://g.co/ng/security#xss)")},e.prototype.bypassSecurityTrustHtml=function(t){return new bt(t)},e.prototype.bypassSecurityTrustStyle=function(t){return new yt(t)},e.prototype.bypassSecurityTrustScript=function(t){return new vt(t)},e.prototype.bypassSecurityTrustUrl=function(t){return new xt(t)},e.prototype.bypassSecurityTrustResourceUrl=function(t){return new _t(t)},e}(ht),mt=function(){function t(t){this.changingThisBreaksApplicationSecurity=t}return t.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},t}(),bt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"HTML"},e}(mt),yt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"Style"},e}(mt),vt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"Script"},e}(mt),xt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"URL"},e}(mt),_t=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"ResourceURL"},e}(mt),Tt=[{provide:i.PLATFORM_ID,useValue:r["\u0275PLATFORM_BROWSER_ID"]},{provide:i.PLATFORM_INITIALIZER,useValue:Ot,multi:!0},{provide:r.PlatformLocation,useClass:x,deps:[y]},{provide:y,useFactory:Ct,deps:[]}],wt=[{provide:i.Sanitizer,useExisting:ht},{provide:ht,useClass:gt,deps:[y]}],St=Object(i.createPlatformFactory)(i.platformCore,"browser",Tt);function Ot(){m.makeCurrent(),S.init()}function It(){return new i.ErrorHandler}function Ct(){return document}var kt=[wt,{provide:i["\u0275APP_ROOT"],useValue:!0},{provide:i.ErrorHandler,useFactory:It,deps:[]},{provide:E,useClass:it,multi:!0,deps:[y,i.NgZone,i.PLATFORM_ID]},{provide:E,useClass:pt,multi:!0,deps:[y]},{provide:E,useClass:lt,multi:!0,deps:[y,st,i["\u0275Console"],[new i.Optional,ut]]},{provide:st,useClass:ct,deps:[]},{provide:B,useClass:B,deps:[D,M]},{provide:i.RendererFactory2,useExisting:B},{provide:P,useExisting:M},{provide:M,useClass:M,deps:[y]},{provide:i.Testability,useClass:i.Testability,deps:[i.NgZone]},{provide:D,useClass:D,deps:[E,i.NgZone]},A],Nt=function(){function t(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}var e;return e=t,t.withServerTransition=function(t){return{ngModule:e,providers:[{provide:i.APP_ID,useValue:t.appId},{provide:_,useExisting:i.APP_ID},w]}},t}();function Rt(){return new At(Object(i.inject)(y))}var At=function(){function t(t){this._doc=t,this._dom=s()}return t.prototype.addTag=function(t,e){return void 0===e&&(e=!1),t?this._getOrCreateElement(t,e):null},t.prototype.addTags=function(t,e){var n=this;return void 0===e&&(e=!1),t?t.reduce(function(t,a){return a&&t.push(n._getOrCreateElement(a,e)),t},[]):[]},t.prototype.getTag=function(t){return t&&this._dom.querySelector(this._doc,"meta["+t+"]")||null},t.prototype.getTags=function(t){if(!t)return[];var e=this._dom.querySelectorAll(this._doc,"meta["+t+"]");return e?[].slice.call(e):[]},t.prototype.updateTag=function(t,e){if(!t)return null;e=e||this._parseSelector(t);var n=this.getTag(e);return n?this._setMetaElementAttributes(t,n):this._getOrCreateElement(t,!0)},t.prototype.removeTag=function(t){this.removeTagElement(this.getTag(t))},t.prototype.removeTagElement=function(t){t&&this._dom.remove(t)},t.prototype._getOrCreateElement=function(t,e){if(void 0===e&&(e=!1),!e){var n=this._parseSelector(t),a=this.getTag(n);if(a&&this._containsAttributes(t,a))return a}var r=this._dom.createElement("meta");this._setMetaElementAttributes(t,r);var i=this._dom.getElementsByTagName(this._doc,"head")[0];return this._dom.appendChild(i,r),r},t.prototype._setMetaElementAttributes=function(t,e){var n=this;return Object.keys(t).forEach(function(a){return n._dom.setAttribute(e,a,t[a])}),e},t.prototype._parseSelector=function(t){var e=t.name?"name":"property";return e+'="'+t[e]+'"'},t.prototype._containsAttributes=function(t,e){var n=this;return Object.keys(t).every(function(a){return n._dom.getAttribute(e,a)===t[a]})},t.ngInjectableDef=Object(i.defineInjectable)({factory:Rt,token:t,providedIn:"root"}),t}();function Et(){return new Dt(Object(i.inject)(y))}var Dt=function(){function t(t){this._doc=t}return t.prototype.getTitle=function(){return s().getTitle(this._doc)},t.prototype.setTitle=function(t){s().setTitle(this._doc,t)},t.ngInjectableDef=Object(i.defineInjectable)({factory:Et,token:t,providedIn:"root"}),t}(),Lt="undefined"!=typeof window&&window||{},Pt=function(){return function(t,e){this.msPerTick=t,this.numTicks=e}}(),Mt=function(){function t(t){this.appRef=t.injector.get(i.ApplicationRef)}return t.prototype.timeChangeDetection=function(t){var e=t&&t.record,n=null!=Lt.console.profile;e&&n&&Lt.console.profile("Change Detection");for(var a=s().performanceNow(),r=0;r<5||s().performanceNow()-a<500;)this.appRef.tick(),r++;var i=s().performanceNow();e&&n&&Lt.console.profileEnd("Change Detection");var o=(i-a)/r;return Lt.console.log("ran "+r+" change detection cycles"),Lt.console.log(o.toFixed(2)+" ms per check"),new Pt(o,r)},t}(),qt="profiler";function jt(t){return O(qt,new Mt(t)),t}function Ft(){O(qt,null)}function zt(t){var e={"&":"&a;",'"':"&q;","'":"&s;","<":"&l;",">":"&g;"};return t.replace(/[&"'<>]/g,function(t){return e[t]})}function Gt(t){return t}var Yt=function(){function t(){this.store={},this.onSerializeCallbacks={}}var e;return e=t,t.init=function(t){var n=new e;return n.store=t,n},t.prototype.get=function(t,e){return void 0!==this.store[t]?this.store[t]:e},t.prototype.set=function(t,e){this.store[t]=e},t.prototype.remove=function(t){delete this.store[t]},t.prototype.hasKey=function(t){return this.store.hasOwnProperty(t)},t.prototype.onSerialize=function(t,e){this.onSerializeCallbacks[t]=e},t.prototype.toJson=function(){for(var t in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(t))try{this.store[t]=this.onSerializeCallbacks[t]()}catch(e){console.warn("Exception in onSerialize callback: ",e)}return JSON.stringify(this.store)},t}();function Vt(t,e){var n,a=t.getElementById(e+"-state"),r={};if(a&&a.textContent)try{r=JSON.parse((n={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"},a.textContent.replace(/&[^;]+;/g,function(t){return n[t]})))}catch(i){console.warn("Exception while restoring TransferState for app "+e,i)}return Yt.init(r)}var Ht=function(){return function(){}}(),Bt=function(){function t(){}return t.all=function(){return function(t){return!0}},t.css=function(t){return function(e){return null!=e.nativeElement&&s().elementMatches(e.nativeElement,t)}},t.directive=function(t){return function(e){return-1!==e.providerTokens.indexOf(t)}},t}(),Ut=new i.Version("7.2.6")},Zduo:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(t){return"p"===t.charAt(0).toLowerCase()},meridiem:function(t,e,n){return t>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}()},Zn8D:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("psW0"),r=n("mChF");function i(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),Object(a.a)(r.a,t)}},a0VL:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(t){this.datePipe=t}return t.prototype.transform=function(t){return null===t||""===t?"":this.datePipe.transform(t,"shortDate")+" "+this.datePipe.transform(t,"mediumTime")},t}()},a278:function(t,e,n){"use strict";var a=n("CcnG"),r=n("QC43"),i=n("XFyV"),o=n("TZo1"),s=n("9Kw/"),u=n("Jm/i"),c=n("gIcY"),l=n("Ip0R");n("insk"),n("mSOc"),n("ZYjt"),n("20UP"),n("+0ag"),n.d(e,"a",function(){return d}),n.d(e,"b",function(){return b});var d=a["\u0275crt"]({encapsulation:0,styles:[[".grafana[_ngcontent-%COMP%]{width:100%;height:600px;z-index:0}.grafana_one[_ngcontent-%COMP%]{height:400px}.grafana_two[_ngcontent-%COMP%]{height:750px}.grafana_three[_ngcontent-%COMP%]{height:900px}.timepicker[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{display:inline-block}.timepicker[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:1.05em;padding:5px!important}button[_ngcontent-%COMP%]{margin-bottom:10px;margin-left:10px;float:right}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:14px;padding:2px}.dropdown-menu[_ngcontent-%COMP%]{top:20px;right:20px;left:auto}"]],data:{}});function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,r.b,r.a)),a["\u0275did"](1,49152,null,0,i.a,[],null,null),(t()(),a["\u0275ted"](-1,0,["Loading panel data..."]))],null,null)}function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"cd-info-panel",[],null,null,null,o.b,o.a)),a["\u0275did"](1,49152,null,0,s.a,[u.a],null,null),(t()(),a["\u0275ted"](-1,0,["Please consult the "])),(t()(),a["\u0275eld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["documentation"])),(t()(),a["\u0275ted"](-1,0,[" on how to configure and enable the monitoring functionality."]))],null,function(t,e){t(e,3,0,a["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"cd-info-panel",[],null,null,null,o.b,o.a)),a["\u0275did"](1,49152,null,0,s.a,[u.a],null,null),(t()(),a["\u0275ted"](-1,0,["Grafana Dashboard doesn't exist. Please refer to "])),(t()(),a["\u0275eld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["documentation"])),(t()(),a["\u0275ted"](-1,0,[" on how to add dashboards to Grafana."]))],null,function(t,e){t(e,3,0,a["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["\u0275did"](1,147456,null,0,c.v,[a.ElementRef,a.Renderer2,[2,c.z]],{ngValue:[0,"ngValue"]},null),a["\u0275did"](2,147456,null,0,c.G,[a.ElementRef,a.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),a["\u0275ted"](3,null,[""," "]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.name)})}function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,20,"div",[["class","row"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,15,"div",[["class","col-md-12 timepicker"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,2,"label",[["class","control-label col-sm-1"],["for","timepicker-control"]],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Grafana Time Picker"])),(t()(),a["\u0275eld"](5,0,null,null,8,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,7,"select",[["class","form-control "],["id","timepicker"],["name","timepicker-control"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],function(t,e,n){var r=!0,i=t.component;return"change"===e&&(r=!1!==a["\u0275nov"](t,7).onChange(n.target.value)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,7).onTouched()&&r),"ngModelChange"===e&&(r=!1!==(i.time=n)&&r),"ngModelChange"===e&&(r=!1!==i.onTimepickerChange(n)&&r),r},null,null)),a["\u0275did"](7,16384,null,0,c.z,[a.Renderer2,a.ElementRef],null,null),a["\u0275prd"](1024,null,c.p,function(t){return[t]},[c.z]),a["\u0275did"](9,671744,null,0,c.u,[[8,null],[8,null],[8,null],[6,c.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),a["\u0275prd"](2048,null,c.q,null,[c.u]),a["\u0275did"](11,16384,null,0,c.r,[[4,c.q]],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,g)),a["\u0275did"](13,278528,null,0,l.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](14,0,null,null,1,"button",[["class","btn btn-sm"],["title","Reset Settings"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.reset()&&a),a},null,null)),(t()(),a["\u0275eld"](15,0,null,null,0,"i",[["class","fa fa-undo"]],null,null,null,null,null)),(t()(),a["\u0275eld"](16,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),a["\u0275eld"](17,0,null,null,3,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),a["\u0275eld"](18,0,null,null,2,"div",[["class","grafana-container"]],null,null,null,null,null)),(t()(),a["\u0275eld"](19,0,[["iframe",1]],null,1,"iframe",[["class","grafana"],["frameborder","0"],["id","iframe"],["scrolling","no"]],[[8,"src",5]],null,null,null,null)),a["\u0275did"](20,278528,null,0,l.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null)],function(t,e){var n=e.component;t(e,9,0,"timepicker-control",n.time),t(e,13,0,n.grafanaTimes),t(e,20,0,"grafana",n.panelStyle)},function(t,e){var n=e.component;t(e,6,0,a["\u0275nov"](e,11).ngClassUntouched,a["\u0275nov"](e,11).ngClassTouched,a["\u0275nov"](e,11).ngClassPristine,a["\u0275nov"](e,11).ngClassDirty,a["\u0275nov"](e,11).ngClassValid,a["\u0275nov"](e,11).ngClassInvalid,a["\u0275nov"](e,11).ngClassPending),t(e,19,0,n.grafanaSrc)})}function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,f)),a["\u0275did"](1,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](3,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,h)),a["\u0275did"](5,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,m)),a["\u0275did"](7,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.loading&&n.grafanaExist),t(e,3,0,!n.grafanaExist),t(e,5,0,!n.dashboardExist),t(e,7,0,n.grafanaExist&&n.dashboardExist)},null)}},a40w:function(t,e,n){"use strict";var a=n("CcnG"),r=n("EEJc"),i=n("ajRT"),o=n("gIcY"),s=n("Ip0R"),u=n("gp3X"),c=n("sb0X"),l=n("KVJa"),d=n("Z21x"),f=n("sne2"),p=n("OLbh"),h=n("DQlY");n.d(e,"a",function(){return v});var g=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,19,"cd-modal",[],null,[[null,"hide"]],function(t,e,n){var a=!0;return"hide"===e&&(a=!1!==t.component.cancel()&&a),a},r.c,r.b)),a["\u0275did"](1,49152,null,0,i.a,[],null,{hide:"hide"}),(t()(),a["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](3,null,["",""])),(t()(),a["\u0275eld"](4,0,null,1,15,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,14,"form",[["class","form-horizontal"],["name","confirmationForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["\u0275nov"](t,7).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["\u0275nov"](t,7).onReset()&&r),r},null,null)),a["\u0275did"](6,16384,null,0,o.D,[],null,null),a["\u0275did"](7,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["\u0275prd"](2048,null,o.d,null,[o.l]),a["\u0275did"](9,16384,null,0,o.s,[[4,o.d]],null,null),(t()(),a["\u0275eld"](10,0,null,null,2,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,m)),a["\u0275did"](12,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](13,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["\u0275eld"](14,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](15,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0,r=t.component;return"submitAction"===e&&(a=!1!==r.onSubmit(r.confirmationForm.value)&&a),a},u.b,u.a)),a["\u0275did"](16,114688,null,0,c.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["\u0275ted"](17,0,[" "," "])),(t()(),a["\u0275eld"](18,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,l.b,l.a)),a["\u0275did"](19,49152,null,0,d.a,[s.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,7,0,n.confirmationForm),t(e,12,0,n.bodyContext,n.bodyTpl),t(e,16,0,n.confirmationForm),t(e,19,0,"Cancel",n.boundCancel)},function(t,e){var n=e.component;t(e,3,0,n.titleText),t(e,5,0,a["\u0275nov"](e,9).ngClassUntouched,a["\u0275nov"](e,9).ngClassTouched,a["\u0275nov"](e,9).ngClassPristine,a["\u0275nov"](e,9).ngClassDirty,a["\u0275nov"](e,9).ngClassValid,a["\u0275nov"](e,9).ngClassInvalid,a["\u0275nov"](e,9).ngClassPending),t(e,17,0,n.buttonText)})}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-confirmation-modal",[],null,null,null,b,g)),a["\u0275did"](1,114688,null,0,p.a,[h.a],null,null)],function(t,e){t(e,1,0)},null)}var v=a["\u0275ccf"]("cd-confirmation-modal",p.a,y,{},{},[])},a96k:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(t,e,n,a){void 0===a&&(a=!0),this.selected=t,this.name=e,this.description=n,this.enabled=a}}()},aB2c:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),t.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:r.Line,dataElementType:r.Point,linkScales:i.noop,update:function(t){var e=this,n=e.getMeta(),a=n.data,r=n.dataset.custom||{},o=e.getDataset(),s=e.chart.options.elements.line,u=e.chart.scale;void 0!==o.tension&&void 0===o.lineTension&&(o.lineTension=o.tension),i.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:i.valueOrDefault(o.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:o.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:o.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:o.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==o.fill?o.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:o.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:o.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:o.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:o.borderJoinStyle||s.borderJoinStyle}}),n.dataset.pivot(),i.each(a,function(n,a){e.updateElement(n,a,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var a=this,r=t.custom||{},o=a.getDataset(),s=a.chart.scale,u=a.chart.options.elements.point,c=s.getPointPositionForValue(e,o.data[e]);void 0!==o.radius&&void 0===o.pointRadius&&(o.pointRadius=o.radius),void 0!==o.hitRadius&&void 0===o.pointHitRadius&&(o.pointHitRadius=o.hitRadius),i.extend(t,{_datasetIndex:a.index,_index:e,_scale:s,_model:{x:n?s.xCenter:c.x,y:n?s.yCenter:c.y,tension:r.tension?r.tension:i.valueOrDefault(o.lineTension,a.chart.options.elements.line.tension),radius:r.radius?r.radius:i.valueAtIndexOrDefault(o.pointRadius,e,u.radius),backgroundColor:r.backgroundColor?r.backgroundColor:i.valueAtIndexOrDefault(o.pointBackgroundColor,e,u.backgroundColor),borderColor:r.borderColor?r.borderColor:i.valueAtIndexOrDefault(o.pointBorderColor,e,u.borderColor),borderWidth:r.borderWidth?r.borderWidth:i.valueAtIndexOrDefault(o.pointBorderWidth,e,u.borderWidth),pointStyle:r.pointStyle?r.pointStyle:i.valueAtIndexOrDefault(o.pointStyle,e,u.pointStyle),rotation:r.rotation?r.rotation:i.valueAtIndexOrDefault(o.pointRotation,e,u.rotation),hitRadius:r.hitRadius?r.hitRadius:i.valueAtIndexOrDefault(o.pointHitRadius,e,u.hitRadius)}}),t._model.skip=r.skip?r.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();i.each(e.data,function(n,a){var r=n._model,o=i.splineCurve(i.previousItem(e.data,a,!0)._model,r,i.nextItem(e.data,a,!0)._model,r.tension);r.controlPointPreviousX=Math.max(Math.min(o.previous.x,t.right),t.left),r.controlPointPreviousY=Math.max(Math.min(o.previous.y,t.bottom),t.top),r.controlPointNextX=Math.max(Math.min(o.next.x,t.right),t.left),r.controlPointNextY=Math.max(Math.min(o.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},a=t._index,r=t._model;t.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth,radius:r.radius},r.radius=n.hoverRadius?n.hoverRadius:i.valueAtIndexOrDefault(e.pointHoverRadius,a,this.chart.options.elements.point.hoverRadius),r.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:i.valueAtIndexOrDefault(e.pointHoverBackgroundColor,a,i.getHoverColor(r.backgroundColor)),r.borderColor=n.hoverBorderColor?n.hoverBorderColor:i.valueAtIndexOrDefault(e.pointHoverBorderColor,a,i.getHoverColor(r.borderColor)),r.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:i.valueAtIndexOrDefault(e.pointHoverBorderWidth,a,r.borderWidth)}})}},aIdf:function(t,e,n){!function(t){"use strict";function e(t,e,n){return t+" "+function(t,e){return 2===e?function(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}(t):t}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],t)}n("wd/R").defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:function(t){switch(function t(e){return e>9?t(e%10):e}(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(t){return t+(1===t?"a\xf1":"vet")},week:{dow:1,doy:4}})}()},aIsn:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},aQkU:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-\u0435\u0432":0===n?t+"-\u0435\u043d":n>10&&n<20?t+"-\u0442\u0438":1===e?t+"-\u0432\u0438":2===e?t+"-\u0440\u0438":7===e||8===e?t+"-\u043c\u0438":t+"-\u0442\u0438"},week:{dow:1,doy:7}})}()},aTeT:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi"}(e.SortType||(e.SortType={}))},aXbf:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("LvDl"),r=n("CcnG"),i=function(){function t(){}return t.prototype.format_number=function(t,e,n,r){if(void 0===r&&(r=1),a.isString(t)&&(t=Number(t)),!a.isNumber(t))return"-";var i=t<1?0:Math.floor(Math.log(t)/Math.log(e));i=i>=n.length?n.length-1:i;var o=a.round(t/Math.pow(e,i),r).toString();return""===o?"-":(""!==n[i]&&(o=o+" "+n[i]),o)},t.prototype.toBytes=function(t,e){void 0===e&&(e=null);var n=["b","k","m","g","t","p","e","z","y"],r=RegExp("^(\\d+(.\\d+)?) ?(["+n.join("")+"]?(b|ib|B/s)?)?$","i").exec(t);if(null===r)return e;var i=parseFloat(r[1]);return a.isString(r[3])&&(i*=Math.pow(1024,n.indexOf(r[3].toLowerCase()[0]))),Math.round(i)},t.prototype.toMilliseconds=function(t){var e=/^\s*(\d+)\s*(ms)?\s*$/i.exec(t);return null!==e?+e[1]:0},t.prototype.toIops=function(t){var e=/^\s*(\d+)\s*(IOPS)?\s*$/i.exec(t);return null!==e?+e[1]:0},t.ngInjectableDef=r.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}()},ad02:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){return function(n){return n.lift(new o(t,e))}}var o=function(){function t(t,e){this.compare=t,this.keySelector=e}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.compare,this.keySelector))},t}(),s=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.keySelector=a,r.hasKey=!1,"function"==typeof n&&(r.compare=n),r}return a.__extends(e,t),e.prototype.compare=function(t,e){return t===e},e.prototype._next=function(t){var e;try{var n=this.keySelector;e=n?n(t):t}catch(r){return this.destination.error(r)}var a=!1;if(this.hasKey)try{a=(0,this.compare)(this.key,e)}catch(r){return this.destination.error(r)}else this.hasKey=!0;a||(this.key=e,this.destination.next(t))},e}(r.a)},ae7Z:function(t,e,n){"use strict";function a(t){var e={left:[],center:[],right:[]};if(t)for(var n=0,a=t;n0&&this.destination.next(e),t.prototype._complete.call(this)},e}(g.a),v=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.bufferSize=n,r.startBufferEvery=a,r.buffers=[],r.count=0,r}return a.__extends(e,t),e.prototype._next=function(t){var e=this.bufferSize,n=this.startBufferEvery,a=this.buffers,r=this.count;this.count++,r%n==0&&a.push([]);for(var i=a.length;i--;){var o=a[i];o.push(t),o.length===e&&(a.splice(i,1),this.destination.next(o))}},e.prototype._complete=function(){for(var e=this.buffers,n=this.destination;e.length>0;){var a=e.shift();a.length>0&&n.next(a)}t.prototype._complete.call(this)},e}(g.a),x=n("nkY7");function _(t){var e=arguments.length,n=c.a;Object(x.a)(arguments[arguments.length-1])&&(n=arguments[arguments.length-1],e--);var a=null;e>=2&&(a=arguments[1]);var r=Number.POSITIVE_INFINITY;return e>=3&&(r=arguments[2]),function(e){return e.lift(new T(t,a,r,n))}}var T=function(){function t(t,e,n,a){this.bufferTimeSpan=t,this.bufferCreationInterval=e,this.maxBufferSize=n,this.scheduler=a}return t.prototype.call=function(t,e){return e.subscribe(new S(t,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},t}(),w=function(){return function(){this.buffer=[]}}(),S=function(t){function e(e,n,a,r,i){var o=t.call(this,e)||this;o.bufferTimeSpan=n,o.bufferCreationInterval=a,o.maxBufferSize=r,o.scheduler=i,o.contexts=[];var s=o.openContext();if(o.timespanOnly=null==a||a<0,o.timespanOnly)o.add(s.closeAction=i.schedule(O,n,{subscriber:o,context:s,bufferTimeSpan:n}));else{var u={bufferTimeSpan:n,bufferCreationInterval:a,subscriber:o,scheduler:i};o.add(s.closeAction=i.schedule(C,n,{subscriber:o,context:s})),o.add(i.schedule(I,a,u))}return o}return a.__extends(e,t),e.prototype._next=function(t){for(var e,n=this.contexts,a=n.length,r=0;r0;){var a=e.shift();n.next(a.buffer)}t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.contexts=null},e.prototype.onBufferFull=function(t){this.closeContext(t);var e=t.closeAction;if(e.unsubscribe(),this.remove(e),!this.closed&&this.timespanOnly){t=this.openContext();var n=this.bufferTimeSpan;this.add(t.closeAction=this.scheduler.schedule(O,n,{subscriber:this,context:t,bufferTimeSpan:n}))}},e.prototype.openContext=function(){var t=new w;return this.contexts.push(t),t},e.prototype.closeContext=function(t){this.destination.next(t.buffer);var e=this.contexts;(e?e.indexOf(t):-1)>=0&&e.splice(e.indexOf(t),1)},e}(g.a);function O(t){var e=t.subscriber,n=t.context;n&&e.closeContext(n),e.closed||(t.context=e.openContext(),t.context.closeAction=this.schedule(t,t.bufferTimeSpan))}function I(t){var e=t.bufferCreationInterval,n=t.bufferTimeSpan,a=t.subscriber,r=t.scheduler,i=a.openContext();a.closed||(a.add(i.closeAction=r.schedule(C,n,{subscriber:a,context:i})),this.schedule(t,e))}function C(t){t.subscriber.closeContext(t.context)}var k=n("pugT");function N(t,e){return function(n){return n.lift(new R(t,e))}}var R=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new A(t,this.openings,this.closingSelector))},t}(),A=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.openings=n,r.closingSelector=a,r.contexts=[],r.add(Object(i.a)(r,n)),r}return a.__extends(e,t),e.prototype._next=function(t){for(var e=this.contexts,n=e.length,a=0;a0;){var a=n.shift();a.subscription.unsubscribe(),a.buffer=null,a.subscription=null}this.contexts=null,t.prototype._error.call(this,e)},e.prototype._complete=function(){for(var e=this.contexts;e.length>0;){var n=e.shift();this.destination.next(n.buffer),n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,a,r){t?this.closeBuffer(t):this.openBuffer(e)},e.prototype.notifyComplete=function(t){this.closeBuffer(t.context)},e.prototype.openBuffer=function(t){try{var e=this.closingSelector.call(this,t);e&&this.trySubscribe(e)}catch(n){this._error(n)}},e.prototype.closeBuffer=function(t){var e=this.contexts;if(e&&t){var n=t.subscription;this.destination.next(t.buffer),e.splice(e.indexOf(t),1),this.remove(n),n.unsubscribe()}},e.prototype.trySubscribe=function(t){var e=this.contexts,n=new k.a,a={buffer:[],subscription:n};e.push(a);var r=Object(i.a)(this,t,a);!r||r.closed?this.closeBuffer(a):(r.context=a,this.add(r),n.add(r))},e}(r.a);function E(t){return function(e){return e.lift(new D(t))}}var D=function(){function t(t){this.closingSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new L(t,this.closingSelector))},t}(),L=function(t){function e(e,n){var a=t.call(this,e)||this;return a.closingSelector=n,a.subscribing=!1,a.openBuffer(),a}return a.__extends(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype._complete=function(){var e=this.buffer;e&&this.destination.next(e),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},e.prototype.notifyNext=function(t,e,n,a,r){this.openBuffer()},e.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},e.prototype.openBuffer=function(){var t,e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe()),this.buffer&&this.destination.next(this.buffer),this.buffer=[];try{t=(0,this.closingSelector)()}catch(n){return this.error(n)}e=new k.a,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add(Object(i.a)(this,t)),this.subscribing=!1},e}(r.a),P=n("9Z1F"),M=n("dzgT");function q(t){return function(e){return e.lift(new M.a(t))}}var j=n("isby"),F=n("0/uQ");function z(){for(var t=[],e=0;e0&&n[0].time-a.now()<=0;)n.shift().notification.observe(r);if(n.length>0){var i=Math.max(0,n[0].time-a.now());this.schedule(t,i)}else this.unsubscribe(),e.active=!1},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new rt(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(tt.a.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.scheduleNotification(tt.a.createComplete()),this.unsubscribe()},e}(g.a),rt=function(){return function(t,e){this.time=t,this.notification=e}}(),it=n("6blF");function ot(t,e){return e?function(n){return new ct(n,e).lift(new st(t))}:function(e){return e.lift(new st(t))}}var st=function(){function t(t){this.delayDurationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new ut(t,this.delayDurationSelector))},t}(),ut=function(t){function e(e,n){var a=t.call(this,e)||this;return a.delayDurationSelector=n,a.completed=!1,a.delayNotifierSubscriptions=[],a.index=0,a}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.destination.next(t),this.removeSubscription(r),this.tryComplete()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype.notifyComplete=function(t){var e=this.removeSubscription(t);e&&this.destination.next(e),this.tryComplete()},e.prototype._next=function(t){var e=this.index++;try{var n=this.delayDurationSelector(t,e);n&&this.tryDelay(n,t)}catch(a){this.destination.error(a)}},e.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},e.prototype.removeSubscription=function(t){t.unsubscribe();var e=this.delayNotifierSubscriptions.indexOf(t);return-1!==e&&this.delayNotifierSubscriptions.splice(e,1),t.outerValue},e.prototype.tryDelay=function(t,e){var n=Object(i.a)(this,t,e);n&&!n.closed&&(this.destination.add(n),this.delayNotifierSubscriptions.push(n))},e.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},e}(r.a),ct=function(t){function e(e,n){var a=t.call(this)||this;return a.source=e,a.subscriptionDelay=n,a}return a.__extends(e,t),e.prototype._subscribe=function(t){this.subscriptionDelay.subscribe(new lt(t,this.source))},e}(it.a),lt=function(t){function e(e,n){var a=t.call(this)||this;return a.parent=e,a.source=n,a.sourceSubscribed=!1,a}return a.__extends(e,t),e.prototype._next=function(t){this.subscribeToSource()},e.prototype._error=function(t){this.unsubscribe(),this.parent.error(t)},e.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},e.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},e}(g.a);function dt(){return function(t){return t.lift(new ft)}}var ft=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new pt(t))},t}(),pt=function(t){function e(e){return t.call(this,e)||this}return a.__extends(e,t),e.prototype._next=function(t){t.observe(this.destination)},e}(g.a),ht=n("ou9H"),gt=n("ad02");function mt(t,e){return Object(gt.a)(function(n,a){return e?e(n[t],a[t]):n[t]===a[t]})}var bt=n("b7mW"),yt=n("VnD/"),vt=n("tNVB"),xt=n("t9fZ");function _t(t,e){if(t<0)throw new bt.a;var n=arguments.length>=2;return function(a){return a.pipe(Object(yt.a)(function(e,n){return n===t}),Object(xt.a)(1),n?Object(J.a)(e):Object(vt.a)(function(){return new bt.a}))}}var Tt=n("dEwP"),wt=n("F/XL");function St(){for(var t=[],e=0;e0&&this._next(e.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},e}(r.a),qt=n("2WpN");function jt(t,e){if("function"!=typeof t)throw new TypeError("predicate is not a function");return function(n){return n.lift(new Ft(t,n,!1,e))}}var Ft=function(){function t(t,e,n,a){this.predicate=t,this.source=e,this.yieldIndex=n,this.thisArg=a}return t.prototype.call=function(t,e){return e.subscribe(new zt(t,this.predicate,this.source,this.yieldIndex,this.thisArg))},t}(),zt=function(t){function e(e,n,a,r,i){var o=t.call(this,e)||this;return o.predicate=n,o.source=a,o.yieldIndex=r,o.thisArg=i,o.index=0,o}return a.__extends(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete(),this.unsubscribe()},e.prototype._next=function(t){var e=this.predicate,n=this.thisArg,a=this.index++;try{e.call(n||this,t,a,this.source)&&this.notifyComplete(this.yieldIndex?a:t)}catch(r){this.destination.error(r)}},e.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},e}(g.a);function Gt(t,e){return function(n){return n.lift(new Ft(t,n,!0,e))}}var Yt=n("P6uZ"),Vt=n("IxPp");function Ht(){return function(t){return t.lift(new Bt)}}var Bt=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new Ut(t))},t}(),Ut=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype._next=function(t){},e}(g.a);function Wt(){return function(t){return t.lift(new Kt)}}var Kt=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new $t(t))},t}(),$t=function(t){function e(e){return t.call(this,e)||this}return a.__extends(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype._next=function(t){this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(g.a),Zt=n("w1EH");function Xt(t){return function(e){return e.lift(new Jt(t))}}var Jt=function(){function t(t){this.value=t}return t.prototype.call=function(t,e){return e.subscribe(new Qt(t,this.value))},t}(),Qt=function(t){function e(e,n){var a=t.call(this,e)||this;return a.value=n,a}return a.__extends(e,t),e.prototype._next=function(t){this.destination.next(this.value)},e}(g.a);function te(){return function(t){return t.lift(new ee)}}var ee=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new ne(t))},t}(),ne=function(t){function e(e){return t.call(this,e)||this}return a.__extends(e,t),e.prototype._next=function(t){this.destination.next(tt.a.createNext(t))},e.prototype._error=function(t){var e=this.destination;e.next(tt.a.createError(t)),e.complete()},e.prototype._complete=function(){var t=this.destination;t.next(tt.a.createComplete()),t.complete()},e}(g.a),ae=n("Qgas");function re(t){var e="function"==typeof t?function(e,n){return t(e,n)>0?e:n}:function(t,e){return t>e?t:e};return Object(ae.a)(e)}var ie=n("p0ib");function oe(){for(var t=[],e=0;e0?this._next(e.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},e}(r.a);function pe(t){var e="function"==typeof t?function(e,n){return t(e,n)<0?e:n}:function(t,e){return t-1&&(this.count=n-1),e.subscribe(this._unsubscribeAndRecycle())}},e}(g.a);function Fe(t){return function(e){return e.lift(new ze(t))}}var ze=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new Ge(t,this.notifier,e))},t}(),Ge=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.notifier=n,r.source=a,r.sourceIsBeingSubscribedTo=!0,r}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},e.prototype.notifyComplete=function(e){if(!1===this.sourceIsBeingSubscribedTo)return t.prototype.complete.call(this)},e.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return t.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},e.prototype._unsubscribe=function(){var t=this.notifications,e=this.retriesSubscription;t&&(t.unsubscribe(),this.notifications=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype._unsubscribeAndRecycle=function(){var e=this._unsubscribe;return this._unsubscribe=null,t.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=e,this},e.prototype.subscribeToRetries=function(){var e;this.notifications=new Oe.a;try{e=(0,this.notifier)(this.notifications)}catch(n){return t.prototype.complete.call(this)}this.retries=e,this.retriesSubscription=Object(i.a)(this,e)},e}(r.a);function Ye(t){return void 0===t&&(t=-1),function(e){return e.lift(new Ve(t,e))}}var Ve=function(){function t(t,e){this.count=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new He(t,this.count,this.source))},t}(),He=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.count=n,r.source=a,r}return a.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.source,a=this.count;if(0===a)return t.prototype.error.call(this,e);a>-1&&(this.count=a-1),n.subscribe(this._unsubscribeAndRecycle())}},e}(g.a);function Be(t){return function(e){return e.lift(new Ue(t,e))}}var Ue=function(){function t(t,e){this.notifier=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new We(t,this.notifier,this.source))},t}(),We=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.notifier=n,r.source=a,r}return a.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.errors,a=this.retries,r=this.retriesSubscription;if(a)this.errors=null,this.retriesSubscription=null;else{n=new Oe.a;try{a=(0,this.notifier)(n)}catch(o){return t.prototype.error.call(this,o)}r=Object(i.a)(this,a)}this._unsubscribeAndRecycle(),this.errors=n,this.retries=a,this.retriesSubscription=r,n.next(e)}},e.prototype._unsubscribe=function(){var t=this.errors,e=this.retriesSubscription;t&&(t.unsubscribe(),this.errors=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype.notifyNext=function(t,e,n,a,r){var i=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=i,this.source.subscribe(this)},e}(r.a),Ke=n("yGWI");function $e(t){return function(e){return e.lift(new Ze(t))}}var Ze=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){var n=new Xe(t),a=e.subscribe(n);return a.add(Object(i.a)(n,this.notifier)),a},t}(),Xe=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasValue=!1,e}return a.__extends(e,t),e.prototype._next=function(t){this.value=t,this.hasValue=!0},e.prototype.notifyNext=function(t,e,n,a,r){this.emitValue()},e.prototype.notifyComplete=function(){this.emitValue()},e.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},e}(r.a);function Je(t,e){return void 0===e&&(e=c.a),function(n){return n.lift(new Qe(t,e))}}var Qe=function(){function t(t,e){this.period=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new tn(t,this.period,this.scheduler))},t}(),tn=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.period=n,r.scheduler=a,r.hasValue=!1,r.add(a.schedule(en,n,{subscriber:r,period:n})),r}return a.__extends(e,t),e.prototype._next=function(t){this.lastValue=t,this.hasValue=!0},e.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},e}(g.a);function en(t){var e=t.period;t.subscriber.notifyNext(),this.schedule(t,e)}var nn=n("dC0D");function an(t,e){return function(n){return n.lift(new rn(t,e))}}var rn=function(){function t(t,e){this.compareTo=t,this.comparator=e}return t.prototype.call=function(t,e){return e.subscribe(new on(t,this.compareTo,this.comparator))},t}(),on=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.compareTo=n,r.comparator=a,r._a=[],r._b=[],r._oneComplete=!1,r.destination.add(n.subscribe(new sn(e,r))),r}return a.__extends(e,t),e.prototype._next=function(t){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(t),this.checkValues())},e.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},e.prototype.checkValues=function(){for(var t=this._a,e=this._b,n=this.comparator;t.length>0&&e.length>0;){var a=t.shift(),r=e.shift(),i=!1;try{i=n?n(a,r):a===r}catch(o){this.destination.error(o)}i||this.emit(!1)}},e.prototype.emit=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype.nextB=function(t){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(t),this.checkValues())},e.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},e}(g.a),sn=function(t){function e(e,n){var a=t.call(this,e)||this;return a.parent=n,a}return a.__extends(e,t),e.prototype._next=function(t){this.parent.nextB(t)},e.prototype._error=function(t){this.parent.error(t),this.unsubscribe()},e.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},e}(g.a),un=n("S1nX"),cn=n("klSw"),ln=n("3fWJ");function dn(t){return function(e){return e.lift(new fn(t,e))}}var fn=function(){function t(t,e){this.predicate=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new pn(t,this.predicate,this.source))},t}(),pn=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.predicate=n,r.source=a,r.seenValue=!1,r.index=0,r}return a.__extends(e,t),e.prototype.applySingleValue=function(t){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=t)},e.prototype._next=function(t){var e=this.index++;this.predicate?this.tryNext(t,e):this.applySingleValue(t)},e.prototype.tryNext=function(t,e){try{this.predicate(t,e,this.source)&&this.applySingleValue(t)}catch(n){this.destination.error(n)}},e.prototype._complete=function(){var t=this.destination;this.index>0?(t.next(this.seenValue?this.singleValue:void 0),t.complete()):t.error(new ln.a)},e}(g.a);function hn(t){return function(e){return e.lift(new gn(t))}}var gn=function(){function t(t){this.total=t}return t.prototype.call=function(t,e){return e.subscribe(new mn(t,this.total))},t}(),mn=function(t){function e(e,n){var a=t.call(this,e)||this;return a.total=n,a.count=0,a}return a.__extends(e,t),e.prototype._next=function(t){++this.count>this.total&&this.destination.next(t)},e}(g.a);function bn(t){return function(e){return e.lift(new yn(t))}}var yn=function(){function t(t){if(this._skipCount=t,this._skipCount<0)throw new bt.a}return t.prototype.call=function(t,e){return e.subscribe(0===this._skipCount?new g.a(t):new vn(t,this._skipCount))},t}(),vn=function(t){function e(e,n){var a=t.call(this,e)||this;return a._skipCount=n,a._count=0,a._ring=new Array(n),a}return a.__extends(e,t),e.prototype._next=function(t){var e=this._skipCount,n=this._count++;if(n0?this.startWindowEvery:this.windowSize,n=this.destination,a=this.windowSize,r=this.windows,i=r.length,o=0;o=0&&s%e==0&&!this.closed&&r.shift().complete(),++this.count%e==0&&!this.closed){var u=new Oe.a;r.push(u),n.next(u)}},e.prototype._error=function(t){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().complete();this.destination.complete()},e.prototype._unsubscribe=function(){this.count=0,this.windows=null},e}(g.a);function ma(t){var e=c.a,n=null,a=Number.POSITIVE_INFINITY;return Object(x.a)(arguments[3])&&(e=arguments[3]),Object(x.a)(arguments[2])?e=arguments[2]:Object(kn.a)(arguments[2])&&(a=arguments[2]),Object(x.a)(arguments[1])?e=arguments[1]:Object(kn.a)(arguments[1])&&(n=arguments[1]),function(r){return r.lift(new ba(t,n,a,e))}}var ba=function(){function t(t,e,n,a){this.windowTimeSpan=t,this.windowCreationInterval=e,this.maxWindowSize=n,this.scheduler=a}return t.prototype.call=function(t,e){return e.subscribe(new va(t,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},t}(),ya=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._numberOfNextedValues=0,e}return a.__extends(e,t),e.prototype.next=function(e){this._numberOfNextedValues++,t.prototype.next.call(this,e)},Object.defineProperty(e.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),e}(Oe.a),va=function(t){function e(e,n,a,r,i){var o=t.call(this,e)||this;o.destination=e,o.windowTimeSpan=n,o.windowCreationInterval=a,o.maxWindowSize=r,o.scheduler=i,o.windows=[];var s=o.openWindow();if(null!==a&&a>=0){var u={windowTimeSpan:n,windowCreationInterval:a,subscriber:o,scheduler:i};o.add(i.schedule(Ta,n,{subscriber:o,window:s,context:null})),o.add(i.schedule(_a,a,u))}else o.add(i.schedule(xa,n,{subscriber:o,window:s,windowTimeSpan:n}));return o}return a.__extends(e,t),e.prototype._next=function(t){for(var e=this.windows,n=e.length,a=0;a=this.maxWindowSize&&this.closeWindow(r))}},e.prototype._error=function(t){for(var e=this.windows;e.length>0;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){for(var t=this.windows;t.length>0;){var e=t.shift();e.closed||e.complete()}this.destination.complete()},e.prototype.openWindow=function(){var t=new ya;return this.windows.push(t),this.destination.next(t),t},e.prototype.closeWindow=function(t){t.complete();var e=this.windows;e.splice(e.indexOf(t),1)},e}(g.a);function xa(t){var e=t.subscriber,n=t.windowTimeSpan,a=t.window;a&&e.closeWindow(a),t.window=e.openWindow(),this.schedule(t,n)}function _a(t){var e=t.windowTimeSpan,n=t.subscriber,a=t.scheduler,r=t.windowCreationInterval,i=n.openWindow(),o={action:this,subscription:null};o.subscription=a.schedule(Ta,e,{subscriber:n,window:i,context:o}),this.add(o.subscription),this.schedule(t,r)}function Ta(t){var e=t.subscriber,n=t.window,a=t.context;a&&a.action&&a.subscription&&a.action.remove(a.subscription),e.closeWindow(n)}function wa(t,e){return function(n){return n.lift(new Sa(t,e))}}var Sa=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new Oa(t,this.openings,this.closingSelector))},t}(),Oa=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.openings=n,r.closingSelector=a,r.contexts=[],r.add(r.openSubscription=Object(i.a)(r,n,n)),r}return a.__extends(e,t),e.prototype._next=function(t){var e=this.contexts;if(e)for(var n=e.length,a=0;a0){var o=i.indexOf(n);-1!==o&&i.splice(o,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=[t].concat(this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)},e}(r.a),Ea=n("909l");function Da(){for(var t=[],e=0;e animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a},dt,it)),a["\u0275did"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["\u0275unv"](e,1,1,a["\u0275nov"](e,2).transform(n.options)))},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)})}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,u)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.daysCalendar)))},null)}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a},gt,ft)),a["\u0275did"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function d(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,l)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.monthsCalendar)))},null)}function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a},vt,mt)),a["\u0275did"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,f)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.yearsCalendar)))},null)}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Apply"])),(t()(),a["\u0275eld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Cancel"]))],null,null)}function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,wt,xt)),a["\u0275did"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],function(t,e){t(e,2,0,e.component._customRangesFish)},null)}function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275eld"](2,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](7,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,d)),a["\u0275did"](9,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](11,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,h)),a["\u0275did"](13,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,g)),a["\u0275did"](15,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"bs-datepicker",n.containerClass),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.viewMode))),t(e,7,0,"day"),t(e,9,0,"month"),t(e,11,0,"year"),t(e,13,0,!1),t(e,15,0,!1)},function(t,e){t(e,2,0,e.component.animationState)})}function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,m)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.viewMode)))},null)}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-datepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"],["style","position: absolute; display: block;"]],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,3)._stopPropagation(n)&&r),r},b,s)),a["\u0275prd"](512,null,r.r,r.r,[]),a["\u0275prd"](512,null,r.s,r.s,[r.t,r.j]),a["\u0275did"](3,245760,null,0,r.b,[r.a,r.r,a.ElementRef,r.t,r.s,o.a],null,null)],function(t,e){t(e,3,0)},null)}var v=a["\u0275ccf"]("bs-datepicker-container",r.b,y,{},{},[]),x=a["\u0275crt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function _(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a},dt,it)),a["\u0275did"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["\u0275unv"](e,1,1,a["\u0275nov"](e,2).transform(n.options)))},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)})}function T(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,_)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.daysCalendar)))},null)}function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a},gt,ft)),a["\u0275did"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,w)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.monthsCalendar)))},null)}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a},vt,mt)),a["\u0275did"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function I(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,O)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.yearsCalendar)))},null)}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Apply"])),(t()(),a["\u0275eld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Cancel"]))],null,null)}function k(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,wt,xt)),a["\u0275did"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],function(t,e){t(e,2,0,e.component._customRangesFish)},null)}function N(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275eld"](2,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,T)),a["\u0275did"](7,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,S)),a["\u0275did"](9,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,I)),a["\u0275did"](11,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,C)),a["\u0275did"](13,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,k)),a["\u0275did"](15,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"bs-datepicker",n.containerClass),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.viewMode))),t(e,7,0,"day"),t(e,9,0,"month"),t(e,11,0,"year"),t(e,13,0,!1),t(e,15,0,!1)},function(t,e){t(e,2,0,e.component.animationState)})}function R(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,N)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.viewMode)))},null)}function A(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-datepicker-inline-container",[["style","display: inline-block;"]],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,3)._stopPropagation(n)&&r),r},R,x)),a["\u0275prd"](512,null,r.r,r.r,[]),a["\u0275prd"](512,null,r.s,r.s,[r.t,r.j]),a["\u0275did"](3,245760,null,0,r.e,[r.a,r.r,a.ElementRef,r.t,r.s,o.a],null,null)],function(t,e){t(e,3,0)},null)}var E=a["\u0275ccf"]("bs-datepicker-inline-container",r.e,A,{},{},[]),D=a["\u0275crt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function L(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a},dt,it)),a["\u0275did"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["\u0275unv"](e,1,1,a["\u0275nov"](e,2).transform(n.options)))},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)})}function P(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,L)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.daysCalendar)))},null)}function M(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a},gt,ft)),a["\u0275did"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function q(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,M)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.monthsCalendar)))},null)}function j(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a},vt,mt)),a["\u0275did"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function F(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,j)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.yearsCalendar)))},null)}function z(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Apply"])),(t()(),a["\u0275eld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Cancel"]))],null,null)}function G(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,wt,xt)),a["\u0275did"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],function(t,e){t(e,2,0,e.component._customRangesFish)},null)}function Y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275eld"](2,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,P)),a["\u0275did"](7,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,q)),a["\u0275did"](9,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,F)),a["\u0275did"](11,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,z)),a["\u0275did"](13,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,G)),a["\u0275did"](15,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"bs-datepicker",n.containerClass),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.viewMode))),t(e,7,0,"day"),t(e,9,0,"month"),t(e,11,0,"year"),t(e,13,0,!1),t(e,15,0,!1)},function(t,e){t(e,2,0,e.component.animationState)})}function V(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,Y)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.viewMode)))},null)}function H(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-daterangepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"],["style","position: absolute; display: block;"]],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,3)._stopPropagation(n)&&r),r},V,D)),a["\u0275prd"](512,null,r.s,r.s,[r.t,r.j]),a["\u0275prd"](512,null,r.r,r.r,[]),a["\u0275did"](3,245760,null,0,r.i,[r.s,r.t,r.a,r.r,a.ElementRef,o.a],null,null)],function(t,e){t(e,3,0)},null)}var B=a["\u0275ccf"]("bs-daterangepicker-container",r.i,H,{},{},[]),U=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function W(t){return a["\u0275vid"](2,[(t()(),a["\u0275ted"](0,null,["",""]))],null,function(t,e){t(e,0,0,e.component.day.label)})}var K=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function $(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","current-timedate"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.component.title)})}var Z=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function X(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"button",[["class","current"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("month")&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.component.calendar.monthTitle)})}function J(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,2,"button",[["class","previous"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!0)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\u2039"])),(t()(),a["\u0275ted"](-1,null,[" \u200b "])),(t()(),a["\u0275and"](16777216,null,null,1,null,X)),a["\u0275did"](5,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,[" \u200b "])),(t()(),a["\u0275eld"](7,0,null,null,2,"button",[["class","current"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("year")&&a),a},null,null)),(t()(),a["\u0275eld"](8,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](9,null,["",""])),(t()(),a["\u0275ted"](-1,null,[" \u200b "])),(t()(),a["\u0275eld"](11,0,null,null,2,"button",[["class","next"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!1)&&a),a},null,null)),(t()(),a["\u0275eld"](12,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\u203a"]))],function(t,e){t(e,5,0,e.component.calendar.monthTitle)},function(t,e){var n=e.component;t(e,0,0,n.calendar.disableLeftArrow,n.calendar.hideLeftArrow?"hidden":"visible"),t(e,9,0,n.calendar.yearTitle),t(e,11,0,n.calendar.disableRightArrow,n.calendar.hideRightArrow?"hidden":"visible")})}var Q=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function tt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-timepicker-container"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,1,"button",[["class","bs-decrease"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["-"])),(t()(),a["\u0275eld"](4,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"button",[["class","bs-increase"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["+"])),(t()(),a["\u0275eld"](7,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["\u0275eld"](8,0,null,null,1,"button",[["class","bs-decrease"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["-"])),(t()(),a["\u0275eld"](10,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["\u0275eld"](11,0,null,null,1,"button",[["class","bs-increase"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["+"])),(t()(),a["\u0275eld"](13,0,null,null,2,"button",[["class","switch-time-format"]],null,null,null,null,null)),(t()(),a["\u0275ted"](14,null,[""," "])),(t()(),a["\u0275eld"](15,0,null,null,0,"img",[["alt",""],["src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg=="]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,4,0,n.hours),t(e,10,0,n.minutes),t(e,14,0,n.ampm)})}var et=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function nt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-current-date",[["title","hey there"]],null,null,null,$,K)),a["\u0275did"](1,49152,null,0,r.v,[],{title:[0,"title"]},null)],function(t,e){t(e,1,0,"hey there")},null)}function at(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-timepicker",[],null,null,null,tt,Q)),a["\u0275did"](1,49152,null,0,r.x,[],null,null)],null,null)}function rt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,nt)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](2,0,null,null,1,"div",[["class","bs-datepicker-head"]],null,null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275eld"](4,0,null,null,1,"div",[["class","bs-datepicker-body"]],null,null,null,null,null)),a["\u0275ncd"](null,1),(t()(),a["\u0275and"](16777216,null,null,1,null,at)),a["\u0275did"](7,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,!1),t(e,7,0,!1)},null)}var it=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function ot(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"th",[],null,null,null,null,null))],null,null)}function st(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"th",[["aria-label","weekday"]],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[""," "]))],null,function(t,e){t(e,1,0,e.component.calendar.weekdays[e.context.index])})}function ut(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"td",[["class","week"]],[[2,"active-week",null]],null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectWeek(t.parent.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!1)&&a),a},null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){var n=e.component;t(e,0,0,n.isWeekHovered),t(e,2,0,n.calendar.weekNumbers[e.parent.context.index])})}function ct(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"td",[["role","gridcell"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,2,"span",[["bsDatepickerDayDecorator",""]],[[2,"disabled",null],[2,"is-highlighted",null],[2,"is-other-month",null],[2,"is-active-other-month",null],[2,"in-range",null],[2,"select-start",null],[2,"select-end",null],[2,"selected",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectDay(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!1)&&a),a},W,U)),a["\u0275did"](2,114688,null,0,r.u,[r.a,a.ElementRef,a.Renderer2],{day:[0,"day"]},null),(t()(),a["\u0275ted"](3,null,["",""]))],function(t,e){t(e,2,0,e.context.$implicit)},function(t,e){t(e,1,0,a["\u0275nov"](e,2).day.isDisabled,a["\u0275nov"](e,2).day.isHovered,a["\u0275nov"](e,2).day.isOtherMonth,a["\u0275nov"](e,2).day.isOtherMonthHovered,a["\u0275nov"](e,2).day.isInRange,a["\u0275nov"](e,2).day.isSelectionStart,a["\u0275nov"](e,2).day.isSelectionEnd,a["\u0275nov"](e,2).day.isSelected),t(e,3,0,e.context.$implicit.label)})}function lt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ut)),a["\u0275did"](2,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,ct)),a["\u0275did"](4,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.options.showWeekNumbers),t(e,4,0,e.context.$implicit.days)},null)}function dt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,13,"bs-calendar-layout",[],null,null,null,rt,et)),a["\u0275did"](1,49152,null,0,r.y,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a},J,Z)),a["\u0275did"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["\u0275eld"](4,0,null,1,9,"table",[["class","days weeks"],["role","grid"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,5,"thead",[],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ot)),a["\u0275did"](8,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,st)),a["\u0275did"](10,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](11,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,lt)),a["\u0275did"](13,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,8,0,n.options.showWeekNumbers),t(e,10,0,n.calendar.weekdays),t(e,13,0,n.calendar.weeks)},null)}var ft=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function pt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewMonth(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!1)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,2,0,e.context.$implicit.label)})}function ht(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,pt)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.context.$implicit)},null)}function gt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,rt,et)),a["\u0275did"](1,49152,null,0,r.y,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a},J,Z)),a["\u0275did"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["\u0275eld"](4,0,null,1,3,"table",[["class","months"],["role","grid"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ht)),a["\u0275did"](7,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.months)},null)}var mt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function bt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewYear(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!1)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,2,0,e.context.$implicit.label)})}function yt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,bt)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.context.$implicit)},null)}function vt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,rt,et)),a["\u0275did"](1,49152,null,0,r.y,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a},J,Z)),a["\u0275did"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["\u0275eld"](4,0,null,1,3,"table",[["class","years"],["role","grid"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,yt)),a["\u0275did"](7,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.years)},null)}var xt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function _t(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"button",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.context.$implicit.label)})}function Tt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"button",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Custom Range"]))],null,null)}function wt(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-predefined-btns"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,_t)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Tt)),a["\u0275did"](4,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.ranges),t(e,4,0,n.isCustomRangeShown)},null)}},awvh:function(t,e,n){"use strict";function a(t){return Error.call(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(t,e){return e+1+") "+t.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t,this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},b1Dy:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},b5OY:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("pxLl");var a=function(){function t(t,e){this.performanceCounterService=t,this.i18n=e,this.columns=[],this.counters=[]}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Description"),prop:"description",flexGrow:1},{name:this.i18n("Value"),prop:"value",cellTemplate:this.valueTpl,flexGrow:1}]},t.prototype.getCounters=function(t){var e=this;this.performanceCounterService.get(this.serviceType,this.serviceId).subscribe(function(t){e.counters=t},function(n){404===n.status?(n.preventDefault(),e.counters=null):t.error()})},t}()},b7mW:function(t,e,n){"use strict";function a(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},bOMt:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},bXm7:function(t,e,n){!function(t){"use strict";var e={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};t.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},bYM6:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}()},bidN:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+": ("+t.xLabel+", "+t.yLabel+", "+e.datasets[t.datasetIndex].data[t.index].r+")"}}}}),t.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:r.Point,update:function(t){var e=this,n=e.getMeta();i.each(n.data,function(n,a){e.updateElement(n,a,t)})},updateElement:function(t,e,n){var a=this,r=a.getMeta(),i=t.custom||{},o=a.getScaleForId(r.xAxisID),s=a.getScaleForId(r.yAxisID),u=a._resolveElementOptions(t,e),c=a.getDataset().data[e],l=a.index,d=n?o.getPixelForDecimal(.5):o.getPixelForValue("object"==typeof c?c:NaN,e,l),f=n?s.getBasePixel():s.getPixelForValue(c,e,l);t._xScale=o,t._yScale=s,t._options=u,t._datasetIndex=l,t._index=e,t._model={backgroundColor:u.backgroundColor,borderColor:u.borderColor,borderWidth:u.borderWidth,hitRadius:u.hitRadius,pointStyle:u.pointStyle,rotation:u.rotation,radius:n?0:u.radius,skip:i.skip||isNaN(d)||isNaN(f),x:d,y:f},t.pivot()},setHoverStyle:function(t){var e=t._model,n=t._options;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=i.valueOrDefault(n.hoverBackgroundColor,i.getHoverColor(n.backgroundColor)),e.borderColor=i.valueOrDefault(n.hoverBorderColor,i.getHoverColor(n.borderColor)),e.borderWidth=i.valueOrDefault(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},_resolveElementOptions:function(t,e){var n,a,r,o=this.chart,s=o.data.datasets[this.index],u=t.custom||{},c=o.options.elements.point,l=i.options.resolve,d=s.data[e],f={},p={chart:o,dataIndex:e,dataset:s,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(n=0,a=h.length;n1?Array.prototype.slice.call(arguments):t)},a,n)})}},bpWZ:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("FO+L")),a(n("nhM1")),a(n("BARL"))},bpih:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},buEt:function(t,e,n){"use strict";n.r(e);var a=n("DtyJ");n.d(e,"Subject",function(){return a.Subject})},bxKX:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},cRix:function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},cdu6:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),o=n("g8vO");function s(t){var e,n,a=[];for(e=0,n=t.length;ef&&ot.maxHeight){o--;break}o++,d=u*c}t.labelRotation=o},afterCalculateTickRotation:function(){i.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){i.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=s(t._ticks),a=t.options,r=a.ticks,o=a.scaleLabel,u=a.gridLines,f=a.display,p=t.isHorizontal(),h=l(r),g=a.gridLines.tickMarkLength;if(e.width=p?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:f&&u.drawTicks?g:0,e.height=p?f&&u.drawTicks?g:0:t.maxHeight,o.display&&f){var m=d(o)+i.options.toPadding(o.padding).height;p?e.height+=m:e.width+=m}if(r.display&&f){var b=i.longestText(t.ctx,h.font,n,t.longestTextCache),y=i.numberOfLabelLines(n),v=.5*h.size,x=t.options.ticks.padding;if(p){t.longestLabelWidth=b;var _=i.toRadians(t.labelRotation),T=Math.cos(_),w=Math.sin(_);e.height=Math.min(t.maxHeight,e.height+(w*b+h.size*y+v*(y-1)+v)+x),t.ctx.font=h.font;var S=c(t.ctx,n[0],h.font),O=c(t.ctx,n[n.length-1],h.font);0!==t.labelRotation?(t.paddingLeft="bottom"===a.position?T*S+3:T*v+3,t.paddingRight="bottom"===a.position?T*v+3:T*O+3):(t.paddingLeft=S/2+3,t.paddingRight=O/2+3)}else r.mirror?b=0:b+=x+v,e.width=Math.min(t.maxWidth,e.width+b),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){i.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(i.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:i.noop,getPixelForValue:i.noop,getValueForPixel:i.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var a=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),r=a*t+e.paddingLeft;return n&&(r+=a/2),e.left+Math.round(r)+(e.isFullWidth()?e.margins.left:0)}return e.top+t*((e.height-(e.paddingTop+e.paddingBottom))/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;return e.isHorizontal()?e.left+Math.round((e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft)+(e.isFullWidth()?e.margins.left:0):e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,a,r,o=this,s=o.isHorizontal(),u=o.options.ticks.minor,c=t.length,l=i.toRadians(o.labelRotation),d=Math.cos(l),f=o.longestLabelWidth*d,p=[];for(u.maxTicksLimit&&(r=u.maxTicksLimit),s&&(e=!1,(f+u.autoSkipPadding)*c>o.width-(o.paddingLeft+o.paddingRight)&&(e=1+Math.floor((f+u.autoSkipPadding)*c/(o.width-(o.paddingLeft+o.paddingRight)))),r&&c>r&&(e=Math.max(e,Math.floor(c/r)))),n=0;n1&&n%e>0||n%e==0&&n+e>=c)&&n!==c-1&&delete a.label,p.push(a);return p},draw:function(t){var e=this,n=e.options;if(n.display){var r=e.ctx,o=a.global,s=n.ticks.minor,c=n.ticks.major||s,f=n.gridLines,p=n.scaleLabel,h=0!==e.labelRotation,g=e.isHorizontal(),m=s.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),b=i.valueOrDefault(s.fontColor,o.defaultFontColor),y=l(s),v=i.valueOrDefault(c.fontColor,o.defaultFontColor),x=l(c),_=f.drawTicks?f.tickMarkLength:0,T=i.valueOrDefault(p.fontColor,o.defaultFontColor),w=l(p),S=i.options.toPadding(p.padding),O=i.toRadians(e.labelRotation),I=[],C=e.options.gridLines.lineWidth,k="right"===n.position?e.left:e.right-C-_,N="right"===n.position?e.left+_:e.right,R="bottom"===n.position?e.top+C:e.bottom-_-C,A="bottom"===n.position?e.top+C+_:e.bottom+C;if(i.each(m,function(a,r){if(!i.isNullOrUndef(a.label)){var c,l,d,p,b,y,v,x,T,w,S,E,D,L,P=a.label;r===e.zeroLineIndex&&n.offset===f.offsetGridLines?(c=f.zeroLineWidth,l=f.zeroLineColor,d=f.zeroLineBorderDash,p=f.zeroLineBorderDashOffset):(c=i.valueAtIndexOrDefault(f.lineWidth,r),l=i.valueAtIndexOrDefault(f.color,r),d=i.valueOrDefault(f.borderDash,o.borderDash),p=i.valueOrDefault(f.borderDashOffset,o.borderDashOffset));var M="middle",q="middle",j=s.padding;if(g){var F=_+j;"bottom"===n.position?(q=h?"middle":"top",M=h?"right":"center",L=e.top+F):(q=h?"middle":"bottom",M=h?"left":"center",L=e.bottom-F);var z=u(e,r,f.offsetGridLines&&m.length>1);z1);V\n \n \n \n Toggle navigation\n Alternar navegaci\xf3n\n \n \n Dashboard\n Consola\n \n \n Cluster\n Cl\xfaster\n \n \n Hosts\n Hosts\n \n \n Monitors\n Monitores\n \n \n OSDs\n OSDs\n \n \n Configuration\n Configuraci\xf3n\n \n \n CRUSH map\n Mapa de CRUSH\n \n \n Manager modules\n M\xf3dulos de gestor\n \n \n Logs\n Registros\n \n \n Alerts\n Alertas\n \n \n Silences\n Silences\n \n \n Pools\n Repositorios\n \n \n Block\n Bloque\n \n \n Images\n Im\xe1genes\n \n \n Mirroring\n Duplicaci\xf3n\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Sistemas de archivos\n \n \n Object Gateway\n Object Gateway\n \n \n Daemons\n Daemons\n \n \n Users\n Usuarios\n \n \n Buckets\n Papeleras\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Obteniendo datos \n \npara \n \n \n . Espere.\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Mostrando datos guardados previamente en cach\xe9\n \npara \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n No se han podido cargar los datos\n para\n \n \n .\nConsulte el estado del cl\xfaster.\n \n \n \n Back\n Atr\xe1s\n \n \n Select a Language\n Seleccione un idioma\n \n \n Loading panel data...\n Cargando datos del panel...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Consulte la\n documentaci\xf3n\n sobre c\xf3mo\nconfigurar y habilitar la supervisi\xf3n.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n No existe la consola de Grafana. Consulte la\n documentaci\xf3n\n sobre c\xf3mo\n a\xf1adir consolas a Grafana.\n \n \n \n Grafana Time Picker\n Selector de hora de Grafana\n \n \n Reset Settings\n Restablecer ajustes\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Error al cargar los datos.\n \n \n selected\n seleccionados\n X selected\n \n \n found\n encontrados\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Editar\n \n \n Name\n Nombre\n \n \n Description\n Descripci\xf3n\n \n \n Long description\n Descripci\xf3n larga\n \n \n Default\n Opci\xf3n por defecto\n \n \n Daemon default\n Daemon por defecto\n \n \n Services\n Servicios\n \n \n Values\n Valores\n \n \n The entered value is too high! It must not be greater than \n .\n \n El valor introducido es demasiado alto. No debe ser mayor que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n El valor introducido es demasiado bajo. No debe ser menor que \n .\n \n \n \n Save\n Guardar\n \n \n CRUSH map viewer\n Visor del mapa de CRUSH\n \n \n Hosts List\n Lista de hosts\n \n \n Overall Performance\n Rendimiento general\n \n \n No entries found\n No se encuentra ninguna entrada\n \n \n Cluster Logs\n Registros del cl\xfaster\n \n \n Audit Logs\n Registros de auditor\xeda\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Cargando configuraci\xf3n...\n \n \n The configuration could not be loaded.\n No es posible cargar la configuraci\xf3n.\n \n \n Edit Manager module\n M\xf3dulo del gestor de edici\xf3n\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n El valor introducido no es un UUID v\xe1lido, por ejemplo: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n El valor introducido debe ser una direcci\xf3n IP v\xe1lida.\n \n \n This field is required.\n Este campo es obligatorio.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n El valor introducido es demasiado alto. Debe ser menor o igual que \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n El valor introducido es demasiado bajo. Debe ser mayor o igual que \n .\n \n \n \n The entered value needs to be a number.\n El valor introducido debe ser un n\xfamero.\n \n \n The entered value needs to be a number or decimal.\n El valor introducido debe ser un n\xfamero o un decimal.\n \n \n Update\n Actualizar\n \n \n Status\n Estado\n \n \n Cluster ID\n ID de cl\xfaster\n \n \n monmap modified\n Mapa de supervisi\xf3n modificado\n \n \n monmap epoch\n \xc9poca de mapa de supervisi\xf3n\n \n \n quorum con\n qu\xf3rum de con\n \n \n quorum mon\n qu\xf3rum de mon\n \n \n required con\n con requerido\n \n \n required mon\n mon requerido\n \n \n In Quorum\n Con qu\xf3rum\n \n \n Not In Quorum\n Sin qu\xf3rum\n \n \n Cancel\n Cancelar\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \xbfSeguro que quiere \n el elemento \n seleccionado?\n \n \n \n Yes, I am sure.\n S\xed, seguro.\n \n \n Cluster-wide OSD Flags\n Indicadores OSD de todo el cl\xfaster\n \n \n Submit\n Enviar\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avanzado...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Prioridad de recuperaci\xf3n de OSD\n \n \n Priority\n Prioridad\n \n \n Customize priority values\n Personalizar valores de prioridad\n \n \n This field is required!\n Este campo es obligatorio.\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n El valor introducido es demasiado alto. No debe ser mayor que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n El valor introducido es demasiado bajo. No debe ser menor que \n .\n \n \n \n Reweight OSD\n Reequilibrar peso de OSD\n \n \n The value needs to be between 0 and 1.\n El valor debe estar entre 0 y 1.\n \n \n Reweight\n Reequilibrar peso\n \n \n OSDs \n Scrub\n \n \n Depuraci\xf3n de OSDs\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Profundo} }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Se dispone a aplicar una \n depuraci\xf3n\n al OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {profundo} }\n \n \n OSDs List\n Lista de OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n Si contin\xfaa, el \n OSD \n \n \n se marcar\xe1 \n \n \n .\n \n \n \n The OSD is not safe to destroy!\n No es seguro destruir el OSD.\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n Si contin\xfaa, el \n OSD \n \n \n se \n \n \n .\n \n \n \n Details\n Detalles\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valor\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Cerrar\n \n \n Delete\n Suprimir\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Estado\n \n \n Statistics\n Estad\xedsticas\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Consulte la \n documentaci\xf3n\n \n sobre c\xf3mo configurar y habilitar la funci\xf3n de gesti\xf3n de NFS Ganesha.\n \n \n \n Clients\n Clientes\n \n \n Any client can access\n Cualquier cliente puede acceder\n \n \n Addresses\n Destinatarios\n \n \n Required field\n Campo requerido\n \n \n Must contain one or more comma-separated values\n Debe contener uno o varios valores separados por comas\n \n \n For example:\n Por ejemplo:\n \n \n Access Type\n Tipo de acceso\n \n \n Squash\n Reducir privilegios\n \n \n Add clients\n A\xf1adir clientes\n \n \n Loading...\n Cargando...\n \n \n -- No cluster available --\n -- No hay ning\xfan cl\xfaster disponible --\n \n \n -- Select the cluster --\n -- Seleccione el cl\xfaster --\n \n \n Add daemon\n A\xf1adir daemon\n \n \n Storage Backend\n Motor de almacenamiento\n \n \n -- No data pools available --\n -- No hay ning\xfan repositorio de datos disponible --\n \n \n -- Select the storage backend --\n -- Seleccione el motor de almacenamiento --\n \n \n Object Gateway User\n Usuario de Object Gateway\n \n \n -- No users available --\n -- No hay ning\xfan usuario disponible --\n \n \n -- Select the object gateway user --\n -- Seleccione el usuario de Object Gateway --\n \n \n CephFS User ID\n ID de usuario de CephFS\n \n \n -- No clients available --\n -- No hay ning\xfan cliente disponible --\n \n \n -- Select the cephx client --\n -- Seleccione el cliente de CephX --\n \n \n CephFS Name\n Nombre de CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Etiqueta de seguridad\n \n \n Enable security label\n Habilitar etiqueta de seguridad\n \n \n CephFS Path\n Ruta de CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n La ruta debe empezar por "/" y puede ir seguida de una palabra\n \n \n New directory will be created\n Se crear\xe1 un directorio nuevo\n \n \n Path\n Ruta\n \n \n Path can only be a single \'/\' or a word\n La ruta solo puede ser una "/" o una palabra\n \n \n New bucket will be created\n Se crear\xe1 una papelera nueva\n \n \n NFS Protocol\n Protocolo NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Etiqueta NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Acceso alternativo para montajes \n NFS v3\n (no debe empezar con /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Puede que los clientes no monten subdirectorios (es decir, si Etiqueta = foo, el cliente puede que no monte foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Al usar distintas opciones de Etiqueta, la misma Ruta se puede exportar varias veces.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n La posici\xf3n que ocupa esta exportaci\xf3n \n NFS v4\n \n en \n Pseudo FS\n (debe ser exclusiva).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Al usar distintas opciones de Pseudo, la misma Ruta se puede exportar varias veces.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- No hay ning\xfan tipo de acceso disponible --\n \n \n -- Select the access type --\n -- Seleccione el tipo de acceso --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- No hay ninguna reducci\xf3n de privilegios disponible --\n \n \n --Select what kind of user id squashing is performed --\n -- Seleccione el tipo de reducci\xf3n de privilegios de ID de usuario que se va a realizar --\n \n \n Transport Protocol\n Protocolo de transporte\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n \xa1Bienvenidos a Ceph!\n The welcome message on the login page\n \n \n Username is required\n El nombre de usuario es obligatorio\n \n \n Password is required\n La contrase\xf1a es obligatoria\n \n \n Login\n Entrada\n \n \n Sorry, the user does not exist in Ceph.\n Lo sentimos. El usuario no existe en Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Vuelva a la \n P\xe1gina de entrada\n . Saldr\xe1 del proveedor de identidad cuando vuelva a intentar entrar a la sesi\xf3n.\n \n \n \n Forbidden\n Prohibido\n \n \n Sorry, you are not allowed to see what you were looking for.\n Lo sentimos. No tiene permiso para ver lo que busca.\n \n \n Sorry, we could not find what you were looking for\n Lo sentimos. No se encuentra lo que busca\n \n \n Remove all\n Eliminar todo\n \n \n Recent Notifications\n Notificaciones recientes\n \n \n There are no background tasks.\n No hay tareas en segundo plano.\n \n \n Background Tasks\n Tareas en segundo plano\n \n \n Help\n Ayuda\n \n \n Documentation\n Documentaci\xf3n\n \n \n API\n API\n \n \n About\n Acerca de\n \n \n Dashboard Settings\n Ajustes de la consola\n \n \n User management\n Gesti\xf3n del usuario\n \n \n Logged in user\n Usuario que ha entrado\n \n \n Signed in as\n \n \n \n \n Ha entrado como\n \n \n \n \n \n \n Sign out\n Salir\n \n \n Name...\n Nombre...\n \n \n The chosen name is already in use.\n El nombre que ha elegido ya est\xe1 en uso.\n \n \n Description...\n Descripci\xf3n...\n \n \n Permissions\n Permisos\n \n \n Roles\n Funciones\n \n \n Username\n Nombre de usuario\n \n \n Password\n Contrase\xf1a\n \n \n Confirm password\n Confirmar contrase\xf1a\n \n \n Password confirmation doesn\'t match the password.\n Las contrase\xf1as no coinciden.\n \n \n Full name\n Nombre completo\n \n \n Email\n Correo electr\xf3nico\n \n \n Invalid email.\n Correo electr\xf3nico no v\xe1lido.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Se dispone a eliminar los permisos "lectura/actualizaci\xf3n de usuario" de su propio usuario.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Si contin\xfaa, no podr\xe1 a\xf1adir ni eliminar funciones en ning\xfan usuario.\n \n \n Are you sure you want to continue?\n \xbfSeguro que desea continuar?\n \n \n Performance counters not available\n Los contadores de rendimiento no est\xe1n disponibles\n \n \n Attributes (OSD map)\n Atributos (mapa de OSD)\n \n \n Metadata not available\n Los metadatos no est\xe1n disponibles\n \n \n Metadata\n Metadatos\n \n \n Performance counter\n Contandor de rendimiento\n \n \n Histogram not available: \n \n \n El histograma no est\xe1 disponible: \n \n \n \n \n Writes\n Escrituras\n \n \n Reads\n Lecturas\n \n \n Histogram\n Histograma\n \n \n Performance Details\n Detalles de rendimiento\n \n \n Current values\n Valores actuales\n \n \n Type\n Tipo\n \n \n Min\n M\xedn.\n \n \n Max\n M\xe1x.\n \n \n Flags\n Indicadores\n \n \n Source\n Origen\n \n \n Level\n Nivel\n \n \n Can be updated at runtime (editable)\n Se puede actualizar en el tiempo de ejecuci\xf3n (editable)\n \n \n Tags\n Etiquetas\n \n \n Enum values\n Valores Enum\n \n \n See also\n V\xe9ase tambi\xe9n\n \n \n Cluster Status\n Estado del cl\xfaster\n \n \n Manager Daemons\n Daemons de gestor\n \n \n Object Gateways\n Instancias de Object Gateway\n \n \n Metadata Servers\n Servidores de metadatos\n \n \n iSCSI Gateways\n Puertas de enlace iSCSI\n \n \n Client IOPS\n IOPS de cliente\n \n \n Client Throughput\n Rendimiento del cliente\n \n \n Client Read/Write\n Lectura/escritura de cliente\n \n \n Recovery Throughput\n Rendimiento de recuperaci\xf3n\n \n \n Scrub\n Depuraci\xf3n\n \n \n Performance\n Rendimiento\n \n \n Raw Capacity\n Capacidad en bruto\n \n \n Objects\n Objetos\n \n \n PGs per OSD\n Grupos de colocaci\xf3n por OSD\n \n \n PG Status\n Estado del grupo de colocaci\xf3n\n \n \n Capacity\n Capacidad\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Consulte la secci\xf3n \n Registros\n para obtener m\xe1s datos.\n \n \n \n Ranks\n Clasificaciones\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clientes: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Mover una imagen a la papelera\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Para mover \n \n /\n \n a la papelera,\n haga clic en \n Mover imagen\n . Opcionalmente, puede seleccionar una fecha de caducidad.\n \n \n \n Protection expires at\n La protecci\xf3n caduca a las\n \n \n NOT PROTECTED\n SIN PROTECCI\xd3N\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Formato de fecha err\xf3neo. Use el formato "AAAA-MM-DD HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n La protecci\xf3n ya ha caducado. Seleccione una fecha del futuro o deje el campo vac\xedo.\n \n \n Move Image\n Mover imagen\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Resumen\n \n \n Targets\n Destinos\n \n \n Discovery Authentication\n Autenticaci\xf3n de descubrimiento\n \n \n User\n Usuario\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Los nombres de usuario deben tener entre 8 y 64 caracteres y\n solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Usuario mutuo\n \n \n Mutual Password\n Contrase\xf1a mutua\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Consulte la \n documentaci\xf3n\n \n sobre c\xf3mo configurar y habilitar la funci\xf3n de gesti\xf3n de destinos iSCSI.\n \n \n \n Available information:\n Informaci\xf3n disponible:\n \n \n iSCSI Targets not available\n Destinos iSCSI no disponibles\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Solo disponible para im\xe1genes RBD con \n fast-diff\n habilitado\n \n \n \n Pool\n Repositorio\n \n \n Data Pool\n Repositorio de datos\n \n \n Created\n Creados\n \n \n Size\n Tama\xf1o\n \n \n Object size\n Tama\xf1o del objeto\n \n \n Features\n Caracter\xedsticas\n \n \n Provisioned\n Aprovisionados\n \n \n N/A\n N/D\n \n \n Total provisioned\n Total aprovisionado\n \n \n Striping unit\n Unidad de repartici\xf3n\n \n \n Striping count\n Recuento de repartici\xf3n\n \n \n Parent\n Padre\n \n \n Block name prefix\n Prefijo de nombre de bloque\n \n \n Order\n Orden\n \n \n Snapshots\n Instant\xe1neas\n \n \n Image\n Imagen\n \n \n This setting overrides the global value\n Este ajuste sustituye al valor global\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Este es el valor global. No se ha definido ning\xfan valor para esta opci\xf3n para esta imagen.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n No se permiten los caracteres "/" ni "@".\n \n \n -- No rbd pools available --\n -- No hay ning\xfan repositorio RBD disponible --\n \n \n -- Select a pool --\n -- Seleccione un repositorio --\n \n \n Use a dedicated data pool\n Usar un repositorio dedicado para datos\n \n \n Data pool\n Repositorio de datos\n \n \n Dedicated pool that stores the object-data of the RBD.\n Repositorio dedicado para almacenar los datos de objeto de RBD.\n \n \n e.g., 10GiB\n ej.: 10 GiB\n \n \n You have to increase the size.\n Debe aumentar el tama\xf1o.\n \n \n Advanced\n Avanzado\n \n \n Striping\n Repartici\xf3n\n \n \n Stripe unit\n Unidad de repartici\xf3n\n \n \n -- Select stripe unit --\n -- Seleccione la unidad de repartici\xf3n --\n \n \n This field is required because stripe count is defined!\n Este campo es obligatorio porque se ha definido el recuento de repartici\xf3n.\n \n \n Stripe unit is greater than object size.\n La unidad de repartici\xf3n es mayor que el tama\xf1o del objeto.\n \n \n Stripe count\n Recuento de repartici\xf3n\n \n \n This field is required because stripe unit is defined!\n Este campo es obligatorio porque se ha definido la unidad de repartici\xf3n.\n \n \n Stripe count must be greater than 0.\n El recuento de repartici\xf3n debe ser mayor que 0.\n \n \n \n RBD Snapshot\n \n \n instant\xe1nea RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Renombrar} other {Crear} }\n \n \n \n Snapshot\n \n \n instant\xe1nea\n \n \n \n PROTECTED\n CON PROTECCI\xd3N\n \n \n UNPROTECTED\n SIN PROTECCI\xd3N\n \n \n You are about to rollback\n Se dispone a revertir\n \n \n Purge Trash\n Vaciar papelera\n \n \n To purge, select one or All images and click\n Para limpiar, seleccione una imagen, o todas las im\xe1genes, y haga clic en\n \n \n Pool:\n Repositorio:\n \n \n Pool name...\n Nombre del repositorio...\n \n \n All\n Todas\n \n \n Restore Image\n Restaurar im\xe1genes\n \n \n To restore\n Para restaurar\n \n \n type the image\'s new name and click\n escriba el nombre nuevo de la imagen y haga clic en\n \n \n New Name\n Nombre nuevo\n \n \n Expired at\n Caduc\xf3 a las\n \n \n Protected until\n Protecci\xf3n hasta\n \n \n This image is protected until \n .\n \n Esta imagen est\xe1 protegida hasta el \n .\n \n \n \n Trash\n Papelera\n \n \n iSCSI Topology\n Topolog\xeda iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Normalmente no es necesario cambiar los valores por defecto de estos par\xe1metros.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Ajustes\n \n \n Backstore\n Almac\xe9n\n \n \n Confirm\n Confirmar\n \n \n Advanced Settings\n Ajustes avanzados\n \n \n Target IQN\n IQN de destino\n \n \n IQN has wrong pattern.\n El IQN tiene un patr\xf3n err\xf3neo.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Los IQN tienen esta notaci\xf3n: iqn.$year-$month.$reversedAddress:$definedName\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Por ejemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n M\xe1s informaci\xf3n\n \n \n This target has modified advanced settings.\n Este destino tiene ajustes avanzados modificados.\n \n \n Portals\n Portales\n \n \n At least \n gateways are required.\n \n Se requieren al menos \n puertas de enlace.\n \n \n \n Add portal\n A\xf1adir portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Esta imagen tiene ajustes modificados.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n A\xf1adir imagen\n \n \n ACL authentication\n Autenticaci\xf3n de ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Iniciadores\n \n \n Initiator\n Iniciador\n \n \n Client IQN\n IQN del cliente\n \n \n Initiator IQN needs to be unique.\n El IQN del iniciador debe ser exclusivo.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Los nombres de usuario deben tener entre 8 y 64 caracteres y\n solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n El iniciador pertenece a un grupo. Las im\xe1genes se configurar\xe1n en el grupo.\n \n \n No items added.\n No se ha a\xf1adido ning\xfan elemento.\n \n \n Add initiator\n A\xf1adir iniciador\n \n \n Groups\n Grupos\n \n \n Group\n Grupo\n \n \n Add group\n A\xf1adir grupo\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configuraci\xf3n de RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Elimina el valor de configuraci\xf3n local. Se heredar\xe1 y usar\xe1 en su lugar el valor de configuraci\xf3n padre.\n \n \n The mininum value is 0\n El valor m\xednimo es 0\n \n \n Issues\n Problemas\n \n \n Syncing\n Sincronizando\n \n \n Ready\n Listo\n \n \n Edit pool mirror mode\n Editar modo de duplicaci\xf3n de repositorio\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Para editar el modo de duplicaci\xf3n del repositorio\xa0\n \n \n , seleccione un modo nuevo en la lista y haga clic\xa0\n en \n Actualizar\n .\n \n \n \n Mode\n Modo\n \n \n Peer clusters must be removed prior to disabling mirror.\n Los cl\xfasteres de par deben eliminarse antes de inhabilitar la duplicaci\xf3n.\n \n \n \n \n pool mirror peer\n \n \n \nduplicar par de repositorio\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Editar} other {A\xf1adir} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n los atributos del par\n de duplicaci\xf3n del respositorio \n \n \n y haga clic en \n Enviar\n .\n \n \n \n Cluster Name\n Nombre del cl\xfaster\n \n \n The cluster name is not valid.\n El nombre del cl\xfaster no es v\xe1lido.\n \n \n CephX ID\n ID de CephX\n \n \n CephX ID...\n ID de CephX...\n \n \n The CephX ID is not valid.\n El ID de CephX no es v\xe1lido.\n \n \n Monitor Addresses\n Direcciones de monitores\n \n \n Comma-delimited addresses...\n Direcciones delimitadas por comas...\n \n \n The monitory address is not valid.\n La direcci\xf3n del monitor no es v\xe1lida.\n \n \n CephX Key\n Clave de CephX\n \n \n Base64-encoded key...\n Clave con cifrado base64...\n \n \n CephX key must be base64 encoded.\n La clave de CephX debe tener cifrado base64\n \n \n Pools List\n Lista de repositorios\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n El nombre solo puede tener caracteres alfanum\xe9ricos, guiones y guiones bajos.\n \n \n The chosen erasure code profile name is already in use.\n El nombre del perfil de c\xf3digo de borrado que ha elegido ya est\xe1 en uso.\n \n \n Plugin\n Complemento\n \n \n Data chunks (k)\n Porciones de datos (k)\n \n \n Must be equal to or greater than 2.\n Debe ser igual o mayor que 2.\n \n \n Coding chunks (m)\n Porciones de c\xf3digo (m)\n \n \n Must be equal to or greater than 1.\n Debe ser igual o mayor que 1.\n \n \n Durability estimator (c)\n Estimador de durabilidad (c)\n \n \n Locality (l)\n Localizaci\xf3n (l)\n \n \n Crush failure domain\n Dominio de error de CRUSH\n \n \n Crush Locality\n Localizaci\xf3n de CRUSH\n \n \n None\n Ninguna\n \n \n Technique\n T\xe9cnica\n \n \n Packetsize\n Tama\xf1o del paquete\n \n \n Crush root\n Ra\xedz de CRUSH\n \n \n Crush device class\n Clase de dispositivo de CRUSH\n \n \n any\n cualquiera\n \n \n Directory\n Directorio\n \n \n The chosen Ceph pool name is already in use.\n El nombre del repositorio de Ceph que ha elegido ya est\xe1 en uso.\n \n \n Pool type\n Tipo de repositorio\n \n \n -- Select a pool type --\n -- Seleccione un tipo de repositorio --\n \n \n Placement groups\n Grupos de colocaci\xf3n\n \n \n At least one placement group is needed!\n Se necesita al menos un grupo de colocaci\xf3n.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n El cl\xfaster no puede gestionar tantos grupos de colocaci\xf3n. Vuelva a calcular la cantidad que necesita.\n \n \n Calculation help\n Ayuda para el c\xe1lculo\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n El n\xfamero grupos de colocaci\xf3n actual se ha calculado\n\xa0 autom\xe1ticamente. Debe asegurarse de que sirve para sus necesidades antes de enviar.\n \n \n Crush ruleset\n Conjunto de reglas de CRUSH\n \n \n -- Select a crush rule --\n -- Seleccione una regla de CRUSH --\n \n \n Crush rule\n Regla de CRUSH\n \n \n Crush steps\n Pasos de CRUSH\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n La regla no se puede usar en el cl\xfaster actual, ya que\n no tiene suficientes OSD que cumplan el m\xednimo requerido.\n \n \n Replicated size\n Tama\xf1o replicado\n \n \n Minimum: \n \n \n M\xednimo: \n \n \n \n \n Maximum: \n \n \n M\xe1ximo: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n El tama\xf1o especificado est\xe1 fuera del intervalo. Los valores v\xe1lidos\n son del \n al \n .\n \n \n \n Erasure code profile\n Perfil de c\xf3digo de borrado\n \n \n -- No erasure code profile available --\n -- No hay ning\xfan perfil de c\xf3digo de borrado disponible --\n \n \n -- Select an erasure code profile --\n -- Seleccione un perfil de c\xf3digo de borrado --\n \n \n EC Overwrites\n Sustituciones de c\xf3digos de borrado\n \n \n Applications\n Aplicaciones\n \n \n Compression\n Compresi\xf3n\n \n \n Algorithm\n Algoritmo\n \n \n -- No erasure compression algorithm available --\n -- No hay ning\xfan algoritmo de compresi\xf3n de borrado disponible --\n \n \n Minimum blob size\n Tama\xf1o de Blob m\xednimo\n \n \n e.g., 128KiB\n p. ej. 128 KiB\n \n \n Value should be greater than 0\n El valor debe ser mayor que 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Tama\xf1o de Blob m\xe1ximo\n \n \n e.g., 512KiB\n p. ej. 512 KiB\n \n \n Value should be greater than the minimum blob size\n El valor debe ser mayor que el tama\xf1o de Blob m\xednimo\n \n \n Ratio\n Relaci\xf3n\n \n \n Compression ratio\n Relaci\xf3n de compresi\xf3n\n \n \n Value should be between 0.0 and 1.0\n El valor debe estar entre 0,0 y 1,0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n No es posible crear un repositorio RBD con el nombre "/".\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Cambie el nombre o elimine "rbd" de la lista de aplicaciones.\n \n \n Cache Tiers Details\n Detalles de niveles de cach\xe9\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Consulte la \n documentaci\xf3n\n \n sobre c\xf3mo configurar y habilitar la funci\xf3n de gesti\xf3n de Object Gateway.\n \n \n \n Daemons List\n Lista de daemons\n \n \n Performance Counters\n Contadores de rendimiento\n \n \n Loading bucket data...\n Cargando datos de la papelera...\n \n \n The bucket data could not be loaded.\n No es posible cargar los datos de la papelera.\n \n \n Id\n ID\n \n \n The value is not valid.\n El valor no es v\xe1lido.\n \n \n Owner\n Propietario\n \n \n -- Select a user --\n -- Seleccione un usuario --\n \n \n ID\n ID\n \n \n Index type\n Tipo de \xedndice\n \n \n Placement rule\n Regla de colocaci\xf3n\n \n \n Marker\n Marcador\n \n \n Maximum marker\n Marcador m\xe1ximo\n \n \n Version\n Versi\xf3n\n \n \n Master version\n Versi\xf3n maestra\n \n \n Modification time\n Hora de modificaci\xf3n\n \n \n Zonegroup\n Grupo de zona\n \n \n Bucket quota\n Cuota de papelera\n \n \n Enabled\n Habilitado\n \n \n Maximum size\n Tama\xf1o m\xe1ximo\n \n \n Unlimited\n Sin l\xedmite\n \n \n Maximum objects\n N\xfamero m\xe1ximo de objetos\n \n \n -- Select a username --\n -- Seleccione un nombre de usuario --\n \n \n Auto-generate key\n Autogenerar clave\n \n \n Access key\n Clave de acceso\n \n \n Secret key\n Clave secreta\n \n \n Email address\n Direcci\xf3n de correo electr\xf3nico\n \n \n Suspended\n Suspendido\n \n \n System\n Sistema\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {S\xed} }\n \n \n Maximum buckets\n N\xfamero m\xe1ximo de papeleras\n \n \n Subusers\n Subusuarios\n \n \n Capabilities\n Capacidades\n \n \n User quota\n Cuota de usuario\n \n \n Show\n Mostrar\n \n \n Keys\n Claves\n \n \n -- Select a type --\n -- Seleccione un tipo --\n \n \n Permission\n Permiso\n \n \n -- Select a permission --\n -- Seleccione un permiso --\n \n \n Subuser\n Subusuario\n \n \n The chosen subuser ID is already in use.\n El ID de subusuario que ha elegido ya est\xe1 en uso.\n \n \n read, write\n lectura, escritura\n \n \n full\n todos\n \n \n Swift key\n Clave Swift\n \n \n Auto-generate secret\n Autogenerar secreto\n \n \n Loading user data...\n Cargando datos del usuario...\n \n \n The user data could not be loaded.\n No es posible cargar los datos del usuario.\n \n \n The chosen user ID is already in use.\n El ID de usuario que ha elegido ya est\xe1 en uso.\n \n \n This is not a valid email address.\n Esta direcci\xf3n no es v\xe1lida.\n \n \n The chosen email address is already in use.\n La direcci\xf3n de correo electr\xf3nico que ha elegido ya est\xe1 en uso.\n \n \n Max. buckets\n M\xe1x. papeleras\n \n \n The entered value must be >= 0.\n El valor introducido debe ser mayor o igual que 0.\n \n \n S3 key\n Clave S3\n \n \n There are no subusers.\n No hay ning\xfan subusuario.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n No hay ninguna clave.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n No hay ninguna capacidad\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Tama\xf1o ilimitado\n \n \n Max. size\n Tama\xf1o m\xe1x.\n \n \n Unlimited objects\n Objetos ilimitados\n \n \n Max. objects\n Objetos m\xe1x.\n \n \n Current\n Actual\n \n \n Updated discovery authentication\n Autenticaci\xf3n de descubrimiento actualizada\n \n \n There are no portals available.\n No hay ning\xfan portal disponible.\n \n \n There are no images available.\n No hay ninguna imagen disponible.\n \n \n There are no images available. Please make sure you add an image to the target.\n No hay ninguna imagen disponible. Aseg\xfarese de a\xf1adir una imagen al destino.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n No hay ning\xfan iniciador disponible. Aseg\xfarese de a\xf1adir un iniciador al destino.\n \n \n target\n target\n \n \n Target\n Destino\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Estado\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bytes de lectura\n \n \n Write Bytes\n Bytes de escritura\n \n \n Read Ops\n Operaciones de lectura\n \n \n Write Ops\n Operaciones de escritura\n \n \n A/O Since\n A/O desde\n \n \n Instance\n Instancia\n \n \n Hostname\n Nombre de host\n \n \n Issue\n Problema\n \n \n Progress\n Progreso\n \n \n Disabled\n Inhabilitado\n \n \n Edit Mode\n Editar modo\n \n \n Add Peer\n A\xf1adir par\n \n \n Edit Peer\n Editar par\n \n \n Delete Peer\n Suprimir par\n \n \n Leader\n L\xedder\n \n \n # Local\n N.\xba locales\n \n \n # Remote\n N.\xba remotos\n \n \n mirror peer\n duplicar par\n \n \n Key\n Clave\n \n \n RBD\n RBD\n \n \n Deep flatten\n Aplanamiento profundo\n \n \n Layering\n En capas\n \n \n Exclusive lock\n Bloqueo exclusivo\n \n \n Object map (requires exclusive-lock)\n Mapa de objetos (requiere bloqueo exclusivo)\n \n \n Journaling (requires exclusive-lock)\n En diario (requiere bloqueo exclusivo)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Reversi\xf3n de instant\xe1nea RBD\n \n \n Rollback\n Revertir\n \n \n RBD snapshot\n Instant\xe1nea RBD\n \n \n Deleted At\n Suprimido a las\n \n \n id\n ID\n \n \n type\n tipo\n \n \n state\n estado\n \n \n version\n versi\xf3n\n \n \n Host\n Host\n \n \n root\n ra\xedz\n \n \n Rank\n Clasificaci\xf3n\n \n \n Daemon\n Daemon\n \n \n Activity\n Actividad\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodos\n \n \n Usage\n Uso\n \n \n Standby daemons\n Daemons de reserva\n \n \n The value can be updated at runtime.\n El valor se puede actualizar en el tiempo de ejecuci\xf3n.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Los daemons/clientes no extraen este valor de la\n base de datos de configuraci\xf3n del monitor. No se recomienda definir esta opci\xf3n con "ceph config\n set ...". Esta opci\xf3n se debe configurar mediante ceph.conf o a trav\xe9s\n de la l\xednea de comandos.\n \n \n Option takes effect only during daemon startup.\n La opci\xf3n solo surte efecto durante el inicio del daemon.\n \n \n Option only affects cluster creation.\n La opci\xf3n solo afecta a la creaci\xf3n del cl\xfaster.\n \n \n Option only affects daemon creation.\n La opci\xf3n solo afecta a la creaci\xf3n del daemon.\n \n \n Updated config option \n \n \n Opci\xf3n de configuraci\xf3n actualizada \n \n \n \n \n Service\n Servicio\n \n \n Current value\n Valor actual\n \n \n Editable\n Editable\n \n \n Updated options for module "\n ".\n \n Opciones actualizadas para el m\xf3dulo \n .\n \n \n \n Enable\n Habilitar\n \n \n Disable\n Inhabilitar\n \n \n Reconnecting, please wait ...\n Conectando de nuevo. Espere...\n \n \n Public Address\n Direcci\xf3n p\xfablica\n \n \n Open Sessions\n Sesiones abiertas\n \n \n No In\n No incluir\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Los OSD que se excluyeron anteriormente no se volver\xe1n a incluir cuando se inicien\n \n \n No Out\n No excluir\n \n \n OSDs will not automatically be marked out after the configured interval\n Los OSD no se excluir\xe1n autom\xe1ticamente despu\xe9s del intervalo configurado\n \n \n No Up\n No activar\n \n \n OSDs are not allowed to start\n No se permite que los OSD se inicien\n \n \n No Down\n No desactivar\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Se ignoran los informes de error de OSD, de forma que los monitores no desactivar\xe1n los OSD\n \n \n Pause\n Pausa\n \n \n Pauses reads and writes\n Pone en pausa las lecturas y escrituras\n \n \n No Scrub\n No depurar\n \n \n Scrubbing is disabled\n La depuraci\xf3n est\xe1 inhabilitada\n \n \n No Deep Scrub\n No depuraci\xf3n profunda\n \n \n Deep Scrubbing is disabled\n La depuraci\xf3n profunda est\xe1 inhabilitada\n \n \n No Backfill\n No reponer\n \n \n Backfilling of PGs is suspended\n La reposici\xf3n de grupos de colocaci\xf3n se suspende\n \n \n No Recover\n No recuperar\n \n \n Recovery of PGs is suspended\n La recuperaci\xf3n de los grupos de colocaci\xf3n se suspende\n \n \n Bitwise Sort\n Orden bit a bit\n \n \n Use bitwise sort\n Usar orden bit a bit\n \n \n Purged Snapdirs\n Snapdir limpiados\n \n \n OSDs have converted snapsets\n Los OSD tienen snapset convertidos\n \n \n Recovery Deletes\n Supresiones de recuperaci\xf3n\n \n \n Deletes performed during recovery instead of peering\n Supresiones realizadas durante la recuperaci\xf3n, en lugar de emparejamientos\n \n \n PG Log Hard Limit\n L\xedmite estricto de registro del grupo de colocaci\xf3n\n \n \n Puts a hard limit on pg log length\n Establece un l\xedmite estricto para la longitud del registro del grupo de colocaci\xf3n\n \n \n Updated OSD Flags\n Indicadores de OSD actualizados\n \n \n out\n excluir\n \n \n in\n Incluir\n \n \n down\n desactivar\n \n \n Mark\n Marcar\n \n \n OSD lost\n OSD perdido\n \n \n marked lost\n marcado como perdido\n \n \n Purge\n Limpiar\n \n \n OSD\n OSD\n \n \n purged\n limpiado\n \n \n destroy\n destruir\n \n \n destroyed\n destruido\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Grupos de colocaci\xf3n\n \n \n Read bytes\n Bytes de lectura\n \n \n Writes bytes\n Bytes de escritura\n \n \n Read ops\n Operaciones de lectura\n \n \n Write ops\n Operaciones de escritura\n \n \n Mark OSD \n \n \n Marcar OSD \n \n \n \n \n Mark \n \n \n Marcar \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n N\xfamero m\xe1ximo de reposiciones\n \n \n Recovery Max Active\n M\xe1ximo de recuperaciones activas\n \n \n Recovery Max Single Start\n M\xe1ximo de recuperaciones de inicio \xfanico\n \n \n Recovery Sleep\n Reposo de recuperaci\xf3n\n \n \n Custom\n Personalizar\n \n \n Updated OSD recovery speed priority "\n "\n \n Prioridad de velocidad de recuperaci\xf3n de OSD actualizada \n \n \n \n \n \n was initialized in the following OSD: \n \n \n \n se ha inicializado en el siguiente OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Trabajo\n \n \n Severity\n Gravedad\n \n \n Started\n Iniciado\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Actualizado\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Usado\n \n \n Avail.\n Dispon.\n \n \n Clean\n Limpio\n \n \n Working\n En curso\n \n \n Warning\n Advertencia\n \n \n Unknown\n Desconocido\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n activo\n \n \n no filesystems\n sin sistemas de archivos\n \n \n active\n activo\n \n \n standby\n reserva\n \n \n n/a\n n/d\n \n \n active daemon\n daemon activo\n \n \n quorum\n qu\xf3rum\n \n \n The NFS Ganesha service is not configured.\n El servicio NFS Ganesha no est\xe1 configurado.\n \n \n Transport\n Transportar\n \n \n CephFS User\n Usuario de CephFS\n \n \n CephFS Filesystem\n Sistemas de archivos CephFS\n \n \n (inherited from global config)\n (se hereda de la configuraci\xf3n global)\n \n \n inherited from global config\n se hereda de la configuraci\xf3n global\n \n \n -- Select what kind of user id squashing is performed --\n -- Seleccione el tipo de reducci\xf3n de privilegios de ID de usuario que se va a realizar --\n \n \n There are no daemons available.\n No hay ning\xfan daemon disponible.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Modo de cach\xe9\n \n \n Min Evict Age\n Antig\xfcedad m\xednima de expulsi\xf3n\n \n \n Min Flush Age\n Antig\xfcedad m\xednima de vaciado\n \n \n Target Max Bytes\n N\xfamero m\xe1ximo de bytes de destino\n \n \n Target Max Objects\n N\xfamero m\xe1ximo de objetos de destino\n \n \n No applications added\n No se ha a\xf1adido ninguna aplicaci\xf3n\n \n \n Applications limit reached\n Se ha alcanzado el l\xedmite de aplicaciones\n \n \n A pool can only have up to four applications definitions.\n Un repositorio solo puede tener hasta cuatro definiciones de aplicaciones.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caracteres permitidos: _, a-z, A-Z y 0-9\n \n \n Maximum length is 128 characters\n La longitud m\xe1xima es 128 caracteres\n \n \n Filter or add applications\n Filtrar o a\xf1adir aplicaciones\n \n \n Add application\n A\xf1adir aplicaci\xf3n\n \n \n pool\n pool\n \n \n erasure code profile\n perfil de c\xf3digo de borrado\n \n \n Replica Size\n Tama\xf1o de r\xe9plica\n \n \n Last Change\n \xdaltimo cambio\n \n \n Erasure Coded Profile\n Perfil de c\xf3digo de borrado\n \n \n Crush Ruleset\n Conjunto de reglas de CRUSH\n \n \n Write bytes\n Bytes de escritura\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n papelera\n \n \n Updated Object Gateway bucket "\n "\n \n Papelera de Object Gateway actualizada "\n "\n \n \n \n Created Object Gateway bucket "\n "\n \n Papelera de Object Gateway creada "\n "\n \n \n \n buckets\n papeleras\n \n \n capability\n capability\n \n \n user\n usuario\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Usuario de Object Gateway actualizado "\n "\n \n \n \n Created Object Gateway user "\n "\n \n Usuario de Object Gateway creado "\n "\n \n \n \n users\n usuarios\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \xc1mbito\n \n \n Read\n Lectura\n \n \n Create\n Crear\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Se ha creado la funci\xf3n \n \n \n \n \n Updated role \'\n \'\n \n Se ha actualizado la funci\xf3n \n \n \n \n \n System Role\n Funci\xf3n del sistema\n \n \n Deleted role \'\n \'\n \n Se ha suprimido la funci\xf3n \n \n \n \n \n Created user "\n "\n \n Se ha creado el usuario \n \n \n \n \n Update user\n Actualizar usuario\n \n \n Continue\n Continuar\n \n \n You were automatically logged out because your roles have been changed.\n La sesi\xf3n se ha cerrado autom\xe1ticamente porque sus funciones han cambiado.\n \n \n Updated user "\n "\n \n Se ha actualizado el usuario \n \n \n \n \n Deleted user "\n "\n \n Se ha suprimido el usuario \n \n \n \n \n Failed to delete user "\n "\n \n Error al suprimir el usuario \n \n \n \n \n You are currently logged in as "\n ".\n \n Ha entrado a la sesi\xf3n como \n \n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Cada objeto se divide en porciones de datos, cada una almacenada en un OSD distinto.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calcula las porciones de c\xf3digo para cada objeto y las almacena en distintos OSD.\n El n\xfamero de porciones de c\xf3digo es tambi\xe9n el n\xfamero de OSD que pueden estar inactivos sin que se pierdan datos.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n El complemento jerasure es el m\xe1s gen\xe9rico y flexible,\n y tambi\xe9n el complemento por defecto para los repositorios de c\xf3digo de borrado de Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n La t\xe9cnica m\xe1s flexible es reed_sol_van: basta con definir k y m.\n La t\xe9cnica cauchy_good puede ser m\xe1s r\xe1pida, pero hay que elegir con cuidado el tama\xf1o\n del paquete. reed_sol_r6_op, liberation, blaum_roth y liber8tion son todas equivalentes a RAID6\n en el sentido de que solo se pueden configurar con m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n La codificaci\xf3n se realizar\xe1 seg\xfan el tama\xf1o de los paquetes de bytes de uno en uno.\n Elegir el tama\xf1o correcto es dif\xedcil.\n La documentaci\xf3n de jerasure incluye informaci\xf3n completa sobre el tema.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Con el complemento jerasure, cuando un objeto de c\xf3digo de borrado se almacena\n en varios OSD, para recuperarse de la p\xe9rdida de un OSD es necesario leer de todos los dem\xe1s.\n Por ejemplo, si jerasure est\xe1 configurado con k=8 y m=4, cuando se pierde un OSD es necesario leer\n de los otros once para repararlo.\n\n El complemento de c\xf3digo de borrado lrc crea porciones de paridad local para poder realizar la recuperaci\xf3n con\n menos OSDs. Por ejemplo, is lrc est\xe1 configurado con k=8, m=4 y l=4, crear\xe1\n una porci\xf3n de paridad adicional para cada cuatro OSDs. Si se pierde un solo OSD, se puede recuperar\n solo con cuatro OSD, en lugar de con once.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Agrupa las porciones de c\xf3digo y de datos en localizaciones de conjuntos de tama\xf1o. Por ejemplo,\n para k=4 y m=2, si locality=3, se crean dos grupos de tres. Cada conjunto\n se puede recuperar sin leer porciones de otro conjunto.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n El tipo de papelera de CRUSH en el que se almacenar\xe1 cada\n conjunto de porciones definido por l. Por ejemplo, si se define como bastidor, cada grupo de l porciones\n se colocar\xe1 en un bastidor distinto. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step choose\n rack". Si no se define, no se realiza este tipo de agrupamiento.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n El complemento isa encapsula la biblioteca ISA. Solo funciona en procesadores Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n El complemento ISA viene en dos formatos de Reed Solomon.\n Si se define reed_sol_van, se trata de Vandermonde; si se define cauchy, se trata de Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n El complemento shec encapsula las distintas bibliotecas SHEC.\n Permite a Ceph recuperar datos de forma m\xe1s eficiente que los c\xf3digos de Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n El n\xfamero de porciones de paridad. Cada uno de ellas incluye cada porci\xf3n de datos\n en su intervalo de c\xe1lculo. El n\xfamero se usa como estimador de durabilidad. Por ejemplo, si c=2,\n 2 OSD pueden estar inactivos sin que se pierdan datos.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n El nombre de la papelera de CRUSH usado para el primer paso de la regla de CRUSH.\n Por ejemplo, "step take default".\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Aseg\xfarese de que no hay dos porciones en una papelera con el mismo\n dominio de error. Por ejemplo, si el dominio de error es host, no debe haber dos porciones almacenadas en el mismo\n host. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step chooseleaf host".\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Restringe la colocaci\xf3n a dispositivos de una clase concreta\n (p.ej., ssd o hdd) usando los nombre de clase de dispositivo CRUSH en el mapa de CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Define el nombre de directorio del que se cargar\xe1 el complemento de c\xf3digo de borrado.\n \n \n Allows all operations\n Permite todas las operaciones\n \n \n Allows only operations that do not modify the server\n Permite solo las operaciones que no modifican el servidor\n \n \n Does not allow read or write operations, but allows any other operation\n No permite operaciones de lectura o escritura, pero s\xed cualquier otra\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n No permite operaciones de lectura o escritura, ni ninguna otra que modifique los atributos del archivo o el contenido del directorio\n \n \n Allows no access at all\n No permite ning\xfan tipo de acceso\n \n \n -- Select the priority --\n -- Seleccione la prioridad --\n \n \n Low\n Baja\n \n \n High\n Alta\n \n \n Last 5 minutes\n \xdaltimos 5 minutos\n \n \n Last 15 minutes\n \xdaltimos 15 minutos\n \n \n Last 30 minutes\n \xdaltimos 30 minutos\n \n \n Last 1 hour (Default)\n \xdaltima hora (opci\xf3n por defecto)\n \n \n Last 3 hours\n \xdaltimas 3 horas\n \n \n Last 6 hours\n \xdaltimas 6 horas\n \n \n Last 12 hours\n \xdaltimas 12 horas\n \n \n Last 24 hours\n \xdaltimas 24 horas\n \n \n Yesterday\n Ayer\n \n \n Today\n Hoy\n \n \n Today so far\n Hoy hasta ahora\n \n \n Day before yesterday\n Anteayer\n \n \n Last 2 days\n Los \xfaltimos 2 d\xedas\n \n \n This day last week\n Este d\xeda la semana pasada\n \n \n Previous week\n La semana pasada\n \n \n This week\n Esta semana\n \n \n This week so far\n Esta semana hasta ahora\n \n \n Last 7 days\n Los \xfaltimos 7 d\xedas\n \n \n Previous month\n El mes pasado\n \n \n This month\n Este mes\n \n \n This month so far\n Este mes hasta ahora\n \n \n Last 30 days\n Los \xfaltimos 30 d\xedas\n \n \n Last 90 days\n Los \xfaltimos 90 d\xedas\n \n \n Last 6 months\n Los \xfaltimos 6 meses\n \n \n Last 1 year\n El \xfaltimo a\xf1o\n \n \n Previous year\n El a\xf1o pasado\n \n \n This year\n Este a\xf1o\n \n \n This year so far\n Este a\xf1o hasta ahora\n \n \n Last 2 years\n Los \xfaltimos 2 a\xf1os\n \n \n Last 5 years\n Los \xfaltimos 5 a\xf1os\n \n \n Information\n Informaci\xf3n\n \n \n No items selected.\n No se ha seleccionado ning\xfan elemento.\n \n \n Deselect item to select again\n Deseleccione el elemento para volver a seleccionarlo\n \n \n Selection limit reached\n Se ha alcanzado el l\xedmite de selecci\xf3n\n \n \n Filter tags\n Filtrar etiquetas\n \n \n Add badge\n A\xf1adir insignia\n \n \n There are no items available.\n No hay ning\xfan elemento disponible.\n \n \n Add\n A\xf1adir\n \n \n Remove\n Remove\n \n \n Clone\n Clonar\n \n \n Copy\n Copiar\n \n \n Deep Scrub\n Depuraci\xf3n profunda\n \n \n Destroy\n Destruir\n \n \n Flatten\n Aplanar\n \n \n Mark Down\n Marcar para desactivar\n \n \n Mark In\n Marcar para incluir\n \n \n Mark Lost\n Marcar como perdido\n \n \n Mark Out\n Marcar para excluir\n \n \n Protect\n Proteger\n \n \n Rename\n Renombrar\n \n \n Restore\n Restaurar\n \n \n Move to Trash\n Mover a la papelera\n \n \n Unprotect\n Desproteger\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Suprimido\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clonado\n \n \n Copied\n Copiado\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n S\xed\n \n \n No\n No\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Calidad del servicio\n \n \n BPS Limit\n L\xedmite de BPS\n \n \n The desired limit of IO bytes per second.\n El l\xedmite deseado de bytes de E/S por segundo.\n \n \n IOPS Limit\n L\xedmite de IOPS\n \n \n The desired limit of IO operations per second.\n El l\xedmite deseado de operaciones de E/S por segundo.\n \n \n Read BPS Limit\n L\xedmite de BPS de lectura\n \n \n The desired limit of read bytes per second.\n El l\xedmite deseado de bytes de lectura por segundo.\n \n \n Read IOPS Limit\n L\xedmite de IOPS de lectura\n \n \n The desired limit of read operations per second.\n El l\xedmite deseado de operaciones de lectura por segundo.\n \n \n Write BPS Limit\n L\xedmite de BPS de escritura\n \n \n The desired limit of write bytes per second.\n El l\xedmite deseado de bytes de escritura por segundo.\n \n \n Write IOPS Limit\n L\xedmite de IOPS de escritura\n \n \n The desired limit of write operations per second.\n El l\xedmite deseado de operaciones de escritura por segundo.\n \n \n BPS Burst\n R\xe1faga de BPS\n \n \n The desired burst limit of IO bytes.\n El l\xedmite deseado de r\xe1faga de bytes de E/S.\n \n \n IOPS Burst\n R\xe1faga de IOPS\n \n \n The desired burst limit of IO operations.\n El l\xedmite deseado de r\xe1faga de operaciones de E/S.\n \n \n Read BPS Burst\n R\xe1faga de BPS de lectura\n \n \n The desired burst limit of read bytes.\n El l\xedmite deseado de r\xe1faga de bytes de lectura.\n \n \n Read IOPS Burst\n R\xe1faga de IOPS de lectura\n \n \n The desired burst limit of read operations.\n El l\xedmite deseado de r\xe1faga de operaciones de lectura.\n \n \n Write BPS Burst\n R\xe1faga de BPS de escritura\n \n \n The desired burst limit of write bytes.\n El l\xedmite deseado de r\xe1faga de bytes de escritura.\n \n \n Write IOPS Burst\n R\xe1faga de IOPS de escritura\n \n \n The desired burst limit of write operations.\n El l\xedmite deseado de r\xe1faga de operaciones de escritura.\n \n \n Failed to \n \n \n \n Error al \n \n \n \n \n \n Executing\n Ejecutando\n \n \n execute\n ejecutar\n \n \n Executed\n Ejecutado\n \n \n unknown task\n tarea desconocida\n \n \n Creating\n Creando\n \n \n create\n crear\n \n \n Updating\n Actualizando\n \n \n update\n actualizar\n \n \n Deleting\n Suprimiendo\n \n \n delete\n suprimir\n \n \n RBD \'\n \'\n \n RBD \n \n \n \n \n RBD snapshot \'\n \'\n \n Instant\xe1nea RBD \n \n \n \n \n mirror mode for pool \'\n \'\n \n modo de duplicaci\xf3n para repositorio \n \n \n \n \n mirror peer for pool \'\n \'\n \n par de duplicaci\xf3n para repositorio \n \n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n \n contains snapshots.\n \n \n contiene instant\xe1neas.\n \n \n \n Cloning\n Clonando\n \n \n clone\n clonar\n \n \n Snapshot of \n must be protected.\n \n La instant\xe1nea de \n debe estar protegida.\n \n \n \n Copying\n Copiando\n \n \n copy\n copiar\n \n \n Flattening\n Aplanando\n \n \n flatten\n aplanar\n \n \n Flattened\n Aplanado\n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n Cannot unprotect \n because it contains child images.\n \n No es posible desproteger \n porque contiene im\xe1genes hijas.\n \n \n \n Cannot delete \n because it\'s protected.\n \n No es posible suprimir \n porque est\xe1 protegido.\n \n \n \n Rolling back\n Revirtiendo\n \n \n rollback\n revertir\n \n \n Rolled back\n Revertido\n \n \n Moving\n Moviendo\n \n \n move\n mover\n \n \n Moved\n Movido\n \n \n image \'\n \' to trash\n \n la imagen \n a la papelera\n \n \n \n Could not find image.\n No se encuentra la imagen.\n \n \n Restoring\n Restaurando\n \n \n restore\n restaurar\n \n \n Restored\n Restaurado\n \n \n image \'\n \' into \'\n \'\n \n la imagen \n en \n \n \n \n \n Image name \'\n \' is already in use.\n \n El nombre de imagen \n ya est\xe1 en uso.\n \n \n \n image \'\n \'\n \n la imagen \n \n \n \n \n Purging\n Limpiando\n \n \n purge\n limpiar\n \n \n Purged\n Limpiado\n \n \n all pools\n todos los repositorios\n \n \n images from \n \n \n im\xe1genes de \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n No es posible inhabilitar la duplicaci\xf3n porque contiene un par\n \n \n pool \'\n \'\n \n repositorio \n \n \n \n \n erasure code profile \'\n \'\n \n perfil de c\xf3digo de borrado \n \n \n \n \n target \'\n \'\n \n destino \n \n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},czA5:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MouseEvent=("undefined"!=typeof window&&window||global).MouseEvent,e.KeyboardEvent=("undefined"!=typeof window&&window||global).KeyboardEvent,e.Event=("undefined"!=typeof window&&window||global).Event},czMo:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}()},"d+Og":function(t,e,n){"use strict";var a=n("LvDl"),r=function(){function t(t){if(this.type=t,!this.isValidType())throw new Error("Wrong placement group category type");this.setTypeStates()}return t.prototype.isValidType=function(){return t.VALID_CATEGORIES.includes(this.type)},t.prototype.setTypeStates=function(){switch(this.type){case t.CATEGORY_CLEAN:this.states=["active","clean"];break;case t.CATEGORY_WORKING:this.states=["activating","backfill_wait","backfilling","creating","deep","degraded","forced_backfill","forced_recovery","peering","peered","recovering","recovery_wait","repair","scrubbing","snaptrim","snaptrim_wait"];break;case t.CATEGORY_WARNING:this.states=["backfill_toofull","backfill_unfound","down","incomplete","inconsistent","recovery_toofull","recovery_unfound","remapped","snaptrim_error","stale","undersized"];break;default:this.states=[]}},t.VALID_CATEGORIES=[t.CATEGORY_CLEAN="clean",t.CATEGORY_WORKING="working",t.CATEGORY_WARNING="warning",t.CATEGORY_UNKNOWN="unknown"],t}(),i=n("CcnG"),o=n("kJI8");n.d(e,"a",function(){return s});var s=function(){function t(){this.categories=this.createCategories()}return t.prototype.getAllTypes=function(){return r.VALID_CATEGORIES},t.prototype.getTypeByStates=function(t){var e=this,n=this.getPgStatesFromText(t);if(0===n.length)return r.CATEGORY_UNKNOWN;var i=a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(function(t){return a.intersection(e.categories[t].states,n).length}));if(i[r.CATEGORY_WARNING]>0)return r.CATEGORY_WARNING;var o=i[r.CATEGORY_WORKING];return n.length>i[r.CATEGORY_CLEAN]+o?r.CATEGORY_UNKNOWN:o?r.CATEGORY_WORKING:r.CATEGORY_CLEAN},t.prototype.createCategories=function(){return a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(function(t){return new r(t)}))},t.prototype.getPgStatesFromText=function(t){var e=t.replace(/[^a-z]+/g," ").trim().split(" ");return a.uniq(e)},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t},token:t,providedIn:o.a}),t}()},dC0D:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(a){return a.lift(new o(t,e,n))}}var o=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.accumulator,this.seed,this.hasSeed))},t}(),s=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.accumulator=n,i._seed=a,i.hasSeed=r,i.index=0,i}return a.__extends(e,t),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(t){this.hasSeed=!0,this._seed=t},enumerable:!0,configurable:!0}),e.prototype._next=function(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.accumulator(this.seed,t,n)}catch(a){this.destination.error(a)}this.seed=e,this.destination.next(e)},e}(r.a)},dEH0:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return t+" ms"},t}()},dEwP:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("F/XL"),r=n("Txjg");function i(){for(var t=[],e=0;e1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var a=Date.now();t.dropFrames+=(a-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,a=this.animations,i=0;i=e.numSteps?(r.callback(e.onAnimationComplete,[e],n),n.animating=!1,a.splice(i,1)):++i}}},dzgT:function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return d});var a=n("mrSG"),r=n("nkY7"),i=n("isby"),o=n("MGBS"),s=n("zotm"),u=n("IUTb"),c={};function l(){for(var t=[],e=0;e1&&t<5}function r(t,e,n,r){var i=t+" ";switch(n){case"s":return e||r?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return e||r?i+(a(t)?"sekundy":"sek\xfand"):i+"sekundami";case"m":return e?"min\xfata":r?"min\xfatu":"min\xfatou";case"mm":return e||r?i+(a(t)?"min\xfaty":"min\xfat"):i+"min\xfatami";case"h":return e?"hodina":r?"hodinu":"hodinou";case"hh":return e||r?i+(a(t)?"hodiny":"hod\xedn"):i+"hodinami";case"d":return e||r?"de\u0148":"d\u0148om";case"dd":return e||r?i+(a(t)?"dni":"dn\xed"):i+"d\u0148ami";case"M":return e||r?"mesiac":"mesiacom";case"MM":return e||r?i+(a(t)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return e||r?"rok":"rokom";case"yy":return e||r?i+(a(t)?"roky":"rokov"):i+"rokmi"}}t.defineLocale("sk",{months:e,monthsShort:n,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 4:case 5:return"[minul\xfd] dddd [o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},eTJe:function(t,e,n){"use strict";var a,r=n("gIcY"),i=n("LvDl"),o=n("VNr4"),s=(n("SgmB"),n("ZDA6"),n("sne2"),n("mtw6")),u=n("QFaf"),c=n("1Ni5");n("9nlD"),function(t){t.editing="editing"}(a||(a={}));var l=function(){return function(){}}();n.d(e,"a",function(){return d});var d=function(){function t(t,e,n,r,i,o,s){this.route=t,this.router=e,this.roleService=n,this.scopeService=r,this.notificationService=i,this.i18n=o,this.actionLabels=s,this.scopes=[],this.scopes_permissions=[],this.roleFormMode=a,this.resource=this.i18n("role"),this.createForm(),this.listenToChanges()}return t.prototype.createForm=function(){this.roleForm=new u.a({name:new r.i("",{validators:[r.A.required],asyncValidators:[c.a.unique(this.roleService.exists,this.roleService)]}),description:new r.i(""),scopes_permissions:new r.i({})})},t.prototype.ngOnInit=function(){this.columns=[{prop:"scope",name:this.i18n("All"),flexGrow:2,cellTemplate:this.cellScopeCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl}],this.router.url.startsWith("/user-management/roles/edit")?(this.mode=this.roleFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.mode===this.roleFormMode.editing?this.initEdit():this.initCreate()},t.prototype.initCreate=function(){var t=this;this.scopeService.list().subscribe(function(e){t.scopes=e,t.roleForm.get("scopes_permissions").setValue({})})},t.prototype.initEdit=function(){var t=this;this.roleForm.get("name").disable(),this.route.params.subscribe(function(e){var n=[];n.push(t.scopeService.list()),n.push(t.roleService.get(e.name)),Object(o.a)(n).subscribe(function(e){t.scopes=e[0],["name","description","scopes_permissions"].forEach(function(n){return t.roleForm.get(n).setValue(e[1][n])})})})},t.prototype.listenToChanges=function(){var t=this;this.roleForm.get("scopes_permissions").valueChanges.subscribe(function(e){var n=[];i.each(t.scopes,function(t){var a={read:!1,create:!1,update:!1,delete:!1};a.scope=t,t in e&&i.each(e[t],function(t){a[t]=!0}),n.push(a)}),t.scopes_permissions=n})},t.prototype.isRowChecked=function(t){var e=i.find(this.scopes_permissions,function(e){return e.scope===t});return!i.isUndefined(e)&&e.read&&e.create&&e.update&&e.delete},t.prototype.isHeaderChecked=function(t){var e=this,n=[t];return"scope"===t&&(n=["read","create","update","delete"]),n.every(function(t){return e.scopes_permissions.every(function(e){return e[t]})})},t.prototype.onClickCellCheckbox=function(t,e,n){void 0===n&&(n=null);var a=i.cloneDeep(this.roleForm.getValue("scopes_permissions")),r=[e];"scope"===e&&(r=["read","create","update","delete"]),t in a||(a[t]=[]),n&&n.target.checked||!i.isEqual(r.sort(),i.intersection(a[t],r).sort())?a[t]=i.union(a[t],r):(a[t]=i.difference(a[t],r),i.isEmpty(a[t])&&i.unset(a,t)),this.roleForm.get("scopes_permissions").setValue(a)},t.prototype.onClickHeaderCheckbox=function(t,e){var n=this,a=i.cloneDeep(this.roleForm.getValue("scopes_permissions")),r=[t];"scope"===t&&(r=["read","create","update","delete"]),i.each(r,function(t){i.each(n.scopes,function(n){e.target.checked?a[n]=i.union(a[n],[t]):(a[n]=i.difference(a[n],[t]),i.isEmpty(a[n])&&i.unset(a,n))})}),this.roleForm.get("scopes_permissions").setValue(a)},t.prototype.getRequest=function(){var t=this,e=new l;return["name","description","scopes_permissions"].forEach(function(n){return e[n]=t.roleForm.get(n).value}),e},t.prototype.createAction=function(){var t=this,e=this.getRequest();this.roleService.create(e).subscribe(function(){t.notificationService.show(s.a.success,t.i18n("Created role '{{role_name}}'",{role_name:e.name})),t.router.navigate(["/user-management/roles"])},function(){t.roleForm.setErrors({cdSubmitButton:!0})})},t.prototype.editAction=function(){var t=this,e=this.getRequest();this.roleService.update(e).subscribe(function(){t.notificationService.show(s.a.success,t.i18n("Updated role '{{role_name}}'",{role_name:e.name})),t.router.navigate(["/user-management/roles"])},function(){t.roleForm.setErrors({cdSubmitButton:!0})})},t.prototype.submit=function(){this.mode===this.roleFormMode.editing?this.editAction():this.createAction()},t}()},eajB:function(t,e,n){"use strict";n.d(e,"a",function(){return c}),n.d(e,"b",function(){return l}),n.d(e,"c",function(){return f}),n.d(e,"d",function(){return p});var a=n("CcnG"),r=n("rpEJ"),i=n("mrSG"),o=n("lqqz"),s=n("NJnL"),u=n("gI3B"),c=function(){return function(){this.adaptivePosition=!0,this.placement="top",this.triggers="hover focus",this.delay=0}}(),l=function(){function t(t){Object.assign(this,t)}return Object.defineProperty(t.prototype,"isBs3",{get:function(){return Object(r.d)()},enumerable:!0,configurable:!0}),t.prototype.ngAfterViewInit=function(){this.classMap={in:!1,fade:!1},this.classMap[this.placement]=!0,this.classMap["tooltip-"+this.placement]=!0,this.classMap.in=!0,this.animation&&(this.classMap.fade=!0),this.containerClass&&(this.classMap[this.containerClass]=!0)},t}(),d=0,f=function(){function t(t,e,n,r,i,o){this._elementRef=r,this._renderer=i,this._positionService=o,this.tooltipId=d++,this.tooltipChange=new a.EventEmitter,this.containerClass="",this.tooltipAnimation=!0,this.tooltipFadeDuration=150,this.ariaDescribedby="tooltip-"+this.tooltipId,this.tooltipStateChanged=new a.EventEmitter,this._tooltip=e.createLoader(this._elementRef,t,this._renderer).provide({provide:c,useValue:n}),Object.assign(this,n),this.onShown=this._tooltip.onShown,this.onHidden=this._tooltip.onHidden}return Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._tooltip.isShown},set:function(t){t?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"htmlContent",{set:function(t){Object(r.i)("tooltipHtml was deprecated, please use `tooltip` instead"),this.tooltip=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_placement",{set:function(t){Object(r.i)("tooltipPlacement was deprecated, please use `placement` instead"),this.placement=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_isOpen",{get:function(){return Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen},set:function(t){Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_enable",{get:function(){return Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled},set:function(t){Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled=!t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_appendToBody",{get:function(){return Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),"body"===this.container},set:function(t){Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),this.container=t?"body":this.container},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_popupClass",{set:function(t){Object(r.i)("tooltipClass deprecated")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_tooltipContext",{set:function(t){Object(r.i)("tooltipContext deprecated")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_tooltipPopupDelay",{set:function(t){Object(r.i)("tooltipPopupDelay is deprecated, use `delay` instead"),this.delay=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_tooltipTrigger",{get:function(){return Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers},set:function(t){Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers=(t||"").toString()},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this._tooltip.listen({triggers:this.triggers,show:function(){return t.show()}}),this.tooltipChange.subscribe(function(e){e||t._tooltip.hide()})},t.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},t.prototype.show=function(){var t=this;if(this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}}),!(this.isOpen||this.isDisabled||this._delayTimeoutId)&&this.tooltip){var e=function(){t._delayTimeoutId&&(t._delayTimeoutId=void 0),t._tooltip.attach(l).to(t.container).position({attachment:t.placement}).show({content:t.tooltip,placement:t.placement,containerClass:t.containerClass,id:t.ariaDescribedby})},n=function(){t._tooltipCancelShowFn&&t._tooltipCancelShowFn()};if(this.delay){var a=Object(u.a)(this.delay).subscribe(function(){e(),n()});if(this.triggers){var i=Object(r.f)(this.triggers);this._tooltipCancelShowFn=this._renderer.listen(this._elementRef.nativeElement,i[0].close,function(){a.unsubscribe(),n()})}}else e()}},t.prototype.hide=function(){var t=this;this._delayTimeoutId&&(clearTimeout(this._delayTimeoutId),this._delayTimeoutId=void 0),this._tooltip.isShown&&(this._tooltip.instance.classMap.in=!1,setTimeout(function(){t._tooltip.hide()},this.tooltipFadeDuration))},t.prototype.ngOnDestroy=function(){this._tooltip.dispose()},Object(i.__decorate)([Object(r.a)(),Object(i.__metadata)("design:type",Object)],t.prototype,"tooltip",void 0),t}(),p=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[c,o.a,s.a]}},t}()},"ej+x":function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("gI3B"),r=n("psW0"),i=n("klSw"),o=n("CcnG"),s=n("t/Na"),u=function(){function t(t){var e=this;this.http=t,this.API_URL="api/feature_toggles",this.REFRESH_INTERVAL=2e4,this.featureToggleMap$=Object(a.a)(0,this.REFRESH_INTERVAL).pipe(Object(r.a)(function(){return e.http.get(e.API_URL)}),Object(i.a)(1))}return t.prototype.get=function(){return this.featureToggleMap$},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(s.c))},token:t,providedIn:"root"}),t}()},ejVf:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.standard="standard",t.flex="flex",t.force="force"}(e.ColumnMode||(e.ColumnMode={}))},fB8H:function(t,e){t.exports='\n \n \n \n Toggle navigation\n \u5207\u6362\u5bfc\u822a\n \n \n Dashboard\n \u4eea\u8868\u76d8\n \n \n Cluster\n \u96c6\u7fa4\n \n \n Hosts\n \u4e3b\u673a\n \n \n Monitors\n Monitor\n \n \n OSDs\n OSD\n \n \n Configuration\n \u914d\u7f6e\u9879\n \n \n CRUSH map\n CRUSH \u7d22\u5f15\n \n \n Manager modules\n Manager \u6269\u5c55\u6a21\u5757\n \n \n Logs\n \u65e5\u5fd7\n \n \n Alerts\n \u8b66\u544a\n \n \n Silences\n Silences\n \n \n Pools\n \u5b58\u50a8\u6c60\n \n \n Block\n \u5757\u8bbe\u5907\n \n \n Images\n \u6620\u50cf\n \n \n Mirroring\n \u955c\u50cf\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n \u6587\u4ef6\u7cfb\u7edf\n \n \n Object Gateway\n \u5bf9\u8c61\u7f51\u5173\n \n \n Daemons\n \u5b88\u62a4\u8fdb\u7a0b\n \n \n Users\n \u7528\u6237\n \n \n Buckets\n \u5b58\u50a8\u6876\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n \u5173\u4e8e\n \u7684\u6570\u636e\uff0c\u6b63\u4e3a\n \n \n \u83b7\u53d6\u4e2d\uff0c\u8bf7\u7a0d\u5019...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n \u5173\u4e8e\u4e4b\u524d\u7f13\u5b58\u7684\u6570\u636e\n \uff0c\u6b63\u4e3a\n \n \n \u663e\u793a\u3002\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n \u5173\u4e8e\u6570\u636e\n \uff0c\u65e0\u6cd5\u4e3a\n \n \n \u52a0\u8f7d\u3002\n \u8bf7\u68c0\u67e5\u96c6\u7fa4\u7684\u5065\u5eb7\u72b6\u51b5\u3002\n \n \n \n Back\n \u8fd4\u56de\n \n \n Select a Language\n \u8bf7\u9009\u62e9\u8bed\u8a00\n \n \n Loading panel data...\n \u6b63\u5728\u52a0\u8f7d\u9762\u677f\u7684\u76f8\u5173\u6570\u636e\u2026\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u4ee5\u53ca\u6253\u5f00\u76d1\u63a7\u529f\u80fd\uff0c\n\u8bf7\u53c2\u9605\n \u6587\u6863\n \u3002\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n \u65e0 Grafana \u4eea\u8868\u76d8\u3002\u5173\u4e8e\u5982\u4f55\u4e3a Grafana \u6dfb\u52a0\n\u4eea\u8868\u76d8\uff0c\u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Grafana Time Picker\n Grafana \u65f6\u95f4\u9009\u62e9\u5de5\u5177\n \n \n Reset Settings\n \u91cd\u65b0\u8bbe\u7f6e\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \u65e0\u6cd5\u52a0\u8f7d\u6570\u636e\u3002\n \n \n selected\n \u9009\u4e2d\u4e2a\u6570\n X selected\n \n \n found\n \u547d\u4e2d\u4e2a\u6570\n X found\n \n \n total\n \u603b\u6570\n X total\n \n \n Edit\n \u7f16\u8f91\n \n \n Name\n \u540d\u79f0\n \n \n Description\n \u89e3\u91ca\n \n \n Long description\n \u66f4\u8be6\u5c3d\u7684\u89e3\u91ca\n \n \n Default\n \u7f3a\u7701\u503c\n \n \n Daemon default\n \u5b88\u62a4\u8fdb\u7a0b\u7684\u7f3a\u7701\u503c\n \n \n Services\n \u5bf9\u5e94\u7684\u670d\u52a1\n \n \n Values\n \u53ef\u9009\u503c\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8bbe\u7f6e\u7684\u503c\u592a\u5927\u4e86\uff01\u5e94\u4f4e\u4e8e \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8bbe\u7f6e\u7684\u503c\u592a\u5c0f\u4e86\uff01\u4e0d\u80fd\u4f4e\u4e8e \n \u3002\n \n \n \n Save\n \u4fdd\u5b58\n \n \n CRUSH map viewer\n \u68c0\u67e5 CRUSH \u7d22\u5f15\u56fe\n \n \n Hosts List\n \u4e3b\u673a\u5217\u8868\n \n \n Overall Performance\n \u603b\u4f53\u6027\u80fd\n \n \n No entries found\n \u65e0\u6cd5\u627e\u5230\u76f8\u5173\u6761\u76ee\n \n \n Cluster Logs\n \u96c6\u7fa4\u65e5\u5fd7\n \n \n Audit Logs\n \u5ba1\u8ba1\u65e5\u5fd7\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u6b63\u5728\u52a0\u8f7d\u76f8\u5173\u914d\u7f6e\u4fe1\u606f...\n \n \n The configuration could not be loaded.\n \u914d\u7f6e\u4fe1\u606f\u65e0\u6cd5\u52a0\u8f7d\u3002\n \n \n Edit Manager module\n \u7f16\u8f91 Manager \u6269\u5c55\u6a21\u5757\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \u8f93\u5165\u503c\u4e0d\u662f\u6709\u6548\u7684 UUID\uff0c\u5982\uff1a67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n \u8f93\u5165\u7684\u5e94\u8be5\u662f\u4e2a\u6709\u6548\u7684 IP \u5730\u5740\u3002\n \n \n This field is required.\n \u8bf7\u586b\u5199\u6b64\u680f\u76ee\uff01\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \u8f93\u5165\u503c\u8fc7\u5927\uff01\u5fc5\u987b\u5c0f\u4e8e\u6216\u7b49\u4e8e \n \u3002\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \u8f93\u5165\u503c\u8fc7\u5c0f\uff01\u5fc5\u987b\u5927\u4e8e\u6216\u7b49\u4e8e \n \u3002\n \n \n \n The entered value needs to be a number.\n \u8f93\u5165\u987b\u4e3a\u6570\u5b57\u3002\n \n \n The entered value needs to be a number or decimal.\n \u8f93\u5165\u7684\u5e94\u8be5\u662f\u4e00\u4e2a\u6d6e\u70b9\u6570\u6216\u8005\u5341\u8fdb\u5236\u6574\u6570\u3002\n \n \n Update\n \u66f4\u65b0\n \n \n Status\n \u72b6\u6001\n \n \n Cluster ID\n \u96c6\u7fa4 ID\n \n \n monmap modified\n monmap \u4fee\u6539\u65f6\u95f4\n \n \n monmap epoch\n monmap epoch\n \n \n quorum con\n quorum con \n \n \n quorum mon\n quorum mon\n \n \n required con\n required con\n \n \n required mon\n required mon\n \n \n In Quorum\n \u4ef2\u88c1\u6210\u5458\n \n \n Not In Quorum\n \u975e\u4ef2\u88c1\u6210\u5458\n \n \n Cancel\n \u53d6\u6d88\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \u60a8\u786e\u5b9a\u8981\n \u9009\u4e2d\u7684\n \u5417\uff1f\n \n \n \n Yes, I am sure.\n \u662f\u7684\uff0c\u6211\u786e\u5b9a\u3002\n \n \n Cluster-wide OSD Flags\n \u96c6\u7fa4\u8303\u56f4\u7684 OSD \u6807\u5fd7\n \n \n Submit\n \u63d0\u4ea4\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \u9ad8\u7ea7\u8bbe\u7f6e\u2026\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD \u6062\u590d\u4f18\u5148\u7ea7\n \n \n Priority\n \u4f18\u5148\u7ea7\n \n \n Customize priority values\n \u81ea\u5b9a\u4e49\u4f18\u5148\u7ea7\n \n \n This field is required!\n \u8fd9\u4e2a\u5b57\u6bb5\u662f\u5fc5\u586b\u7684\uff01\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8f93\u5165\u503c\u8fc7\u5927\uff01\u4e0d\u80fd\u5927\u4e8e \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8f93\u5165\u503c\u8fc7\u5c0f\uff01\u4e0d\u80fd\u5c0f\u4e8e \n \u3002\n \n \n \n Reweight OSD\n \u91cd\u65b0\u8bbe\u7f6e OSD \u7684\u6743\u91cd\n \n \n The value needs to be between 0 and 1.\n \u6743\u91cd\u503c\u5fc5\u987b\u5728 0 \u548c 1 \u4e4b\u95f4\n \n \n Reweight\n \u91cd\u8bbe\u6743\u91cd\n \n \n OSDs \n Scrub\n \n OSD \n \u6d17\u5237\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5ea6}}\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n \u5373\u5c06\u5bf9 OSD\n \n \n \u6267\u884c\n \u6d17\u5237\u3002\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5ea6} }\n \n \n OSDs List\n OSD \u5217\u8868\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \u5982\u679c\u7ee7\u7eed\uff0c\n OSD\n \n \n\u5c06\u88ab\u6807\u8bb0\u4e3a\n \n \n \u3002\n \n \n \n The OSD is not safe to destroy!\n OSD \u4e0d\u5b89\u5168\uff0c\u65e0\u6cd5\u9500\u6bc1\uff01\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \u5982\u679c\u7ee7\u7eed\uff0c\n OSD\n \n \n\u5c06\u88ab\n \n \n \u3002\n \n \n \n Details\n \u8be6\u60c5\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \u503c\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \u5173\u95ed\n \n \n Delete\n \u5220\u9664\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \u5065\u5eb7\u72b6\u51b5\n \n \n Statistics\n \u7edf\u8ba1\u6570\u636e\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u548c\u542f\u7528 NFS Ganesha \u7ba1\u7406\u529f\u80fd\uff0c\n\u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Clients\n \u5ba2\u6237\u7aef\n \n \n Any client can access\n \u4efb\u4f55\u5ba2\u6237\u7aef\u5747\u53ef\u8bbf\u95ee\n \n \n Addresses\n \u5730\u5740\n \n \n Required field\n \u5fc5\u586b\u9879\n \n \n Must contain one or more comma-separated values\n \u5fc5\u987b\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u9017\u53f7\u5206\u9694\u503c\n \n \n For example:\n \u4f8b\u5982\uff1a\n \n \n Access Type\n \u8bbf\u95ee\u7c7b\u578b\n \n \n Squash\n Squash\n \n \n Add clients\n \u6dfb\u52a0\u5ba2\u6237\u7aef\n \n \n Loading...\n \u6b63\u5728\u52a0\u8f7d\u2026\n \n \n -- No cluster available --\n -- \u65e0\u53ef\u7528\u96c6\u7fa4 --\n \n \n -- Select the cluster --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u96c6\u7fa4 --\n \n \n Add daemon\n \u6dfb\u52a0\u5b88\u62a4\u8fdb\u7a0b\n \n \n Storage Backend\n \u5b58\u50a8\u540e\u7aef\n \n \n -- No data pools available --\n -- \u6ca1\u6709\u53ef\u7528\u7684\u6570\u636e\u5b58\u50a8\u6c60 --\n \n \n -- Select the storage backend --\n -- \u8bf7\u9009\u62e9\u5b58\u50a8\u540e\u7aef --\n \n \n Object Gateway User\n \u5bf9\u8c61\u7f51\u5173\u7528\u6237\n \n \n -- No users available --\n -- \u65e0\u53ef\u9009\u7528\u6237 --\n \n \n -- Select the object gateway user --\n -- \u8bf7\u9009\u62e9\u5bf9\u8c61\u7f51\u5173\u7528\u6237 --\n \n \n CephFS User ID\n CephFS \u7528\u6237 ID\n \n \n -- No clients available --\n -- \u65e0\u53ef\u7528\u5ba2\u6237\u7aef --\n \n \n -- Select the cephx client --\n -- \u8bf7\u9009\u62e9 cephx \u5ba2\u6237\u7aef --\n \n \n CephFS Name\n CephFS \u540d\u79f0\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \u5b89\u5168\u6807\u7b7e\n \n \n Enable security label\n \u542f\u7528\u5b89\u5168\u6807\u7b7e\n \n \n CephFS Path\n CephFS \u8def\u5f84\n \n \n Path need to start with a \'/\' and can be followed by a word\n \u8def\u5f84\u9700\u4ee5\u201c/\u201d\u5f00\u5934\uff0c\u540e\u9762\u53ef\u8ddf\u5355\u8bcd\n \n \n New directory will be created\n \u5c06\u521b\u5efa\u65b0\u6587\u4ef6\u5939\n \n \n Path\n \u8def\u5f84\n \n \n Path can only be a single \'/\' or a word\n \u8def\u5f84\u53ea\u80fd\u662f\u5355\u4e2a\u201c/\u201d\u6216\u5355\u8bcd\n \n \n New bucket will be created\n \u5c06\u521b\u5efa\u65b0\u7684\u6876\n \n \n NFS Protocol\n NFS \u534f\u8bae\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \u6807\u7b7e\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \u88c5\u5165\u7684\u5907\u7528\u8bbf\u95ee\uff08\u4e0d\u5f97\u5305\u542b\u524d\u7f6e /\uff09\u3002\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \u5ba2\u6237\u7aef\u4e0d\u80fd\u88c5\u5165\u5b50\u76ee\u5f55\uff08\u5373\u5982\u679c\u6807\u8bb0\u4e3a foo\uff0c\u5219\u5ba2\u6237\u7aef\u65e0\u6cd5\u88c5\u5165 foo/baz\uff09\u3002\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u6807\u8bb0\u9009\u9879\uff0c\u53ef\u5c06\u540c\u4e00\u8def\u5f84\u5bfc\u51fa\u591a\u6b21\u3002\n \n \n Pseudo\n \u4f2a\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \u6b64 \n NFS v4\n \u5bfc\u51fa\u5728\n \u4f2a\u6587\u4ef6\u7cfb\u7edf\n \u4e2d\n \u6240\u5360\u7528\u7684\u4f4d\u7f6e\uff08\u5fc5\u987b\u552f\u4e00\uff09\u3002\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u4f2a\u9009\u9879\uff0c\u53ef\u5c06\u540c\u4e00\u8def\u5f84\u5bfc\u51fa\u591a\u6b21\u3002\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u6ca1\u6709\u53ef\u7528\u7684\u8bbf\u95ee\u7c7b\u578b --\n \n \n -- Select the access type --\n -- \u9009\u62e9\u8bbf\u95ee\u7c7b\u578b --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \u6ca1\u6709\u53ef\u7528\u7684 squash --\n \n \n --Select what kind of user id squashing is performed --\n -- \u9009\u62e9\u6267\u884c\u54ea\u79cd\u7c7b\u578b\u7684\u7528\u6237 ID \u533f\u540d\u8bbf\u95ee --\n \n \n Transport Protocol\n \u4f20\u8f93\u534f\u8bae\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n \u6b22\u8fce\u4f7f\u7528 Ceph\uff01\n The welcome message on the login page\n \n \n Username is required\n \u8bf7\u8f93\u5165\u7528\u6237\u540d\n \n \n Password is required\n \u8bf7\u8f93\u5165\u5bc6\u7801\n \n \n Login\n \u767b\u5f55\n \n \n Sorry, the user does not exist in Ceph.\n \u62b1\u6b49\uff0c\u6b64\u7528\u6237\u4e0d\u5b58\u5728\u3002\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \u8fd4\u56de\n \u767b\u5f55\u9875\n \u3002\u60a8\u5c06\u5728\u91cd\u65b0\u767b\u5f55\u65f6\u4ece\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u6ce8\u9500\u3002\n \n \n \n Forbidden\n \u7981\u6b62\u8bbf\u95ee\n \n \n Sorry, you are not allowed to see what you were looking for.\n \u62b1\u6b49\uff0c\u60a8\u65e0\u6743\u8bbf\u95ee\u8fd9\u4e2a\u9875\u9762\u3002\n \n \n Sorry, we could not find what you were looking for\n \u62b1\u6b49\uff0c\u6211\u4eec\u627e\u4e0d\u5230\u60a8\u8981\u770b\u7684\u4e1c\u897f\u3002\n \n \n Remove all\n \u5168\u90e8\u5df2\u8bfb\n \n \n Recent Notifications\n \u6700\u65b0\u7684\u901a\u77e5\n \n \n There are no background tasks.\n \u6ca1\u6709\u540e\u53f0\u4efb\u52a1\u6b63\u5728\u6267\u884c\u3002\n \n \n Background Tasks\n \u540e\u53f0\u4efb\u52a1\n \n \n Help\n \u5e2e\u52a9\n \n \n Documentation\n \u6587\u6863\n \n \n API\n API\n \n \n About\n \u5173\u4e8e\n \n \n Dashboard Settings\n \u4eea\u8868\u76d8\u8bbe\u7f6e\n \n \n User management\n \u7528\u6237\u7ba1\u7406\n \n \n Logged in user\n \u767b\u5f55\u7684\u7528\u6237\n \n \n Signed in as\n \n \n \n \n \u4ee5\u7528\u6237\u540d \n \n \n \n\u8fdb\u884c\u767b\u5f55\n \n \n \n Sign out\n \u767b\u51fa\n \n \n Name...\n \u540d\u79f0\u2026\n \n \n The chosen name is already in use.\n \u6240\u9009\u540d\u79f0\u5df2\u7ecf\u88ab\u4f7f\u7528\u3002\n \n \n Description...\n \u63cf\u8ff0\u2026\n \n \n Permissions\n \u6743\u9650\n \n \n Roles\n \u89d2\u8272\n \n \n Username\n \u7528\u6237\u540d\n \n \n Password\n \u5bc6\u7801\n \n \n Confirm password\n \u786e\u8ba4\u5bc6\u7801\n \n \n Password confirmation doesn\'t match the password.\n \u5bc6\u7801\u548c\u4e4b\u524d\u7684\u8f93\u5165\u4e0d\u5339\u914d\u3002\n \n \n Full name\n \u5168\u540d\n \n \n Email\n \u90ae\u7bb1\n \n \n Invalid email.\n \u90ae\u7bb1\u5730\u5740\u65e0\u6548\u3002\n \n \n You are about to remove "user read / update" permissions from your own user.\n \u60a8\u5373\u5c06\u53d6\u6d88\u60a8\u81ea\u5df1\u7528\u6237\u7684 "user read / update" \u6743\u9650\u3002\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \u5982\u679c\u60a8\u7ee7\u7eed\u7684\u8bdd\uff0c\u60a8\u4ee5\u540e\u5c31\u6ca1\u529e\u6cd5\u4e3a\u5176\u4ed6\u7528\u6237\u6dfb\u52a0\u6216\u8005\u5220\u9664\u89d2\u8272\u4e86\u3002\n \n \n Are you sure you want to continue?\n \u60a8\u786e\u5b9e\u8981\u7ee7\u7eed\u5417\uff1f\n \n \n Performance counters not available\n \u65e0\u6cd5\u8bfb\u53d6\u6027\u80fd\u8ba1\u6570\u5668\n \n \n Attributes (OSD map)\n OSD map\n \n \n Metadata not available\n \u5143\u6570\u636e\u4e0d\u53ef\u7528\n \n \n Metadata\n \u76f8\u5173\u5143\u6570\u636e\n \n \n Performance counter\n \u6027\u80fd\u8ba1\u6570\u5668\n \n \n Histogram not available: \n \n \n \u76f4\u65b9\u56fe\u4e0d\u53ef\u7528\uff1a\n \n \n \n \n Writes\n \u5199\u5165\u8bf7\u6c42\n \n \n Reads\n \u8bfb\u53d6\u8bf7\u6c42\n \n \n Histogram\n \u76f4\u65b9\u56fe\n \n \n Performance Details\n \u6027\u80fd\u8be6\u60c5\n \n \n Current values\n \u5f53\u524d\u503c\n \n \n Type\n \u7c7b\u578b\n \n \n Min\n \u4e0b\u9650\n \n \n Max\n \u4e0a\u9650\n \n \n Flags\n \u6807\u5fd7\n \n \n Source\n \u6765\u6e90\n \n \n Level\n \u7ea7\u522b\n \n \n Can be updated at runtime (editable)\n \u53ef\u5728\u8fd0\u884c\u65f6\u66f4\u65b0\uff08\u53ef\u7f16\u8f91\uff09\n \n \n Tags\n \u6807\u8bb0\n \n \n Enum values\n \u53ef\u9009\u9879\n \n \n See also\n \u53c2\u89c1\n \n \n Cluster Status\n \u96c6\u7fa4\u72b6\u6001\n \n \n Manager Daemons\n manager \u5b88\u62a4\u8fdb\u7a0b\n \n \n Object Gateways\n \u5bf9\u8c61\u7f51\u5173\n \n \n Metadata Servers\n metadata \u670d\u52a1\u5668\n \n \n iSCSI Gateways\n iSCSI \u7f51\u5173\n \n \n Client IOPS\n \u5ba2\u6237\u7aef IOPS\n \n \n Client Throughput\n \u5ba2\u6237\u7aef\u541e\u5410\u91cf\n \n \n Client Read/Write\n \u5ba2\u6237\u7aef\u8bfb/\u5199\n \n \n Recovery Throughput\n \u6062\u590d\u541e\u5410\u91cf\n \n \n Scrub\n \u6d17\u5237\n \n \n Performance\n \u6027\u80fd\n \n \n Raw Capacity\n \u57fa\u672c\u5bb9\u91cf\n \n \n Objects\n \u5bf9\u8c61\u6570\n \n \n PGs per OSD\n \u6bcf\u4e2a OSD \u7684 PG \u6570\n \n \n PG Status\n PG \u72b6\u6001\n \n \n Capacity\n \u5bb9\u91cf\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \u67e5\u770b\n \u65e5\u5fd7\n \u4ee5\u83b7\u5f97\u66f4\u591a\u7ec6\u8282\u3002\n \n \n \n Ranks\n \u6392\u4f4d\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \u5ba2\u6237\u7aef\uff1a\n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \u5c06\u6620\u50cf\u79fb\u81f3\u56de\u6536\u7ad9\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \u8981\u5c06 \n \n /\n \n \u79fb\u81f3\u56de\u6536\u7ad9\uff0c\n \u8bf7\u70b9\u51fb \n \u79fb\u52a8\u6620\u50cf\n \u3002\u6b64\u5916\uff0c\u53ef\u9009\u62e9\u8bbe\u7f6e\u4e00\u4e2a\u8fc7\u671f\u65f6\u95f4\u3002\n \n \n \n Protection expires at\n \u4fdd\u62a4\u671f\u4e00\u76f4\u5230\n \n \n NOT PROTECTED\n \u65e0\u4fdd\u62a4\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \u65e5\u671f\u683c\u5f0f\u6709\u95ee\u9898\u3002\u8bf7\u4f7f\u7528\u201cYYYY-MM-DD HH:mm:ss\u201d\u3002\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \u4fdd\u62a4\u671f\u9650\u5df2\u7ecf\u8fc7\u4e86\u3002\u8bf7\u8bbe\u7f6e\u4e00\u4e2a\u5c06\u6765\u7684\u65e5\u671f\uff0c\u6216\u8005\u6e05\u7a7a\u4e0d\u586b\u3002\n \n \n Move Image\n \u79fb\u52a8\u6620\u50cf\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \u6982\u89c8\n \n \n Targets\n \u76ee\u6807\n \n \n Discovery Authentication\n \u53d1\u73b0\u8eab\u4efd\u9a8c\u8bc1\n \n \n User\n \u7528\u6237\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u7528\u6237\u540d\u957f\u5ea6\u5fc5\u987b\u5728 8 \u5230 64 \u4e2a\u5b57\u7b26\u4e4b\u95f4\uff0c\u4e14\u53ea\u80fd\u5305\u542b\n\u4ee5\u4e0b\u5b57\u7b26\uff1a\u82f1\u6587\u5b57\u6bcd\u3001\u201c.\u201d\u3001\u201c@\u201d\u3001\u201c-\u201d\u3001\u201c_\u201d\u6216\u201c:\u201d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \u4e92\u8ba4\u8bc1\u7528\u6237\n \n \n Mutual Password\n \u4e92\u8ba4\u8bc1\u5bc6\u7801\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u548c\u542f\u7528 iSCSI \u76ee\u6807\u7ba1\u7406\u529f\u80fd\uff0c\n\u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Available information:\n \u53ef\u7528\u4fe1\u606f\uff1a\n \n \n iSCSI Targets not available\n \u65e0\u53ef\u7528 iSCSI \u76ee\u6807\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \u53ea\u5bf9\u542f\u52a8\u4e86 \n fast-diff\n \u529f\u80fd\u7684 RBD \u6620\u50cf\u53ef\u7528\n \n \n \n Pool\n \u5b58\u50a8\u6c60\n \n \n Data Pool\n \u6570\u636e\u5b58\u50a8\u6c60\n \n \n Created\n \u521b\u5efa\n \n \n Size\n \u5bb9\u91cf\n \n \n Object size\n \u5bf9\u8c61\u5927\u5c0f\n \n \n Features\n \u7279\u6027\n \n \n Provisioned\n \u4f9b\u7ed9\u5bb9\u91cf\n \n \n N/A\n N/A\n \n \n Total provisioned\n \u603b\u4f9b\u7ed9\u5bb9\u91cf\n \n \n Striping unit\n \u6761\u5e26\u5355\u5143\n \n \n Striping count\n \u6761\u5e26\u4e2a\u6570\n \n \n Parent\n \u7236\u8282\u70b9\n \n \n Block name prefix\n \u5757\u5b58\u50a8\u540d\u5b57\u524d\u7f00\n \n \n Order\n order\n \n \n Snapshots\n \u5feb\u7167\n \n \n Image\n \u6620\u50cf\n \n \n This setting overrides the global value\n \u6b64\u8bbe\u7f6e\u4f1a\u8986\u76d6\u5168\u5c40\u503c\n \n \n Global\n \u5168\u5c40\n \n \n This is the global value. No value for this option has been set for this image.\n \u8be5\u503c\u4e3a\u5168\u5c40\u503c\u3002\u6ca1\u6709\u4e3a\u6b64\u6620\u50cf\u8bbe\u7f6e\u6b64\u9009\u9879\u7684\u503c\u3002\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u4e0d\u5141\u8bb8\u4f7f\u7528\u201c/\u201d\u548c\u201c@\u201d\u3002\n \n \n -- No rbd pools available --\n -- \u6ca1\u6709\u53ef\u7528\u7684 RBD \u5b58\u50a8\u6c60 --\n \n \n -- Select a pool --\n -- \u8bf7\u9009\u62e9\u5b58\u50a8\u6c60 --\n \n \n Use a dedicated data pool\n \u4f7f\u7528\u4e00\u4e2a\u4e13\u7528\u7684\u6570\u636e\u6c60\n \n \n Data pool\n \u6570\u636e\u6c60\n \n \n Dedicated pool that stores the object-data of the RBD.\n \u4e3a\u4fdd\u5b58 RBD \u7684\u5bf9\u8c61\u6570\u636e\u5355\u72ec\u5206\u914d\u7684\u5b58\u50a8\u6c60\u3002\n \n \n e.g., 10GiB\n \u5982 10 GiB\n \n \n You have to increase the size.\n \u60a8\u9700\u8981\u8bbe\u7f6e\u5927\u4e00\u4e9b\u7684\u5bb9\u91cf\u3002\n \n \n Advanced\n \u9ad8\u7ea7\u8bbe\u7f6e\n \n \n Striping\n \u6761\u5e26\n \n \n Stripe unit\n \u6761\u5e26\u5355\u5143\u5927\u5c0f\n \n \n -- Select stripe unit --\n -- \u9009\u62e9\u6761\u5e26\u5355\u5143\u5927\u5c0f --\n \n \n This field is required because stripe count is defined!\n \u56e0\u4e3a\u8bbe\u7f6e\u4e86\u6761\u5e26\u4e2a\u6570\uff0c\u6240\u4ee5\u8fd9\u4e2a\u5b57\u6bb5\u662f\u5fc5\u9009\u7684\uff01\n \n \n Stripe unit is greater than object size.\n \u6761\u5e26\u5355\u5143\u5927\u5c0f\u8d85\u8fc7\u4e86\u5bf9\u8c61\u5927\u5c0f\u3002\n \n \n Stripe count\n \u6761\u5e26\u4e2a\u6570\n \n \n This field is required because stripe unit is defined!\n \u56e0\u4e3a\u8bbe\u7f6e\u4e86\u6761\u5e26\u5355\u5143\u5927\u5c0f\uff0c\u6240\u4ee5\u8fd9\u4e2a\u5b57\u6bb5\u662f\u5fc5\u9009\u7684\uff01\n \n \n Stripe count must be greater than 0.\n \u6761\u5e26\u7684\u4e2a\u6570\u5fc5\u987b\u5927\u4e8e 0\u3002\n \n \n \n RBD Snapshot\n \n \n RBD \u5feb\u7167\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {\u6539\u540d} other {\u521b\u5efa} }\n \n \n \n Snapshot\n \n \n \u5feb\u7167\n \n \n \n PROTECTED\n \u53d7\u4fdd\u62a4\u7684\n \n \n UNPROTECTED\n \u65e0\u4fdd\u62a4\u7684\n \n \n You are about to rollback\n \u60a8\u5373\u5c06\u8fdb\u884c\u56de\u6eda\u64cd\u4f5c\n \n \n Purge Trash\n \u6e05\u7a7a\u56de\u6536\u7ad9\n \n \n To purge, select one or All images and click\n \u8981\u5f7b\u5e95\u6e05\u7a7a\u7684\u8bdd\uff0c\u8bf7\u9009\u62e9\u5355\u4e2a\u6216\u6240\u6709\u7684\u6620\u50cf\uff0c\u7136\u540e\u70b9\u51fb\n \n \n Pool:\n \u5b58\u50a8\u6c60\uff1a\n \n \n Pool name...\n \u5b58\u50a8\u6c60\u540d\u79f0\u2026\n \n \n All\n \u5168\u9009\n \n \n Restore Image\n \u6062\u590d\u6620\u50cf\n \n \n To restore\n \u8981\u6062\u590d\n \n \n type the image\'s new name and click\n \u8f93\u5165\u6620\u50cf\u7684\u65b0\u540d\u79f0\uff0c\u5e76\u70b9\u51fb\n \n \n New Name\n \u65b0\u540d\u79f0\n \n \n Expired at\n \u8fc7\u671f\u65f6\u95f4\n \n \n Protected until\n \u4fdd\u62a4\u671f\u9650\n \n \n This image is protected until \n .\n \n \u4e00\u76f4\u5230\n \uff0c\u8be5\u6620\u50cf\u90fd\u4f1a\u53d7\u4fdd\u62a4\u3002\n \n \n \n Trash\n \u56de\u6536\u7ad9\n \n \n iSCSI Topology\n iSCSI \u7ed3\u6784\u56fe\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \u901a\u5e38\u65e0\u987b\u6539\u53d8\u8fd9\u4e9b\u9ed8\u8ba4\u53c2\u6570\u503c\u3002\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \u8bbe\u7f6e\n \n \n Backstore\n \u540e\u5907\u5b58\u50a8\n \n \n Confirm\n \u786e\u8ba4\n \n \n Advanced Settings\n \u9ad8\u7ea7\u8bbe\u7f6e\n \n \n Target IQN\n \u76ee\u6807\u9650\u5b9a\u540d\n \n \n IQN has wrong pattern.\n IQN \u683c\u5f0f\u9519\u8bef\u3002\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN \u5e94\u7531\u4ee5\u4e0b\u683c\u5f0f\u6784\u6210\uff1a\u201ciqn.$year-$month.$reversedAddress:$definedName\u201d\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \u4f8b\u5982\uff1aiqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \u66f4\u591a\u4fe1\u606f\n \n \n This target has modified advanced settings.\n \u6b64\u76ee\u6807\u7684\u9ad8\u7ea7\u8bbe\u7f6e\u9879\u5b58\u5728\u4fee\u6539\u3002\n \n \n Portals\n \u7aef\u53e3\n \n \n At least \n gateways are required.\n \n \u81f3\u5c11\u9700\u8981 \n \u4e2a\u7f51\u5173\u3002\n \n \n \n Add portal\n \u6dfb\u52a0\u7aef\u53e3\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \u6b64\u6620\u50cf\u7684\u8bbe\u7f6e\u9879\u5b58\u5728\u4fee\u6539\u3002\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \u6dfb\u52a0\u6620\u50cf\n \n \n ACL authentication\n ACL \u8eab\u4efd\u9a8c\u8bc1\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \u6388\u6743\u4eba\n \n \n Initiator\n \u6388\u6743\u4eba\n \n \n Client IQN\n \u5ba2\u6237\u7aef IQN\n \n \n Initiator IQN needs to be unique.\n \u6388\u6743\u4eba IQN \u5fc5\u987b\u552f\u4e00\u3002\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u7528\u6237\u540d\u957f\u5ea6\u5fc5\u987b\u5728 8 \u5230 64 \u4e2a\u5b57\u7b26\u4e4b\u95f4\uff0c\u4e14\u53ea\u80fd\u5305\u542b\n\u4ee5\u4e0b\u5b57\u7b26\uff1a\u82f1\u6587\u5b57\u6bcd\u3001\u201c.\u201d\u3001\u201c@\u201d\u3001\u201c-\u201d\u3001\u201c_\u201d\u6216\u201c:\u201d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \u6388\u6743\u4eba\u5c5e\u4e8e\u7fa4\u7ec4\u3002\u6620\u50cf\u987b\u5728\u7fa4\u7ec4\u4e2d\u8fdb\u884c\u8bbe\u7f6e\u3002\n \n \n No items added.\n \u65e0\u9879\u76ee\u6dfb\u52a0\u3002\n \n \n Add initiator\n \u6dfb\u52a0\u6388\u6743\u4eba\n \n \n Groups\n \u7fa4\u7ec4\n \n \n Group\n \u7fa4\u7ec4\n \n \n Add group\n \u6dfb\u52a0\u7fa4\u7ec4\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD \u914d\u7f6e\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \u5220\u9664\u672c\u5730\u7684\u914d\u7f6e\u9879\uff0c\u6539\u7528\u66f4\u9ad8\u4f5c\u7528\u57df\u7684\u914d\u7f6e\u503c\u3002\n \n \n The mininum value is 0\n \u6700\u5c0f\u503c\u4e3a 0\n \n \n Issues\n \u95ee\u9898\n \n \n Syncing\n \u6b63\u5728\u540c\u6b65\n \n \n Ready\n \u5df2\u5c31\u7eea\n \n \n Edit pool mirror mode\n \u7f16\u8f91\u5b58\u50a8\u6c60\u955c\u50cf\u6a21\u5f0f\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \u8981\u7f16\u8f91\u5b58\u50a8\u6c60\n \n \n \xa0\n \u7684\u955c\u50cf\u6a21\u5f0f\uff0c\u8bf7\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u4e00\u9879\uff0c\u5e76\u70b9\u51fb\xa0\n \u66f4\u65b0\n \u3002\n \n \n \n Mode\n \u6a21\u5f0f\n \n \n Peer clusters must be removed prior to disabling mirror.\n \u5728\u7981\u7528\u955c\u50cf\u529f\u80fd\u524d\u5fc5\u987b\u5148\u79fb\u9664\u540c\u4f34\u96c6\u7fa4\u3002\n \n \n \n \n pool mirror peer\n \n \n \n\u5b58\u50a8\u6c60\u955c\u50cf\u540c\u4f34\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {\u7f16\u8f91} other {\u6dfb\u52a0} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \u5b58\u50a8\u6c60\n \n \n \n \u7684\u5b58\u50a8\u6c60\u955c\u50cf\u540c\u4f34\u5c5e\u6027\uff0c\u5e76\u70b9\u51fb\n \u63d0\u4ea4\n \u3002\n \n \n \n Cluster Name\n \u96c6\u7fa4\u540d\u79f0\n \n \n The cluster name is not valid.\n \u96c6\u7fa4\u540d\u79f0\u65e0\u6548\u3002\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n CephX ID \u65e0\u6548\u3002\n \n \n Monitor Addresses\n Monitor \u5730\u5740\n \n \n Comma-delimited addresses...\n \u9017\u53f7\u5206\u5272\u7684\u5730\u5740...\n \n \n The monitory address is not valid.\n Monitor \u5730\u5740\u65e0\u6548\u3002\n \n \n CephX Key\n CephX \u5bc6\u94a5\n \n \n Base64-encoded key...\n Base64 \u7f16\u7801\u7684\u5bc6\u94a5...\n \n \n CephX key must be base64 encoded.\n CephX \u5bc6\u94a5\u5fc5\u987b\u662f base64 \u7f16\u7801\u7684\u3002\n \n \n Pools List\n \u5b58\u50a8\u6c60\u5217\u8868\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \u540d\u79f0\u53ea\u80fd\u7531\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u77ed\u5212\u7ebf\u548c\u4e0b\u5212\u7ebf\u7ec4\u6210\u3002\n \n \n The chosen erasure code profile name is already in use.\n \u6b64\u7ea0\u5220\u7801\u914d\u7f6e\u540d\u79f0\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n Plugin\n \u7ea0\u5220\u7801\u7b97\u6cd5\n \n \n Data chunks (k)\n \u6570\u636e\u5757 (k)\n \n \n Must be equal to or greater than 2.\n \u5fc5\u987b\u5927\u4e8e\u7b49\u4e8e 2\n \n \n Coding chunks (m)\n \u6821\u9a8c\u5757 (m)\n \n \n Must be equal to or greater than 1.\n \u5fc5\u987b\u5927\u4e8e\u7b49\u4e8e 1\n \n \n Durability estimator (c)\n \u6301\u4e45\u56e0\u5b50 (c)\n \n \n Locality (l)\n \u5c40\u90e8\u6027\u56e0\u5b50 (l)\n \n \n Crush failure domain\n CRUSH \u6545\u969c\u57df\n \n \n Crush Locality\n CRUSH \u5c40\u90e8\u6027\n \n \n None\n \u65e0\n \n \n Technique\n \u7b97\u6cd5\n \n \n Packetsize\n packetsize\n \n \n Crush root\n CRUSH \u6839\n \n \n Crush device class\n CRUSH \u8bbe\u5907\u7c7b\u578b\n \n \n any\n \u4efb\u610f\n \n \n Directory\n \u76ee\u5f55\n \n \n The chosen Ceph pool name is already in use.\n \u6b64 Ceph \u5b58\u50a8\u6c60\u540d\u79f0\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n Pool type\n \u5b58\u50a8\u6c60\u7c7b\u578b\n \n \n -- Select a pool type --\n -- \u8bf7\u9009\u62e9\u5b58\u50a8\u6c60\u7684\u7c7b\u578b --\n \n \n Placement groups\n \u5f52\u7f6e\u7ec4 (PG)\n \n \n At least one placement group is needed!\n \u81f3\u5c11\u9700\u8981\u4e00\u4e2a\u5f52\u7f6e\u7ec4\uff01\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \u60a8\u7684\u96c6\u7fa4\u6ca1\u6cd5\u652f\u6301\u8fd9\u4e48\u591a\u7684 PG\u3002\u8bf7\u91cd\u65b0\u8ba1\u7b97\u9700\u8981\u7684 PG \u4e2a\u6570\u3002\n \n \n Calculation help\n \u5728\u7ebf PG \u8ba1\u7b97\u5668\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \u5df2\u6839\u636e\u5f53\u524d\u60c5\u51b5\u4e3a\u60a8\u63a8\u7b97\u51fa\u4e86 PG \u7684\u8bbe\u7f6e\uff0c\u60a8\n\u6700\u597d\u5728\u63d0\u4ea4\u4e4b\u524d\u786e\u8ba4\u8fd9\u4e9b\u8bbe\u7f6e\u662f\u5408\u9002\u7684\u3002\n \n \n Crush ruleset\n CRUSH \u7b97\u6cd5\u89c4\u5219\u7ec4\n \n \n -- Select a crush rule --\n -- \u9009\u62e9 CRUSH \u89c4\u5219 --\n \n \n Crush rule\n CRUSH \u89c4\u5219\n \n \n Crush steps\n CRUSH \u6b65\u9aa4\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \u5f53\u524d\u7684\u96c6\u7fa4\u65e0\u6cd5\u4f7f\u7528\u8be5\u89c4\u5219\uff0c\u56e0\u4e3a\u96c6\u7fa4\u7684 OSD \u4e2a\u6570\u8fc7\u5c11\uff0c\n \u65e0\u6cd5\u6ee1\u8db3\u89c4\u5219\u6240\u9700\u7684\u6700\u4f4e OSD \u6570\u91cf\u3002\n \n \n Replicated size\n \u526f\u672c\u4e2a\u6570\n \n \n Minimum: \n \n \n \u6700\u4f4e\uff1a\n \n \n \n \n Maximum: \n \n \n \u6700\u9ad8\uff1a\n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \u8bbe\u7f6e\u7684\u8d85\u8fc7\u4e86\u9650\u5236\u3002\u8bbe\u7f6e\u503c\u5e94\u8be5\u5728\n \u548c \n \u4e2d\u95f4\u4e3a\u5b9c.\n \n \n \n Erasure code profile\n \u7ea0\u5220\u7801\u914d\u7f6e\n \n \n -- No erasure code profile available --\n -- \u65e0\u7ea0\u5220\u7801\u914d\u7f6e\u53ef\u9009 --\n \n \n -- Select an erasure code profile --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u7ea0\u5220\u7801\u914d\u7f6e --\n \n \n EC Overwrites\n EC \u91cd\u5199 (overwrite)\n \n \n Applications\n \u5e94\u7528\u7c7b\u578b\n \n \n Compression\n \u538b\u7f29\n \n \n Algorithm\n \u7b97\u6cd5\n \n \n -- No erasure compression algorithm available --\n -- \u65e0\u53ef\u7528\u7684\u7ea0\u5220\u7801\u538b\u7f29\u7b97\u6cd5 --\n \n \n Minimum blob size\n blob \u5927\u5c0f\u4e0b\u9650\n \n \n e.g., 128KiB\n \u6bd4\u5982 128 KiB\n \n \n Value should be greater than 0\n \u53d6\u503c\u5fc5\u987b\u5927\u4e8e 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n blob \u5927\u5c0f\u4e0a\u9650\n \n \n e.g., 512KiB\n \u5982 512KiB\n \n \n Value should be greater than the minimum blob size\n \u53d6\u503c\u5fc5\u987b\u5927\u4e8e blob \u5927\u5c0f\u4e0b\u9650\n \n \n Ratio\n \u6bd4\u4f8b\n \n \n Compression ratio\n \u538b\u7f29\u7387\n \n \n Value should be between 0.0 and 1.0\n \u53d6\u503c\u5fc5\u987b\u5728 0.0 \u548c 1.0 \u4e4b\u95f4\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \u65e0\u6cd5\u65b0\u5efa\u540d\u5b57\u4e2d\u6709\u201c/\u201d\u7684 RBD \u5b58\u50a8\u6c60\u3002\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \u8bf7\u91cd\u65b0\u547d\u540d\uff0c\u6216\u8005\u628a\u5b58\u50a8\u6c60\u7684\u201crbd\u201d\u5e94\u7528\u6807\u8bb0\u53bb\u6389\u3002\n \n \n Cache Tiers Details\n \u7f13\u5b58\u5c42\u8be6\u7ec6\u4fe1\u606f\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u548c\u542f\u7528\u5bf9\u8c61\u7f51\u5173\u7684\u529f\u80fd\uff0c\n \u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Daemons List\n \u5b88\u62a4\u8fdb\u7a0b\u5217\u8868\n \n \n Performance Counters\n \u6027\u80fd\u8ba1\u6570\u5668\n \n \n Loading bucket data...\n \u6b63\u5728\u52a0\u8f7d\u5b58\u50a8\u6876\u6570\u636e\u2026\n \n \n The bucket data could not be loaded.\n \u5b58\u50a8\u6876\u6570\u636e\u65e0\u6cd5\u52a0\u8f7d\u3002\n \n \n Id\n ID\n \n \n The value is not valid.\n \u8f93\u5165\u503c\u65e0\u6548\u3002\n \n \n Owner\n \u6240\u6709\u8005\n \n \n -- Select a user --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u7528\u6237 --\n \n \n ID\n ID\n \n \n Index type\n \u7d22\u5f15\u7c7b\u578b\n \n \n Placement rule\n \u5f52\u7f6e\u89c4\u5219\n \n \n Marker\n \u6807\u8bc6\n \n \n Maximum marker\n max marker\n \n \n Version\n \u7248\u672c\n \n \n Master version\n \u4e3b\u7248\u672c\n \n \n Modification time\n \u4fee\u6539\u65f6\u95f4\n \n \n Zonegroup\n zonegroup\n \n \n Bucket quota\n \u5b58\u50a8\u6876\u914d\u989d\n \n \n Enabled\n \u5f00\u542f\n \n \n Maximum size\n \u6700\u5927\u6570\u76ee\n \n \n Unlimited\n \u65e0\u9650\u5236\n \n \n Maximum objects\n \u6700\u5927\u5bf9\u8c61\u6570\u76ee\n \n \n -- Select a username --\n -- \u8bf7\u9009\u62e9\u7528\u6237\u540d --\n \n \n Auto-generate key\n \u81ea\u52a8\u751f\u6210\u5bc6\u94a5\n \n \n Access key\n \u8bbf\u95ee\u5bc6\u94a5\n \n \n Secret key\n \u79d8\u5bc6\u5bc6\u94a5\n \n \n Email address\n \u90ae\u7bb1\n \n \n Suspended\n \u51bb\u7ed3\n \n \n System\n \u7cfb\u7edf\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {\u5426} 1 {\u662f} }\n \n \n Maximum buckets\n \u6700\u5927\u5b58\u50a8\u6876\u6570\u76ee\n \n \n Subusers\n \u5b50\u7528\u6237\n \n \n Capabilities\n \u7528\u6237\u6743\u9650\n \n \n User quota\n \u7528\u6237\u914d\u989d\n \n \n Show\n \u663e\u793a\n \n \n Keys\n \u5bc6\u94a5\n \n \n -- Select a type --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u7c7b\u578b --\n \n \n Permission\n \u6743\u9650\n \n \n -- Select a permission --\n -- \u8bf7\u9009\u62e9\u6743\u9650\u7c7b\u578b --\n \n \n Subuser\n \u5b50\u7528\u6237\n \n \n The chosen subuser ID is already in use.\n \u6240\u9009\u7684\u5b50\u7528\u6237 ID \u5df2\u88ab\u4f7f\u7528\u3002\n \n \n read, write\n \u8bfb\u3001\u5199\n \n \n full\n \u5168\u90e8\n \n \n Swift key\n Swift \u5bc6\u94a5\n \n \n Auto-generate secret\n \u81ea\u52a8\u751f\u6210\u5bc6\u94a5\n \n \n Loading user data...\n \u6b63\u5728\u52a0\u8f7d\u7528\u6237\u6570\u636e\u2026\n \n \n The user data could not be loaded.\n \u7528\u6237\u6570\u636e\u65e0\u6cd5\u52a0\u8f7d\u3002 \n \n \n The chosen user ID is already in use.\n \u6240\u9009\u7684\u7528\u6237 ID \u5df2\u88ab\u4f7f\u7528\u3002\n \n \n This is not a valid email address.\n \u65e0\u6548\u7684\u90ae\u7bb1\u5730\u5740\u3002\n \n \n The chosen email address is already in use.\n \u6b64\u90ae\u7bb1\u5730\u5740\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n Max. buckets\n \u5b58\u50a8\u6876\u4e2a\u6570\u7684\u4e0a\u9650\n \n \n The entered value must be >= 0.\n \u8bbe\u7f6e\u7684\u503c\u5fc5\u987b >= 0\u3002\n \n \n S3 key\n S3 \u5bc6\u94a5\n \n \n There are no subusers.\n \u6ca1\u6709\u5b50\u7528\u6237\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \u6ca1\u6709\u4efb\u4f55\u5bc6\u94a5\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n \u6743\u9650\u4e3a\u7a7a\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \u7a7a\u95f4\u65e0\u9650\u5236\n \n \n Max. size\n \u7a7a\u95f4\u4e0a\u9650\n \n \n Unlimited objects\n \u5bf9\u8c61\u4e2a\u6570\u65e0\u9650\u5236\n \n \n Max. objects\n \u5bf9\u8c61\u4e2a\u6570\u4e0a\u9650\n \n \n Current\n \u5f53\u524d\n \n \n Updated discovery authentication\n \u5df2\u66f4\u65b0\u53d1\u73b0\u8eab\u4efd\u9a8c\u8bc1\n \n \n There are no portals available.\n \u65e0\u53ef\u7528\u7aef\u53e3\u3002\n \n \n There are no images available.\n \u65e0\u53ef\u7528\u6620\u50cf\u3002\n \n \n There are no images available. Please make sure you add an image to the target.\n \u65e0\u53ef\u7528\u6620\u50cf\u3002\u8bf7\u786e\u4fdd\u4e3a\u76ee\u6807\u6dfb\u52a0\u4e00\u4e2a\u6620\u50cf\u3002\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \u65e0\u53ef\u7528\u6388\u6743\u4eba\u3002\u8bf7\u786e\u4fdd\u4e3a\u76ee\u6807\u6dfb\u52a0\u4e00\u4e2a\u6388\u6743\u4eba\u3002\n \n \n target\n target\n \n \n Target\n \u76ee\u6807\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \u72b6\u6001\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \u8bfb\u5b57\u8282\u6570\n \n \n Write Bytes\n \u5199\u5b57\u8282\u6570\n \n \n Read Ops\n \u8bfb\u8bf7\u6c42\u6570\n \n \n Write Ops\n \u5199\u8bf7\u6c42\u6570\n \n \n A/O Since\n \u6d3b\u52a8/\u4f18\u5316\u81ea\n \n \n Instance\n \u5b9e\u4f8b\n \n \n Hostname\n \u4e3b\u673a\u540d\n \n \n Issue\n \u95ee\u9898\n \n \n Progress\n \u8fdb\u5ea6\n \n \n Disabled\n \u7981\u7528\n \n \n Edit Mode\n \u7f16\u8f91\u6a21\u5f0f\n \n \n Add Peer\n \u6dfb\u52a0 peer\n \n \n Edit Peer\n \u7f16\u8f91 peer\n \n \n Delete Peer\n \u5220\u9664 peer\n \n \n Leader\n Leader\n \n \n # Local\n # \u672c\u5730\n \n \n # Remote\n # \u8fdc\u7a0b\n \n \n mirror peer\n \u955c\u50cf peer\n \n \n Key\n \u5bc6\u94a5\n \n \n RBD\n RBD\n \n \n Deep flatten\n \u5b8c\u5168\u5c55\u5f00\n \n \n Layering\n \u5206\u5c42\n \n \n Exclusive lock\n \u4e92\u65a5\u9501\n \n \n Object map (requires exclusive-lock)\n object map\uff08\u8981\u6c42\u4e92\u65a5\u9501\u652f\u6301\uff09\n \n \n Journaling (requires exclusive-lock)\n \u65e5\u5fd7\uff08\u8981\u6c42\u4e92\u65a5\u9501\u652f\u6301\uff09\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD \u5feb\u7167\u56de\u6eda\n \n \n Rollback\n \u56de\u6eda\n \n \n RBD snapshot\n RBD \u5feb\u7167\n \n \n Deleted At\n \u5b9a\u70b9\u5220\u9664\n \n \n id\n ID\n \n \n type\n \u7c7b\u578b\n \n \n state\n \u72b6\u6001\n \n \n version\n \u7248\u672c\n \n \n Host\n \u4e3b\u673a\n \n \n root\n \u6839\n \n \n Rank\n \u6392\u4f4d\n \n \n Daemon\n \u5b88\u62a4\u8fdb\u7a0b\n \n \n Activity\n \u6d3b\u8dc3\u5ea6\n \n \n Dentries\n dentries\n \n \n Inodes\n inodes\n \n \n Usage\n \u4f7f\u7528\u7387\n \n \n Standby daemons\n \u5907\u7528\u670d\u52a1\n \n \n The value can be updated at runtime.\n \u8be5\u503c\u53ef\u5728\u8fd0\u884c\u65f6\u66f4\u65b0\u3002\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\u4e0d\u4f1a\u4e3b\u52a8\u4ece monitor \u7684\u914d\u7f6e\u6570\u636e\u5e93\u8bfb\u53d6\u8fd9\u4e2a\u914d\u7f6e\u3002\n \u6240\u4ee5\u4e0d\u80fd\u7528\u201cceph config set ...\u201d\u8bbe\u7f6e\u5b83\u3002\u4f46\u662f\u53ef\u4ee5\u901a\u8fc7\n ceph.conf \u6216\u8005\u7528\u547d\u4ee4\u884c\u8fdb\u884c\u914d\u7f6e\u3002\n \n \n Option takes effect only during daemon startup.\n \u8be5\u914d\u7f6e\u53ea\u6709\u5728\u670d\u52a1\u542f\u52a8\u7684\u65f6\u5019\u624d\u4f1a\u751f\u6548\u3002\n \n \n Option only affects cluster creation.\n \u8be5\u914d\u7f6e\u53ea\u5728\u521b\u5efa\u96c6\u7fa4\u7684\u65f6\u5019\u624d\u4f1a\u751f\u6548\u3002\n \n \n Option only affects daemon creation.\n \u8be5\u914d\u7f6e\u53ea\u5728\u670d\u52a1\u521b\u5efa\u7684\u65f6\u5019\u624d\u4f1a\u751f\u6548\u3002\n \n \n Updated config option \n \n \n \u5df2\u66f4\u65b0\u914d\u7f6e\u9009\u9879\n \n \n \n \n Service\n \u670d\u52a1\n \n \n Current value\n \u5f53\u524d\u503c\n \n \n Editable\n \u53ef\u7f16\u8f91\n \n \n Updated options for module "\n ".\n \n \u5df2\u66f4\u65b0\u6269\u5c55\u6a21\u5757\u201c\n \u201d\u7684\u9009\u9879\u3002\n \n \n \n Enable\n \u542f\u7528\n \n \n Disable\n \u7981\u7528\n \n \n Reconnecting, please wait ...\n \u6b63\u5728\u91cd\u65b0\u8fde\u63a5\uff0c\u8bf7\u7a0d\u5019\u2026\n \n \n Public Address\n \u5916\u90e8\u5730\u5740\n \n \n Open Sessions\n \u6d3b\u52a8\u4f1a\u8bdd\n \n \n No In\n \u7981\u6b62\u52a0\u5165\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \u4e4b\u524d\u88ab\u9664\u540d\u7684 OSD \u5728\u542f\u52a8\u4e4b\u540e\uff0c\u4e0d\u4f1a\u88ab\u52a0\u5165\u96c6\u7fa4\n \n \n No Out\n \u7981\u6b62\u9664\u540d\n \n \n OSDs will not automatically be marked out after the configured interval\n \u5728\u53d1\u73b0 OSD \u6ca1\u6709\u54cd\u5e94\u4e4b\u540e\u4e00\u6bb5\u65f6\u95f4\uff0c\u8be5 OSD \u4f1a\u88ab\u8e22\u51fa\u96c6\u7fa4\u3002\u8be5\u6807\u5fd7\u4f1a\u7981\u6b62\u8fd9\u4e2a\u529f\u80fd\u3002\n \n \n No Up\n \u7981\u6b62\u542f\u7528\n \n \n OSDs are not allowed to start\n \u4e0d\u5141\u8bb8 OSD \u542f\u52a8\n \n \n No Down\n \u7981\u6b62\u505c\u7528\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n \u5f53\u524d\u4e0d\u53d7\u7406\u5bf9 OSD \u7684\u5931\u6548\u62a5\u544a\uff0c\u56e0\u800c monitor \u4e0d\u4f1a\u505c\u7528 OSD\n \n \n Pause\n \u6682\u505c\n \n \n Pauses reads and writes\n \u6682\u505c\u8bfb\u5199\n \n \n No Scrub\n \u7981\u6b62\u6d17\u5237\n \n \n Scrubbing is disabled\n \u6d17\u5237\u5df2\u7981\u6b62\n \n \n No Deep Scrub\n \u7981\u6b62\u6df1\u5c42\u6d17\u5237\n \n \n Deep Scrubbing is disabled\n \u6df1\u5c42\u6d17\u5237\u5df2\u7981\u6b62\n \n \n No Backfill\n \u7981\u6b62\u56de\u586b\n \n \n Backfilling of PGs is suspended\n PG \u56de\u586b\u5df2\u63a8\u8fdf\n \n \n No Recover\n \u7981\u6b62\u6062\u590d\n \n \n Recovery of PGs is suspended\n PG \u6062\u590d\u5df2\u63a8\u8fdf\n \n \n Bitwise Sort\n \u9010\u4f4d\u6392\u5e8f\n \n \n Use bitwise sort\n \u4f7f\u7528\u9010\u4f4d\u6392\u5e8f\n \n \n Purged Snapdirs\n \u8001\u7248\u672c\u7684\u5feb\u7167\u5df2\u5168\u90e8\u5347\u7ea7\n \n \n OSDs have converted snapsets\n OSD \u4e0a\u7684\u5feb\u7167\u5df2\u5168\u90e8\u8f6c\u6362\u5b8c\u6bd5\n \n \n Recovery Deletes\n \u5728\u6062\u590d\u65f6\u8fdb\u884c\u5220\u9664\u64cd\u4f5c\n \n \n Deletes performed during recovery instead of peering\n \u5728\u6062\u590d\u65f6\uff0c\u800c\u975e\u5bf9\u9f50\u9636\u6bb5\u8fdb\u884c\u5220\u9664\n \n \n PG Log Hard Limit\n PG \u65e5\u5fd7\u786c\u9650\u5236\n \n \n Puts a hard limit on pg log length\n \u4e3a pg \u65e5\u5fd7\u957f\u5ea6\u6dfb\u52a0\u786c\u9650\u5236\n \n \n Updated OSD Flags\n \u5df2\u66f4\u65b0 OSD \u6807\u5fd7\n \n \n out\n \u9664\u540d\n \n \n in\n \u52a0\u5165\n \n \n down\n \u505c\u7528\n \n \n Mark\n \u6807\u8bb0\n \n \n OSD lost\n OSD \u4e22\u5931\n \n \n marked lost\n \u5df2\u6807\u8bb0\u4e22\u5931\n \n \n Purge\n \u6e05\u9664\n \n \n OSD\n OSD\n \n \n purged\n \u5df2\u6e05\u9664\n \n \n destroy\n \u9500\u6bc1\n \n \n destroyed\n \u5df2\u9500\u6bc1\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG\n \n \n Read bytes\n \u8bfb\u5b57\u8282\u6570\n \n \n Writes bytes\n \u5199\u5b57\u8282\u6570\n \n \n Read ops\n \u8bfb\u8bf7\u6c42\u6570\n \n \n Write ops\n \u5199\u8bf7\u6c42\u6570\n \n \n Mark OSD \n \n \n \u6807\u8bb0 OSD \u4e3a\n \n \n \n \n Mark \n \n \n \u6807\u8bb0\u4e3a\n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \u6700\u5927\u56de\u586b\u91cf\n \n \n Recovery Max Active\n \u6700\u5927\u6d3b\u8dc3\u6062\u590d\u8bf7\u6c42\u6570\n \n \n Recovery Max Single Start\n \u6700\u5927\u5355\u6b21\u6062\u590d\u64cd\u4f5c\u6570\n \n \n Recovery Sleep\n \u6062\u590d/\u56de\u586b\u64cd\u4f5c\u95f4\u9694\u7761\u7720\u65f6\u95f4\n \n \n Custom\n \u81ea\u5b9a\u4e49\n \n \n Updated OSD recovery speed priority "\n "\n \n \u5df2\u66f4\u65b0 OSD \u6062\u590d\u901f\u5ea6\u4f18\u5148\u7ea7\u201c\n \u201d\n \n \n \n \n was initialized in the following OSD: \n \n \n \u5982\u4e0b OSD \u5df2\u7ecf\u542f\u52a8\u4e86\n \u64cd\u4f5c\uff1a\n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \u4efb\u52a1\n \n \n Severity\n \u4e25\u91cd\u7a0b\u5ea6\n \n \n Started\n \u5df2\u542f\u52a8\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \u66f4\u65b0\u5b8c\u6210\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \u5df2\u4f7f\u7528\n \n \n Avail.\n \u7a7a\u95f2\n \n \n Clean\n \u6b63\u5e38\n \n \n Working\n \u8fd0\u884c\u4e2d\n \n \n Warning\n \u8b66\u62a5\n \n \n Unknown\n \u672a\u77e5\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \u542f\u7528\u4e2d\n \n \n no filesystems\n \u65e0\u6587\u4ef6\u7cfb\u7edf\n \n \n active\n \u5de5\u4f5c\n \n \n standby\n \u5f85\u673a\n \n \n n/a\n n/a\n \n \n active daemon\n \u5de5\u4f5c\u7684\u5b88\u62a4\u8fdb\u7a0b\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n NFS Ganesha \u670d\u52a1\u7684\u914d\u7f6e\u8fd8\u6ca1\u6709\u5b8c\u6210\u3002\n \n \n Transport\n \u4f20\u8f93\n \n \n CephFS User\n CephFS \u7528\u6237\n \n \n CephFS Filesystem\n CephFS \u6587\u4ef6\u7cfb\u7edf\n \n \n (inherited from global config)\n \uff08\u7ee7\u627f\u81ea\u5168\u5c40\u914d\u7f6e\uff09\n \n \n inherited from global config\n \u7ee7\u627f\u81ea\u5168\u5c40\u914d\u7f6e\n \n \n -- Select what kind of user id squashing is performed --\n -- \u9009\u62e9\u6267\u884c\u54ea\u79cd\u7c7b\u578b\u7684\u7528\u6237 ID \u533f\u540d\u8bbf\u95ee --\n \n \n There are no daemons available.\n \u6ca1\u6709\u53ef\u7528\u7684\u5b88\u62a4\u8fdb\u7a0b\u3002\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \u7f13\u5b58\u6a21\u5f0f\n \n \n Min Evict Age\n \u6700\u5c11\u5ef6\u8fdf\u8d76\u51fa\u65f6\u95f4\n \n \n Min Flush Age\n \u6700\u5c11\u5ef6\u8fdf\u5237\u56de\u65f6\u95f4\n \n \n Target Max Bytes\n \u76ee\u6807\u5668\u6700\u5927\u5b57\u8282\u6570\n \n \n Target Max Objects\n \u76ee\u6807\u5668\u6700\u5927\u5bf9\u8c61\u6570\n \n \n No applications added\n \u8fd8\u6ca1\u6709\u4efb\u4f55\u5e94\u7528\u6807\u8bb0\n \n \n Applications limit reached\n \u5e94\u7528\u6807\u8bb0\u5230\u4e86\u4e0a\u9650\n \n \n A pool can only have up to four applications definitions.\n \u4e00\u4e2a\u5b58\u50a8\u6c60\u6700\u591a\u80fd\u6709\u56db\u4e2a\u5e94\u7528\u6807\u8bb0\u3002\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \u53ef\u7528\u7684\u5b57\u7b26\u4e3a\u201c_a-zA-Z0-9\u201d\n \n \n Maximum length is 128 characters\n \u957f\u5ea6\u9650\u5236\u4e3a 128 \u4e2a\u5b57\u7b26\n \n \n Filter or add applications\n \u6dfb\u52a0\u5e94\u7528\u6807\u8bb0\u6216\u6839\u636e\u5176\u8fdb\u884c\u7b5b\u9009\n \n \n Add application\n \u6dfb\u52a0\u5e94\u7528\u6807\u8bb0\n \n \n pool\n pool\n \n \n erasure code profile\n \u7ea0\u5220\u7801\u914d\u7f6e\n \n \n Replica Size\n \u526f\u672c\u4e2a\u6570\n \n \n Last Change\n \u6700\u540e\u4fee\u6539\u65f6\u95f4\n \n \n Erasure Coded Profile\n \u7ea0\u5220\u7801\u914d\u7f6e\n \n \n Crush Ruleset\n CRUSH \u89c4\u5219\u96c6\n \n \n Write bytes\n \u5199\u5b57\u8282\u6570\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \u5b58\u50a8\u6876\n \n \n Updated Object Gateway bucket "\n "\n \n \u5df2\u66f4\u65b0\u5bf9\u8c61\u7f51\u5173\u5b58\u50a8\u6876\u201c\n \u201d\n \n \n \n Created Object Gateway bucket "\n "\n \n \u5df2\u521b\u5efa\u5bf9\u8c61\u7f51\u5173\u5b58\u50a8\u6876\u201c\n \u201d\n \n \n \n buckets\n \u5b58\u50a8\u6876\n \n \n capability\n capability\n \n \n user\n \u7528\u6237\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \u5df2\u66f4\u65b0\u5bf9\u8c61\u7f51\u5173\u7528\u6237\u201c\n \u201d\n \n \n \n Created Object Gateway user "\n "\n \n \u5df2\u521b\u5efa\u5bf9\u8c61\u7f51\u5173\u7528\u6237\u201c\n \u201d\n \n \n \n users\n \u7528\u6237\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \u4f5c\u7528\u8303\u56f4\n \n \n Read\n \u8bfb\u6743\u9650\n \n \n Create\n \u65b0\u5efa\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \u65b0\u5efa\u89d2\u8272\u201c\n \u201d\n \n \n \n Updated role \'\n \'\n \n \u66f4\u65b0\u89d2\u8272\u201c\n \u201d\n \n \n \n System Role\n \u7cfb\u7edf\u89d2\u8272\n \n \n Deleted role \'\n \'\n \n \u5df2\u5220\u9664\u89d2\u8272\u201c\n \u201d\n \n \n \n Created user "\n "\n \n \u5df2\u65b0\u5efa\u7528\u6237\u201c\n \u201d\n \n \n \n Update user\n \u66f4\u65b0\u7528\u6237\n \n \n Continue\n \u7ee7\u7eed\n \n \n You were automatically logged out because your roles have been changed.\n \u60a8\u88ab\u81ea\u52a8\u767b\u51fa\uff0c\u56e0\u4e3a\u60a8\u7684\u89d2\u8272\u6709\u4e86\u53d8\u52a8\u3002\n \n \n Updated user "\n "\n \n \u5df2\u66f4\u65b0\u7528\u6237\u201c\n \u201d\n \n \n \n Deleted user "\n "\n \n \u5df2\u5220\u9664\u7528\u6237\u201c\n \u201d\n \n \n \n Failed to delete user "\n "\n \n \u5220\u9664\u7528\u6237\u201c\n \u201d\u5931\u8d25\n \n \n \n You are currently logged in as "\n ".\n \n \u60a8\u5f53\u524d\u5728\u7528\u201c\n \u201d\u7684\u8eab\u4efd\u767b\u5f55\u3002\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \u5404\u5bf9\u8c61\u90fd\u88ab\u5206\u5272\u4e3a\u6570\u636e\u5757\uff0c\u5206\u522b\u5b58\u50a8\u4e8e\u4e0d\u540c OSD \u3002\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \u8ba1\u7b97\u5404\u5bf9\u8c61\u7684\u7f16\u7801\u5757\u3001\u5e76\u5b58\u50a8\u4e8e\u4e0d\u540c OSD \u3002\n\u7f16\u7801\u5757\u7684\u6570\u91cf\u7b49\u540c\u4e8e\u5728\u4e0d\u4e22\u6570\u636e\u7684\u524d\u63d0\u4e0b\u5141\u8bb8\u540c\u65f6\u5931\u6548\u7684 OSD \u6570\u91cf\u3002\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n jerasure \u63d2\u4ef6\u662f\u6700\u901a\u7528\u3001\u6700\u7075\u6d3b\u7684\u63d2\u4ef6\uff0c\n\u4e5f\u662f Ceph \u7ea0\u5220\u7801\u5b58\u50a8\u6c60\u7684\u9ed8\u8ba4\u63d2\u4ef6\u3002\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n reed_sol_van \u6280\u672f\u66f4\u7075\u6d3b\uff1a\u5b83\u8db3\u4ee5\u8bbe\u7f6e k \u548c m \u503c\u3002 \ncauchy_good \u6280\u672f\u66f4\u5feb\uff0c\u4f46\u4f60\u5f97\u8c28\u614e\u5730\u9009\u62e9 packetsize \u503c\u3002\nreed_sol_r6_op \u3001 liberation \u3001 blaum_roth \u3001 liber8tion \u90fd\u662f\u4e0e RAID6 \u7b49\u4ef7\u7684\u6280\u672f\uff0c\n\u5b83\u4eec\u53ea\u80fd\u914d\u7f6e\u4e3a m=2 \u3002\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \u4ee5 bytes \u5927\u5c0f\u7684\u5305\u4e3a\u5355\u4f4d\u8fdb\u884c\u7f16\u7801\u3002\n\u786e\u5b9a\u5408\u9002\u7684\u5305\u5c3a\u5bf8\u5f88\u96be\uff0c \njerasure \u6587\u6863\u5bf9\u6b64\u6709\u5f88\u8be6\u7ec6\u7684\u63cf\u8ff0\u3002\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n \u7528 jerasure \u63d2\u4ef6\u65f6\uff0c\u7ea0\u5220\u7801\u7f16\u7801\u7684\u5bf9\u8c61\u5b58\u50a8\u5728\u591a\u4e2a OSD \u4e0a\uff0c\n\u4e22\u5931\u4e00\u4e2a OSD \u7684\u6062\u590d\u8fc7\u7a0b\u9700\u8bfb\u53d6\u6240\u6709\u5176\u4ed6\u7684 OSD \u3002\n\u6bd4\u5982 jerasure \u7684\u914d\u7f6e\u4e3a k=8 \u4e14 m=4 \uff0c\u4e22\u5931\u4e00\u4e2a OSD \u540e\u9700\u8bfb\u53d6\u5176\u4ed6 11 \u4e2a OSD \u624d\u80fd\u6062\u590d\u3002\n\nlrc \u7ea0\u5220\u7801\u63d2\u4ef6\u521b\u5efa\u7684\u662f\u5c40\u90e8\u6821\u9a8c\u5757\uff0c\u8fd9\u6837\u53ea\u9700\u8f83\u5c11\u7684 OSD \u5373\u53ef\u6062\u590d\u3002\n\u6bd4\u5982 lrc \u7684\u914d\u7f6e\u4e3a k=8 \u3001 m=4 \u4e14 l=4 \uff0c\u5b83\u5c06\u4e3a\u6bcf\u56db\u4e2a OSD \u521b\u5efa\u989d\u5916\u7684\u6821\u9a8c\u5757\uff0c\n\u5f53\u4e00\u4e2a OSD \u4e22\u5931\u65f6\uff0c\u5b83\u53ea\u9700\u56db\u4e2a OSD \u5373\u53ef\u6062\u590d\uff0c\u800c\u4e0d\u9700\u8981\u5341\u4e00\u4e2a\u3002\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \u628a\u7f16\u7801\u5757\u548c\u6570\u636e\u5757\u5206\u7ec4\u4e3a\u5927\u5c0f\u4e3a locality \u7684\u96c6\u5408\u3002\n\u6bd4\u5982\uff0c k=4 \u4e14 m=2 \u65f6\uff0c\u82e5\u8bbe\u7f6e locality=3 \uff0c\u5c06\u4f1a\u5206\u7ec4\u4e3a\u5927\u5c0f\u4e3a\u4e09\u7684\u4e24\u7ec4\uff0c\n\u8fd9\u6837\u5404\u7ec4\u90fd\u80fd\u81ea\u884c\u6062\u590d\uff0c\u65e0\u9700\u4ece\u53e6\u4e00\u7ec4\u8bfb\u6570\u636e\u5757\u3002\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n \u7531 l \u5b9a\u4e49\u7684\u5757\u96c6\u5408\u5c06\u6309\u54ea\u79cd crush \u6876\u7c7b\u578b\u5b58\u50a8\u3002\n\u6bd4\u5982\uff0c\u82e5\u8bbe\u7f6e\u4e3a rack \uff0c\u5927\u5c0f\u4e3a l \u5757\u7684\u5404\u7ec4\u5c06\u88ab\u5b58\u5165\u4e0d\u540c\u7684\u673a\u67b6\uff0c\n\u6b64\u503c\u4f1a\u88ab\u7528\u4e8e\u521b\u5efa\u7c7b\u4f3c step choose rack \u7684\u89c4\u5219\u96c6\u3002\n\u5982\u679c\u6ca1\u8bbe\u7f6e\uff0c\u5c31\u4e0d\u4f1a\u8fd9\u6837\u5206\u7ec4\u3002\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa \u63d2\u4ef6\u5c01\u88c5\u4e86 ISA \u5e93\u3002\u5b83\u53ea\u80fd\u8fd0\u884c\u5728 Intel \u5904\u7406\u5668\u4e0a\u3002\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA \u63d2\u4ef6\u5305\u542b\u4e24\u79cd Reed Solomon \u7f16\u7801\u5f62\u5f0f\u3002\n\u8bbe\u7f6e\u4e3a reed_sol_van \u8868\u793a\u7528 Vandermonde \u7b97\u6cd5\uff0c\u8bbe\u7f6e\u4e3a cauchy \u8868\u793a\u7528 Cauchy \u7b97\u6cd5\u3002\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec \u63d2\u4ef6\u5c01\u88c5\u4e86 multiple SHEC \u5e93\u3002\n\u4e0e Reed Solomon \u7f16\u7801\u76f8\u6bd4\uff0c\u5b83\u80fd\u4f7f Ceph \u66f4\u9ad8\u6548\u5730\u6062\u590d\u6570\u636e\u3002\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \u5947\u5076\u6821\u9a8c\u5757\u6570\u91cf\uff0c\u5b83\u4eec\u5728\u5404\u81ea\u7684\u8ba1\u7b97\u8303\u56f4\u5185\u5305\u542b\u4e86\u5404\u6570\u636e\u5757\u3002\n\u6b64\u6570\u503c\u88ab\u7528\u4f5c\u6301\u4e45\u6027\u4f30\u503c\u3002\n\u4f8b\u5982\uff0c\u5047\u8bbe c=2 \uff0c\u5c31\u662f\u8bf4\u4e0d\u4e1f\u6570\u636e\u7684\u60c5\u51b5\u4e0b\u53ef\u635f\u5931 2 \u4e2a OSD \u3002\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n \u89c4\u5219\u96c6\u7b2c\u4e00\u6b65\u6240\u6307\u5411\u7684 CRUSH \u6876\u4e4b\u540d\uff0c\n\u5982 step take default \u3002\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \u786e\u4fdd\u4e24\u4e2a\u7f16\u7801\u5757\u4e0d\u4f1a\u5b58\u5728\u4e8e\u540c\u4e00\u6545\u969c\u57df\u7684\u6876\u91cc\u9762\u3002\n\u6bd4\u5982\uff0c\u5047\u8bbe\u6545\u969c\u57df\u662f host \uff0c\u5c31\u4e0d\u4f1a\u6709\u4e24\u4e2a\u7f16\u7801\u5757\u5b58\u50a8\u5230\u540c\u4e00\u4e3b\u673a\uff1b\n\u6b64\u503c\u7528\u4e8e\u5728\u89c4\u5219\u96c6\u4e2d\u521b\u5efa\u7c7b\u4f3c step chooseleaf host \u7684\u6b65\u9aa4\u3002\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n \u4f7f\u7528 CRUSH \u7d22\u5f15\u4e2d\u7684 crush \u8bbe\u5907\u7c7b\u540d\uff0c\n\u5c06\u5f52\u7f6e\u9650\u5236\u4e8e\u7279\u5b9a\u7c7b\u7684\u8bbe\u5907\uff08\u4f8b\u5982\uff0cssd \u6216 hdd\uff09\u3002\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \u8bbe\u7f6e\u7ea0\u5220\u7801\u63d2\u4ef6\u6240\u5728\u76ee\u5f55\u3002\n \n \n Allows all operations\n \u5141\u8bb8\u6240\u6709\u64cd\u4f5c\n \n \n Allows only operations that do not modify the server\n \u53ea\u5141\u8bb8\u4e0d\u4fee\u6539\u670d\u52a1\u5668\u7aef\u6570\u636e\u7684\u64cd\u4f5c\n \n \n Does not allow read or write operations, but allows any other operation\n \u7981\u6b62\u8bfb\u5199\uff0c\u4f46\u662f\u5141\u8bb8\u5176\u4ed6\u7684\u64cd\u4f5c\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \u7981\u6b62\u8bfb\u3001\u5199\u4ee5\u53ca\u4efb\u4f55\u53ef\u80fd\u4fee\u6539\u6587\u4ef6\u5185\u5bb9\u7684\u64cd\u4f5c\n \n \n Allows no access at all\n \u5b8c\u5168\u7981\u6b62\u8bbf\u95ee\n \n \n -- Select the priority --\n -- \u9009\u62e9\u4f18\u5148\u7ea7 --\n \n \n Low\n \u4f4e\n \n \n High\n \u9ad8\n \n \n Last 5 minutes\n \u8fc7\u53bb 5 \u5206\u949f\n \n \n Last 15 minutes\n \u8fc7\u53bb 15 \u5206\u949f\n \n \n Last 30 minutes\n \u8fc7\u53bb 30 \u5206\u949f\n \n \n Last 1 hour (Default)\n \u8fc7\u53bb 1 \u5c0f\u65f6\uff08\u9ed8\u8ba4\uff09\n \n \n Last 3 hours\n \u8fc7\u53bb 3 \u5c0f\u65f6\n \n \n Last 6 hours\n \u8fc7\u53bb 6 \u5c0f\u65f6\n \n \n Last 12 hours\n \u8fc7\u53bb 12 \u5c0f\u65f6\n \n \n Last 24 hours\n \u8fc7\u53bb 24 \u5c0f\u65f6\n \n \n Yesterday\n \u6628\u5929\n \n \n Today\n \u4eca\u5929\n \n \n Today so far\n \u4eca\u5929\u5230\u73b0\u5728\u4e3a\u6b62\n \n \n Day before yesterday\n \u524d\u5929\n \n \n Last 2 days\n \u8fc7\u53bb 2 \u5929\n \n \n This day last week\n \u4e0a\u5468\u7684\u4eca\u5929\n \n \n Previous week\n \u4e0a\u4e2a\u661f\u671f\n \n \n This week\n \u672c\u5468\n \n \n This week so far\n \u672c\u5468\u4ee5\u6765\n \n \n Last 7 days\n \u8fc7\u53bb 7 \u5929\n \n \n Previous month\n \u4e0a\u4e2a\u6708\n \n \n This month\n \u5f53\u6708\n \n \n This month so far\n \u672c\u6708\u4ee5\u6765\n \n \n Last 30 days\n \u8fc7\u53bb 30 \u5929\n \n \n Last 90 days\n \u8fc7\u53bb 90 \u5929\n \n \n Last 6 months\n \u8fc7\u53bb 6 \u4e2a\u6708\n \n \n Last 1 year\n \u8fc7\u53bb 1 \u5e74\n \n \n Previous year\n \u53bb\u5e74\n \n \n This year\n \u4eca\u5e74\n \n \n This year so far\n \u4eca\u5e74\u4ee5\u6765\n \n \n Last 2 years\n \u8fc7\u53bb 2 \u5e74\n \n \n Last 5 years\n \u8fc7\u53bb 5 \u5e74\n \n \n Information\n \u4fe1\u606f\n \n \n No items selected.\n \u65e0\u9009\u4e2d\u9879\u76ee\u3002\n \n \n Deselect item to select again\n \u53d6\u6d88\u9009\u62e9\n \n \n Selection limit reached\n \u8fbe\u5230\u9009\u62e9\u9879\u6570\u4e0a\u9650\u3002\n \n \n Filter tags\n \u8fc7\u6ee4\u6807\u7b7e\n \n \n Add badge\n \u6dfb\u52a0 badge\n \n \n There are no items available.\n \u65e0\u53ef\u9009\u9879\u76ee\u3002\n \n \n Add\n \u6dfb\u52a0\n \n \n Remove\n Remove\n \n \n Clone\n \u514b\u9686\n \n \n Copy\n \u590d\u5236\n \n \n Deep Scrub\n \u6df1\u5c42\u6d17\u5237\n \n \n Destroy\n \u9500\u6bc1\n \n \n Flatten\n \u5c55\u5f00\n \n \n Mark Down\n \u6807\u8bb0\u4e3a\u505c\u7528\n \n \n Mark In\n \u6807\u8bb0\u4e3a\u52a0\u5165\n \n \n Mark Lost\n \u6807\u8bb0\u4e3a\u4e22\u5931\n \n \n Mark Out\n \u6807\u8bb0\u4e3a\u5df2\u9664\u540d\n \n \n Protect\n \u4fdd\u62a4\n \n \n Rename\n \u91cd\u547d\u540d\n \n \n Restore\n \u6062\u590d\n \n \n Move to Trash\n \u79fb\u81f3\u56de\u6536\u7ad9\n \n \n Unprotect\n \u89e3\u9664\u4fdd\u62a4\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \u5220\u9664\u5b8c\u6210\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \u514b\u9686\u5b8c\u6210\n \n \n Copied\n \u590d\u5236\u5b8c\u6210\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \u662f\n \n \n No\n \u5426\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \u670d\u52a1\u8d28\u91cf (QoS)\n \n \n BPS Limit\n BPS \u4e0a\u9650\n \n \n The desired limit of IO bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u5b57\u8282\u6570\u4e0a\u9650\u3002\n \n \n IOPS Limit\n IOPS \u4e0a\u9650\n \n \n The desired limit of IO operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u64cd\u4f5c\u6b21\u6570\u4e0a\u9650\u3002\n \n \n Read BPS Limit\n \u8bfb BPS \u4e0a\u9650\n \n \n The desired limit of read bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5185\u8bfb\u53d6\u7684\u5b57\u8282\u6570\u4e0a\u9650\u3002\n \n \n Read IOPS Limit\n \u8bfb IOPS \u4e0a\u9650\n \n \n The desired limit of read operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u8bfb\u64cd\u4f5c\u6b21\u6570\u4e0a\u9650\u3002\n \n \n Write BPS Limit\n \u5199 BPS \u4e0a\u9650\n \n \n The desired limit of write bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5185\u5199\u5165\u7684\u5b57\u8282\u6570\u4e0a\u9650\u3002\n \n \n Write IOPS Limit\n \u5199 IOPS \u4e0a\u9650\n \n \n The desired limit of write operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5199\u64cd\u4f5c\u6b21\u6570\u4e0a\u9650\u3002\n \n \n BPS Burst\n BPS \u7a81\u53d1\n \n \n The desired burst limit of IO bytes.\n \u6307\u5b9a\u7684 IO \u5b57\u8282\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n IOPS Burst\n IOPS \u7a81\u53d1\n \n \n The desired burst limit of IO operations.\n \u6307\u5b9a\u7684 IO \u64cd\u4f5c\u6b21\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Read BPS Burst\n \u8bfb BPS \u7a81\u53d1\n \n \n The desired burst limit of read bytes.\n \u6307\u5b9a\u7684\u8bfb\u53d6\u7684\u5b57\u8282\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Read IOPS Burst\n \u8bfb IOPS \u7a81\u53d1\n \n \n The desired burst limit of read operations.\n \u6307\u5b9a\u7684\u8bfb\u64cd\u4f5c\u6b21\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Write BPS Burst\n \u5199 BPS \u7a81\u53d1\n \n \n The desired burst limit of write bytes.\n \u6307\u5b9a\u7684\u5199\u5165\u7684\u5b57\u8282\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Write IOPS Burst\n \u5199 IOPS \u7a81\u53d1\n \n \n The desired burst limit of write operations.\n \u6307\u5b9a\u7684\u5199\u64cd\u4f5c\u6b21\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Failed to \n \n \n \n \n \n \u5931\u8d25\n \n \n \n Executing\n \u6b63\u5728\u6267\u884c\n \n \n execute\n \u6267\u884c\n \n \n Executed\n \u6267\u884c\u5b8c\u6bd5\n \n \n unknown task\n \u672a\u77e5\u4efb\u52a1\n \n \n Creating\n \u6b63\u5728\u521b\u5efa\n \n \n create\n \u521b\u5efa\n \n \n Updating\n \u6b63\u5728\u66f4\u65b0\n \n \n update\n \u66f4\u65b0\n \n \n Deleting\n \u6b63\u5728\u5220\u9664\n \n \n delete\n \u5220\u9664\n \n \n RBD \'\n \'\n \n RBD\u201c\n \u201d\n \n \n \n RBD snapshot \'\n \'\n \n RBD \u5feb\u7167\u201c\n \u201d\n \n \n \n mirror mode for pool \'\n \'\n \n \u5b58\u50a8\u6c60\u201c\n \u201d\u7684\u955c\u50cf\u6a21\u5f0f\n \n \n \n mirror peer for pool \'\n \'\n \n \u5b58\u50a8\u6c60\u201c\n \u201d\u7684\u955c\u50cf\u540c\u4f34\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n \n contains snapshots.\n \n \n \u5305\u542b\u6709\u5feb\u7167\u3002\n \n \n \n Cloning\n \u6b63\u5728\u514b\u9686\n \n \n clone\n \u514b\u9686\n \n \n Snapshot of \n must be protected.\n \n \n \u7684\u5feb\u7167\u5fc5\u987b\u5904\u4e8e\u53d7\u4fdd\u62a4\u72b6\u6001\u3002\n \n \n \n Copying\n \u6b63\u5728\u590d\u5236\n \n \n copy\n \u590d\u5236\n \n \n Flattening\n \u6b63\u5728\u5c55\u5f00\n \n \n flatten\n \u5c55\u5f00\n \n \n Flattened\n \u5c55\u5f00\u5b8c\u6210\n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \u65e0\u6cd5\u53bb\u6389\n \u7684\u4fdd\u62a4\u72b6\u6001\uff0c\u56e0\u4e3a\u5b83\u6709\u5b50\u6620\u50cf\u3002\n \n \n \n Cannot delete \n because it\'s protected.\n \n \u65e0\u6cd5\u5220\u9664\n \uff0c\u56e0\u4e3a\u5b83\u5904\u4e8e\u53d7\u4fdd\u62a4\u72b6\u6001\u3002\n \n \n \n Rolling back\n \u6b63\u5728\u56de\u6eda\n \n \n rollback\n \u56de\u6eda\n \n \n Rolled back\n \u56de\u6eda\u5b8c\u6210\n \n \n Moving\n \u6b63\u5728\u628a\n \n \n move\n \u628a\n \n \n Moved\n \u5df2\u7ecf\u628a\n \n \n image \'\n \' to trash\n \n \u6620\u50cf\u201c\n \u201d\u79fb\u81f3\u56de\u6536\u7ad9\n \n \n \n Could not find image.\n \u65e0\u6cd5\u627e\u5230\u6620\u50cf\u3002\n \n \n Restoring\n \u6b63\u5728\u628a\n \n \n restore\n \u628a\n \n \n Restored\n \u5df2\u7ecf\u628a\n \n \n image \'\n \' into \'\n \'\n \n \u6620\u50cf\u4ece\u201c\n \u201d\u6062\u590d\u5230\u201c\n \u201d\n \n \n \n Image name \'\n \' is already in use.\n \n \u6620\u50cf\u540d\u79f0\u201c\n \u201d\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n \n image \'\n \'\n \n \u6620\u50cf\u201c\n \u201d\n \n \n \n Purging\n \u6b63\u5728\u6e05\u9664\n \n \n purge\n \u6e05\u9664\n \n \n Purged\n \u5df2\u6e05\u9664\n \n \n all pools\n \u6240\u6709\u5b58\u50a8\u6c60\n \n \n images from \n \n \n \n \u91cc\u7684\u6620\u50cf\n \n \n \n Cannot disable mirroring because it contains a peer.\n \u56e0\u4e3a\u5305\u542b\u540c\u4f34\u96c6\u7fa4\uff0c\u65e0\u6cd5\u7981\u7528\u955c\u50cf\u529f\u80fd\n \n \n pool \'\n \'\n \n \u5b58\u50a8\u6c60\u201c\n \u201d\n \n \n \n erasure code profile \'\n \'\n \n \u7ea0\u5220\u7801\u914d\u7f6e\u201c\n \u201d\n \n \n \n target \'\n \'\n \n \u76ee\u6807\u5668\u201c\n \u201d\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},fELs:function(t,e,n){"use strict";var a=n("RDha");function r(t,e){return a.where(t,function(t){return t.position===e})}function i(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var a=e?n:t,r=e?t:n;return a.weight===r.weight?a._tmpIndex_-r._tmpIndex_:a.weight-r.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.exports={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var a,r=["fullWidth","position","weight"],i=r.length,o=0;o1},t.prototype.canNext=function(){return this.page0&&t<=this.totalPages&&t!==this.page&&(this.page=t,this.change.emit({page:t}))},t.prototype.calcPages=function(t){var e=[],n=1,a=this.totalPages;t=t||this.page,5this.totalPages&&(n=Math.max(this.totalPages-5+1,1),a=this.totalPages));for(var r=n;r<=a;r++)e.push({number:r,text:r});return e},a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"size",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"page",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"change",void 0),a([i.Component({selector:"datatable-pager",template:'\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n \n {{pg.text}}\n \n \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n ',host:{class:"datatable-pager"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},fktO:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("Ahxa")),a(n("fhFe")),a(n("lUjN")),a(n("vxfy"))},fzPg:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}()},g8vO:function(t,e,n){"use strict";var a=n("RDha");t.exports={formatters:{values:function(t){return a.isArray(t)?t:""+t},linear:function(t,e,n){var r=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(r)>1&&t!==Math.floor(t)&&(r=t-Math.floor(t));var i=a.log10(Math.abs(r)),o="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var s=a.log10(Math.abs(t));o=t.toExponential(Math.floor(s)-Math.floor(i))}else{var u=-1*Math.floor(i);u=Math.max(Math.min(u,20),0),o=t.toFixed(u)}else o="0";return o},logarithmic:function(t,e,n){var r=t/Math.pow(10,Math.floor(a.log10(t)));return 0===t?"0":1===r||2===r||5===r||0===e||e===n.length-1?t.toExponential():""}}}},gI3B:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("6blF"),r=n("T1DM"),i=n("/21U"),o=n("nkY7");function s(t,e,n){void 0===t&&(t=0);var s=-1;return Object(i.a)(e)?s=Number(e)<1?1:Number(e):Object(o.a)(e)&&(n=e),Object(o.a)(n)||(n=r.a),new a.a(function(e){var a=Object(i.a)(t)?t:+t-n.now();return n.schedule(u,a,{index:0,period:s,subscriber:e})})}function u(t){var e=t.index,n=t.period,a=t.subscriber;if(a.next(e),!a.closed){if(-1===n)return a.complete();t.index=e+1,this.schedule(t,n)}}},gIcY:function(t,e,n){"use strict";n.d(e,"B",function(){return It}),n.d(e,"D",function(){return Ot}),n.d(e,"C",function(){return S}),n.d(e,"E",function(){return C}),n.d(e,"F",function(){return bt}),n.d(e,"G",function(){return F}),n.d(e,"c",function(){return v}),n.d(e,"d",function(){return l}),n.d(e,"p",function(){return y}),n.d(e,"b",function(){return x}),n.d(e,"e",function(){return _}),n.d(e,"q",function(){return I}),n.d(e,"r",function(){return et}),n.d(e,"s",function(){return nt}),n.d(e,"t",function(){return dt}),n.d(e,"u",function(){return mt}),n.d(e,"w",function(){return k}),n.d(e,"j",function(){return Tt}),n.d(e,"l",function(){return yt}),n.d(e,"g",function(){return xt}),n.d(e,"m",function(){return vt}),n.d(e,"v",function(){return M}),n.d(e,"z",function(){return P}),n.d(e,"y",function(){return wt}),n.d(e,"h",function(){return St}),n.d(e,"a",function(){return ot}),n.d(e,"f",function(){return ct}),n.d(e,"i",function(){return st}),n.d(e,"k",function(){return ut}),n.d(e,"o",function(){return f}),n.d(e,"A",function(){return h}),n.d(e,"n",function(){return Ct}),n.d(e,"x",function(){return kt});var a=n("mrSG"),r=n("CcnG"),i=n("VNr4"),o=n("0/uQ"),s=n("67Y/"),u=n("ZYjt"),c=function(){function t(){}return Object.defineProperty(t.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"status",{get:function(){return this.control?this.control.status:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t.prototype.reset=function(t){void 0===t&&(t=void 0),this.control&&this.control.reset(t)},t.prototype.hasError=function(t,e){return!!this.control&&this.control.hasError(t,e)},t.prototype.getError=function(t,e){return this.control?this.control.getError(t,e):null},t}(),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),e}(c);function d(t){return null==t||0===t.length}var f=new r.InjectionToken("NgValidators"),p=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,h=function(){function t(){}return t.min=function(t){return function(e){if(d(e.value)||d(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&nt?{max:{max:t,actual:e.value}}:null}},t.required=function(t){return d(t.value)?{required:!0}:null},t.requiredTrue=function(t){return!0===t.value?null:{required:!0}},t.email=function(t){return d(t.value)?null:p.test(t.value)?null:{email:!0}},t.minLength=function(t){return function(e){if(d(e.value))return null;var n=e.value?e.value.length:0;return nt?{maxlength:{requiredLength:t,actualLength:n}}:null}},t.pattern=function(e){return e?("string"==typeof e?(a="","^"!==e.charAt(0)&&(a+="^"),a+=e,"$"!==e.charAt(e.length-1)&&(a+="$"),n=new RegExp(a)):(a=e.toString(),n=e),function(t){if(d(t.value))return null;var e=t.value;return n.test(e)?null:{pattern:{requiredPattern:a,actualValue:e}}}):t.nullValidator;var n,a},t.nullValidator=function(t){return null},t.compose=function(t){if(!t)return null;var e=t.filter(g);return 0==e.length?null:function(t){return b(function(t,n){return e.map(function(e){return e(t)})}(t))}},t.composeAsync=function(t){if(!t)return null;var e=t.filter(g);return 0==e.length?null:function(t){var n=function(t,n){return e.map(function(e){return e(t)})}(t).map(m);return Object(i.a)(n).pipe(Object(s.a)(b))}},t}();function g(t){return null!=t}function m(t){var e=Object(r["\u0275isPromise"])(t)?Object(o.a)(t):t;if(!Object(r["\u0275isObservable"])(e))throw new Error("Expected validator to return Promise or Observable.");return e}function b(t){var e=t.reduce(function(t,e){return null!=e?Object(a.__assign)({},t,e):t},{});return 0===Object.keys(e).length?null:e}var y=new r.InjectionToken("NgValueAccessor"),v=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"checked",t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t}(),x=new r.InjectionToken("CompositionEventMode"),_=function(){function t(t,e,n){var a;this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=function(t){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=(a=Object(u["\u0275getDOM"])()?Object(u["\u0275getDOM"])().getUserAgent():"",!/android (\d+)/.test(a.toLowerCase())))}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._handleInput=function(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)},t.prototype._compositionStart=function(){this._composing=!0},t.prototype._compositionEnd=function(t){this._composing=!1,this._compositionMode&&this.onChange(t)},t}();function T(t){return t.validate?function(e){return t.validate(e)}:t}function w(t){return t.validate?function(e){return t.validate(e)}:t}var S=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t}();function O(){throw new Error("unimplemented")}var I=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._parent=null,e.name=null,e.valueAccessor=null,e._rawValidators=[],e._rawAsyncValidators=[],e}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"validator",{get:function(){return O()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return O()},enumerable:!0,configurable:!0}),e}(c),C=function(){function t(){this._accessors=[]}return t.prototype.add=function(t,e){this._accessors.push([t,e])},t.prototype.remove=function(t){for(var e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)},t.prototype.select=function(t){var e=this;this._accessors.forEach(function(n){e._isSameGroup(n,t)&&n[1]!==t&&n[1].fireUncheck(t.value)})},t.prototype._isSameGroup=function(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name},t}(),k=function(){function t(t,e,n,a){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=a,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.ngOnInit=function(){this._control=this._injector.get(I),this._checkName(),this._registry.add(this._control,this)},t.prototype.ngOnDestroy=function(){this._registry.remove(this)},t.prototype.writeValue=function(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},t.prototype.registerOnChange=function(t){var e=this;this._fn=t,this.onChange=function(){t(e.value),e._registry.select(e)}},t.prototype.fireUncheck=function(t){this.writeValue(t)},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},t.prototype._throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n ')},t}(),N=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(t))},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t}(),R='\n
\n \n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',A='\n
\n
\n \n
\n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',E='\n
\n
\n \n
\n
',D=function(){function t(){}return t.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+R)},t.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n '+A+"\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n "+E)},t.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n "+R)},t.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+A)},t.arrayParentException=function(){throw new Error('formArrayName must be used with a parent formGroup directive. You\'ll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n \n
\n
\n
\n \n
\n
\n
\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });')},t.disabledAttrWarning=function(){console.warn("\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n \n Example: \n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n ")},t.ngModelWarning=function(t){console.warn("\n It looks like you're using ngModel on the same form field as "+t+". \n Support for using the ngModel input property and ngModelChange event with \n reactive form directives has been deprecated in Angular v6 and will be removed \n in Angular v7.\n \n For more information on this, see our API docs here:\n https://angular.io/api/forms/"+("formControl"===t?"FormControlDirective":"FormControlName")+"#use-with-ngmodel\n ")},t}();function L(t,e){return null==t?""+e:(e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}var P=function(){function t(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=r["\u0275looseIdentical"]}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){this.value=t;var e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=L(e,t);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){e.value=e._getOptionValue(n),t(e.value)}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(){return(this._idCounter++).toString()},t.prototype._getOptionId=function(t){var e,n;try{for(var r=Object(a.__values)(Array.from(this._optionMap.keys())),i=r.next();!i.done;i=r.next()){var o=i.value;if(this._compareWith(this._optionMap.get(o),t))return o}}catch(s){e={error:s}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}return null},t.prototype._getOptionValue=function(t){var e=function(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e):t},t}(),M=function(){function t(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(L(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setProperty(this._element.nativeElement,"value",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},t}();function q(t,e){return null==t?""+e:("string"==typeof e&&(e="'"+e+"'"),e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}var j=function(){function t(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=r["\u0275looseIdentical"]}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){var e,n=this;if(this.value=t,Array.isArray(t)){var a=t.map(function(t){return n._getOptionId(t)});e=function(t,e){t._setSelected(a.indexOf(e.toString())>-1)}}else e=function(t,e){t._setSelected(!1)};this._optionMap.forEach(e)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){var a=[];if(n.hasOwnProperty("selectedOptions"))for(var r=n.selectedOptions,i=0;i1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+n)}function U(t){return null!=t?h.compose(t.map(T)):null}function W(t){return null!=t?h.composeAsync(t.map(w)):null}function K(t,e){if(!t.hasOwnProperty("model"))return!1;var n=t.model;return!!n.isFirstChange()||!Object(r["\u0275looseIdentical"])(e,n.currentValue)}var $=[v,N,S,P,j,k];function Z(t,e){t._syncPendingControls(),e.forEach(function(t){var e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)})}function X(t,e){if(!e)return null;Array.isArray(e)||B(t,"Value accessor was not provided as an array for form control with");var n=void 0,a=void 0,r=void 0;return e.forEach(function(e){var i;e.constructor===_?n=e:(i=e,$.some(function(t){return i.constructor===t})?(a&&B(t,"More than one built-in value accessor matches form control with"),a=e):(r&&B(t,"More than one custom value accessor matches form control with"),r=e))}),r||a||n||(B(t,"No valid value accessor for form control with"),null)}function J(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}var Q=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return z(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){},e}(l),tt=function(){function t(t){this._cd=t}return Object.defineProperty(t.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),t}(),et=function(t){function e(e){return t.call(this,e)||this}return Object(a.__extends)(e,t),e}(tt),nt=function(t){function e(e){return t.call(this,e)||this}return Object(a.__extends)(e,t),e}(tt);function at(t){var e=it(t)?t.validators:t;return Array.isArray(e)?U(e):e||null}function rt(t,e){var n=it(e)?e.asyncValidators:t;return Array.isArray(n)?W(n):n||null}function it(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}var ot=function(){function t(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return"VALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return"INVALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return"PENDING"==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return"DISABLED"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return"DISABLED"!==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return!this.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"updateOn",{get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"},enumerable:!0,configurable:!0}),t.prototype.setValidators=function(t){this.validator=at(t)},t.prototype.setAsyncValidators=function(t){this.asyncValidator=rt(t)},t.prototype.clearValidators=function(){this.validator=null},t.prototype.clearAsyncValidators=function(){this.asyncValidator=null},t.prototype.markAsTouched=function(t){void 0===t&&(t={}),this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)},t.prototype.markAsUntouched=function(t){void 0===t&&(t={}),this.touched=!1,this._pendingTouched=!1,this._forEachChild(function(t){t.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype.markAsDirty=function(t){void 0===t&&(t={}),this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)},t.prototype.markAsPristine=function(t){void 0===t&&(t={}),this.pristine=!0,this._pendingDirty=!1,this._forEachChild(function(t){t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype.markAsPending=function(t){void 0===t&&(t={}),this.status="PENDING",!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)},t.prototype.disable=function(t){void 0===t&&(t={}),this.status="DISABLED",this.errors=null,this._forEachChild(function(e){e.disable(Object(a.__assign)({},t,{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(t),this._onDisabledChange.forEach(function(t){return t(!0)})},t.prototype.enable=function(t){void 0===t&&(t={}),this.status="VALID",this._forEachChild(function(e){e.enable(Object(a.__assign)({},t,{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(t),this._onDisabledChange.forEach(function(t){return t(!1)})},t.prototype._updateAncestors=function(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),this._parent._updatePristine(),this._parent._updateTouched())},t.prototype.setParent=function(t){this._parent=t},t.prototype.updateValueAndValidity=function(t){void 0===t&&(t={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)},t.prototype._updateTreeValidity=function(t){void 0===t&&(t={emitEvent:!0}),this._forEachChild(function(e){return e._updateTreeValidity(t)}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})},t.prototype._setInitialStatus=function(){this.status=this._allControlsDisabled()?"DISABLED":"VALID"},t.prototype._runValidator=function(){return this.validator?this.validator(this):null},t.prototype._runAsyncValidator=function(t){var e=this;if(this.asyncValidator){this.status="PENDING";var n=m(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){return e.setErrors(n,{emitEvent:t})})}},t.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},t.prototype.setErrors=function(t,e){void 0===e&&(e={}),this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)},t.prototype.get=function(t){return function(t,e,n){return null==e?null:(e instanceof Array||(e=e.split(".")),e instanceof Array&&0===e.length?null:e.reduce(function(t,e){return t instanceof ut?t.controls.hasOwnProperty(e)?t.controls[e]:null:t instanceof ct&&t.at(e)||null},t))}(this,t)},t.prototype.getError=function(t,e){var n=e?this.get(e):this;return n&&n.errors?n.errors[t]:null},t.prototype.hasError=function(t,e){return!!this.getError(t,e)},Object.defineProperty(t.prototype,"root",{get:function(){for(var t=this;t._parent;)t=t._parent;return t},enumerable:!0,configurable:!0}),t.prototype._updateControlsErrors=function(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)},t.prototype._initObservables=function(){this.valueChanges=new r.EventEmitter,this.statusChanges=new r.EventEmitter},t.prototype._calculateStatus=function(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"},t.prototype._anyControlsHaveStatus=function(t){return this._anyControls(function(e){return e.status===t})},t.prototype._anyControlsDirty=function(){return this._anyControls(function(t){return t.dirty})},t.prototype._anyControlsTouched=function(){return this._anyControls(function(t){return t.touched})},t.prototype._updatePristine=function(t){void 0===t&&(t={}),this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype._updateTouched=function(t){void 0===t&&(t={}),this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype._isBoxedValue=function(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},t.prototype._registerOnCollectionChange=function(t){this._onCollectionChange=t},t.prototype._setUpdateStrategy=function(t){it(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)},t}(),st=function(t){function e(e,n,a){void 0===e&&(e=null);var r=t.call(this,at(n),rt(a,n))||this;return r._onChange=[],r._applyFormState(e),r._setUpdateStrategy(n),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r._initObservables(),r}return Object(a.__extends)(e,t),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(function(t){return t(n.value,!1!==e.emitViewToModelChange)}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},e.prototype.reset=function(t,e){void 0===t&&(t=null),void 0===e&&(e={}),this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1},e.prototype._updateValue=function(){},e.prototype._anyControls=function(t){return!1},e.prototype._allControlsDisabled=function(){return this.disabled},e.prototype.registerOnChange=function(t){this._onChange.push(t)},e.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},e.prototype.registerOnDisabledChange=function(t){this._onDisabledChange.push(t)},e.prototype._forEachChild=function(t){},e.prototype._syncPendingControls=function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))},e.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t},e}(ot),ut=function(t){function e(e,n,a){var r=t.call(this,at(n),rt(a,n))||this;return r.controls=e,r._initObservables(),r._setUpdateStrategy(n),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return Object(a.__extends)(e,t),e.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)},e.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeControl=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.contains=function(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled},e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),Object.keys(t).forEach(function(a){n._throwIfControlMissing(a),n.controls[a].setValue(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),Object.keys(t).forEach(function(a){n.controls[a]&&n.controls[a].patchValue(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this._forEachChild(function(n,a){n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this._reduceChildren({},function(t,e,n){return t[n]=e instanceof st?e.value:e.getRawValue(),t})},e.prototype._syncPendingControls=function(){var t=this._reduceChildren(!1,function(t,e){return!!e._syncPendingControls()||t});return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},e.prototype._forEachChild=function(t){var e=this;Object.keys(this.controls).forEach(function(n){return t(e.controls[n],n)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){e.setParent(t),e._registerOnCollectionChange(t._onCollectionChange)})},e.prototype._updateValue=function(){this.value=this._reduceValue()},e.prototype._anyControls=function(t){var e=this,n=!1;return this._forEachChild(function(a,r){n=n||e.contains(r)&&t(a)}),n},e.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},function(e,n,a){return(n.enabled||t.disabled)&&(e[a]=n.value),e})},e.prototype._reduceChildren=function(t,e){var n=t;return this._forEachChild(function(t,a){n=e(n,t,a)}),n},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=Object(a.__values)(Object.keys(this.controls)),r=n.next();!r.done;r=n.next())if(this.controls[r.value].enabled)return!1}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return Object.keys(this.controls).length>0||this.disabled},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},e}(ot),ct=function(t){function e(e,n,a){var r=t.call(this,at(n),rt(a,n))||this;return r.controls=e,r._initObservables(),r._setUpdateStrategy(n),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return Object(a.__extends)(e,t),e.prototype.at=function(t){return this.controls[t]},e.prototype.push=function(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.insert=function(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()},e.prototype.removeAt=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),this.updateValueAndValidity()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(e.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),t.forEach(function(t,a){n._throwIfControlMissing(a),n.at(a).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),t.forEach(function(t,a){n.at(a)&&n.at(a).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this._forEachChild(function(n,a){n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this.controls.map(function(t){return t instanceof st?t.value:t.getRawValue()})},e.prototype._syncPendingControls=function(){var t=this.controls.reduce(function(t,e){return!!e._syncPendingControls()||t},!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},e.prototype._forEachChild=function(t){this.controls.forEach(function(e,n){t(e,n)})},e.prototype._updateValue=function(){var t=this;this.value=this.controls.filter(function(e){return e.enabled||t.disabled}).map(function(t){return t.value})},e.prototype._anyControls=function(t){return this.controls.some(function(e){return e.enabled&&t(e)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){return t._registerControl(e)})},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control at index: "+n+".")})},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=Object(a.__values)(this.controls),r=n.next();!r.done;r=n.next())if(r.value.enabled)return!1}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return this.controls.length>0||this.disabled},e.prototype._registerControl=function(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)},e}(ot),lt=Promise.resolve(null),dt=function(t){function e(e,n){var a=t.call(this)||this;return a.submitted=!1,a._directives=[],a.ngSubmit=new r.EventEmitter,a.form=new ut({},U(e),W(n)),a}return Object(a.__extends)(e,t),e.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(e.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),e.prototype.addControl=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path);t.control=n.registerControl(t.name,t.control),G(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),e._directives.push(t)})},e.prototype.getControl=function(t){return this.form.get(t.path)},e.prototype.removeControl=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name),J(e._directives,t)})},e.prototype.addFormGroup=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path),a=new ut({});V(a,t),n.registerControl(t.name,a),a.updateValueAndValidity({emitEvent:!1})})},e.prototype.removeFormGroup=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)})},e.prototype.getFormGroup=function(t){return this.form.get(t.path)},e.prototype.updateModel=function(t,e){var n=this;lt.then(function(){n.form.get(t.path).setValue(e)})},e.prototype.setValue=function(t){this.control.setValue(t)},e.prototype.onSubmit=function(t){return this.submitted=!0,Z(this.form,this._directives),this.ngSubmit.emit(t),!1},e.prototype.onReset=function(){this.resetForm()},e.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},e.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},e.prototype._findContainer=function(t){return t.pop(),t.length?this.form.get(t):this.form},e}(l),ft=function(){function t(){}return t.modelParentException=function(){throw new Error('\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup\'s partner directive "formControlName" instead. Example:\n\n '+R+'\n\n Or, if you\'d like to avoid registering this form control, indicate that it\'s standalone in ngModelOptions:\n\n Example:\n\n \n
\n \n \n
\n ')},t.formGroupNameException=function(){throw new Error("\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n "+A+"\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n "+E)},t.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: \n Example 2: ')},t.modelGroupParentException=function(){throw new Error("\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n "+A+"\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n "+E)},t.ngFormWarning=function(){console.warn("\n It looks like you're using 'ngForm'.\n\n Support for using the 'ngForm' element selector has been deprecated in Angular v6 and will be removed\n in Angular v9.\n\n Use 'ng-form' instead.\n\n Before:\n \n\n After:\n \n ")},t}(),pt=new r.InjectionToken("NgFormSelectorWarning"),ht=function(t){function e(e,n,a){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=a,r}var n;return Object(a.__extends)(e,t),n=e,e.prototype._checkParentType=function(){this._parent instanceof n||this._parent instanceof dt||ft.modelGroupParentException()},e}(Q),gt=Promise.resolve(null),mt=function(t){function e(e,n,a,i){var o=t.call(this)||this;return o.control=new st,o._registered=!1,o.update=new r.EventEmitter,o._parent=e,o._rawValidators=n||[],o._rawAsyncValidators=a||[],o.valueAccessor=X(o,i),o}return Object(a.__extends)(e,t),e.prototype.ngOnChanges=function(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),K(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(e.prototype,"path",{get:function(){return this._parent?z(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),e.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},e.prototype._setUpControl=function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},e.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)},e.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},e.prototype._setUpStandalone=function(){G(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})},e.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},e.prototype._checkParentType=function(){!(this._parent instanceof ht)&&this._parent instanceof Q?ft.formGroupNameException():this._parent instanceof ht||this._parent instanceof dt||ft.modelParentException()},e.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||ft.missingNameException()},e.prototype._updateValue=function(t){var e=this;gt.then(function(){e.control.setValue(t,{emitViewToModelChange:!1})})},e.prototype._updateDisabled=function(t){var e=this,n=t.isDisabled.currentValue,a=""===n||n&&"false"!==n;gt.then(function(){a&&!e.control.disabled?e.control.disable():!a&&e.control.disabled&&e.control.enable()})},e}(I),bt=new r.InjectionToken("NgModelWithFormControlWarning"),yt=function(t){function e(e,n){var a=t.call(this)||this;return a._validators=e,a._asyncValidators=n,a.submitted=!1,a.directives=[],a.form=null,a.ngSubmit=new r.EventEmitter,a}return Object(a.__extends)(e,t),e.prototype.ngOnChanges=function(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(e.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.addControl=function(t){var e=this.form.get(t.path);return G(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e},e.prototype.getControl=function(t){return this.form.get(t.path)},e.prototype.removeControl=function(t){J(this.directives,t)},e.prototype.addFormGroup=function(t){var e=this.form.get(t.path);V(e,t),e.updateValueAndValidity({emitEvent:!1})},e.prototype.removeFormGroup=function(t){},e.prototype.getFormGroup=function(t){return this.form.get(t.path)},e.prototype.addFormArray=function(t){var e=this.form.get(t.path);V(e,t),e.updateValueAndValidity({emitEvent:!1})},e.prototype.removeFormArray=function(t){},e.prototype.getFormArray=function(t){return this.form.get(t.path)},e.prototype.updateModel=function(t,e){this.form.get(t.path).setValue(e)},e.prototype.onSubmit=function(t){return this.submitted=!0,Z(this.form,this.directives),this.ngSubmit.emit(t),!1},e.prototype.onReset=function(){this.resetForm()},e.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},e.prototype._updateDomValue=function(){var t=this;this.directives.forEach(function(e){var n=t.form.get(e.path);e.control!==n&&(function(t,e){e.valueAccessor.registerOnChange(function(){return H(e)}),e.valueAccessor.registerOnTouched(function(){return H(e)}),e._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}(e.control,e),n&&G(n,e),e.control=n)}),this.form._updateTreeValidity({emitEvent:!1})},e.prototype._updateRegistrations=function(){var t=this;this.form._registerOnCollectionChange(function(){return t._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},e.prototype._updateValidators=function(){var t=U(this._validators);this.form.validator=h.compose([this.form.validator,t]);var e=W(this._asyncValidators);this.form.asyncValidator=h.composeAsync([this.form.asyncValidator,e])},e.prototype._checkFormPresent=function(){this.form||D.missingFormException()},e}(l),vt=function(t){function e(e,n,a){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=a,r}return Object(a.__extends)(e,t),e.prototype._checkParentType=function(){_t(this._parent)&&D.groupParentException()},e}(Q),xt=function(t){function e(e,n,a){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=a,r}return Object(a.__extends)(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return z(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){_t(this._parent)&&D.arrayParentException()},e}(l);function _t(t){return!(t instanceof vt||t instanceof yt||t instanceof xt)}var Tt=function(t){function e(e,n,a,i,o){var s=t.call(this)||this;return s._ngModelWarningConfig=o,s._added=!1,s.update=new r.EventEmitter,s._ngModelWarningSent=!1,s._parent=e,s._rawValidators=n||[],s._rawAsyncValidators=a||[],s.valueAccessor=X(s,i),s}var n;return Object(a.__extends)(e,t),n=e,Object.defineProperty(e.prototype,"isDisabled",{set:function(t){D.disabledAttrWarning()},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(t){var e,a;this._added||this._setUpControl(),K(t,this.viewModel)&&("formControlName",e=n,this,a=this._ngModelWarningConfig,Object(r.isDevMode)()&&"never"!==a&&((null!==a&&"once"!==a||e._ngModelWarningSentOnce)&&("always"!==a||this._ngModelWarningSent)||(D.ngModelWarning("formControlName"),e._ngModelWarningSentOnce=!0,this._ngModelWarningSent=!0)),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},e.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},Object.defineProperty(e.prototype,"path",{get:function(){return z(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){!(this._parent instanceof vt)&&this._parent instanceof Q?D.ngModelGroupException():this._parent instanceof vt||this._parent instanceof yt||this._parent instanceof xt||D.controlParentException()},e.prototype._setUpControl=function(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},e._ngModelWarningSentOnce=!1,e}(I),wt=function(){function t(){}return Object.defineProperty(t.prototype,"required",{get:function(){return this._required},set:function(t){this._required=null!=t&&!1!==t&&""+t!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this.required?h.required(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t}(),St=function(){function t(){}return t.prototype.group=function(t,e){void 0===e&&(e=null);var n=this._reduceControls(t),a=null,r=null,i=void 0;return null!=e&&(function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(e)?(a=null!=e.validators?e.validators:null,r=null!=e.asyncValidators?e.asyncValidators:null,i=null!=e.updateOn?e.updateOn:void 0):(a=null!=e.validator?e.validator:null,r=null!=e.asyncValidator?e.asyncValidator:null)),new ut(n,{asyncValidators:r,updateOn:i,validators:a})},t.prototype.control=function(t,e,n){return new st(t,e,n)},t.prototype.array=function(t,e,n){var a=this,r=t.map(function(t){return a._createControl(t)});return new ct(r,e,n)},t.prototype._reduceControls=function(t){var e=this,n={};return Object.keys(t).forEach(function(a){n[a]=e._createControl(t[a])}),n},t.prototype._createControl=function(t){return t instanceof st||t instanceof ut||t instanceof ct?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)},t}(),Ot=function(){return function(){}}(),It=function(){return function(){}}(),Ct=function(){function t(){}var e;return e=t,t.withConfig=function(t){return{ngModule:e,providers:[{provide:pt,useValue:t.warnOnDeprecatedNgFormSelector}]}},t}(),kt=function(){function t(){}var e;return e=t,t.withConfig=function(t){return{ngModule:e,providers:[{provide:bt,useValue:t.warnOnNgModelWithFormControl}]}},t}()},gTqA:function(t,e,n){"use strict";var a=n("Q1FS"),r=n("6qA3"),i=n("EBtg");e.from=function(t,e){return e?i.scheduled(t,e):t instanceof a.Observable?t:new a.Observable(r.subscribeTo(t))}},gVVK:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===t?e?"sekundo":"sekundi":2===t?e||a?"sekundi":"sekundah":t<5?e||a?"sekunde":"sekundah":"sekund");case"m":return e?"ena minuta":"eno minuto";case"mm":return r+(1===t?e?"minuta":"minuto":2===t?e||a?"minuti":"minutama":t<5?e||a?"minute":"minutami":e||a?"minut":"minutami");case"h":return e?"ena ura":"eno uro";case"hh":return r+(1===t?e?"ura":"uro":2===t?e||a?"uri":"urama":t<5?e||a?"ure":"urami":e||a?"ur":"urami");case"d":return e||a?"en dan":"enim dnem";case"dd":return r+(1===t?e||a?"dan":"dnem":2===t?e||a?"dni":"dnevoma":e||a?"dni":"dnevi");case"M":return e||a?"en mesec":"enim mesecem";case"MM":return r+(1===t?e||a?"mesec":"mesecem":2===t?e||a?"meseca":"mesecema":t<5?e||a?"mesece":"meseci":e||a?"mesecev":"meseci");case"y":return e||a?"eno leto":"enim letom";case"yy":return r+(1===t?e||a?"leto":"letom":2===t?e||a?"leti":"letoma":t<5?e||a?"leta":"leti":e||a?"let":"leti")}}n("wd/R").defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}()},gekB:function(t,e,n){!function(t){"use strict";var e="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),n=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",e[7],e[8],e[9]];function a(t,a,r,i){var o="";switch(r){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":return i?"sekunnin":"sekuntia";case"m":return i?"minuutin":"minuutti";case"mm":o=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":o=i?"tunnin":"tuntia";break;case"d":return i?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":o=i?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return i?"kuukauden":"kuukausi";case"MM":o=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":o=i?"vuoden":"vuotta"}return function(t,a){return t<10?a?n[t]:e[t]:t}(t,i)+" "+o}t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},gjCT:function(t,e,n){!function(t){"use strict";var e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},n={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};t.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(t){return t.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(t){return n[t]}).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(n("wd/R"))},gp3X:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R");n("sb0X"),n.d(e,"a",function(){return i}),n.d(e,"b",function(){return s});var i=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"i",[["class","fa fa-spinner fa-spin fa-fw"]],null,null,null,null,null))],null,null)}function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"button",[["class","btn btn-sm btn-primary tc_submitButton"]],[[8,"type",0],[8,"disabled",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.submit(n)&&a),a},null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275and"](16777216,null,null,1,null,o)),a["\u0275did"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,3,0,e.component.loading)},function(t,e){var n=e.component;t(e,0,0,n.type,n.loading||n.disabled)})}},"h+PQ":function(t,e,n){"use strict";function a(){return""}function r(t,e){if(null==t)return"";if(!t||null==e)return t;var n=t[e];return null==n?"":n}function i(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];return null==n?"":n}function o(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];if(void 0!==n)return n;n=t;var a=e.split(".");if(a.length)for(var r=0;re)return 1}else if(isNaN(parseFloat(t))||!isFinite(t)||isNaN(parseFloat(e))||!isFinite(e)){if(t=String(t),e=String(e),t.toLowerCase()e.toLowerCase())return 1}else{if(parseFloat(t)parseFloat(e))return 1}return 0}e.nextSortDir=function(t,e){return t===a.SortType.single?e===a.SortDirection.asc?a.SortDirection.desc:a.SortDirection.asc:e?e===a.SortDirection.asc?a.SortDirection.desc:void 0:a.SortDirection.asc},e.orderByComparator=i,e.sortRows=function(t,e,n){if(!t)return[];if(!n||!n.length||!e)return t.slice();var o=new Map;t.forEach(function(t,e){return o.set(t,e)});var s=t.slice(),u=e.reduce(function(t,e){return e.comparator&&"function"==typeof e.comparator&&(t[e.prop]=e.comparator),t},{}),c=n.map(function(t){var e=t.prop;return{prop:e,dir:t.dir,valueGetter:r.getterForProp(e),compareFn:u[e]||i}});return s.sort(function(t,e){for(var n=0,r=c;n\n \n \n \n Toggle navigation\n Attiva/Disattiva barra di navigazione\n \n \n Dashboard\n Dashboard\n \n \n Cluster\n Cluster\n \n \n Hosts\n Host\n \n \n Monitors\n Monitor\n \n \n OSDs\n OSD\n \n \n Configuration\n Configurazione\n \n \n CRUSH map\n Mappa CRUSH\n \n \n Manager modules\n Moduli Manager\n \n \n Logs\n Log\n \n \n Alerts\n Avvisi\n \n \n Silences\n Silences\n \n \n Pools\n Pool\n \n \n Block\n Blocco\n \n \n Images\n Immagini\n \n \n Mirroring\n Esecuzione della copia speculare\n \n \n iSCSI\n iSCSI \n \n \n NFS\n NFS\n \n \n Filesystems\n File system\n \n \n Object Gateway\n Object Gateway\n \n \n Daemons\n Daemon\n \n \n Users\n Utenti\n \n \n Buckets\n Compartimenti\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Recupero dati\n per\n \n \n . Attendere...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Visualizzazione dei dati memorizzati in precedenza nella cache\n \n per \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Impossibile caricare i dati\n per\n \n \n .\n Verificare lo stato del cluster.\n \n \n \n Back\n Indietro\n \n \n Select a Language\n Selezionare una lingua\n \n \n Loading panel data...\n Caricamento pannello dati in corso...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Consultare la\n documentazione\n su come\n configurare e abilitare la funzionalit\xe0 di monitoraggio.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Il dashboard di Grafana non esiste. Consultare la\n documentazione\n su come\n aggiungere dashboard a Grafana.\n \n \n \n Grafana Time Picker\n Selezione ora di Grafana\n \n \n Reset Settings\n Impostazioni di ripristino\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Non \xe8 stato possibile caricare i dati.\n \n \n selected\n selezionato\n X selected\n \n \n found\n trovato\n X found\n \n \n total\n totale\n X total\n \n \n Edit\n Modifica\n \n \n Name\n Nome\n \n \n Description\n Descrizione\n \n \n Long description\n Descrizione lunga\n \n \n Default\n Default\n \n \n Daemon default\n Default del daemon\n \n \n Services\n Servizi\n \n \n Values\n Valori\n \n \n The entered value is too high! It must not be greater than \n .\n \n Il valore immesso \xe8 troppo alto. Non deve essere maggiore di \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Il valore immesso \xe8 troppo basso. Non deve essere minore di \n .\n \n \n \n Save\n Salva\n \n \n CRUSH map viewer\n Visualizzatore mappa CRUSH\n \n \n Hosts List\n Elenco degli host\n \n \n Overall Performance\n Prestazioni complessive\n \n \n No entries found\n Nessuna voce trovata\n \n \n Cluster Logs\n Log dei cluster\n \n \n Audit Logs\n Log delle revisioni\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Caricamento della configurazione in corso...\n \n \n The configuration could not be loaded.\n Impossibile caricare la configurazione.\n \n \n Edit Manager module\n Modifica modulo Manager\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Il valore immesso non \xe8 un UUID valido, ad es.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Il valore immesso deve essere un indirizzo IP valido.\n \n \n This field is required.\n Questo campo \xe8 obbligatorio.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Il valore immesso \xe8 troppo alto. Deve essere minore o uguale a \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Il valore immesso \xe8 troppo basso. Deve essere maggiore o uguale a \n .\n \n \n \n The entered value needs to be a number.\n Il valore immesso deve essere un numero.\n \n \n The entered value needs to be a number or decimal.\n Il valore immesso deve essere un numero o un decimale.\n \n \n Update\n Aggiorna\n \n \n Status\n Stato\n \n \n Cluster ID\n ID cluster\n \n \n monmap modified\n mappa mon modificata\n \n \n monmap epoch\n epoca mappa mon\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n con richiesta\n \n \n required mon\n mon richiesto\n \n \n In Quorum\n Nel quorum\n \n \n Not In Quorum\n Non nel quorum\n \n \n Cancel\n Annulla\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Si \xe8 sicuri di voler \n l\'elemento \n selezionato?\n \n \n \n Yes, I am sure.\n S\xec.\n \n \n Cluster-wide OSD Flags\n Flag OSD in tutto il cluster\n \n \n Submit\n Invia\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avanzate...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorit\xe0 di recupero OSD\n \n \n Priority\n Priorit\xe0\n \n \n Customize priority values\n Personalizza valori di priorit\xe0\n \n \n This field is required!\n Questo campo \xe8 obbligatorio.\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Il valore immesso \xe8 troppo alto. Non deve essere maggiore di \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Il valore immesso \xe8 troppo basso. Non deve essere minore di \n .\n \n \n \n Reweight OSD\n Ripesa OSD\n \n \n The value needs to be between 0 and 1.\n Il valore deve essere compreso tra 0 e 1.\n \n \n Reweight\n Ripesa\n \n \n OSDs \n Scrub\n \n Pulitura degli \n OSD\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Deep } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Si sta per eseguire una \n pulitura\n dell\'OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {deep } }\n \n \n OSDs List\n Elenco degli OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n L\'OSD \n \n viene contrassegnato\n \n \n se si procede.\n \n \n \n The OSD is not safe to destroy!\n Non \xe8 sicuro eliminare definitivamente l\'OSD.\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n L\'OSD \n \n viene\n \n \n se si procede.\n \n \n \n Details\n Dettagli\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valore\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Chiudi\n \n \n Delete\n Elimina\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Stato\n \n \n Statistics\n Statistiche\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Consultare la \n documentazione\n \n su come configurare e abilitare la funzionalit\xe0 di gestione di NFS Ganesha.\n \n \n \n Clients\n Client\n \n \n Any client can access\n Pu\xf2 accedere qualsiasi client\n \n \n Addresses\n Indirizzi\n \n \n Required field\n Campo obbligatorio\n \n \n Must contain one or more comma-separated values\n Deve contenere uno o pi\xf9 valori delimitati da virgole\n \n \n For example:\n Ad esempio:\n \n \n Access Type\n Tipo di accesso\n \n \n Squash\n Esegui squash\n \n \n Add clients\n Aggiungi client\n \n \n Loading...\n Caricamento in corso...\n \n \n -- No cluster available --\n -- Nessun cluster disponibile --\n \n \n -- Select the cluster --\n -- Selezionare il cluster --\n \n \n Add daemon\n Aggiungi daemon\n \n \n Storage Backend\n Backend di storage\n \n \n -- No data pools available --\n -- Nessun pool di dati disponibile --\n \n \n -- Select the storage backend --\n -- Selezionare il backend di storage --\n \n \n Object Gateway User\n Utente Object Gateway\n \n \n -- No users available --\n -- Nessun utente disponibile --\n \n \n -- Select the object gateway user --\n -- Selezionare l\'utente Object Gateway --\n \n \n CephFS User ID\n ID utente CephFS\n \n \n -- No clients available --\n -- Nessun client disponibile --\n \n \n -- Select the cephx client --\n -- Selezionare il client Cephx --\n \n \n CephFS Name\n Nome CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Etichetta di sicurezza\n \n \n Enable security label\n Abilita etichetta di sicurezza\n \n \n CephFS Path\n Percorso CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n Il percorso deve iniziare con una barra \'/\' e pu\xf2 essere seguito da una parola\n \n \n New directory will be created\n Viene creata la nuova directory\n \n \n Path\n Percorso\n \n \n Path can only be a single \'/\' or a word\n Il percorso pu\xf2 essere solo una singola barra \'/\' o parola\n \n \n New bucket will be created\n Viene creato il nuovo compartimento\n \n \n NFS Protocol\n Protocollo NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Accesso alternativo per montaggi \n NFS v3\n (non deve contenere una / iniziale).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n I client non possono montare le sottodirectory (ad es. se Tag = foo, il client non pu\xf2 montare foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Utilizzando diverse opzioni Tag, \xe8 possibile esportare pi\xf9 volte lo stesso percorso.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n La posizione che occupa l\'esportazione \n NFS v4\n \n nello \n Pseudo FS\n (deve essere univoca).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Utilizzando diverse opzioni Pseudo, \xe8 possibile esportare pi\xf9 volte lo stesso percorso.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Nessun tipo di accesso disponibile --\n \n \n -- Select the access type --\n -- Selezionare il tipo di accesso --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Nessuno squash disponibile --\n \n \n --Select what kind of user id squashing is performed --\n --Selezionare il tipo di squash dell\'ID utente da eseguire --\n \n \n Transport Protocol\n Protocollo di trasporto\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Benvenuto in Ceph.\n The welcome message on the login page\n \n \n Username is required\n Nome utente necessario\n \n \n Password is required\n Password richiesta\n \n \n Login\n Login\n \n \n Sorry, the user does not exist in Ceph.\n Spiacenti, l\'utente non esiste in Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Tornale alla \n Pagina di login\n . Si viene disconnessi dal Provider di identit\xe0\n quando si riprova a eseguire il login.\n \n \n \n Forbidden\n Non consentito\n \n \n Sorry, you are not allowed to see what you were looking for.\n Spiacenti, non \xe8 consentito visualizzare ci\xf2 che si stava cercando.\n \n \n Sorry, we could not find what you were looking for\n Spiacenti, impossibile trovare ci\xf2 che si stava cercando\n \n \n Remove all\n Rimuovi tutto\n \n \n Recent Notifications\n Notifiche recenti\n \n \n There are no background tasks.\n Non esistono task in background.\n \n \n Background Tasks\n Task in background\n \n \n Help\n Guida\n \n \n Documentation\n Documentazione\n \n \n API\n API\n \n \n About\n Informazioni su\n \n \n Dashboard Settings\n Impostazioni del dashboard\n \n \n User management\n Gestione utenti\n \n \n Logged in user\n Utente connesso\n \n \n Signed in as\n \n \n \n \n Connesso come\n \n \n \n \n \n \n Sign out\n Disconnetti\n \n \n Name...\n Nome...\n \n \n The chosen name is already in use.\n Il nome scelto \xe8 gi\xe0 in uso.\n \n \n Description...\n Descrizione...\n \n \n Permissions\n Autorizzazioni\n \n \n Roles\n Ruoli\n \n \n Username\n Nome utente\n \n \n Password\n Password\n \n \n Confirm password\n Conferma password\n \n \n Password confirmation doesn\'t match the password.\n La password di conferma non corrisponde alla password.\n \n \n Full name\n Nome completo\n \n \n Email\n E-mail\n \n \n Invalid email.\n E-mail non valida.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Si stanno per rimuovere le autorizzazioni di "lettura/aggiornamento utente" dal proprio utente.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Se si continua, non \xe8 pi\xf9 possibile aggiungere o rimuovere ruoli da qualsiasi utente.\n \n \n Are you sure you want to continue?\n Continuare?\n \n \n Performance counters not available\n Contatori delle prestazioni non disponibili\n \n \n Attributes (OSD map)\n Attributi (mappa OSD)\n \n \n Metadata not available\n Metadati non disponibili\n \n \n Metadata\n Metadati\n \n \n Performance counter\n Contatore delle prestazioni\n \n \n Histogram not available: \n \n \n Istogramma non disponibile: \n \n \n \n \n Writes\n Scritture\n \n \n Reads\n Letture\n \n \n Histogram\n Istogramma\n \n \n Performance Details\n Dettagli sulle prestazioni\n \n \n Current values\n Valori attuali\n \n \n Type\n Tipo\n \n \n Min\n Min\n \n \n Max\n Max\n \n \n Flags\n Flag\n \n \n Source\n Origine\n \n \n Level\n Livello\n \n \n Can be updated at runtime (editable)\n Pu\xf2 essere aggiornato al runtime (modificabile)\n \n \n Tags\n Tag\n \n \n Enum values\n Valori di enumerazione\n \n \n See also\n Vedere anche\n \n \n Cluster Status\n Stato del cluster\n \n \n Manager Daemons\n Manager Daemon\n \n \n Object Gateways\n Object Gateway\n \n \n Metadata Servers\n Server di metadati\n \n \n iSCSI Gateways\n iSCSI Gateway\n \n \n Client IOPS\n IOPS client\n \n \n Client Throughput\n Velocit\xe0 effettiva client\n \n \n Client Read/Write\n Lettura/scrittura client\n \n \n Recovery Throughput\n Velocit\xe0 effettiva di recupero\n \n \n Scrub\n Pulitura\n \n \n Performance\n Prestazioni\n \n \n Raw Capacity\n Capacit\xe0 di base\n \n \n Objects\n Oggetti\n \n \n PGs per OSD\n Gruppi di posizionamento per OSD\n \n \n PG Status\n Stato gruppo di posizionamento\n \n \n Capacity\n Capacit\xe0\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Vedere \n Log\n per ulteriori informazioni.\n \n \n \n Ranks\n Classificazioni\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Client: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Sposta un\'immagine nel cestino\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Per spostare \n \n /\n \n nel cestino,\n fare clic su \n Sposta immagine\n . Facoltativamente, \xe8 possibile selezionare una data di scadenza.\n \n \n \n Protection expires at\n La protezione scade alle\n \n \n NOT PROTECTED\n NON PROTETTO\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Formato data errato. Utilizzare "AAAA-MM-GG HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n La protezione \xe8 gi\xe0 scaduta. Selezionare una data futura o lasciarla vuota.\n \n \n Move Image\n Sposta immagine\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Panoramica\n \n \n Targets\n Destinazioni\n \n \n Discovery Authentication\n Autenticazione rilevazione\n \n \n User\n Utente\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Utente reciproco\n \n \n Mutual Password\n Password reciproca\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Consultare la \n documentazione\n \n su come configurare e abilitare la funzionalit\xe0 di gestione delle destinazioni iSCSI.\n \n \n \n Available information:\n Informazioni disponibili:\n \n \n iSCSI Targets not available\n Destinazioni iSCSI non disponibili\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Disponibile solo per le immagini RDB con \n fast-diff\n abilitata\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Pool di dati\n \n \n Created\n Creato\n \n \n Size\n Dimensioni\n \n \n Object size\n Dimensioni oggetto\n \n \n Features\n Funzioni\n \n \n Provisioned\n Soggetto al provisioning\n \n \n N/A\n N/D\n \n \n Total provisioned\n Totale soggetto al provisioning\n \n \n Striping unit\n Unit\xe0 di striping\n \n \n Striping count\n Conteggio di striping\n \n \n Parent\n Superiore\n \n \n Block name prefix\n Prefisso nome blocco\n \n \n Order\n Ordine\n \n \n Snapshots\n Snapshot\n \n \n Image\n Immagine\n \n \n This setting overrides the global value\n Questa impostazione sostituisce il valore globale\n \n \n Global\n Globale\n \n \n This is the global value. No value for this option has been set for this image.\n Questo \xe8 il valore globale. Nessun valore di opzione \xe8 stato impostato per questa immagine.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' e \'@\' non sono consentiti.\n \n \n -- No rbd pools available --\n -- Nessun pool rbd disponibile --\n \n \n -- Select a pool --\n -- Selezionare un pool --\n \n \n Use a dedicated data pool\n Utilizza un pool di dati dedicato\n \n \n Data pool\n Pool di dati\n \n \n Dedicated pool that stores the object-data of the RBD.\n Pool dedicato che archivia i dati oggetto dell\'RBD.\n \n \n e.g., 10GiB\n ad es. 10 GiB\n \n \n You have to increase the size.\n \xc8 necessario aumentare le dimensioni.\n \n \n Advanced\n Avanzate\n \n \n Striping\n Striping\n \n \n Stripe unit\n Unit\xe0 di striping\n \n \n -- Select stripe unit --\n -- Selezionare l\'unit\xe0 di striping --\n \n \n This field is required because stripe count is defined!\n Questo campo \xe8 obbligatorio perch\xe9 \xe8 specificato il numero di striping.\n \n \n Stripe unit is greater than object size.\n L\'unit\xe0 di striping \xe8 maggiore delle dimensioni dell\'oggetto.\n \n \n Stripe count\n Numero di striping\n \n \n This field is required because stripe unit is defined!\n Questo campo \xe8 obbligatorio perch\xe9 \xe8 specificata l\'unit\xe0 di striping.\n \n \n Stripe count must be greater than 0.\n Il numero di striping deve essere maggiore di 0.\n \n \n \n RBD Snapshot\n \n \n Snapshot RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Rename} other {Create} }\n \n \n \n Snapshot\n \n \n Snapshot\n \n \n \n PROTECTED\n PROTETTO\n \n \n UNPROTECTED\n NON PROTETTO\n \n \n You are about to rollback\n Si sta per eseguire il rollback\n \n \n Purge Trash\n Elimina definitivamente contenuto del cestino\n \n \n To purge, select one or All images and click\n Per eliminare definitivamente, selezionare una o tutte le immagini e fare clic su\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Nome pool...\n \n \n All\n Tutto\n \n \n Restore Image\n Ripristina immagine\n \n \n To restore\n Per ripristinare,\n \n \n type the image\'s new name and click\n digitare il nuovo nome dell\'immagine e fare clic su\n \n \n New Name\n Nuovo nome\n \n \n Expired at\n Scaduto alle\n \n \n Protected until\n Protetto fino alle\n \n \n This image is protected until \n .\n \n Questa immagine \xe8 protetta fino alle \n .\n \n \n \n Trash\n Cestino\n \n \n iSCSI Topology\n Topologia iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Di solito non \xe8 necessario modificare questi parametri rispetto ai valori di default.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Impostazioni\n \n \n Backstore\n Backstore\n \n \n Confirm\n Conferma\n \n \n Advanced Settings\n Impostazioni avanzate\n \n \n Target IQN\n IQN di destinazione\n \n \n IQN has wrong pattern.\n IQN contiene un modello errato.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Un IQN contiene la notazione seguente \'iqn.$year-$month.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Ad esempio: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Ulteriori informazioni\n \n \n This target has modified advanced settings.\n Questa destinazione contiene impostazioni avanzate modificate.\n \n \n Portals\n Portali\n \n \n At least \n gateways are required.\n \n Gateway richiesti: almeno \n .\n \n \n \n Add portal\n Aggiungi portale\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Questa immagine contiene impostazioni modificate.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Aggiungi immagine\n \n \n ACL authentication\n Autenticazione ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Iniziatori\n \n \n Initiator\n Iniziatore\n \n \n Client IQN\n IQN client\n \n \n Initiator IQN needs to be unique.\n L\'IQN dell\'iniziatore deve essere univoco.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n L\'iniziatore appartiene a un gruppo. Le immagini verranno configurate nel gruppo.\n \n \n No items added.\n Nessun elemento aggiunto.\n \n \n Add initiator\n Aggiungi iniziatore\n \n \n Groups\n Gruppi\n \n \n Group\n Gruppo\n \n \n Add group\n Aggiungi gruppo\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configurazione RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Rimuovere il valore della configurazione locale. Al suo posto verr\xe0 ereditato e utilizzato il valore della configurazione superiore.\n \n \n The mininum value is 0\n Il valore minimo \xe8 0\n \n \n Issues\n Problemi\n \n \n Syncing\n Sincronizzazione in corso\n \n \n Ready\n Pronto\n \n \n Edit pool mirror mode\n Modifica modalit\xe0 speculare per il pool\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Per modificare la modalit\xe0 speculare per il pool\xa0\n \n \n , selezionare una nuova modalit\xe0 dall\'elenco e fare clic su\xa0\n Aggiorna\n .\n \n \n \n Mode\n Modalit\xe0\n \n \n Peer clusters must be removed prior to disabling mirror.\n \xc8 necessario rimuovere i cluster peer prima di disabilitare la copia speculare.\n \n \n \n \n pool mirror peer\n \n \n \n peer copia speculare del pool\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n gli attributi peer della\n copia speculare per il pool \n \n \n e fare clic su \n Invia\n .\n \n \n \n Cluster Name\n Nome cluster\n \n \n The cluster name is not valid.\n Il nome del cluster non \xe8 valido.\n \n \n CephX ID\n ID CephX\n \n \n CephX ID...\n ID CephX...\n \n \n The CephX ID is not valid.\n L\'ID CephX non \xe8 valido.\n \n \n Monitor Addresses\n Indirizzi dei monitor\n \n \n Comma-delimited addresses...\n Indirizzi con valori delimitati da virgole...\n \n \n The monitory address is not valid.\n L\'indirizzo del monitor non \xe8 valido.\n \n \n CephX Key\n Chiave CephX\n \n \n Base64-encoded key...\n Chiave con codifica Base64...\n \n \n CephX key must be base64 encoded.\n La chiave CephX deve essere con codifica Base64.\n \n \n Pools List\n Elenco dei pool\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Il nome pu\xf2 contenere solo caratteri alfanumerici, trattini e caratteri di sottolineatura.\n \n \n The chosen erasure code profile name is already in use.\n Il nome del profilo del codice di cancellazione selezionato \xe8 gi\xe0 in uso.\n \n \n Plugin\n Plugin\n \n \n Data chunks (k)\n Porzioni di dati (k)\n \n \n Must be equal to or greater than 2.\n Deve essere uguale o maggiore di 2.\n \n \n Coding chunks (m)\n Porzioni di codice (m)\n \n \n Must be equal to or greater than 1.\n Deve essere uguale o maggiore di 1.\n \n \n Durability estimator (c)\n Stima durata (c)\n \n \n Locality (l)\n Localit\xe0 (l)\n \n \n Crush failure domain\n Dominio di errore Crush\n \n \n Crush Locality\n Localit\xe0 Crush\n \n \n None\n Nessuno\n \n \n Technique\n Tecnica\n \n \n Packetsize\n Dimensione del pacchetto\n \n \n Crush root\n Radice Crush\n \n \n Crush device class\n Classe dispositivo Crush\n \n \n any\n qualsiasi\n \n \n Directory\n Directory\n \n \n The chosen Ceph pool name is already in use.\n Il nome del pool Ceph scelto \xe8 gi\xe0 in uso.\n \n \n Pool type\n Tipo di pool\n \n \n -- Select a pool type --\n -- Selezionare un tipo di pool --\n \n \n Placement groups\n Gruppi di posizionamento\n \n \n At least one placement group is needed!\n \xc8 necessario almeno un gruppo di posizionamento.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Il cluster non pu\xf2 gestire questo numero eccessivo di gruppi di posizionamento. Ricalcolare il numero di gruppi di posizionamento necessari.\n \n \n Calculation help\n Guida per il calcolo\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Sono state calcolate le impostazioni dei gruppi di posizionamento attuali;\n prima di inviare, assicurarsi che i valori soddisfino le proprie esigenze.\n \n \n Crush ruleset\n Set di regole Crush\n \n \n -- Select a crush rule --\n -- Selezionare una regola Crush --\n \n \n Crush rule\n Regola Crush\n \n \n Crush steps\n Passaggi Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Non \xe8 possibile utilizzare la regola nel cluster attuale perch\xe9 il numero degli\n OSD che contiene \xe8 troppo basso e non soddisfa il numero minimo di OSD richiesto da questa regola.\n \n \n Replicated size\n Dimensioni replicate\n \n \n Minimum: \n \n \n Minime: \n \n \n \n \n Maximum: \n \n \n Massime: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Le dimensioni specificate non sono comprese nell\'intervallo. L\'intervallo valido \xe8 da\n a\n .\n \n \n \n Erasure code profile\n Profilo del codice di cancellazione\n \n \n -- No erasure code profile available --\n -- Nessun profilo del codice di cancellazione disponibile --\n \n \n -- Select an erasure code profile --\n -- Selezionare un profilo del codice di cancellazione --\n \n \n EC Overwrites\n Sovrascritture EC\n \n \n Applications\n Applicazioni\n \n \n Compression\n Compressione\n \n \n Algorithm\n Algoritmo\n \n \n -- No erasure compression algorithm available --\n -- Nessun algoritmo di compressione della cancellazione disponibile --\n \n \n Minimum blob size\n Dimensioni minime del blob\n \n \n e.g., 128KiB\n ad es. 128 KiB\n \n \n Value should be greater than 0\n Il valore deve essere maggiore di 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Dimensioni massime del blob\n \n \n e.g., 512KiB\n ad es. 512 KiB\n \n \n Value should be greater than the minimum blob size\n Il valore deve essere maggiore delle dimensioni minime del blob\n \n \n Ratio\n Rapporto\n \n \n Compression ratio\n Rapporto di compressione\n \n \n Value should be between 0.0 and 1.0\n Il valore deve essere compreso tra 0,0 e 1,0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Non \xe8 possibile creare un pool RBD con una \'/\' nel nome.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Modificare il nome o rimuovere \'rbd\' dall\'elenco delle applicazioni.\n \n \n Cache Tiers Details\n Dettagli livelli cache\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Consultare la \n documentazione\n \n su come configurare e abilitare la funzionalit\xe0 di gestione di Object Gateway.\n \n \n \n Daemons List\n Elenco dei daemon\n \n \n Performance Counters\n Contatori delle prestazioni\n \n \n Loading bucket data...\n Caricamento dati compartimento in corso...\n \n \n The bucket data could not be loaded.\n Impossibile caricare i dati del compartimento.\n \n \n Id\n ID\n \n \n The value is not valid.\n Il valore non \xe8 valido.\n \n \n Owner\n Proprietario\n \n \n -- Select a user --\n -- Selezionare un utente --\n \n \n ID\n ID\n \n \n Index type\n Tipo di indice\n \n \n Placement rule\n Regola di posizionamento\n \n \n Marker\n Contrassegno\n \n \n Maximum marker\n Contrassegno massimo\n \n \n Version\n Versione\n \n \n Master version\n Versione master\n \n \n Modification time\n Ora di modifica\n \n \n Zonegroup\n Gruppo di zone\n \n \n Bucket quota\n Quota compartimenti\n \n \n Enabled\n Abilitato\n \n \n Maximum size\n Dimensioni massime\n \n \n Unlimited\n Illimitato\n \n \n Maximum objects\n Numero massimo di oggetti\n \n \n -- Select a username --\n -- Selezionare un nome utente --\n \n \n Auto-generate key\n Generazione automatica chiave\n \n \n Access key\n Chiave di accesso\n \n \n Secret key\n Chiave segreta\n \n \n Email address\n Indirizzo e-mail\n \n \n Suspended\n Sospeso\n \n \n System\n Sistema\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n \n \n Maximum buckets\n Numero massimo di compartimenti\n \n \n Subusers\n Sottoutenti\n \n \n Capabilities\n Capacit\xe0\n \n \n User quota\n Quota utenti\n \n \n Show\n Mostra\n \n \n Keys\n Chiavi\n \n \n -- Select a type --\n -- Selezionare un tipo --\n \n \n Permission\n Autorizzazione\n \n \n -- Select a permission --\n -- Selezionare un\'autorizzazione --\n \n \n Subuser\n Sottoutente\n \n \n The chosen subuser ID is already in use.\n L\'ID del sottoutente scelto \xe8 gi\xe0 in uso.\n \n \n read, write\n lettura, scrittura\n \n \n full\n pieno\n \n \n Swift key\n Chiave Swift\n \n \n Auto-generate secret\n Generazione automatica segreto\n \n \n Loading user data...\n Caricamento dati utente in corso...\n \n \n The user data could not be loaded.\n Impossibile caricare i dati utente.\n \n \n The chosen user ID is already in use.\n L\'ID utente scelto \xe8 gi\xe0 in uso.\n \n \n This is not a valid email address.\n Non \xe8 un indirizzo e-mail valido.\n \n \n The chosen email address is already in use.\n L\'indirizzo e-mail scelto \xe8 gi\xe0 in uso.\n \n \n Max. buckets\n Numero max. di compartimenti\n \n \n The entered value must be >= 0.\n Il valore immesso deve essere >= a 0.\n \n \n S3 key\n Chiave S3\n \n \n There are no subusers.\n Non esistono sottoutenti.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Non esistono chiavi.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Non esistono capacit\xe0.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Dimensioni illimitate\n \n \n Max. size\n Dimensione max.\n \n \n Unlimited objects\n Oggetti illimitati\n \n \n Max. objects\n Numero max. di oggetti\n \n \n Current\n Attuale\n \n \n Updated discovery authentication\n Autenticazione rilevazione aggiornata\n \n \n There are no portals available.\n Non sono disponibili pool.\n \n \n There are no images available.\n Non sono disponibili immagini.\n \n \n There are no images available. Please make sure you add an image to the target.\n Non sono disponibili immagini. Assicurarsi di aggiungere un\'immagine alla destinazione.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Non sono disponibili iniziatori. Assicurarsi di aggiungere un iniziatore alla destinazione.\n \n \n target\n target\n \n \n Target\n Destinazione\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Stato\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Byte letti\n \n \n Write Bytes\n Byte scritti\n \n \n Read Ops\n Operazioni di lettura\n \n \n Write Ops\n Operazioni di scrittura\n \n \n A/O Since\n A/O da\n \n \n Instance\n Istanza\n \n \n Hostname\n Nome host\n \n \n Issue\n Problema\n \n \n Progress\n Avanzamento\n \n \n Disabled\n Disabilitato\n \n \n Edit Mode\n Modalit\xe0 di modifica\n \n \n Add Peer\n Aggiungi peer\n \n \n Edit Peer\n Modifica peer\n \n \n Delete Peer\n Elimina peer\n \n \n Leader\n Sequenza iniziale\n \n \n # Local\n # Locale\n \n \n # Remote\n # Remoto\n \n \n mirror peer\n peer copia speculare\n \n \n Key\n Chiave\n \n \n RBD\n RBD\n \n \n Deep flatten\n Appiattimento profondo\n \n \n Layering\n Su strati\n \n \n Exclusive lock\n Blocco esclusivo\n \n \n Object map (requires exclusive-lock)\n Mappa oggetti (richiede il blocco escluso)\n \n \n Journaling (requires exclusive-lock)\n Journaling (richiede il blocco esclusivo)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Rollback snapshot RBD\n \n \n Rollback\n Esegui rollback\n \n \n RBD snapshot\n Snapshot RBD\n \n \n Deleted At\n Eliminato alle\n \n \n id\n ID\n \n \n type\n tipo\n \n \n state\n stato\n \n \n version\n versione\n \n \n Host\n Host\n \n \n root\n root\n \n \n Rank\n Classificazione\n \n \n Daemon\n Daemon\n \n \n Activity\n Task\n \n \n Dentries\n Dentry\n \n \n Inodes\n Inode\n \n \n Usage\n Utilizzo\n \n \n Standby daemons\n Daemon in standby\n \n \n The value can be updated at runtime.\n \xc8 possibile aggiornare il valore al runtime.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n I daemon/client non estraggono questo valore dal\n database della configurazione di monitoraggio. Non \xe8 consentito impostare questa opzione tramite \'ceph config\n set ...\'. \xc8 necessario configurare questa opzione tramite ceph.conf o dalla\n riga di comando.\n \n \n Option takes effect only during daemon startup.\n L\'opzione diventa attiva solo all\'avvio del daemon.\n \n \n Option only affects cluster creation.\n L\'opzione interessa solo la creazione del cluster.\n \n \n Option only affects daemon creation.\n L\'opzione interessa solo la creazione del daemon.\n \n \n Updated config option \n \n \n Aggiornata opzione di configurazione \n \n \n \n \n Service\n Servizio\n \n \n Current value\n Valore attuale\n \n \n Editable\n Modificabile\n \n \n Updated options for module "\n ".\n \n Opzioni aggiornate per il modulo &quot;\n &quot;.\n \n \n \n Enable\n Abilita\n \n \n Disable\n Disabilita\n \n \n Reconnecting, please wait ...\n Riconnessione in corso. Attendere.\n \n \n Public Address\n Indirizzo pubblico\n \n \n Open Sessions\n Sessioni aperte\n \n \n No In\n Nessuno in entrata\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Gli OSD che sono stati contrassegnati come disattivi in precedenza non verranno contrassegnati nuovamente come attivi all\'avvio\n \n \n No Out\n Nessuno in uscita\n \n \n OSDs will not automatically be marked out after the configured interval\n Gli OSD non verranno disattivati automaticamente dopo l\'intervallo configurato\n \n \n No Up\n Nessuno attivo\n \n \n OSDs are not allowed to start\n Non \xe8 consentito l\'avvio degli OSD\n \n \n No Down\n Nessuno disattivo\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n I rapporti di errore degli OSD vengono ignorati in modo che i monitor non disattivino gli OSD\n \n \n Pause\n Sospendi\n \n \n Pauses reads and writes\n Sospende le operazioni di lettura e scrittura\n \n \n No Scrub\n Nessuna pulitura\n \n \n Scrubbing is disabled\n Pulitura disabilitata\n \n \n No Deep Scrub\n Nessun pulitura approfondita\n \n \n Deep Scrubbing is disabled\n Pulitura approfondita disabilitata\n \n \n No Backfill\n Nessuna operazione di recupero\n \n \n Backfilling of PGs is suspended\n Recupero dei gruppi di posizionamento sospeso\n \n \n No Recover\n Nessun recupero\n \n \n Recovery of PGs is suspended\n Recupero dei gruppi di posizionamento sospeso\n \n \n Bitwise Sort\n Ordinamento bitwise\n \n \n Use bitwise sort\n Usa ordinamento bitwise\n \n \n Purged Snapdirs\n Snapdir eliminate definitivamente\n \n \n OSDs have converted snapsets\n Gli OSD contengono set di snap convertiti\n \n \n Recovery Deletes\n Eliminazioni recuperi\n \n \n Deletes performed during recovery instead of peering\n Eliminazioni eseguite durante il recupero invece del peering\n \n \n PG Log Hard Limit\n Limite rigido log gruppo di posizionamento\n \n \n Puts a hard limit on pg log length\n Inserisce un limite rigido alla lunghezza del log del gruppo di posizionamento\n \n \n Updated OSD Flags\n Flag OSD aggiornati\n \n \n out\n esterno\n \n \n in\n interno\n \n \n down\n in basso\n \n \n Mark\n Contrassegna\n \n \n OSD lost\n OSD perso\n \n \n marked lost\n contrassegnato come perso\n \n \n Purge\n Elimina definitivamente\n \n \n OSD\n OSD\n \n \n purged\n eliminato definitivamente\n \n \n destroy\n elimina definitivamente\n \n \n destroyed\n eliminato definitivamente\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Gruppi di posizionamento\n \n \n Read bytes\n Byte letti\n \n \n Writes bytes\n Byte scritti\n \n \n Read ops\n Operazioni di lettura\n \n \n Write ops\n Operazioni di scrittura\n \n \n Mark OSD \n \n \n Contrassegna OSD \n \n \n \n \n Mark \n \n \n Contrassegna \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Numero max di recuperi informazioni\n \n \n Recovery Max Active\n Numero max di recuperi attivi\n \n \n Recovery Max Single Start\n Avvio singolo numero max di recuperi\n \n \n Recovery Sleep\n Sospensione recupero\n \n \n Custom\n Personalizzato\n \n \n Updated OSD recovery speed priority "\n "\n \n Aggiornata la priorit\xe0 della velocit\xe0 di recupero dell\'OSD &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n \xe8 stato inizializzato dall\'OSD seguente: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Lavoro\n \n \n Severity\n Gravit\xe0\n \n \n Started\n Avviato\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Aggiornato\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Utilizzato\n \n \n Avail.\n Dispon.\n \n \n Clean\n Pulisci\n \n \n Working\n In funzione\n \n \n Warning\n Avviso\n \n \n Unknown\n Sconosciuto\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n su\n \n \n no filesystems\n nessun file system\n \n \n active\n attivo\n \n \n standby\n standby\n \n \n n/a\n n/d\n \n \n active daemon\n daemon attivo\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n Il servizio NFS Ganesha non \xe8 configurato.\n \n \n Transport\n Trasporto\n \n \n CephFS User\n Utente CephFS\n \n \n CephFS Filesystem\n File system CephFS\n \n \n (inherited from global config)\n (ereditato dalla configurazione globale)\n \n \n inherited from global config\n importato dalla configurazione globale\n \n \n -- Select what kind of user id squashing is performed --\n -- Selezionare il tipo di squash dell\'ID utente che viene eseguito --\n \n \n There are no daemons available.\n Non vi sono daemon disponibili.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Modalit\xe0 cache\n \n \n Min Evict Age\n Numero minimo di giorni per la rimozione\n \n \n Min Flush Age\n Numero minimo di giorni per la cancellazione\n \n \n Target Max Bytes\n Numero max di byte di destinazione\n \n \n Target Max Objects\n Numero max di oggetti di destinazione\n \n \n No applications added\n Non sono state aggiunte applicazioni.\n \n \n Applications limit reached\n Raggiunto il limite di applicazioni\n \n \n A pool can only have up to four applications definitions.\n Un pool pu\xf2 contenere solo fino a quattro definizioni delle applicazioni.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caratteri consentiti \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n La lunghezza massima \xe8 di 128 caratteri\n \n \n Filter or add applications\n Filtra o aggiungi applicazioni\n \n \n Add application\n Aggiungi applicazione\n \n \n pool\n pool\n \n \n erasure code profile\n profilo del codice di cancellazione\n \n \n Replica Size\n Dimensioni della replica\n \n \n Last Change\n Ultima modifica\n \n \n Erasure Coded Profile\n Profilo con codice di cancellazione\n \n \n Crush Ruleset\n Set di regole Crush\n \n \n Write bytes\n Byte scritti\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n compartimento\n \n \n Updated Object Gateway bucket "\n "\n \n Aggiornato compartimento Object Gateway &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n Creato compartimento Object Gateway &quot;\n &quot;\n \n \n \n buckets\n compartimenti\n \n \n capability\n capability\n \n \n user\n utente\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Aggiornato utente Object Gateway &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n Creato utente Object Gateway &quot;\n &quot;\n \n \n \n users\n utenti\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Ambito\n \n \n Read\n Lettura\n \n \n Create\n Crea\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Creato ruolo \'\n \'\n \n \n \n Updated role \'\n \'\n \n Aggiornato ruolo \'\n \'\n \n \n \n System Role\n Ruolo di sistema\n \n \n Deleted role \'\n \'\n \n Eliminato ruolo \'\n \'\n \n \n \n Created user "\n "\n \n Creato utente &quot;\n &quot;\n \n \n \n Update user\n Aggiorna utente\n \n \n Continue\n Continua\n \n \n You were automatically logged out because your roles have been changed.\n Si \xe8 stati automaticamente disconnessi perch\xe9 i ruoli sono stati modificati.\n \n \n Updated user "\n "\n \n Aggiornato utente &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Eliminato utente &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Impossibile eliminare l\'utente &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Si \xe8 attualmente connessi come &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Ogni oggetto \xe8 suddiviso in porzioni di dati, ciascuna delle quali \xe8 memorizzata su un diverso OSD.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calcola le porzioni di codice relative a ciascun oggetto e le memorizza su diversi OSD.\n Il numero di porzioni di codice \xe8 anche il numero degli OSD che \xe8 possibile disattivare senza perdere i dati.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Il plugin jerasure \xe8 il plugin pi\xf9 generico e flessibile,\n ed \xe8 anche il plugin di default dei pool con codice di cancellazione di Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n La tecnica pi\xf9 flessibile \xe8 reed_sol_van: \xe8 sufficiente impostare k\n ed m. La tecnica cauchy_good pu\xf2 essere pi\xf9 rapida ma occorre selezionare attentamente la dimensione del\n pacchetto. reed_sol_r6_op, liberation, blaum_roth, liber8tion sono tutti equivalenti a RAID6,\n nel senso che \xe8 possibile configurarli solo con m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n La codifica viene eseguita su pacchetti di dimensioni in byte, uno alla volta.\n \xc8 difficile scegliere la dimensione del pacchetto corretta.\n La documentazione su jerasure fornisce informazioni esaustive su questo argomento.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Con il plugin di jerasure, quando un oggetto con codice di cancellazione viene memorizzato su\n pi\xf9 OSD, il recupero della perdita di un OSD richiede la lettura di tutti gli altri.\n Ad esempio, se jerasure \xe8 configurato con k=8 e m=4, la perdita di un OSD richiede la lettura\n degli altri undici per il ripristino.\n\n Il plugin del codice di cancellazione lrc crea porzioni di parit\xe0 locali che \xe8 possibile recuperare utilizzando un\n minor numero di OSD. Ad esempio, se lrc \xe8 configurato con k=8, m=4 e l=4, crea\n una porzione di parit\xe0 aggiuntiva ogni quattro OSD. Quando si perde un singolo OSD, \xe8 possibile\n recuperarlo solo con quattro OSD invece che con undici.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Raggruppa le porzioni di codice e dati in set di localit\xe0 dimensione. Ad esempio,\n per k=4 e m=2, se localit\xe0=3 vengono creati due gruppi su tre. \xc8 possibile recuperare ciascun set\n senza leggere le porzioni di un altro set.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Il tipo di compartimento Crush in cui viene memorizzato ciascun set di porzioni definito\n dall\'utente. Ad esempio, se \xe8 impostato su rack, ciascun gruppo di porzioni viene\n posizionato in un diverso rack. Viene utilizzato per creare un passaggio della regola CRUSH come il passaggio choose\n rack. Se non \xe8 impostato, il raggruppamento non viene eseguito.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Il plugin ISA incapsula la libreria ISA. Viene eseguito solo su processori Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Il plugin ISA \xe8 disponibile in due formati Reed Solomon.\n Se \xe8 impostato reed_sol_van, il formato \xe8 Vandermonde, se \xe8 impostato cauchy, il formato \xe8 Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Il plugin shec incapsula la libreria SHEC multipla.\n Consente a Ceph di recuperare i dati in modo pi\xf9 efficiente rispetto ai codici Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Il numero di compartimenti di parit\xe0, ciascuno dei quali include i singoli compartimenti di dati\n nell\'intervallo di calcolo. Il numero viene utilizzato come strumento di stima della durabilit\xe0. Ad esempio, se c=2,\n \xe8 possibile disattivare 2 OSD senza perdere i dati.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Il nome del compartimento Crush utilizzato per il primo passaggio della regola CRUSH.\n Ad esempio il passaggio take default.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Assicurarsi che non esistano due porzioni in un compartimento con lo stesso dominio\n di errore. Ad esempio, se il dominio di errore \xe8 l\'host, non verranno memorizzate due porzioni sullo stesso\n host. Viene utilizzato per creare un passaggio della regola CRUSH come passaggio chooseleaf host.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Limitare il posizionamento ai dispositivi di una classe specifica\n (ad es. ssd o hdd) usando i nomi delle classi di dispositivi Crush nella mappa CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Impostare il nome della directory da cui viene caricato il plugin del codice di cancellazione.\n \n \n Allows all operations\n Consente tutte le operazioni\n \n \n Allows only operations that do not modify the server\n Consente solo le operazioni che non modificano il server\n \n \n Does not allow read or write operations, but allows any other operation\n Non consente operazioni di lettura o scrittura, ma consente qualsiasi altra operazione\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Non consente operazioni di lettura o scrittura o qualsiasi operazione che modifichi gli attributi dei file o il contenuto della directory\n \n \n Allows no access at all\n Non consente alcun accesso\n \n \n -- Select the priority --\n -- Selezionare la priorit\xe0 --\n \n \n Low\n Bassa\n \n \n High\n Alta\n \n \n Last 5 minutes\n Ultimi 5 minuti\n \n \n Last 15 minutes\n Ultimi 15 minuti\n \n \n Last 30 minutes\n Ultimi 30 minuti\n \n \n Last 1 hour (Default)\n Ultima ora (Default)\n \n \n Last 3 hours\n Ultime 3 ore\n \n \n Last 6 hours\n Ultime 6 ore\n \n \n Last 12 hours\n Ultime 12 ore\n \n \n Last 24 hours\n Ultime 24 ore\n \n \n Yesterday\n Ieri\n \n \n Today\n Oggi\n \n \n Today so far\n Fino a oggi\n \n \n Day before yesterday\n Giorno prima di ieri\n \n \n Last 2 days\n Ultimi 2 giorni\n \n \n This day last week\n Questo giorno della scorsa settimana\n \n \n Previous week\n Settimana precedente\n \n \n This week\n Questa settimana\n \n \n This week so far\n Fino a questa settimana\n \n \n Last 7 days\n Ultimi 7 giorni\n \n \n Previous month\n Mese precedente\n \n \n This month\n Questo mese\n \n \n This month so far\n Fino a questo mese\n \n \n Last 30 days\n Ultimi 30 giorni\n \n \n Last 90 days\n Ultimi 90 giorni\n \n \n Last 6 months\n Ultimi 6 mesi\n \n \n Last 1 year\n Ultimo anno\n \n \n Previous year\n Anno precedente\n \n \n This year\n Quest\'anno\n \n \n This year so far\n Fino a quest\'anno\n \n \n Last 2 years\n Ultimi 2 anni\n \n \n Last 5 years\n Ultimi 5 anni\n \n \n Information\n Informazioni\n \n \n No items selected.\n Nessun elemento selezionato.\n \n \n Deselect item to select again\n Deselezionare l\'elemento per selezionare di nuovo\n \n \n Selection limit reached\n Raggiunto il limite per la selezione\n \n \n Filter tags\n Filtra tag\n \n \n Add badge\n Aggiungi badge\n \n \n There are no items available.\n Non vi sono elementi disponibili.\n \n \n Add\n Aggiungi\n \n \n Remove\n Remove\n \n \n Clone\n Clona\n \n \n Copy\n Copia\n \n \n Deep Scrub\n Pulitura approfondita\n \n \n Destroy\n Eliminazione definitiva\n \n \n Flatten\n Appiattisci\n \n \n Mark Down\n Declassa\n \n \n Mark In\n Attiva\n \n \n Mark Lost\n Contrassegna come perso\n \n \n Mark Out\n Disattiva\n \n \n Protect\n Proteggi\n \n \n Rename\n Rinomina\n \n \n Restore\n Ripristina\n \n \n Move to Trash\n Sposta nel cestino\n \n \n Unprotect\n Rimuovi protezione\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Eliminato\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clonato\n \n \n Copied\n Copiato\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n S\xec\n \n \n No\n No\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Qualit\xe0 di servizio\n \n \n BPS Limit\n Limite di BPS\n \n \n The desired limit of IO bytes per second.\n Il limite desiderato di byte I/O al secondo.\n \n \n IOPS Limit\n Limite di IOPS\n \n \n The desired limit of IO operations per second.\n Il limite desiderato di operazioni I/O al secondo.\n \n \n Read BPS Limit\n Limite BPS in lettura\n \n \n The desired limit of read bytes per second.\n Il limite desiderato dei byte letti al secondo.\n \n \n Read IOPS Limit\n Limite di IOPS in lettura\n \n \n The desired limit of read operations per second.\n Il limite desiderato di operazioni di lettura al secondo.\n \n \n Write BPS Limit\n Limite di BPS in scrittura\n \n \n The desired limit of write bytes per second.\n Il limite desiderato di byte scritti al secondo.\n \n \n Write IOPS Limit\n Limite di IOPS in scrittura\n \n \n The desired limit of write operations per second.\n Il limite desiderato di operazioni di scrittura al secondo.\n \n \n BPS Burst\n Burst BPS\n \n \n The desired burst limit of IO bytes.\n Il limite di burst desiderato dei byte di I/O.\n \n \n IOPS Burst\n Burst IOPS\n \n \n The desired burst limit of IO operations.\n Il limite di burst desiderato delle operazioni di I/O.\n \n \n Read BPS Burst\n Burst BPS in lettura\n \n \n The desired burst limit of read bytes.\n Il limite di burst desiderato dei byte letti.\n \n \n Read IOPS Burst\n Burst IOPS in lettura\n \n \n The desired burst limit of read operations.\n Il limite di burst desiderato delle operazioni di lettura.\n \n \n Write BPS Burst\n Burst BPS in scrittura\n \n \n The desired burst limit of write bytes.\n Il limite di burst desiderato dei byte scritti.\n \n \n Write IOPS Burst\n Burst di IOPS in scrittura\n \n \n The desired burst limit of write operations.\n Il limite di burst desiderato delle operazioni di scrittura.\n \n \n Failed to \n \n \n \n Non \xe8 stato possibile \n \n \n \n \n \n Executing\n In esecuzione\n \n \n execute\n esegui\n \n \n Executed\n Eseguito\n \n \n unknown task\n task sconosciuto\n \n \n Creating\n Creazione in corso\n \n \n create\n crea\n \n \n Updating\n Aggiornamento in corso\n \n \n update\n aggiorna\n \n \n Deleting\n Eliminazione in corso\n \n \n delete\n elimina\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Snapshot RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n modalit\xe0 speculare per il pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n peer della copia speculare per il pool \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n \n contains snapshots.\n \n \n contiene snapshot.\n \n \n \n Cloning\n Clonazione in corso\n \n \n clone\n clona\n \n \n Snapshot of \n must be protected.\n \n La snapshot di \n deve essere protetta.\n \n \n \n Copying\n Copia in corso\n \n \n copy\n copia\n \n \n Flattening\n Appiattimento\n \n \n flatten\n appiattisci\n \n \n Flattened\n Appiattito\n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Impossibile rimuovere la protezione da \n perch\xe9 contiene immagini figlio.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Impossibile eliminare \n perch\xe9 \xe8 protetto.\n \n \n \n Rolling back\n Rollback in corso\n \n \n rollback\n rollback\n \n \n Rolled back\n Rollback eseguito\n \n \n Moving\n Spostamento in corso\n \n \n move\n sposta\n \n \n Moved\n Spostato\n \n \n image \'\n \' to trash\n \n immagine \'\n \' nel cestino\n \n \n \n Could not find image.\n Impossibile trovare l\'immagine.\n \n \n Restoring\n Ripristino in corso\n \n \n restore\n ripristina\n \n \n Restored\n Ripristinato\n \n \n image \'\n \' into \'\n \'\n \n immagine \'\n \' in \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Il nome dell\'immagine \'\n \' \xe8 gi\xe0 in uso.\n \n \n \n image \'\n \'\n \n immagine \'\n \'\n \n \n \n Purging\n Eliminazione in corso\n \n \n purge\n elimina definitivamente\n \n \n Purged\n Eliminato definitivamente\n \n \n all pools\n tutti i pool\n \n \n images from \n \n \n Immagini da \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Impossibile disabilitare l\'esecuzione della copia speculare perch\xe9 contiene un peer.\n \n \n pool \'\n \'\n \n pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n profilo del codice di cancellazione \'\n \'\n \n \n \n target \'\n \'\n \n destinazione \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},hKrs:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-\u0435\u0432":0===n?t+"-\u0435\u043d":n>10&&n<20?t+"-\u0442\u0438":1===e?t+"-\u0432\u0438":2===e?t+"-\u0440\u0438":7===e||8===e?t+"-\u043c\u0438":t+"-\u0442\u0438"},week:{dow:1,doy:7}})}()},honF:function(t,e,n){!function(t){"use strict";var e={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},n={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};t.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(t){return t.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})}(n("wd/R"))},i3PA:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("jvuA")),a(n("UReH"))},i4X3:function(t,e,n){"use strict";var a=n("6blF"),r=n("pugT"),i=n("xTla"),o=n("JF+6"),s=n("En8+"),u=n("/WYv"),c=n("2ePl");function l(t,e){if(null!=t){if(function(t){return t&&"function"==typeof t[i.a]}(t))return function(t,e){return new a.a(function(n){var a=new r.a;return a.add(e.schedule(function(){var r=t[i.a]();a.add(r.subscribe({next:function(t){a.add(e.schedule(function(){return n.next(t)}))},error:function(t){a.add(e.schedule(function(){return n.error(t)}))},complete:function(){a.add(e.schedule(function(){return n.complete()}))}}))})),a})}(t,e);if(Object(u.a)(t))return function(t,e){return new a.a(function(n){var a=new r.a;return a.add(e.schedule(function(){return t.then(function(t){a.add(e.schedule(function(){n.next(t),a.add(e.schedule(function(){return n.complete()}))}))},function(t){a.add(e.schedule(function(){return n.error(t)}))})})),a})}(t,e);if(Object(c.a)(t))return Object(o.a)(t,e);if(function(t){return t&&"function"==typeof t[s.a]}(t)||"string"==typeof t)return function(t,e){if(!t)throw new Error("Iterable cannot be null");return new a.a(function(n){var a,i=new r.a;return i.add(function(){a&&"function"==typeof a.return&&a.return()}),i.add(e.schedule(function(){a=t[s.a](),i.add(e.schedule(function(){if(!n.closed){var t,e;try{var r=a.next();t=r.value,e=r.done}catch(i){return void n.error(i)}e?n.complete():(n.next(t),this.schedule())}}))})),i})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}n.d(e,"a",function(){return l})},iEDd:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},iExv:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t,e,n){return void 0===e&&(e=this.i18n("Yes")),void 0===n&&(n=this.i18n("No")),Boolean(t)?e:n},t}()},iLxQ:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=!1,r={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){a=t},get useDeprecatedSynchronousErrorHandling(){return a}}},iM7B:function(t,e,n){"use strict";var a=n("RDha"),r=n("Hg4g"),i=n("q8Fl");t.exports=a.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},i._enabled?i:r)},iYGd:function(t,e,n){"use strict";t.exports=function(t){t.Radar=function(e,n){return n.type="radar",new t(e,n)}}},iYuL:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n("wd/R"))},ihYY:function(t,e,n){"use strict";n.d(e,"b",function(){return a}),n.d(e,"c",function(){return r}),n.d(e,"a",function(){return i}),n.d(e,"e",function(){return s}),n.d(e,"f",function(){return u}),n.d(e,"g",function(){return l}),n.d(e,"h",function(){return c}),n.d(e,"i",function(){return d}),n.d(e,"j",function(){return o}),n.d(e,"d",function(){return p}),n.d(e,"l",function(){return g}),n.d(e,"k",function(){return h});var a=function(){return function(){}}(),r=function(){return function(){}}(),i="*";function o(t,e){return{type:7,name:t,definitions:e,options:{}}}function s(t,e){return void 0===e&&(e=null),{type:4,styles:e,timings:t}}function u(t,e){return void 0===e&&(e=null),{type:2,steps:t,options:e}}function c(t){return{type:6,styles:t,offset:null}}function l(t,e,n){return{type:0,name:t,styles:e,options:n}}function d(t,e,n){return void 0===n&&(n=null),{type:1,expr:t,animation:e,options:n}}function f(t){Promise.resolve(null).then(t)}var p=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=t+e}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.hasStarted=function(){return this._started},t.prototype.init=function(){},t.prototype.play=function(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0},t.prototype.triggerMicrotask=function(){var t=this;f(function(){return t._onFinish()})},t.prototype._onStart=function(){this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]},t.prototype.pause=function(){},t.prototype.restart=function(){},t.prototype.finish=function(){this._onFinish()},t.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.reset=function(){},t.prototype.setPosition=function(t){},t.prototype.getPosition=function(){return 0},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),h=function(){function t(t){var e=this;this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;var n=0,a=0,r=0,i=this.players.length;0==i?f(function(){return e._onFinish()}):this.players.forEach(function(t){t.onDone(function(){++n==i&&e._onFinish()}),t.onDestroy(function(){++a==i&&e._onDestroy()}),t.onStart(function(){++r==i&&e._onStart()})}),this.totalTime=this.players.reduce(function(t,e){return Math.max(t,e.totalTime)},0)}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.init=function(){this.players.forEach(function(t){return t.init()})},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype._onStart=function(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[])},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.hasStarted=function(){return this._started},t.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(function(t){return t.play()})},t.prototype.pause=function(){this.players.forEach(function(t){return t.pause()})},t.prototype.restart=function(){this.players.forEach(function(t){return t.restart()})},t.prototype.finish=function(){this._onFinish(),this.players.forEach(function(t){return t.finish()})},t.prototype.destroy=function(){this._onDestroy()},t.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(function(t){return t.destroy()}),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.reset=function(){this.players.forEach(function(t){return t.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},t.prototype.setPosition=function(t){var e=t*this.totalTime;this.players.forEach(function(t){var n=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(n)})},t.prototype.getPosition=function(){var t=0;return this.players.forEach(function(e){var n=e.getPosition();t=Math.min(n,t)}),t},t.prototype.beforeDestroy=function(){this.players.forEach(function(t){t.beforeDestroy&&t.beforeDestroy()})},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),g="!"},insk:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("+0ag"),n("mSOc"),n("20UP");var a=function(){function t(t,e,n,a,r){this.summaryService=t,this.sanitizer=e,this.settingsService=n,this.cephReleaseNamePipe=a,this.i18n=r,this.grafanaExist=!1,this.mode="&kiosk",this.loading=!0,this.styles={},this.dashboardExist=!0,this.DEFAULT_TIME="from=now-1h&to=now",this.grafanaTimes=[{name:this.i18n("Last 5 minutes"),value:"from=now-5m&to=now"},{name:this.i18n("Last 15 minutes"),value:"from=now-15m&to=now"},{name:this.i18n("Last 30 minutes"),value:"from=now-30m&to=now"},{name:this.i18n("Last 1 hour (Default)"),value:"from=now-1h&to=now"},{name:this.i18n("Last 3 hours"),value:"from=now-3h&to=now"},{name:this.i18n("Last 6 hours"),value:"from=now-6h&to=now"},{name:this.i18n("Last 12 hours"),value:"from=now-12h&to=now"},{name:this.i18n("Last 24 hours"),value:"from=now-24h&to=now"},{name:this.i18n("Yesterday"),value:"from=now-1d%2Fd&to=now-1d%2Fd"},{name:this.i18n("Today"),value:"from=now%2Fd&to=now%2Fd"},{name:this.i18n("Today so far"),value:"from=now%2Fd&to=now"},{name:this.i18n("Day before yesterday"),value:"from=now-2d%2Fd&to=now-2d%2Fd"},{name:this.i18n("Last 2 days"),value:"from=now-2d&to=now"},{name:this.i18n("This day last week"),value:"from=now-7d%2Fd&to=now-7d%2Fd"},{name:this.i18n("Previous week"),value:"from=now-1w%2Fw&to=now-1w%2Fw"},{name:this.i18n("This week"),value:"from=now%2Fw&to=now%2Fw"},{name:this.i18n("This week so far"),value:"from=now%2Fw&to=now"},{name:this.i18n("Last 7 days"),value:"from=now-7d&to=now"},{name:this.i18n("Previous month"),value:"from=now-1M%2FM&to=now-1M%2FM"},{name:this.i18n("This month"),value:"from=now%2FM&to=now%2FM"},{name:this.i18n("This month so far"),value:"from=now%2FM&to=now"},{name:this.i18n("Last 30 days"),value:"from=now-30d&to=now"},{name:this.i18n("Last 90 days"),value:"from=now-90d&to=now"},{name:this.i18n("Last 6 months"),value:"from=now-6M&to=now"},{name:this.i18n("Last 1 year"),value:"from=now-1y&to=now"},{name:this.i18n("Previous year"),value:"from=now-1y%2Fy&to=now-1y%2Fy"},{name:this.i18n("This year"),value:"from=now%2Fy&to=now%2Fy"},{name:this.i18n("This year so far"),value:"from=now%2Fy&to=now"},{name:this.i18n("Last 2 years"),value:"from=now-2y&to=now"},{name:this.i18n("Last 5 years"),value:"from=now-5y&to=now"}]}return t.prototype.ngOnInit=function(){var t=this;this.time=this.DEFAULT_TIME,this.styles={one:"grafana_one",two:"grafana_two",three:"grafana_three"};var e=this.summaryService.subscribe(function(n){if(n){var a=t.cephReleaseNamePipe.transform(n.version);t.docsUrl="http://docs.ceph.com/docs/"+a+"/mgr/dashboard/#enabling-the-embedding-of-grafana-dashboards",setTimeout(function(){e.unsubscribe()},0)}});this.settingsService.ifSettingConfigured("api/grafana/url",function(e){t.grafanaExist=!0,t.loading=!1,t.baseUrl=e+"/d/",t.getFrame()}),this.panelStyle=this.styles[this.grafanaStyle]},t.prototype.getFrame=function(){var t=this;this.settingsService.validateGrafanaDashboardUrl(this.uid).subscribe(function(e){return t.dashboardExist=200===e}),this.url=this.baseUrl+this.uid+"/"+this.grafanaPath+"&refresh=2s"+this.mode+"&"+this.time,this.grafanaSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.url)},t.prototype.onTimepickerChange=function(){this.grafanaExist&&this.getFrame()},t.prototype.reset=function(){this.time=this.DEFAULT_TIME,this.grafanaExist&&this.getFrame()},t.prototype.ngOnChanges=function(){this.grafanaExist&&this.getFrame()},t}()},isby:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=Array.isArray||function(t){return t&&"number"==typeof t.length}},iutN:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("CcnG"),r=n("xtZt"),i=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function o(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,1,"div",[],[[2,"dropup",null],[2,"dropdown",null],[2,"show",null],[2,"open",null]],null,null,null,null)),a["\u0275ncd"](null,0)],null,function(t,e){var n=e.component;t(e,0,0,"up"===n.direction,"down"===n.direction,n.isOpen,n.isOpen)})}function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-dropdown-container",[["style","display:block;position: absolute;"]],null,null,null,o,i)),a["\u0275did"](1,180224,null,0,r.b,[r.f,a.ChangeDetectorRef,a.Renderer2,a.ElementRef],null,null)],null,null)}var u=a["\u0275ccf"]("bs-dropdown-container",r.b,s,{},{},["*"])},j8L6:function(t,e,n){"use strict";var a=n("CcnG"),r=n("25BL"),i=n("uIqm"),o=n("xbqr"),s=n("9GXa"),u=n("o4+5"),c=n("aXbf"),l=n("Ip0R");n("b5OY"),n("pxLl"),n("Jm/i"),n.d(e,"a",function(){return d}),n.d(e,"b",function(){return g});var d=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](0,null,[" "," "," "])),a["\u0275ppd"](1,1)],null,function(t,e){var n=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent.parent,0),e.context.row.value));t(e,0,0,n,e.context.row.unit)})}function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.getCounters(n)&&a),a},r.b,r.a)),a["\u0275did"](1,2867200,null,0,i.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},{fetchData:"fetchData"}),(t()(),a["\u0275and"](0,[[1,2],["valueTpl",2]],null,0,null,f))],function(t,e){var n=e.component;t(e,1,0,n.counters,n.columns,"flex",!1)},null)}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-warning-panel",[],null,null,null,o.b,o.a)),a["\u0275did"](1,49152,null,0,s.a,[],null,null),(t()(),a["\u0275ted"](-1,0,["Performance counters not available"]))],null,null)}function g(t){return a["\u0275vid"](0,[a["\u0275pid"](0,u.a,[c.a]),a["\u0275qud"](671088640,1,{valueTpl:0}),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](3,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["warning",2]],null,0,null,h))],function(t,e){t(e,3,0,e.component.counters,a["\u0275nov"](e,4))},null)}},jFaF:function(t,e,n){"use strict";function a(t,e){function n(){return!n.pred.apply(n.thisArg,arguments)}return n.pred=t,n.thisArg=e,n}n.d(e,"a",function(){return a})},"jKX/":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=function(){return function(t){void 0===t&&(t=[]);var e=this;["read","create","update","delete"].forEach(function(n){return e[n]=t.includes(n)})}}(),r=function(){return function(t){this.hosts=new a(t.hosts),this.configOpt=new a(t["config-opt"]),this.pool=new a(t.pool),this.osd=new a(t.osd),this.monitor=new a(t.monitor),this.rbdImage=new a(t["rbd-image"]),this.iscsi=new a(t.iscsi),this.rbdMirroring=new a(t["rbd-mirroring"]),this.rgw=new a(t.rgw),this.cephfs=new a(t.cephfs),this.manager=new a(t.manager),this.log=new a(t.log),this.user=new a(t.user),this.grafana=new a(t.grafana),this.prometheus=new a(t.prometheus),this.nfs=new a(t["nfs-ganesha"])}}()},jUeY:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(t,e){return t?"string"==typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(t,e,n){return t>11?n?"\u03bc\u03bc":"\u039c\u039c":n?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(t){return"\u03bc"===(t+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT";default:return"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,e){var n,a=this._calendarEl[t],r=e&&e.hours();return((n=a)instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(a=a.apply(e)),a.replace("{}",r%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}()},jVdC:function(t,e,n){!function(t){"use strict";var e="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function a(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function r(t,e,n){var r=t+" ";switch(n){case"ss":return r+(a(t)?"sekundy":"sekund");case"m":return e?"minuta":"minut\u0119";case"mm":return r+(a(t)?"minuty":"minut");case"h":return e?"godzina":"godzin\u0119";case"hh":return r+(a(t)?"godziny":"godzin");case"MM":return r+(a(t)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return r+(a(t)?"lata":"lat")}}t.defineLocale("pl",{months:function(t,a){return t?""===a?"("+n[t.month()]+"|"+e[t.month()]+")":/D MMMM/.test(a)?n[t.month()]:e[t.month()]:e},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:r,m:r,mm:r,h:r,hh:r,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:r,y:"rok",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},jXIB:function(t,e,n){"use strict";t.exports={},t.exports.filler=n("vpM6"),t.exports.legend=n("AX6q"),t.exports.title=n("mjYD")},jfSC:function(t,e,n){!function(t){"use strict";var e={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},n={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};t.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(t){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(t)},meridiem:function(t,e,n){return t<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/[\u06f0-\u06f9]/g,function(t){return n[t]}).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(n("wd/R"))},jnO4:function(t,e,n){!function(t){"use strict";var e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},n={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},i=function(t){return function(e,n,i,o){var s=a(e),u=r[t][a(e)];return 2===s&&(u=u[n?0:1]),u.replace(/%d/i,e)}},o=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];t.defineLocale("ar",{months:o,monthsShort:o,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(t){return t.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(t){return n[t]}).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(n("wd/R"))},jvuA:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("UReH");e.DatatableRowDetailDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandRow=function(t){this.toggle.emit({type:"row",value:t})},t.prototype.expandAllRows=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllRows=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(o.DatatableRowDetailTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-row-detail"})],t)}()},kEOa:function(t,e,n){!function(t){"use strict";var e={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},n={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};t.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(t){return t.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u09b0\u09be\u09a4"===e&&t>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===e&&t<5||"\u09ac\u09bf\u0995\u09be\u09b2"===e?t+12:t},meridiem:function(t,e,n){return t<4?"\u09b0\u09be\u09a4":t<10?"\u09b8\u0995\u09be\u09b2":t<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":t<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(n("wd/R"))},kJI8:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},kOpN:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e2d\u5348"===e?t>=11?t:t+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u9031";default:return t}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}()},kQXf:function(t,e,n){"use strict";function a(t){return"string"==typeof t?!/\S/.test(t):Array.isArray(t)?0===t.length:i(t)}function r(t,e){return!i(t)&&t.indexOf(e)>-1}function i(t){return null==t}Object.defineProperty(e,"__esModule",{value:!0}),e.isEmpty=a,e.trim=function(t){return i(t)?"":t.trim()},e.has=function(t,e){return t&&"object"==typeof t&&t.hasOwnProperty(e)},e.isFunction=function(t){return"function"==typeof t},e.get=function(t,e,n){for(var a=t,r=0,o=e.split(".");r20?e=40===t||50===t||60===t||80===t||100===t?"fed":"ain":t>0&&(e=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][t]),t+e},week:{dow:1,doy:4}})}()},lHUG:function(t,e,n){"use strict";function a(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function r(t){return"string"==typeof t}function i(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function o(t){return t&&t.getTime&&!isNaN(t.getTime())}function s(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function u(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function c(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function l(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function d(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function f(t){return void 0===t}function p(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=a(e)),n}n.d(e,"a",function(){return on}),n.d(e,"b",function(){return un}),n.d(e,"c",function(){return se}),n.d(e,"d",function(){return At}),n.d(e,"e",function(){return pn}),n.d(e,"f",function(){return Ne}),n.d(e,"g",function(){return hn}),n.d(e,"h",function(){return j}),n.d(e,"i",function(){return Y}),n.d(e,"j",function(){return G}),n.d(e,"k",function(){return ue}),n.d(e,"l",function(){return z}),n.d(e,"m",function(){return gn}),n.d(e,"n",function(){return Fe}),n.d(e,"o",function(){return c}),n.d(e,"p",function(){return ze}),n.d(e,"q",function(){return i}),n.d(e,"r",function(){return o}),n.d(e,"s",function(){return Ge}),n.d(e,"t",function(){return V}),n.d(e,"u",function(){return Ye}),n.d(e,"v",function(){return U}),n.d(e,"w",function(){return H}),n.d(e,"x",function(){return B}),n.d(e,"y",function(){return mn}),n.d(e,"z",function(){return bn}),n.d(e,"A",function(){return yn}),n.d(e,"B",function(){return qe}),n.d(e,"C",function(){return wn}),n.d(e,"D",function(){return Sn}),n.d(e,"E",function(){return Ot}),n.d(e,"F",function(){return St}),n.d(e,"G",function(){return Rt}),n.d(e,"H",function(){return On});var h={},g={date:"day",hour:"hours",minute:"minutes",second:"seconds",millisecond:"milliseconds"};function m(t,e){var n=t.toLowerCase(),a=t;n in g&&(a=g[n]),h[n]=h[n+"s"]=h[e]=a}function b(t){return r(t)?h[t]||h[t.toLowerCase()]:void 0}var y=0,v=1,x=2,_=3,T=4,w=5,S=6,O=7,I=8;function C(t,e,n){var a=""+Math.abs(t);return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}var k={},N={},R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;function A(t,e,n,a){t&&(N[t]=a),e&&(N[e[0]]=function(){return C(a.apply(null,arguments),e[1],e[2])}),n&&(N[n]=function(e,n){return n.locale.ordinal(a.apply(null,arguments),t)})}function E(t,e,n){var a=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(a.getUTCFullYear())&&a.setUTCFullYear(t),a}function D(t,e,n,a,r,i,o){void 0===e&&(e=0),void 0===n&&(n=1),void 0===a&&(a=0),void 0===r&&(r=0),void 0===i&&(i=0),void 0===o&&(o=0);var s=new Date(t,e,n,a,r,i,o);return t<100&&t>=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function L(t,e){return void 0===e&&(e=!1),e?t.getUTCHours():t.getHours()}function P(t,e){return void 0===e&&(e=!1),e?t.getUTCMinutes():t.getMinutes()}function M(t,e){return void 0===e&&(e=!1),e?t.getUTCSeconds():t.getSeconds()}function q(t,e){return void 0===e&&(e=!1),e?t.getUTCMilliseconds():t.getMilliseconds()}function j(t,e){return void 0===e&&(e=!1),e?t.getUTCDay():t.getDay()}function F(t,e){return void 0===e&&(e=!1),e?t.getUTCDate():t.getDate()}function z(t,e){return void 0===e&&(e=!1),e?t.getUTCMonth():t.getMonth()}function G(t,e){return void 0===e&&(e=!1),e?t.getUTCFullYear():t.getFullYear()}function Y(t){return D(t.getFullYear(),t.getMonth(),1,t.getHours(),t.getMinutes(),t.getSeconds())}function V(t,e){return t.getDay()===e}function H(t,e){return!(!t||!e)&&B(t,e)&&z(t)===z(e)}function B(t,e){return!(!t||!e)&&G(t)===G(e)}function U(t,e){return!(!t||!e)&&B(t,e)&&H(t,e)&&F(t)===F(e)}var W=/\d/,K=/\d\d/,$=/\d{3}/,Z=/\d{4}/,X=/[+-]?\d{6}/,J=/\d\d?/,Q=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,at=/[+-]?\d{1,6}/,rt=/\d+/,it=/[+-]?\d+/,ot=/Z|[+-]\d\d(?::?\d\d)?/gi,st=/[+-]?\d+(\.\d{1,3})?/,ut=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct={};function lt(t,e,n){ct[t]=s(e)?e:function(t,a){return t&&n?n:e}}function dt(t,e){return l(ct,t)?ct[t](!1,e):new RegExp(ft(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,a,r){return e||n||a||r})))}function ft(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var pt={};function ht(t,e){var n=r(t)?[t]:t,a=e;if(u(e)&&(a=function(t,n,a){return n[e]=p(t),a}),c(n)&&s(a)){var i=void 0;for(i=0;i68?1900:2e3)}function xt(t){return _t(t)?366:365}function _t(t){return t%4==0&&t%100!=0||t%400==0}function Tt(t,e){if(isNaN(t)||isNaN(e))return NaN;var n=(e%12+12)%12;return 1===n?_t(t+(e-n)/12)?29:28:31-n%7%2}var wt={year:0,month:0,day:0,hour:0,minute:0,seconds:0};function St(t,e){var n=Object.assign({},wt,e),a=t.getFullYear()+(n.year||0),r=t.getMonth()+(n.month||0),i=t.getDate()+(n.day||0);return n.month&&!n.day&&(i=Math.min(i,Tt(a,r))),D(a,r,i,t.getHours()+(n.hour||0),t.getMinutes()+(n.minute||0),t.getSeconds()+(n.seconds||0))}function Ot(t,e){return D(It(t.getFullYear(),e.year),It(t.getMonth(),e.month),It(t.getDate(),e.day),It(t.getHours(),e.hour),It(t.getMinutes(),e.minute),It(t.getSeconds(),e.seconds),It(t.getMilliseconds(),e.milliseconds))}function It(t,e){return u(e)?e:t}function Ct(t,e,n){var a=Math.min(F(t),Tt(G(t),e));return n?t.setUTCMonth(e,a):t.setMonth(e,a),t}function kt(t,e,n){return n?t.setUTCDate(e):t.setDate(e),t}function Nt(t){return new Date(t.getTime())}function Rt(t,e,n){var a,i=Nt(t);switch(e){case"year":Ct(i,0,n);case"quarter":case"month":kt(i,1,n);case"week":case"isoWeek":case"day":case"date":!function(t,e,n){n?t.setUTCHours(0):t.setHours(0)}(i,0,n);case"hours":!function(t,e,n){n?t.setUTCMinutes(0):t.setMinutes(0)}(i,0,n);case"minutes":!function(t,e,n){n?t.setUTCSeconds(0):t.setSeconds(0)}(i,0,n);case"seconds":!function(t,e,n){n?t.setUTCMilliseconds(0):t.setMilliseconds(0)}(i,0,n)}return"week"===e&&(void 0===(a={isUTC:n})&&(a={}),Ke(i,0-Je(i,a.locale,a.isUTC),"day")),"isoWeek"===e&&function(t,e,n){void 0===n&&(n={});var a,i=(void 0===(a=n.locale)&&(a=ue()),r(1)?a.weekdaysParse(1)%7||7:u(1)&&isNaN(1)?null:1);Ze(t,Xe(t)%7?i:i-7)}(i),"quarter"===e&&Ct(i,3*Math.floor(z(i,n)/3),n),i}function At(t,e,n){var a=e;return"date"===a&&(a="day"),function(t,e,n,a){return $e(t,Be(1,"milliseconds"),-1,a)}(Ke(Rt(t,a,n),1,"isoWeek"===a?"week":a,n),0,0,n)}function Et(t,e){var n=+Rt(t,"day",e),a=+Rt(t,"year",e);return Math.round((n-a)/864e5)+1}function Dt(t,e,n){var a=e-n+7;return-(E(t,0,a).getUTCDay()-e+7)%7+a-1}function Lt(t,e,n,a){var r,i,o=Dt(G(t,a),e,n),s=Math.floor((Et(t,a)-o-1)/7)+1;return s<1?r=s+Pt(i=G(t,a)-1,e,n):s>Pt(G(t,a),e,n)?(r=s-Pt(G(t,a),e,n),i=G(t,a)+1):(i=G(t,a),r=s),{week:r,year:i}}function Pt(t,e,n){var a=Dt(t,e,n),r=Dt(t+1,e,n);return(xt(t)-a+r)/7}var Mt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,qt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),jt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ft="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),zt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Gt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Yt={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Vt=ut,Ht=ut,Bt=function(){function t(t){t&&this.set(t)}return t.prototype.set=function(t){var e;for(e in t)if(t.hasOwnProperty(e)){var n=t[e];this[s(n)?e:"_"+e]=n}this._config=t},t.prototype.calendar=function(t,e,n){var a=this._calendar[t]||this._calendar.sameElse;return s(a)?a.call(null,e,n):a},t.prototype.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},Object.defineProperty(t.prototype,"invalidDate",{get:function(){return this._invalidDate},set:function(t){this._invalidDate=t},enumerable:!0,configurable:!0}),t.prototype.ordinal=function(t,e){return this._ordinal.replace("%d",t.toString(10))},t.prototype.preparse=function(t){return t},t.prototype.postformat=function(t){return t},t.prototype.relativeTime=function(t,e,n,a){var r=this._relativeTime[n];return s(r)?r(t,e,n,a):r.replace(/%d/i,t.toString(10))},t.prototype.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return s(n)?n(e):n.replace(/%s/i,e)},t.prototype.months=function(t,e,n){if(void 0===n&&(n=!1),!t)return c(this._months)?this._months:this._months.standalone;if(c(this._months))return this._months[z(t,n)];var a=(this._months.isFormat||Mt).test(e)?"format":"standalone";return this._months[a][z(t,n)]},t.prototype.monthsShort=function(t,e,n){if(void 0===n&&(n=!1),!t)return c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone;if(c(this._monthsShort))return this._monthsShort[z(t,n)];var a=Mt.test(e)?"format":"standalone";return this._monthsShort[a][z(t,n)]},t.prototype.monthsParse=function(t,e,n){var a,r,i;if(this._monthsParseExact)return this.handleMonthStrictParse(t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(a=new Date(Date.UTC(2e3,i)),n&&!this._longMonthsParse[i]){var o=this.months(a,"",!0).replace(".",""),s=this.monthsShort(a,"",!0).replace(".","");this._longMonthsParse[i]=new RegExp("^"+o+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+s+"$","i")}if(n||this._monthsParse[i]||(r="^"+this.months(a,"",!0)+"|^"+this.monthsShort(a,"",!0),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}},t.prototype.monthsRegex=function(t){return this._monthsParseExact?(l(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsStrictRegex:this._monthsRegex):(l(this,"_monthsRegex")||(this._monthsRegex=Ht),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},t.prototype.monthsShortRegex=function(t){return this._monthsParseExact?(l(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,"_monthsShortRegex")||(this._monthsShortRegex=Vt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},t.prototype.week=function(t,e){return Lt(t,this._week.dow,this._week.doy,e).week},t.prototype.firstDayOfWeek=function(){return this._week.dow},t.prototype.firstDayOfYear=function(){return this._week.doy},t.prototype.weekdays=function(t,e,n){if(!t)return c(this._weekdays)?this._weekdays:this._weekdays.standalone;if(c(this._weekdays))return this._weekdays[j(t,n)];var a=this._weekdays.isFormat.test(e)?"format":"standalone";return this._weekdays[a][j(t,n)]},t.prototype.weekdaysMin=function(t,e,n){return t?this._weekdaysMin[j(t,n)]:this._weekdaysMin},t.prototype.weekdaysShort=function(t,e,n){return t?this._weekdaysShort[j(t,n)]:this._weekdaysShort},t.prototype.weekdaysParse=function(t,e,n){var a,r;if(this._weekdaysParseExact)return this.handleWeekStrictParse(t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){var i=Ze(new Date(Date.UTC(2e3,1)),a,null,!0);if(n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(i,"",!0).replace(".",".?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(i,"",!0).replace(".",".?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(i,"",!0).replace(".",".?")+"$","i")),this._weekdaysParse[a]||(r="^"+this.weekdays(i,"",!0)+"|^"+this.weekdaysShort(i,"",!0)+"|^"+this.weekdaysMin(i,"",!0),this._weekdaysParse[a]=new RegExp(r.replace(".",""),"i")),!(c(this._fullWeekdaysParse)&&c(this._shortWeekdaysParse)&&c(this._minWeekdaysParse)&&c(this._weekdaysParse)))return;if(n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}},t.prototype.weekdaysRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=ut),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},t.prototype.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ut),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},t.prototype.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=ut),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},t.prototype.isPM=function(t){return"p"===t.toLowerCase().charAt(0)},t.prototype.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},t.prototype.formatLongDate=function(t){this._longDateFormat=this._longDateFormat?this._longDateFormat:Yt;var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},t.prototype.handleMonthStrictParse=function(t,e,n){var a,r,i,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)i=new Date(2e3,a),this._shortMonthsParse[a]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(r=this._shortMonthsParse.indexOf(o))?r:null:-1!==(r=this._longMonthsParse.indexOf(o))?r:null:"MMM"===e?-1!==(r=this._shortMonthsParse.indexOf(o))?r:-1!==(r=this._longMonthsParse.indexOf(o))?r:null:-1!==(r=this._longMonthsParse.indexOf(o))?r:-1!==(r=this._shortMonthsParse.indexOf(o))?r:null},t.prototype.handleWeekStrictParse=function(t,e,n){var a,r=t.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[];var i=void 0;for(i=0;i<7;++i){var o=Ze(new Date(Date.UTC(2e3,1)),i,null,!0);this._minWeekdaysParse[i]=this.weekdaysMin(o).toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o).toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase()}}if(c(this._weekdaysParse)&&c(this._shortWeekdaysParse)&&c(this._minWeekdaysParse))return n?"dddd"===e?-1!==(a=this._weekdaysParse.indexOf(r))?a:null:"ddd"===e?-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:null:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:null:"dddd"===e?-1!==(a=this._weekdaysParse.indexOf(r))?a:-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:null:"ddd"===e?-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:-1!==(a=this._weekdaysParse.indexOf(r))?a:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:null:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:-1!==(a=this._weekdaysParse.indexOf(r))?a:-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:null},t.prototype.computeMonthsParse=function(){var t,e,n=[],a=[],r=[];for(e=0;e<12;e++)t=new Date(2e3,e),n.push(this.monthsShort(t,"")),a.push(this.months(t,"")),r.push(this.months(t,"")),r.push(this.monthsShort(t,""));for(n.sort(Ut),a.sort(Ut),r.sort(Ut),e=0;e<12;e++)n[e]=ft(n[e]),a[e]=ft(a[e]);for(e=0;e<24;e++)r[e]=ft(r[e]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")},t.prototype.computeWeekdaysParse=function(){var t,e=[],n=[],a=[],r=[];for(t=0;t<7;t++){var i=Ze(new Date(Date.UTC(2e3,1)),t,null,!0),o=this.weekdaysMin(i),s=this.weekdaysShort(i),u=this.weekdays(i);e.push(o),n.push(s),a.push(u),r.push(o),r.push(s),r.push(u)}for(e.sort(Ut),n.sort(Ut),a.sort(Ut),r.sort(Ut),t=0;t<7;t++)n[t]=ft(n[t]),a[t]=ft(a[t]),r[t]=ft(r[t]);this._weekdaysRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+e.join("|")+")","i")},t}();function Ut(t,e){return e.length-t.length}var Wt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:Yt,invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:qt,monthsShort:jt,week:{dow:0,doy:6},weekdays:Ft,weekdaysMin:Gt,weekdaysShort:zt,meridiemParse:/[ap]\.?m?\.?/i};function Kt(t,e,n){var a,r=Math.min(t.length,e.length),i=Math.abs(t.length-e.length),o=0;for(a=0;a0;){if(o=r.slice(0,i).join("-"),ae[o]||console.error('Khronos locale error: please load locale "'+o+'" before using it'),n=ae[o])return n;if(e&&e.length>=i&&Kt(r,e,!0)>=i-1)break;i--}a++}var o;return null}(c(t)?t:[t]):ee}var ce=["year","quarter","month","week","day","hours","minutes","seconds","milliseconds"],le=ce.reduce(function(t,e){return t[e]=!0,t},{});function de(t){return t<0?Math.floor(t):Math.ceil(t)}function fe(t){return 4800*t/146097}function pe(t){return 146097*t/4800}var he=Math.round,ge=function(){function t(t,e){void 0===e&&(e={}),this._data={},this._locale=ue(),this._locale=e&&e._locale||ue();var n=t.year||0,r=t.quarter||0,i=t.month||0,o=t.week||0,s=t.day||0,u=t.hours||0,c=t.minutes||0,l=t.seconds||0,d=t.milliseconds||0;return this._isValid=function(t){if(Object.keys(t).some(function(e){return e in le&&null===t[e]||isNaN(t[e])}))return!1;for(var e=!1,n=0;n=0&&n>=0&&r>=0||e<=0&&n<=0&&r<=0||(e+=864e5*de(pe(r)+n),n=0,r=0),i.milliseconds=e%1e3;var o=a(e/1e3);i.seconds=o%60;var s=a(o/60);i.minutes=s%60;var u=a(s/60);i.hours=u%24,n+=a(u/24);var c=a(fe(n));r+=c,n-=de(pe(c));var l=a(r/12);return r%=12,i.day=n,i.month=r,i.year=l,t}(this)}return t.prototype.isValid=function(){return this._isValid},t.prototype.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate;var e=this.localeData(),n=function(t,e,n){var a=Be(t).abs(),r=he(a.as("s")),i=he(a.as("m")),o=he(a.as("h")),s=he(a.as("d")),u=he(a.as("M")),c=he(a.as("y")),l=r<=44&&["s",r]||r<45&&["ss",r]||i<=1&&["m"]||i<45&&["mm",i]||o<=1&&["h"]||o<22&&["hh",o]||s<=1&&["d"]||s<26&&["dd",s]||u<=1&&["M"]||u<11&&["MM",u]||c<=1&&["y"]||["yy",c];return(function(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}).apply(null,[l[0],l[1],e,+t>0,n])}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},t.prototype.localeData=function(){return this._locale},t.prototype.locale=function(t){return t?(this._locale=ue(t)||this._locale,this):this._locale._abbr},t.prototype.abs=function(){var t=Math.abs,e=this._data;return this._milliseconds=t(this._milliseconds),this._days=t(this._days),this._months=t(this._months),e.milliseconds=t(e.milliseconds),e.seconds=t(e.seconds),e.minutes=t(e.minutes),e.hours=t(e.hours),e.month=t(e.month),e.year=t(e.year),this},t.prototype.as=function(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds,r=b(t);if("month"===r||"year"===r)return n=this._months+fe(e=this._days+a/864e5),"month"===r?n:n/12;switch(e=this._days+Math.round(pe(this._months)),r){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hours":return 24*e+a/36e5;case"minutes":return 1440*e+a/6e4;case"seconds":return 86400*e+a/1e3;case"milliseconds":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+r)}},t.prototype.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*p(this._months/12):NaN},t}();function me(t){if(null==t._isValid){var e=bt(t),n=Array.prototype.some.call(e.parsedDateParts,function(t){return null!=t}),a=!isNaN(t._d&&t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(a=a&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return a;t._isValid=a}return t._isValid}function be(t,e){return t._d=new Date(NaN),Object.assign(bt(t),e||{userInvalidated:!0}),t}var ye=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ve=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,xe=/Z|[+-]\d\d(?::?\d\d)?/,_e=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/,!0],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/,!0],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/,!0],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/,!0],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/,!0],["YYYYMMDD",/\d{8}/,!0],["GGGG[W]WWE",/\d{4}W\d{3}/,!0],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/,!0]],Te=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],we=/^\/?Date\((\-?\d+)/i,Se={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},Oe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Ie(t){if(!r(t._i))return t;var e,n,a,i,o,s,u=t._i,c=ye.exec(u)||ve.exec(u);if(!c)return t._isValid=!1,t;for(o=0,s=_e.length;o=0&&r.test(n);)n=n.replace(r,i),r.lastIndex=0,a-=1;return n}function Ae(t,e,n){return null!=t?t:null!=e?e:n}function Ee(t){var e,n,a,r,i,o=[];if(t._d)return t;for(a=function(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[x]&&null==t._a[v]&&function(t){var e,n,a,r,i,o,s,u;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)i=1,o=4,n=Ae(e.GG,t._a[y],Lt(new Date,1,4).year),a=Ae(e.W,1),((r=Ae(e.E,1))<1||r>7)&&(u=!0);else{i=t._locale._week.dow,o=t._locale._week.doy;var c=Lt(new Date,i,o);n=Ae(e.gg,t._a[y],c.year),a=Ae(e.w,c.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(u=!0)):r=i}a<1||a>Pt(n,i,o)?bt(t)._overflowWeeks=!0:null!=u?bt(t)._overflowWeekday=!0:(s=function(t,e,n,a,r){var i,o,s=1+7*(e-1)+(7+n-a)%7+Dt(t,a,r);return s<=0?o=xt(i=t-1)+s:s>xt(t)?(i=t+1,o=s-xt(t)):(i=t,o=s),{year:i,dayOfYear:o}}(n,a,r,i,o),t._a[y]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(i=Ae(t._a[y],a[y]),(t._dayOfYear>xt(i)||0===t._dayOfYear)&&(bt(t)._overflowDayOfYear=!0),n=new Date(Date.UTC(i,0,t._dayOfYear)),t._a[v]=n.getUTCMonth(),t._a[x]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=a[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];return 24===t._a[_]&&0===t._a[T]&&0===t._a[w]&&0===t._a[S]&&(t._nextDay=!0,t._a[_]=0),t._d=(t._useUTC?E:D).apply(null,o),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[_]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(bt(t).weekdayMismatch=!0),t}function De(t){var e,n=t._a;return n&&-2===bt(t).overflow&&(e=n[v]<0||n[v]>11?v:n[x]<1||n[x]>Tt(n[y],n[v])?x:n[_]<0||n[_]>24||24===n[_]&&(0!==n[T]||0!==n[w]||0!==n[S])?_:n[T]<0||n[T]>59?T:n[w]<0||n[w]>59?w:n[S]<0||n[S]>999?S:-1,bt(t)._overflowDayOfYear&&(ex)&&(e=x),bt(t)._overflowWeeks&&-1===e&&(e=O),bt(t)._overflowWeekday&&-1===e&&(e=I),bt(t).overflow=e),t}var Le="ISO_8601",Pe="RFC_2822";function Me(t){if(t._f===Le)return Ie(t);if(t._f===Pe)return ke(t);if(t._a=[],bt(t).empty=!0,c(t._f)||!t._i&&0!==t._i)return t;var e,n,a,r,i=t._i.toString(),o=0,s=i.length,u=Re(t._f,t._locale).match(R)||[];for(e=0;e0&&bt(t).unusedInput.push(r),i=i.slice(i.indexOf(a)+a.length),o+=a.length),N[n]?(a?bt(t).empty=!1:bt(t).unusedTokens.push(n),mt(n,a,t)):t._strict&&!a&&bt(t).unusedTokens.push(n);return bt(t).charsLeftOver=s-o,i.length>0&&bt(t).unusedInput.push(i),t._a[_]<=12&&!0===bt(t).bigHour&&t._a[_]>0&&(bt(t).bigHour=void 0),bt(t).parsedDateParts=t._a.slice(0),bt(t).meridiem=t._meridiem,t._a[_]=function(e,n,a){var r=t._a[_];if(null==a)return r;if(null!=e.meridiemHour)return e.meridiemHour(r,a);if(null==e.isPM)return r;var i=e.isPM(a);return i&&r<12&&(r+=12),i||12!==r||(r=0),r}(t._locale,0,t._meridiem),Ee(t),De(t)}function qe(t,e,n,a,o){return i(t)?t:function(t,e,n,a,o){var s={},p=t;return(d(p)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(p)||c(p)&&0===p.length)&&(p=void 0),s._useUTC=s._isUTC=o,s._l=n,s._i=p,s._f=e,s._strict=a,function(t){var e=De(function(t){var e=t._i,n=t._f;return t._locale=t._locale||ue(t._l),null===e||void 0===n&&""===e?be(t,{nullInput:!0}):(r(e)&&(t._i=e=t._locale.preparse(e)),i(e)?(t._d=Nt(e),t):(c(n)?function(t){var e,n,a,r,i;if(!t._f||0===t._f.length)return bt(t).invalidFormat=!0,be(t);for(i=0;ie.valueOf():e.valueOf()1&&t<5&&1!=~~(t/10)}function nn(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return e||a?r+(en(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(en(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(en(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(en(t)?"dny":"dn\xed"):r+"dny";case"M":return e||a?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return e||a?r+(en(t)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):r+"m\u011bs\xedci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(en(t)?"roky":"let"):r+"lety"}}var an=function(t){var e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},rn=function(t){var e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},on={abbr:"cs",months:Qe,monthsShort:tn,monthsParse:function(t,e){var n,a=[];for(n=0;n<12;n++)a[n]=new RegExp("^"+t[n]+"$|^"+e[n]+"$","i");return a}(Qe,tn),shortMonthsParse:an(tn),longMonthsParse:rn(Qe),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(t){switch(Xe(t)){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(t){switch(Xe(t)){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:nn,ss:nn,m:nn,mm:nn,h:nn,hh:nn,d:nn,dd:nn,M:nn,MM:nn,y:nn,yy:nn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}};function sn(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}var un={abbr:"de",months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:sn,mm:"%d Minuten",h:sn,hh:"%d Stunden",d:sn,dd:sn,M:sn,MM:sn,y:sn,yy:sn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}},cn="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),ln="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),dn=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],fn=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,pn={abbr:"es",months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,e,n){return t?/-MMM-/.test(e)?ln[z(t,n)]:cn[z(t,n)]:cn},monthsRegex:fn,monthsShortRegex:fn,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:dn,longMonthsParse:dn,shortMonthsParse:dn,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(t){return"[hoy a la"+(1!==L(t)?"s":"")+"] LT"},nextDay:function(t){return"[ma\xf1ana a la"+(1!==L(t)?"s":"")+"] LT"},nextWeek:function(t){return"dddd [a la"+(1!==L(t)?"s":"")+"] LT"},lastDay:function(t){return"[ayer a la"+(1!==L(t)?"s":"")+"] LT"},lastWeek:function(t){return"[el] dddd [pasado a la"+(1!==L(t)?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}},hn={abbr:"fr",months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){var n=Number(t);switch(e){case"D":return n+(1===n?"er":"");default:case"M":case"Q":case"DDD":case"d":return n+(1===n?"er":"e");case"w":case"W":return n+(1===n?"re":"e")}},week:{dow:1,doy:4}},gn={abbr:"id",months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}},mn={abbr:"it",months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(t){switch(Xe(t)){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t.toString(10))?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}},bn={abbr:"ja",months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5 HH:mm dddd"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(t){return"\u5348\u5f8c"===t},meridiem:function(t,e,n){return t<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:"[\u6765\u9031]dddd LT",lastDay:"[\u6628\u65e5] LT",lastWeek:"[\u524d\u9031]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";default:return t.toString(10)}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",ss:"%d\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}},yn={abbr:"ko",months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\uc77c";case"M":return t+"\uc6d4";case"w":case"W":return t+"\uc8fc";default:return t.toString(10)}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(t){return"\uc624\ud6c4"===t},meridiem:function(t,e,n){return t<12?"\uc624\uc804":"\uc624\ud6c4"}},vn="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),xn="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function _n(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function Tn(t,e,n){var a=t+" ";switch(n){case"ss":return a+(_n(t)?"sekundy":"sekund");case"m":return e?"minuta":"minut\u0119";case"mm":return a+(_n(t)?"minuty":"minut");case"h":return e?"godzina":"godzin\u0119";case"hh":return a+(_n(t)?"godziny":"godzin");case"MM":return a+(_n(t)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return a+(_n(t)?"lata":"lat")}}var wn={abbr:"pl",months:function(t,e,n){return t?""===e?"("+xn[z(t,n)]+"|"+vn[z(t,n)]+")":/D MMMM/.test(e)?xn[z(t,n)]:vn[z(t,n)]:vn},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(t){switch(Xe(t)){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 5:return"[W pi\u0105tek o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(t){switch(Xe(t)){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 4:return"[W zesz\u0142\u0105 czwartek o] LT";case 5:return"[W zesz\u0142\u0105 pi\u0105tek o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:Tn,m:Tn,mm:Tn,h:Tn,hh:Tn,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:Tn,y:"rok",yy:Tn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}},Sn={abbr:"pt-br",months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(t){return 0===Xe(t)||6===Xe(t)?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atr\xe1s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"},On={abbr:"zh-cn",months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(t,e){var n=Number(t);switch(e){case"d":case"D":case"DDD":return n+"\u65e5";case"M":return n+"\u6708";case"w":case"W":return n+"\u5468";default:return n.toString()}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}}},lJMN:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("QG5k"),r=n("TCh0"),i=n("kQXf");e.TreeController=function(){function t(t){this.component=t,this.tree=this.component.tree,this.treeService=this.component.treeService}return t.prototype.select=function(){this.isSelected()||this.component.onNodeSelected({button:r.MouseButtons.Left})},t.prototype.unselect=function(){this.isSelected()&&this.component.onNodeUnselected({button:r.MouseButtons.Left})},t.prototype.isSelected=function(){return this.component.isSelected},t.prototype.expand=function(){this.isCollapsed()&&this.component.onSwitchFoldingType()},t.prototype.expandToParent=function(t){var e=this;if(void 0===t&&(t=this.tree),t){var n=this.treeService.getController(t.id);n&&requestAnimationFrame(function(){n.expand(),e.expandToParent(t.parent)})}},t.prototype.isExpanded=function(){return this.tree.isNodeExpanded()},t.prototype.collapse=function(){this.isExpanded()&&this.component.onSwitchFoldingType()},t.prototype.isCollapsed=function(){return this.tree.isNodeCollapsed()},t.prototype.toTreeModel=function(){return this.tree.toTreeModel()},t.prototype.rename=function(t){this.tree.markAsBeingRenamed(),this.component.applyNewValue({type:"keyup",value:t})},t.prototype.remove=function(){this.component.onMenuItemSelected({nodeMenuItemAction:a.NodeMenuItemAction.Remove})},t.prototype.addChild=function(t){if(!this.tree.hasDeferredChildren()||this.tree.childrenWereLoaded()){var e=this.tree.createNode(Array.isArray(t.children),t);this.treeService.fireNodeCreated(e)}},t.prototype.addChildAsync=function(t){if(this.tree.hasDeferredChildren()&&!this.tree.childrenWereLoaded())return Promise.reject(new Error("This node loads its children asynchronously, hence child cannot be added this way"));var e=this.tree.createNode(Array.isArray(t.children),t);return this.treeService.fireNodeCreated(e),new Promise(function(t){setTimeout(function(){t(e)})})},t.prototype.changeNodeId=function(t){if(!t)throw Error("You should supply an id!");if(this.treeService.hasController(t))throw Error("Controller already exists for the given id: "+t);this.treeService.deleteController(this.tree.id),this.tree.id=t,this.treeService.setController(this.tree.id,this)},t.prototype.reloadChildren=function(){this.tree.reloadChildren()},t.prototype.setChildren=function(t){this.tree.isLeaf()||this.tree.setChildren(t)},t.prototype.startRenaming=function(){this.tree.markAsBeingRenamed()},t.prototype.check=function(){this.component.onNodeChecked()},t.prototype.uncheck=function(){this.component.onNodeUnchecked()},t.prototype.isChecked=function(){return this.tree.checked},t.prototype.isIndetermined=function(){return i.get(this.component,"checkboxElementRef.nativeElement.indeterminate")},t.prototype.allowSelection=function(){this.tree.selectionAllowed=!0},t.prototype.forbidSelection=function(){this.tree.selectionAllowed=!1},t.prototype.isSelectionAllowed=function(){return this.tree.selectionAllowed},t}()},lTVp:function(t,e,n){"use strict";n.d(e,"a",function(){return s}),n.d(e,"b",function(){return o}),n.d(e,"c",function(){return u});var a=n("mrSG"),r=n("CcnG"),i=n("rpEJ"),o=function(){return function(){this.type="warning",this.dismissible=!1,this.dismissOnTimeout=void 0}}(),s=function(){function t(t,e){var n=this;this.changeDetection=e,this.type="warning",this.dismissible=!1,this.isOpen=!0,this.onClose=new r.EventEmitter,this.onClosed=new r.EventEmitter,this.classes="",this.dismissibleChange=new r.EventEmitter,Object.assign(this,t),this.dismissibleChange.subscribe(function(t){n.classes=n.dismissible?"alert-dismissible":"",n.changeDetection.markForCheck()})}return t.prototype.ngOnInit=function(){var t=this;this.dismissOnTimeout&&setTimeout(function(){return t.close()},parseInt(this.dismissOnTimeout,10))},t.prototype.close=function(){this.isOpen&&(this.onClose.emit(this),this.isOpen=!1,this.changeDetection.markForCheck(),this.onClosed.emit(this))},Object(a.__decorate)([Object(i.a)(),Object(a.__metadata)("design:type",Object)],t.prototype,"dismissible",void 0),t}(),u=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[o]}},t}()},lUjN:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("vxfy");e.DatatableFooterDirective=function(){function t(){}return a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),i.ContentChild(o.DataTableFooterTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Directive({selector:"ngx-datatable-footer"})],t)}()},lXzo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":t+" "+(a=+t,r={ss:e?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:e?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}var a=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];n("wd/R").defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:a,longMonthsParse:a,shortMonthsParse:a,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:e,m:e,mm:e,h:"\u0447\u0430\u0441",hh:e,d:"\u0434\u0435\u043d\u044c",dd:e,M:"\u043c\u0435\u0441\u044f\u0446",MM:e,y:"\u0433\u043e\u0434",yy:e},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(t)},meridiem:function(t,e,n){return t<4?"\u043d\u043e\u0447\u0438":t<12?"\u0443\u0442\u0440\u0430":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-\u0439";case"D":return t+"-\u0433\u043e";case"w":case"W":return t+"-\u044f";default:return t}},week:{dow:1,doy:4}})}()},lYZG:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("6blF"),r=n("0/uQ"),i=n("G5J1");function o(t){return new a.a(function(e){var n;try{n=t()}catch(a){return void e.error(a)}return(n?Object(r.a)(n):Object(i.b)()).subscribe(e)})}},lYtQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){switch(n){case"s":return e?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return t+(e?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return t+(e?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return t+(e?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return t+(e?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return t+(e?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return t+(e?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return t}}n("wd/R").defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(t){return"\u04ae\u0425"===t},meridiem:function(t,e,n){return t<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" \u04e9\u0434\u04e9\u0440";default:return t}}})}()},lZOh:function(t,e,n){"use strict";n.r(e);var a=n("6blF"),r=n("F/XL");a.a.of=r.a},lgnt:function(t,e,n){!function(t){"use strict";var e={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};t.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},lmqd:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi",t.multiClick="multiClick",t.cell="cell",t.checkbox="checkbox"}(e.SelectionType||(e.SelectionType={}))},lqqz:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("CcnG"),r=n("rpEJ"),i=function(){return function(t,e,n){this.nodes=t,this.viewRef=e,this.componentRef=n}}(),o=function(){function t(t,e,n,r,i,o,s,u){this._viewContainerRef=t,this._renderer=e,this._elementRef=n,this._injector=r,this._componentFactoryResolver=i,this._ngZone=o,this._applicationRef=s,this._posService=u,this.onBeforeShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onBeforeHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this._providers=[],this._isHiding=!1,this.containerDefaultSelector="body",this._listenOpts={},this._globalListener=Function.prototype}return Object.defineProperty(t.prototype,"isShown",{get:function(){return!this._isHiding&&!!this._componentRef},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){return this._componentFactory=this._componentFactoryResolver.resolveComponentFactory(t),this},t.prototype.to=function(t){return this.container=t||this.container,this},t.prototype.position=function(t){return this.attachment=t.attachment||this.attachment,this._elementRef=t.target||this._elementRef,this},t.prototype.provide=function(t){return this._providers.push(t),this},t.prototype.show=function(t){if(void 0===t&&(t={}),this._subscribePositioning(),this._innerComponent=null,!this._componentRef){this.onBeforeShow.emit(),this._contentRef=this._getContentRef(t.content,t.context,t.initialState);var e=a.Injector.create({providers:this._providers,parent:this._injector});this._componentRef=this._componentFactory.create(e,this._contentRef.nodes),this._applicationRef.attachView(this._componentRef.hostView),this.instance=this._componentRef.instance,Object.assign(this._componentRef.instance,t),this.container instanceof a.ElementRef&&this.container.nativeElement.appendChild(this._componentRef.location.nativeElement),"string"==typeof this.container&&"undefined"!=typeof document&&(document.querySelector(this.container)||document.querySelector(this.containerDefaultSelector)).appendChild(this._componentRef.location.nativeElement),!this.container&&this._elementRef&&this._elementRef.nativeElement.parentElement&&this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement),this._contentRef.componentRef&&(this._innerComponent=this._contentRef.componentRef.instance,this._contentRef.componentRef.changeDetectorRef.markForCheck(),this._contentRef.componentRef.changeDetectorRef.detectChanges()),this._componentRef.changeDetectorRef.markForCheck(),this._componentRef.changeDetectorRef.detectChanges(),this.onShown.emit(this._componentRef.instance)}return this._registerOutsideClick(),this._componentRef},t.prototype.hide=function(){if(!this._componentRef)return this;this._posService.deletePositionElement(this._componentRef.location),this.onBeforeHide.emit(this._componentRef.instance);var t=this._componentRef.location.nativeElement;return t.parentNode.removeChild(t),this._contentRef.componentRef&&this._contentRef.componentRef.destroy(),this._componentRef.destroy(),this._viewContainerRef&&this._contentRef.viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef)),this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._contentRef=null,this._componentRef=null,this._removeGlobalListener(),this.onHidden.emit(),this},t.prototype.toggle=function(){this.isShown?this.hide():this.show()},t.prototype.dispose=function(){this.isShown&&this.hide(),this._unsubscribePositioning(),this._unregisterListenersFn&&this._unregisterListenersFn()},t.prototype.listen=function(t){var e=this;this.triggers=t.triggers||this.triggers,this._listenOpts.outsideClick=t.outsideClick,this._listenOpts.outsideEsc=t.outsideEsc,t.target=t.target||this._elementRef.nativeElement;var n=this._listenOpts.hide=function(){return t.hide?t.hide():void e.hide()},a=this._listenOpts.show=function(n){t.show?t.show(n):e.show(n),n()};return this._unregisterListenersFn=Object(r.e)(this._renderer,{target:t.target,triggers:t.triggers,show:a,hide:n,toggle:function(t){e.isShown?n():a(t)}}),this},t.prototype._removeGlobalListener=function(){this._globalListener&&(this._globalListener(),this._globalListener=null)},t.prototype.attachInline=function(t,e){return this._inlineViewRef=t.createEmbeddedView(e),this},t.prototype._registerOutsideClick=function(){var t=this;if(this._componentRef&&this._componentRef.location){if(this._listenOpts.outsideClick){var e=this._componentRef.location.nativeElement;setTimeout(function(){t._globalListener=Object(r.h)(t._renderer,{targets:[e,t._elementRef.nativeElement],outsideClick:t._listenOpts.outsideClick,hide:function(){return t._listenOpts.hide()}})})}if(this._listenOpts.outsideEsc){var n=this._componentRef.location.nativeElement;this._globalListener=Object(r.g)(this._renderer,{targets:[n,this._elementRef.nativeElement],outsideEsc:this._listenOpts.outsideEsc,hide:function(){return t._listenOpts.hide()}})}}},t.prototype.getInnerComponent=function(){return this._innerComponent},t.prototype._subscribePositioning=function(){var t=this;!this._zoneSubscription&&this.attachment&&(this.onShown.subscribe(function(){t._posService.position({element:t._componentRef.location,target:t._elementRef,attachment:t.attachment,appendToBody:"body"===t.container})}),this._zoneSubscription=this._ngZone.onStable.subscribe(function(){t._componentRef&&t._posService.calcPosition()}))},t.prototype._unsubscribePositioning=function(){this._zoneSubscription&&(this._zoneSubscription.unsubscribe(),this._zoneSubscription=null)},t.prototype._getContentRef=function(t,e,n){if(!t)return new i([]);if(t instanceof a.TemplateRef){if(this._viewContainerRef){var r=this._viewContainerRef.createEmbeddedView(t,e);return r.markForCheck(),new i([r.rootNodes],r)}var o=t.createEmbeddedView({});return this._applicationRef.attachView(o),new i([o.rootNodes],o)}if("function"==typeof t){var s=this._componentFactoryResolver.resolveComponentFactory(t),u=a.Injector.create({providers:this._providers,parent:this._injector}),c=s.create(u);return Object.assign(c.instance,n),this._applicationRef.attachView(c.hostView),new i([[c.location.nativeElement]],c.hostView,c)}return new i([[this._renderer.createText(""+t)]])},t}(),s=function(){function t(t,e,n,a,r){this._componentFactoryResolver=t,this._ngZone=e,this._injector=n,this._posService=a,this._applicationRef=r}return t.prototype.createLoader=function(t,e,n){return new o(e,n,t,this._injector,this._componentFactoryResolver,this._ngZone,this._applicationRef,this._posService)},t}()},lyxo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=" ";return(t%100>=20||t>=100&&t%100==0)&&(a=" de "),t+a+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}n("wd/R").defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:e,m:"un minut",mm:e,h:"o or\u0103",hh:e,d:"o zi",dd:e,M:"o lun\u0103",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}})}()},mChF:function(t,e,n){"use strict";function a(t){return t}n.d(e,"a",function(){return a})},mSOc:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("LvDl"),r=n("26FU"),i=n("CcnG"),o=n("t/Na"),s=n("ZYCi"),u=function(){function t(t,e,n){this.http=t,this.router=e,this.ngZone=n,this.summaryDataSource=new r.a(null),this.summaryData$=this.summaryDataSource.asObservable(),this.enablePolling()}return t.prototype.enablePolling=function(){var t=this;this.refresh(),this.ngZone.runOutsideAngular(function(){t.polling=window.setInterval(function(){t.ngZone.run(function(){t.refresh()})},5e3)})},t.prototype.refresh=function(){var t=this;"/login"!==this.router.url&&this.http.get("api/summary").subscribe(function(e){t.summaryDataSource.next(e)})},t.prototype.getCurrentSummary=function(){return this.summaryDataSource.getValue()},t.prototype.subscribe=function(t,e){return this.summaryData$.subscribe(t,e)},t.prototype.addRunningTask=function(t){var e=this.summaryDataSource.getValue();e&&(a.isArray(e.executing_tasks)?e.executing_tasks.find(function(e){return e.name===t.name&&a.isEqual(e.metadata,t.metadata)})||e.executing_tasks.push(t):e.executing_tasks=[t],this.summaryDataSource.next(e))},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(o.c),i.inject(s.l),i.inject(i.NgZone))},token:t,providedIn:"root"}),t}()},mZXl:function(t,e,n){"use strict";n.d(e,"b",function(){return o}),n.d(e,"a",function(){return u});var a=n("mrSG"),r=n("FFOo"),i=n("60iU");function o(t,e){return void 0===e&&(e=0),function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.scheduler,this.delay))},t}(),u=function(t){function e(e,n,a){void 0===a&&(a=0);var r=t.call(this,e)||this;return r.scheduler=n,r.delay=a,r}return a.__extends(e,t),e.dispatch=function(t){t.notification.observe(t.destination),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.destination.add(this.scheduler.schedule(e.dispatch,this.delay,new c(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(i.a.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(i.a.createError(t)),this.unsubscribe()},e.prototype._complete=function(){this.scheduleMessage(i.a.createComplete()),this.unsubscribe()},e}(r.a),c=function(){return function(t,e){this.notification=t,this.destination=e}}()},mbIT:function(t,e,n){"use strict";e.isArray=Array.isArray||function(t){return t&&"number"==typeof t.length}},mgIt:function(t,e,n){var a=n("T016");function r(t){if(t){var e=[0,0,0],n=1,r=t.match(/^#([a-fA-F0-9]{3,4})$/i),i="";if(r){i=(r=r[1])[3];for(var o=0;o=0&&e<1?d(Math.round(255*e)):"")},rgbString:function(t,e){return e<1||t[3]&&t[3]<1?s(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:s,percentString:function(t,e){return e<1||t[3]&&t[3]<1?u(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"},percentaString:u,hslString:function(t,e){return e<1||t[3]&&t[3]<1?c(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:c,hwbString:function(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return f[t.slice(0,3)]}};var f={};for(var p in a)f[a[p]]=p},mjYD:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),o=n("fELs"),s=i.noop;a._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var u=r.extend({initialize:function(t){i.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:s,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:s,beforeSetDimensions:s,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:s,beforeBuildLabels:s,buildLabels:s,afterBuildLabels:s,beforeFit:s,fit:function(){var t=this,e=t.options,n=e.display,r=(0,i.valueOrDefault)(e.fontSize,a.global.defaultFontSize),o=t.minSize,s=i.isArray(e.text)?e.text.length:1,u=i.options.toLineHeight(e.lineHeight,r),c=n?s*u+2*e.padding:0;t.isHorizontal()?(o.width=t.maxWidth,o.height=c):(o.width=c,o.height=t.maxHeight),t.width=o.width,t.height=o.height},afterFit:s,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=i.valueOrDefault,r=t.options,o=a.global;if(r.display){var s,u,c,l=n(r.fontSize,o.defaultFontSize),d=n(r.fontStyle,o.defaultFontStyle),f=n(r.fontFamily,o.defaultFontFamily),p=i.fontString(l,d,f),h=i.options.toLineHeight(r.lineHeight,l),g=h/2+r.padding,m=0,b=t.top,y=t.left,v=t.bottom,x=t.right;e.fillStyle=n(r.fontColor,o.defaultFontColor),e.font=p,t.isHorizontal()?(u=y+(x-y)/2,c=b+g,s=x-y):(u="left"===r.position?y+g:x-g,c=b+(v-b)/2,s=v-b,m=Math.PI*("left"===r.position?-.5:.5)),e.save(),e.translate(u,c),e.rotate(m),e.textAlign="center",e.textBaseline="middle";var _=r.text;if(i.isArray(_))for(var T=0,w=0;w<_.length;++w)e.fillText(_[w],0,T,s),T+=h;else e.fillText(_,0,0,s);e.restore()}}});function c(t,e){var n=new u({ctx:t.ctx,options:e,chart:t});o.configure(t,n,e),o.addBox(t,n),t.titleBlock=n}t.exports={id:"title",_element:u,beforeInit:function(t){var e=t.options.title;e&&c(t,e)},beforeUpdate:function(t){var e=t.options.title,n=t.titleBlock;e?(i.mergeIf(e,a.global.title),n?(o.configure(t,n,e),n.options=e):c(t,e)):n&&(o.removeBox(t,n),delete t.titleBlock)}}},mlr9:function(t,e,n){"use strict";var a=n("RDha");function r(t,e){return t.native?{x:t.x,y:t.y}:a.getRelativePosition(t,e)}function i(t,e){var n,a,r,i,o;for(a=0,i=t.data.datasets.length;a0&&(c=t.getDatasetMeta(c[0]._datasetIndex).data),c},"x-axis":function(t,e){return c(t,e,{intersect:!1})},point:function(t,e){return o(t,r(e,t))},nearest:function(t,e,n){var a=r(e,t);n.axis=n.axis||"xy";var i=u(n.axis),o=s(t,a,n.intersect,i);return o.length>1&&o.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),o.slice(0,1)},x:function(t,e,n){var a=r(e,t),o=[],s=!1;return i(t,function(t){t.inXRange(a.x)&&o.push(t),t.inRange(a.x,a.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o},y:function(t,e,n){var a=r(e,t),o=[],s=!1;return i(t,function(t){t.inYRange(a.y)&&o.push(t),t.inRange(a.x,a.y)&&(s=!0)}),n.intersect&&!s&&(o=[]),o}}}},mn2k:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("3MdB")),a(n("Cc8h")),a(n("ylLw")),a(n("M9eX")),a(n("uKs4"))},mrSG:function(t,e,n){"use strict";n.r(e),n.d(e,"__extends",function(){return r}),n.d(e,"__assign",function(){return i}),n.d(e,"__rest",function(){return o}),n.d(e,"__decorate",function(){return s}),n.d(e,"__param",function(){return u}),n.d(e,"__metadata",function(){return c}),n.d(e,"__awaiter",function(){return l}),n.d(e,"__generator",function(){return d}),n.d(e,"__exportStar",function(){return f}),n.d(e,"__values",function(){return p}),n.d(e,"__read",function(){return h}),n.d(e,"__spread",function(){return g}),n.d(e,"__await",function(){return m}),n.d(e,"__asyncGenerator",function(){return b}),n.d(e,"__asyncDelegator",function(){return y}),n.d(e,"__asyncValues",function(){return v}),n.d(e,"__makeTemplateObject",function(){return x}),n.d(e,"__importStar",function(){return _}),n.d(e,"__importDefault",function(){return T});var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function r(t,e){function n(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o}function u(t,e){return function(n,a){e(n,a,t)}}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function l(t,e,n,a){return new(n||(n=Promise))(function(r,i){function o(t){try{u(a.next(t))}catch(e){i(e)}}function s(t){try{u(a.throw(t))}catch(e){i(e)}}function u(t){t.done?r(t.value):new n(function(e){e(t.value)}).then(o,s)}u((a=a.apply(t,e||[])).next())})}function d(t,e){var n,a,r,i,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,a&&(r=2&i[0]?a.return:i[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,i[1])).done)return r;switch(a=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,a=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(r=(r=o.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function h(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var a,r,i=n.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(a=i.next()).done;)o.push(a.value)}catch(s){r={error:s}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return o}function g(){for(var t=[],e=0;e1||s(t,e)})})}function s(t,e){try{(n=r[t](e)).value instanceof m?Promise.resolve(n.value.v).then(u,c):l(i[0][2],n)}catch(a){l(i[0][3],a)}var n}function u(t){s("next",t)}function c(t){s("throw",t)}function l(t,e){t(e),i.shift(),i.length&&s(i[0][0],i[0][1])}}function y(t){var e,n;return e={},a("next"),a("throw",function(t){throw t}),a("return"),e[Symbol.iterator]=function(){return this},e;function a(a,r){e[a]=t[a]?function(e){return(n=!n)?{value:m(t[a](e)),done:"return"===a}:r?r(e):e}:r}}function v(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=p(t),e={},a("next"),a("throw"),a("return"),e[Symbol.asyncIterator]=function(){return this},e);function a(n){e[n]=t[n]&&function(e){return new Promise(function(a,r){!function(t,e,n,a){Promise.resolve(a).then(function(e){t({value:e,done:n})},e)}(a,r,(e=t[n](e)).done,e.value)})}}}function x(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function _(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function T(t){return t&&t.__esModule?t:{default:t}}},mtw6:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return t[t.error=0]="error",t[t.info=1]="info",t[t.success=2]="success",t}({})},"n/D3":function(t,e,n){"use strict";n.d(e,"a",function(){return c}),n.d(e,"b",function(){return u});var a=n("VNr4"),r=(n("SgmB"),n("ZDA6"),n("0+/T")),i=(n("sne2"),n("x38r")),o=n("mtw6"),s=n("vCyI"),u=(n("nSDx"),n("aexS"),n("9nlD"),new(n("EgGo").a)("user-management/roles")),c=function(){function t(t,e,n,a,r,i,o,u,c){var l=this;this.roleService=t,this.scopeService=e,this.emptyPipe=n,this.authStorageService=a,this.modalService=r,this.notificationService=i,this.i18n=o,this.urlBuilder=u,this.actionLabels=c,this.selection=new s.a,this.permission=this.authStorageService.getPermissions().user,this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return l.urlBuilder.getCreate()},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",disable:function(){return!l.selection.hasSingleSelection||l.selection.first().system},routerLink:function(){return l.selection.first()&&l.urlBuilder.getEdit(l.selection.first().name)},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-times",disable:function(){return!l.selection.hasSingleSelection||l.selection.first().system},click:function(){return l.deleteRoleModal()},name:this.actionLabels.DELETE}]}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:3},{name:this.i18n("Description"),prop:"description",flexGrow:5,pipe:this.emptyPipe},{name:this.i18n("System Role"),prop:"system",cellClass:"text-center",flexGrow:1,cellTransformation:i.a.checkIcon}]},t.prototype.getRoles=function(){var t=this;Object(a.a)([this.roleService.list(),this.scopeService.list()]).subscribe(function(e){t.roles=e[0],t.scopes=e[1]})},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.deleteRole=function(t){var e=this;this.roleService.delete(t).subscribe(function(){e.getRoles(),e.modalRef.hide(),e.notificationService.show(o.a.success,e.i18n("Deleted role '{{role_name}}'",{role_name:t}))},function(){e.modalRef.content.stopLoadingSpinner()})},t.prototype.deleteRoleModal=function(){var t=this,e=this.selection.first().name;this.modalRef=this.modalService.show(r.a,{initialState:{itemDescription:"Role",itemNames:[e],submitAction:function(){return t.deleteRole(e)}}})},t}()},n1nk:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.header="header",t.body="body"}(e.ContextmenuType||(e.ContextmenuType={}))},n3uD:function(t,e,n){"use strict";var a=!1;e.config={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){a=t},get useDeprecatedSynchronousErrorHandling(){return a}}},n73p:function(t,e,n){"use strict";var a=n("Q1FS"),r=n("zB/H");e.schedulePromise=function(t,e){return new a.Observable(function(n){var a=new r.Subscription;return a.add(e.schedule(function(){return t.then(function(t){a.add(e.schedule(function(){n.next(t),a.add(e.schedule(function(){return n.complete()}))}))},function(t){a.add(e.schedule(function(){return n.error(t)}))})})),a})}},nDWh:function(t,e,n){"use strict";var a=n("6ww4"),r=n("CDJp"),i=n("RDha"),o=n("tjFV");t.exports=function(){function t(t,e,n){var a;return"string"==typeof t?(a=parseInt(t,10),-1!==t.indexOf("%")&&(a=a/100*e.parentNode[n])):a=t,a}function e(t){return null!=t&&"none"!==t}function n(n,a,r){var o=document.defaultView,s=i._getParentNode(n),u=o.getComputedStyle(n)[a],c=o.getComputedStyle(s)[a],l=e(u),d=e(c),f=Number.POSITIVE_INFINITY;return l||d?Math.min(l?t(u,n,r):f,d?t(c,s,r):f):"none"}i.configMerge=function(){return i.merge(i.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,n,a){var r=e[t]||{},s=n[t];"scales"===t?e[t]=i.scaleMerge(r,s):"scale"===t?e[t]=i.merge(r,[o.getScaleDefaults(s.type),s]):i._merger(t,e,n,a)}})},i.scaleMerge=function(){return i.merge(i.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,n,a){if("xAxes"===t||"yAxes"===t){var r,s,u,c=n[t].length;for(e[t]||(e[t]=[]),r=0;r=e[t].length&&e[t].push({}),i.merge(e[t][r],!e[t][r].type||u.type&&u.type!==e[t][r].type?[o.getScaleDefaults(s),u]:u)}else i._merger(t,e,n,a)}})},i.where=function(t,e){if(i.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return i.each(t,function(t){e(t)&&n.push(t)}),n},i.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var a=0,r=t.length;a=0;a--){var r=t[a];if(e(r))return r}},i.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},i.almostEquals=function(t,e,n){return Math.abs(t-e)t},i.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},i.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},i.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},i.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,n=Math.round(e);return t===Math.pow(10,n)?n:e},i.toRadians=function(t){return t*(Math.PI/180)},i.toDegrees=function(t){return t*(180/Math.PI)},i.getAngleFromPoint=function(t,e){var n=e.x-t.x,a=e.y-t.y,r=Math.sqrt(n*n+a*a),i=Math.atan2(a,n);return i<-.5*Math.PI&&(i+=2*Math.PI),{angle:i,distance:r}},i.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},i.aliasPixel=function(t){return t%2==0?0:.5},i.splineCurve=function(t,e,n,a){var r=t.skip?e:t,i=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(i.x-r.x,2)+Math.pow(i.y-r.y,2)),u=Math.sqrt(Math.pow(o.x-i.x,2)+Math.pow(o.y-i.y,2)),c=s/(s+u),l=u/(s+u),d=a*(c=isNaN(c)?0:c),f=a*(l=isNaN(l)?0:l);return{previous:{x:i.x-d*(o.x-r.x),y:i.y-d*(o.y-r.y)},next:{x:i.x+f*(o.x-r.x),y:i.y+f*(o.y-r.y)}}},i.EPSILON=Number.EPSILON||1e-14,i.splineCurveMonotone=function(t){var e,n,a,r,o,s,u,c,l,d=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),f=d.length;for(e=0;e0?d[e-1]:null,(r=e0?d[e-1]:null)&&!n.model.skip&&(a.model.controlPointPreviousX=a.model.x-(l=(a.model.x-n.model.x)/3),a.model.controlPointPreviousY=a.model.y-l*a.mK),r&&!r.model.skip&&(a.model.controlPointNextX=a.model.x+(l=(r.model.x-a.model.x)/3),a.model.controlPointNextY=a.model.y+l*a.mK))},i.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},i.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},i.niceNum=function(t,e){var n=Math.floor(i.log10(t)),a=t/Math.pow(10,n);return(e?a<1.5?1:a<3?2:a<7?5:10:a<=1?1:a<=2?2:a<=5?5:10)*Math.pow(10,n)},i.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},i.getRelativePosition=function(t,e){var n,a,r=t.originalEvent||t,o=t.target||t.srcElement,s=o.getBoundingClientRect(),u=r.touches;u&&u.length>0?(n=u[0].clientX,a=u[0].clientY):(n=r.clientX,a=r.clientY);var c=parseFloat(i.getStyle(o,"padding-left")),l=parseFloat(i.getStyle(o,"padding-top")),d=parseFloat(i.getStyle(o,"padding-right")),f=parseFloat(i.getStyle(o,"padding-bottom")),p=s.bottom-s.top-l-f;return{x:n=Math.round((n-s.left-c)/(s.right-s.left-c-d)*o.width/e.currentDevicePixelRatio),y:a=Math.round((a-s.top-l)/p*o.height/e.currentDevicePixelRatio)}},i.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},i.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},i._calculatePadding=function(t,e,n){return(e=i.getStyle(t,e)).indexOf("%")>-1?n/parseInt(e,10):parseInt(e,10)},i._getParentNode=function(t){var e=t.parentNode;return e&&e.host&&(e=e.host),e},i.getMaximumWidth=function(t){var e=i._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,a=n-i._calculatePadding(e,"padding-left",n)-i._calculatePadding(e,"padding-right",n),r=i.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},i.getMaximumHeight=function(t){var e=i._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,a=n-i._calculatePadding(e,"padding-top",n)-i._calculatePadding(e,"padding-bottom",n),r=i.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},i.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},i.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var a=t.canvas,r=t.height,i=t.width;a.height=r*n,a.width=i*n,t.ctx.scale(n,n),a.style.height||a.style.width||(a.style.height=r+"px",a.style.width=i+"px")}},i.fontString=function(t,e,n){return e+" "+t+"px "+n},i.longestText=function(t,e,n,a){var r=(a=a||{}).data=a.data||{},o=a.garbageCollect=a.garbageCollect||[];a.font!==e&&(r=a.data={},o=a.garbageCollect=[],a.font=e),t.font=e;var s=0;i.each(n,function(e){null!=e&&!0!==i.isArray(e)?s=i.measureText(t,r,o,s,e):i.isArray(e)&&i.each(e,function(e){null==e||i.isArray(e)||(s=i.measureText(t,r,o,s,e))})});var u=o.length/2;if(u>n.length){for(var c=0;ca&&(a=i),a},i.numberOfLabelLines=function(t){var e=1;return i.each(t,function(t){i.isArray(t)&&t.length>e&&(e=t.length)}),e},i.color=a?function(t){return t instanceof CanvasGradient&&(t=r.global.defaultColor),a(t)}:function(t){return console.error("Color.js not found!"),t},i.getHoverColor=function(t){return t instanceof CanvasPattern?t:i.color(t).saturate(.5).darken(.1).rgbString()}}},nSDx:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){function t(){}return t.prototype.transform=function(t){return a.isUndefined(t)||a.isNull(t)?"-":t},t}()},nYho:function(t,e,n){(function(t){var a;!function(r){"object"==typeof global&&global;var i,o=2147483647,s=36,u=1,c=26,l=38,d=700,f=72,p=128,h="-",g=/^xn--/,m=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,y={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=s-u,x=Math.floor,_=String.fromCharCode;function T(t){throw RangeError(y[t])}function w(t,e){for(var n=t.length,a=[];n--;)a[n]=e(t[n]);return a}function S(t,e){var n=t.split("@"),a="";return n.length>1&&(a=n[0]+"@",t=n[1]),a+w((t=t.replace(b,".")).split("."),e).join(".")}function O(t){for(var e,n,a=[],r=0,i=t.length;r=55296&&e<=56319&&r65535&&(e+=_((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+_(t)}).join("")}function C(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function k(t,e,n){var a=0;for(t=n?x(t/d):t>>1,t+=x(t/e);t>v*c>>1;a+=s)t=x(t/v);return x(a+(v+1)*t/(t+l))}function N(t){var e,n,a,r,i,l,d,g,m,b,y,v=[],_=t.length,w=0,S=p,O=f;for((n=t.lastIndexOf(h))<0&&(n=0),a=0;a=128&&T("not-basic"),v.push(t.charCodeAt(a));for(r=n>0?n+1:0;r<_;){for(i=w,l=1,d=s;r>=_&&T("invalid-input"),((g=(y=t.charCodeAt(r++))-48<10?y-22:y-65<26?y-65:y-97<26?y-97:s)>=s||g>x((o-w)/l))&&T("overflow"),w+=g*l,!(g<(m=d<=O?u:d>=O+c?c:d-O));d+=s)l>x(o/(b=s-m))&&T("overflow"),l*=b;O=k(w-i,e=v.length+1,0==i),x(w/e)>o-S&&T("overflow"),S+=x(w/e),w%=e,v.splice(w++,0,S)}return I(v)}function R(t){var e,n,a,r,i,l,d,g,m,b,y,v,w,S,I,N=[];for(v=(t=O(t)).length,e=p,n=0,i=f,l=0;l=e&&yx((o-n)/(w=a+1))&&T("overflow"),n+=(d-e)*w,e=d,l=0;lo&&T("overflow"),y==e){for(g=n,m=s;!(g<(b=m<=i?u:m>=i+c?c:m-i));m+=s)N.push(_(C(b+(I=g-b)%(S=s-b),0))),g=x(I/S);N.push(_(C(g,0))),i=k(n,w,a==r),n=0,++a}++n,++e}return N.join("")}i={version:"1.3.2",ucs2:{decode:O,encode:I},decode:N,encode:R,toASCII:function(t){return S(t,function(t){return m.test(t)?"xn--"+R(t):t})},toUnicode:function(t){return S(t,function(t){return g.test(t)?N(t.slice(4).toLowerCase()):t})}},void 0===(a=(function(){return i}).call(e,n,e,t))||(t.exports=a)}()}).call(this,n("YuTi")(t))},nhM1:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DimensionsHelper=function(){function t(){}return t.prototype.getDimensions=function(t){return t.getBoundingClientRect()},a([r.Injectable()],t)}()},nkY7:function(t,e,n){"use strict";function a(t){return t&&"function"==typeof t.schedule}n.d(e,"a",function(){return a})},nmKl:function(t,e){t.exports='\n \n \n \n Toggle navigation\n Pengalih navigasi\n \n \n Dashboard\n Dasbor\n \n \n Cluster\n Klaster\n \n \n Hosts\n Hos\n \n \n Monitors\n Monitor\n \n \n OSDs\n OSD\n \n \n Configuration\n Konfigurasi\n \n \n CRUSH map\n peta CRUSH\n \n \n Manager modules\n Modul Ceph Manajer\n \n \n Logs\n Log\n \n \n Alerts\n Peringatan\n \n \n Silences\n Silences\n \n \n Pools\n Pool\n \n \n Block\n Blok\n \n \n Images\n Image\n \n \n Mirroring\n Pencerminan\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Sistemfile\n \n \n Object Gateway\n Gerbang Objek\n \n \n Daemons\n Daemon\n \n \n Users\n Pengguna\n \n \n Buckets\n Buket\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Menerima data \n untuk \n \n \n . Mohon tunggu...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Menampilkan data \n sebelumnya \nuntuk \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Gagal memuat data \n untuk\n \n \n .\nMohon periksa kesehatan klaster.\n \n \n \n Back\n Kembali\n \n \n Select a Language\n Pilih bahasa\n \n \n Loading panel data...\n Memuat data panel...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Silakan merujuk ke\n dokumentasi \n tentang\ncara mengonfigurasi dan mengaktifkan fungsi pemantauan.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Dasbor Grafana tidak ada. Mohon merujuk ke\n dokumentasi \n tentang cara\nmenambahkan dasbor ke Grafana.\n \n \n \n Grafana Time Picker\n Pemilih Waktu Grafana\n \n \n Reset Settings\n Reset Pengaturan\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Gagal memuat data.\n \n \n selected\n dipilih\n X selected\n \n \n found\n ditemukan\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Edit\n \n \n Name\n Nama\n \n \n Description\n Deskripsi\n \n \n Long description\n Deskripsi lengkap\n \n \n Default\n Bawaan\n \n \n Daemon default\n Daemon bawaan\n \n \n Services\n Layanan\n \n \n Values\n Nilai\n \n \n The entered value is too high! It must not be greater than \n .\n \n Nilai yang dimasukkan terlalu tinggi! Tidak boleh lebih besar dari \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Nilai yang dimasukkan terlalu rendah! Tidak boleh lebih rendah dari \n .\n \n \n \n Save\n Simpan\n \n \n CRUSH map viewer\n Penampil peta CRUSH\n \n \n Hosts List\n Daftar Hos\n \n \n Overall Performance\n Performa Keseluruhan\n \n \n No entries found\n Entri tidak ditemukan\n \n \n Cluster Logs\n Log Klaster\n \n \n Audit Logs\n Log Audit\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Memuat konfigurasi...\n \n \n The configuration could not be loaded.\n Konfigurasi tidak dapat dimuat.\n \n \n Edit Manager module\n Edit modul Ceph Manajer\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Nilai yang dimasukkan bukan UUID yang valid, cth: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Nilai yang dimasukkan harus alamat IP yang valid.\n \n \n This field is required.\n Isian ini tidak boleh kosong.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Nilai yang dimasukkan terlalu tinggi! Harus lebih kecil atau sama dengan \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Nilai yang dimasukkan terlalu rendah! Harus lebih besar atau sama dengan \n .\n \n \n \n The entered value needs to be a number.\n Nilai yang dimasukkan harus berupa angka.\n \n \n The entered value needs to be a number or decimal.\n Nilai yang dimasukkan harus berupa angka atau desimal.\n \n \n Update\n Perbarui\n \n \n Status\n Status\n \n \n Cluster ID\n ID Klaster\n \n \n monmap modified\n monmap diubah\n \n \n monmap epoch\n monmap epoch\n \n \n quorum con\n kuorum con\n \n \n quorum mon\n kuorum mon\n \n \n required con\n con yang dibutuhkan\n \n \n required mon\n mon yang dibutuhkan\n \n \n In Quorum\n Memenuhi Kuorum\n \n \n Not In Quorum\n Tidak dalam Kuorum\n \n \n Cancel\n Batal\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Anda yakin ingin \n dari \n ?\n \n \n \n Yes, I am sure.\n Ya, saya yakin.\n \n \n Cluster-wide OSD Flags\n Flag OSD Klaster\n \n \n Submit\n Kirim\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Tingkat lanjut...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Prioritas pemulihan OSD\n \n \n Priority\n Prioritas\n \n \n Customize priority values\n Ubah nilai prioritas\n \n \n This field is required!\n Isian ini harus diisi!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Nilai yang dimasukkan terlalu tinggi! Tidak boleh lebih tinggi dari \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Nilai yang dimasukkan terlalu rendah! Tidak boleh lebih rendah dari \n .\n \n \n \n Reweight OSD\n Ubah bobot OSD\n \n \n The value needs to be between 0 and 1.\n Nilai harus antara 0 dan 1.\n \n \n Reweight\n Ubah bobot\n \n \n OSDs \n Scrub\n \n OSD \n Scrub\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Dalam } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Anda akan menerapkan\n scrub pada\nOSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {dalam } }\n \n \n OSDs List\n Daftar OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n OSD \n \n akan ditandai\n \n \n jika ingin melanjutkan.\n \n \n \n The OSD is not safe to destroy!\n OSD tidak aman untuk dihancurkan!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n OSD \n \n akan\n \n \n jika ingin melanjutkan.\n \n \n \n Details\n Detail\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Nilai\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Tutup\n \n \n Delete\n Hapus\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Kesehatan\n \n \n Statistics\n Statistik \n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Mohon periksa \n dokumentasi \n \ntentang cara mengonfigurasi dan aktfikan fungsi manajemen NFS Ganesha.\n \n \n \n Clients\n Klien\n \n \n Any client can access\n Semua klien dapat mengakses\n \n \n Addresses\n Alamat\n \n \n Required field\n Wajib diisi\n \n \n Must contain one or more comma-separated values\n Harus mengandung satu atau lebih nilai yang dipisahkan koma\n \n \n For example:\n Contoh:\n \n \n Access Type\n Tipe Akses\n \n \n Squash\n Squash\n \n \n Add clients\n Tambah klien\n \n \n Loading...\n Memuat...\n \n \n -- No cluster available --\n -- Klaster tidak tersedia --\n \n \n -- Select the cluster --\n -- Pilih klaster --\n \n \n Add daemon\n Tambah daemon\n \n \n Storage Backend\n Backend Penyimpanan\n \n \n -- No data pools available --\n -- Tidak ada pool data tersedia --\n \n \n -- Select the storage backend --\n -- Pilih backend penyimpanan --\n \n \n Object Gateway User\n Pengguna Gerbang Objek\n \n \n -- No users available --\n -- Pengguna tidak tersedia --\n \n \n -- Select the object gateway user --\n -- Pilih pengguna gerbang objek --\n \n \n CephFS User ID\n ID Pengguna CephFS\n \n \n -- No clients available --\n -- Klien tidak tersedia --\n \n \n -- Select the cephx client --\n -- Pilih klien cephx --\n \n \n CephFS Name\n Nama CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Label Keamanan\n \n \n Enable security label\n Aktifkan label keamanan\n \n \n CephFS Path\n CephFS Path\n \n \n Path need to start with a \'/\' and can be followed by a word\n Lintasan atau path harus dimulai dengan \'/\' dan diikuti dengan kata\n \n \n New directory will be created\n Direktori baru akan dibuat\n \n \n Path\n Path\n \n \n Path can only be a single \'/\' or a word\n Path hanya boleh berupa \'/\' atau kata\n \n \n New bucket will be created\n Buket baru akan dibuat\n \n \n NFS Protocol\n Protokol NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternatif akses untuk mount \n NFSv3\n (tidak boleh diawali /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Klien mungkin tidak dapat mount subdirektori (cth. jika Tag = foo, klien mungkin tidak bisa mount foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Dengan menggunakan opsi Tag yang berbeda, Path yang sama akan diekspor beberapa kali.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Posisi dari \n NFS v4\n yang diekspor ini menempati \n Pseudo FS \n (ini harus unik).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Dengan menggunakan opsi Pseudo yang berbeda, Path yang sama akan diekspor beberapa kali.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Tipe akses tidak tersedia --\n \n \n -- Select the access type --\n -- Pilih tipe akses --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Squash tidak tersedia --\n \n \n --Select what kind of user id squashing is performed --\n -- Pilih jenis squashing id pengguna yang akan dilakukan --\n \n \n Transport Protocol\n Protokol Transport\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Selamat datang di Ceph!\n The welcome message on the login page\n \n \n Username is required\n Nama pengguna harus diisi\n \n \n Password is required\n Kata sandi harus diisi\n \n \n Login\n Masuk\n \n \n Sorry, the user does not exist in Ceph.\n Maaf, pengguna tidak terdaftar di Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Kembali ke Halaman Masuk \n \n . Anda akan dikeluarkan dari Penyedia Identitas saat Anda mencoba masuk.\n \n \n \n Forbidden\n Terlarang\n \n \n Sorry, you are not allowed to see what you were looking for.\n Maaf, Anda tidak dizinkan melihat hal yang Anda inginkan.\n \n \n Sorry, we could not find what you were looking for\n Maaf, kami tidak dapat menemukan yang Anda cari\n \n \n Remove all\n Hapus semua\n \n \n Recent Notifications\n Notifikasi terkini\n \n \n There are no background tasks.\n Tidak ada tugas latar belakang.\n \n \n Background Tasks\n Tugas Latar Belakang\n \n \n Help\n Bantuan\n \n \n Documentation\n Dokumentasi \n \n \n API\n API\n \n \n About\n Tentang\n \n \n Dashboard Settings\n Pengaturan Dasbor\n \n \n User management\n Manajemen Pengguna\n \n \n Logged in user\n Pengguna masuk\n \n \n Signed in as\n \n \n \n \n Masuk sebagai\n \n \n \n \n \n \n Sign out\n Keluar\n \n \n Name...\n Nama...\n \n \n The chosen name is already in use.\n Nama yang dipilih sudah digunakan.\n \n \n Description...\n Deskripsi...\n \n \n Permissions\n Izin\n \n \n Roles\n Peran\n \n \n Username\n Nama pengguna\n \n \n Password\n Kata sandi\n \n \n Confirm password\n Konfirmasi kata sandi\n \n \n Password confirmation doesn\'t match the password.\n Konfirmasi kata sandi tidak sesuai dengan kata sandi.\n \n \n Full name\n Nama lengkap\n \n \n Email\n Email\n \n \n Invalid email.\n Email tidak valid.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Anda akan menghapus izin "pengguna baca / perbarui" dari diri Anda sendiri.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Jika melanjutkan, Anda tidak akan lagi dapat menambahkan atau menghapus peran dari pengguna manapun.\n \n \n Are you sure you want to continue?\n Anda yakin ingin melanjutkan?\n \n \n Performance counters not available\n Penghitung kinerja tidak tersedia\n \n \n Attributes (OSD map)\n Atribut (peta OSD)\n \n \n Metadata not available\n Metadata tidak tersedia\n \n \n Metadata\n Metadata\n \n \n Performance counter\n Penghitung kinerja\n \n \n Histogram not available: \n \n \n Histogram tidak tersedia: \n \n \n \n \n Writes\n Tulis\n \n \n Reads\n Baca\n \n \n Histogram\n Histogram\n \n \n Performance Details\n Detail Performa\n \n \n Current values\n Nilai saat ini\n \n \n Type\n Tipe\n \n \n Min\n Min\n \n \n Max\n Maks\n \n \n Flags\n Flag\n \n \n Source\n Sumber\n \n \n Level\n Level\n \n \n Can be updated at runtime (editable)\n Boleh diperbarui saat dijalankan (bisa diedit)\n \n \n Tags\n Tag\n \n \n Enum values\n Nilai Enum\n \n \n See also\n Lihat juga\n \n \n Cluster Status\n Status Klaster\n \n \n Manager Daemons\n Manajer Daemon\n \n \n Object Gateways\n Gerbang Objek\n \n \n Metadata Servers\n Server Metadata\n \n \n iSCSI Gateways\n Gateway iSCSI\n \n \n Client IOPS\n IOPS klien\n \n \n Client Throughput\n Throughput Pengguna\n \n \n Client Read/Write\n Baca/Tulis Klien\n \n \n Recovery Throughput\n Throughput Pemulihan\n \n \n Scrub\n Scrub\n \n \n Performance\n Kinerja\n \n \n Raw Capacity\n Kapasitas mentah\n \n \n Objects\n Objek\n \n \n PGs per OSD\n PG per OSD\n \n \n PG Status\n Status PG\n \n \n Capacity\n Kapasitas\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Lihat \n \n Log untuk detil lainnya.\n \n \n \n Ranks\n Peringkat\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Klien: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Pindahkan image ke tempat sampah\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Untuk pindahkan \n \n /\n \n ke tempat sampah,\ntekan \n Pindah Image \n . Anda juga dapat memilih tanggal kedaluwarsa.\n \n \n \n Protection expires at\n Proteksi berakhir pada\n \n \n NOT PROTECTED\n TIDAK DIPROTEKSI\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Format tanggal salah. Mohon gunakan "TTTT-BB-HH JJ:mm:dd".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Proteksi telah kedaluarsa. Mohon pilih tanggal masa mendatang atau kosongkan.\n \n \n Move Image\n Pindahkan Image\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Ikhtisar\n \n \n Targets\n Target\n \n \n Discovery Authentication\n Otentikasi Discovery\n \n \n User\n Pengguna\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nama pengguna harus terdiri dari 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Pengguna Bersama\n \n \n Mutual Password\n Kata sandi bersama\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Mohon cek ke \n dokumentasi \n \ntentang cara mengonfigurasi dan mengaktifkan fungsi manajemen iSCSI Target.\n \n \n \n Available information:\n Informasi tersedia:\n \n \n iSCSI Targets not available\n iSCSI Target tidak tersedia\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Hanya tersedia untuk image RBD dengan \n fast-diff\n yang diaktifkan.\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Pool Data\n \n \n Created\n Dibuat\n \n \n Size\n Ukuran\n \n \n Object size\n Ukuran objek\n \n \n Features\n Fitur\n \n \n Provisioned\n Disiapkan\n \n \n N/A\n N/A\n \n \n Total provisioned\n Total disiapkan\n \n \n Striping unit\n Unit setrip\n \n \n Striping count\n Jumlah setrip\n \n \n Parent\n Induk\n \n \n Block name prefix\n Awalan nama blok\n \n \n Order\n Urutan\n \n \n Snapshots\n Snapshot\n \n \n Image\n Image\n \n \n This setting overrides the global value\n Pengaturan ini akan membatalkan nilai global\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Ini adalah nilai global. Tidak ada nilai yang diset untuk image ini.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' dan \'@\' tidak diperbolehkan.\n \n \n -- No rbd pools available --\n -- Tidak ada pool rbd tersedia --\n \n \n -- Select a pool --\n -- Pilih pool --\n \n \n Use a dedicated data pool\n Gunakan pool data terdedikasi\n \n \n Data pool\n Pool data\n \n \n Dedicated pool that stores the object-data of the RBD.\n Pool terdedikasi yang menyimpan data-objek dari RBD.\n \n \n e.g., 10GiB\n cth. 10GiB\n \n \n You have to increase the size.\n Anda harus menaikkan ukuran.\n \n \n Advanced\n Tingkat lanjut\n \n \n Striping\n Setrip\n \n \n Stripe unit\n Unit setrip\n \n \n -- Select stripe unit --\n -- Pilih ukuran setrip --\n \n \n This field is required because stripe count is defined!\n Isian ini harus diisi karena jumlah setrip telah ditentukan!\n \n \n Stripe unit is greater than object size.\n Unit setrip lebih besar dari ukuran objek.\n \n \n Stripe count\n Jumlah setrip\n \n \n This field is required because stripe unit is defined!\n Isian wajib diisi karena unit setrip didefinisikan!\n \n \n Stripe count must be greater than 0.\n Jumlah setrip harus lebih besar dari 0.\n \n \n \n RBD Snapshot\n \n \n Snapshot RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Ganti nama} other {Buat} }\n \n \n \n Snapshot\n \n \n Snapshot\n \n \n \n PROTECTED\n DIPROTEKSI\n \n \n UNPROTECTED\n TIDAK DIPROTEKSI\n \n \n You are about to rollback\n Anda akan mengembalikan semula\n \n \n Purge Trash\n Kosongkan Tempah Sampah\n \n \n To purge, select one or All images and click\n Untuk menghapus, pilih satu atau Semua image dan pilih\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Nama Pool...\n \n \n All\n Semua\n \n \n Restore Image\n Pulihkan Image\n \n \n To restore\n Untuk memulihkan\n \n \n type the image\'s new name and click\n ketik nama baru image dan pilih\n \n \n New Name\n Nama Baru\n \n \n Expired at\n Kedaluwarsa pada\n \n \n Protected until\n Diproteksi hingga\n \n \n This image is protected until \n .\n \n Image ini diproteksi hingga \n .\n \n \n \n Trash\n Tempat sampah\n \n \n iSCSI Topology\n Topologi iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Mengganti parameter ini dari nilai bawaan biasanya tidak diperlukan.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Pengaturan\n \n \n Backstore\n Backstore\n \n \n Confirm\n Konfirmasi\n \n \n Advanced Settings\n Pengaturan Lanjut\n \n \n Target IQN\n Target IQN\n \n \n IQN has wrong pattern.\n Pola IQN salah.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Suatu IQN memiliki notasi seperti ini \'iqn.$tahun-$bulan.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Contoh: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Informasi lainnya\n \n \n This target has modified advanced settings.\n Pengaturan lanjutan target ini telah dimodifikasi.\n \n \n Portals\n Portal\n \n \n At least \n gateways are required.\n \n Dibutuhkan min \n gerbang/gateway.\n \n \n \n Add portal\n Tambahkan portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Pengaturan Image ini telah dimodifikasi.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Tambahkan image\n \n \n ACL authentication\n Otentikasi ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Inisiator\n \n \n Initiator\n Inisiator\n \n \n Client IQN\n Klien IQN\n \n \n Initiator IQN needs to be unique.\n Inisiator IQN harus unik.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nama pengguna harus terdiri atas 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Inisiator termasuk ke dalam grup. Image akan dikonfigurasi di dalam grup.\n \n \n No items added.\n Tidak ada yang ditambahkan.\n \n \n Add initiator\n Tambahkan inisiator\n \n \n Groups\n Grup\n \n \n Group\n Grup\n \n \n Add group\n Tambahkan grup\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Konfigurasi RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Menghapus nilai konfigurasi lokal. Nilai konfigurasi induk akan diturun dan digunakan.\n \n \n The mininum value is 0\n Nilai minimum adalah 0\n \n \n Issues\n Masalah\n \n \n Syncing\n Menyinkronkan\n \n \n Ready\n Siap\n \n \n Edit pool mirror mode\n Edit mode pencerminan pool\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Untuk mengubah mode pencerminan pool\xa0\n \n \n , pilih mode baru dari daftar dan klik\xa0\n Perbarui\n .\n \n \n \n Mode\n Mode\n \n \n Peer clusters must be removed prior to disabling mirror.\n Klaster mitra harus dihapus sebelum menonaktfikan pencerminan.\n \n \n \n \n pool mirror peer\n \n \n \nmitra pencerminan pool\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Tambah} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n pool\natribut mitra pencerminan untuk pool \n \n \n dan klik \n Kirim\n .\n \n \n \n Cluster Name\n Nama Klaster\n \n \n The cluster name is not valid.\n Nama klaster tidak valid.\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n CephX ID tidak valid.\n \n \n Monitor Addresses\n Alamat Monitor\n \n \n Comma-delimited addresses...\n Alamat dengan pemisah-koma...\n \n \n The monitory address is not valid.\n Alamat monitor tidak valid.\n \n \n CephX Key\n CephX Key\n \n \n Base64-encoded key...\n Base64-encoded key...\n \n \n CephX key must be base64 encoded.\n Kunci CephX harus base64 encoded.\n \n \n Pools List\n Daftar pool\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Nama hanya boleh terdiri dari alfanumerik, tanda hubung, dan garis bawah.\n \n \n The chosen erasure code profile name is already in use.\n Nama profil erasure code sudah digunakan.\n \n \n Plugin\n Plugin\n \n \n Data chunks (k)\n Pecahan data (k)\n \n \n Must be equal to or greater than 2.\n Harus sama dengan atau lebih dari 2.\n \n \n Coding chunks (m)\n Pecahan Coding (m)\n \n \n Must be equal to or greater than 1.\n Harus sama dengan atau lebih dari 1.\n \n \n Durability estimator (c)\n Penduga daya tahan (c)\n \n \n Locality (l)\n Lokalitas (l)\n \n \n Crush failure domain\n Domain kegagalan Crush\n \n \n Crush Locality\n Lokalitas Crush\n \n \n None\n Tidak ada\n \n \n Technique\n Teknik\n \n \n Packetsize\n Ukuran paket\n \n \n Crush root\n Crush root\n \n \n Crush device class\n Kelas perangkat Crush\n \n \n any\n apa saja\n \n \n Directory\n Direktori\n \n \n The chosen Ceph pool name is already in use.\n Nama pool Ceph yang dipilih sudah digunakan.\n \n \n Pool type\n Jenis pool\n \n \n -- Select a pool type --\n -- Pilih jenis pool --\n \n \n Placement groups\n Grup penempatan\n \n \n At least one placement group is needed!\n Dibutuhkan setidaknya satu grup penempatan!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Klaster Anda tidak dapat menangani PG sebanyak ini. Mohon hitung ulang jumlah PG yang dibutuhkan.\n \n \n Calculation help\n Bantuan penghitungan\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Pengaturan PG saat ini telah dihitung untuk Anda, Anda\nharus memastikan nilai tersebut sesuai kebutuhan sebelum mengajukan.\n \n \n Crush ruleset\n Aturan CRUSH\n \n \n -- Select a crush rule --\n -- Pilih aturan crush --\n \n \n Crush rule\n Aturan crush\n \n \n Crush steps\n Crush steps\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Aturan crush tidak dapat digunakan di klaster ini karena\njumlah OSD terlalu sedikit untuk memenuhi syarat minimal OSD untuk aturan ini.\n \n \n Replicated size\n Jumlah replikasi\n \n \n Minimum: \n \n \n Minimum: \n \n \n \n \n Maximum: \n \n \n Maksimum: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Ukuran yang dimasukkan di luar jangkauan. Nilai yang valid\ndari \n hingga \n .\n \n \n \n Erasure code profile\n Profil erasure code\n \n \n -- No erasure code profile available --\n -- Tidak ada profil erasure code --\n \n \n -- Select an erasure code profile --\n -- Pilih profil erasure code --\n \n \n EC Overwrites\n EC Overwrites\n \n \n Applications\n Aplikasi\n \n \n Compression\n Kompresi\n \n \n Algorithm\n Algoritma\n \n \n -- No erasure compression algorithm available --\n -- Tidak ada algoritma pengompresian erasure --\n \n \n Minimum blob size\n Ukuran blob minimum\n \n \n e.g., 128KiB\n cth. 128KiB\n \n \n Value should be greater than 0\n Nilai harus lebih besar dari 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Ukuran maksimum blob\n \n \n e.g., 512KiB\n cth. 512KiB\n \n \n Value should be greater than the minimum blob size\n Nilai harus lebih besar dari ukuran minimum blob\n \n \n Ratio\n Rasio\n \n \n Compression ratio\n Rasio kompresi\n \n \n Value should be between 0.0 and 1.0\n Nilai harus antara 0.0 dan 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Tidak boleh membuat pool RBD dengan nama yang mengandung \'/\'.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Mohon ganti atau hapus \'rbd\' dari daftar aplikasi.\n \n \n Cache Tiers Details\n Detil Cache Bertingkat\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Silakan cek kembali \n dokumentasi \n \ntentang cara mengonfigurasi dan mengaktifkan fungsi manajemen Gerbang Objek.\n \n \n \n Daemons List\n Daftar Daemon\n \n \n Performance Counters\n Penghitung Performa\n \n \n Loading bucket data...\n Memuat data buket...\n \n \n The bucket data could not be loaded.\n Buket data tidak dapat dimuat.\n \n \n Id\n Id\n \n \n The value is not valid.\n Nilai tidak valid.\n \n \n Owner\n Pemilik\n \n \n -- Select a user --\n -- Pilih pengguna --\n \n \n ID\n ID\n \n \n Index type\n Jenis indeks\n \n \n Placement rule\n Aturan penempatan\n \n \n Marker\n Penanda\n \n \n Maximum marker\n Penanda maksimum\n \n \n Version\n Versi\n \n \n Master version\n Versi Master\n \n \n Modification time\n Modifikasi waktu\n \n \n Zonegroup\n Zona grup\n \n \n Bucket quota\n Kuota Buket\n \n \n Enabled\n Diaktifkan\n \n \n Maximum size\n Ukuran maksimum\n \n \n Unlimited\n Tak terbatas\n \n \n Maximum objects\n Objek maksimum\n \n \n -- Select a username --\n -- Pilih nama pengguna --\n \n \n Auto-generate key\n Kunci otomatis-dibuat\n \n \n Access key\n Kunci akses\n \n \n Secret key\n Kunci rahasia\n \n \n Email address\n Alamat email\n \n \n Suspended\n Dihentikan\n \n \n System\n Sistem\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {Tidak} 1 {Ya} }\n \n \n Maximum buckets\n Buket maksimum\n \n \n Subusers\n Subpengguna\n \n \n Capabilities\n Kemampuan\n \n \n User quota\n Kuota pengguna\n \n \n Show\n Tampilkan\n \n \n Keys\n Kunci\n \n \n -- Select a type --\n -- Pilih tipe --\n \n \n Permission\n Izin\n \n \n -- Select a permission --\n -- Pilih izin --\n \n \n Subuser\n Subpengguna\n \n \n The chosen subuser ID is already in use.\n ID subpengguna sudah digunakan.\n \n \n read, write\n baca, tulis\n \n \n full\n penuh\n \n \n Swift key\n Kunci Swift\n \n \n Auto-generate secret\n Sandi otomatis-dibuat\n \n \n Loading user data...\n Memuat data pengguna...\n \n \n The user data could not be loaded.\n Data pengguna tidak dapat dimuat.\n \n \n The chosen user ID is already in use.\n ID pengguna yang dipilih sudah digunakan.\n \n \n This is not a valid email address.\n Ini bukan alamat email yang valid.\n \n \n The chosen email address is already in use.\n Alamat email yang dipilih sudah digunakan.\n \n \n Max. buckets\n Maks. buket\n \n \n The entered value must be >= 0.\n Nilai yang dimasukkan harus >= 0.\n \n \n S3 key\n Kunci S3\n \n \n There are no subusers.\n Tidak ada sub-pengguna.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Kunci tidak ditemukan.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Kemampuan tidak ada.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Ukuran tak terbatas\n \n \n Max. size\n Ukuran maks.\n \n \n Unlimited objects\n Objek tak terbatas\n \n \n Max. objects\n Objek maks.\n \n \n Current\n Terkini\n \n \n Updated discovery authentication\n Otentikasi penemuan telah diperbarui\n \n \n There are no portals available.\n Tidak ada portal yang tersedia.\n \n \n There are no images available.\n Tidak ada image yang tersedia.\n \n \n There are no images available. Please make sure you add an image to the target.\n Tidak ada image yang tersedia. Mohon pastikan Anda telah menambahkan image ke target.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Tidak ada inisiator tersedia. Mohon pastikan Anda telah menambahkan inisiator ke target.\n \n \n target\n target\n \n \n Target\n Target\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Keadaan\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Baca Bytes\n \n \n Write Bytes\n Tulis Bytes\n \n \n Read Ops\n Ops Baca\n \n \n Write Ops\n Ops Tulis\n \n \n A/O Since\n A/O Sejak\n \n \n Instance\n Instance\n \n \n Hostname\n Nama hos\n \n \n Issue\n Isu\n \n \n Progress\n Kemajuan\n \n \n Disabled\n Dimatikan\n \n \n Edit Mode\n Mode Edit\n \n \n Add Peer\n Tambahkan Mitra\n \n \n Edit Peer\n Edit Mitra\n \n \n Delete Peer\n Hapus Mitra\n \n \n Leader\n Pemimpin\n \n \n # Local\n # Lokal\n \n \n # Remote\n # Jauh\n \n \n mirror peer\n mitra pencerminan\n \n \n Key\n Kunci\n \n \n RBD\n RBD\n \n \n Deep flatten\n Perataan mendalam\n \n \n Layering\n Lapisan\n \n \n Exclusive lock\n Kunci eksklusif\n \n \n Object map (requires exclusive-lock)\n Peta objek (butuh kunci-eksklusif)\n \n \n Journaling (requires exclusive-lock)\n Penjurnalan (membutuhkan kunci-eksklusif)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Kembalikan snapshot RBD\n \n \n Rollback\n Kembalikan\n \n \n RBD snapshot\n Snapshot RBD\n \n \n Deleted At\n Dihapus pada\n \n \n id\n id\n \n \n type\n tipe\n \n \n state\n keadaan\n \n \n version\n versi\n \n \n Host\n Hos\n \n \n root\n induk\n \n \n Rank\n Peringkat\n \n \n Daemon\n Daemon\n \n \n Activity\n Aktivitas\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inode\n \n \n Usage\n Penggunaan\n \n \n Standby daemons\n Daemon siaga\n \n \n The value can be updated at runtime.\n Nilai dapat diperbarui saat runtime.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Daemon/klien tidak dapat mengambil nilai dari\nbasis data konfigurasi monitor. Kami tidak mengizinkan mengubah ini dari \'ceph config\nset ...\'. Pilihan ini harus dikonfigurasi melalui ceph.conf atau CLI.\n \n \n Option takes effect only during daemon startup.\n Pilihan hanya dapat bekerja selama daemon dimulai.\n \n \n Option only affects cluster creation.\n Pilihan hanya berpengaruh pada pembuatan klaster.\n \n \n Option only affects daemon creation.\n Pilihan hanya berpengaruh pada pembuatan daemon.\n \n \n Updated config option \n \n \n Perbarui opsi konfigurasi \n \n \n \n \n Service\n Layanan\n \n \n Current value\n Nilai saat ini\n \n \n Editable\n Dapat diedit\n \n \n Updated options for module "\n ".\n \n Opsi diperbarui untuk modul &quot;\n &quot;.\n \n \n \n Enable\n Aktifkan\n \n \n Disable\n Nonaktifkan\n \n \n Reconnecting, please wait ...\n Menghubungkan kembali, mohon tunggu...\n \n \n Public Address\n Alamat Publik\n \n \n Open Sessions\n Buka Sesi\n \n \n No In\n Tidak boleh Masuk\n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSD yang telah ditandai keluar tidak akan ditandai masuk saat mereka menyala\n \n \n No Out\n Tidak boleh Keluar\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD tidak akan otomatis ditandai keluar setelah interval dikonfigurasi\n \n \n No Up\n Tidak Nyala\n \n \n OSDs are not allowed to start\n OSD tidak diizinkan menyala\n \n \n No Down\n Tidak Mati\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Laporan kegagalan OSD sedang diabaikan sehingga monitor tidak akan menandai OSD mati\n \n \n Pause\n Jeda\n \n \n Pauses reads and writes\n Jeda baca dan tulis\n \n \n No Scrub\n Nonaktifkan Scrub\n \n \n Scrubbing is disabled\n Scrubbing dinonaktifkan\n \n \n No Deep Scrub\n Nonaktifkan Deep Scrub\n \n \n Deep Scrubbing is disabled\n Deep Scrubing dinonaktifkan\n \n \n No Backfill\n Tidak ada Penambalan\n \n \n Backfilling of PGs is suspended\n Penambalan PG dihentikan\n \n \n No Recover\n Tidak ada Pemulihan\n \n \n Recovery of PGs is suspended\n Pemulihan PG dihentikan\n \n \n Bitwise Sort\n Urutan Bitwise\n \n \n Use bitwise sort\n Gunakan urutan bitwise\n \n \n Purged Snapdirs\n Buang Snapdirs\n \n \n OSDs have converted snapsets\n OSD memiliki snapset yang dikonversi\n \n \n Recovery Deletes\n Pulihkan yang telah dihapus\n \n \n Deletes performed during recovery instead of peering\n Penghapusan dilakukan saat pemulihan bukan saat bermitra\n \n \n PG Log Hard Limit\n Batas Maks Log PG\n \n \n Puts a hard limit on pg log length\n Taruh batas maks pada panjang log pg\n \n \n Updated OSD Flags\n Flag OSD diperbarui\n \n \n out\n keluar\n \n \n in\n masuk\n \n \n down\n gugur\n \n \n Mark\n Tandai\n \n \n OSD lost\n OSD hilang\n \n \n marked lost\n ditandai hilang\n \n \n Purge\n Buang\n \n \n OSD\n OSD\n \n \n purged\n dibuang\n \n \n destroy\n hancurkan\n \n \n destroyed\n dihancurkan\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG\n \n \n Read bytes\n Bita baca\n \n \n Writes bytes\n Bita tulis\n \n \n Read ops\n Ops baca\n \n \n Write ops\n Ops tulis\n \n \n Mark OSD \n \n \n Tandai OSD \n \n \n \n \n Mark \n \n \n Tandai \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Maks Penambalan\n \n \n Recovery Max Active\n Maks Pemulihan Aktif\n \n \n Recovery Max Single Start\n Maks Menjalankan Pemulihan Tunggal\n \n \n Recovery Sleep\n Jeda Pemulihan\n \n \n Custom\n Ubahsuai\n \n \n Updated OSD recovery speed priority "\n "\n \n Piroritas &quot;\n &quot; kecepatan pemulihan OSD diperbarui.\n \n \n \n \n was initialized in the following OSD: \n \n \n \n telah diinisialisasi pada OSD berikut: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Tugas\n \n \n Severity\n Keparahan\n \n \n Started\n Dimulai\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Diperbarui\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Terpakai\n \n \n Avail.\n Tersedia\n \n \n Clean\n Bersih\n \n \n Working\n Bekerja\n \n \n Warning\n Peringatan\n \n \n Unknown\n Tidak diketahui\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n nyala\n \n \n no filesystems\n tidak ada filesistem\n \n \n active\n aktif\n \n \n standby\n siaga\n \n \n n/a\n n/a\n \n \n active daemon\n daemon aktif\n \n \n quorum\n kuorum\n \n \n The NFS Ganesha service is not configured.\n Layanan NFS Ganesha belum dikonfigurasi.\n \n \n Transport\n Transport\n \n \n CephFS User\n Pengguna CephFS\n \n \n CephFS Filesystem\n Filesistem CephFS\n \n \n (inherited from global config)\n (diturunkan dari konfig global)\n \n \n inherited from global config\n diturunkan dari konfig global\n \n \n -- Select what kind of user id squashing is performed --\n -- Pilih jenis squashing id pengguna yang akan dilakukan --\n \n \n There are no daemons available.\n Tidak ada daemon tersedia.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Mode Cache\n \n \n Min Evict Age\n Min Waktu Usir\n \n \n Min Flush Age\n Min Waktu Buang\n \n \n Target Max Bytes\n Target Maks Bita\n \n \n Target Max Objects\n Target Maks Objek\n \n \n No applications added\n Tidak ada aplikasi ditambahkan\n \n \n Applications limit reached\n Batas aplikasi tercapai\n \n \n A pool can only have up to four applications definitions.\n Sebuah pool hanya dapat memiliki empat definisi aplikasi.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Karakter diperbolehkan \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Panjang maksimum 128 karakter\n \n \n Filter or add applications\n Saring atau tambah aplikasi\n \n \n Add application\n Tambah aplikasi\n \n \n pool\n pool\n \n \n erasure code profile\n profil erasure code\n \n \n Replica Size\n Ukuran Replikasi\n \n \n Last Change\n Perubahan Terakhir\n \n \n Erasure Coded Profile\n Profil Erasure Code\n \n \n Crush Ruleset\n Aturan Crush\n \n \n Write bytes\n Bita tulis\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n buket\n \n \n Updated Object Gateway bucket "\n "\n \n Buket Gerbang Objek &quot;\n &quot; diperbarui\n \n \n \n Created Object Gateway bucket "\n "\n \n Buat buket Gerbang Objek &quot;\n &quot;\n \n \n \n buckets\n buket\n \n \n capability\n capability\n \n \n user\n pengguna\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Perbarui pengguna Gerbang Objek &quot\n ;&quot;\n \n \n \n Created Object Gateway user "\n "\n \n Buat pengguna Gerbang Objek &quot;\n &quot;\n \n \n \n users\n pengguna\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Cakupan\n \n \n Read\n Baca\n \n \n Create\n Buat\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Peran \'\n \' dibuat\n \n \n \n Updated role \'\n \'\n \n Peran \'\n \' diperbarui\n \n \n \n System Role\n Peran Sistem\n \n \n Deleted role \'\n \'\n \n Peran \'\n \' dihapus\n \n \n \n Created user "\n "\n \n Pengguna &quot;\n &quot; dibuat\n \n \n \n Update user\n Perbarui pengguna\n \n \n Continue\n Lanjutkan\n \n \n You were automatically logged out because your roles have been changed.\n Anda dikeluarkan otomatis karena peran Anda telah berubah.\n \n \n Updated user "\n "\n \n Perbarui pengguna &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Hapus pengguna &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Gagal menghapus pengguna &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Saat ini Anda masuk sebagai &quot;\n &quot;\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Tiap objek dipecah dalam pecahan-data, masing-masing disimpan pada OSD yang berbeda.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Hitung pecahan coding untuk tiap objek dan simpan pada OSD yang berbeda.\nJumlah pecahan data juga menjadi jumlah OSD yang diperbolehkan mati tanpa kehilangan data.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Plugin jerasure merupakan plugin paling umum dan fleksibel,\nserta merupakan plugin bawaan Ceph untuk pool erasure code.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Teknik yang lebih fleksibel yaitu reed_sol_van : cukup mengeset k\ndan m. Teknik cauchy_good bisa lebih cepat, namun Anda harus memilih ukuran paket\ndengan seksama. Semua reed_sol_r6_op, liberation, blaum_roth, liber8tion setara dengan RAID6\ndalam hal mereka hanya bisa diatur dengan m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n Penyandian dilakukan setiap saat pada ukuran bita paket.\nSulit untuk menentukan ukuran paket yang tepat.\nSilakan cek dokumentasi jerasure untuk informasi lebih mendalam.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Pada plugin jerasure, saat objek dengan erasure code disimpan pada\nbanyak OSD, pemulihan dari OSD yang hilang membutuhkan akses dari OSD lainnya.\nContoh, saat jerasure dikonfigurasi dengan k=8 dan m=4, saat satu OSD mati, maka pemulihan akan membutuhkan pembacaan dari tujuh OSD lainnya.\n\nPlugin lrc erasure code membuat pecahan paritas lokal agar dapat memulihkan \ndengan OSD yang lebih sedikit. Contoh, jika lrc dikonfigurasi dengan k=8, m=4, dan l=4, maka lrc akan\nmembuat pecahan paritas tambahan tiap empat OSD. Saat satu OSD mati, maka pemulihan dapat dilakukan hanya dengan 4 OSD, alih-alih 7 OSD.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Kelompokkan pecahan data dan coding ke dalam ukuran lokalitas. Controh\nuntuk k=4 dan m=2, saat lokalitas=3 dua grup dari tiga akan dibuat. Setiap set akan\ndipulihkan tanpa membaca pecahan dari set lainnya.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Tipe buket crush setiap set pecahan yang didefinisikan oleh l \nakan disimpan. Contoh, jika diset pada rak, tiap grup pecahan l akan \nditempatkan pada rak berbeda. Ini akan digunakan pada aturan step CRUSH yaitu \nmemilih tiap rak. Jika tidak diset, tidak akan ada pengelompokkan.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Plugin isa menghimpun perpustakaan ISA. Hanya dapat berjalan pada prosesor Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Plugin ISA memiliki dua jenis Reed Solomon.\nJika reed_sol_van diset, maka menjadi Vandermonde, jika cauchy diset, maka menjadi Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Plugin shec mengenkapsulasi banyak pustaka SHEC.\nHal ini agar ceph dapat dipulihkan dengan lebih efisien dari kode Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Jumlah potongan paritas yang masing-masing mencakup setiap potongan data \ndalam rentang perhitungannya. Nilai ini digunakan untuk perkiraan daya tahan. Contoh, jika c=2, \n2 OSD dapat mati tanpa kehilangan data.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Nama buket crush digunakan sebagai langkah pertama dari aturan CRUSH.\nContoh diambil langkah bawaan.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Memastikan tidak ada pecahan data berada pada buket dengan domain kegagalan\nyang sama. Contoh, saat domain gagal adalah hos, maka tidak ada pecahan data yang akan disimpan \npada hos yang sama. Aturan CRUSH seperti step chooseleaf hos akan digunakan untuk hal tersebut.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Batasi penempatan ke perangkat dengan kelas tertentu\n(cth. ssd atau hdd), menggunakan nama kelas perangkat crush pada peta CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Set nama direktori empat plugin erasure code akan dimuat.\n \n \n Allows all operations\n Izinkan semua operasi\n \n \n Allows only operations that do not modify the server\n Izinkan hanya untuk operasi yang tidak mengubah server\n \n \n Does not allow read or write operations, but allows any other operation\n Tidak diizinkan untuk operasi baca dan tulis, namun izinkan operasi lainnya\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Tidak diizinkan untuk baca, tulis, atau operasi lainnya yang mengubah atribut berkas atau konten direktori\n \n \n Allows no access at all\n Tidak diizinkan untuk semua hal\n \n \n -- Select the priority --\n -- Pilih prioritas --\n \n \n Low\n Rendah\n \n \n High\n Tinggi\n \n \n Last 5 minutes\n 5 menit terakhir\n \n \n Last 15 minutes\n 15 menit terakhir\n \n \n Last 30 minutes\n 30 menit terakhir\n \n \n Last 1 hour (Default)\n 1 Jam Terakhir (Bawaan)\n \n \n Last 3 hours\n 3 jam terakhir\n \n \n Last 6 hours\n 6 jam terakhir\n \n \n Last 12 hours\n 12 jam terakhir\n \n \n Last 24 hours\n 24 jam terakhir\n \n \n Yesterday\n Kemarin\n \n \n Today\n Hari ini\n \n \n Today so far\n Sejauh hari ini\n \n \n Day before yesterday\n Kemarin dulu\n \n \n Last 2 days\n 2 hari terakhir\n \n \n This day last week\n Hari ini minggu lalu\n \n \n Previous week\n Minggu lalu\n \n \n This week\n Minggu ini\n \n \n This week so far\n Sejauh minggu ini\n \n \n Last 7 days\n 7 hari terakhir\n \n \n Previous month\n Bulan lalu\n \n \n This month\n Bulan ini\n \n \n This month so far\n Sejauh bulan ini\n \n \n Last 30 days\n 30 hari terakhir\n \n \n Last 90 days\n 90 hari terakhir\n \n \n Last 6 months\n 6 bulan terakhir\n \n \n Last 1 year\n 1 tahun terakhir\n \n \n Previous year\n Tahun lalu\n \n \n This year\n Tahun ini\n \n \n This year so far\n Sejauh tahun ini\n \n \n Last 2 years\n 2 tahun terakhir\n \n \n Last 5 years\n 5 tahun terakhir\n \n \n Information\n Informasi\n \n \n No items selected.\n Tidak ada yang dipilih.\n \n \n Deselect item to select again\n Batalkan memilih untuk memilih ulang\n \n \n Selection limit reached\n Batas pemilihan tercapai\n \n \n Filter tags\n Tanda penyaringan\n \n \n Add badge\n Tambahkan lencana\n \n \n There are no items available.\n Tidak ada yang tersedia.\n \n \n Add\n Tambah\n \n \n Remove\n Remove\n \n \n Clone\n Klon\n \n \n Copy\n Salin\n \n \n Deep Scrub\n Deep Scrub\n \n \n Destroy\n Hancurkan\n \n \n Flatten\n Ratakan\n \n \n Mark Down\n Tandai Gugur\n \n \n Mark In\n Tandai Masuk\n \n \n Mark Lost\n Tandai Hilang\n \n \n Mark Out\n Tandai Keluar\n \n \n Protect\n Proteksi\n \n \n Rename\n Ubah nama\n \n \n Restore\n Pulihkan\n \n \n Move to Trash\n Pindahkan ke Tempat Sampah\n \n \n Unprotect\n Tidak diproteksi\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Dihapus\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Diklon\n \n \n Copied\n Disalin\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Ya\n \n \n No\n Tidak\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Kualitas Layanan atau QoS\n \n \n BPS Limit\n Limit BPS\n \n \n The desired limit of IO bytes per second.\n Limit IO bytes per detik yang diinginkan.\n \n \n IOPS Limit\n Limit IOPS\n \n \n The desired limit of IO operations per second.\n Limit operasi IO per detik yang diinginkan.\n \n \n Read BPS Limit\n Limit Baca BPS \n \n \n The desired limit of read bytes per second.\n Limit byte baca per detik yang diinginkan.\n \n \n Read IOPS Limit\n Limit IOPS Baca\n \n \n The desired limit of read operations per second.\n Limit operasi baca per detik yang diinginkan.\n \n \n Write BPS Limit\n Limit Tulis BPS\n \n \n The desired limit of write bytes per second.\n Limit tulis byte per detik yang diinginkan.\n \n \n Write IOPS Limit\n Limit IOPS Tulis\n \n \n The desired limit of write operations per second.\n Limit operasi tulis per detik yang diinginkan.\n \n \n BPS Burst\n Letupan BPS\n \n \n The desired burst limit of IO bytes.\n Limit yang diinginkan untuk letupan atau burst dari IO byte.\n \n \n IOPS Burst\n Letupan IOPS\n \n \n The desired burst limit of IO operations.\n Limit yang diinginkan untuk letupan atau burst operasi IO.\n \n \n Read BPS Burst\n Letupan Baca BPS\n \n \n The desired burst limit of read bytes.\n Limit yang diinginkan untuk letupan atau burst dari baca byte.\n \n \n Read IOPS Burst\n Letupan IOPS Baca\n \n \n The desired burst limit of read operations.\n Limit yang diinginkan untuk letupan atau burst operasi baca.\n \n \n Write BPS Burst\n Letupan BPS Tulis\n \n \n The desired burst limit of write bytes.\n Limit yang diinginkan untuk letupan atau burst dari tulis byte.\n \n \n Write IOPS Burst\n Letupan IOPS Tulis\n \n \n The desired burst limit of write operations.\n Limit yang diinginkan untuk letupan atau burst dari operasi baca.\n \n \n Failed to \n \n \n \n Gagal untuk \n \n \n \n \n \n Executing\n Mengeksekusi\n \n \n execute\n eksekusi\n \n \n Executed\n Dieksekusi\n \n \n unknown task\n tugas tak diketahui\n \n \n Creating\n Membuat\n \n \n create\n buat\n \n \n Updating\n Memperbarui\n \n \n update\n perbarui\n \n \n Deleting\n Menghapus\n \n \n delete\n hapus\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Snapshot RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n mode pencerminan untuk pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n mitra pencerminan untuk pool \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n \n contains snapshots.\n \n \n berisi snapshot.\n \n \n \n Cloning\n Pengklonan\n \n \n clone\n klon\n \n \n Snapshot of \n must be protected.\n \n Snapshot \n harus diproteksi.\n \n \n \n Copying\n Menyalin\n \n \n copy\n salin\n \n \n Flattening\n Meratakan\n \n \n flatten\n ratakan\n \n \n Flattened\n Diratakan\n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Tidak dapat menghapus proteksi \n karena mengandung child image.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Tidak dapat menghapus \n karena diproteksi.\n \n \n \n Rolling back\n Mengembalikan\n \n \n rollback\n kembalikan\n \n \n Rolled back\n Dikembalikan\n \n \n Moving\n Memindahkan\n \n \n move\n pindah\n \n \n Moved\n dipindahkan\n \n \n image \'\n \' to trash\n \n image \'\n \' ke tempat sampah\n \n \n \n Could not find image.\n Tidak dapat menemukan image.\n \n \n Restoring\n Memulihkan\n \n \n restore\n pulihkan\n \n \n Restored\n Dipulihkan\n \n \n image \'\n \' into \'\n \'\n \n image \'\n \' ke \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Nama image \'\n \' sudah digunakan.\n \n \n \n image \'\n \'\n \n image \'\n \'\n \n \n \n Purging\n Membuang\n \n \n purge\n buang\n \n \n Purged\n Dibuang\n \n \n all pools\n semua pool\n \n \n images from \n \n \n image dari \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Gagal menonaktifkan pencerminan karena sedang bermitra.\n \n \n pool \'\n \'\n \n pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n profil erasure code \'\n \'\n \n \n \n target \'\n \'\n \n target \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},nuQ0:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("ty8c"),o=n("FYBg"),s=n("JZ5S"),u=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"li",[["class","node-menu-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onMenuItemSelected(n,t.context.$implicit)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"div",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,1,"span",[["class","node-menu-item-value"]],null,null,null,null,null)),(t()(),a["\u0275ted"](3,null,["",""]))],null,function(t,e){t(e,1,0,a["\u0275inlineInterpolate"](1,"node-menu-item-icon ",e.context.$implicit.cssClass,"")),t(e,3,0,e.context.$implicit.name)})}function l(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{menuContainer:0}),(t()(),a["\u0275eld"](1,0,null,null,3,"div",[["class","node-menu"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,[[1,0],["menuContainer",1]],null,2,"ul",[["class","node-menu-content"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](4,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,4,0,e.component.availableMenuItems)},null)}var d=n("HHO+"),f=n("Tff5"),p=n("/TVo"),h=n("urB8"),g=n("VUo1"),m=n("ZYjt"),b=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"div",[["class","node-checkbox"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,[[1,0],["checkbox",1]],null,0,"input",[["checkbox",""],["type","checkbox"]],[[8,"disabled",0],[8,"checked",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.switchNodeCheckStatus()&&a),a},null,null))],null,function(t,e){var n=e.component;t(e,1,0,n.isReadOnly,n.tree.checked)})}function v(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"div",[["class","node-template"]],[[8,"innerHTML",1]],null,null,null,null)),a["\u0275ppd"](1,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent.parent.parent,0),n.tree.nodeTemplate));t(e,0,0,r)})}function x(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null)),a["\u0275ppd"](1,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent.parent.parent,0),n.tree.value));t(e,0,0,r)})}function _(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"span",[["class","loading-children"]],null,null,null,null,null))],null,null)}function T(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,9,"div",[["class","node-value"]],[[2,"node-selected",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onNodeSelected(n)&&a),a},null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,v)),a["\u0275did"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,x)),a["\u0275did"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,_)),a["\u0275did"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,2,null,T)),a["\u0275did"](8,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["\u0275pod"](9,{$implicit:0})],function(t,e){var n=e.component;t(e,2,0,n.tree.nodeTemplate),t(e,4,0,!n.template),t(e,6,0,n.tree.childrenAreBeingLoaded());var a=t(e,9,0,n.tree.node);t(e,8,0,a,n.template)},function(t,e){t(e,0,0,e.component.isSelected)})}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"input",[["class","node-value"],["type","text"]],null,[[null,"valueChanged"],[null,"keyup.enter"],[null,"blur"],[null,"keyup.esc"]],function(t,e,n){var r=!0,i=t.component;return"keyup.enter"===e&&(r=!1!==a["\u0275nov"](t,1).applyNewValue(n.target.value)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,1).applyNewValueByLoosingFocus(n.target.value)&&r),"keyup.esc"===e&&(r=!1!==a["\u0275nov"](t,1).cancelEditing()&&r),"valueChanged"===e&&(r=!1!==i.applyNewValue(n)&&r),r},null,null)),a["\u0275did"](1,81920,null,0,i.NodeEditableDirective,[a.Renderer2,a.ElementRef],{nodeValue:[0,"nodeValue"]},{valueChanged:"valueChanged"})],function(t,e){t(e,1,0,e.component.tree.value)},null)}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","node-left-menu"]],[[8,"innerHTML",1]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showLeftMenu(n)&&a),a},null,null))],null,function(t,e){t(e,0,0,e.component.tree.leftMenuTemplate)})}function I(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"node-menu",[],null,[[null,"menuItemSelected"]],function(t,e,n){var a=!0;return"menuItemSelected"===e&&(a=!1!==t.component.onMenuItemSelected(n)&&a),a},l,u)),a["\u0275did"](1,245760,null,0,o.NodeMenuComponent,[a.Renderer2,s.NodeMenuService],null,{menuItemSelected:"menuItemSelected"})],function(t,e){t(e,1,0)},null)}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"node-menu",[],null,[[null,"menuItemSelected"]],function(t,e,n){var a=!0;return"menuItemSelected"===e&&(a=!1!==t.component.onMenuItemSelected(n)&&a),a},l,u)),a["\u0275did"](1,245760,null,0,o.NodeMenuComponent,[a.Renderer2,s.NodeMenuService],null,{menuItemSelected:"menuItemSelected"})],function(t,e){t(e,1,0)},null)}function k(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"node-menu",[],null,[[null,"menuItemSelected"]],function(t,e,n){var a=!0;return"menuItemSelected"===e&&(a=!1!==t.component.onMenuItemSelected(n)&&a),a},l,u)),a["\u0275did"](1,245760,null,0,o.NodeMenuComponent,[a.Renderer2,s.NodeMenuService],{menuItems:[0,"menuItems"]},{menuItemSelected:"menuItemSelected"})],function(t,e){t(e,1,0,e.component.tree.menuItems)},null)}function N(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"tree-internal",[],null,null,null,L,b)),a["\u0275did"](1,4964352,null,0,d.TreeInternalComponent,[s.NodeMenuService,f.TreeService,a.ElementRef],{tree:[0,"tree"],settings:[1,"settings"],template:[2,"template"]},null)],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,n.settings,n.template)},null)}function R(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"div",[],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,r.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),a["\u0275pod"](2,{display:0}),(t()(),a["\u0275and"](16777216,null,null,2,null,N)),a["\u0275did"](4,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,r.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component,r=t(e,2,0,n.tree.isNodeExpanded()?"block":"none");t(e,1,0,r),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.tree.childrenAsync)))},null)}function A(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"tree-internal",[],null,null,null,L,b)),a["\u0275did"](1,4964352,null,0,d.TreeInternalComponent,[s.NodeMenuService,f.TreeService,a.ElementRef],{tree:[0,"tree"],settings:[1,"settings"],template:[2,"template"]},null)],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,n.settings,n.template)},null)}function E(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,A)),a["\u0275did"](1,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,r.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.tree.childrenAsync)))},null)}function D(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,27,"ul",[["class","tree"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](2,{rootless:0}),(t()(),a["\u0275eld"](3,0,null,null,24,"li",[],null,null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,15,"div",[["class","value-container"]],[[2,"selected",null]],[[null,"contextmenu"]],function(t,e,n){var a=!0;return"contextmenu"===e&&(a=!1!==t.component.showRightMenu(n)&&a),a},null,null)),a["\u0275did"](5,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](6,{rootless:0}),a["\u0275did"](7,212992,null,0,p.NodeDraggableDirective,[a.ElementRef,h.NodeDraggableService,a.Renderer2],{nodeDraggable:[0,"nodeDraggable"],tree:[1,"tree"]},null),(t()(),a["\u0275eld"](8,0,null,null,1,"div",[["class","folding"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSwitchFoldingType()&&a),a},null,null)),a["\u0275did"](9,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,y)),a["\u0275did"](11,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,w)),a["\u0275did"](13,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,S)),a["\u0275did"](15,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,O)),a["\u0275did"](17,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,I)),a["\u0275did"](19,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,C)),a["\u0275did"](21,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,k)),a["\u0275did"](23,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,R)),a["\u0275did"](25,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,E)),a["\u0275did"](27,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.isRootHidden());t(e,1,0,"tree",a);var r=t(e,6,0,n.isRootHidden());t(e,5,0,"value-container",r),t(e,7,0,n.nodeElementRef,n.tree),t(e,9,0,"folding",n.tree.foldingCssClass),t(e,11,0,n.settings.showCheckboxes),t(e,13,0,!n.shouldShowInputForTreeValue()),t(e,15,0,n.shouldShowInputForTreeValue()),t(e,17,0,n.tree.hasLeftMenu()),t(e,19,0,n.tree.hasLeftMenu()&&n.isLeftMenuVisible&&!n.hasCustomMenu()),t(e,21,0,n.isRightMenuVisible&&!n.hasCustomMenu()),t(e,23,0,n.hasCustomMenu()&&(n.isRightMenuVisible||n.isLeftMenuVisible)),t(e,25,0,n.tree.keepNodesInDOM()),t(e,27,0,n.tree.isNodeExpanded()&&!n.tree.keepNodesInDOM())},function(t,e){t(e,4,0,e.component.isSelected)})}function L(t){return a["\u0275vid"](0,[a["\u0275pid"](0,g.SafeHtmlPipe,[m.DomSanitizer]),a["\u0275qud"](671088640,1,{checkboxElementRef:0}),(t()(),a["\u0275and"](16777216,null,null,1,null,D)),a["\u0275did"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,3,0,e.component.tree)},null)}n("xtUU"),n.d(e,"a",function(){return P}),n.d(e,"b",function(){return M});var P=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function M(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{rootComponent:0}),(t()(),a["\u0275eld"](1,0,null,null,1,"tree-internal",[],null,null,null,L,b)),a["\u0275did"](2,4964352,[[1,4],["rootComponent",4]],0,d.TreeInternalComponent,[s.NodeMenuService,f.TreeService,a.ElementRef],{tree:[0,"tree"],settings:[1,"settings"],template:[2,"template"]},null)],function(t,e){var n=e.component;t(e,2,0,n.tree,n.settings,n.template)},null)}},nyYc:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}()},o1bE:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}()},"o4+5":function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("aXbf");var a=function(){function t(t){this.formatter=t}return t.prototype.transform=function(t){return this.formatter.format_number(t,1e3,["","k","M","G","T","P","E","Z","Y"])},t}()},obpP:function(t,e){t.exports='\n \n \n \n Toggle navigation\n Activer/D\xe9sactiver la navigation\n \n \n Dashboard\n Tableau de bord\n \n \n Cluster\n Grappe\n \n \n Hosts\n Serveurs\n \n \n Monitors\n Moniteurs\n \n \n OSDs\n OSD\n \n \n Configuration\n Configuration\n \n \n CRUSH map\n Carte CRUSH\n \n \n Manager modules\n Modules Manager\n \n \n Logs\n Journaux\n \n \n Alerts\n Alertes\n \n \n Silences\n Silences\n \n \n Pools\n R\xe9serves\n \n \n Block\n Bloc\n \n \n Images\n Images\n \n \n Mirroring\n Mise en miroir\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Syst\xe8mes de fichiers\n \n \n Object Gateway\n Object Gateway\n \n \n Daemons\n Daemons\n \n \n Users\n Utilisateurs\n \n \n Buckets\n Compartiments\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n R\xe9cup\xe9ration des donn\xe9es\n pour\n \n \n . Veuillez patienter...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Affichage des donn\xe9es\n pr\xe9c\xe9demment mises en cache\n pour \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Impossible de charger les donn\xe9es\n pour\n \n \n .\n Veuillez v\xe9rifier l\'\xe9tat de sant\xe9 de la grappe.\n \n \n \n Back\n Retour\n \n \n Select a Language\n S\xe9lectionner une langue\n \n \n Loading panel data...\n Chargement des donn\xe9es du panneau...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Veuillez consulter la\n documentation\n relative \xe0\n la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de surveillance.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Le tableau de bord Grafana n\'existe pas. Veuillez consulter\n la \n documentation\n relative \xe0\n l\'ajout de tableaux de bord \xe0 Grafana.\n \n \n \n Grafana Time Picker\n S\xe9lecteur d\'heure Grafana\n \n \n Reset Settings\n R\xe9initialiser les param\xe8tres\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \xc9chec du chargement des donn\xe9es.\n \n \n selected\n s\xe9lectionn\xe9(e)(s)\n X selected\n \n \n found\n trouv\xe9(e)(s)\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Modifier\n \n \n Name\n Nom\n \n \n Description\n Description\n \n \n Long description\n Description longue\n \n \n Default\n Valeur par d\xe9faut\n \n \n Daemon default\n Valeur par d\xe9faut du daemon\n \n \n Services\n Services\n \n \n Values\n Valeurs\n \n \n The entered value is too high! It must not be greater than \n .\n \n La valeur entr\xe9e est trop \xe9lev\xe9e ! Elle ne peut pas \xeatre sup\xe9rieure \xe0 \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n La valeur entr\xe9e est trop faible ! Elle ne peut pas \xeatre inf\xe9rieure \xe0 \n .\n \n \n \n Save\n Sauvegarder\n \n \n CRUSH map viewer\n Visionneuse de carte CRUSH\n \n \n Hosts List\n Liste d\'h\xf4tes\n \n \n Overall Performance\n Performance globale\n \n \n No entries found\n Aucune entr\xe9e trouv\xe9e\n \n \n Cluster Logs\n Journaux de grappes\n \n \n Audit Logs\n Journaux d\'audit\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Chargement de la configuration...\n \n \n The configuration could not be loaded.\n La configuration n\'a pas pu \xeatre charg\xe9e.\n \n \n Edit Manager module\n Modifier le module Manager\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n La valeur entr\xe9e n\'est pas un UUID valide, par exemple : 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n La valeur entr\xe9e doit \xeatre une adresse IP valide.\n \n \n This field is required.\n Ce champs est requis.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n La valeur entr\xe9e est trop \xe9lev\xe9e ! Elle doit \xeatre inf\xe9rieure ou \xe9gale \xe0 \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n La valeur entr\xe9e est trop faible ! Elle doit \xeatre sup\xe9rieure ou \xe9gale \xe0 \n .\n \n \n \n The entered value needs to be a number.\n La valeur entr\xe9e doit \xeatre un nombre.\n \n \n The entered value needs to be a number or decimal.\n La valeur entr\xe9e doit \xeatre un nombre ou une valeur d\xe9cimale.\n \n \n Update\n Mise \xe0 jour\n \n \n Status\n Statut\n \n \n Cluster ID\n ID de grappe\n \n \n monmap modified\n monmap modifi\xe9\n \n \n monmap epoch\n monmap epoch\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n required con\n \n \n required mon\n required mon\n \n \n In Quorum\n Dans le quorum\n \n \n Not In Quorum\n Hors quorum\n \n \n Cancel\n Annuler\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Voulez-vous vraiment \n l\'\xe9l\xe9ment s\xe9lectionn\xe9 \n ?\n \n \n \n Yes, I am sure.\n Oui.\n \n \n Cluster-wide OSD Flags\n Drapeaux OSD \xe0 l\'\xe9chelle de la grappe\n \n \n Submit\n Soumettre\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avanc\xe9...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorit\xe9 de r\xe9cup\xe9ration des OSD\n \n \n Priority\n Priorit\xe9\n \n \n Customize priority values\n Personnaliser les valeurs de priorit\xe9\n \n \n This field is required!\n Ce champ est obligatoire !\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n La valeur entr\xe9e est trop \xe9lev\xe9e ! Elle ne peut pas \xeatre sup\xe9rieure \xe0 \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n La valeur entr\xe9e est trop faible ! Elle ne peut pas \xeatre inf\xe9rieure \xe0 \n .\n \n \n \n Reweight OSD\n R\xe9\xe9valuer l\'OSD\n \n \n The value needs to be between 0 and 1.\n La valeur doit \xeatre comprise entre 0 et 1.\n \n \n Reweight\n R\xe9\xe9valuer\n \n \n OSDs \n Scrub\n \n Nettoyage des \n OSD\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Profondeur } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Vous \xeates sur le point d\'appliquer un nettoyage \n \n \xe0 l\'OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {profondeur } }\n \n \n OSDs List\n Liste des OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n L\'\n OSD \n \n sera marqu\xe9\n \n \n si vous continuez.\n \n \n \n The OSD is not safe to destroy!\n L\'OSD ne peut pas \xeatre d\xe9truit de fa\xe7on s\xe9curis\xe9e !\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n L\'OSD \n \n sera\n \n \n si vous continuez.\n \n \n \n Details\n D\xe9tails\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valeur\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Fermer\n \n \n Delete\n Supprimer\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Sant\xe9\n \n \n Statistics\n Statistiques\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Veuillez consulter la \n documentation\n \n relative \xe0 la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de gestion du NFS Ganesha.\n \n \n \n Clients\n Clients\n \n \n Any client can access\n Acc\xe8s possible par tous les clients\n \n \n Addresses\n Adresses\n \n \n Required field\n Champ obligatoire\n \n \n Must contain one or more comma-separated values\n Doit contenir une ou plusieurs valeurs s\xe9par\xe9es par une virgule\n \n \n For example:\n Par exemple :\n \n \n Access Type\n Type d\'acc\xe8s\n \n \n Squash\n Squash\n \n \n Add clients\n Ajouter des clients\n \n \n Loading...\n Chargement...\n \n \n -- No cluster available --\n -- Aucune grappe disponible --\n \n \n -- Select the cluster --\n -- S\xe9lectionner la grappe --\n \n \n Add daemon\n Ajouter un daemon\n \n \n Storage Backend\n Backend de stockage\n \n \n -- No data pools available --\n -- Aucune r\xe9serve de donn\xe9es disponible --\n \n \n -- Select the storage backend --\n -- S\xe9lectionner le backend de stockage --\n \n \n Object Gateway User\n Utilisateur Object Gateway\n \n \n -- No users available --\n -- Aucun utilisateur disponible --\n \n \n -- Select the object gateway user --\n -- S\xe9lectionner l\'utilisateur Object Gateway --\n \n \n CephFS User ID\n ID utilisateur CephFS\n \n \n -- No clients available --\n -- Aucun client disponible --\n \n \n -- Select the cephx client --\n -- S\xe9lectionner le client cephx --\n \n \n CephFS Name\n Nom CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Libell\xe9 de s\xe9curit\xe9\n \n \n Enable security label\n Activer le libell\xe9 de s\xe9curit\xe9\n \n \n CephFS Path\n Chemin CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n Le chemin doit commencer par \'/\' et peut \xeatre suivi d\'un mot\n \n \n New directory will be created\n Un nouveau r\xe9pertoire sera cr\xe9\xe9\n \n \n Path\n Chemin\n \n \n Path can only be a single \'/\' or a word\n Le chemin peut \xeatre constitu\xe9 d\'un seul \'/\' ou d\'un seul mot\n \n \n New bucket will be created\n Un compartiment sera cr\xe9\xe9\n \n \n NFS Protocol\n Protocole NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Balise NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Autre chemin d\'acc\xe8s aux montages \n NFS v3\n (doit commencer par /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Les clients ne peuvent pas monter de sous-r\xe9pertoires (si la balise = foo, le client ne peut pas monter foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n En utilisant diff\xe9rentes options de balise, il est possible d\'exporter plusieurs fois le m\xeame chemin.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Position occup\xe9e par cet export \n NFS v4\n \n dans le \n syst\xe8me de fichiers Pseudo\n (doit \xeatre unique).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n En utilisant diff\xe9rentes options de pseudo, il est possible d\'exporter exporter plusieurs fois le m\xeame chemin.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Aucun type d\'acc\xe8s disponible --\n \n \n -- Select the access type --\n -- S\xe9lectionner le type d\'acc\xe8s --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Aucun squash disponible --\n \n \n --Select what kind of user id squashing is performed --\n -- S\xe9lectionnez le type de squash d\'ID utilisateur qui est effectu\xe9 --\n \n \n Transport Protocol\n Protocole de transport\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Bienvenue dans Ceph !\n The welcome message on the login page\n \n \n Username is required\n Nom d\'utilisateur requis\n \n \n Password is required\n Mot de passe requis\n \n \n Login\n Connexion\n \n \n Sorry, the user does not exist in Ceph.\n D\xe9sol\xe9, l\'utilisateur n\'existe pas dans Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Retournez \xe0 la \n page de connexion\n . Vous serez d\xe9connect\xe9 du fournisseur d\'identit\xe9 lorsque vous tenterez de vous reconnecter.\n \n \n \n Forbidden\n Interdit\n \n \n Sorry, you are not allowed to see what you were looking for.\n D\xe9sol\xe9, vous n\'\xeates pas autoris\xe9 \xe0 voir ce que vous cherchez.\n \n \n Sorry, we could not find what you were looking for\n D\xe9sol\xe9s, nous ne parvenons pas \xe0 trouver ce que vous cherchez.\n \n \n Remove all\n Tout supprimer\n \n \n Recent Notifications\n Notifications r\xe9centes\n \n \n There are no background tasks.\n Il n\'y a aucune t\xe2che en arri\xe8re-plan.\n \n \n Background Tasks\n T\xe2ches en arri\xe8re-plan\n \n \n Help\n Aide\n \n \n Documentation\n Documentation\n \n \n API\n API\n \n \n About\n \xc0 propos de\n \n \n Dashboard Settings\n Param\xe8tres du tableau de bord\n \n \n User management\n Gestion des utilisateurs\n \n \n Logged in user\n Utilisateur connect\xe9\n \n \n Signed in as\n \n \n \n \n Connect\xe9 en tant que\n \n \n \n \n \n \n Sign out\n Se d\xe9connecter\n \n \n Name...\n Nom...\n \n \n The chosen name is already in use.\n Le nom s\xe9lectionn\xe9 est d\xe9j\xe0 en cours d\'utilisation.\n \n \n Description...\n Description...\n \n \n Permissions\n Autorisations\n \n \n Roles\n R\xf4les\n \n \n Username\n Nom d\'utilisateur\n \n \n Password\n Mot de passe\n \n \n Confirm password\n Confirmer le mot de passe\n \n \n Password confirmation doesn\'t match the password.\n Le mot de passe de confirmation ne correspond pas au mot de passe.\n \n \n Full name\n Nom complet\n \n \n Email\n Adresse \xe9lectronique\n \n \n Invalid email.\n L\'adresse \xe9lectronique n\'est pas valide.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Vous \xeates sur le point de supprimer les autorisations "lecture/mise \xe0 jour utilisateur" de votre propre utilisateur.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Si vous continuez, vous ne serez plus en mesure d\'ajouter ni de supprimer des r\xf4les pour n\'importe quel utilisateur.\n \n \n Are you sure you want to continue?\n Voulez-vous vraiment continuer ?\n \n \n Performance counters not available\n Compteurs de performance non disponibles\n \n \n Attributes (OSD map)\n Attributs (carte OSD)\n \n \n Metadata not available\n M\xe9tadonn\xe9es non disponibles\n \n \n Metadata\n M\xe9tadonn\xe9es\n \n \n Performance counter\n Compteur de performance\n \n \n Histogram not available: \n \n \n Histogramme non disponible : \n \n \n \n \n Writes\n \xc9critures\n \n \n Reads\n Lectures\n \n \n Histogram\n Histogramme\n \n \n Performance Details\n D\xe9tails des performances\n \n \n Current values\n Valeurs actuelles\n \n \n Type\n Type\n \n \n Min\n Minimum\n \n \n Max\n Maximum\n \n \n Flags\n Drapeaux\n \n \n Source\n Source\n \n \n Level\n Niveau\n \n \n Can be updated at runtime (editable)\n Mise \xe0 jour possible lors de l\'ex\xe9cution (modifiable)\n \n \n Tags\n Balises\n \n \n Enum values\n Valeurs d\'\xe9num\xe9nation\n \n \n See also\n Voir aussi\n \n \n Cluster Status\n Statut de la grappe\n \n \n Manager Daemons\n Daemons du gestionnaire\n \n \n Object Gateways\n Passerelles d\'objet\n \n \n Metadata Servers\n Serveurs de m\xe9tadonn\xe9es\n \n \n iSCSI Gateways\n Passerelles iSCSI\n \n \n Client IOPS\n IOPS client\n \n \n Client Throughput\n D\xe9bit client\n \n \n Client Read/Write\n Lectures/\xc9critures client\n \n \n Recovery Throughput\n D\xe9bit de r\xe9cup\xe9ration\n \n \n Scrub\n Nettoyer\n \n \n Performance\n Performance\n \n \n Raw Capacity\n Capacit\xe9 brute\n \n \n Objects\n Objets\n \n \n PGs per OSD\n Groupes de placements par OSD\n \n \n PG Status\n Statut du groupe de placements\n \n \n Capacity\n Capacit\xe9\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Consultez les \n journaux\n pour plus d\'informations.\n \n \n \n Ranks\n Rangs\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clients : \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n D\xe9placer une image vers la corbeille.\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Pour d\xe9placer \n \n /\n \n vers la corbeille,\n cliquez sur \n D\xe9placer une image\n . Vous pouvez \xe9galement s\xe9lectionner une date d\'expiration.\n \n \n \n Protection expires at\n La protection expire le \n \n \n NOT PROTECTED\n NON PROT\xc9G\xc9\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Format de date incorrect. Veuillez utiliser "AAAA-MM-JJ HH:mm:ss"\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n La protection a d\xe9j\xe0 expir\xe9. Veuillez s\xe9lectionner une date ult\xe9rieure ou laisser le champ vide.\n \n \n Move Image\n D\xe9placer une image\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Pr\xe9sentation\n \n \n Targets\n Cibles\n \n \n Discovery Authentication\n Authentification de la d\xe9couverte\n \n \n User\n Utilisateur\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Les noms d\'utilisateur doivent comporter entre 8 et 64 caract\xe8res et\n ne peuvent contenir que des lettres et les caract\xe8res \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Utilisateur commun\n \n \n Mutual Password\n Mot de passe commun\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Veuillez consulter la \n documentation\n \nrelative \xe0 la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de gestion des cibles iSCSI.\n \n \n \n Available information:\n Informations disponibles :\n \n \n iSCSI Targets not available\n Cibles iSCSI non disponibles\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Disponible uniquement pour les images RBD pour lesquelles \n fast-diff\n est activ\xe9\n \n \n \n Pool\n R\xe9serve\n \n \n Data Pool\n R\xe9serve de donn\xe9es\n \n \n Created\n Cr\xe9\xe9\n \n \n Size\n Taille\n \n \n Object size\n Taille de l\'objet\n \n \n Features\n Fonctionnalit\xe9s\n \n \n Provisioned\n Provisionn\xe9\n \n \n N/A\n N/A\n \n \n Total provisioned\n Provisionnement total\n \n \n Striping unit\n Unit\xe9 de segmentation\n \n \n Striping count\n Nombre de segmentations\n \n \n Parent\n Parent\n \n \n Block name prefix\n Pr\xe9fixe du nom de bloc\n \n \n Order\n Tri\n \n \n Snapshots\n Instantan\xe9s\n \n \n Image\n Image\n \n \n This setting overrides the global value\n Ce param\xe8tre remplace la valeur globale\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Il s\'agit de la valeur globale. Aucune valeur de cette option n\'a \xe9t\xe9 d\xe9finie pour cette image.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n Les caract\xe8res \'/\' et \'@\' ne sont pas autoris\xe9s.\n \n \n -- No rbd pools available --\n -- Aucune r\xe9serve RBD disponible --\n \n \n -- Select a pool --\n -- S\xe9lectionner une r\xe9serve --\n \n \n Use a dedicated data pool\n Utiliser une r\xe9serve de donn\xe9es d\xe9di\xe9e\n \n \n Data pool\n R\xe9serve de donn\xe9es\n \n \n Dedicated pool that stores the object-data of the RBD.\n R\xe9serve d\xe9di\xe9e qui stocke les donn\xe9es objet du RBD.\n \n \n e.g., 10GiB\n par exemple, 10 Gio\n \n \n You have to increase the size.\n Vous devez augmenter la taille.\n \n \n Advanced\n Avanc\xe9\n \n \n Striping\n Segmentation\n \n \n Stripe unit\n Unit\xe9 de segmentation\n \n \n -- Select stripe unit --\n -- S\xe9lectionner une unit\xe9 de segmentation --\n \n \n This field is required because stripe count is defined!\n Ce champ est obligatoire, car le nombre de segments est d\xe9fini.\n \n \n Stripe unit is greater than object size.\n L\'unit\xe9 de segmentation est sup\xe9rieure \xe0 la taille de l\'objet.\n \n \n Stripe count\n Nombre de segments\n \n \n This field is required because stripe unit is defined!\n Ce champ est obligatoire, car l\'unit\xe9 de segmentation est d\xe9finie.\n \n \n Stripe count must be greater than 0.\n Le nombre de segments doit \xeatre sup\xe9rieur \xe0 0.\n \n \n \n RBD Snapshot\n \n \n instantan\xe9 RDB \n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Renommer} other {Cr\xe9er} }\n \n \n \n Snapshot\n \n \n instantan\xe9\n \n \n \n PROTECTED\n PROT\xc9G\xc9\n \n \n UNPROTECTED\n NON PROT\xc9G\xc9\n \n \n You are about to rollback\n Vous \xeates sur le point de revenir \xe0 l\'\xe9tat initial\n \n \n Purge Trash\n Vider la corbeille\n \n \n To purge, select one or All images and click\n Pour purger, s\xe9lectionner une image ou toutes, puis cliquez sur\n \n \n Pool:\n R\xe9serve :\n \n \n Pool name...\n Nom de la r\xe9serve...\n \n \n All\n Tout\n \n \n Restore Image\n Restaurer l\'image\n \n \n To restore\n Pour restaurer\n \n \n type the image\'s new name and click\n saisissez le nouveau nom de l\'image, puis cliquez sur\n \n \n New Name\n Nouveau nom\n \n \n Expired at\n Expiration le \n \n \n Protected until\n Protection jusqu\'au\n \n \n This image is protected until \n .\n \n Cette image est prot\xe9g\xe9e jusqu\'au \n .\n \n \n \n Trash\n Corbeille\n \n \n iSCSI Topology\n Topologie iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Il n\'est g\xe9n\xe9ralement pas n\xe9cessaire de modifier ces param\xe8tres par d\xe9faut.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Param\xe8tres\n \n \n Backstore\n Backstore\n \n \n Confirm\n Confirmer\n \n \n Advanced Settings\n Param\xe8tres avanc\xe9s\n \n \n Target IQN\n IQN cible\n \n \n IQN has wrong pattern.\n Mod\xe8le IQN incorrect.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Un IQN est associ\xe9 \xe0 la notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Par exemple : iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Plus d\'informations\n \n \n This target has modified advanced settings.\n Des param\xe8tres avanc\xe9s de cette cible ont \xe9t\xe9 modifi\xe9s.\n \n \n Portals\n Portails\n \n \n At least \n gateways are required.\n \n Au moins \n passerelles sont n\xe9cessaires.\n \n \n \n Add portal\n Ajouter un portail\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Des param\xe8tres avanc\xe9s de cette image ont \xe9t\xe9 modifi\xe9s.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Ajouter une image\n \n \n ACL authentication\n Authentification ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Initiateurs\n \n \n Initiator\n Initiateur\n \n \n Client IQN\n IQN client\n \n \n Initiator IQN needs to be unique.\n L\'IQN de l\'initiateur doit \xeatre unique.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Les noms d\'utilisateur doivent comporter entre 8 et 64 caract\xe8res et\n ne peuvent contenir que des lettres et les caract\xe8res \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n L\'initiateur appartient \xe0 un groupe dans lequel les images seront configur\xe9es.\n \n \n No items added.\n Aucun \xe9l\xe9ment ajout\xe9.\n \n \n Add initiator\n Ajouter un initiateur\n \n \n Groups\n Groupes\n \n \n Group\n Groupe\n \n \n Add group\n Ajouter un groupe\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configuration RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Supprimez la valeur de configuration locale. La valeur de configuration parent sera h\xe9rit\xe9e et utilis\xe9e \xe0 la place.\n \n \n The mininum value is 0\n La valeur minimale est 0.\n \n \n Issues\n Probl\xe8mes\n \n \n Syncing\n Synchronisation en cours\n \n \n Ready\n Pr\xeat\n \n \n Edit pool mirror mode\n Modifier le mode de mise en miroir de la r\xe9serve\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Pour modifier le mode de mise en miroir de la r\xe9serve\xa0\n \n \n , s\xe9lectionnez un nouveau mode dans la liste, puis cliquez sur \n Mettre \xe0 jour\n .\n \n \n \n Mode\n Mode\n \n \n Peer clusters must be removed prior to disabling mirror.\n Les grappes d\'homologues doivent \xeatre supprim\xe9es avant de d\xe9sactiver la mise en miroir.\n \n \n \n \n pool mirror peer\n \n \n \n homologue de mise en miroir de la r\xe9serve\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Modifier} other {Ajouter} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n les attributs\n de mise en miroir de la r\xe9serve \n \n \n et cliquez sur \n Soumettre\n .\n \n \n \n Cluster Name\n Nom de grappe\n \n \n The cluster name is not valid.\n Le nom de grappe n\'est pas valide.\n \n \n CephX ID\n ID CephX\n \n \n CephX ID...\n ID CephX\n \n \n The CephX ID is not valid.\n L\'ID CephX n\'est pas valide.\n \n \n Monitor Addresses\n Adresses du moniteur\n \n \n Comma-delimited addresses...\n Adresses s\xe9par\xe9es par une virgule...\n \n \n The monitory address is not valid.\n L\'adresse du moniteur n\'est pas valide.\n \n \n CephX Key\n Clef CephX\n \n \n Base64-encoded key...\n Clef Base64...\n \n \n CephX key must be base64 encoded.\n La clef CephX doit \xeatre cod\xe9e en base64.\n \n \n Pools List\n Liste des r\xe9serves\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Le nom doit \xeatre exclusivement compos\xe9 de caract\xe8res alphanum\xe9riques, de tirets et de traits de soulignement.\n \n \n The chosen erasure code profile name is already in use.\n Le nom de profil du code d\'effacement s\xe9lectionn\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n Plugin\n Plug-in\n \n \n Data chunks (k)\n Blocs de donn\xe9es (k)\n \n \n Must be equal to or greater than 2.\n Doit \xeatre \xe9gal ou sup\xe9rieur \xe0 2.\n \n \n Coding chunks (m)\n Blocs de codage (m)\n \n \n Must be equal to or greater than 1.\n Doit \xeatre \xe9gal ou sup\xe9rieur \xe0 1.\n \n \n Durability estimator (c)\n Estimateur de durabilit\xe9 (c)\n \n \n Locality (l)\n Localit\xe9 (l)\n \n \n Crush failure domain\n Domaine de d\xe9faillance Crush\n \n \n Crush Locality\n Localit\xe9 Crush\n \n \n None\n Aucun\n \n \n Technique\n Technique\n \n \n Packetsize\n Taille de paquet\n \n \n Crush root\n Racine Crush\n \n \n Crush device class\n Classe de p\xe9riph\xe9rique Crush\n \n \n any\n tout\n \n \n Directory\n R\xe9pertoire\n \n \n The chosen Ceph pool name is already in use.\n Le nom de r\xe9serve Ceph s\xe9lectionn\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n Pool type\n Type de r\xe9serve\n \n \n -- Select a pool type --\n -- S\xe9lectionner un type de r\xe9serve --\n \n \n Placement groups\n Groupes de placements\n \n \n At least one placement group is needed!\n Au moins un groupe de placements est n\xe9cessaire.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Votre grappe ne peut pas g\xe9rer autant de groupes de placements. Veuillez recalculer le nombre de groupes de placements n\xe9cessaires.\n \n \n Calculation help\n Aide au calcul\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Les param\xe8tres actuels des groupes de placements ont \xe9t\xe9 calcul\xe9s pour vous.\nV\xe9rifiez que les valeurs correspondent \xe0 vos besoins avant de les soumettre.\n \n \n Crush ruleset\n Jeu de r\xe8gles Crush\n \n \n -- Select a crush rule --\n -- S\xe9lectionner une r\xe8gle crush --\n \n \n Crush rule\n R\xe8gle Crush\n \n \n Crush steps\n \xc9tapes Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n La r\xe8gle ne peut pas \xeatre utilis\xe9e dans la grappe active, car celle-ci\n comporte un nombre d\'OSD inf\xe9rieur au nombre d\'OSD minimum requis par cette r\xe8gle.\n \n \n Replicated size\n Taille de r\xe9plication\n \n \n Minimum: \n \n \n Minimum : \n \n \n \n \n Maximum: \n \n \n Maximum : \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n La taille sp\xe9cifi\xe9e est en dehors de la plage. Une valeur comprise entre\n et \n est valide.\n \n \n \n Erasure code profile\n Profil de code d\'effacement\n \n \n -- No erasure code profile available --\n -- Aucun profil de code d\'effacement n\'est disponible --\n \n \n -- Select an erasure code profile --\n -- S\xe9lectionner un profil de code d\'effacement --\n \n \n EC Overwrites\n \xc9crasements EC\n \n \n Applications\n Applications\n \n \n Compression\n Compression\n \n \n Algorithm\n Algorithme\n \n \n -- No erasure compression algorithm available --\n -- Aucun algorithme de compression d\'effacement n\'est disponible --\n \n \n Minimum blob size\n Taille de blob minimale\n \n \n e.g., 128KiB\n par ex. 128 Kio\n \n \n Value should be greater than 0\n La valeur doit \xeatre sup\xe9rieure \xe0 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Taille de blob maximale\n \n \n e.g., 512KiB\n par ex., 512 Kio\n \n \n Value should be greater than the minimum blob size\n La valeur doit \xeatre sup\xe9rieure \xe0 la taille de blob minimale.\n \n \n Ratio\n Rapport\n \n \n Compression ratio\n Rapport de compression\n \n \n Value should be between 0.0 and 1.0\n La valeur doit se situer entre 0.0 et 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Il n\'est pas possible de cr\xe9er une r\xe9serve RBD dont le nom contient \'/\'.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Modifiez le nom ou supprimez \'rbd\' de la liste des applications.\n \n \n Cache Tiers Details\n D\xe9tails des niveaux de mise en cache\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Veuillez consulter la \n documentation\n \n relative \xe0 la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de gestion Object Gateway.\n \n \n \n Daemons List\n Liste de daemons\n \n \n Performance Counters\n Compteurs de performance\n \n \n Loading bucket data...\n Chargement des donn\xe9es de compartiment...\n \n \n The bucket data could not be loaded.\n Les donn\xe9es du compartiment n\'ont pas pu \xeatre charg\xe9es.\n \n \n Id\n ID\n \n \n The value is not valid.\n La valeur n\'est pas valide.\n \n \n Owner\n Propri\xe9taire\n \n \n -- Select a user --\n -- S\xe9lectionner un utilisateur --\n \n \n ID\n ID\n \n \n Index type\n Type d\'index\n \n \n Placement rule\n R\xe8gle de placement\n \n \n Marker\n Marqueur\n \n \n Maximum marker\n Marqueur maximum\n \n \n Version\n Version\n \n \n Master version\n Version principale\n \n \n Modification time\n Date de modification\n \n \n Zonegroup\n Groupe de zones\n \n \n Bucket quota\n Quota de compartiments\n \n \n Enabled\n Activ\xe9\n \n \n Maximum size\n Taille maximale\n \n \n Unlimited\n Illimit\xe9\n \n \n Maximum objects\n Nombre maximal d\'objets\n \n \n -- Select a username --\n -- S\xe9lectionner un nom d\'utilisateur --\n \n \n Auto-generate key\n G\xe9n\xe9rer automatiquement la clef\n \n \n Access key\n Clef d\'acc\xe8s\n \n \n Secret key\n Clef secr\xe8te\n \n \n Email address\n Adresse \xe9lectronique\n \n \n Suspended\n Suspendu\n \n \n System\n Syst\xe8me\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {Non} 1 {Oui} }\n \n \n Maximum buckets\n Nombre maximal de compartiments\n \n \n Subusers\n Utilisateurs secondaires\n \n \n Capabilities\n Fonctionnalit\xe9s\n \n \n User quota\n Quota utilisateur\n \n \n Show\n Afficher\n \n \n Keys\n Clefs\n \n \n -- Select a type --\n -- S\xe9lectionner un type --\n \n \n Permission\n Autorisation\n \n \n -- Select a permission --\n -- S\xe9lectionner une autorisation --\n \n \n Subuser\n Utilisateur secondaire\n \n \n The chosen subuser ID is already in use.\n L\'ID d\'utilisateur secondaire s\xe9lectionn\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n read, write\n lire, \xe9crire\n \n \n full\n complet\n \n \n Swift key\n Cl\xe9 Swift\n \n \n Auto-generate secret\n G\xe9n\xe9rer automatiquement le secret\n \n \n Loading user data...\n Chargement des donn\xe9s utilisateur\u2026\n \n \n The user data could not be loaded.\n Les donn\xe9s utilisateur n\'ont pas pu \xeatre charg\xe9es.\n \n \n The chosen user ID is already in use.\n L\'ID utilisateur sp\xe9cifi\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n This is not a valid email address.\n Ceci n\'est pas une adresse \xe9lectronique valide.\n \n \n The chosen email address is already in use.\n L\'adresse \xe9lectronique sp\xe9cifi\xe9e est d\xe9j\xe0 utilis\xe9e.\n \n \n Max. buckets\n Nombre max. de compartiments\n \n \n The entered value must be >= 0.\n La valeur saisie doit \xeatre >= 0.\n \n \n S3 key\n Clef S3\n \n \n There are no subusers.\n Il n\'y a aucun utilisateur secondaire.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Il n\'y a pas de clefs.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Il n\'y a aucune fonctionnalit\xe9.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Taille illimit\xe9e\n \n \n Max. size\n Taille max.\n \n \n Unlimited objects\n Objets illimit\xe9s\n \n \n Max. objects\n Nombre max. d\'objets\n \n \n Current\n Actuel\n \n \n Updated discovery authentication\n Authentification de la d\xe9couverte mise \xe0 jour\n \n \n There are no portals available.\n Il n\'y a aucun portail disponible.\n \n \n There are no images available.\n Il n\'y a aucune image disponible.\n \n \n There are no images available. Please make sure you add an image to the target.\n Il n\'y a aucune image disponible. Veillez \xe0 ajouter une image \xe0 la cible.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Il n\'y a aucun initiateur disponible. Veillez \xe0 ajouter un initiateur \xe0 la cible.\n \n \n target\n target\n \n \n Target\n Cible\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \xc9tat\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Octets de lecture\n \n \n Write Bytes\n Octets d\'\xe9criture\n \n \n Read Ops\n Op\xe9rations de lecture\n \n \n Write Ops\n Op\xe9rations d\'\xe9criture\n \n \n A/O Since\n A/O depuis\n \n \n Instance\n Instance\n \n \n Hostname\n Nom d\'h\xf4te\n \n \n Issue\n Probl\xe8me\n \n \n Progress\n Avancement\n \n \n Disabled\n D\xe9sactiv\xe9\n \n \n Edit Mode\n Mode d\'\xe9dition\n \n \n Add Peer\n Ajouter un homologue\n \n \n Edit Peer\n Modifier un homologue\n \n \n Delete Peer\n Supprimer un homologue\n \n \n Leader\n Leader\n \n \n # Local\n nb en local\n \n \n # Remote\n nb \xe0 distance\n \n \n mirror peer\n mettre en miroir l\'homologue\n \n \n Key\n Clef\n \n \n RBD\n RBD\n \n \n Deep flatten\n Aplatissement en profondeur\n \n \n Layering\n Superposition\n \n \n Exclusive lock\n Verrou exclusif\n \n \n Object map (requires exclusive-lock)\n Assignation d\'objet (n\xe9cessite exclusive-lock)\n \n \n Journaling (requires exclusive-lock)\n Journalisation (n\xe9cessite exclusive-lock)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Retour \xe0 l\'\xe9tat initial de l\'instantan\xe9 RBD\n \n \n Rollback\n Revenir \xe0 l\'\xe9tat initial\n \n \n RBD snapshot\n Intantan\xe9 RBD\n \n \n Deleted At\n Supprim\xe9 le\n \n \n id\n ID\n \n \n type\n type\n \n \n state\n \xe9tat\n \n \n version\n version\n \n \n Host\n H\xf4te\n \n \n root\n racine\n \n \n Rank\n Rang\n \n \n Daemon\n Daemon\n \n \n Activity\n Activit\xe9\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodes\n \n \n Usage\n Utilisation\n \n \n Standby daemons\n Daemons en veille\n \n \n The value can be updated at runtime.\n La valeur peut \xeatre mise \xe0 jour au moment de l\'ex\xe9cution.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Les daemons/clients ne tirent pas cette valeur de\n\xa0 la base de donn\xe9es de configuration de Monitor. Nous n\'autorisons pas le r\xe9glage de cette option via \'ceph config\n\xa0 set ...\'. Cette option doit \xeatre configur\xe9e via ceph.conf ou via\n\xa0 la ligne de commande.\n \n \n Option takes effect only during daemon startup.\n L\'option ne prend effet qu\'au d\xe9marrage du daemon.\n \n \n Option only affects cluster creation.\n L\'option n\'affecte que la cr\xe9ation des grappes.\n \n \n Option only affects daemon creation.\n L\'option n\'affecte que la cr\xe9ation des daemons.\n \n \n Updated config option \n \n \n Option de configuration mise \xe0 jour \n \n \n \n \n Service\n Service\n \n \n Current value\n Valeur actuelle\n \n \n Editable\n Modifiable\n \n \n Updated options for module "\n ".\n \n Options mises \xe0 jour pour le module &quot;\n &quot;.\n \n \n \n Enable\n Activer\n \n \n Disable\n D\xe9sactiver\n \n \n Reconnecting, please wait ...\n Reconnexion en cours\u2026 Veuillez patienter.\n \n \n Public Address\n Adresse publique\n \n \n Open Sessions\n Sessions ouvertes\n \n \n No In\n Pas rentr\xe9s\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Les OSD qui ont \xe9t\xe9 marqu\xe9s comme sortis ne seront pas marqu\xe9s comme rentr\xe9s \xe0 leur d\xe9marrage.\n \n \n No Out\n Pas sortis\n \n \n OSDs will not automatically be marked out after the configured interval\n Les OSD ne seront pas marqu\xe9s automatiquement comme sortis apr\xe8s l\'intervalle configur\xe9.\n \n \n No Up\n Pas d\xe9marr\xe9s\n \n \n OSDs are not allowed to start\n Les OSD ne sont pas autoris\xe9s \xe0 d\xe9marrer.\n \n \n No Down\n Pas arr\xeat\xe9s\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Les rapports de d\xe9faillance des OSD sont ignor\xe9s, de sorte que les moniteurs ne marquent pas les OSD comme \xe9tant arr\xeat\xe9s.\n \n \n Pause\n Pause\n \n \n Pauses reads and writes\n Met en pause les lectures et \xe9critures\n \n \n No Scrub\n Pas de nettoyage\n \n \n Scrubbing is disabled\n Nettoyage d\xe9sactiv\xe9\n \n \n No Deep Scrub\n Pas de nettoyage en profondeur\n \n \n Deep Scrubbing is disabled\n Le nettoyage en profondeur est d\xe9sactiv\xe9\n \n \n No Backfill\n Pas de renvoi\n \n \n Backfilling of PGs is suspended\n Le renvoi des groupes de placements est suspendu\n \n \n No Recover\n Pas de r\xe9cup\xe9ration\n \n \n Recovery of PGs is suspended\n La r\xe9cup\xe9ration des groupes de placements est suspendue\n \n \n Bitwise Sort\n Tri au niveau du bit\n \n \n Use bitwise sort\n Utiliser le tri au niveau du bit\n \n \n Purged Snapdirs\n Variables snapdir purg\xe9es\n \n \n OSDs have converted snapsets\n Les OSD ont converti les variables snapset\n \n \n Recovery Deletes\n Suppressions des r\xe9cup\xe9rations\n \n \n Deletes performed during recovery instead of peering\n Suppressions effectu\xe9es pendant la restauration et non l\'homologation\n \n \n PG Log Hard Limit\n Limite stricte de journalisation des groupes de placements\n \n \n Puts a hard limit on pg log length\n Impose une limite stricte \xe0 la longueur du journal des groupes de placements\n \n \n Updated OSD Flags\n Drapeaux OSD mis \xe0 jour\n \n \n out\n sorti\n \n \n in\n rentr\xe9\n \n \n down\n arr\xeat\xe9\n \n \n Mark\n Marquer\n \n \n OSD lost\n OSD perdu\n \n \n marked lost\n marqu\xe9 comme perdu\n \n \n Purge\n Purger\n \n \n OSD\n OSD\n \n \n purged\n purg\xe9\n \n \n destroy\n d\xe9truire\n \n \n destroyed\n d\xe9truit\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Groupes de placements\n \n \n Read bytes\n Octets de lecture\n \n \n Writes bytes\n Octets d\'\xe9criture\n \n \n Read ops\n Op\xe9rations de lecture\n \n \n Write ops\n Op\xe9rations d\'\xe9criture\n \n \n Mark OSD \n \n \n Marquer l\'OSD comme \n \n \n \n \n Mark \n \n \n Marquer comme \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Nbre max. de renvois\n \n \n Recovery Max Active\n Nombre maximum de r\xe9cup\xe9rations actives\n \n \n Recovery Max Single Start\n Nombre maximum de d\xe9marrages uniques de r\xe9cup\xe9rations\n \n \n Recovery Sleep\n Mise en veille de la r\xe9cup\xe9ration\n \n \n Custom\n Personnalis\xe9\n \n \n Updated OSD recovery speed priority "\n "\n \n Priorit\xe9 de la vitesse de r\xe9cup\xe9ration des OSD&quot;\n &quot; mise \xe0 jour\n \n \n \n \n was initialized in the following OSD: \n \n \n \n a \xe9t\xe9 initialis\xe9(e) sur l\'OSD suivant : \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Travail\n \n \n Severity\n Gravit\xe9\n \n \n Started\n D\xe9marr\xe9\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Mis \xe0 jour\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Utilis\xe9\n \n \n Avail.\n Dispo.\n \n \n Clean\n Nettoy\xe9\n \n \n Working\n En cours\n \n \n Warning\n Avertissement\n \n \n Unknown\n Inconnu\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n op\xe9rationnel\n \n \n no filesystems\n aucun syst\xe8me de fichiers\n \n \n active\n actif\n \n \n standby\n veille\n \n \n n/a\n n/a\n \n \n active daemon\n daemon actif\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n Le service NFS Ganesha n\'est pas configur\xe9.\n \n \n Transport\n Transport\n \n \n CephFS User\n Utilisateur CephFS\n \n \n CephFS Filesystem\n Syst\xe8me de fichiers CephFS\n \n \n (inherited from global config)\n (h\xe9rit\xe9 de la configuration globale)\n \n \n inherited from global config\n h\xe9rit\xe9 de la configuration globale\n \n \n -- Select what kind of user id squashing is performed --\n -- S\xe9lectionner le type de squashing d\'ID utilisateur effectu\xe9 --\n \n \n There are no daemons available.\n Aucun daemon n\'est disponible.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Mode cache\n \n \n Min Evict Age\n \xc2ge \xe9vict min.\n \n \n Min Flush Age\n \xc2ge vidage min.\n \n \n Target Max Bytes\n Nombre max d\'octets cibles\n \n \n Target Max Objects\n Nombre max. d\'objets cibles\n \n \n No applications added\n Aucune application ajout\xe9e\n \n \n Applications limit reached\n Limite d\'applications atteinte\n \n \n A pool can only have up to four applications definitions.\n Une r\xe9serve peut avoir quatre d\xe9finitions d\'application maximum.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caract\xe8re autoris\xe9s \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n La longueur maximale est de 128 caract\xe8res.\n \n \n Filter or add applications\n Filtrer ou ajouter des applications\n \n \n Add application\n Ajouter une application\n \n \n pool\n pool\n \n \n erasure code profile\n profil de code d\'effacement\n \n \n Replica Size\n Taille de la r\xe9plique\n \n \n Last Change\n Dernier changement\n \n \n Erasure Coded Profile\n Profil de code d\'effacement\n \n \n Crush Ruleset\n Jeu de r\xe8gles Crush\n \n \n Write bytes\n Octets d\'\xe9criture\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n compartiment\n \n \n Updated Object Gateway bucket "\n "\n \n Compartiment Object Gateway &quot;\n &quot; mis \xe0 jour\n \n \n \n Created Object Gateway bucket "\n "\n \n Compartiment Object Gateway &quot;\n &quot; cr\xe9\xe9\n \n \n \n buckets\n compartiments\n \n \n capability\n capability\n \n \n user\n utilisateur\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Utilisateur Object Gateway &quot;\n &quot; mis \xe0 jour\n \n \n \n Created Object Gateway user "\n "\n \n Utilisateur Object Gateway &quot;\n &quot; cr\xe9\xe9\n \n \n \n users\n utilisateurs\n \n \n Swift Key\n Swift Key\n \n \n Scope\n P\xe9rim\xe8tre\n \n \n Read\n Lecture\n \n \n Create\n Cr\xe9er\n \n \n role\n role\n \n \n Created role \'\n \'\n \n R\xf4le \'\n \' cr\xe9\xe9\n \n \n \n Updated role \'\n \'\n \n R\xf4le \'\n \' mis \xe0 jour\n \n \n \n System Role\n R\xf4le syst\xe8me\n \n \n Deleted role \'\n \'\n \n R\xf4le \'\n \' supprim\xe9\n \n \n \n Created user "\n "\n \n Utilisateur &quot;\n &quot; cr\xe9\xe9\n \n \n \n Update user\n Mettre \xe0 jour l\'utilisateur\n \n \n Continue\n Continuer\n \n \n You were automatically logged out because your roles have been changed.\n Vous avez \xe9t\xe9 automatiquement d\xe9connect\xe9, car vos r\xf4les ont chang\xe9.\n \n \n Updated user "\n "\n \n Utilisateur &quot;\n &quot; mis \xe0 jour\n \n \n \n Deleted user "\n "\n \n Utilisateur &quot;\n &quot; supprim\xe9\n \n \n \n Failed to delete user "\n "\n \n \xc9chec de la suppression de l\'utilisateur &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Vous \xeates connect\xe9 en tant que &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Chaque objet est divis\xe9 en parties de blocs de donn\xe9es, chacune \xe9tant stock\xe9e sur un OSD diff\xe9rent.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calculez des blocs de codage pour chaque objet et stockez-les sur diff\xe9rents OSD.\n Le nombre de blocs de codage correspond \xe9galement au nombre d\'OSD qui peuvent \xeatre arr\xeat\xe9s sans perdre de donn\xe9es.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Le plugin jerasure est le plugin le plus g\xe9n\xe9rique et le plus flexible,\n\xa0 c\'est aussi la valeur par d\xe9faut des r\xe9serves cod\xe9es \xe0 effacement Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n La technique la plus flexible est reed_sol_van_van : il suffit de d\xe9finir k\n et m. La technique cauchy_good peut \xeatre plus rapide, mais vous devez choisir la taille du paquet\n avec pr\xe9caution. reed_sol_r6_op, liberation, blaum_roth et liber8tion sont des \xe9quivalents RAID6\n en ce sens qu\'ils ne peuvent \xeatre configur\xe9s qu\'avec m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n L\'encodage se fera sur des paquets de taille d\'octets.\n\xa0 Choisir la bonne taille de paquet est difficile.\n\xa0 La documentation de jerasure contient de nombreuses informations \xe0 ce sujet.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Avec le plugin jerasure, lorsqu\'un objet cod\xe9 \xe0 effacement est stock\xe9 sur\n plusieurs OSD, la r\xe9cup\xe9ration \xe0 la suite de la perte d\'un OSD n\xe9cessite la lecture de tous les autres.\n Par exemple, si jerasure est configur\xe9 avec k=8 et m=4, la perte d\'un OSD n\xe9cessite de lire\n les onze autres pour pouvoir effectuer une r\xe9paration.\n\n Le plugin de code d\'effacement lrc cr\xe9e des blocs de parit\xe9 locale pour permettre la r\xe9cup\xe9ration avec\n moins d\'OSD. Par exemple, si lrc est configur\xe9 avec k=8, m=4 et l=4,\n un bloc de parit\xe9 suppl\xe9mentaire est cr\xe9\xe9 pour chaque groupe de quatre OSD. Lorsqu\'un seul OSD est perdu, il peut \xeatre\n r\xe9cup\xe9r\xe9 avec seulement quatre OSD au lieu de onze.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Regroupez les blocs de donn\xe9es et de codage en ensembles de localit\xe9 de taille. Par exemple,\n pour k=4 et m=2, lorsque locality=3, deux groupes de trois sont cr\xe9\xe9s. Chaque ensemble peut\n \xeatre r\xe9cup\xe9r\xe9 sans lire les blocs d\'un autre jeu.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Type de compartiment Crush dans lequel chaque ensemble de blocs d\xe9fini\n par I sera stock\xe9. Par exemple, s\'il est r\xe9gl\xe9 sur rack, chaque groupe de blocs I sera\n plac\xe9 dans un rack diff\xe9rent. Il est utilis\xe9 pour cr\xe9er une \xe9tape de la r\xe8gle CRUSH telle que l\'\xe9tape de choix\n d\'un rack. S\'il n\'est pas d\xe9fini, aucun regroupement de ce type n\'est effectu\xe9.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Le plug-in isa encapsule la biblioth\xe8que ISA. Il ne fonctionne qu\'avec des processeurs Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Le plugin ISA se pr\xe9sente sous deux formes Reed Solomon.\n Si reed_sol_van est d\xe9fini, il \xe9quivaut \xe0 Vandermonde. Si cauchy est configur\xe9, il \xe9quivaut \xe0 Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Le plug-in shec encapsule la biblioth\xe8que SHEC multiple.\n Il permet \xe0 Ceph de r\xe9cup\xe9rer les donn\xe9es plus efficacement qu\'avec les codes Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Nombre de blocs de parit\xe9, chacun incluant chaque bloc de donn\xe9es dans sa\n plage de calcul. Ce nombre est utilis\xe9 comme estimateur de durabilit\xe9. Par exemple, si c=2,\n 2 OSD peuvent \xeatre arr\xeat\xe9s sans perte de donn\xe9es.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Nom du compartiment crush utilis\xe9 pour la premi\xe8re \xe9tape de la r\xe8gle CRUSH.\n Par exemple, l\'\xe9tape de d\xe9finition des valeurs par d\xe9faut.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n V\xe9rifiez qu\'il n\'existe pas deux blocs dans un compartiment avec le m\xeame domaine de\n d\xe9faillance. Par exemple, si le domaine de d\xe9faillance est un h\xf4te, deux blocs ne seront pas stock\xe9s sur le m\xeame\n h\xf4te. Cette option est utilis\xe9e pour cr\xe9er une \xe9tape de la r\xe8gle CRUSH telle que chooseleaf host.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Restreindre le placement aux p\xe9riph\xe9riques d\'une classe sp\xe9cifique\n (par exemple, ssd ou hdd), en utilisant les noms des classes de p\xe9riph\xe9riques crush dans la carte CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n D\xe9finissez le nom du r\xe9pertoire \xe0 partir duquel le plug-in de code d\'effacement est charg\xe9.\n \n \n Allows all operations\n Autoriser toutes les op\xe9rations\n \n \n Allows only operations that do not modify the server\n Autorise uniquement les op\xe9rations qui ne modifient pas le serveur\n \n \n Does not allow read or write operations, but allows any other operation\n N\'autorise pas les op\xe9rations de lecture ou d\'\xe9criture, mais toutes les autres.\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n N\'autorise pas la lecture, l\'\xe9criture ni aucune autre op\xe9ration modifiant les attributs d\'un fichier ou le contenu d\'un r\xe9pertoire.\n \n \n Allows no access at all\n N\'autorise aucun acc\xe8s\n \n \n -- Select the priority --\n -- S\xe9lectionner la priorit\xe9 --\n \n \n Low\n Faible\n \n \n High\n \xc9lev\xe9e\n \n \n Last 5 minutes\n Les 5 derni\xe8res minutes\n \n \n Last 15 minutes\n Les 15 derni\xe8res minutes\n \n \n Last 30 minutes\n Les 30 derni\xe8res minutes\n \n \n Last 1 hour (Default)\n La derni\xe8re heure (par d\xe9faut)\n \n \n Last 3 hours\n Les 3 derni\xe8res heures\n \n \n Last 6 hours\n Les 6 derni\xe8res heures\n \n \n Last 12 hours\n Les 12 derni\xe8res heures\n \n \n Last 24 hours\n Les 24 derni\xe8res heures\n \n \n Yesterday\n Hier\n \n \n Today\n Aujourd\'hui\n \n \n Today so far\n Depuis le d\xe9but de la journ\xe9e\n \n \n Day before yesterday\n Avant-hier\n \n \n Last 2 days\n Les 2 derniers jours\n \n \n This day last week\n Il y a huit jours\n \n \n Previous week\n La semaine derni\xe8re\n \n \n This week\n Cette semaine\n \n \n This week so far\n Depuis le d\xe9but de la semaine\n \n \n Last 7 days\n Les 7 derniers jours\n \n \n Previous month\n Le mois dernier\n \n \n This month\n Ce mois\n \n \n This month so far\n Depuis le d\xe9but du mois\n \n \n Last 30 days\n Les 30 derniers jours\n \n \n Last 90 days\n Les 90 derniers jours\n \n \n Last 6 months\n Les 6 derniers mois\n \n \n Last 1 year\n L\'ann\xe9e \xe9coul\xe9e\n \n \n Previous year\n L\'ann\xe9e derni\xe8re\n \n \n This year\n Cette ann\xe9e\n \n \n This year so far\n Depuis le d\xe9but de l\'ann\xe9e\n \n \n Last 2 years\n Les 2 derni\xe8res ann\xe9es\n \n \n Last 5 years\n Les 5 derni\xe8res ann\xe9es\n \n \n Information\n Informations\n \n \n No items selected.\n Aucun \xe9l\xe9ment s\xe9lectionn\xe9.\n \n \n Deselect item to select again\n D\xe9s\xe9lectionnez l\'\xe9l\xe9ment pour le s\xe9lectionner \xe0 nouveau.\n \n \n Selection limit reached\n Limite de s\xe9lection atteinte\n \n \n Filter tags\n Balises de filtre\n \n \n Add badge\n Ajouter un badge\n \n \n There are no items available.\n Aucun \xe9l\xe9ment disponible.\n \n \n Add\n Ajouter\n \n \n Remove\n Remove\n \n \n Clone\n Cloner\n \n \n Copy\n Copier\n \n \n Deep Scrub\n Nettoyage en profondeur\n \n \n Destroy\n D\xe9truire\n \n \n Flatten\n Aplatir\n \n \n Mark Down\n Marquer comme arr\xeat\xe9\n \n \n Mark In\n Marquer comme rentr\xe9\n \n \n Mark Lost\n Marquer comme perdu\n \n \n Mark Out\n Marquer comme sorti\n \n \n Protect\n Prot\xe9ger\n \n \n Rename\n Renommer\n \n \n Restore\n Restaurer\n \n \n Move to Trash\n D\xe9placer vers la corbeille\n \n \n Unprotect\n Annuler la protection\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Supprim\xe9\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clon\xe9\n \n \n Copied\n Copi\xe9\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Oui\n \n \n No\n Non\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Qualit\xe9 de service\n \n \n BPS Limit\n Limite de bits/s\n \n \n The desired limit of IO bytes per second.\n Limite souhait\xe9e d\'octets E/S par seconde.\n \n \n IOPS Limit\n Limite E/S par seconde\n \n \n The desired limit of IO operations per second.\n Limite souhait\xe9e d\'op\xe9rations E/S par seconde.\n \n \n Read BPS Limit\n Limite de bits/s en lecture\n \n \n The desired limit of read bytes per second.\n Limite souhait\xe9e de lecture d\'octets par seconde.\n \n \n Read IOPS Limit\n Limite E/S par seconde en lecture\n \n \n The desired limit of read operations per second.\n Limite souhait\xe9e d\'op\xe9rations de lecture par seconde.\n \n \n Write BPS Limit\n Limite de bits/s en \xe9criture\n \n \n The desired limit of write bytes per second.\n Limite souhait\xe9e d\'\xe9criture d\'octets par seconde.\n \n \n Write IOPS Limit\n Limite E/S par seconde en \xe9criture\n \n \n The desired limit of write operations per second.\n Limite souhait\xe9e d\'op\xe9rations d\'\xe9criture par seconde.\n \n \n BPS Burst\n Rafale de bits/s\n \n \n The desired burst limit of IO bytes.\n Limite de rafale d\'octets en E/S souhait\xe9e.\n \n \n IOPS Burst\n Rafale E/S par seconde\n \n \n The desired burst limit of IO operations.\n Limite de rafale d\'op\xe9rations E/S souhait\xe9e.\n \n \n Read BPS Burst\n Rafale E/S par seconde en lecture\n \n \n The desired burst limit of read bytes.\n Limite de rafale d\'octets lus par seconde.\n \n \n Read IOPS Burst\n Rafale E/S par seconde en lecture\n \n \n The desired burst limit of read operations.\n Limite de rafale d\'op\xe9rations de lecture\n \n \n Write BPS Burst\n Rafale E/S par seconde en \xe9criture\n \n \n The desired burst limit of write bytes.\n Limite de rafale de lectures d\'octets souhait\xe9e.\n \n \n Write IOPS Burst\n Rafale d\'E/S par seconde en \xe9criture\n \n \n The desired burst limit of write operations.\n Limite de rafale d\'op\xe9rations d\'\xe9criture souhait\xe9e.\n \n \n Failed to \n \n \n \n Impossible de \n \n \n \n \n \n Executing\n En cours d\'ex\xe9cution\n \n \n execute\n ex\xe9cuter\n \n \n Executed\n Ex\xe9cut\xe9\n \n \n unknown task\n t\xe2che inconnue\n \n \n Creating\n En cours de cr\xe9ation\n \n \n create\n cr\xe9er\n \n \n Updating\n En cours de mise \xe0 jour\n \n \n update\n mettre \xe0 jour\n \n \n Deleting\n En cours de suppression\n \n \n delete\n supprimer\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Instantan\xe9 RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n mode miroir pour la r\xe9serve \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n mettre en miroir l\'homologue pour la r\xe9serve \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Le nom est d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n Name is already used by \n .\n \n Le nom est d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n Name is already used by \n .\n \n Le nom est d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n \n contains snapshots.\n \n \n contient des instantan\xe9s.\n \n \n \n Cloning\n Clonage en cours\n \n \n clone\n cloner\n \n \n Snapshot of \n must be protected.\n \n L\'instantan\xe9 de \n doit \xeatre prot\xe9g\xe9.\n \n \n \n Copying\n En cours de copie\n \n \n copy\n copie\n \n \n Flattening\n Aplatissement\n \n \n flatten\n aplatir\n \n \n Flattened\n Applati\n \n \n Name is already used by \n .\n \n Nom d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Impossible d\'annuler la protection de \n , car cet \xe9l\xe9ment contient des images enfants.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Impossible de supprimer \n , car cet \xe9l\xe9ment est prot\xe9g\xe9.\n \n \n \n Rolling back\n Retour \xe0 l\'\xe9tat initial\n \n \n rollback\n r\xe9tablir l\'\xe9tat initial\n \n \n Rolled back\n R\xe9tabli \xe0 l\'\xe9tat initial\n \n \n Moving\n En cours de d\xe9placement\n \n \n move\n d\xe9placer\n \n \n Moved\n D\xe9plac\xe9\n \n \n image \'\n \' to trash\n \n image \'\n \' d\xe9plac\xe9e vers la corbeille\n \n \n \n Could not find image.\n Impossible de trouver l\'image.\n \n \n Restoring\n En cours de restauration.\n \n \n restore\n restaurer\n \n \n Restored\n Restaur\xe9\n \n \n image \'\n \' into \'\n \'\n \n image \'\n \' vers \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Le nom d\'image \'\n \' est d\xe9j\xe0 utilis\xe9.\n \n \n \n image \'\n \'\n \n image \'\n \'\n \n \n \n Purging\n En cours de purge\n \n \n purge\n purger\n \n \n Purged\n Purg\xe9\n \n \n all pools\n toutes les r\xe9serves\n \n \n images from \n \n \n images de \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Impossible de d\xe9sactiver la mise en miroir, car l\'\xe9l\xe9ment contient un homologue.\n \n \n pool \'\n \'\n \n r\xe9serve \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n profil de code d\'effacement \'\n \'\n \n \n \n target \'\n \'\n \n cible \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},ohIB:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("ae7Z");function r(t){for(var e=0,n=0,a=t;n=e;for(var g=0,m=s;gb.maxWidth?(b.width=b.maxWidth,h.push(b)):b.width=y}b.width=Math.max(0,b.width)}p=e-(f=o(t)),i(s,h)}while(p>0&&0!==s.length)}},ou9H:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("MGBS"),i=n("zotm");function o(t,e){return function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.keySelector=t,this.flushes=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.keySelector,this.flushes))},t}(),u=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.keySelector=n,r.values=new Set,a&&r.add(Object(i.a)(r,a)),r}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.values.clear()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype._next=function(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)},e.prototype._useKeySelector=function(t){var e,n=this.destination;try{e=this.keySelector(t)}catch(a){return void n.error(a)}this._finalizeNext(e,t)},e.prototype._finalizeNext=function(t,e){var n=this.values;n.has(t)||(n.add(t),this.destination.next(e))},e}(r.a)},ozli:function(t,e,n){"use strict";var a=n("zfKp");e.subscribeToObservable=function(t){return function(e){var n=t[a.observable]();if("function"!=typeof n.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return n.subscribe(e)}}},"p//D":function(t,e,n){"use strict";e.rxSubscriber="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random(),e.$$rxSubscriber=e.rxSubscriber},"p/rL":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}()},p0Sj:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("dEwP"),r=n("nkY7");function i(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof u&&(n=t.pop()),null===s&&1===t.length&&t[0]instanceof a.a?t[0]:Object(i.a)(n)(Object(o.a)(t,s))}},p4Cf:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},pKUh:function(t,e,n){"use strict";n.d(e,"a",function(){return o}),n.d(e,"b",function(){return c});var a=n("CcnG"),r=n("YAQW"),i=n("Ip0R"),o=a["\u0275crt"]({encapsulation:0,styles:["[_nghost-%COMP%] .nav-tabs[_ngcontent-%COMP%] .nav-item.disabled[_ngcontent-%COMP%] a.disabled[_ngcontent-%COMP%]{cursor:default}"],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","bs-remove-tab"]],null,[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(n.preventDefault(),a=!1!==r.removeTab(t.parent.context.$implicit)&&a),a},null,null)),(t()(),a["\u0275ted"](-1,null,[" \u274c"]))],null,null)}function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,8,"li",[],[[2,"active",null],[2,"disabled",null]],[[null,"keydown"]],function(t,e,n){var a=!0;return"keydown"===e&&(a=!1!==t.component.keyNavActions(n,t.context.index)&&a),a},null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngClass:[0,"ngClass"]},null),a["\u0275pad"](2,2),(t()(),a["\u0275eld"](3,0,null,null,5,"a",[["class","nav-link"],["href","javascript:void(0);"]],[[1,"id",0],[2,"active",null],[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.context.$implicit.active=!0)&&a),a},null,null)),(t()(),a["\u0275eld"](4,16777216,null,null,2,"span",[],null,null,null,null,null)),a["\u0275did"](5,16384,null,0,r.a,[a.ViewContainerRef],{ngTransclude:[0,"ngTransclude"]},null),(t()(),a["\u0275ted"](6,null,["",""])),(t()(),a["\u0275and"](16777216,null,null,1,null,s)),a["\u0275did"](8,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,2,0,"nav-item",e.context.$implicit.customClass||"");t(e,1,0,n),t(e,5,0,e.context.$implicit.headingRef),t(e,8,0,e.context.$implicit.removable)},function(t,e){t(e,0,0,e.context.$implicit.active,e.context.$implicit.disabled),t(e,3,0,e.context.$implicit.id?e.context.$implicit.id+"-link":"",e.context.$implicit.active,e.context.$implicit.disabled),t(e,6,0,e.context.$implicit.heading)})}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"ul",[["class","nav"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a},null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,u)),a["\u0275did"](3,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](4,0,null,null,1,"div",[["class","tab-content"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],function(t,e){var n=e.component;t(e,1,0,"nav",n.classMap),t(e,3,0,n.tabs)},null)}},pL04:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},pMnS:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("CcnG"),r=n("ZYCi"),i=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),a["\u0275did"](1,212992,null,0,r.q,[r.b,a.ViewContainerRef,a.ComponentFactoryResolver,[8,null],a.ChangeDetectorRef],null,null)],function(t,e){t(e,1,0)},null)}function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"ng-component",[],null,null,null,o,i)),a["\u0275did"](1,49152,null,0,r.u,[],null,null)],null,null)}var u=a["\u0275ccf"]("ng-component",r.u,s,{},{},[])},paOr:function(t,e,n){"use strict";var a=n("RDha"),r=n("cdu6");t.exports=function(t){var e=a.noop;t.LinearScaleBase=r.extend({getRightValue:function(t){return"string"==typeof t?+t:r.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=a.sign(t.min),r=a.sign(t.max);n<0&&r<0?t.max=0:n>0&&r>0&&(t.min=0)}var i=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(t.min=null===t.min?e.suggestedMin:Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(t.max=null===t.max?e.suggestedMax:Math.max(t.max,e.suggestedMax)),i!==o&&t.min>=t.max&&(i?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),r={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:a.valueOrDefault(e.fixedStepSize,e.stepSize)},i=t.ticks=function(t,e){var n,r,i,o=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var s=a.niceNum(e.max-e.min,!1);i=a.niceNum(s/(t.maxTicks-1),!0),void 0!==(r=t.precision)&&(n=Math.pow(10,r),i=Math.ceil(i*n)/n)}var u=Math.floor(e.min/i)*i,c=Math.ceil(e.max/i)*i;a.isNullOrUndef(t.min)||a.isNullOrUndef(t.max)||!t.stepSize||a.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(u=t.min,c=t.max);var l=(c-u)/i;l=a.almostEquals(l,Math.round(l),i/1e3)?Math.round(l):Math.ceil(l),r=1,i<1&&(r=Math.pow(10,1-Math.floor(a.log10(i))),u=Math.round(u*r)/r,c=Math.round(c*r)/r),o.push(void 0!==t.min?t.min:u);for(var d=1;d0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(i.a)},pshJ:function(t,e,n){"use strict";e.isFunction=function(t){return"function"==typeof t}},pugT:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("isby"),r=n("McSo"),i=n("2Bdj"),o=n("awvh"),s=function(){function t(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}var e;return t.prototype.unsubscribe=function(){var e;if(!this.closed){var n=this._parentOrParents,s=this._unsubscribe,c=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(var l=0;l
';var r=e.childNodes[0],i=e.childNodes[1];e._reset=function(){r.scrollLeft=1e6,r.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var o=function(){e._reset(),t()};return u(r,"scroll",o.bind(r,"expand")),u(i,"scroll",o.bind(i,"shrink")),e}((i=function(){if(d.resizer)return e(l("resize",n))},s=!1,c=[],function(){c=Array.prototype.slice.call(arguments),o=o||this,s||(s=!0,a.requestAnimFrame.call(window,function(){s=!1,i.apply(o,c)}))}));!function(t,e){var n=t.$chartjs||(t.$chartjs={}),i=n.renderProxy=function(t){"chartjs-render-animation"===t.animationName&&e()};a.each(r,function(e){u(t,e,i)}),n.reflow=!!t.offsetParent,t.classList.add("chartjs-render-monitor")}(t,function(){if(d.resizer){var e=t.parentNode;e&&e!==f.parentNode&&e.insertBefore(f,e.firstChild),f._reset()}})}(o,n,t)},removeEventListener:function(t,e,n){var i,o,s,u=t.canvas;if("resize"!==e){var l=((n.$chartjs||{}).proxies||{})[t.id+"_"+e];l&&c(u,e,l)}else s=(o=(i=u).$chartjs||{}).resizer,delete o.resizer,function(t){var e=t.$chartjs||{},n=e.renderProxy;n&&(a.each(r,function(e){c(t,e,n)}),delete e.renderProxy),t.classList.remove("chartjs-render-monitor")}(i),s&&s.parentNode&&s.parentNode.removeChild(s)}},a.addEvent=u,a.removeEvent=c},qwkt:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("ejVf")),a(n("aTeT")),a(n("WOoz")),a(n("lmqd")),a(n("ILDN")),a(n("n1nk"))},qzaf:function(t,e,n){"use strict";t.exports=function(t){t.PolarArea=function(e,n){return n.type="polarArea",new t(e,n)}}},r8II:function(t,e,n){"use strict";e.decode=e.parse=n("YcCt"),e.encode=e.stringify=n("6MUB")},rLYq:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n\n \n ',host:{class:"datatable-summary-row"}})],t)}()},rPjj:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(e,n,a){var r=t.call(this)||this;return r.parent=e,r.outerValue=n,r.outerIndex=a,r.index=0,r}return a.__extends(e,t),e.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},e.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},e.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},e}(n("FFOo").a)},raLr:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===n?e?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":t+" "+(a=+t,r={ss:e?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:e?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:e?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}function a(t){return function(){return t+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}n("wd/R").defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function(t,e){var n={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return!0===t?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):t?n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(e)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(e)?"genitive":"nominative"][t.day()]:n.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:a("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:a("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:a("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:a("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return a("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:e,m:e,mm:e,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:e,d:"\u0434\u0435\u043d\u044c",dd:e,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:e,y:"\u0440\u0456\u043a",yy:e},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(t)},meridiem:function(t,e,n){return t<4?"\u043d\u043e\u0447\u0456":t<12?"\u0440\u0430\u043d\u043a\u0443":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-\u0439";case"D":return t+"-\u0433\u043e";default:return t}},week:{dow:1,doy:7}})}()},rdkg:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CVuo"),r={},i="undefined"!=typeof document?document.createElement("div").style:void 0,o=function(){var t="undefined"!=typeof window?window.getComputedStyle(document.documentElement,""):void 0,e=void 0!==t?Array.prototype.slice.call(t).join("").match(/-(moz|webkit|ms)-/):null,n=null!==e?e[1]:void 0,a=void 0!==n?"WebKit|Moz|MS|O".match(new RegExp("("+n+")","i"))[1]:void 0;return a?{dom:a,lowercase:n,css:"-"+n+"-",js:n[0].toUpperCase()+n.substr(1)}:void 0};e.\u02750=o;var s=o();e.getVendorPrefixedName=function(t){var e=a.camelCase(t);return r[e]||(void 0!==s&&void 0!==i[s.css+t]?r[e]=s.css+t:void 0!==i[t]&&(r[e]=t)),r[e]}},rpEJ:function(t,e,n){"use strict";n.d(e,"a",function(){return h}),n.d(e,"b",function(){return g}),n.d(e,"c",function(){return f}),n.d(e,"d",function(){return p}),n.d(e,"e",function(){return s}),n.d(e,"f",function(){return o}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return u}),n.d(e,"i",function(){return y}),n.d(e,"j",function(){return d});var a=n("CcnG"),r=function(){function t(t,e){this.open=t,this.close=e||t}return t.prototype.isManual=function(){return"manual"===this.open||"manual"===this.close},t}(),i={hover:["mouseover","mouseout"],focus:["focusin","focusout"]};function o(t,e){void 0===e&&(e=i);var n=(t||"").trim();if(0===n.length)return[];var a=n.split(/\s+/).map(function(t){return t.split(":")}).map(function(t){var n=e[t[0]]||t;return new r(n[0],n[1])}),o=a.filter(function(t){return t.isManual()});if(o.length>1)throw new Error("Triggers parse error: only one manual trigger is allowed");if(1===o.length&&a.length>1)throw new Error("Triggers parse error: manual trigger can't be mixed with other triggers");return a}function s(t,e){var n=o(e.triggers),a=e.target;if(1===n.length&&n[0].isManual())return Function.prototype;var r=[],i=[],s=function(){i.forEach(function(t){return r.push(t())}),i.length=0};return n.forEach(function(n){var o=n.open===n.close,u=o?e.toggle:e.show;o||i.push(function(){return t.listen(a,n.close,e.hide)}),r.push(t.listen(a,n.open,function(){return u(s)}))}),function(){r.forEach(function(t){return t()})}}function u(t,e){return e.outsideClick?t.listen("document","click",function(t){e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(function(e){return e.contains(t.target)})||e.hide()}):Function.prototype}function c(t,e){return e.outsideEsc?t.listen("document","keyup.esc",function(t){e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(function(e){return e.contains(t.target)})||e.hide()}):Function.prototype}var l,d="undefined"!=typeof window&&window||{},f=d.document;function p(){return void 0===d||(void 0===d.__theme?l?"bs3"===l:"bs3"===(l=function(){if("undefined"==typeof document)return null;var t=document.createElement("span");t.innerText="test bs version",document.body.appendChild(t),t.classList.add("d-none");var e=t.getBoundingClientRect();return document.body.removeChild(t),e&&0===e.top?"bs4":"bs3"}()):"bs4"!==d.__theme)}function h(t){return function(t,e){var n=" __"+e+"Value";Object.defineProperty(t,e,{get:function(){return this[n]},set:function(t){var a=this[n];this[n]=t,a!==t&&this[e+"Change"]&&this[e+"Change"].emit(t)}})}}var g=function(){function t(){}return t.reflow=function(t){},t.getStyles=function(t){var e=t.ownerDocument.defaultView;return e&&e.opener||(e=d),e.getComputedStyle(t)},t}(),m={},b="undefined"==typeof console||!("warn"in console);function y(t){!Object(a.isDevMode)()||b||t in m||(m[t]=!0,console.warn(t))}},"s+uk":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}n("wd/R").defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},sLuX:function(t,e,n){"use strict";var a=n("CcnG"),r=n("25BL"),i=n("uIqm");n("FSuO"),n("a0VL"),n.d(e,"a",function(){return o}),n.d(e,"b",function(){return s});var o=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function s(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{table:0}),(t()(),a["\u0275eld"](1,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,r.b,r.a)),a["\u0275did"](2,2867200,[[1,4],["table",4]],0,i.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],header:[4,"header"],footer:[5,"footer"],limit:[6,"limit"],autoReload:[7,"autoReload"],autoSave:[8,"autoSave"],customCss:[9,"customCss"]},null)],function(t,e){var n=e.component;t(e,2,0,n.tableData,n.columns,"flex",!1,!1,!1,0,n.autoReload,!1,n.customCss)},null)}},sb0X:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("CcnG"),r=n("gIcY"),i=n("LvDl"),o=function(){function t(t){this.elRef=t,this.type="submit",this.submitAction=new a.EventEmitter,this.disabled=!1,this.loading=!1}return t.prototype.ngOnInit=function(){var t=this;this.form.statusChanges.subscribe(function(){i.has(t.form.errors,"cdSubmitButton")&&(t.loading=!1,i.unset(t.form.errors,"cdSubmitButton"),t.form instanceof r.a&&t.form.updateValueAndValidity())})},t.prototype.submit=function(t){this.focusButton(),this.form instanceof r.l&&this.form.onSubmit(t),this.form.invalid?this.focusInvalid():(this.loading=!0,this.submitAction.emit())},t.prototype.focusButton=function(){this.elRef.nativeElement.offsetParent.querySelector('button[type="'+this.type+'"]').focus()},t.prototype.focusInvalid=function(){var t=this.elRef.nativeElement.offsetParent.querySelector("input.ng-invalid, select.ng-invalid");t&&t.focus()},t}()},siIJ:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(e,n){void 0===n&&(n=t.now),this.SchedulerAction=e,this.now=n}return t.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(n,e)},t.now=function(){return Date.now()},t}()},sne2:function(t,e,n){"use strict";n.d(e,"c",function(){return s}),n.d(e,"e",function(){return a}),n.d(e,"a",function(){return r}),n.d(e,"b",function(){return u}),n.d(e,"d",function(){return c});var a,r,i=n("CcnG"),o=n("Jm/i"),s=function(){function t(){}return t.organization="ceph",t.projectName="Ceph Manager Dashboard",t.license="Free software (LGPL 2.1).",t}();!function(t){t.CREATE="create",t.EDIT="edit",t.UPDATE="update",t.REMOVE="remove",t.DELETE="delete",t.ADD="add",t.COPY="copy",t.CLONE="clone",t.RECREATE="recreate",t.EXPIRE="expire"}(a||(a={})),function(t){t.CREATE="Create",t.DELETE="Delete",t.ADD="Add",t.REMOVE="Remove",t.EDIT="Edit",t.CANCEL="Cancel",t.COPY="Copy",t.CLONE="Clone",t.SHOW="Show",t.RECREATE="Recreate",t.EXPIRE="Expire"}(r||(r={}));var u=function(){function t(t){this.i18n=t,this.CREATE=this.i18n("Create"),this.DELETE=this.i18n("Delete"),this.ADD=this.i18n("Add"),this.REMOVE=this.i18n("Remove"),this.EDIT=this.i18n("Edit"),this.CANCEL=this.i18n("Cancel"),this.CLONE=this.i18n("Clone"),this.COPY=this.i18n("Copy"),this.DEEP_SCRUB=this.i18n("Deep Scrub"),this.DESTROY=this.i18n("Destroy"),this.FLATTEN=this.i18n("Flatten"),this.MARK_DOWN=this.i18n("Mark Down"),this.MARK_IN=this.i18n("Mark In"),this.MARK_LOST=this.i18n("Mark Lost"),this.MARK_OUT=this.i18n("Mark Out"),this.PROTECT=this.i18n("Protect"),this.PURGE=this.i18n("Purge"),this.RENAME=this.i18n("Rename"),this.RESTORE=this.i18n("Restore"),this.REWEIGHT=this.i18n("Reweight"),this.ROLLBACK=this.i18n("Rollback"),this.SCRUB=this.i18n("Scrub"),this.SHOW=this.i18n("Show"),this.TRASH=this.i18n("Move to Trash"),this.UNPROTECT=this.i18n("Unprotect"),this.RECREATE=this.i18n("Recreate"),this.EXPIRE=this.i18n("Expire")}return t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(o.a))},token:t,providedIn:"root"}),t}(),c=function(){function t(t){this.i18n=t,this.CREATED=this.i18n("Created"),this.DELETED=this.i18n("Deleted"),this.ADDED=this.i18n("Added"),this.REMOVED=this.i18n("Removed"),this.EDITED=this.i18n("Edited"),this.CANCELED=this.i18n("Canceled"),this.CLONED=this.i18n("Cloned"),this.COPIED=this.i18n("Copied"),this.SHOWED=this.i18n("Showed"),this.TRASHED=this.i18n("Moved to Trash"),this.UNPROTECTED=this.i18n("Unprotected"),this.RECREATED=this.i18n("Recreated"),this.EXPIRED=this.i18n("Expired")}return t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(o.a))},token:t,providedIn:"root"}),t}()},sp3z:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(t){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===t},meridiem:function(t,e,n){return t<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(t){return"\u0e97\u0eb5\u0ec8"+t}})}()},svcd:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("K9Ia"),i=n("pugT"),o=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.value=null,e.hasNext=!1,e.hasCompleted=!1,e}return a.__extends(e,t),e.prototype._subscribe=function(e){return this.hasError?(e.error(this.thrownError),i.a.EMPTY):this.hasCompleted&&this.hasNext?(e.next(this.value),e.complete(),i.a.EMPTY):t.prototype._subscribe.call(this,e)},e.prototype.next=function(t){this.hasCompleted||(this.value=t,this.hasNext=!0)},e.prototype.error=function(e){this.hasCompleted||t.prototype.error.call(this,e)},e.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&t.prototype.next.call(this,this.value),t.prototype.complete.call(this)},e}(r.a)},syrc:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("5tze");n("bpWZ"),n("czA5"),e.DataTableBodyRowComponent=function(){function t(t,e,n,a){this.differs=t,this.scrollbarHelper=e,this.cd=n,this.treeStatus="collapsed",this.activate=new i.EventEmitter,this.treeAction=new i.EventEmitter,this._groupStyles={left:{},center:{},right:{}},this._element=a.nativeElement,this._rowDiffer=t.find({}).create()}return Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t,this.recalculateColumns(t),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._columns){var e=o.columnsByPin(this._columns);this._columnGroupWidths=o.columnGroupWidths(e,e)}this._innerWidth=t,this.recalculateColumns(),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cssClass",{get:function(){var t="datatable-body-row";if(this.isSelected&&(t+=" active"),this.rowIndex%2!=0&&(t+=" datatable-row-odd"),this.rowIndex%2==0&&(t+=" datatable-row-even"),this.rowClass){var e=this.rowClass(this.row);if("string"==typeof e)t+=" "+e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n '})],t)}()},"t/Na":function(t,e,n){"use strict";n.d(e,"m",function(){return D}),n.d(e,"p",function(){return j}),n.d(e,"q",function(){return F}),n.d(e,"n",function(){return P}),n.d(e,"o",function(){return M}),n.d(e,"b",function(){return f}),n.d(e,"g",function(){return d}),n.d(e,"c",function(){return C}),n.d(e,"a",function(){return N}),n.d(e,"d",function(){return Y}),n.d(e,"e",function(){return G}),n.d(e,"l",function(){return z}),n.d(e,"h",function(){return m}),n.d(e,"f",function(){return O}),n.d(e,"i",function(){return L}),n.d(e,"k",function(){return E}),n.d(e,"j",function(){return q});var a=n("mrSG"),r=n("CcnG"),i=n("F/XL"),o=n("6blF"),s=n("Phjn"),u=n("VnD/"),c=n("67Y/"),l=n("Ip0R"),d=function(){return function(){}}(),f=function(){return function(){}}(),p=function(){function t(t){var e=this;this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?function(){e.headers=new Map,t.split("\n").forEach(function(t){var n=t.indexOf(":");if(n>0){var a=t.slice(0,n),r=a.toLowerCase(),i=t.slice(n+1).trim();e.maybeSetNormalizedName(a,r),e.headers.has(r)?e.headers.get(r).push(i):e.headers.set(r,[i])}})}:function(){e.headers=new Map,Object.keys(t).forEach(function(n){var a=t[n],r=n.toLowerCase();"string"==typeof a&&(a=[a]),a.length>0&&(e.headers.set(r,a),e.maybeSetNormalizedName(n,r))})}:this.headers=new Map}return t.prototype.has=function(t){return this.init(),this.headers.has(t.toLowerCase())},t.prototype.get=function(t){this.init();var e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null},t.prototype.keys=function(){return this.init(),Array.from(this.normalizedNames.values())},t.prototype.getAll=function(t){return this.init(),this.headers.get(t.toLowerCase())||null},t.prototype.append=function(t,e){return this.clone({name:t,value:e,op:"a"})},t.prototype.set=function(t,e){return this.clone({name:t,value:e,op:"s"})},t.prototype.delete=function(t,e){return this.clone({name:t,value:e,op:"d"})},t.prototype.maybeSetNormalizedName=function(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)},t.prototype.init=function(){var e=this;this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(function(t){return e.applyUpdate(t)}),this.lazyUpdate=null))},t.prototype.copyFrom=function(t){var e=this;t.init(),Array.from(t.headers.keys()).forEach(function(n){e.headers.set(n,t.headers.get(n)),e.normalizedNames.set(n,t.normalizedNames.get(n))})},t.prototype.clone=function(e){var n=new t;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([e]),n},t.prototype.applyUpdate=function(t){var e=t.name.toLowerCase();switch(t.op){case"a":case"s":var n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);var r=("a"===t.op?this.headers.get(e):void 0)||[];r.push.apply(r,Object(a.__spread)(n)),this.headers.set(e,r);break;case"d":var i=t.value;if(i){var o=this.headers.get(e);if(!o)return;0===(o=o.filter(function(t){return-1===i.indexOf(t)})).length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,o)}else this.headers.delete(e),this.normalizedNames.delete(e)}},t.prototype.forEach=function(t){var e=this;this.init(),Array.from(this.normalizedNames.keys()).forEach(function(n){return t(e.normalizedNames.get(n),e.headers.get(n))})},t}(),h=function(){function t(){}return t.prototype.encodeKey=function(t){return g(t)},t.prototype.encodeValue=function(t){return g(t)},t.prototype.decodeKey=function(t){return decodeURIComponent(t)},t.prototype.decodeValue=function(t){return decodeURIComponent(t)},t}();function g(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}var m=function(){function t(t){void 0===t&&(t={});var e,n,r,i=this;if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new h,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=(e=t.fromString,n=this.encoder,r=new Map,e.length>0&&e.split("&").forEach(function(t){var e=t.indexOf("="),i=Object(a.__read)(-1==e?[n.decodeKey(t),""]:[n.decodeKey(t.slice(0,e)),n.decodeValue(t.slice(e+1))],2),o=i[0],s=i[1],u=r.get(o)||[];u.push(s),r.set(o,u)}),r)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(function(e){var n=t.fromObject[e];i.map.set(e,Array.isArray(n)?n:[n])})):this.map=null}return t.prototype.has=function(t){return this.init(),this.map.has(t)},t.prototype.get=function(t){this.init();var e=this.map.get(t);return e?e[0]:null},t.prototype.getAll=function(t){return this.init(),this.map.get(t)||null},t.prototype.keys=function(){return this.init(),Array.from(this.map.keys())},t.prototype.append=function(t,e){return this.clone({param:t,value:e,op:"a"})},t.prototype.set=function(t,e){return this.clone({param:t,value:e,op:"s"})},t.prototype.delete=function(t,e){return this.clone({param:t,value:e,op:"d"})},t.prototype.toString=function(){var t=this;return this.init(),this.keys().map(function(e){var n=t.encoder.encodeKey(e);return t.map.get(e).map(function(e){return n+"="+t.encoder.encodeValue(e)}).join("&")}).join("&")},t.prototype.clone=function(e){var n=new t({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat([e]),n},t.prototype.init=function(){var t=this;null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(function(e){return t.map.set(e,t.cloneFrom.map.get(e))}),this.updates.forEach(function(e){switch(e.op){case"a":case"s":var n=("a"===e.op?t.map.get(e.param):void 0)||[];n.push(e.value),t.map.set(e.param,n);break;case"d":if(void 0===e.value){t.map.delete(e.param);break}var a=t.map.get(e.param)||[],r=a.indexOf(e.value);-1!==r&&a.splice(r,1),a.length>0?t.map.set(e.param,a):t.map.delete(e.param)}}),this.cloneFrom=null)},t}();function b(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function y(t){return"undefined"!=typeof Blob&&t instanceof Blob}function v(t){return"undefined"!=typeof FormData&&t instanceof FormData}var x=function(){function t(t,e,n,a){var r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||a?(this.body=void 0!==n?n:null,r=a):r=n,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.params&&(this.params=r.params)),this.headers||(this.headers=new p),this.params){var i=this.params.toString();if(0===i.length)this.urlWithParams=e;else{var o=e.indexOf("?");this.urlWithParams=e+(-1===o?"?":o=200&&this.status<300}}(),w=function(t){function e(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=_.ResponseHeader,n}return Object(a.__extends)(e,t),e.prototype.clone=function(t){return void 0===t&&(t={}),new e({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})},e}(T),S=function(t){function e(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=_.Response,n.body=void 0!==e.body?e.body:null,n}return Object(a.__extends)(e,t),e.prototype.clone=function(t){return void 0===t&&(t={}),new e({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})},e}(T),O=function(t){function e(e){var n=t.call(this,e,0,"Unknown Error")||this;return n.name="HttpErrorResponse",n.ok=!1,n.message=n.status>=200&&n.status<300?"Http failure during parsing for "+(e.url||"(unknown url)"):"Http failure response for "+(e.url||"(unknown url)")+": "+e.status+" "+e.statusText,n.error=e.error||null,n}return Object(a.__extends)(e,t),e}(T);function I(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}var C=function(){function t(t){this.handler=t}return t.prototype.request=function(t,e,n){var a,r=this;if(void 0===n&&(n={}),t instanceof x)a=t;else{var o;o=n.headers instanceof p?n.headers:new p(n.headers);var l=void 0;n.params&&(l=n.params instanceof m?n.params:new m({fromObject:n.params})),a=new x(t,e,void 0!==n.body?n.body:null,{headers:o,params:l,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}var d=Object(i.a)(a).pipe(Object(s.a)(function(t){return r.handler.handle(t)}));if(t instanceof x||"events"===n.observe)return d;var f=d.pipe(Object(u.a)(function(t){return t instanceof S}));switch(n.observe||"body"){case"body":switch(a.responseType){case"arraybuffer":return f.pipe(Object(c.a)(function(t){if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body}));case"blob":return f.pipe(Object(c.a)(function(t){if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body}));case"text":return f.pipe(Object(c.a)(function(t){if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body}));case"json":default:return f.pipe(Object(c.a)(function(t){return t.body}))}case"response":return f;default:throw new Error("Unreachable: unhandled observe type "+n.observe+"}")}},t.prototype.delete=function(t,e){return void 0===e&&(e={}),this.request("DELETE",t,e)},t.prototype.get=function(t,e){return void 0===e&&(e={}),this.request("GET",t,e)},t.prototype.head=function(t,e){return void 0===e&&(e={}),this.request("HEAD",t,e)},t.prototype.jsonp=function(t,e){return this.request("JSONP",t,{params:(new m).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})},t.prototype.options=function(t,e){return void 0===e&&(e={}),this.request("OPTIONS",t,e)},t.prototype.patch=function(t,e,n){return void 0===n&&(n={}),this.request("PATCH",t,I(n,e))},t.prototype.post=function(t,e,n){return void 0===n&&(n={}),this.request("POST",t,I(n,e))},t.prototype.put=function(t,e,n){return void 0===n&&(n={}),this.request("PUT",t,I(n,e))},t}(),k=function(){function t(t,e){this.next=t,this.interceptor=e}return t.prototype.handle=function(t){return this.interceptor.intercept(t,this.next)},t}(),N=new r.InjectionToken("HTTP_INTERCEPTORS"),R=function(){function t(){}return t.prototype.intercept=function(t,e){return e.handle(t)},t}(),A=/^\)\]\}',?\n/,E=function(){return function(){}}(),D=function(){function t(){}return t.prototype.build=function(){return new XMLHttpRequest},t}(),L=function(){function t(t){this.xhrFactory=t}return t.prototype.handle=function(t){var e=this;if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without JsonpClientModule installed.");return new o.a(function(n){var a=e.xhrFactory.build();if(a.open(t.method,t.urlWithParams),t.withCredentials&&(a.withCredentials=!0),t.headers.forEach(function(t,e){return a.setRequestHeader(t,e.join(","))}),t.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){var r=t.detectContentTypeHeader();null!==r&&a.setRequestHeader("Content-Type",r)}if(t.responseType){var i=t.responseType.toLowerCase();a.responseType="json"!==i?i:"text"}var o=t.serializeBody(),s=null,u=function(){if(null!==s)return s;var e=1223===a.status?204:a.status,n=a.statusText||"OK",r=new p(a.getAllResponseHeaders()),i=function(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||t.url;return s=new w({headers:r,status:e,statusText:n,url:i})},c=function(){var e=u(),r=e.headers,i=e.status,o=e.statusText,s=e.url,c=null;204!==i&&(c=void 0===a.response?a.responseText:a.response),0===i&&(i=c?200:0);var l=i>=200&&i<300;if("json"===t.responseType&&"string"==typeof c){var d=c;c=c.replace(A,"");try{c=""!==c?JSON.parse(c):null}catch(f){c=d,l&&(l=!1,c={error:f,text:c})}}l?(n.next(new S({body:c,headers:r,status:i,statusText:o,url:s||void 0})),n.complete()):n.error(new O({error:c,headers:r,status:i,statusText:o,url:s||void 0}))},l=function(t){var e=u().url,r=new O({error:t,status:a.status||0,statusText:a.statusText||"Unknown Error",url:e||void 0});n.error(r)},d=!1,f=function(e){d||(n.next(u()),d=!0);var r={type:_.DownloadProgress,loaded:e.loaded};e.lengthComputable&&(r.total=e.total),"text"===t.responseType&&a.responseText&&(r.partialText=a.responseText),n.next(r)},h=function(t){var e={type:_.UploadProgress,loaded:t.loaded};t.lengthComputable&&(e.total=t.total),n.next(e)};return a.addEventListener("load",c),a.addEventListener("error",l),t.reportProgress&&(a.addEventListener("progress",f),null!==o&&a.upload&&a.upload.addEventListener("progress",h)),a.send(o),n.next({type:_.Sent}),function(){a.removeEventListener("error",l),a.removeEventListener("load",c),t.reportProgress&&(a.removeEventListener("progress",f),null!==o&&a.upload&&a.upload.removeEventListener("progress",h)),a.abort()}})},t}(),P=new r.InjectionToken("XSRF_COOKIE_NAME"),M=new r.InjectionToken("XSRF_HEADER_NAME"),q=function(){return function(){}}(),j=function(){function t(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}return t.prototype.getToken=function(){if("server"===this.platform)return null;var t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(l["\u0275parseCookieValue"])(t,this.cookieName),this.lastCookieString=t),this.lastToken},t}(),F=function(){function t(t,e){this.tokenService=t,this.headerName=e}return t.prototype.intercept=function(t,e){var n=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||n.startsWith("http://")||n.startsWith("https://"))return e.handle(t);var a=this.tokenService.getToken();return null===a||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,a)})),e.handle(t)},t}(),z=function(){function t(t,e){this.backend=t,this.injector=e,this.chain=null}return t.prototype.handle=function(t){if(null===this.chain){var e=this.injector.get(N,[]);this.chain=e.reduceRight(function(t,e){return new k(t,e)},this.backend)}return this.chain.handle(t)},t}(),G=function(){function t(){}var e;return e=t,t.disable=function(){return{ngModule:e,providers:[{provide:F,useClass:R}]}},t.withOptions=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[t.cookieName?{provide:P,useValue:t.cookieName}:[],t.headerName?{provide:M,useValue:t.headerName}:[]]}},t}(),Y=function(){return function(){}}()},"t/zF":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(t,e){this.name=t,this.metadata=e}}()},t1N5:function(t,e){function n(t){var e,n,a=t[0]/255,r=t[1]/255,i=t[2]/255,o=Math.min(a,r,i),s=Math.max(a,r,i),u=s-o;return s==o?e=0:a==s?e=(r-i)/u:r==s?e=2+(i-a)/u:i==s&&(e=4+(a-r)/u),(e=Math.min(60*e,360))<0&&(e+=360),n=(o+s)/2,[e,100*(s==o?0:n<=.5?u/(s+o):u/(2-s-o)),100*n]}function a(t){var e,n,a=t[0],r=t[1],i=t[2],o=Math.min(a,r,i),s=Math.max(a,r,i),u=s-o;return n=0==s?0:u/s*1e3/10,s==o?e=0:a==s?e=(r-i)/u:r==s?e=2+(i-a)/u:i==s&&(e=4+(a-r)/u),(e=Math.min(60*e,360))<0&&(e+=360),[e,n,s/255*1e3/10]}function i(t){var e=t[0],a=t[1],r=t[2];return[n(t)[0],1/255*Math.min(e,Math.min(a,r))*100,100*(r=1-1/255*Math.max(e,Math.max(a,r)))]}function o(t){var e,n=t[0]/255,a=t[1]/255,r=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-a,1-r)))/(1-e)||0),100*((1-a-e)/(1-e)||0),100*((1-r-e)/(1-e)||0),100*e]}function s(t){return S[JSON.stringify(t)]}function u(t){var e=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)),100*(.2126*e+.7152*n+.0722*a),100*(.0193*e+.1192*n+.9505*a)]}function c(t){var e=u(t),n=e[0],a=e[1],r=e[2];return a/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(n-a),200*(a-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]}function l(t){var e,n,a,r,i,o=t[0]/360,s=t[1]/100,u=t[2]/100;if(0==s)return[i=255*u,i,i];e=2*u-(n=u<.5?u*(1+s):u+s-u*s),r=[0,0,0];for(var c=0;c<3;c++)(a=o+1/3*-(c-1))<0&&a++,a>1&&a--,r[c]=255*(i=6*a<1?e+6*(n-e)*a:2*a<1?n:3*a<2?e+(n-e)*(2/3-a)*6:e);return r}function d(t){var e=t[0]/60,n=t[1]/100,a=t[2]/100,r=Math.floor(e)%6,i=e-Math.floor(e),o=255*a*(1-n),s=255*a*(1-n*i),u=255*a*(1-n*(1-i));switch(a*=255,r){case 0:return[a,u,o];case 1:return[s,a,o];case 2:return[o,a,u];case 3:return[o,s,a];case 4:return[u,o,a];case 5:return[a,o,s]}}function f(t){var e,n,a,i,o=t[0]/360,s=t[1]/100,u=t[2]/100,c=s+u;switch(c>1&&(s/=c,u/=c),a=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(a=1-a),i=s+a*((n=1-u)-s),e){default:case 6:case 0:r=n,g=i,b=s;break;case 1:r=i,g=n,b=s;break;case 2:r=s,g=n,b=i;break;case 3:r=s,g=i,b=n;break;case 4:r=i,g=s,b=n;break;case 5:r=n,g=s,b=i}return[255*r,255*g,255*b]}function p(t){var e=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,t[0]/100*(1-a)+a)),255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function h(t){var e,n,a,r=t[0]/100,i=t[1]/100,o=t[2]/100;return n=-.9689*r+1.8758*i+.0415*o,a=.0557*r+-.204*i+1.057*o,e=(e=3.2406*r+-1.5372*i+-.4986*o)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(a=Math.min(Math.max(0,a),1))]}function m(t){var e=t[0],n=t[1],a=t[2];return n/=100,a/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function y(t){var e,n,a,r,i=t[0],o=t[1],s=t[2];return i<=8?r=(n=100*i/903.3)/100*7.787+16/116:(n=100*Math.pow((i+16)/116,3),r=Math.pow(n/100,1/3)),[e=e/95.047<=.008856?e=95.047*(o/500+r-16/116)/7.787:95.047*Math.pow(o/500+r,3),n,a=a/108.883<=.008859?a=108.883*(r-s/200-16/116)/7.787:108.883*Math.pow(r-s/200,3)]}function v(t){var e,n=t[0],a=t[1],r=t[2];return(e=360*Math.atan2(r,a)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(a*a+r*r),e]}function x(t){return h(y(t))}function _(t){var e,n=t[1];return e=t[2]/360*2*Math.PI,[t[0],n*Math.cos(e),n*Math.sin(e)]}function T(t){return w[t]}t.exports={rgb2hsl:n,rgb2hsv:a,rgb2hwb:i,rgb2cmyk:o,rgb2keyword:s,rgb2xyz:u,rgb2lab:c,rgb2lch:function(t){return v(c(t))},hsl2rgb:l,hsl2hsv:function(t){var e=t[1]/100,n=t[2]/100;return 0===n?[0,0,0]:[t[0],2*(e*=(n*=2)<=1?n:2-n)/(n+e)*100,(n+e)/2*100]},hsl2hwb:function(t){return i(l(t))},hsl2cmyk:function(t){return o(l(t))},hsl2keyword:function(t){return s(l(t))},hsv2rgb:d,hsv2hsl:function(t){var e,n,a=t[1]/100,r=t[2]/100;return e=a*r,[t[0],100*(e=(e/=(n=(2-a)*r)<=1?n:2-n)||0),100*(n/=2)]},hsv2hwb:function(t){return i(d(t))},hsv2cmyk:function(t){return o(d(t))},hsv2keyword:function(t){return s(d(t))},hwb2rgb:f,hwb2hsl:function(t){return n(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return o(f(t))},hwb2keyword:function(t){return s(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return n(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return i(p(t))},cmyk2keyword:function(t){return s(p(t))},keyword2rgb:T,keyword2hsl:function(t){return n(T(t))},keyword2hsv:function(t){return a(T(t))},keyword2hwb:function(t){return i(T(t))},keyword2cmyk:function(t){return o(T(t))},keyword2lab:function(t){return c(T(t))},keyword2xyz:function(t){return u(T(t))},xyz2rgb:h,xyz2lab:m,xyz2lch:function(t){return v(m(t))},lab2xyz:y,lab2rgb:x,lab2lch:v,lch2lab:_,lch2xyz:function(t){return y(_(t))},lch2rgb:function(t){return x(_(t))}};var w={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},S={};for(var O in w)S[JSON.stringify(w[O])]=O},t9fZ:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("FFOo"),i=n("b7mW"),o=n("G5J1");function s(t){return function(e){return 0===t?Object(o.b)():e.lift(new u(t))}}var u=function(){function t(t){if(this.total=t,this.total<0)throw new i.a}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.total))},t}(),c=function(t){function e(e,n){var a=t.call(this,e)||this;return a.total=n,a.count=0,a}return a.__extends(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(r.a)},tAZD:function(t,e,n){var a,r,i;!function(o){if("object"==typeof t.exports){var s=o(0,e);void 0!==s&&(t.exports=s)}else r=[n,e],void 0===(i="function"==typeof(a=o)?a.apply(e,r):a)||(t.exports=i)}(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=void 0;e.default=["en",[["a","p"],["AM","PM"],n],[["AM","PM"],n,n],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],n,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],n,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",n,"{1} 'at' {0}",n],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"$","US Dollar",{},function(t){var e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}]})},tFKq:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=e.maxWidth&&(t=e.maxWidth),this.resize.emit({column:e,prevValue:e.width,newValue:t})},t.prototype.onColumnReordered=function(t){var e=t.prevIndex,n=t.newIndex,a=t.model,r=this.getColumn(n);r.isTarget=!1,r.targetMarkerContext=void 0,this.reorder.emit({column:a,prevValue:e,newValue:n})},t.prototype.onTargetChanged=function(t){var e=t.prevIndex,n=t.newIndex,a=t.initialIndex;if(e||0===e){var r=this.getColumn(e);r.isTarget=!1,r.targetMarkerContext=void 0}if(n||0===n){var i=this.getColumn(n);i.isTarget=!0,a!==n&&(i.targetMarkerContext={class:"targetMarker ".concat(a>n?"dragFromRight":"dragFromLeft")})}},t.prototype.getColumn=function(t){var e=this._columnsByPin[0].columns.length;if(t\n \n \n \n \n \n ',host:{class:"datatable-header"},changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},tGlX:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}n("wd/R").defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},tHPV:function(t,e,n){"use strict";var a=n("mrSG"),r=function(t){function e(e,n){var a=t.call(this,e,n)||this;return a.scheduler=e,a.work=n,a}return a.__extends(e,t),e.prototype.requestAsyncId=function(e,n,a){return void 0===a&&(a=0),null!==a&&a>0?t.prototype.requestAsyncId.call(this,e,n,a):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame(function(){return e.flush(null)})))},e.prototype.recycleAsyncId=function(e,n,a){if(void 0===a&&(a=0),null!==a&&a>0||null===a&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,a);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)},e}(n("h9Dq").a),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,a=-1,r=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++a=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"enjing":t<15?"siyang":t<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}()},tjFV:function(t,e,n){"use strict";var a=n("CDJp"),r=n("RDha"),i=n("fELs");t.exports={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=r.clone(n)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?r.merge({},[a.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=r.extend(this.defaults[t],e))},addScalesToLayout:function(t){r.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,i.addBox(t,e)})}}},ty8c:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=n("1PfE");e.NodeEditableDirective=function(){function t(t,e){this.renderer=t,this.elementRef=e,this.valueChanged=new a.EventEmitter(!1)}return t.prototype.ngOnInit=function(){var t=this.elementRef.nativeElement;t&&t.focus(),this.renderer.setProperty(t,"value",this.nodeValue)},t.prototype.applyNewValue=function(t){this.valueChanged.emit({type:"keyup",value:t})},t.prototype.applyNewValueByLoosingFocus=function(t){this.valueChanged.emit({type:"blur",value:t})},t.prototype.cancelEditing=function(){this.valueChanged.emit({type:"keyup",value:this.nodeValue,action:r.NodeEditableEventAction.Cancel})},t.decorators=[{type:a.Directive,args:[{selector:"[nodeEditable]"}]}],t.propDecorators={nodeValue:[{type:a.Input,args:["nodeEditable"]}],valueChanged:[{type:a.Output}],applyNewValue:[{type:a.HostListener,args:["keyup.enter",["$event.target.value"]]}],applyNewValueByLoosingFocus:[{type:a.HostListener,args:["blur",["$event.target.value"]]}],cancelEditing:[{type:a.HostListener,args:["keyup.esc"]}]},t}()},u0Op:function(t,e,n){"use strict";var a=n("TC34"),r={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),-a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),a*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),t<1?a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:a*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-r.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*r.easeInBounce(2*t):.5*r.easeOutBounce(2*t-1)+.5}};t.exports={effects:r},a.easingEffects=r},u3GI:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}n("wd/R").defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},uEye:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},uIqm:function(t,e,n){"use strict";var a=n("CcnG"),r=n("y9jh"),i=n("LvDl"),o=n("gI3B"),s=n("6blF"),u=n("x38r"),c=function(){return function(t){this.errorConfig={resetData:!0,displayError:!0},this.error=t}}(),l=n("vCyI");n.d(e,"a",function(){return d});var d=function(){function t(t,e){this.ngZone=t,this.cdRef=e,this.columnMode="flex",this.toolHeader=!0,this.header=!0,this.footer=!0,this.limit=10,this.autoReload=5e3,this.identifier="id",this.forceIdentifier=!1,this.selectionType=void 0,this.updateSelectionOnRefresh="onChange",this.autoSave=!0,this.searchableObjects=!1,this.fetchData=new a.EventEmitter,this.updateSelection=new a.EventEmitter,this.selection=new l.a,this.cellTemplates={},this.search="",this.rows=[],this.loadingIndicator=!0,this.loadingError=!1,this.paginationClasses={pagerLeftArrow:"i fa fa-angle-double-left",pagerRightArrow:"i fa fa-angle-double-right",pagerPrevious:"i fa fa-angle-left",pagerNext:"i fa fa-angle-right"},this.userConfig={},this.localStorage=window.localStorage,this.updating=!1}return t.prototype.ngOnInit=function(){var t=this;if(window.addEventListener("mouseenter",function(t){t.stopPropagation()},!0),this._addTemplates(),!this.sorts){var e=-1!==i.findIndex(this.columns,["prop",this.identifier]);this.sorts=this.createSortingDefinition(e?this.identifier:this.columns[0].prop+""),e||this.forceIdentifier||(this.identifier=this.columns[0].prop+"")}this.initUserConfig(),this.columns.forEach(function(e){e.cellTransformation&&(e.cellTemplate=t.cellTemplates[e.cellTransformation]),e.flexGrow||(e.flexGrow=e.prop+""===t.identifier?1:2),e.resizeable||(e.resizeable=!1)}),this.filterHiddenColumns(),this.fetchData.observers.length>0&&(this.loadingIndicator=!0),i.isInteger(this.autoReload)&&this.autoReload>0?this.ngZone.runOutsideAngular(function(){t.reloadSubscriber=Object(o.a)(0,t.autoReload).subscribe(function(){t.ngZone.run(function(){return t.reloadData()})})}):this.reloadData()},t.prototype.initUserConfig=function(){var t=this;this.autoSave&&(this.tableName=this._calculateUniqueTableName(this.columns),this._loadUserConfig(),this._initUserConfigAutoSave()),this.userConfig.limit||(this.userConfig.limit=this.limit),this.userConfig.sorts||(this.userConfig.sorts=this.sorts),this.userConfig.columns?this.columns.forEach(function(e,n){e.isHidden=t.userConfig.columns[n].isHidden}):this.updateUserColumns()},t.prototype._calculateUniqueTableName=function(t){var e=function(t){if(!i.isString(t))return 0;for(var e=0,n=0;n0&&(this.userConfig.limit=e)},t.prototype.reloadData=function(){var t=this;if(!this.updating){this.loadingError=!1;var e=new c(function(){t.loadingError=e.errorConfig.displayError,e.errorConfig.resetData&&(t.data=[]),t.useData()});this.fetchData.emit(e),this.updating=!0}},t.prototype.refreshBtn=function(){this.loadingIndicator=!0,this.reloadData()},t.prototype.rowIdentity=function(){var t=this;return function(e){var n=e[t.identifier];if(i.isUndefined(n))throw new Error('Wrong identifier "'+t.identifier+'" -> "'+n+'"');return n}},t.prototype.useData=function(){this.data&&(this.search.length>0?this.updateFilter():this.rows=this.data.slice(),this.reset(),this.updateSelected())},t.prototype.reset=function(){this.loadingIndicator=!1,this.updating=!1},t.prototype.updateSelected=function(){var t=this;if("never"!==this.updateSelectionOnRefresh){var e=[];this.selection.selected.forEach(function(n){for(var a=0,r=t.data;a0}),n),this.table.offset=0},t.prototype.subSearch=function(t,e,n){if(0===e.length||0===t.length)return t;var a=e.pop().replace("+"," ").split(":"),r=n.slice();return 2===a.length&&(n=r.filter(function(t){return-1!==t.name.toLowerCase().indexOf(a[0])})),t=this.basicDataSearch(i.last(a),t,n),this.subSearch(t,e,r)},t.prototype.basicDataSearch=function(t,e,n){var a=this;return 0===t.length?e:e.filter(function(e){return n.filter(function(n){var r=i.get(e,n.prop);if(i.isUndefined(n.pipe)||(r=n.pipe.transform(r)),i.isUndefined(r)||i.isNull(r))return!1;if(i.isArray(r)?r=r.join(" "):(i.isNumber(r)||i.isBoolean(r))&&(r=r.toString()),i.isObjectLike(r)){if(!a.searchableObjects)return!1;r=JSON.stringify(r)}return-1!==r.toLowerCase().indexOf(t)}).length>0})},t.prototype.getRowClass=function(){var t=this;return function(){return{clickable:!i.isUndefined(t.selectionType)}}},t}()},uKs4:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG");e.VisibilityDirective=function(){function t(t,e){this.element=t,this.zone=e,this.isVisible=!1,this.visible=new i.EventEmitter}return t.prototype.ngOnInit=function(){this.runCheck()},t.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},t.prototype.onVisibilityChange=function(){var t=this;this.zone.run(function(){t.isVisible=!0,t.visible.emit(!0)})},t.prototype.runCheck=function(){var t=this,e=function(){var n=t.element.nativeElement;n.offsetHeight&&n.offsetWidth?(clearTimeout(t.timeout),t.onVisibilityChange()):(clearTimeout(t.timeout),t.zone.runOutsideAngular(function(){t.timeout=setTimeout(function(){return e()},50)}))};this.timeout=setTimeout(function(){return e()})},a([i.HostBinding("class.visible"),r("design:type",Boolean)],t.prototype,"isVisible",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"visible",void 0),a([i.Directive({selector:"[visibilityObserver]"})],t)}()},uMaO:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(e,n){var a=t.call(this)||this;return a.subject=e,a.subscriber=n,a.closed=!1,a}return a.__extends(e,t),e.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var t=this.subject,e=t.observers;if(this.subject=null,e&&0!==e.length&&!t.isStopped&&!t.closed){var n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}},e}(n("pugT").a)},uXwI:function(t,e,n){!function(t){"use strict";var e={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(t,e,n){return n?e%10==1&&e%100!=11?t[2]:t[3]:e%10==1&&e%100!=11?t[0]:t[1]}function a(t,a,r){return t+" "+n(e[r],t,a)}function r(t,a,r){return n(e[r],t,a)}t.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function(t,e){return e?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:a,m:r,mm:a,h:r,hh:a,d:r,dd:a,M:r,MM:a,y:r,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},uYzU:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){switch(t){case"user:rbd":return"user:rbd (tcmu-runner)";default:return t}},t}()},ufoC:function(t,e,n){"use strict";var a;!function(t){t.auth="Login",t.cephfs="CephFS",t.rbd="RBD",t.pool="Pool",t.osd="OSD",t.role="Role",t.user="User"}(a||(a={}));var r=n("CcnG"),i=n("Jm/i");n.d(e,"a",function(){return u});var o=function(){return function(t,e,n){this.running=t,this.failure=e,this.success=n}}(),s=function(){function t(t,e,n,a){this.i18n=t,this.operation=e,this.involves=n,this.errors=a||function(){return{}}}return t.prototype.failure=function(t){return this.i18n("Failed to {{failure}} {{metadata}}",{failure:this.operation.failure,metadata:this.involves(t)})},t.prototype.running=function(t){return this.operation.running+" "+this.involves(t)},t.prototype.success=function(t){return this.operation.success+" "+this.involves(t)},t}(),u=function(){function t(t){var e=this;this.i18n=t,this.defaultMessage=this.newTaskMessage(new o(this.i18n("Executing"),this.i18n("execute"),this.i18n("Executed")),function(t){return t&&(a[t.component]||t.component)||e.i18n("unknown task")},function(){return{}}),this.commonOperations={create:new o(this.i18n("Creating"),this.i18n("create"),this.i18n("Created")),update:new o(this.i18n("Updating"),this.i18n("update"),this.i18n("Updated")),delete:new o(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted"))},this.rbd={default:function(t){return e.i18n("RBD '{{id}}'",{id:t.pool_name+"/"+t.image_name})},child:function(t){return e.i18n("RBD '{{id}}'",{id:t.child_pool_name+"/"+t.child_image_name})},destination:function(t){return e.i18n("RBD '{{id}}'",{id:t.dest_pool_name+"/"+t.dest_image_name})},snapshot:function(t){return e.i18n("RBD snapshot '{{id}}'",{id:t.pool_name+"/"+t.image_name+"@"+t.snapshot_name})}},this.rbd_mirroring={pool:function(t){return e.i18n("mirror mode for pool '{{id}}'",{id:""+t.pool_name})},pool_peer:function(t){return e.i18n("mirror peer for pool '{{id}}'",{id:""+t.pool_name})}},this.grafana={update_dashboards:function(){return e.i18n("all dashboards")}},this.messages={"pool/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.pool(t)},function(t){return{17:e.i18n("Name is already used by {{pool_name}}.",{pool_name:e.pool(t)})}}),"pool/edit":this.newTaskMessage(this.commonOperations.update,function(t){return e.pool(t)},function(t){return{17:e.i18n("Name is already used by {{pool_name}}.",{pool_name:e.pool(t)})}}),"pool/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.pool(t)}),"ecp/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.ecp(t)},function(t){return{17:e.i18n("Name is already used by {{name}}.",{name:e.ecp(t)})}}),"ecp/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.ecp(t)}),"rbd/create":this.newTaskMessage(this.commonOperations.create,this.rbd.default,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.default(t)})}}),"rbd/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.default,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.default(t)})}}),"rbd/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.default,function(t){return{39:e.i18n("{{rbd_name}} contains snapshots.",{rbd_name:e.rbd.default(t)})}}),"rbd/clone":this.newTaskMessage(new o(this.i18n("Cloning"),this.i18n("clone"),this.i18n("Cloned")),this.rbd.child,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.child(t)}),22:e.i18n("Snapshot of {{rbd_name}} must be protected.",{rbd_name:e.rbd.child(t)})}}),"rbd/copy":this.newTaskMessage(new o(this.i18n("Copying"),this.i18n("copy"),this.i18n("Copied")),this.rbd.destination,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.destination(t)})}}),"rbd/flatten":this.newTaskMessage(new o(this.i18n("Flattening"),this.i18n("flatten"),this.i18n("Flattened")),this.rbd.default),"rbd/snap/create":this.newTaskMessage(this.commonOperations.create,this.rbd.snapshot,function(t){return{17:e.i18n("Name is already used by {{snap_name}}.",{snap_name:e.rbd.snapshot(t)})}}),"rbd/snap/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.snapshot,function(t){return{16:e.i18n("Cannot unprotect {{snap_name}} because it contains child images.",{snap_name:e.rbd.snapshot(t)})}}),"rbd/snap/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.snapshot,function(t){return{16:e.i18n("Cannot delete {{snap_name}} because it's protected.",{snap_name:e.rbd.snapshot(t)})}}),"rbd/snap/rollback":this.newTaskMessage(new o(this.i18n("Rolling back"),this.i18n("rollback"),this.i18n("Rolled back")),this.rbd.snapshot),"rbd/trash/move":this.newTaskMessage(new o(this.i18n("Moving"),this.i18n("move"),this.i18n("Moved")),function(t){return e.i18n("image '{{id}}' to trash",{id:t.pool_name+"/"+t.image_name})},function(){return{2:e.i18n("Could not find image.")}}),"rbd/trash/restore":this.newTaskMessage(new o(this.i18n("Restoring"),this.i18n("restore"),this.i18n("Restored")),function(t){return e.i18n("image '{{id}}' into '{{new_id}}'",{id:t.pool_name+"@"+t.image_id,new_id:t.pool_name+"/"+t.new_image_name})},function(t){return{17:e.i18n("Image name '{{id}}' is already in use.",{id:t.pool_name+"/"+t.new_image_name})}}),"rbd/trash/remove":this.newTaskMessage(new o(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted")),function(t){return e.i18n("image '{{id}}'",{id:t.pool_name+"/"+t.image_name+"@"+t.image_id})}),"rbd/trash/purge":this.newTaskMessage(new o(this.i18n("Purging"),this.i18n("purge"),this.i18n("Purged")),function(t){var n=e.i18n("all pools");return t.pool_name&&(n="'"+t.pool_name+"'"),e.i18n("images from {{message}}",{message:n})}),"rbd/mirroring/pool/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool,function(){return{16:e.i18n("Cannot disable mirroring because it contains a peer.")}}),"rbd/mirroring/peer/add":this.newTaskMessage(this.commonOperations.create,this.rbd_mirroring.pool_peer,function(){return{}}),"rbd/mirroring/peer/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool_peer,function(){return{}}),"rbd/mirroring/peer/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd_mirroring.pool_peer,function(){return{}}),"iscsi/target/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.iscsiTarget(t)}),"iscsi/target/edit":this.newTaskMessage(this.commonOperations.update,function(t){return e.iscsiTarget(t)}),"iscsi/target/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.iscsiTarget(t)}),"nfs/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.nfs(t)}),"nfs/edit":this.newTaskMessage(this.commonOperations.update,function(t){return e.nfs(t)}),"nfs/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.nfs(t)}),"grafana/dashboards/update":this.newTaskMessage(this.commonOperations.update,this.grafana.update_dashboards,function(){return{}})}}return t.prototype.newTaskMessage=function(t,e,n){return new s(this.i18n,t,e,n)},t.prototype.pool=function(t){return this.i18n("pool '{{pool_name}}'",{pool_name:t.pool_name})},t.prototype.ecp=function(t){return this.i18n("erasure code profile '{{name}}'",{name:t.name})},t.prototype.iscsiTarget=function(t){return this.i18n("target '{{target_iqn}}'",{target_iqn:t.target_iqn})},t.prototype.nfs=function(t){return this.i18n("NFS {{nfs_id}}",{nfs_id:"'"+t.cluster_id+":"+(t.export_id?t.export_id:t.path)+"'"})},t.prototype._getTaskTitle=function(t){return this.messages[t.name]||this.defaultMessage},t.prototype.getSuccessTitle=function(t){return this._getTaskTitle(t).success(t.metadata)},t.prototype.getErrorMessage=function(t){return this._getTaskTitle(t).errors(t.metadata)[t.exception.code]||t.exception.detail},t.prototype.getErrorTitle=function(t){return this._getTaskTitle(t).failure(t.metadata)},t.prototype.getRunningTitle=function(t){return this._getTaskTitle(t).running(t.metadata)},t.prototype.getRunningText=function(t){return this._getTaskTitle(t).operation.running},t.ngInjectableDef=r.defineInjectable({factory:function(){return new t(r.inject(i.a))},token:t,providedIn:"root"}),t}()},uhwM:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return t.join(", ")},t}()},urB8:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=n("buEt"),i=n("QGcS");e.NodeDraggableService=function(){function t(){this.draggableNodeEvents$=new r.Subject}return t.prototype.fireNodeDragged=function(t,e){t.tree&&!t.tree.isStatic()&&this.draggableNodeEvents$.next(new i.NodeDraggableEvent(t,e))},t.prototype.captureNode=function(t){this.capturedNode=t},t.prototype.getCapturedNode=function(){return this.capturedNode},t.prototype.releaseCapturedNode=function(){this.capturedNode=null},t.decorators=[{type:a.Injectable}],t}()},uxXc:function(t,e,n){var a=n("t1N5"),r=function(){return new c};for(var i in a){r[i+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),a[t](e)}}(i);var o=/(\w+)2(\w+)/.exec(i),s=o[1],u=o[2];(r[s]=r[s]||{})[u]=r[i]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=a[t](e);if("string"==typeof n||void 0===n)return n;for(var r=0;r0,this.hasSingleSelection=1===this.selected.length,this.hasMultiSelection=this.selected.length>1},t.prototype.first=function(){return this.hasSelection?this.selected[0]:null},t}()},vOVK:function(t,e,n){var a={"./messages.cs.xlf":"MaEZ","./messages.de-DE.xlf":"BY/9","./messages.en-US.xlf":"SXH0","./messages.es-ES.xlf":"csGn","./messages.fr-FR.xlf":"obpP","./messages.id-ID.xlf":"nmKl","./messages.it-IT.xlf":"hHou","./messages.ja-JP.xlf":"waXJ","./messages.ko-KR.xlf":"Q3dv","./messages.pl-PL.xlf":"/6aS","./messages.pt-BR.xlf":"OWV/","./messages.zh-CN.xlf":"fB8H","./messages.zh-TW.xlf":"Dysq"};function r(t){var e=i(t);return n(e)}function i(t){var e=a[t];if(!(e+1)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return e}r.keys=function(){return Object.keys(a)},r.resolve=i,t.exports=r,r.id="vOVK"},vpM6:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("global",{plugins:{filler:{propagate:!0}}});var o={dataset:function(t){var e=t.fill,n=t.chart,a=n.getDatasetMeta(e),r=a&&n.isDatasetVisible(e)&&a.dataset._children||[],i=r.length||0;return i?function(t,e){return e=n)&&a;switch(i){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return i;default:return!1}}function u(t){var e,n=t.el._model||{},a=t.el._scale||{},r=t.fill,i=null;if(isFinite(r))return null;if("start"===r?i=void 0===n.scaleBottom?a.bottom:n.scaleBottom:"end"===r?i=void 0===n.scaleTop?a.top:n.scaleTop:void 0!==n.scaleZero?i=n.scaleZero:a.getBasePosition?i=a.getBasePosition():a.getBasePixel&&(i=a.getBasePixel()),null!=i){if(void 0!==i.x&&void 0!==i.y)return i;if("number"==typeof i&&isFinite(i))return{x:(e=a.isHorizontal())?i:null,y:e?null:i}}return null}function c(t,e,n){var a,r=t[e].fill,i=[e];if(!n)return r;for(;!1!==r&&-1===i.indexOf(r);){if(!isFinite(r))return r;if(!(a=t[r]))return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function l(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),o[n](t))}function d(t){return t&&!t.skip}function f(t,e,n,a,r){var o;if(a&&r){for(t.moveTo(e[0].x,e[0].y),o=1;o0;--o)i.canvas.lineTo(t,n[o],n[o-1],!0)}}t.exports={id:"filler",afterDatasetsUpdate:function(t,e){var n,a,i,o,d=(t.data.datasets||[]).length,f=e.propagate,p=[];for(a=0;a=2;return function(c){return c.pipe(t?Object(r.a)(function(e,n){return t(e,n,c)}):u.a,Object(i.a)(1),n?Object(s.a)(e):Object(o.a)(function(){return new a.a}))}}},w5QO:function(t,e,n){"use strict";e.noop=function(){}},wQk9:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}()},waXJ:function(t,e){t.exports='\n \n \n \n Toggle navigation\n \u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u306e\u5207\u308a\u66ff\u3048\n \n \n Dashboard\n \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\n \n \n Cluster\n \u30af\u30e9\u30b9\u30bf\n \n \n Hosts\n \u30db\u30b9\u30c8\n \n \n Monitors\n \u30e2\u30cb\u30bf\u30fc\n \n \n OSDs\n OSD\n \n \n Configuration\n \u8a2d\u5b9a\n \n \n CRUSH map\n CRUSH\u30de\u30c3\u30d7\n \n \n Manager modules\n \u30de\u30cd\u30fc\u30b8\u30e3\u30e2\u30b8\u30e5\u30fc\u30eb\n \n \n Logs\n \u30ed\u30b0\n \n \n Alerts\n \u30a2\u30e9\u30fc\u30c8\n \n \n Silences\n Silences\n \n \n Pools\n \u30d7\u30fc\u30eb\n \n \n Block\n \u30d6\u30ed\u30c3\u30af\n \n \n Images\n \u30a4\u30e1\u30fc\u30b8\n \n \n Mirroring\n \u30df\u30e9\u30fc\u30ea\u30f3\u30b0\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\n \n \n Object Gateway\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\n \n \n Daemons\n \u30c7\u30fc\u30e2\u30f3\n \n \n Users\n \u30e6\u30fc\u30b6\n \n \n Buckets\n \u30d0\u30b1\u30c3\u30c8\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Retrieving data\n for\n \n \n . Please wait...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Displaying previously cached data\n \n for \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n \n \n Back\n \u623b\u308b\n \n \n Select a Language\n \u8a00\u8a9e\u306e\u9078\u629e\n \n \n Loading panel data...\n \u30d1\u30cd\u30eb\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n \u76e3\u8996\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\n\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Grafana\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u305b\u3093\u3002\nGrafana\u306b\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Grafana Time Picker\n Grafana Time Picker\n \n \n Reset Settings\n \u8a2d\u5b9a\u306e\u30ea\u30bb\u30c3\u30c8\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n selected\n \u9078\u629e\u6e08\u307f\n X selected\n \n \n found\n \u691c\u51fa\u6e08\u307f\n X found\n \n \n total\n \u5408\u8a08\n X total\n \n \n Edit\n \u7de8\u96c6\n \n \n Name\n \u540d\u524d\n \n \n Description\n \u8aac\u660e\n \n \n Long description\n \u9577\u3044\u8aac\u660e\n \n \n Default\n \u30c7\u30d5\u30a9\u30eb\u30c8\n \n \n Daemon default\n \u30c7\u30fc\u30e2\u30f3\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\n \n \n Services\n \u30b5\u30fc\u30d3\u30b9\n \n \n Values\n \u5024\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5927\u304d\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5927\u304d\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5c0f\u3055\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Save\n \u4fdd\u5b58\n \n \n CRUSH map viewer\n CRUSH\u30de\u30c3\u30d7\u30d3\u30e5\u30fc\u30a2\n \n \n Hosts List\n \u30db\u30b9\u30c8\u30ea\u30b9\u30c8\n \n \n Overall Performance\n \u5168\u4f53\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\n \n \n No entries found\n \u30a8\u30f3\u30c8\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\n \n \n Cluster Logs\n \u30af\u30e9\u30b9\u30bf\u30ed\u30b0\n \n \n Audit Logs\n \u76e3\u67fb\u30ed\u30b0\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n The configuration could not be loaded.\n \u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n Edit Manager module\n \u30de\u30cd\u30fc\u30b8\u30e3\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u7de8\u96c6\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u6709\u52b9\u306aUUID\u3067\u306f\u3042\u308a\u307e\u305b\u3093(\u6709\u52b9\u306aUUID\u306e\u4f8b: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8)\u3002\n \n \n The entered value needs to be a valid IP address.\n \u6709\u52b9\u306aIP\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n This field is required.\n \u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5927\u304d\u3059\u304e\u307e\u3059\u3002\n \u4ee5\u4e0b\u306e\u5024\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\n \u4ee5\u4e0a\u306e\u5024\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n The entered value needs to be a number.\n \u6570\u5b57\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n The entered value needs to be a number or decimal.\n \u6570\u5b57\u307e\u305f\u306f\u5c0f\u6570\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Update\n \u66f4\u65b0\n \n \n Status\n \u30b9\u30c6\u30fc\u30bf\u30b9\n \n \n Cluster ID\n \u30af\u30e9\u30b9\u30bfID\n \n \n monmap modified\n monmap\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\n \n \n monmap epoch\n monmap\u30a8\u30dd\u30c3\u30af\n \n \n quorum con\n \u5b9a\u6570con\n \n \n quorum mon\n \u5b9a\u6570mon\n \n \n required con\n \u5fc5\u9808\u306econ\n \n \n required mon\n \u5fc5\u9808\u306emon\n \n \n In Quorum\n \u5b9a\u6570\u5185\n \n \n Not In Quorum\n \u975e\u5b9a\u6570\u5185\n \n \n Cancel\n \u30ad\u30e3\u30f3\u30bb\u30eb\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \u9078\u629e\u3055\u308c\u305f\n \u3092\n \u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?\n \n \n \n Yes, I am sure.\n \u306f\u3044\u3002\n \n \n Cluster-wide OSD Flags\n \u30af\u30e9\u30b9\u30bf\u5168\u4f53\u306eOSD\u30d5\u30e9\u30b0\n \n \n Submit\n \u9001\u4fe1\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \u8a73\u7d30...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD\u56de\u5fa9\u512a\u5148\u5ea6\n \n \n Priority\n \u512a\u5148\u5ea6\n \n \n Customize priority values\n \u512a\u5148\u5ea6\u5024\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\n \n \n This field is required!\n \u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5927\u304d\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5927\u304d\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5c0f\u3055\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Reweight OSD\n \u518d\u91cd\u307f\u3065\u3051OSD\n \n \n The value needs to be between 0 and 1.\n \u5024\u306f0\u30681\u306e\u9593\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Reweight\n \u518d\u91cd\u307f\u3065\u3051\n \n \n OSDs \n Scrub\n \n OSD \n \u30b9\u30af\u30e9\u30d6\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Deep } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n \n \u30b9\u30af\u30e9\u30d6\u3092OSD \n \n \n \u306b\n\u9069\u7528\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {deep } }\n \n \n OSDs List\n OSD\u30ea\u30b9\u30c8\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \u7d9a\u884c\u3057\u305f\u5834\u5408\u306f\u3001\n OSD \n \n \u306f\n \n \n \u3068\u30de\u30fc\u30af\u3055\u308c\u307e\u3059\u3002\n \n \n \n The OSD is not safe to destroy!\n \u3053\u306eOSD\u3092\u5b89\u5168\u306b\u7834\u68c4\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \u7d9a\u884c\u3057\u305f\u5834\u5408\u306f\u3001\n OSD \n \n \u306f\n \n \n \u3055\u308c\u307e\u3059\u3002\n \n \n \n Details\n \u8a73\u7d30\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \u5024\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \u9589\u3058\u308b\n \n \n Delete\n \u524a\u9664\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \u30d8\u30eb\u30b9\n \n \n Statistics\n \u7d71\u8a08\u60c5\u5831\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n NFS Ganesha\u306e\u7ba1\u7406\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Clients\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\n \n \n Any client can access\n \u4efb\u610f\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\n \n \n Addresses\n \u30a2\u30c9\u30ec\u30b9\n \n \n Required field\n \u5fc5\u9808\u30d5\u30a3\u30fc\u30eb\u30c9\n \n \n Must contain one or more comma-separated values\n 1\u3064\u4ee5\u4e0a\u306e\u30ab\u30f3\u30de\u533a\u5207\u308a\u5024\u3092\u542b\u3093\u3067\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n For example:\n \u4f8b:\n \n \n Access Type\n \u30a2\u30af\u30bb\u30b9\u30bf\u30a4\u30d7\n \n \n Squash\n \u30b9\u30ab\u30c3\u30b7\u30e5\n \n \n Add clients\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u8ffd\u52a0\n \n \n Loading...\n \u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n -- No cluster available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30af\u30e9\u30b9\u30bf\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the cluster --\n -- \u30af\u30e9\u30b9\u30bf\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Add daemon\n \u30c7\u30fc\u30e2\u30f3\u306e\u8ffd\u52a0\n \n \n Storage Backend\n \u30b9\u30c8\u30ec\u30fc\u30b8\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\n \n \n -- No data pools available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the storage backend --\n -- \u30b9\u30c8\u30ec\u30fc\u30b8\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Object Gateway User\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\n \n \n -- No users available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30e6\u30fc\u30b6\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the object gateway user --\n -- \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n CephFS User ID\n CephFS\u30e6\u30fc\u30b6ID\n \n \n -- No clients available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the cephx client --\n -- cephx\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n CephFS Name\n CephFS\u540d\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30e9\u30d9\u30eb\n \n \n Enable security label\n \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30e9\u30d9\u30eb\u306e\u6709\u52b9\u5316\n \n \n CephFS Path\n CephFS\u30d1\u30b9\n \n \n Path need to start with a \'/\' and can be followed by a word\n \u30d1\u30b9\u306f\u300c/\u300d\u3067\u59cb\u307e\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\u305d\u306e\u5f8c\u308d\u306b1\u3064\u306e\u5358\u8a9e\u3092\u914d\u7f6e\u3067\u304d\u307e\u3059\n \n \n New directory will be created\n \u65b0\u3057\u3044\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\n \n \n Path\n \u30d1\u30b9\n \n \n Path can only be a single \'/\' or a word\n \u30d1\u30b9\u306f\u5358\u4e00\u306e\u300c/\u300d\u307e\u305f\u306f1\u3064\u306e\u5358\u8a9e\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n New bucket will be created\n \u65b0\u3057\u3044\u30d0\u30b1\u30c3\u30c8\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\n \n \n NFS Protocol\n NFS\u30d7\u30ed\u30c8\u30b3\u30eb\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS\u30bf\u30b0\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \u30de\u30a6\u30f3\u30c8\u306e\u4ee3\u66ff\u30a2\u30af\u30bb\u30b9(\u5148\u982d\u306b\u300c/\u300d\u304c\u3042\u3063\u3066\u306f\u3044\u3051\u307e\u305b\u3093)\u3002\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u30de\u30a6\u30f3\u30c8\u3067\u304d\u307e\u305b\u3093(\u305f\u3068\u3048\u3070\u3001\uff3b\u30bf\u30b0\uff3d = foo\u306e\u5834\u5408\u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306ffoo/baz\u3092\u30de\u30a6\u30f3\u30c8\u3067\u304d\u307e\u305b\u3093)\u3002\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \u7570\u306a\u308b\uff3b\u30bf\u30b0\uff3d\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u540c\u3058\u30d1\u30b9\u3092\u8907\u6570\u56de\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002\n \n \n Pseudo\n \u7591\u4f3c\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \u3053\u306e\n NFS v4\n \u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u304c\n \u7591\u4f3cFS\n \u5185\u3067\n\u5360\u6709\u3059\u308b\u4f4d\u7f6e(\u3053\u306e\u4f4d\u7f6e\u306f\u4e00\u610f\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059)\u3002\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \u7570\u306a\u308b\uff3b\u7591\u4f3c\uff3d\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u540c\u3058\u30d1\u30b9\u3092\u8907\u6570\u56de\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30a2\u30af\u30bb\u30b9\u30bf\u30a4\u30d7\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the access type --\n -- \u30a2\u30af\u30bb\u30b9\u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30b9\u30ab\u30c3\u30b7\u30e5\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n --Select what kind of user id squashing is performed --\n -- \u5b9f\u884c\u3055\u308c\u308b\u30e6\u30fc\u30b6ID\u30b9\u30ab\u30c3\u30b7\u30e5\u64cd\u4f5c\u306e\u7a2e\u985e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Transport Protocol\n \u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8\u30d7\u30ed\u30c8\u30b3\u30eb\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Ceph\u306b\u3088\u3046\u3053\u305d!\n The welcome message on the login page\n \n \n Username is required\n \u30e6\u30fc\u30b6\u540d\u306f\u5fc5\u9808\u3067\u3059\n \n \n Password is required\n \u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u3067\u3059\n \n \n Login\n \u30ed\u30b0\u30a4\u30f3\n \n \n Sorry, the user does not exist in Ceph.\n \u3053\u306e\u30e6\u30fc\u30b6\u306fCeph\u306b\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \n \uff3b\u30ed\u30b0\u30a4\u30f3\uff3d\u30da\u30fc\u30b8\n \u306b\u623b\u308a\u307e\u3059\u3002\u30ed\u30b0\u30a4\u30f3\u3092\u518d\u8a66\u884c\u3059\u308b\u3068\u3001Identity Provider\u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8\u3055\u308c\u307e\u3059\u3002\n \n \n \n Forbidden\n \u7981\u6b62\n \n \n Sorry, you are not allowed to see what you were looking for.\n \u691c\u7d22\u3057\u3066\u3044\u305f\u5185\u5bb9\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Sorry, we could not find what you were looking for\n \u691c\u7d22\u3057\u3066\u3044\u305f\u5185\u5bb9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\n \n \n Remove all\n \u3059\u3079\u3066\u524a\u9664\n \n \n Recent Notifications\n \u6700\u8fd1\u306e\u901a\u77e5\n \n \n There are no background tasks.\n \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30bf\u30b9\u30af\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n Background Tasks\n \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30bf\u30b9\u30af\n \n \n Help\n \u30d8\u30eb\u30d7\n \n \n Documentation\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \n \n API\n API\n \n \n About\n \u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\n \n \n Dashboard Settings\n \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u8a2d\u5b9a\n \n \n User management\n \u30e6\u30fc\u30b6\u7ba1\u7406\n \n \n Logged in user\n \u30ed\u30b0\u30a4\u30f3\u6e08\u307f\u30e6\u30fc\u30b6\n \n \n Signed in as\n \n \n \n \n \n \n \n \n\u3068\u3057\u3066\u30b5\u30a4\u30f3\u30a4\u30f3\u6e08\u307f\n \n \n \n Sign out\n \u30b5\u30a4\u30f3\u30a2\u30a6\u30c8\n \n \n Name...\n \u540d\u524d...\n \n \n The chosen name is already in use.\n \u9078\u629e\u3055\u308c\u305f\u540d\u524d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Description...\n \u8aac\u660e...\n \n \n Permissions\n \u8a31\u53ef\n \n \n Roles\n \u5f79\u5272\n \n \n Username\n \u30e6\u30fc\u30b6\u540d\n \n \n Password\n \u30d1\u30b9\u30ef\u30fc\u30c9\n \n \n Confirm password\n \u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u78ba\u8a8d\u5165\u529b\n \n \n Password confirmation doesn\'t match the password.\n \u78ba\u8a8d\u5165\u529b\u3055\u308c\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30d1\u30b9\u30ef\u30fc\u30c9\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002\n \n \n Full name\n \u6c0f\u540d\n \n \n Email\n \u96fb\u5b50\u30e1\u30fc\u30eb\n \n \n Invalid email.\n \u7121\u52b9\u306a\u96fb\u5b50\u30e1\u30fc\u30eb\u3067\u3059\u3002\n \n \n You are about to remove "user read / update" permissions from your own user.\n \u81ea\u8eab\u306e\u30e6\u30fc\u30b6\u304b\u3089\u300cuser read / update\u300d\u3068\u3044\u3046\u8a31\u53ef\u3092\u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \u7d9a\u884c\u3057\u305f\u5834\u5408\u306f\u3001\u3069\u306e\u30e6\u30fc\u30b6\u306e\u5f79\u5272\u3082\u8ffd\u52a0\u304a\u3088\u3073\u524a\u9664\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002\n \n \n Are you sure you want to continue?\n \u7d9a\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?\n \n \n Performance counters not available\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30ab\u30a6\u30f3\u30bf\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\n \n \n Attributes (OSD map)\n \u5c5e\u6027(OSD\u30de\u30c3\u30d7)\n \n \n Metadata not available\n \u30e1\u30bf\u30c7\u30fc\u30bf\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\n \n \n Metadata\n \u30e1\u30bf\u30c7\u30fc\u30bf\n \n \n Performance counter\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30ab\u30a6\u30f3\u30bf\n \n \n Histogram not available: \n \n \n \u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093: \n \n \n \n \n Writes\n \u66f8\u304d\u8fbc\u307f\u56de\u6570\n \n \n Reads\n \u8aad\u307f\u53d6\u308a\u56de\u6570\n \n \n Histogram\n \u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\n \n \n Performance Details\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u8a73\u7d30\n \n \n Current values\n \u73fe\u884c\u5024\n \n \n Type\n \u30bf\u30a4\u30d7\n \n \n Min\n \u6700\u5c0f\n \n \n Max\n \u6700\u5927\n \n \n Flags\n \u30d5\u30e9\u30b0\n \n \n Source\n \u30bd\u30fc\u30b9\n \n \n Level\n \u30ec\u30d9\u30eb\n \n \n Can be updated at runtime (editable)\n \u5b9f\u884c\u6642\u306b\u66f4\u65b0\u3067\u304d\u307e\u3059(\u7de8\u96c6\u53ef\u80fd)\n \n \n Tags\n \u30bf\u30b0\n \n \n Enum values\n \u5217\u6319\u5024\n \n \n See also\n \u95a2\u9023\u9805\u76ee\n \n \n Cluster Status\n \u30af\u30e9\u30b9\u30bf\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\n \n \n Manager Daemons\n \u30de\u30cd\u30fc\u30b8\u30e3\u30c7\u30fc\u30e2\u30f3\n \n \n Object Gateways\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\n \n \n Metadata Servers\n \u30e1\u30bf\u30c7\u30fc\u30bf\u30b5\u30fc\u30d0\n \n \n iSCSI Gateways\n iSCSI\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\n \n \n Client IOPS\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306eIOPS\n \n \n Client Throughput\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\n \n \n Client Read/Write\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\n \n \n Recovery Throughput\n \u56de\u5fa9\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\n \n \n Scrub\n \u30b9\u30af\u30e9\u30d6\n \n \n Performance\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\n \n \n Raw Capacity\n \u672a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u6642\u306e\u5bb9\u91cf\n \n \n Objects\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n PGs per OSD\n OSD\u3042\u305f\u308a\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u6570\n \n \n PG Status\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\n \n \n Capacity\n \u5bb9\u91cf\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001\u300c\n \u30ed\u30b0\n \u300d\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Ranks\n \u30e9\u30f3\u30af\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u6570: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \u30a4\u30e1\u30fc\u30b8\u3092\u3054\u307f\u7bb1\u306b\u79fb\u52d5\u3059\u308b\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \n \n /\n \n \u3092\u3054\u307f\u7bb1\u306b\u79fb\u52d5\u3059\u308b\u306b\u306f\u3001\n \uff3b\u30a4\u30e1\u30fc\u30b8\u306e\u79fb\u52d5\uff3d\n \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\u5e0c\u671b\u306b\u5fdc\u3058\u3066\u3001\u5931\u52b9\u65e5\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002\n \n \n \n Protection expires at\n \u4fdd\u8b77\u306e\u5931\u52b9\u65e5\n \n \n NOT PROTECTED\n \u4fdd\u8b77\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \u65e5\u4ed8\u306e\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002\u300cYYYY-MM-DD HH:mm:ss\u300d\u3068\u3044\u3046\u5f62\u5f0f\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \u4fdd\u8b77\u306f\u3059\u3067\u306b\u5931\u52b9\u3057\u3066\u3044\u307e\u3059\u3002\u5c06\u6765\u306e\u65e5\u4ed8\u3092\u9078\u629e\u3059\u308b\u304b\u3001\u65e5\u4ed8\u3092\u7a7a\u767d\u306e\u307e\u307e\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Move Image\n \u30a4\u30e1\u30fc\u30b8\u306e\u79fb\u52d5\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \u6982\u8981\n \n \n Targets\n \u30bf\u30fc\u30b2\u30c3\u30c8\n \n \n Discovery Authentication\n \u691c\u51fa\u8a8d\u8a3c\n \n \n User\n \u30e6\u30fc\u30b6\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u30e6\u30fc\u30b6\u540d\u306f8\uff5e64\u6587\u5b57\u306e\u9577\u3055\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\n\u82f1\u5b57\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u3001\u307e\u305f\u306f\u300c:\u300d\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \u76f8\u4e92\u30e6\u30fc\u30b6\n \n \n Mutual Password\n \u76f8\u4e92\u30d1\u30b9\u30ef\u30fc\u30c9\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n iSCSI\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u7ba1\u7406\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Available information:\n \u53d6\u5f97\u53ef\u80fd\u306a\u60c5\u5831:\n \n \n iSCSI Targets not available\n \u4f7f\u7528\u53ef\u80fd\u306aiSCSI\u30bf\u30fc\u30b2\u30c3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \n fast-diff\n \u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308bRBD\u30a4\u30e1\u30fc\u30b8\u306e\u307f\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\n \n \n \n Pool\n \u30d7\u30fc\u30eb\n \n \n Data Pool\n \u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\n \n \n Created\n \u4f5c\u6210\u6e08\u307f\n \n \n Size\n \u30b5\u30a4\u30ba\n \n \n Object size\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b5\u30a4\u30ba\n \n \n Features\n \u6a5f\u80fd\n \n \n Provisioned\n \u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0\u6e08\u307f\n \n \n N/A\n \u306a\u3057\n \n \n Total provisioned\n \u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0\u6e08\u307f\u5408\u8a08\n \n \n Striping unit\n \u30b9\u30c8\u30e9\u30a4\u30d4\u30f3\u30b0\u5358\u4f4d\n \n \n Striping count\n \u30b9\u30c8\u30e9\u30a4\u30d4\u30f3\u30b0\u6570\n \n \n Parent\n \u89aa\n \n \n Block name prefix\n \u30d6\u30ed\u30c3\u30af\u540d\u306e\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\n \n \n Order\n \u9806\u756a\n \n \n Snapshots\n \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n Image\n \u30a4\u30e1\u30fc\u30b8\n \n \n This setting overrides the global value\n \u3053\u306e\u8a2d\u5b9a\u306f\u30b0\u30ed\u30fc\u30d0\u30eb\u5024\u3088\u308a\u3082\u512a\u5148\u3055\u308c\u307e\u3059\n \n \n Global\n \u30b0\u30ed\u30fc\u30d0\u30eb\n \n \n This is the global value. No value for this option has been set for this image.\n \u3053\u308c\u306f\u30b0\u30ed\u30fc\u30d0\u30eb\u5024\u3067\u3059\u3002\u3053\u306e\u30a4\u30e1\u30fc\u30b8\u306b\u3064\u3044\u3066\u3001\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5024\u306f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u300c/\u300d\u3068\u300c@\u300d\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n -- No rbd pools available --\n -- \u4f7f\u7528\u53ef\u80fd\u306arbd\u30d7\u30fc\u30eb\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select a pool --\n -- \u30d7\u30fc\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Use a dedicated data pool\n \u5c02\u7528\u306e\u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\n \n \n Data pool\n \u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\n \n \n Dedicated pool that stores the object-data of the RBD.\n RBD\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30c7\u30fc\u30bf\u3092\u4fdd\u7ba1\u3059\u308b\u305f\u3081\u306e\u5c02\u7528\u30d7\u30fc\u30eb\n \n \n e.g., 10GiB\n \u4f8b: 10GiB\n \n \n You have to increase the size.\n \u30b5\u30a4\u30ba\u3092\u5927\u304d\u304f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Advanced\n \u8a73\u7d30\n \n \n Striping\n \u30b9\u30c8\u30e9\u30a4\u30d4\u30f3\u30b0\n \n \n Stripe unit\n \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\n \n \n -- Select stripe unit --\n -- \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n This field is required because stripe count is defined!\n \u30b9\u30c8\u30e9\u30a4\u30d7\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n Stripe unit is greater than object size.\n \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\u304c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b5\u30a4\u30ba\u3088\u308a\u5927\u304d\u3044\u3067\u3059\u3002\n \n \n Stripe count\n \u30b9\u30c8\u30e9\u30a4\u30d7\u6570\n \n \n This field is required because stripe unit is defined!\n \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n Stripe count must be greater than 0.\n \u30b9\u30c8\u30e9\u30a4\u30d7\u6570\u306f0\u3088\u308a\u5927\u304d\u3044\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n RBD Snapshot\n \n \n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Rename} other {Create} }\n \n \n \n Snapshot\n \n \n \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n \n PROTECTED\n \u4fdd\u8b77\u6e08\u307f\n \n \n UNPROTECTED\n \u672a\u4fdd\u8b77\n \n \n You are about to rollback\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\n \n \n Purge Trash\n \u3054\u307f\u7bb1\u3092\u7a7a\u306b\u3059\u308b\n \n \n To purge, select one or All images and click\n \u7a7a\u306b\u3059\u308b\u306b\u306f\u30011\u3064\u307e\u305f\u306f\u3059\u3079\u3066\u306e\u30a4\u30e1\u30fc\u30b8\u3092\u9078\u629e\u3057\u3066\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\n \n \n Pool:\n \u30d7\u30fc\u30eb:\n \n \n Pool name...\n \u30d7\u30fc\u30eb\u540d...\n \n \n All\n \u3059\u3079\u3066\n \n \n Restore Image\n \u30a4\u30e1\u30fc\u30b8\u306e\u5fa9\u5143\n \n \n To restore\n \u5fa9\u5143\u3059\u308b\u306b\u306f\n \n \n type the image\'s new name and click\n \u30a4\u30e1\u30fc\u30b8\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\n \n \n New Name\n \u65b0\u3057\u3044\u540d\u524d\n \n \n Expired at\n \u5931\u52b9\u65e5\n \n \n Protected until\n \u4fdd\u8b77\u306e\u7d42\u4e86\u65e5\n \n \n This image is protected until \n .\n \n \u3053\u306e\u30a4\u30e1\u30fc\u30b8\u306f\n \u307e\u3067\u4fdd\u8b77\u3055\u308c\u307e\u3059\u3002\n \n \n \n Trash\n \u3054\u307f\u7bb1\n \n \n iSCSI Topology\n iSCSI\u30c8\u30dd\u30ed\u30b8\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \u901a\u5e38\u306f\u3053\u308c\u3089\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u304b\u3089\u5909\u66f4\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \u8a2d\u5b9a\n \n \n Backstore\n \u30d0\u30c3\u30af\u30b9\u30c8\u30a2\n \n \n Confirm\n \u78ba\u8a8d\n \n \n Advanced Settings\n \u8a73\u7d30\u8a2d\u5b9a\n \n \n Target IQN\n \u30bf\u30fc\u30b2\u30c3\u30c8IQN\n \n \n IQN has wrong pattern.\n IQN\u306e\u30d1\u30bf\u30fc\u30f3\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN\u306f\u300ciqn.$year-$month.$reversedAddress:$definedName\u300d\u3068\u3044\u3046\u5f62\u5f0f\u3067\u8868\u8a18\u3055\u308c\u307e\u3059\u3002\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \u4f8b: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \u8a73\u7d30\u60c5\u5831\n \n \n This target has modified advanced settings.\n \u3053\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u8a73\u7d30\u8a2d\u5b9a\u306f\u5909\u66f4\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Portals\n \u30dd\u30fc\u30bf\u30eb\n \n \n At least \n gateways are required.\n \n \u5c11\u306a\u304f\u3068\u3082\n \u53f0\u306e\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u304c\u5fc5\u8981\u3067\u3059\u3002\n \n \n \n Add portal\n \u30dd\u30fc\u30bf\u30eb\u306e\u8ffd\u52a0\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \u3053\u306e\u30a4\u30e1\u30fc\u30b8\u306e\u8a2d\u5b9a\u306f\u5909\u66f4\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \u30a4\u30e1\u30fc\u30b8\u306e\u8ffd\u52a0\n \n \n ACL authentication\n ACL\u8a8d\u8a3c\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\n \n \n Initiator\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\n \n \n Client IQN\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8IQN\n \n \n Initiator IQN needs to be unique.\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bfIQN\u306f\u4e00\u610f\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u30e6\u30fc\u30b6\u540d\u306f8\uff5e64\u6587\u5b57\u306e\u9577\u3055\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\n\u82f1\u5b57\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u3001\u307e\u305f\u306f\u300c:\u300d\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u306f\u3044\u305a\u308c\u304b\u306e\u30b0\u30eb\u30fc\u30d7\u306b\u5c5e\u3057\u307e\u3059\u3002\u30a4\u30e1\u30fc\u30b8\u306f\u305d\u306e\u30b0\u30eb\u30fc\u30d7\u5185\u3067\u8a2d\u5b9a\u3055\u308c\u307e\u3059\u3002\n \n \n No items added.\n \u30a2\u30a4\u30c6\u30e0\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Add initiator\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u306e\u8ffd\u52a0\n \n \n Groups\n \u30b0\u30eb\u30fc\u30d7\n \n \n Group\n \u30b0\u30eb\u30fc\u30d7\n \n \n Add group\n \u30b0\u30eb\u30fc\u30d7\u306e\u8ffd\u52a0\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD\u8a2d\u5b9a\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \u30ed\u30fc\u30ab\u30eb\u8a2d\u5b9a\u5024\u3092\u524a\u9664\u3057\u307e\u3059\u3002\u89aa\u8a2d\u5b9a\u5024\u304c\u7d99\u627f\u3055\u308c\u3066\u4ee3\u308f\u308a\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\n \n \n The mininum value is 0\n \u6700\u5c0f\u5024\u306f0\u3067\u3059\n \n \n Issues\n \u554f\u984c\n \n \n Syncing\n \u540c\u671f\u4e2d\n \n \n Ready\n \u6e96\u5099\u5b8c\u4e86\n \n \n Edit pool mirror mode\n \u30d7\u30fc\u30eb\u306e\u30df\u30e9\u30fc\u30e2\u30fc\u30c9\u306e\u7de8\u96c6\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \u30d7\u30fc\u30eb\n \n \n \u306e\u30df\u30e9\u30fc\u30e2\u30fc\u30c9\u3092\u7de8\u96c6\u3059\u308b\u306b\u306f\u3001\n\u30ea\u30b9\u30c8\u304b\u3089\u65b0\u3057\u3044\u30e2\u30fc\u30c9\u3092\u9078\u629e\u3057\u3066\u3001\n \uff3b\u66f4\u65b0\uff3d\n \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\n \n \n \n Mode\n \u30e2\u30fc\u30c9\n \n \n Peer clusters must be removed prior to disabling mirror.\n \u30df\u30e9\u30fc\u3092\u7121\u52b9\u306b\u3059\u308b\u524d\u306b\u3001\u30d4\u30a2\u30af\u30e9\u30b9\u30bf\u3092\u524a\u9664\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n \n pool mirror peer\n \n \n \n\u30d7\u30fc\u30eb\u306e\u30df\u30e9\u30fc\u30d4\u30a2\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \u30d7\u30fc\u30eb\n \n \n \n\u306e\u30d7\u30fc\u30eb\u30df\u30e9\u30fc\u30d4\u30a2\u5c5e\u6027\u3001\u304a\u3088\u3073\n \uff3b\u9001\u4fe1\uff3d\n \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\n \n \n \n Cluster Name\n \u30af\u30e9\u30b9\u30bf\u540d\n \n \n The cluster name is not valid.\n \u3053\u306e\u30af\u30e9\u30b9\u30bf\u540d\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n \u3053\u306eCephX ID\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n Monitor Addresses\n \u30e2\u30cb\u30bf\u30fc\u30a2\u30c9\u30ec\u30b9\n \n \n Comma-delimited addresses...\n \u30ab\u30f3\u30de\u533a\u5207\u308a\u30a2\u30c9\u30ec\u30b9...\n \n \n The monitory address is not valid.\n \u3053\u306e\u8b66\u544a\u30a2\u30c9\u30ec\u30b9\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n CephX Key\n CephX\u30ad\u30fc\n \n \n Base64-encoded key...\n Base64\u30a8\u30f3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30ad\u30fc...\n \n \n CephX key must be base64 encoded.\n CephX\u30ad\u30fc\u306fbase64\u3067\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Pools List\n \u30d7\u30fc\u30eb\u30ea\u30b9\u30c8\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \u540d\u524d\u306f\u82f1\u6570\u5b57\u3001\u30c0\u30c3\u30b7\u30e5\u3001\u304a\u3088\u3073\u4e0b\u7dda\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n The chosen erasure code profile name is already in use.\n \u9078\u629e\u3055\u308c\u305f\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Plugin\n \u30d7\u30e9\u30b0\u30a4\u30f3\n \n \n Data chunks (k)\n \u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af(k)\n \n \n Must be equal to or greater than 2.\n 2\u4ee5\u4e0a\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Coding chunks (m)\n \u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af(m)\n \n \n Must be equal to or greater than 1.\n 1\u4ee5\u4e0a\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Durability estimator (c)\n \u8010\u4e45\u6027\u63a8\u5b9a\u5b50(c)\n \n \n Locality (l)\n \u5730\u57df(l)\n \n \n Crush failure domain\n Crush\u969c\u5bb3\u30c9\u30e1\u30a4\u30f3\n \n \n Crush Locality\n Crush\u5730\u57df\n \n \n None\n \u306a\u3057\n \n \n Technique\n \u6280\u6cd5\n \n \n Packetsize\n \u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba\n \n \n Crush root\n Crush\u30eb\u30fc\u30c8\n \n \n Crush device class\n Crush\u30c7\u30d0\u30a4\u30b9\u30af\u30e9\u30b9\n \n \n any\n \u4efb\u610f\n \n \n Directory\n \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n \n \n The chosen Ceph pool name is already in use.\n \u9078\u629e\u3055\u308c\u305fCeph\u30d7\u30fc\u30eb\u540d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Pool type\n \u30d7\u30fc\u30eb\u30bf\u30a4\u30d7\n \n \n -- Select a pool type --\n -- \u30d7\u30fc\u30eb\u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Placement groups\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\n \n \n At least one placement group is needed!\n \u5c11\u306a\u304f\u3068\u30821\u3064\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u304c\u5fc5\u8981\u3067\u3059\u3002\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \u3054\u4f7f\u7528\u306e\u30af\u30e9\u30b9\u30bf\u306f\u3053\u308c\u3060\u3051\u591a\u6570\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u3092\u51e6\u7406\u3067\u304d\u307e\u305b\u3093\u3002\u5fc5\u8981\u306a\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u6570\u3092\u518d\u8a08\u7b97\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Calculation help\n \u8a08\u7b97\u306e\u30d8\u30eb\u30d7\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \u73fe\u5728\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u8a2d\u5b9a\u306f\u81ea\u52d5\u7684\u306b\u8a08\u7b97\u3055\u308c\u305f\u305f\u3081\u3001\n\u9001\u4fe1\u524d\u306b\u3001\u3053\u308c\u3089\u306e\u5024\u304c\u30cb\u30fc\u30ba\u306b\u5408\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Crush ruleset\n Crush\u30eb\u30fc\u30eb\u30bb\u30c3\u30c8\n \n \n -- Select a crush rule --\n -- Crush\u30eb\u30fc\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Crush rule\n Crush\u30eb\u30fc\u30eb\n \n \n Crush steps\n Crush\u30b9\u30c6\u30c3\u30d7\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \u73fe\u5728\u306e\u30af\u30e9\u30b9\u30bf\u5185\u306eOSD\u6570\u306f\u3053\u306e\u30eb\u30fc\u30eb\u3067\u8981\u6c42\u3055\u308c\u308b\u6700\u5c0fOSD\u6570\u3092\u4e0b\u56de\u3063\u3066\u3044\u308b\u305f\u3081\u3001\n\u3053\u306e\u30eb\u30fc\u30eb\u3092\u73fe\u5728\u306e\u30af\u30e9\u30b9\u30bf\u3067\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n Replicated size\n \u8907\u88fd\u3055\u308c\u305f\u30b5\u30a4\u30ba\n \n \n Minimum: \n \n \n \u6700\u5c0f: \n \n \n \n \n Maximum: \n \n \n \u6700\u5927: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \u6307\u5b9a\u3055\u308c\u305f\u30b5\u30a4\u30ba\u306f\u7bc4\u56f2\u5916\u3067\u3059\u3002\n\u6709\u52b9\u306a\u5024\u306e\u7bc4\u56f2\u306f\n \uff5e\n \u3067\u3059\u3002\n \n \n \n Erasure code profile\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\n \n \n -- No erasure code profile available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select an erasure code profile --\n -- \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n EC Overwrites\n EC\u306e\u4e0a\u66f8\u304d\n \n \n Applications\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\n \n \n Compression\n \u5727\u7e2e\n \n \n Algorithm\n \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\n \n \n -- No erasure compression algorithm available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30ec\u30a4\u30b8\u30e3\u5727\u7e2e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n Minimum blob size\n \u6700\u5c0fblob\u30b5\u30a4\u30ba\n \n \n e.g., 128KiB\n \u4f8b: 128KiB\n \n \n Value should be greater than 0\n \u5024\u306f0\u3088\u308a\u5927\u304d\u3044\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n \u6700\u5927blob\u30b5\u30a4\u30ba\n \n \n e.g., 512KiB\n \u4f8b: 512KiB\n \n \n Value should be greater than the minimum blob size\n \u5024\u306f\u6700\u5c0fblob\u30b5\u30a4\u30ba\u3088\u308a\u5927\u304d\u3044\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n Ratio\n \u7387\n \n \n Compression ratio\n \u5727\u7e2e\u7387\n \n \n Value should be between 0.0 and 1.0\n \u5024\u306f0.0\uff5e1.0\u306e\u9593\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \u540d\u524d\u306b\u300c/\u300d\u304c\u542b\u307e\u308c\u305fRBD\u30d7\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \u540d\u524d\u3092\u5909\u66f4\u3059\u308b\u304b\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ea\u30b9\u30c8\u304b\u3089\u300crbd\u300d\u3092\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Cache Tiers Details\n \u30ad\u30e3\u30c3\u30b7\u30e5\u5c64\u306e\u8a73\u7d30\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u7ba1\u7406\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Daemons List\n \u30c7\u30fc\u30e2\u30f3\u30ea\u30b9\u30c8\n \n \n Performance Counters\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30ab\u30a6\u30f3\u30bf\n \n \n Loading bucket data...\n \u30d0\u30b1\u30c3\u30c8\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n The bucket data could not be loaded.\n \u30d0\u30b1\u30c3\u30c8\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n Id\n Id\n \n \n The value is not valid.\n \u3053\u306e\u5024\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n Owner\n \u6240\u6709\u8005\n \n \n -- Select a user --\n -- \u30e6\u30fc\u30b6\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n ID\n ID\n \n \n Index type\n \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30bf\u30a4\u30d7\n \n \n Placement rule\n \u914d\u7f6e\u30eb\u30fc\u30eb\n \n \n Marker\n \u30de\u30fc\u30ab\u30fc\n \n \n Maximum marker\n \u6700\u5927\u30de\u30fc\u30ab\u30fc\n \n \n Version\n \u30d0\u30fc\u30b8\u30e7\u30f3\n \n \n Master version\n \u30de\u30b9\u30bf\u30d0\u30fc\u30b8\u30e7\u30f3\n \n \n Modification time\n \u5909\u66f4\u6642\u9593\n \n \n Zonegroup\n \u30be\u30fc\u30f3\u30b0\u30eb\u30fc\u30d7\n \n \n Bucket quota\n \u30d0\u30b1\u30c3\u30c8\u30af\u30a9\u30fc\u30bf\n \n \n Enabled\n \u6709\u52b9\u5316\u6e08\u307f\n \n \n Maximum size\n \u6700\u5927\u30b5\u30a4\u30ba\n \n \n Unlimited\n \u7121\u5236\u9650\n \n \n Maximum objects\n \u6700\u5927\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n -- Select a username --\n -- \u30e6\u30fc\u30b6\u540d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Auto-generate key\n \u30ad\u30fc\u306e\u81ea\u52d5\u751f\u6210\n \n \n Access key\n \u30a2\u30af\u30bb\u30b9\u30ad\u30fc\n \n \n Secret key\n \u79d8\u5bc6\u30ad\u30fc\n \n \n Email address\n \u96fb\u5b50\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\n \n \n Suspended\n \u4e2d\u65ad\u6e08\u307f\n \n \n System\n \u30b7\u30b9\u30c6\u30e0\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n \n \n Maximum buckets\n \u6700\u5927\u30d0\u30b1\u30c3\u30c8\u6570\n \n \n Subusers\n \u30b5\u30d6\u30e6\u30fc\u30b6\n \n \n Capabilities\n \u6a5f\u80fd\n \n \n User quota\n \u30e6\u30fc\u30b6\u30af\u30a9\u30fc\u30bf\n \n \n Show\n \u8868\u793a\n \n \n Keys\n \u30ad\u30fc\n \n \n -- Select a type --\n -- \u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Permission\n \u8a31\u53ef\n \n \n -- Select a permission --\n -- \u8a31\u53ef\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Subuser\n \u30b5\u30d6\u30e6\u30fc\u30b6\n \n \n The chosen subuser ID is already in use.\n \u9078\u629e\u3055\u308c\u305f\u30b5\u30d6\u30e6\u30fc\u30b6ID\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n read, write\n \u8aad\u307f\u53d6\u308a\u3001\u66f8\u304d\u8fbc\u307f\n \n \n full\n \u30d5\u30eb\n \n \n Swift key\n \u30b9\u30a6\u30a3\u30d5\u30c8\u30ad\u30fc\n \n \n Auto-generate secret\n \u79d8\u5bc6\u306e\u81ea\u52d5\u751f\u6210\n \n \n Loading user data...\n \u30e6\u30fc\u30b6\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n The user data could not be loaded.\n \u30e6\u30fc\u30b6\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n The chosen user ID is already in use.\n \u9078\u629e\u3055\u308c\u305f\u30e6\u30fc\u30b6ID\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n This is not a valid email address.\n \u3053\u308c\u306f\u6709\u52b9\u306a\u96fb\u5b50\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n The chosen email address is already in use.\n \u9078\u629e\u3055\u308c\u305f\u96fb\u5b50\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Max. buckets\n \u6700\u5927\u30d0\u30b1\u30c3\u30c8\u6570\n \n \n The entered value must be >= 0.\n 0\u4ee5\u4e0a\u306e\u5024\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n S3 key\n S3\u30ad\u30fc\n \n \n There are no subusers.\n \u30b5\u30d6\u30e6\u30fc\u30b6\u304c\u3044\u307e\u305b\u3093\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \u30ad\u30fc\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n \u30b9\u30a6\u30a3\u30d5\u30c8\n \n \n There are no capabilities.\n \u6a5f\u80fd\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \u7121\u5236\u9650\u306e\u30b5\u30a4\u30ba\n \n \n Max. size\n \u6700\u5927\u30b5\u30a4\u30ba\n \n \n Unlimited objects\n \u7121\u5236\u9650\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n Max. objects\n \u6700\u5927\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n Current\n \u73fe\u5728\n \n \n Updated discovery authentication\n \u691c\u51fa\u8a8d\u8a3c\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n There are no portals available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30dd\u30fc\u30bf\u30eb\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n There are no images available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30e1\u30fc\u30b8\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n There are no images available. Please make sure you add an image to the target.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30e1\u30fc\u30b8\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u30a4\u30e1\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u3092\u8ffd\u52a0\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n target\n target\n \n \n Target\n \u30bf\u30fc\u30b2\u30c3\u30c8\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \u72b6\u614b\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\n \n \n Write Bytes\n \u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\n \n \n Read Ops\n \u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\n \n \n Write Ops\n \u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\n \n \n A/O Since\n \u6b21\u306e\u65e5\u4ed8\u4ee5\u964d\u306eA/O\n \n \n Instance\n \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\n \n \n Hostname\n \u30db\u30b9\u30c8\u540d\n \n \n Issue\n \u554f\u984c\n \n \n Progress\n \u9032\u6357\n \n \n Disabled\n \u7121\u52b9\u5316\u6e08\u307f\n \n \n Edit Mode\n \u30e2\u30fc\u30c9\u306e\u7de8\u96c6\n \n \n Add Peer\n \u30d4\u30a2\u306e\u8ffd\u52a0\n \n \n Edit Peer\n \u30d4\u30a2\u306e\u7de8\u96c6\n \n \n Delete Peer\n \u30d4\u30a2\u306e\u524a\u9664\n \n \n Leader\n \u30ea\u30fc\u30c0\u30fc\n \n \n # Local\n #\u30ed\u30fc\u30ab\u30eb\n \n \n # Remote\n #\u30ea\u30e2\u30fc\u30c8\n \n \n mirror peer\n \u30df\u30e9\u30fc\u30d4\u30a2\n \n \n Key\n \u30ad\u30fc\n \n \n RBD\n RBD\n \n \n Deep flatten\n \u30c7\u30a3\u30fc\u30d7\u30d5\u30e9\u30c3\u30c8\u5316\n \n \n Layering\n \u968e\u5c64\u5316\n \n \n Exclusive lock\n \u6392\u4ed6\u30ed\u30c3\u30af\n \n \n Object map (requires exclusive-lock)\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30de\u30c3\u30d7(\u6392\u4ed6\u30ed\u30c3\u30af\u304c\u5fc5\u8981)\n \n \n Journaling (requires exclusive-lock)\n \u30b8\u30e3\u30fc\u30ca\u30ea\u30f3\u30b0(\u6392\u4ed6\u30ed\u30c3\u30af\u304c\u5fc5\u8981)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u30ed\u30fc\u30eb\u30d0\u30c3\u30af\n \n \n Rollback\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\n \n \n RBD snapshot\n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n Deleted At\n \u524a\u9664\u65e5\u6642\n \n \n id\n id\n \n \n type\n \u30bf\u30a4\u30d7\n \n \n state\n \u72b6\u614b\n \n \n version\n \u30d0\u30fc\u30b8\u30e7\u30f3\n \n \n Host\n \u30db\u30b9\u30c8\n \n \n root\n \u30eb\u30fc\u30c8\n \n \n Rank\n \u30e9\u30f3\u30af\n \n \n Daemon\n \u30c7\u30fc\u30e2\u30f3\n \n \n Activity\n \u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3\n \n \n Dentries\n d\u30a8\u30f3\u30c8\u30ea\n \n \n Inodes\n i\u30ce\u30fc\u30c9\n \n \n Usage\n \u4f7f\u7528\u91cf\n \n \n Standby daemons\n \u30b9\u30bf\u30f3\u30d0\u30a4\u30c7\u30fc\u30e2\u30f3\n \n \n The value can be updated at runtime.\n \u3053\u306e\u5024\u306f\u5b9f\u884c\u6642\u306b\u66f4\u65b0\u3067\u304d\u307e\u3059\u3002\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \u30c7\u30fc\u30e2\u30f3/\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u3053\u306e\u5024\u3092\u30e2\u30cb\u30bf\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u53d6\u5f97\u3057\u307e\u305b\u3093\u3002\n\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u300cceph config set ...\u300d\u3092\u901a\u3058\u3066\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u306f\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3001ceph.conf\u307e\u305f\u306f\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3092\u901a\u3058\u3066\n\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Option takes effect only during daemon startup.\n \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30c7\u30fc\u30e2\u30f3\u59cb\u52d5\u6642\u306e\u307f\u306b\u6709\u52b9\u306b\u306a\u308a\u307e\u3059\u3002\n \n \n Option only affects cluster creation.\n \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30af\u30e9\u30b9\u30bf\u306e\u4f5c\u6210\u306e\u307f\u306b\u9069\u7528\u3055\u308c\u307e\u3059\u3002\n \n \n Option only affects daemon creation.\n \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30c7\u30fc\u30e2\u30f3\u306e\u4f5c\u6210\u306e\u307f\u306b\u9069\u7528\u3055\u308c\u307e\u3059\u3002\n \n \n Updated config option \n \n \n \u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\n \u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Service\n \u30b5\u30fc\u30d3\u30b9\n \n \n Current value\n \u73fe\u884c\u5024\n \n \n Editable\n \u7de8\u96c6\u53ef\u80fd\n \n \n Updated options for module "\n ".\n \n \u30e2\u30b8\u30e5\u30fc\u30eb\u300c\n \u300d\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002\n \n \n \n Enable\n \u6709\u52b9\u5316\n \n \n Disable\n \u7121\u52b9\u5316\n \n \n Reconnecting, please wait ...\n \u518d\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u3057\u3070\u3089\u304f\u304a\u5f85\u3061\u304f\u3060\u3055\u3044...\n \n \n Public Address\n \u30d1\u30d6\u30ea\u30c3\u30af\u30a2\u30c9\u30ec\u30b9\n \n \n Open Sessions\n \u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u958b\u59cb\n \n \n No In\n \u30a4\u30f3\u306a\u3057\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \u4ee5\u524d\u306b\u30a2\u30a6\u30c8\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u305fOSD\u306f\u3001\u305d\u308c\u3089\u306e\u59cb\u52d5\u6642\u306b\u30a4\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\n \n \n No Out\n \u30a2\u30a6\u30c8\u306a\u3057\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD\u306f\u3001\u8a2d\u5b9a\u6e08\u307f\u306e\u9593\u9694\u304c\u7d4c\u904e\u3057\u305f\u5f8c\u306b\u81ea\u52d5\u7684\u306b\u30a2\u30a6\u30c8\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u307e\u3059\n \n \n No Up\n \u30a2\u30c3\u30d7\u306a\u3057\n \n \n OSDs are not allowed to start\n OSD\u3092\u59cb\u52d5\u3059\u308b\u3053\u3068\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n \n \n No Down\n \u30c0\u30a6\u30f3\u306a\u3057\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n OSD\u306e\u969c\u5bb3\u30ec\u30dd\u30fc\u30c8\u306f\u7121\u8996\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001OSD\u306f\u30e2\u30cb\u30bf\u30fc\u306b\u3088\u3063\u3066\u30c0\u30a6\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u307e\u305b\u3093\n \n \n Pause\n \u4e00\u6642\u505c\u6b62\n \n \n Pauses reads and writes\n \u8aad\u307f\u53d6\u308a\u3068\u66f8\u304d\u8fbc\u307f\u3092\u4e00\u6642\u505c\u6b62\u3057\u307e\u3059\n \n \n No Scrub\n \u30b9\u30af\u30e9\u30d6\u306a\u3057\n \n \n Scrubbing is disabled\n \u30b9\u30af\u30e9\u30d6\u51e6\u7406\u306f\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n No Deep Scrub\n \u30c7\u30a3\u30fc\u30d7\u30b9\u30af\u30e9\u30d6\u306a\u3057\n \n \n Deep Scrubbing is disabled\n \u30c7\u30a3\u30fc\u30d7\u30b9\u30af\u30e9\u30d6\u51e6\u7406\u306f\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n No Backfill\n \u30d0\u30c3\u30af\u30d5\u30a3\u30eb\u306a\u3057\n \n \n Backfilling of PGs is suspended\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u30d0\u30c3\u30af\u30d5\u30a3\u30eb\u306f\u4e2d\u65ad\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n No Recover\n \u56de\u5fa9\u306a\u3057\n \n \n Recovery of PGs is suspended\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u56de\u5fa9\u306f\u4e2d\u65ad\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n Bitwise Sort\n \u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u30bd\u30fc\u30c8\n \n \n Use bitwise sort\n \u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u30bd\u30fc\u30c8\u3092\u4f7f\u7528\u3059\u308b\n \n \n Purged Snapdirs\n \u6d88\u53bb\u3055\u308c\u305f\u30b9\u30ca\u30c3\u30d7\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n \n \n OSDs have converted snapsets\n OSD\u306b\u3088\u3063\u3066\u30b9\u30ca\u30c3\u30d7\u30bb\u30c3\u30c8\u304c\u5909\u63db\u3055\u308c\u307e\u3057\u305f\n \n \n Recovery Deletes\n \u56de\u5fa9\u306e\u524a\u9664\n \n \n Deletes performed during recovery instead of peering\n \u30d4\u30a2\u30ea\u30f3\u30b0\u306e\u4ee3\u308f\u308a\u306b\u56de\u5fa9\u6642\u306b\u524a\u9664\u304c\u5b9f\u884c\u3055\u308c\u307e\u3057\u305f\n \n \n PG Log Hard Limit\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u30ed\u30b0\u306e\u30cf\u30fc\u30c9\u5236\u9650\n \n \n Puts a hard limit on pg log length\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u30ed\u30b0\u9577\u306e\u30cf\u30fc\u30c9\u5236\u9650\u3092\u9069\u7528\u3057\u307e\u3059\n \n \n Updated OSD Flags\n OSD\u30d5\u30e9\u30b0\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n out\n \u30a2\u30a6\u30c8\n \n \n in\n \u30a4\u30f3\n \n \n down\n \u30c0\u30a6\u30f3\n \n \n Mark\n \u30de\u30fc\u30af\n \n \n OSD lost\n \u55aa\u5931\u3057\u305fOSD\n \n \n marked lost\n \u55aa\u5931\u3068\u3057\u3066\u30de\u30fc\u30af\u6e08\u307f\n \n \n Purge\n \u6d88\u53bb\n \n \n OSD\n OSD\n \n \n purged\n \u6d88\u53bb\u6e08\u307f\n \n \n destroy\n \u7834\u68c4\n \n \n destroyed\n \u7834\u68c4\u6e08\u307f\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u6570\n \n \n Read bytes\n \u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\n \n \n Writes bytes\n \u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\n \n \n Read ops\n \u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\n \n \n Write ops\n \u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\n \n \n Mark OSD \n \n \n OSD\n \u3092\u30de\u30fc\u30af\n \n \n \n Mark \n \n \n \n \u3092\u30de\u30fc\u30af\n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \u6700\u5927\u30d0\u30c3\u30af\u30d5\u30a3\u30eb\u6570\n \n \n Recovery Max Active\n \u56de\u5fa9\u6700\u5927\u30a2\u30af\u30c6\u30a3\u30d6\n \n \n Recovery Max Single Start\n \u56de\u5fa9\u6700\u5927\u5358\u4e00\u59cb\u52d5\n \n \n Recovery Sleep\n \u56de\u5fa9\u30b9\u30ea\u30fc\u30d7\n \n \n Custom\n \u30ab\u30b9\u30bf\u30e0\n \n \n Updated OSD recovery speed priority "\n "\n \n OSD\u306e\u56de\u5fa9\u901f\u5ea6\u512a\u5148\u5ea6\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n \n was initialized in the following OSD: \n \n \n \n \u306f\u6b21\u306eOSD\u3067\u521d\u671f\u5316\u3055\u308c\u307e\u3057\u305f: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \u30b8\u30e7\u30d6\n \n \n Severity\n \u91cd\u5927\u5ea6\n \n \n Started\n \u59cb\u52d5\u6e08\u307f\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \u66f4\u65b0\u6e08\u307f\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \u4f7f\u7528\u6e08\u307f\n \n \n Avail.\n \u4f7f\u7528\u53ef\u80fd\n \n \n Clean\n \u30af\u30ea\u30fc\u30f3\n \n \n Working\n \u52d5\u4f5c\u4e2d\n \n \n Warning\n \u8b66\u544a\n \n \n Unknown\n \u4e0d\u660e\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \u30a2\u30c3\u30d7\n \n \n no filesystems\n \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u304c\u3042\u308a\u307e\u305b\u3093\n \n \n active\n \u30a2\u30af\u30c6\u30a3\u30d6\n \n \n standby\n \u30b9\u30bf\u30f3\u30d0\u30a4\n \n \n n/a\n \u306a\u3057\n \n \n active daemon\n \u30a2\u30af\u30c6\u30a3\u30d6\u30c7\u30fc\u30e2\u30f3\n \n \n quorum\n \u5b9a\u6570\n \n \n The NFS Ganesha service is not configured.\n NFS Ganesha\u30b5\u30fc\u30d3\u30b9\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Transport\n \u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8\n \n \n CephFS User\n CephFS\u30e6\u30fc\u30b6\n \n \n CephFS Filesystem\n CephFS\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\n \n \n (inherited from global config)\n (\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\u304b\u3089\u7d99\u627f)\n \n \n inherited from global config\n \u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\u304b\u3089\u7d99\u627f\u3055\u308c\u307e\u3057\u305f\n \n \n -- Select what kind of user id squashing is performed --\n -- \u5b9f\u884c\u3055\u308c\u308b\u30e6\u30fc\u30b6ID\u30b9\u30ab\u30c3\u30b7\u30e5\u64cd\u4f5c\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n There are no daemons available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30c7\u30fc\u30e2\u30f3\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \u30ad\u30e3\u30c3\u30b7\u30e5\u30e2\u30fc\u30c9\n \n \n Min Evict Age\n \u9000\u53bb\u307e\u3067\u306e\u6700\u5c0f\u7d4c\u904e\u6642\u9593\n \n \n Min Flush Age\n \u6d88\u53bb\u307e\u3067\u306e\u6700\u5c0f\u7d4c\u904e\u6642\u9593\n \n \n Target Max Bytes\n \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u6700\u5927\u30d0\u30a4\u30c8\u6570\n \n \n Target Max Objects\n \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u6700\u5927\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n No applications added\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n \n \n Applications limit reached\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u6570\u306e\u4e0a\u9650\u306b\u9054\u3057\u307e\u3057\u305f\n \n \n A pool can only have up to four applications definitions.\n 1\u3064\u306e\u30d7\u30fc\u30eb\u306f\u6700\u5927\u30674\u3064\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5b9a\u7fa9\u3057\u304b\u4fdd\u6709\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \u4f7f\u7528\u53ef\u80fd\u306a\u6587\u5b57\u300c_a-zA-Z0-9\u300d\n \n \n Maximum length is 128 characters\n \u6700\u5927\u9577\u306f128\u6587\u5b57\u3067\u3059\n \n \n Filter or add applications\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u307e\u305f\u306f\u8ffd\u52a0\n \n \n Add application\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8ffd\u52a0\n \n \n pool\n pool\n \n \n erasure code profile\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\n \n \n Replica Size\n \u30ec\u30d7\u30ea\u30ab\u30b5\u30a4\u30ba\n \n \n Last Change\n \u6700\u5f8c\u306e\u5909\u66f4\n \n \n Erasure Coded Profile\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\n \n \n Crush Ruleset\n Crush\u30eb\u30fc\u30eb\u30bb\u30c3\u30c8\n \n \n Write bytes\n \u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \u30d0\u30b1\u30c3\u30c8\n \n \n Updated Object Gateway bucket "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30d0\u30b1\u30c3\u30c8\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Created Object Gateway bucket "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30d0\u30b1\u30c3\u30c8\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n buckets\n \u30d0\u30b1\u30c3\u30c8\u6570\n \n \n capability\n capability\n \n \n user\n \u30e6\u30fc\u30b6\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Created Object Gateway user "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n users\n \u30e6\u30fc\u30b6\u6570\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \u7bc4\u56f2\n \n \n Read\n \u8aad\u307f\u53d6\u308a\n \n \n Create\n \u4f5c\u6210\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \u5f79\u5272\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n Updated role \'\n \'\n \n \u5f79\u5272\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n System Role\n \u30b7\u30b9\u30c6\u30e0\u5f79\u5272\n \n \n Deleted role \'\n \'\n \n \u5f79\u5272\u300c\n \u300d\u3092\u524a\u9664\u3057\u307e\u3057\u305f\n \n \n \n Created user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n Update user\n \u30e6\u30fc\u30b6\u306e\u66f4\u65b0\n \n \n Continue\n \u7d9a\u884c\n \n \n You were automatically logged out because your roles have been changed.\n \u3053\u306e\u30e6\u30fc\u30b6\u306e\u5f79\u5272\u304c\u5909\u66f4\u3055\u308c\u305f\u305f\u3081\u3001\u3053\u306e\u30e6\u30fc\u30b6\u306f\u81ea\u52d5\u7684\u306b\u30ed\u30b0\u30a2\u30a6\u30c8\u3055\u308c\u307e\u3057\u305f\u3002\n \n \n Updated user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Deleted user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u524a\u9664\u3057\u307e\u3057\u305f\n \n \n \n Failed to delete user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\n \n \n \n You are currently logged in as "\n ".\n \n \u73fe\u5728\u3053\u306e\u30e6\u30fc\u30b6\u306f\u300c\n \u300d\u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u307e\u3059\u3002\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \u5404\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u8907\u6570\u306e\u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af\u30d1\u30fc\u30c8\u306b\u5206\u5272\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u308c\u305e\u308c\u306e\u30d1\u30fc\u30c8\u306f\u7570\u306a\u308bOSD\u306b\u4fdd\u7ba1\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \u5404\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af\u3092\u8a08\u7b97\u3057\u3066\u3001\u3053\u308c\u3089\u306e\u30c1\u30e3\u30f3\u30af\u3092\u5225\u3005\u306eOSD\u306b\u4fdd\u7ba1\u3057\u307e\u3059\u3002\n\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af\u306e\u6570\u306f\u3001\u30c7\u30fc\u30bf\u3092\u5931\u3046\u3053\u3068\u306a\u304f\u30c0\u30a6\u30f3\u72b6\u614b\u306b\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u308bOSD\u306e\u6570\u3067\u3082\u3042\u308a\u307e\u3059\u3002\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n jerasure\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u6700\u3082\u6c4e\u7528\u7684\u3067\u67d4\u8edf\u6027\u306e\u9ad8\u3044\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u3059\u3002\n\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u3001Ceph\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30d7\u30fc\u30eb\u7528\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3082\u3042\u308a\u307e\u3059\u3002\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n \u3055\u3089\u306b\u67d4\u8edf\u6027\u306e\u9ad8\u3044\u6280\u6cd5\u306freed_sol_van\u3067\u3059\u3002k\u3068m\u3092\n\u8a2d\u5b9a\u3059\u308b\u3060\u3051\u3067\u5341\u5206\u3067\u3059\u3002\ncauchy_good\u6280\u6cd5\u306f\u3088\u308a\u9ad8\u901f\u3068\u306a\u308a\u5f97\u307e\u3059\u304c\u3001\u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba\u3092\u614e\u91cd\u306b\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\nreed_sol_r6_op\u3001liberation\u3001blaum_roth\u3001liber8tion\u306f\u3059\u3079\u3066\u3001\nm=2\u3092\u4f7f\u7528\u3057\u305f\u8a2d\u5b9a\u306e\u307f\u304c\u53ef\u80fd\u3068\u3044\u3046\u610f\u5473\u3067RAID6\u3068\u540c\u7b49\u3067\u3059\u3002\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \u30a8\u30f3\u30b3\u30fc\u30c9\u306f\u30d0\u30a4\u30c8\u30b5\u30a4\u30ba\u306e\u30d1\u30b1\u30c3\u30c8\u7fa4\u306b\u5bfe\u3057\u3066\u540c\u6642\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\n\u9069\u5207\u306a\u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306f\u56f0\u96e3\u3067\u3059\u3002\njerasure\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u306f\u3053\u306e\u30c8\u30d4\u30c3\u30af\u306b\u95a2\u3059\u308b\u8a73\u7d30\u306a\u60c5\u5831\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n jerasure\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u8907\u6570\u306eOSD\u306b\u4fdd\u7ba1\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\n1\u3064\u306eOSD\u306e\u55aa\u5931\u304b\u3089\u56de\u5fa9\u3059\u308b\u306b\u306f\u3001\u4ed6\u306e\u3059\u3079\u3066\u306eOSD\u304b\u3089\u306e\u8aad\u307f\u53d6\u308a\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001k=8\u304a\u3088\u3073m=4\u3092\u4f7f\u7528\u3057\u3066jerasure\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u30011\u3064\u306eOSD\u304c\u5931\u308f\u308c\u305f\u5834\u5408\u3001\n\u4fee\u5fa9\u306e\u305f\u3081\u306b\u306f\u4ed6\u306e11\u500b\u306eOSD\u304b\u3089\u306e\u8aad\u307f\u53d6\u308a\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\n\nlrc\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u3001\u3053\u308c\u3088\u308a\u5c11\u306a\u3044OSD\u3092\u4f7f\u7528\u3057\u305f\u56de\u5fa9\u3092\u53ef\u80fd\u306b\u3059\u308b\u305f\u3081\u306b\u3001\n\u30ed\u30fc\u30ab\u30eb\u30d1\u30ea\u30c6\u30a3\u30c1\u30e3\u30f3\u30af\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001lrc\u304ck=8\u3001m=4\u3001\u304a\u3088\u3073l=4\u3092\u4f7f\u7528\u3057\u3066\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\nlrc\u306f\u30014\u3064\u306eOSD\u3054\u3068\u306b1\u3064\u306e\u8ffd\u52a0\u30d1\u30ea\u30c6\u30a3\u30c1\u30e3\u30f3\u30af\u3092\u4f5c\u6210\u3057\u307e\u3059\u30021\u3064\u306eOSD\u304c\u5931\u308f\u308c\u305f\u5834\u5408\u306f\u3001\n11\u500b\u306e\u4ee3\u308f\u308a\u306b4\u3064\u306eOSD\u306e\u307f\u3092\u4f7f\u7528\u3057\u3066\u305d\u306eOSD\u3092\u56de\u5fa9\u3067\u304d\u307e\u3059\u3002\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af\u3068\u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af\u3092\u30b5\u30a4\u30ba\u5730\u57df\u306e\u8907\u6570\u30bb\u30c3\u30c8\u306b\u30b0\u30eb\u30fc\u30d7\u5206\u3051\u3057\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001k=4\u304a\u3088\u3073m=2\u306e\u5834\u5408\u306b\u3001\uff3b\u5730\u57df\uff3d=3\u306e\u5834\u5408\u306f\u30013\u3064\u306e\u30c1\u30e3\u30f3\u30af\u304b\u3089\u306a\u308b\u30b0\u30eb\u30fc\u30d7\u304c2\u3064\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002\n\u5404\u30bb\u30c3\u30c8\u306f\u3001\u5225\u306e\u30bb\u30c3\u30c8\u304b\u3089\u30c1\u30e3\u30f3\u30af\u3092\u8aad\u307f\u53d6\u308b\u3053\u3068\u306a\u304f\u56de\u5fa9\u3067\u304d\u307e\u3059\u3002\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n 1\u306b\u3088\u3063\u3066\u5b9a\u7fa9\u3055\u308c\u305f\u30c1\u30e3\u30f3\u30af\u306e\u5404\u30bb\u30c3\u30c8\u304c\u4fdd\u7ba1\u3055\u308c\u308bCrush\u30d0\u30b1\u30c3\u30c8\u306e\u30bf\u30a4\u30d7\u3002\n\u305f\u3068\u3048\u3070\u3001\u3053\u306e\u30d0\u30b1\u30c3\u30c8\u30bf\u30a4\u30d7\u304c\u30e9\u30c3\u30af\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u30011\u306e\u30c1\u30e3\u30f3\u30af\u306e\u5404\u30b0\u30eb\u30fc\u30d7\u306f\u7570\u306a\u308b\u30e9\u30c3\u30af\u306b\u914d\u7f6e\u3055\u308c\u307e\u3059\u3002\n\u3053\u306e\u30d0\u30b1\u30c3\u30c8\u30bf\u30a4\u30d7\u3092\u4f7f\u7528\u3057\u3066\u3001\u300c\u30e9\u30c3\u30af\u306e\u9078\u629e\u300d\u30b9\u30c6\u30c3\u30d7\u306a\u3069\u306eCRUSH\u30eb\u30fc\u30eb\u30b9\u30c6\u30c3\u30d7\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002\n\u3053\u306e\u30d0\u30b1\u30c3\u30c8\u30bf\u30a4\u30d7\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u30b0\u30eb\u30fc\u30d7\u5206\u3051\u306f\u884c\u308f\u308c\u307e\u305b\u3093\u3002\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa\u30d7\u30e9\u30b0\u30a4\u30f3\u306fISA\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u307e\u3059\u3002\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306fIntel\u30d7\u30ed\u30bb\u30c3\u30b5\u4e0a\u306e\u307f\u3067\u52d5\u4f5c\u3057\u307e\u3059\u3002\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA\u30d7\u30e9\u30b0\u30a4\u30f3\u306f2\u3064\u306e\u30ea\u30fc\u30c9\u30bd\u30ed\u30e2\u30f3\u5f62\u5f0f\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002reed_sol_van\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001Vandermonde\u3067\u3042\u308a\u3001cauchy\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001Cauchy\u3067\u3059\u3002\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u8907\u6570\u306eSHEC\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u307e\u3059\u3002\n\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001ceph\u306f\u30ea\u30fc\u30c9\u30bd\u30ed\u30e2\u30f3\u30b3\u30fc\u30c9\u3088\u308a\u52b9\u7387\u7684\u306b\u30c7\u30fc\u30bf\u3092\u56de\u5fa9\u3067\u304d\u307e\u3059\u3002\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \u305d\u308c\u305e\u308c\u304c\u5404\u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af\u3092\u5404\u81ea\u306e\u8a08\u7b97\u7bc4\u56f2\u5185\u306b\u542b\u3093\u3067\u3044\u308b\u30d1\u30ea\u30c6\u30a3\u30c1\u30e3\u30f3\u30af\u306e\u6570\u3002\n\u3053\u306e\u6570\u306f\u3001\u8010\u4e45\u6027\u63a8\u5b9a\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001c=2\u306e\u5834\u5408\u306f\u3001\u30c7\u30fc\u30bf\u3092\u5931\u3046\u3053\u3068\u306a\u304f2\u3064\u306eOSD\u304c\u30c0\u30a6\u30f3\u72b6\u614b\u306b\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n CRUSH\u30eb\u30fc\u30eb\u306e\u6700\u521d\u306e\u30b9\u30c6\u30c3\u30d7(\u300c\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u4f7f\u7528\u300d\u30b9\u30c6\u30c3\u30d7\u306a\u3069)\u7528\u306b\n\u4f7f\u7528\u3055\u308c\u308bCrush\u30d0\u30b1\u30c3\u30c8\u306e\u540d\u524d\u3002\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \u540c\u3058\u969c\u5bb3\u30c9\u30e1\u30a4\u30f3\u306e\u5358\u4e00\u30d0\u30b1\u30c3\u30c8\u5185\u306b2\u3064\u306e\u30c1\u30e3\u30f3\u30af\u304c\u914d\u7f6e\u3055\u308c\u308b\u3053\u3068\u3092\u9632\u6b62\u3057\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001\u969c\u5bb3\u30c9\u30e1\u30a4\u30f3\u304c\u30db\u30b9\u30c8\u3067\u3042\u308b\u5834\u5408\u306f\u30012\u3064\u306e\u30c1\u30e3\u30f3\u30af\u304c\u540c\u3058\u30db\u30b9\u30c8\u306b\u4fdd\u7ba1\u3055\u308c\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n\u3053\u308c\u3092\u4f7f\u7528\u3057\u3066\u3001\u300c\u30ea\u30fc\u30d5\u30db\u30b9\u30c8\u306e\u9078\u629e\u300d\u30b9\u30c6\u30c3\u30d7\u306a\u3069\u306eCRUSH\u30eb\u30fc\u30eb\u30b9\u30c6\u30c3\u30d7\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n CRUSH\u30de\u30c3\u30d7\u5185\u3067Crush\u30c7\u30d0\u30a4\u30b9\u30af\u30e9\u30b9\u540d\u3092\u4f7f\u7528\u3057\u3066\u3001\u914d\u7f6e\u5148\u3092\u7279\u5b9a\u30af\u30e9\u30b9(ssd\u3084hdd\u306a\u3069)\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u307f\u306b\u5236\u9650\u3057\u307e\u3059\u3002\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u8aad\u307f\u8fbc\u307f\u5143\u3068\u306a\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\n \n \n Allows all operations\n \u3059\u3079\u3066\u306e\u64cd\u4f5c\u3092\u8a31\u53ef\u3057\u307e\u3059\n \n \n Allows only operations that do not modify the server\n \u30b5\u30fc\u30d0\u306b\u5909\u66f4\u3092\u52a0\u3048\u306a\u3044\u64cd\u4f5c\u306e\u307f\u3092\u8a31\u53ef\u3057\u307e\u3059\n \n \n Does not allow read or write operations, but allows any other operation\n \u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u3092\u8a31\u53ef\u3057\u307e\u305b\u3093\u304c\u3001\u4ed6\u306e\u3059\u3079\u3066\u306e\u64cd\u4f5c\u3092\u8a31\u53ef\u3057\u307e\u3059\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u3001\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u5c5e\u6027\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u5bb9\u3092\u5909\u66f4\u3059\u308b\u3069\u306e\u64cd\u4f5c\u3082\u8a31\u53ef\u3057\u307e\u305b\u3093\n \n \n Allows no access at all\n \u30a2\u30af\u30bb\u30b9\u3092\u4e00\u5207\u8a31\u53ef\u3057\u307e\u305b\u3093\n \n \n -- Select the priority --\n -- \u512a\u5148\u5ea6\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Low\n \u4f4e\n \n \n High\n \u9ad8\n \n \n Last 5 minutes\n \u76f4\u524d\u306e5\u5206\u9593\n \n \n Last 15 minutes\n \u76f4\u524d\u306e15\u5206\u9593\n \n \n Last 30 minutes\n \u76f4\u524d\u306e30\u5206\u9593\n \n \n Last 1 hour (Default)\n \u76f4\u524d\u306e1\u6642\u9593(\u30c7\u30d5\u30a9\u30eb\u30c8)\n \n \n Last 3 hours\n \u76f4\u524d\u306e3\u6642\u9593\n \n \n Last 6 hours\n \u76f4\u524d\u306e6\u6642\u9593\n \n \n Last 12 hours\n \u76f4\u524d\u306e12\u6642\u9593\n \n \n Last 24 hours\n \u76f4\u524d\u306e24\u6642\u9593\n \n \n Yesterday\n \u6628\u65e5\n \n \n Today\n \u672c\u65e5\n \n \n Today so far\n \u672c\u65e5\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Day before yesterday\n \u4e00\u6628\u65e5\n \n \n Last 2 days\n \u904e\u53bb2\u65e5\u9593\n \n \n This day last week\n \u5148\u9031\u306e\u540c\u3058\u66dc\u65e5\n \n \n Previous week\n \u524d\u9031\n \n \n This week\n \u4eca\u9031\n \n \n This week so far\n \u4eca\u9031\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Last 7 days\n \u904e\u53bb7\u65e5\u9593\n \n \n Previous month\n \u524d\u6708\n \n \n This month\n \u4eca\u6708\n \n \n This month so far\n \u4eca\u6708\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Last 30 days\n \u904e\u53bb30\u65e5\u9593\n \n \n Last 90 days\n \u904e\u53bb90\u65e5\u9593\n \n \n Last 6 months\n \u904e\u53bb6\u30ab\u6708\n \n \n Last 1 year\n \u904e\u53bb1\u5e74\u9593\n \n \n Previous year\n \u524d\u5e74\n \n \n This year\n \u4eca\u5e74\n \n \n This year so far\n \u4eca\u5e74\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Last 2 years\n \u904e\u53bb2\u5e74\u9593\n \n \n Last 5 years\n \u904e\u53bb5\u5e74\u9593\n \n \n Information\n \u60c5\u5831\n \n \n No items selected.\n \u30a2\u30a4\u30c6\u30e0\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Deselect item to select again\n \u30a2\u30a4\u30c6\u30e0\u3092\u9078\u629e\u89e3\u9664\u3057\u3066\u518d\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\n \n \n Selection limit reached\n \u9078\u629e\u306e\u4e0a\u9650\u306b\u9054\u3057\u307e\u3057\u305f\n \n \n Filter tags\n \u30bf\u30b0\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\n \n \n Add badge\n \u30d0\u30c3\u30b8\u306e\u8ffd\u52a0\n \n \n There are no items available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a2\u30a4\u30c6\u30e0\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n Add\n \u8ffd\u52a0\n \n \n Remove\n Remove\n \n \n Clone\n \u8907\u88fd\n \n \n Copy\n \u30b3\u30d4\u30fc\n \n \n Deep Scrub\n \u30c7\u30a3\u30fc\u30d7\u30b9\u30af\u30e9\u30d6\n \n \n Destroy\n \u7834\u68c4\n \n \n Flatten\n \u30d5\u30e9\u30c3\u30c8\u5316\n \n \n Mark Down\n \u30c0\u30a6\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Mark In\n \u30a4\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Mark Lost\n \u55aa\u5931\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Mark Out\n \u30a2\u30a6\u30c8\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Protect\n \u4fdd\u8b77\n \n \n Rename\n \u540d\u524d\u306e\u5909\u66f4\n \n \n Restore\n \u5fa9\u5143\n \n \n Move to Trash\n \u3054\u307f\u7bb1\u306b\u79fb\u52d5\u3059\u308b\n \n \n Unprotect\n \u4fdd\u8b77\u89e3\u9664\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \u524a\u9664\u6e08\u307f\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \u8907\u88fd\u6e08\u307f\n \n \n Copied\n \u30b3\u30d4\u30fc\u6e08\u307f\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \u306f\u3044\n \n \n No\n \u3044\u3044\u3048\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \u30b5\u30fc\u30d3\u30b9\u54c1\u8cea\n \n \n BPS Limit\n BPS\u5236\u9650\n \n \n The desired limit of IO bytes per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u5165\u51fa\u529b\u30d0\u30a4\u30c8\u6570\u306e\u4e0a\u9650\u3002\n \n \n IOPS Limit\n IOPS\u5236\u9650\n \n \n The desired limit of IO operations per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u5165\u51fa\u529b\u64cd\u4f5c\u6570\u306e\u4e0a\u9650\u3002\n \n \n Read BPS Limit\n \u8aad\u307f\u53d6\u308aBPS\u5236\u9650\n \n \n The desired limit of read bytes per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\u306e\u4e0a\u9650\u3002\n \n \n Read IOPS Limit\n \u8aad\u307f\u53d6\u308aIOPS\u5236\u9650\n \n \n The desired limit of read operations per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\u306e\u4e0a\u9650\u3002\n \n \n Write BPS Limit\n \u66f8\u304d\u8fbc\u307fBPS\u5236\u9650\n \n \n The desired limit of write bytes per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\u306e\u4e0a\u9650\u3002\n \n \n Write IOPS Limit\n \u66f8\u304d\u8fbc\u307fIOPS\u5236\u9650\n \n \n The desired limit of write operations per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\u306e\u4e0a\u9650\u3002\n \n \n BPS Burst\n BPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of IO bytes.\n \u5e0c\u671b\u3059\u308b\u5165\u51fa\u529b\u30d0\u30a4\u30c8\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n IOPS Burst\n IOPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of IO operations.\n \u5e0c\u671b\u3059\u308b\u5165\u51fa\u529b\u64cd\u4f5c\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Read BPS Burst\n \u8aad\u307f\u53d6\u308aBPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of read bytes.\n \u5e0c\u671b\u3059\u308b\u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Read IOPS Burst\n \u8aad\u307f\u53d6\u308aIOPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of read operations.\n \u5e0c\u671b\u3059\u308b\u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Write BPS Burst\n \u66f8\u304d\u8fbc\u307fBPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of write bytes.\n \u5e0c\u671b\u3059\u308b\u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Write IOPS Burst\n \u66f8\u304d\u8fbc\u307fIOPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of write operations.\n \u5e0c\u671b\u3059\u308b\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Failed to \n \n \n \n \n \n \u3092\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\n \n \n \n Executing\n \u5b9f\u884c\u4e2d\n \n \n execute\n \u5b9f\u884c\n \n \n Executed\n \u5b9f\u884c\u6e08\u307f\n \n \n unknown task\n \u4e0d\u660e\u306a\u30bf\u30b9\u30af\n \n \n Creating\n \u4f5c\u6210\u4e2d\n \n \n create\n \u4f5c\u6210\n \n \n Updating\n \u66f4\u65b0\u4e2d\n \n \n update\n \u66f4\u65b0\n \n \n Deleting\n \u524a\u9664\u4e2d\n \n \n delete\n \u524a\u9664\n \n \n RBD \'\n \'\n \n RBD\u300c\n \u300d\n \n \n \n RBD snapshot \'\n \'\n \n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u300c\n \u300d\n \n \n \n mirror mode for pool \'\n \'\n \n \u30d7\u30fc\u30eb\u300c\n \u300d\u306e\u30df\u30e9\u30fc\u30e2\u30fc\u30c9\n \n \n \n mirror peer for pool \'\n \'\n \n \u30d7\u30fc\u30eb\u300c\n \u300d\u306e\u30df\u30e9\u30fc\u30d4\u30a2\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n \n contains snapshots.\n \n \n \u306b\u306f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Cloning\n \u8907\u88fd\u4e2d\n \n \n clone\n \u8907\u88fd\n \n \n Snapshot of \n must be protected.\n \n \n \u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306f\u4fdd\u8b77\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n Copying\n \u30b3\u30d4\u30fc\u4e2d\n \n \n copy\n \u30b3\u30d4\u30fc\n \n \n Flattening\n \u30d5\u30e9\u30c3\u30c8\u5316\u4e2d\n \n \n flatten\n \u30d5\u30e9\u30c3\u30c8\u5316\n \n \n Flattened\n \u30d5\u30e9\u30c3\u30c8\u5316\u6e08\u307f\n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \n \u306f\u5b50\u30a4\u30e1\u30fc\u30b8\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u4fdd\u8b77\u89e3\u9664\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Cannot delete \n because it\'s protected.\n \n \n \u306f\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Rolling back\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u4e2d\n \n \n rollback\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\n \n \n Rolled back\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u6e08\u307f\n \n \n Moving\n \u79fb\u52d5\u4e2d\n \n \n move\n \u79fb\u52d5\n \n \n Moved\n \u79fb\u52d5\u6e08\u307f\n \n \n image \'\n \' to trash\n \n \u30a4\u30e1\u30fc\u30b8\u300c\n \u300d\u3092\u3054\u307f\u7bb1\u306b\n \n \n \n Could not find image.\n \u30a4\u30e1\u30fc\u30b8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n Restoring\n \u5fa9\u5143\u4e2d\n \n \n restore\n \u5fa9\u5143\n \n \n Restored\n \u5fa9\u5143\u6e08\u307f\n \n \n image \'\n \' into \'\n \'\n \n \u30a4\u30e1\u30fc\u30b8\u300c\n \u300d\u3092\u300c\n \u300d\u306b\n \n \n \n Image name \'\n \' is already in use.\n \n \u30a4\u30e1\u30fc\u30b8\u540d\u300c\n \u300d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n image \'\n \'\n \n \u30a4\u30e1\u30fc\u30b8\u300c\n \u300d\n \n \n \n Purging\n \u6d88\u53bb\u4e2d\n \n \n purge\n \u6d88\u53bb\n \n \n Purged\n \u6d88\u53bb\u6e08\u307f\n \n \n all pools\n \u3059\u3079\u3066\u306e\u30d7\u30fc\u30eb\n \n \n images from \n \n \n \n \u304b\u3089\u306e\u30a4\u30e1\u30fc\u30b8\n \n \n \n Cannot disable mirroring because it contains a peer.\n \u30d4\u30a2\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u30df\u30e9\u30fc\u30ea\u30f3\u30b0\u3092\u7121\u52b9\u5316\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n pool \'\n \'\n \n \u30d7\u30fc\u30eb\u300c\n \u300d\n \n \n \n erasure code profile \'\n \'\n \n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u300c\n \u300d\n \n \n \n target \'\n \'\n \n \u30bf\u30fc\u30b2\u30c3\u30c8\u300c\n \u300d\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},wbK0:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("dEwP");function r(){for(var t=[],e=0;e>>0,a=0;a0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}var z=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Y={},V={};function H(t,e,n,a){var r=a;"string"==typeof a&&(r=function(){return this[a]()}),t&&(V[t]=r),e&&(V[e[0]]=function(){return F(r.apply(this,arguments),e[1],e[2])}),n&&(V[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function B(t,e){return t.isValid()?(e=U(e,t.localeData()),Y[e]=Y[e]||function(t){var e,n,a,r=t.match(z);for(e=0,n=r.length;e=0&&G.test(t);)t=t.replace(G,a),G.lastIndex=0,n-=1;return t}var W=/\d/,K=/\d\d/,$=/\d{3}/,Z=/\d{4}/,X=/[+-]?\d{6}/,J=/\d\d?/,Q=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,at=/[+-]?\d{1,6}/,rt=/\d+/,it=/[+-]?\d+/,ot=/Z|[+-]\d\d:?\d\d/gi,st=/Z|[+-]\d\d(?::?\d\d)?/gi,ut=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct={};function lt(t,e,n){ct[t]=R(e)?e:function(t,a){return t&&n?n:e}}function dt(t,e){return d(ct,t)?ct[t](e._strict,e._locale):new RegExp(ft(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,a,r){return e||n||a||r})))}function ft(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var pt={};function ht(t,e){var n,a=e;for("string"==typeof t&&(t=[t]),u(e)&&(a=function(t,n){n[e]=w(t)}),n=0;n68?1900:2e3)};var kt,Nt=Rt("FullYear",!0);function Rt(t,e){return function(n){return null!=n?(Et(this,t,n),r.updateOffset(this,e),this):At(this,t)}}function At(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Et(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&Ct(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),Dt(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function Dt(t,e){if(isNaN(t)||isNaN(e))return NaN;var n=(e%12+12)%12;return t+=(e-n)/12,1===n?Ct(t)?29:28:31-n%7%2}kt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e=0){var n=Array.prototype.slice.call(arguments);n[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Vt(t,e,n){var a=7+e-n;return-(7+Yt(t,0,a).getUTCDay()-e)%7+a-1}function Ht(t,e,n,a,r){var i,o,s=1+7*(e-1)+(7+n-a)%7+Vt(t,a,r);return s<=0?o=It(i=t-1)+s:s>It(t)?(i=t+1,o=s-It(t)):(i=t,o=s),{year:i,dayOfYear:o}}function Bt(t,e,n){var a,r,i=Vt(t.year(),e,n),o=Math.floor((t.dayOfYear()-i-1)/7)+1;return o<1?a=o+Ut(r=t.year()-1,e,n):o>Ut(t.year(),e,n)?(a=o-Ut(t.year(),e,n),r=t.year()+1):(r=t.year(),a=o),{week:a,year:r}}function Ut(t,e,n){var a=Vt(t,e,n),r=Vt(t+1,e,n);return(It(t)-a+r)/7}function Wt(t,e){return t.slice(e,7).concat(t.slice(0,e))}H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),j("week",5),j("isoWeek",5),lt("w",J),lt("ww",J,K),lt("W",J),lt("WW",J,K),gt(["w","ww","W","WW"],function(t,e,n,a){e[a.substr(0,1)]=w(t)}),H("d",0,"do","day"),H("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),H("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),H("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),lt("d",J),lt("e",J),lt("E",J),lt("dd",function(t,e){return e.weekdaysMinRegex(t)}),lt("ddd",function(t,e){return e.weekdaysShortRegex(t)}),lt("dddd",function(t,e){return e.weekdaysRegex(t)}),gt(["dd","ddd","dddd"],function(t,e,n,a){var r=n._locale.weekdaysParse(t,a,n._strict);null!=r?e.d=r:h(n).invalidWeekday=t}),gt(["d","e","E"],function(t,e,n,a){e[a]=w(t)});var Kt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),$t="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Zt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Xt=ut,Jt=ut,Qt=ut;function te(){function t(t,e){return e.length-t.length}var e,n,a,r,i,o=[],s=[],u=[],c=[];for(e=0;e<7;e++)n=p([2e3,1]).day(e),a=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),i=this.weekdays(n,""),o.push(a),s.push(r),u.push(i),c.push(a),c.push(r),c.push(i);for(o.sort(t),s.sort(t),u.sort(t),c.sort(t),e=0;e<7;e++)s[e]=ft(s[e]),u[e]=ft(u[e]),c[e]=ft(c[e]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function ee(){return this.hours()%12||12}function ne(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ae(t,e){return e._meridiemParse}H("H",["HH",2],0,"hour"),H("h",["hh",2],0,ee),H("k",["kk",2],0,function(){return this.hours()||24}),H("hmm",0,0,function(){return""+ee.apply(this)+F(this.minutes(),2)}),H("hmmss",0,0,function(){return""+ee.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)}),H("Hmm",0,0,function(){return""+this.hours()+F(this.minutes(),2)}),H("Hmmss",0,0,function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)}),ne("a",!0),ne("A",!1),L("hour","h"),j("hour",13),lt("a",ae),lt("A",ae),lt("H",J),lt("h",J),lt("k",J),lt("HH",J,K),lt("hh",J,K),lt("kk",J,K),lt("hmm",Q),lt("hmmss",tt),lt("Hmm",Q),lt("Hmmss",tt),ht(["H","HH"],xt),ht(["k","kk"],function(t,e,n){var a=w(t);e[xt]=24===a?0:a}),ht(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),ht(["h","hh"],function(t,e,n){e[xt]=w(t),h(n).bigHour=!0}),ht("hmm",function(t,e,n){var a=t.length-2;e[xt]=w(t.substr(0,a)),e[_t]=w(t.substr(a)),h(n).bigHour=!0}),ht("hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[xt]=w(t.substr(0,a)),e[_t]=w(t.substr(a,2)),e[Tt]=w(t.substr(r)),h(n).bigHour=!0}),ht("Hmm",function(t,e,n){var a=t.length-2;e[xt]=w(t.substr(0,a)),e[_t]=w(t.substr(a))}),ht("Hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[xt]=w(t.substr(0,a)),e[_t]=w(t.substr(a,2)),e[Tt]=w(t.substr(r))});var re,ie=Rt("Hours",!0),oe={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Pt,monthsShort:Mt,week:{dow:0,doy:6},weekdays:Kt,weekdaysMin:Zt,weekdaysShort:$t,meridiemParse:/[ap]\.?m?\.?/i},se={},ue={};function ce(t){return t?t.toLowerCase().replace("_","-"):t}function le(e){var a=null;if(!se[e]&&void 0!==t&&t&&t.exports)try{a=re._abbr,n("RnhZ")("./"+e),de(a)}catch(r){}return se[e]}function de(t,e){var n;return t&&((n=s(e)?pe(t):fe(t,e))?re=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),re._abbr}function fe(t,e){if(null!==e){var n,a=oe;if(e.abbr=t,null!=se[t])N("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),a=se[t]._config;else if(null!=e.parentLocale)if(null!=se[e.parentLocale])a=se[e.parentLocale]._config;else{if(null==(n=le(e.parentLocale)))return ue[e.parentLocale]||(ue[e.parentLocale]=[]),ue[e.parentLocale].push({name:t,config:e}),null;a=n._config}return se[t]=new E(A(a,e)),ue[t]&&ue[t].forEach(function(t){fe(t.name,t.config)}),de(t),se[t]}return delete se[t],null}function pe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return re;if(!i(t)){if(e=le(t))return e;t=[t]}return function(t){for(var e,n,a,r,i=0;i0;){if(a=le(r.slice(0,e).join("-")))return a;if(n&&n.length>=e&&S(r,n,!0)>=e-1)break;e--}i++}return re}(t)}function he(t){var e,n=t._a;return n&&-2===h(t).overflow&&(e=n[yt]<0||n[yt]>11?yt:n[vt]<1||n[vt]>Dt(n[bt],n[yt])?vt:n[xt]<0||n[xt]>24||24===n[xt]&&(0!==n[_t]||0!==n[Tt]||0!==n[wt])?xt:n[_t]<0||n[_t]>59?_t:n[Tt]<0||n[Tt]>59?Tt:n[wt]<0||n[wt]>999?wt:-1,h(t)._overflowDayOfYear&&(evt)&&(e=vt),h(t)._overflowWeeks&&-1===e&&(e=St),h(t)._overflowWeekday&&-1===e&&(e=Ot),h(t).overflow=e),t}function ge(t,e,n){return null!=t?t:null!=e?e:n}function me(t){var e,n,a,i,o,s=[];if(!t._d){for(a=function(t){var e=new Date(r.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[vt]&&null==t._a[yt]&&function(t){var e,n,a,r,i,o,s,u;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)i=1,o=4,n=ge(e.GG,t._a[bt],Bt(Ae(),1,4).year),a=ge(e.W,1),((r=ge(e.E,1))<1||r>7)&&(u=!0);else{i=t._locale._week.dow,o=t._locale._week.doy;var c=Bt(Ae(),i,o);n=ge(e.gg,t._a[bt],c.year),a=ge(e.w,c.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(u=!0)):r=i}a<1||a>Ut(n,i,o)?h(t)._overflowWeeks=!0:null!=u?h(t)._overflowWeekday=!0:(s=Ht(n,a,r,i,o),t._a[bt]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(o=ge(t._a[bt],a[bt]),(t._dayOfYear>It(o)||0===t._dayOfYear)&&(h(t)._overflowDayOfYear=!0),n=Yt(o,0,t._dayOfYear),t._a[yt]=n.getUTCMonth(),t._a[vt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=a[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[xt]&&0===t._a[_t]&&0===t._a[Tt]&&0===t._a[wt]&&(t._nextDay=!0,t._a[xt]=0),t._d=(t._useUTC?Yt:function(t,e,n,a,r,i,o){var s;return t<100&&t>=0?(s=new Date(t+400,e,n,a,r,i,o),isFinite(s.getFullYear())&&s.setFullYear(t)):s=new Date(t,e,n,a,r,i,o),s}).apply(null,s),i=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[xt]=24),t._w&&void 0!==t._w.d&&t._w.d!==i&&(h(t).weekdayMismatch=!0)}}var be=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ye=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ve=/Z|[+-]\d\d(?::?\d\d)?/,xe=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_e=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Te=/^\/?Date\((\-?\d+)/i;function we(t){var e,n,a,r,i,o,s=t._i,u=be.exec(s)||ye.exec(s);if(u){for(h(t).iso=!0,e=0,n=xe.length;e0&&h(t).unusedInput.push(o),s=s.slice(s.indexOf(n)+n.length),c+=n.length),V[i]?(n?h(t).empty=!1:h(t).unusedTokens.push(i),mt(i,n,t)):t._strict&&!n&&h(t).unusedTokens.push(i);h(t).charsLeftOver=u-c,s.length>0&&h(t).unusedInput.push(s),t._a[xt]<=12&&!0===h(t).bigHour&&t._a[xt]>0&&(h(t).bigHour=void 0),h(t).parsedDateParts=t._a.slice(0),h(t).meridiem=t._meridiem,t._a[xt]=(l=t._locale,d=t._a[xt],null==(f=t._meridiem)?d:null!=l.meridiemHour?l.meridiemHour(d,f):null!=l.isPM?((p=l.isPM(f))&&d<12&&(d+=12),p||12!==d||(d=0),d):d),me(t),he(t)}else Ce(t);else we(t);var l,d,f,p}function Ne(t){var e=t._i,n=t._f;return t._locale=t._locale||pe(t._l),null===e||void 0===n&&""===e?m({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),_(e)?new x(he(e)):(c(e)?t._d=e:i(n)?function(t){var e,n,a,r,i;if(0===t._f.length)return h(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis?this:t:m()});function Le(t,e){var n,a;if(1===e.length&&i(e[0])&&(e=e[0]),!e.length)return Ae();for(n=e[0],a=1;a=0?new Date(t+400,e,n)-rn:new Date(t,e,n).valueOf()}function un(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-rn:Date.UTC(t,e,n)}function cn(t,e){H(0,[t,t.length],0,e)}function ln(t,e,n,a,r){var i;return null==t?Bt(this,a,r).year:(e>(i=Ut(t,a,r))&&(e=i),(function(t,e,n,a,r){var i=Ht(t,e,n,a,r),o=Yt(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}).call(this,t,e,n,a,r))}H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),cn("gggg","weekYear"),cn("ggggg","weekYear"),cn("GGGG","isoWeekYear"),cn("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),j("weekYear",1),j("isoWeekYear",1),lt("G",it),lt("g",it),lt("GG",J,K),lt("gg",J,K),lt("GGGG",nt,Z),lt("gggg",nt,Z),lt("GGGGG",at,X),lt("ggggg",at,X),gt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,a){e[a.substr(0,2)]=w(t)}),gt(["gg","GG"],function(t,e,n,a){e[a]=r.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),L("quarter","Q"),j("quarter",7),lt("Q",W),ht("Q",function(t,e){e[yt]=3*(w(t)-1)}),H("D",["DD",2],"Do","date"),L("date","D"),j("date",9),lt("D",J),lt("DD",J,K),lt("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),ht(["D","DD"],vt),ht("Do",function(t,e){e[vt]=w(t.match(J)[0])});var dn=Rt("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),j("dayOfYear",4),lt("DDD",et),lt("DDDD",$),ht(["DDD","DDDD"],function(t,e,n){n._dayOfYear=w(t)}),H("m",["mm",2],0,"minute"),L("minute","m"),j("minute",14),lt("m",J),lt("mm",J,K),ht(["m","mm"],_t);var fn=Rt("Minutes",!1);H("s",["ss",2],0,"second"),L("second","s"),j("second",15),lt("s",J),lt("ss",J,K),ht(["s","ss"],Tt);var pn,hn=Rt("Seconds",!1);for(H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),j("millisecond",16),lt("S",et,W),lt("SS",et,K),lt("SSS",et,$),pn="SSSS";pn.length<=9;pn+="S")lt(pn,rt);function gn(t,e){e[wt]=w(1e3*("0."+t))}for(pn="S";pn.length<=9;pn+="S")ht(pn,gn);var mn=Rt("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var bn=x.prototype;function yn(t){return t}bn.add=Je,bn.calendar=function(t,e){var n=t||Ae(),a=Ye(n,this).startOf("day"),i=r.calendarFormat(this,a)||"sameElse",o=e&&(R(e[i])?e[i].call(this,n):e[i]);return this.format(o||this.localeData().calendar(i,this,Ae(n)))},bn.clone=function(){return new x(this)},bn.diff=function(t,e,n){var a,r,i;if(!this.isValid())return NaN;if(!(a=Ye(t,this)).isValid())return NaN;switch(r=6e4*(a.utcOffset()-this.utcOffset()),e=P(e)){case"year":i=tn(this,a)/12;break;case"month":i=tn(this,a);break;case"quarter":i=tn(this,a)/3;break;case"second":i=(this-a)/1e3;break;case"minute":i=(this-a)/6e4;break;case"hour":i=(this-a)/36e5;break;case"day":i=(this-a-r)/864e5;break;case"week":i=(this-a-r)/6048e5;break;default:i=this-a}return n?i:T(i)},bn.endOf=function(t){var e;if(void 0===(t=P(t))||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?un:sn;switch(t){case"year":e=n(this.year()+1,0,1)-1;break;case"quarter":e=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=n(this.year(),this.month()+1,1)-1;break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-on(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-on(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-on(e,1e3)-1}return this._d.setTime(e),r.updateOffset(this,!0),this},bn.format=function(t){t||(t=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var e=B(this,t);return this.localeData().postformat(e)},bn.from=function(t,e){return this.isValid()&&(_(t)&&t.isValid()||Ae(t).isValid())?We({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},bn.fromNow=function(t){return this.from(Ae(),t)},bn.to=function(t,e){return this.isValid()&&(_(t)&&t.isValid()||Ae(t).isValid())?We({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},bn.toNow=function(t){return this.to(Ae(),t)},bn.get=function(t){return R(this[t=P(t)])?this[t]():this},bn.invalidAt=function(){return h(this).overflow},bn.isAfter=function(t,e){var n=_(t)?t:Ae(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=P(e)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?B(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):R(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",B(n,"Z")):B(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},bn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',a=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(n+a+"-MM-DD[T]HH:mm:ss.SSS"+e+'[")]')},bn.toJSON=function(){return this.isValid()?this.toISOString():null},bn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},bn.unix=function(){return Math.floor(this.valueOf()/1e3)},bn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},bn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},bn.year=Nt,bn.isLeapYear=function(){return Ct(this.year())},bn.weekYear=function(t){return ln.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},bn.isoWeekYear=function(t){return ln.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},bn.quarter=bn.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},bn.month=jt,bn.daysInMonth=function(){return Dt(this.year(),this.month())},bn.week=bn.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},bn.isoWeek=bn.isoWeeks=function(t){var e=Bt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},bn.weeksInYear=function(){var t=this.localeData()._week;return Ut(this.year(),t.dow,t.doy)},bn.isoWeeksInYear=function(){return Ut(this.year(),1,4)},bn.date=dn,bn.day=bn.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},bn.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},bn.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},bn.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},bn.hour=bn.hours=ie,bn.minute=bn.minutes=fn,bn.second=bn.seconds=hn,bn.millisecond=bn.milliseconds=mn,bn.utcOffset=function(t,e,n){var a,i=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ge(st,t)))return this}else Math.abs(t)<16&&!n&&(t*=60);return!this._isUTC&&e&&(a=Ve(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),i!==t&&(!e||this._changeInProgress?Xe(this,We(t-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,r.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Ve(this)},bn.utc=function(t){return this.utcOffset(0,t)},bn.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ve(this),"m")),this},bn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ge(ot,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},bn.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Ae(t).utcOffset():0,(this.utcOffset()-t)%60==0)},bn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},bn.isLocal=function(){return!!this.isValid()&&!this._isUTC},bn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},bn.isUtc=He,bn.isUTC=He,bn.zoneAbbr=function(){return this._isUTC?"UTC":""},bn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},bn.dates=I("dates accessor is deprecated. Use date instead.",dn),bn.months=I("months accessor is deprecated. Use month instead",jt),bn.years=I("years accessor is deprecated. Use year instead",Nt),bn.zone=I("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),bn.isDSTShifted=I("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(y(t,this),(t=Ne(t))._a){var e=t._isUTC?p(t._a):Ae(t._a);this._isDSTShifted=this.isValid()&&S(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var vn=E.prototype;function xn(t,e,n,a){var r=pe(),i=p().set(a,e);return r[n](i,t)}function _n(t,e,n){if(u(t)&&(e=t,t=void 0),t=t||"",null!=e)return xn(t,e,n,"month");var a,r=[];for(a=0;a<12;a++)r[a]=xn(t,a,n,"month");return r}function Tn(t,e,n,a){"boolean"==typeof t?(u(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,u(e)&&(n=e,e=void 0),e=e||"");var r,i=pe(),o=t?i._week.dow:0;if(null!=n)return xn(e,(n+o)%7,a,"day");var s=[];for(r=0;r<7;r++)s[r]=xn(e,(r+o)%7,a,"day");return s}vn.calendar=function(t,e,n){var a=this._calendar[t]||this._calendar.sameElse;return R(a)?a.call(e,n):a},vn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},vn.invalidDate=function(){return this._invalidDate},vn.ordinal=function(t){return this._ordinal.replace("%d",t)},vn.preparse=yn,vn.postformat=yn,vn.relativeTime=function(t,e,n,a){var r=this._relativeTime[n];return R(r)?r(t,e,n,a):r.replace(/%d/i,t)},vn.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return R(n)?n(e):n.replace(/%s/i,e)},vn.set=function(t){var e,n;for(n in t)R(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},vn.months=function(t,e){return t?i(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Lt).test(e)?"format":"standalone"][t.month()]:i(this._months)?this._months:this._months.standalone},vn.monthsShort=function(t,e){return t?i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Lt.test(e)?"format":"standalone"][t.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},vn.monthsParse=function(t,e,n){var a,r,i;if(this._monthsParseExact)return(function(t,e,n){var a,r,i,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)i=p([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(r=kt.call(this._shortMonthsParse,o))?r:null:-1!==(r=kt.call(this._longMonthsParse,o))?r:null:"MMM"===e?-1!==(r=kt.call(this._shortMonthsParse,o))?r:-1!==(r=kt.call(this._longMonthsParse,o))?r:null:-1!==(r=kt.call(this._longMonthsParse,o))?r:-1!==(r=kt.call(this._shortMonthsParse,o))?r:null}).call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;a<12;a++){if(r=p([2e3,a]),n&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[a]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[a]||(i="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[a]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[a].test(t))return a;if(n&&"MMM"===e&&this._shortMonthsParse[a].test(t))return a;if(!n&&this._monthsParse[a].test(t))return a}},vn.monthsRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||Gt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=zt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},vn.monthsShortRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||Gt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=Ft),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},vn.week=function(t){return Bt(t,this._week.dow,this._week.doy).week},vn.firstDayOfYear=function(){return this._week.doy},vn.firstDayOfWeek=function(){return this._week.dow},vn.weekdays=function(t,e){var n=i(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Wt(n,this._week.dow):t?n[t.day()]:n},vn.weekdaysMin=function(t){return!0===t?Wt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},vn.weekdaysShort=function(t){return!0===t?Wt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},vn.weekdaysParse=function(t,e,n){var a,r,i;if(this._weekdaysParseExact)return(function(t,e,n){var a,r,i,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)i=p([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(r=kt.call(this._weekdaysParse,o))?r:null:"ddd"===e?-1!==(r=kt.call(this._shortWeekdaysParse,o))?r:null:-1!==(r=kt.call(this._minWeekdaysParse,o))?r:null:"dddd"===e?-1!==(r=kt.call(this._weekdaysParse,o))?r:-1!==(r=kt.call(this._shortWeekdaysParse,o))?r:-1!==(r=kt.call(this._minWeekdaysParse,o))?r:null:"ddd"===e?-1!==(r=kt.call(this._shortWeekdaysParse,o))?r:-1!==(r=kt.call(this._weekdaysParse,o))?r:-1!==(r=kt.call(this._minWeekdaysParse,o))?r:null:-1!==(r=kt.call(this._minWeekdaysParse,o))?r:-1!==(r=kt.call(this._weekdaysParse,o))?r:-1!==(r=kt.call(this._shortWeekdaysParse,o))?r:null}).call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(r=p([2e3,1]).day(a),n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[a]||(i="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[a]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}},vn.weekdaysRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||te.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Xt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},vn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||te.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Jt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},vn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||te.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Qt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},vn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},vn.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},de("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),r.lang=I("moment.lang is deprecated. Use moment.locale instead.",de),r.langData=I("moment.langData is deprecated. Use moment.localeData instead.",pe);var wn=Math.abs;function Sn(t,e,n,a){var r=We(e,n);return t._milliseconds+=a*r._milliseconds,t._days+=a*r._days,t._months+=a*r._months,t._bubble()}function On(t){return t<0?Math.floor(t):Math.ceil(t)}function In(t){return 4800*t/146097}function Cn(t){return 146097*t/4800}function kn(t){return function(){return this.as(t)}}var Nn=kn("ms"),Rn=kn("s"),An=kn("m"),En=kn("h"),Dn=kn("d"),Ln=kn("w"),Pn=kn("M"),Mn=kn("Q"),qn=kn("y");function jn(t){return function(){return this.isValid()?this._data[t]:NaN}}var Fn=jn("milliseconds"),zn=jn("seconds"),Gn=jn("minutes"),Yn=jn("hours"),Vn=jn("days"),Hn=jn("months"),Bn=jn("years"),Un=Math.round,Wn={ss:44,s:45,m:45,h:22,d:26,M:11},Kn=Math.abs;function $n(t){return(t>0)-(t<0)||+t}function Zn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n=Kn(this._milliseconds)/1e3,a=Kn(this._days),r=Kn(this._months);t=T(n/60),e=T(t/60),n%=60,t%=60;var i=T(r/12),o=r%=12,s=a,u=e,c=t,l=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var f=d<0?"-":"",p=$n(this._months)!==$n(d)?"-":"",h=$n(this._days)!==$n(d)?"-":"",g=$n(this._milliseconds)!==$n(d)?"-":"";return f+"P"+(i?p+i+"Y":"")+(o?p+o+"M":"")+(s?h+s+"D":"")+(u||c||l?"T":"")+(u?g+u+"H":"")+(c?g+c+"M":"")+(l?g+l+"S":"")}var Xn=Me.prototype;return Xn.isValid=function(){return this._isValid},Xn.abs=function(){var t=this._data;return this._milliseconds=wn(this._milliseconds),this._days=wn(this._days),this._months=wn(this._months),t.milliseconds=wn(t.milliseconds),t.seconds=wn(t.seconds),t.minutes=wn(t.minutes),t.hours=wn(t.hours),t.months=wn(t.months),t.years=wn(t.years),this},Xn.add=function(t,e){return Sn(this,t,e,1)},Xn.subtract=function(t,e){return Sn(this,t,e,-1)},Xn.as=function(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds;if("month"===(t=P(t))||"quarter"===t||"year"===t)switch(n=this._months+In(e=this._days+a/864e5),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(Cn(this._months)),t){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hour":return 24*e+a/36e5;case"minute":return 1440*e+a/6e4;case"second":return 86400*e+a/1e3;case"millisecond":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+t)}},Xn.asMilliseconds=Nn,Xn.asSeconds=Rn,Xn.asMinutes=An,Xn.asHours=En,Xn.asDays=Dn,Xn.asWeeks=Ln,Xn.asMonths=Pn,Xn.asQuarters=Mn,Xn.asYears=qn,Xn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN},Xn._bubble=function(){var t,e,n,a,r,i=this._milliseconds,o=this._days,s=this._months,u=this._data;return i>=0&&o>=0&&s>=0||i<=0&&o<=0&&s<=0||(i+=864e5*On(Cn(s)+o),o=0,s=0),u.milliseconds=i%1e3,t=T(i/1e3),u.seconds=t%60,e=T(t/60),u.minutes=e%60,n=T(e/60),u.hours=n%24,o+=T(n/24),s+=r=T(In(o)),o-=On(Cn(r)),a=T(s/12),s%=12,u.days=o,u.months=s,u.years=a,this},Xn.clone=function(){return We(this)},Xn.get=function(t){return t=P(t),this.isValid()?this[t+"s"]():NaN},Xn.milliseconds=Fn,Xn.seconds=zn,Xn.minutes=Gn,Xn.hours=Yn,Xn.days=Vn,Xn.weeks=function(){return T(this.days()/7)},Xn.months=Hn,Xn.years=Bn,Xn.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=function(t,e,n){var a=We(t).abs(),r=Un(a.as("s")),i=Un(a.as("m")),o=Un(a.as("h")),s=Un(a.as("d")),u=Un(a.as("M")),c=Un(a.as("y")),l=r<=Wn.ss&&["s",r]||r0,l[4]=n,(function(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}).apply(null,l)}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},Xn.toISOString=Zn,Xn.toString=Zn,Xn.toJSON=Zn,Xn.locale=en,Xn.localeData=an,Xn.toIsoString=I("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Zn),Xn.lang=nn,H("X",0,0,"unix"),H("x",0,0,"valueOf"),lt("x",it),lt("X",/[+-]?\d+(\.\d{1,3})?/),ht("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),ht("x",function(t,e,n){n._d=new Date(w(t))}),r.version="2.24.0",e=Ae,r.fn=bn,r.min=function(){return Le("isBefore",[].slice.call(arguments,0))},r.max=function(){return Le("isAfter",[].slice.call(arguments,0))},r.now=function(){return Date.now?Date.now():+new Date},r.utc=p,r.unix=function(t){return Ae(1e3*t)},r.months=function(t,e){return _n(t,e,"months")},r.isDate=c,r.locale=de,r.invalid=m,r.duration=We,r.isMoment=_,r.weekdays=function(t,e,n){return Tn(t,e,n,"weekdays")},r.parseZone=function(){return Ae.apply(null,arguments).parseZone()},r.localeData=pe,r.isDuration=qe,r.monthsShort=function(t,e){return _n(t,e,"monthsShort")},r.weekdaysMin=function(t,e,n){return Tn(t,e,n,"weekdaysMin")},r.defineLocale=fe,r.updateLocale=function(t,e){if(null!=e){var n,a,r=oe;null!=(a=le(t))&&(r=a._config),(n=new E(e=A(r,e))).parentLocale=se[t],se[t]=n,de(t)}else null!=se[t]&&(null!=se[t].parentLocale?se[t]=se[t].parentLocale:null!=se[t]&&delete se[t]);return se[t]},r.locales=function(){return C(se)},r.weekdaysShort=function(t,e,n){return Tn(t,e,n,"weekdaysShort")},r.normalizeUnits=P,r.relativeTimeRounding=function(t){return void 0===t?Un:"function"==typeof t&&(Un=t,!0)},r.relativeTimeThreshold=function(t,e){return void 0!==Wn[t]&&(void 0===e?Wn[t]:(Wn[t]=e,"s"===t&&(Wn.ss=e-1),!0))},r.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},r.prototype=bn,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()}).call(this,n("YuTi")(t))},wnGv:function(t,e,n){"use strict";n.d(e,"a",function(){return c});var a=n("CcnG"),r=n("gIcY"),i=n("LvDl"),o=n("QFaf"),s=n("DNAf"),u=n("a96k"),c=function(){function t(t){this.i18n=t,this.data=[],this.options=[],this.messages=new s.a({},this.i18n),this.customBadges=!1,this.customBadgeValidators=[],this.selection=new a.EventEmitter,this.Object=Object,this.filteredOptions=[]}return t.prototype.ngOnInit=function(){this.initFilter(),this.data.length>0&&this.initMissingOptions(),this.options=i.sortBy(this.options,["name"]),this.updateOptions()},t.prototype.initFilter=function(){this.filter=new r.i("",{validators:this.customBadgeValidators}),this.form=new o.a({filter:this.filter}),this.filteredOptions=(this.options||[]).slice()},t.prototype.initMissingOptions=function(){var t=this,e=this.options.map(function(t){return t.name});this.data.filter(function(t){return-1===e.indexOf(t)}).forEach(function(e){return t.addOption(e)}),this.forceOptionsToReflectData()},t.prototype.addOption=function(t){this.options.push(new u.a(!1,t,"")),this.options=i.sortBy(this.options,["name"]),this.triggerSelection(this.options.find(function(e){return e.name===t}))},t.prototype.triggerSelection=function(t){!t||this.selectionLimit&&!t.selected&&this.data.length>=this.selectionLimit||(t.selected=!t.selected,this.updateOptions(),this.selection.emit({option:t}))},t.prototype.updateOptions=function(){var t=this;this.data.splice(0,this.data.length),this.options.forEach(function(e){e.selected&&t.data.push(e.name)}),this.updateFilter()},t.prototype.updateFilter=function(){var t=this;this.filteredOptions=this.options.filter(function(e){return e.name.includes(t.filter.value)})},t.prototype.forceOptionsToReflectData=function(){var t=this;this.options.forEach(function(e){-1!==t.data.indexOf(e.name)&&(e.selected=!0)})},t.prototype.ngOnChanges=function(){this.filter&&this.updateFilter(),this.options&&this.data&&0!==this.data.length&&this.forceOptionsToReflectData()},t.prototype.selectOption=function(){0===this.filteredOptions.length?this.addCustomOption():(this.triggerSelection(this.filteredOptions[0]),this.resetFilter())},t.prototype.addCustomOption=function(){this.isCreatable()&&(this.addOption(this.filter.value),this.resetFilter())},t.prototype.isCreatable=function(){var t=this;return this.customBadges&&this.filter.valid&&this.filter.value.length>0&&this.filteredOptions.every(function(e){return e.name!==t.filter.value})},t.prototype.resetFilter=function(){this.filter.setValue(""),this.updateFilter()},t.prototype.removeItem=function(t){this.triggerSelection(this.options.find(function(e){return e.name===t&&e.selected}))},t}()},x38r:function(t,e,n){"use strict";var a;n.d(e,"a",function(){return a}),function(t){t.bold="bold",t.sparkline="sparkline",t.perSecond="perSecond",t.checkIcon="checkIcon",t.routerLink="routerLink",t.executing="executing",t.classAdding="classAdding",t.map="map"}(a||(a={}))},x6pH:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(t){return 2===t?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":t+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(t){return 2===t?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":t+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(t){return 2===t?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":t+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(t){return 2===t?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":t%10==0&&10!==t?t+" \u05e9\u05e0\u05d4":t+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(t){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(t)},meridiem:function(t,e,n){return t<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":t<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":t<12?n?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":t<18?n?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}()},x8uC:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha");a._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:i.noop,title:function(t,e){var n="",a=e.labels,r=a?a.length:0;if(t.length>0){var i=t[0];i.xLabel?n=i.xLabel:r>0&&i.index-1?t.split("\n"):t}function l(t){var e=a.global,n=i.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:n(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:n(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:n(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:n(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:n(t.titleFontStyle,e.defaultFontStyle),titleFontSize:n(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:n(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:n(t.footerFontStyle,e.defaultFontStyle),footerFontSize:n(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function d(t){return u([],c(t))}(t.exports=r.extend({initialize:function(){this._model=l(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),n=t.title.apply(this,arguments),a=t.afterTitle.apply(this,arguments),r=[];return r=u(r,c(e)),r=u(r,c(n)),u(r,c(a))},getBeforeBody:function(){return d(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,a=n._options.callbacks,r=[];return i.each(t,function(t){var i={before:[],lines:[],after:[]};u(i.before,c(a.beforeLabel.call(n,t,e))),u(i.lines,a.label.call(n,t,e)),u(i.after,c(a.afterLabel.call(n,t,e))),r.push(i)}),r},getAfterBody:function(){return d(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),n=t.footer.apply(this,arguments),a=t.afterFooter.apply(this,arguments),r=[];return r=u(r,c(e)),r=u(r,c(n)),u(r,c(a))},update:function(t){var e,n,a,r,s,u,c,d=this,f=d._options,p=d._model,h=d._model=l(f),g=d._active,m=d._data,b={xAlign:p.xAlign,yAlign:p.yAlign},y={x:p.x,y:p.y},v={width:p.width,height:p.height},x={x:p.caretX,y:p.caretY};if(g.length){h.opacity=1;var _=[],T=[];x=o[f.position].call(d,g,d._eventPosition);var w=[];for(e=0,n=g.length;ea.width&&(r=a.width-e.width),r<0&&(r=0)),"top"===u?i+=c:i-="bottom"===u?e.height+c:e.height/2,"center"===u?"left"===s?r+=c:"right"===s&&(r-=c):"left"===s?r-=l:"right"===s&&(r+=l),{x:r,y:i}}(h,v,b=function(t,e){var n,a,r,i,o,s=t._model,u=t._chart,c=t._chart.chartArea,l="center",d="center";s.yu.height-e.height&&(d="bottom");var f=(c.left+c.right)/2,p=(c.top+c.bottom)/2;"center"===d?(n=function(t){return t<=f},a=function(t){return t>f}):(n=function(t){return t<=e.width/2},a=function(t){return t>=u.width-e.width/2}),r=function(t){return t+e.width+s.caretSize+s.caretPadding>u.width},i=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=p?"top":"bottom"},n(s.x)?(l="left",r(s.x)&&(l="center",d=o(s.y))):a(s.x)&&(l="right",i(s.x)&&(l="center",d=o(s.y)));var h=t._options;return{xAlign:h.xAlign?h.xAlign:l,yAlign:h.yAlign?h.yAlign:d}}(this,v),d._chart)}else h.opacity=0;return h.xAlign=b.xAlign,h.yAlign=b.yAlign,h.x=y.x,h.y=y.y,h.width=v.width,h.height=v.height,h.caretX=x.x,h.caretY=x.y,d._model=h,t&&f.custom&&f.custom.call(d,h),d},drawCaret:function(t,e){var n=this._chart.ctx,a=this.getCaretPosition(t,e,this._view);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var a,r,i,o,s,u,c=n.caretSize,l=n.cornerRadius,d=n.xAlign,f=n.yAlign,p=t.x,h=t.y,g=e.width,m=e.height;if("center"===f)s=h+m/2,"left"===d?(r=(a=p)-c,i=a,o=s+c,u=s-c):(r=(a=p+g)+c,i=a,o=s-c,u=s+c);else if("left"===d?(a=(r=p+l+c)-c,i=r+c):"right"===d?(a=(r=p+g-l-c)-c,i=r+c):(a=(r=n.caretX)-c,i=r+c),"top"===f)s=(o=h)-c,u=o;else{s=(o=h+m)+c,u=o;var b=i;i=a,a=b}return{x1:a,x2:r,x3:i,y1:o,y2:s,y3:u}},drawTitle:function(t,e,n,a){var r=e.title;if(r.length){n.textAlign=e._titleAlign,n.textBaseline="top";var o,u,c=e.titleFontSize,l=e.titleSpacing;for(n.fillStyle=s(e.titleFontColor,a),n.font=i.fontString(c,e._titleFontStyle,e._titleFontFamily),o=0,u=r.length;o0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},a={x:e.x,y:e.y},r=Math.abs(e.opacity<.001)?0:e.opacity;this._options.enabled&&(e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length)&&(this.drawBackground(a,e,t,n,r),a.x+=e.xPadding,a.y+=e.yPadding,this.drawTitle(a,e,t,r),this.drawBody(a,e,t,r),this.drawFooter(a,e,t,r))}},handleEvent:function(t){var e,n=this,a=n._options;return n._lastActive=n._lastActive||[],n._active="mouseout"===t.type?[]:n._chart.getElementsAtEventForMode(t,a.mode,a),(e=!i.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(a.enabled||a.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}})).positioners=o},xMyE:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("FFOo"),i=n("+umK"),o=n("2Bdj");function s(t,e,n){return function(a){return a.lift(new u(t,e,n))}}var u=function(){function t(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.nextOrObserver,this.error,this.complete))},t}(),c=function(t){function e(e,n,a,r){var s=t.call(this,e)||this;return s._tapNext=i.a,s._tapError=i.a,s._tapComplete=i.a,s._tapError=a||i.a,s._tapComplete=r||i.a,Object(o.a)(n)?(s._context=s,s._tapNext=n):n&&(s._context=n,s._tapNext=n.next||i.a,s._tapError=n.error||i.a,s._tapComplete=n.complete||i.a),s}return a.__extends(e,t),e.prototype._next=function(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)},e.prototype._error=function(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()},e}(r.a)},xSw7:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Fgil"),i=n("aXbf"),o=n("eajB"),s=n("lqqz"),u=n("NJnL");n("GgAd"),n.d(e,"a",function(){return c}),n.d(e,"b",function(){return d});var c=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"table",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,14,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Used:\xa0"])),(t()(),a["\u0275eld"](5,0,null,null,3,"td",[["class","text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](7,null,[" ",""])),a["\u0275ppd"](8,1),(t()(),a["\u0275eld"](9,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](10,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Free:\xa0"])),(t()(),a["\u0275eld"](12,0,null,null,3,"td",[["class","'text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](13,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](14,null,["",""])),a["\u0275ppd"](15,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,7,0,t(e,8,0,a["\u0275nov"](e.parent,0),n.usedBytes));t(e,7,0,r);var i=a["\u0275unv"](e,14,0,t(e,15,0,a["\u0275nov"](e.parent,0),n.freeBytes));t(e,14,0,i)})}function d(t){return a["\u0275vid"](0,[a["\u0275pid"](0,r.a,[i.a]),(t()(),a["\u0275and"](0,[["usageTooltipTpl",2]],null,0,null,l)),(t()(),a["\u0275eld"](2,16777216,null,null,5,"div",[["class","progress oaprogress"],["data-placement","left"]],[[1,"aria-describedby",0]],null,null,null,null)),a["\u0275did"](3,212992,null,0,o.c,[a.ViewContainerRef,s.a,o.a,a.ElementRef,a.Renderer2,u.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(t()(),a["\u0275eld"](4,0,null,null,2,"div",[["class","progress-bar progress-bar-info"],["role","progressbar"]],[[4,"width",null]],null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](6,null,["","%"])),(t()(),a["\u0275eld"](7,0,null,null,0,"div",[["class","progress-bar progress-bar-freespace"],["role","progressbar"]],[[4,"width",null]],null,null,null,null))],function(t,e){t(e,3,0,a["\u0275nov"](e,1),"left")},function(t,e){var n=e.component;t(e,2,0,a["\u0275nov"](e,3).ariaDescribedby),t(e,4,0,n.usedPercentage+"%"),t(e,6,0,n.usedPercentage),t(e,7,0,n.freePercentage+"%")})}},xTla:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a="function"==typeof Symbol&&Symbol.observable||"@@observable"},xTzq:function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i});var a=n("LvDl");function r(){for(var t=[],e=0;e=0&&this._children.splice(e,1),this._setFoldingType()}},t.prototype.removeItselfFromParent=function(){this.parent&&this.parent.removeChild(this)},t.prototype.switchFoldingType=function(){!this.isLeaf()&&this.hasChildren()&&(this.disableCollapseOnInit(),this.node._foldingType=this.isNodeExpanded()?i.FoldingType.Collapsed:i.FoldingType.Expanded)},t.prototype.isNodeExpanded=function(){return this.foldingType===i.FoldingType.Expanded},t.prototype.isNodeCollapsed=function(){return this.foldingType===i.FoldingType.Collapsed},t.prototype._setFoldingType=function(){this.node._foldingType=this.childrenShouldBeLoaded()?i.FoldingType.Collapsed:this._children&&!a.isEmpty(this._children)?this.isCollapsedOnInit()?i.FoldingType.Collapsed:i.FoldingType.Expanded:Array.isArray(this._children)?i.FoldingType.Empty:i.FoldingType.Leaf},Object.defineProperty(t.prototype,"foldingType",{get:function(){return this.node._foldingType||this._setFoldingType(),this.node._foldingType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"foldingCssClass",{get:function(){return this.getCssClassesFromSettings()||this.foldingType.cssClass},enumerable:!0,configurable:!0}),t.prototype.getCssClassesFromSettings=function(){return this.node._foldingType||this._setFoldingType(),a.get(this.node.settings,this.node._foldingType===i.FoldingType.Collapsed?"cssClasses.collapsed":this.node._foldingType===i.FoldingType.Expanded?"cssClasses.expanded":this.node._foldingType===i.FoldingType.Empty?"cssClasses.empty":"cssClasses.leaf",null)},Object.defineProperty(t.prototype,"nodeTemplate",{get:function(){return this.getTemplateFromSettings()},enumerable:!0,configurable:!0}),t.prototype.getTemplateFromSettings=function(){return this.isLeaf()?a.get(this.node.settings,"templates.leaf",""):a.get(this.node.settings,"templates.node","")},Object.defineProperty(t.prototype,"leftMenuTemplate",{get:function(){return this.hasLeftMenu()?a.get(this.node.settings,"templates.leftMenu",""):""},enumerable:!0,configurable:!0}),t.prototype.disableCollapseOnInit=function(){this.node.settings&&(this.node.settings.isCollapsedOnInit=!1)},t.prototype.isCollapsedOnInit=function(){return!!a.get(this.node.settings,"isCollapsedOnInit")},t.prototype.keepNodesInDOM=function(){return a.get(this.node.settings,"keepNodesInDOM")},t.prototype.isNew=function(){return this.node._status===i.TreeStatus.New},Object.defineProperty(t.prototype,"id",{get:function(){return a.get(this.node,"id")},set:function(t){this.node.id=t},enumerable:!0,configurable:!0}),t.prototype.markAsNew=function(){this.node._status=i.TreeStatus.New},t.prototype.isBeingRenamed=function(){return this.node._status===i.TreeStatus.IsBeingRenamed},t.prototype.markAsBeingRenamed=function(){this.node._status=i.TreeStatus.IsBeingRenamed},t.prototype.isModified=function(){return this.node._status===i.TreeStatus.Modified},t.prototype.markAsModified=function(){this.node._status=i.TreeStatus.Modified},t.prototype.toTreeModel=function(){var t=a.defaultsDeep(this.isLeaf()?{}:{children:[]},this.node);return this.children&&this.children.forEach(function(e){t.children.push(e.toTreeModel())}),t},t}()},xbqr:function(t,e,n){"use strict";var a=n("CcnG"),r=n("MdoF"),i=n("lTVp");n("9GXa"),n.d(e,"a",function(){return o}),n.d(e,"b",function(){return s});var o=a["\u0275crt"]({encapsulation:0,styles:[[".warning-panel-alert-icon[_ngcontent-%COMP%]{vertical-align:top;padding-right:15px}.warning-panel-alert-title[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,11,"alert",[["type","warning"]],null,null,null,r.c,r.b)),a["\u0275did"](1,114688,null,0,i.a,[i.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["\u0275eld"](2,0,null,0,9,"table",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"td",[["class","warning-panel-alert-icon"],["rowspan","2"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-3x fa-warning alert-warning"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,1,"td",[["class","warning-panel-alert-title"]],null,null,null,null,null)),(t()(),a["\u0275ted"](8,null,[" "," "])),(t()(),a["\u0275eld"](9,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](10,0,null,null,1,"td",[["class","warning-panel-alert-text"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],function(t,e){t(e,1,0,"warning")},function(t,e){t(e,8,0,e.component.title)})}},xdbM:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=n("CcnG"),o=n("WyAD"),s=function(){function t(t){this.labels=[],this.options={},this.chartClick=new i.EventEmitter,this.chartHover=new i.EventEmitter,this.initFlag=!1,this.element=t}return t.prototype.ngOnInit=function(){this.ctx=this.element.nativeElement.getContext("2d"),this.cvs=this.element.nativeElement,this.initFlag=!0,(this.data||this.datasets)&&this.refresh()},t.prototype.ngOnChanges=function(t){this.initFlag&&(t.hasOwnProperty("data")||t.hasOwnProperty("datasets")?(this.updateChartData(t.data?t.data.currentValue:t.datasets.currentValue),this.chart.update()):this.refresh())},t.prototype.ngOnDestroy=function(){this.chart&&(this.chart.destroy(),this.chart=void 0)},t.prototype.getChartBuilder=function(t){var e=this,n=this.getDatasets(),a=Object.assign({},this.options);return!1===this.legend&&(a.legend={display:!1}),a.hover=a.hover||{},a.hover.onHover||(a.hover.onHover=function(t){t&&!t.length||e.chartHover.emit({active:t})}),a.onClick||(a.onClick=function(t,n){e.chartClick.emit({event:t,active:n})}),new o.Chart(t,{type:this.chartType,data:{labels:this.labels,datasets:n},options:a})},t.prototype.updateChartData=function(t){Array.isArray(t[0].data)?this.chart.data.datasets.forEach(function(e,n){e.data=t[n].data,t[n].label&&(e.label=t[n].label)}):this.chart.data.datasets[0].data=t},t.prototype.getDatasets=function(){var t=this,e=void 0;if((!this.datasets||!this.datasets.length&&this.data&&this.data.length)&&(e=Array.isArray(this.data[0])?this.data.map(function(e,n){return{data:e,label:t.labels[n]||"Label "+n}}):[{data:this.data,label:"Label 0"}]),(this.datasets&&this.datasets.length||e&&e.length)&&(e=(this.datasets||e).map(function(e,n){var a=Object.assign({},e);return t.colors&&t.colors.length?Object.assign(a,t.colors[n]):Object.assign(a,function(t,e,n){return"pie"===t||"doughnut"===t?{backgroundColor:(a=f(n)).map(function(t){return u(t,.6)}),borderColor:a.map(function(){return"#fff"}),pointBackgroundColor:a.map(function(t){return u(t,1)}),pointBorderColor:a.map(function(){return"#fff"}),pointHoverBackgroundColor:a.map(function(t){return u(t,1)}),pointHoverBorderColor:a.map(function(t){return u(t,1)})}:"polarArea"===t?function(t){return{backgroundColor:t.map(function(t){return u(t,.6)}),borderColor:t.map(function(t){return u(t,1)}),hoverBackgroundColor:t.map(function(t){return u(t,.8)}),hoverBorderColor:t.map(function(t){return u(t,1)})}}(f(n)):"line"===t||"radar"===t?function(t){return{backgroundColor:u(t,.4),borderColor:u(t,1),pointBackgroundColor:u(t,1),pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:u(t,.8)}}(d(e)):"bar"===t||"horizontalBar"===t?function(t){return{backgroundColor:u(t,.6),borderColor:u(t,1),hoverBackgroundColor:u(t,.8),hoverBorderColor:u(t,1)}}(d(e)):d(e);var a}(t.chartType,n,a.data.length)),a})),!e)throw new Error("ng-charts configuration error,\n data or datasets field are required to render char "+this.chartType);return e},t.prototype.refresh=function(){this.ngOnDestroy(),this.chart=this.getChartBuilder(this.ctx)},t.defaultColors=[[255,99,132],[54,162,235],[255,206,86],[231,233,237],[75,192,192],[151,187,205],[220,220,220],[247,70,74],[70,191,189],[253,180,92],[148,159,177],[77,83,96]],t}();function u(t,e){return"rgba("+t.concat(e).join(",")+")"}function c(t,e){return Math.floor(Math.random()*(e-t+1))+t}function l(){return[c(0,255),c(0,255),c(0,255)]}function d(t){return s.defaultColors[t]||l()}function f(t){for(var e=new Array(t),n=0;n',providers:[r.TreeService]}]}],t.propDecorators={treeModel:[{type:a.Input,args:["tree"]}],settings:[{type:a.Input}],nodeCreated:[{type:a.Output}],nodeRemoved:[{type:a.Output}],nodeRenamed:[{type:a.Output}],nodeSelected:[{type:a.Output}],nodeUnselected:[{type:a.Output}],nodeMoved:[{type:a.Output}],nodeExpanded:[{type:a.Output}],nodeCollapsed:[{type:a.Output}],loadNextLevel:[{type:a.Output}],nodeChecked:[{type:a.Output}],nodeUnchecked:[{type:a.Output}],menuItemSelected:[{type:a.Output}],rootComponent:[{type:a.ViewChild,args:["rootComponent"]}],template:[{type:a.ContentChild,args:[a.TemplateRef]}]},t}()},xtZt:function(t,e,n){"use strict";n.d(e,"a",function(){return c}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return f}),n.d(e,"d",function(){return p}),n.d(e,"e",function(){return g}),n.d(e,"f",function(){return l}),n.d(e,"g",function(){return h});var a=n("mrSG"),r=n("CcnG"),i=n("VnD/"),o=n("lqqz"),s=n("rpEJ"),u=n("NJnL"),c=function(){return function(){this.autoClose=!0,this.insideClick=!1}}(),l=function(){return function(){var t=this;this.direction="down",this.isOpenChange=new r.EventEmitter,this.isDisabledChange=new r.EventEmitter,this.toggleClick=new r.EventEmitter,this.dropdownMenu=new Promise(function(e){t.resolveDropdownMenu=e})}}(),d=function(){function t(t,e,n,a){var r=this;this._state=t,this.cd=e,this._renderer=n,this._element=a,this.isOpen=!1,this._subscription=t.isOpenChange.subscribe(function(t){r.isOpen=t;var e=r._element.nativeElement.querySelector(".dropdown-menu");e&&!Object(s.d)()&&(r._renderer.addClass(e,"show"),e.classList.contains("dropdown-menu-right")&&(r._renderer.setStyle(e,"left","auto"),r._renderer.setStyle(e,"right","0")),"up"===r.direction&&(r._renderer.setStyle(e,"top","auto"),r._renderer.setStyle(e,"transform","translateY(-101%)"))),r.cd.markForCheck(),r.cd.detectChanges()})}return Object.defineProperty(t.prototype,"direction",{get:function(){return this._state.direction},enumerable:!0,configurable:!0}),t.prototype._contains=function(t){return this._element.nativeElement.contains(t)},t.prototype.ngOnDestroy=function(){this._subscription.unsubscribe()},t}(),f=function(){function t(t,e,n,a,r,i){this._elementRef=t,this._renderer=e,this._viewContainerRef=n,this._cis=a,this._config=r,this._state=i,this._isInlineOpen=!1,this._subscriptions=[],this._isInited=!1,this._state.autoClose=this._config.autoClose,this._state.insideClick=this._config.insideClick,this._dropdown=this._cis.createLoader(this._elementRef,this._viewContainerRef,this._renderer).provide({provide:l,useValue:this._state}),this.onShown=this._dropdown.onShown,this.onHidden=this._dropdown.onHidden,this.isOpenChange=this._state.isOpenChange}return Object.defineProperty(t.prototype,"autoClose",{get:function(){return this._state.autoClose},set:function(t){this._state.autoClose=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"insideClick",{get:function(){return this._state.insideClick},set:function(t){this._state.insideClick=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisabled",{get:function(){return this._isDisabled},set:function(t){this._isDisabled=t,this._state.isDisabledChange.emit(t),t&&this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._showInline?this._isInlineOpen:this._dropdown.isShown},set:function(t){t?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isBs4",{get:function(){return!Object(s.d)()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_showInline",{get:function(){return!this.container},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this._isInited||(this._isInited=!0,this._dropdown.listen({outsideClick:!1,triggers:this.triggers,show:function(){return t.show()}}),this._subscriptions.push(this._state.toggleClick.subscribe(function(e){return t.toggle(e)})),this._subscriptions.push(this._state.isDisabledChange.pipe(Object(i.a)(function(t){return t})).subscribe(function(e){return t.hide()})))},t.prototype.show=function(){var t=this;if(!this.isOpen&&!this.isDisabled)return this._showInline?(this._inlinedMenu||this._state.dropdownMenu.then(function(e){t._dropdown.attachInline(e.viewContainer,e.templateRef),t._inlinedMenu=t._dropdown._inlineViewRef,t.addBs4Polyfills()}).catch(),this.addBs4Polyfills(),this._isInlineOpen=!0,this.onShown.emit(!0),void this._state.isOpenChange.emit(!0)):void this._state.dropdownMenu.then(function(e){var n=t.dropup||void 0!==t.dropup&&t.dropup;t._state.direction=n?"up":"down";var a=t.placement||(n?"top start":"bottom start");t._dropdown.attach(d).to(t.container).position({attachment:a}).show({content:e.templateRef,placement:a}),t._state.isOpenChange.emit(!0)}).catch()},t.prototype.hide=function(){this.isOpen&&(this._showInline?(this.removeShowClass(),this.removeDropupStyles(),this._isInlineOpen=!1,this.onHidden.emit(!0)):this._dropdown.hide(),this._state.isOpenChange.emit(!1))},t.prototype.toggle=function(t){return this.isOpen||!t?this.hide():this.show()},t.prototype._contains=function(t){return this._elementRef.nativeElement.contains(t.target)||this._dropdown.instance&&this._dropdown.instance._contains(t.target)},t.prototype.ngOnDestroy=function(){var t,e;try{for(var n=Object(a.__values)(this._subscriptions),r=n.next();!r.done;r=n.next())r.value.unsubscribe()}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this._dropdown.dispose()},t.prototype.addBs4Polyfills=function(){Object(s.d)()||(this.addShowClass(),this.checkRightAlignment(),this.addDropupStyles())},t.prototype.addShowClass=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.addClass(this._inlinedMenu.rootNodes[0],"show")},t.prototype.removeShowClass=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.removeClass(this._inlinedMenu.rootNodes[0],"show")},t.prototype.checkRightAlignment=function(){if(this._inlinedMenu&&this._inlinedMenu.rootNodes[0]){var t=this._inlinedMenu.rootNodes[0].classList.contains("dropdown-menu-right");this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"left",t?"auto":"0"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"right",t?"0":"auto")}},t.prototype.addDropupStyles=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"top",this.dropup?"auto":"100%"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"transform",this.dropup?"translateY(-101%)":"translateY(0)"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"bottom","auto"))},t.prototype.removeDropupStyles=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"top"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"transform"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"bottom"))},t}(),p=function(){return function(t,e,n){t.resolveDropdownMenu({templateRef:n,viewContainer:e})}}(),h=function(){function t(t,e,n,a,r){var i=this;this._changeDetectorRef=t,this._dropdown=e,this._element=n,this._renderer=a,this._state=r,this.isDisabled=null,this._subscriptions=[],this._subscriptions.push(this._state.isOpenChange.subscribe(function(t){i.isOpen=t,t?(i._documentClickListener=i._renderer.listen("document","click",function(t){!i._state.autoClose||2===t.button||i._element.nativeElement.contains(t.target)||i._state.insideClick&&i._dropdown._contains(t)||(i._state.toggleClick.emit(!1),i._changeDetectorRef.detectChanges())}),i._escKeyUpListener=i._renderer.listen(i._element.nativeElement,"keyup.esc",function(){i._state.autoClose&&(i._state.toggleClick.emit(!1),i._changeDetectorRef.detectChanges())})):(i._documentClickListener(),i._escKeyUpListener())})),this._subscriptions.push(this._state.isDisabledChange.subscribe(function(t){return i.isDisabled=t||null}))}return t.prototype.onClick=function(){this.isDisabled||this._state.toggleClick.emit(!0)},t.prototype.ngOnDestroy=function(){var t,e;this._documentClickListener&&this._documentClickListener(),this._escKeyUpListener&&this._escKeyUpListener();try{for(var n=Object(a.__values)(this._subscriptions),r=n.next();!r.done;r=n.next())r.value.unsubscribe()}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},t}(),g=function(){function t(){}return t.forRoot=function(e){return{ngModule:t,providers:[o.a,u.a,l,{provide:c,useValue:e||{autoClose:!0,insideClick:!1}}]}},t}()},y3By:function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i});var a=n("+umK");function r(){for(var t=[],e=0;e-1?t.splice(a,1):t.push(e),t},e.selectRowsBetween=function(t,e,n,a,r){for(var i=n=n||!i&&o>=a&&o<=n)&&o>=s.start&&o<=s.end&&t.push(e[o])}return t}},y9jh:function(t,e,n){var a;"undefined"!=typeof self&&self,a=function(t,e,n,a,r){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="./src/index.ts")}({"./node_modules/css-loader/index.js!./node_modules/postcss-loader/index.js!./node_modules/sass-loader/lib/loader.js??ref--3-4!./src/components/datatable.component.scss":function(t,e,n){(t.exports=n("./node_modules/css-loader/lib/css-base.js")(!1)).push([t.i,".ngx-datatable {\n display: block;\n overflow: hidden;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n position: relative;\n -webkit-transform: translate3d(0, 0, 0);\n /**\n * Vertical Scrolling Adjustments\n */\n /**\n * Horizontal Scrolling Adjustments\n */\n /**\n * Fixed Header Height Adjustments\n */\n /**\n * Fixed row height adjustments\n */\n /**\n * Shared Styles\n */\n /**\n * Header Styles\n */\n /**\n * Body Styles\n */\n /**\n * Footer Styles\n */ }\n .ngx-datatable [hidden] {\n display: none !important; }\n .ngx-datatable *, .ngx-datatable *:before, .ngx-datatable *:after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n .ngx-datatable.scroll-vertical .datatable-body {\n overflow-y: auto; }\n .ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper {\n position: absolute; }\n .ngx-datatable.scroll-horz .datatable-body {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .ngx-datatable.fixed-header .datatable-header .datatable-header-inner {\n white-space: nowrap; }\n .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ngx-datatable.fixed-row .datatable-scroll {\n white-space: nowrap; }\n .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row {\n white-space: nowrap; }\n .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n .ngx-datatable .datatable-body-row,\n .ngx-datatable .datatable-row-center,\n .ngx-datatable .datatable-header-inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-flow: row;\n -o-flex-flow: row;\n flex-flow: row; }\n .ngx-datatable .datatable-body-cell,\n .ngx-datatable .datatable-header-cell {\n overflow-x: hidden;\n vertical-align: top;\n display: inline-block;\n line-height: 1.625; }\n .ngx-datatable .datatable-body-cell:focus,\n .ngx-datatable .datatable-header-cell:focus {\n outline: none; }\n .ngx-datatable .datatable-row-left,\n .ngx-datatable .datatable-row-right {\n z-index: 9; }\n .ngx-datatable .datatable-row-left,\n .ngx-datatable .datatable-row-center,\n .ngx-datatable .datatable-row-group,\n .ngx-datatable .datatable-row-right {\n position: relative; }\n .ngx-datatable .datatable-header {\n display: block;\n overflow: hidden; }\n .ngx-datatable .datatable-header .datatable-header-inner {\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n -webkit-align-items: stretch; }\n .ngx-datatable .datatable-header .datatable-header-cell {\n position: relative;\n display: inline-block; }\n .ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper {\n cursor: pointer; }\n .ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper {\n cursor: move; }\n .ngx-datatable .datatable-header .datatable-header-cell .sort-btn {\n line-height: 100%;\n vertical-align: middle;\n display: inline-block;\n cursor: pointer; }\n .ngx-datatable .datatable-header .datatable-header-cell .resize-handle, .ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable {\n display: inline-block;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n width: 5px;\n padding: 0 4px;\n visibility: hidden; }\n .ngx-datatable .datatable-header .datatable-header-cell .resize-handle {\n cursor: ew-resize; }\n .ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle {\n visibility: visible; }\n .ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable {\n visibility: visible; }\n .ngx-datatable .datatable-header .datatable-header-cell .targetMarker {\n position: absolute;\n top: 0;\n bottom: 0; }\n .ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft {\n right: 0; }\n .ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight {\n left: 0; }\n .ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap {\n height: inherit; }\n .ngx-datatable .datatable-body {\n position: relative;\n z-index: 10;\n display: block; }\n .ngx-datatable .datatable-body .datatable-scroll {\n display: inline-block; }\n .ngx-datatable .datatable-body .datatable-row-detail {\n overflow-y: hidden; }\n .ngx-datatable .datatable-body .datatable-row-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n .ngx-datatable .datatable-body .datatable-body-row {\n outline: none; }\n .ngx-datatable .datatable-body .datatable-body-row > div {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n .ngx-datatable .datatable-footer {\n display: block;\n width: 100%; }\n .ngx-datatable .datatable-footer .datatable-footer-inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 100%; }\n .ngx-datatable .datatable-footer .selected-count .page-count {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 40%;\n flex: 1 1 40%; }\n .ngx-datatable .datatable-footer .selected-count .datatable-pager {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 60%;\n flex: 1 1 60%; }\n .ngx-datatable .datatable-footer .page-count {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 20%;\n flex: 1 1 20%; }\n .ngx-datatable .datatable-footer .datatable-pager {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 80%;\n flex: 1 1 80%;\n text-align: right; }\n .ngx-datatable .datatable-footer .datatable-pager .pager,\n .ngx-datatable .datatable-footer .datatable-pager .pager li {\n padding: 0;\n margin: 0;\n display: inline-block;\n list-style: none; }\n .ngx-datatable .datatable-footer .datatable-pager .pager li, .ngx-datatable .datatable-footer .datatable-pager .pager li a {\n outline: none; }\n .ngx-datatable .datatable-footer .datatable-pager .pager li a {\n cursor: pointer;\n display: inline-block; }\n .ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a {\n cursor: not-allowed; }\n",""])},"./node_modules/css-loader/lib/css-base.js":function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",a=t[3];if(!a)return n;if(e&&"function"==typeof btoa){var r="/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */",i=a.sources.map(function(t){return"/*# sourceURL="+a.sourceRoot+t+" */"});return[n].concat(i).concat([r]).join("\n")}return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var a={},r=0;r=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/utils/index.ts"),s=n("./src/types/index.ts");n("./src/events.ts"),e.DataTableBodyCellComponent=function(){function t(t,e){this.cd=e,this.activate=new i.EventEmitter,this.treeAction=new i.EventEmitter,this.isFocused=!1,this.onCheckboxChangeFn=this.onCheckboxChange.bind(this),this.activateFn=this.activate.emit.bind(this.activate),this.cellContext={onCheckboxChangeFn:this.onCheckboxChangeFn,activateFn:this.activateFn,row:this.row,group:this.group,value:this.value,column:this.column,rowHeight:this.rowHeight,isSelected:this.isSelected,rowIndex:this.rowIndex,treeStatus:this.treeStatus,onTreeAction:this.onTreeAction.bind(this)},this._element=t.nativeElement}return Object.defineProperty(t.prototype,"group",{get:function(){return this._group},set:function(t){this._group=t,this.cellContext.group=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){this._rowHeight=t,this.cellContext.rowHeight=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this._isSelected},set:function(t){this._isSelected=t,this.cellContext.isSelected=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.cellContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.cellContext.rowIndex=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"row",{get:function(){return this._row},set:function(t){this._row=t,this.cellContext.row=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.calcSortDir=this.calcSortDir(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"treeStatus",{get:function(){return this._treeStatus},set:function(t){this._treeStatus="collapsed"!==t&&"expanded"!==t&&"loading"!==t&&"disabled"!==t?"collapsed":t,this.cellContext.treeStatus=this._treeStatus,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-body-cell";if(this.column.cellClass)if("string"==typeof this.column.cellClass)t+=" "+this.column.cellClass;else if("function"==typeof this.column.cellClass){var e=this.column.cellClass({row:this.row,group:this.group,column:this.column,value:this.value,rowHeight:this.rowHeight});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n]+(>|$)/g,""):t},t.prototype.onTreeAction=function(){this.treeAction.emit(this.row)},t.prototype.calcLeftMargin=function(t,e){return t.isTreeColumn?e.level*(null!=t.treeLevelIndent?t.treeLevelIndent:50):0},a([i.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"group",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowHeight",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"isSelected",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"row",null),a([i.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([i.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"treeStatus",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"treeAction",void 0),a([i.ViewChild("cellTemplate",{read:i.ViewContainerRef}),r("design:type",i.ViewContainerRef)],t.prototype,"cellTemplate",void 0),a([i.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([i.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([i.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([i.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([i.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"height",null),a([i.HostListener("focus"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onFocus",null),a([i.HostListener("blur"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onBlur",null),a([i.HostListener("click",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onClick",null),a([i.HostListener("dblclick",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onDblClick",null),a([i.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([i.Component({selector:"datatable-body-cell",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n \n \n \n \n \n \n\n \n \n \n \n
\n '}),r("design:paramtypes",[i.ElementRef,i.ChangeDetectorRef])],t)}()},"./src/components/body/body-group-header-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DatatableGroupHeaderTemplateDirective=function(){return a([i.Directive({selector:"[ngx-datatable-group-header-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/body/body-group-header.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/components/body/body-group-header-template.directive.ts");e.DatatableGroupHeaderDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandGroup=function(t){this.toggle.emit({type:"group",value:t})},t.prototype.expandAllGroups=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllGroups=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(o.DatatableGroupHeaderTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-group-header"})],t)}()},"./src/components/body/body-row-wrapper.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");n("./src/events.ts"),e.DataTableRowWrapperComponent=function(){function t(t,e){this.cd=t,this.differs=e,this.rowContextmenu=new i.EventEmitter(!1),this.groupContext={group:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this.rowContext={row:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this._expanded=!1,this.rowDiffer=e.find({}).create()}return Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.rowContext.rowIndex=t,this.groupContext.rowIndex=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.groupContext.expanded=t,this.rowContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.row)&&(this.rowContext.row=this.row,this.groupContext.group=this.row,this.cd.markForCheck())},t.prototype.onContextmenu=function(t){this.rowContextmenu.emit({event:t,row:this.row})},t.prototype.getGroupHeaderStyle=function(){var t={};return t.transform="translate3d("+this.offsetX+"px, 0px, 0px)",t["backface-visibility"]="hidden",t.width=this.innerWidth,t},a([i.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"detailRowHeight",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([i.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([i.Component({selector:"datatable-row-wrapper",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n
\n \n \n \n \n \n \n ',host:{class:"datatable-row-wrapper"}}),r("design:paramtypes",[i.ChangeDetectorRef,i.KeyValueDiffers])],t)}()},"./src/components/body/body-row.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),s=n("./src/utils/index.ts"),u=n("./src/services/index.ts");n("./src/events.ts"),e.DataTableBodyRowComponent=function(){function t(t,e,n,a){this.differs=t,this.scrollbarHelper=e,this.cd=n,this.treeStatus="collapsed",this.activate=new o.EventEmitter,this.treeAction=new o.EventEmitter,this._groupStyles={left:{},center:{},right:{}},this._element=a.nativeElement,this._rowDiffer=t.find({}).create()}return Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t,this.recalculateColumns(t),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._columns){var e=s.columnsByPin(this._columns);this._columnGroupWidths=s.columnGroupWidths(e,e)}this._innerWidth=t,this.recalculateColumns(),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cssClass",{get:function(){var t="datatable-body-row";if(this.isSelected&&(t+=" active"),this.rowIndex%2!=0&&(t+=" datatable-row-odd"),this.rowIndex%2==0&&(t+=" datatable-row-even"),this.rowClass){var e=this.rowClass(this.row);if("string"==typeof e)t+=" "+e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n '}),i(1,o.SkipSelf()),r("design:paramtypes",[o.KeyValueDiffers,u.ScrollbarHelper,o.ChangeDetectorRef,o.ElementRef])],t)}()},"./src/components/body/body.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/utils/index.ts"),s=(n("./src/types/index.ts"),n("./src/components/body/scroller.component.ts"));e.DataTableBodyComponent=function(){function t(t){var e=this;this.cd=t,this.selected=[],this.scroll=new i.EventEmitter,this.page=new i.EventEmitter,this.activate=new i.EventEmitter,this.select=new i.EventEmitter,this.detailToggle=new i.EventEmitter,this.rowContextmenu=new i.EventEmitter(!1),this.treeAction=new i.EventEmitter,this.rowHeightsCache=new o.RowHeightCache,this.temp=[],this.offsetY=0,this.indexes={},this.rowIndexes=new Map,this.rowExpansions=new Map,this.getDetailRowHeight=function(t,n){if(!e.rowDetail)return 0;var a=e.rowDetail.rowHeight;return"function"==typeof a?a(t,n):a},this.rowTrackingFn=(function(t,e){var n=this.getRowIndex(e);return this.trackByProp?n+"-"+this.trackByProp:n}).bind(this)}return Object.defineProperty(t.prototype,"pageSize",{get:function(){return this._pageSize},set:function(t){this._pageSize=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,this.rowExpansions.clear(),this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=o.columnsByPin(t);this.columnGroupWidths=o.columnGroupWidths(e,t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowCount},set:function(t){this._rowCount=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyHeight",{get:function(){return this._bodyHeight},set:function(t){this._bodyHeight=this.scrollbarV?t+"px":"auto",this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectEnabled",{get:function(){return!!this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollHeight",{get:function(){if(this.scrollbarV&&this.virtualization&&this.rowCount)return this.rowHeightsCache.query(this.rowCount-1)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.rowDetail&&(this.listener=this.rowDetail.toggle.subscribe(function(e){var n=e.type,a=e.value;"row"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()})),this.groupHeader&&(this.listener=this.groupHeader.toggle.subscribe(function(e){var n=e.type,a=e.value;"group"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()}))},t.prototype.ngOnDestroy=function(){this.rowDetail&&this.listener.unsubscribe(),this.groupHeader&&this.listener.unsubscribe()},t.prototype.updateOffsetY=function(t){this.scroller&&(this.scrollbarV&&this.virtualization&&t?t=this.rowHeightsCache.query(this.pageSize*t-1):this.scrollbarV&&!this.virtualization&&(t=0),this.scroller.setOffset(t||0))},t.prototype.onBodyScroll=function(t){var e=t.scrollYPos,n=t.scrollXPos;this.offsetY===e&&this.offsetX===n||this.scroll.emit({offsetY:e,offsetX:n}),this.offsetY=e,this.offsetX=n,this.updateIndexes(),this.updatePage(t.direction),this.updateRows()},t.prototype.updatePage=function(t){var e=this.indexes.first/this.pageSize;"up"===t?e=Math.ceil(e):"down"===t&&(e=Math.floor(e)),void 0===t||isNaN(e)||this.page.emit({offset:e})},t.prototype.updateRows=function(){var t=this.indexes,e=t.last,n=t.first,a=0,r=[];if(this.rowIndexes.clear(),this.groupedRows)for(;n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',changeDetection:i.ChangeDetectionStrategy.OnPush,host:{class:"datatable-body"}}),r("design:paramtypes",[i.ChangeDetectorRef])],t)}()},"./src/components/body/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/body/body.component.ts")),a(n("./src/components/body/body-cell.component.ts")),a(n("./src/components/body/body-row.component.ts")),a(n("./src/components/body/progress-bar.component.ts")),a(n("./src/components/body/scroller.component.ts")),a(n("./src/components/body/body-row-wrapper.component.ts")),a(n("./src/components/body/selection.component.ts")),a(n("./src/components/body/body-group-header.directive.ts")),a(n("./src/components/body/body-group-header-template.directive.ts")),a(n("./src/components/body/summary/index.ts"))},"./src/components/body/progress-bar.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core");e.ProgressBarComponent=function(){return a([r.Component({selector:"datatable-progress",template:'\n
\n
\n
\n
\n
\n ',changeDetection:r.ChangeDetectionStrategy.OnPush})],function(){})}()},"./src/components/body/scroller.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.ScrollerComponent=function(){function t(t,e,n){this.ngZone=t,this.renderer=n,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new i.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this.element=e.nativeElement}return t.prototype.ngOnInit=function(){if(this.scrollbarV||this.scrollbarH){var t=this.renderer;this.parentElement=t.parentNode(t.parentNode(this.element)),this.parentElement.addEventListener("scroll",this.onScrolled.bind(this))}},t.prototype.ngOnDestroy=function(){(this.scrollbarV||this.scrollbarH)&&this.parentElement.removeEventListener("scroll",this.onScrolled.bind(this))},t.prototype.setOffset=function(t){this.parentElement&&(this.parentElement.scrollTop=t)},t.prototype.onScrolled=function(t){var e=this,n=t.currentTarget;requestAnimationFrame(function(){e.scrollYPos=n.scrollTop,e.scrollXPos=n.scrollLeft,e.updateOffset()})},t.prototype.updateOffset=function(){var t;this.scrollYPosthis.prevScrollYPos&&(t="up"),this.scroll.emit({direction:t,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos},a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([i.HostBinding("style.height.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollHeight",void 0),a([i.HostBinding("style.width.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"scroll",void 0),a([i.Component({selector:"datatable-scroller",template:"\n \n ",host:{class:"datatable-scroll"},changeDetection:i.ChangeDetectionStrategy.OnPush}),r("design:paramtypes",[i.NgZone,i.ElementRef,i.Renderer2])],t)}()},"./src/components/body/selection.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/utils/index.ts"),s=n("./src/types/index.ts");e.DataTableSelectionComponent=function(){function t(){this.activate=new i.EventEmitter,this.select=new i.EventEmitter}return t.prototype.selectRow=function(t,e,n){var a;if(this.selectEnabled){var r=this.selectionType===s.SelectionType.checkbox,i=this.selectionType===s.SelectionType.multiClick,u=[];u=this.selectionType===s.SelectionType.multi||r||i?t.shiftKey?o.selectRowsBetween([],this.rows,e,this.prevIndex,this.getRowSelectedIdx.bind(this)):o.selectRows(t.ctrlKey||t.metaKey||i||r?this.selected.slice():[],n,this.getRowSelectedIdx.bind(this)):o.selectRows([],n,this.getRowSelectedIdx.bind(this)),"function"==typeof this.selectCheck&&(u=u.filter(this.selectCheck.bind(this))),this.selected.splice(0,this.selected.length),(a=this.selected).push.apply(a,u),this.prevIndex=e,this.select.emit({selected:u})}},t.prototype.onActivate=function(t,e){var n=t.type,a=t.event,r=t.row,i=this.selectionType===s.SelectionType.checkbox;!i&&("click"===n||"dblclick"===n)||i&&"checkbox"===n?this.selectRow(a,e,r):"keydown"===n&&(a.keyCode===o.Keys.return?this.selectRow(a,e,r):this.onKeyboardFocus(t)),this.activate.emit(t)},t.prototype.onKeyboardFocus=function(t){var e=t.event.keyCode;if(e===o.Keys.up||e===o.Keys.down||e===o.Keys.right||e===o.Keys.left){var n=this.selectionType===s.SelectionType.cell;t.cellElement&&n?n&&this.focusCell(t.cellElement,t.rowElement,e,t.cellIndex):this.focusRow(t.rowElement,e)}},t.prototype.focusRow=function(t,e){var n=this.getPrevNextRow(t,e);n&&n.focus()},t.prototype.getPrevNextRow=function(t,e){var n=t.parentElement;if(n){var a=void 0;if(e===o.Keys.up?a=n.previousElementSibling:e===o.Keys.down&&(a=n.nextElementSibling),a&&a.children.length)return a.children[0]}},t.prototype.focusCell=function(t,e,n,a){var r;if(n===o.Keys.left)r=t.previousElementSibling;else if(n===o.Keys.right)r=t.nextElementSibling;else if(n===o.Keys.up||n===o.Keys.down){var i=this.getPrevNextRow(e,n);if(i){var s=i.getElementsByClassName("datatable-body-cell");s.length&&(r=s[a])}}r&&r.focus()},t.prototype.getRowSelected=function(t){return this.getRowSelectedIdx(t,this.selected)>-1},t.prototype.getRowSelectedIdx=function(t,e){var n=this;if(!e||!e.length)return-1;var a=this.rowIdentity(t);return e.findIndex(function(t){return n.rowIdentity(t)===a})},a([i.Input(),r("design:type",Array)],t.prototype,"rows",void 0),a([i.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"selectEnabled",void 0),a([i.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"select",void 0),a([i.Component({selector:"datatable-selection",template:"\n \n ",changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/body/summary/index.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n("./src/components/body/summary/summary-row.component.ts"))},"./src/components/body/summary/summary-row.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");function s(t){var e=t.filter(function(t){return!!t});return e.length?e.some(function(t){return"number"!=typeof t})?null:e.reduce(function(t,e){return t+e}):null}function u(t){return null}e.DataTableSummaryRowComponent=function(){function t(){this.summaryRow={}}return t.prototype.ngOnChanges=function(){this.columns&&this.rows&&(this.updateInternalColumns(),this.updateValues())},t.prototype.updateInternalColumns=function(){this._internalColumns=this.columns.map(function(t){return a({},t,{cellTemplate:t.summaryTemplate})})},t.prototype.updateValues=function(){var t=this;this.summaryRow={},this.columns.filter(function(t){return!t.summaryTemplate}).forEach(function(e){var n=t.rows.map(function(t){return t[e.prop]}),a=t.getSummaryFunction(e);t.summaryRow[e.prop]=e.pipe?e.pipe.transform(a(n)):a(n)})},t.prototype.getSummaryFunction=function(t){return void 0===t.summaryFunc?s:null===t.summaryFunc?u:t.summaryFunc},r([o.Input(),i("design:type",Array)],t.prototype,"rows",void 0),r([o.Input(),i("design:type",Array)],t.prototype,"columns",void 0),r([o.Input(),i("design:type",Number)],t.prototype,"rowHeight",void 0),r([o.Input(),i("design:type",Number)],t.prototype,"offsetX",void 0),r([o.Input(),i("design:type",Number)],t.prototype,"innerWidth",void 0),r([o.Component({selector:"datatable-summary-row",template:'\n \n \n ',host:{class:"datatable-summary-row"}})],t)}()},"./src/components/columns/column-cell.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableColumnCellDirective=function(){return a([i.Directive({selector:"[ngx-datatable-cell-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/columns/column-header.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableColumnHeaderDirective=function(){return a([i.Directive({selector:"[ngx-datatable-header-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/columns/column.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/components/columns/column-header.directive.ts"),s=n("./src/components/columns/column-cell.directive.ts"),u=n("./src/components/columns/tree.directive.ts"),c=n("./src/services/column-changes.service.ts");e.DataTableColumnDirective=function(){function t(t){this.columnChangesService=t,this.isFirstChange=!0}return t.prototype.ngOnChanges=function(){this.isFirstChange?this.isFirstChange=!1:this.columnChangesService.onInputChange()},a([i.Input(),r("design:type",String)],t.prototype,"name",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"prop",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenLeft",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenRight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"flexGrow",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"comparator",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pipe",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"sortable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"draggable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"canAutoResize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"width",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"checkboxable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"headerCheckboxable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"headerClass",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"cellClass",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"isTreeColumn",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"treeLevelIndent",void 0),a([i.Input(),r("design:type",Function)],t.prototype,"summaryFunc",void 0),a([i.Input(),r("design:type",i.TemplateRef)],t.prototype,"summaryTemplate",void 0),a([i.Input(),i.ContentChild(s.DataTableColumnCellDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"cellTemplate",void 0),a([i.Input(),i.ContentChild(o.DataTableColumnHeaderDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"headerTemplate",void 0),a([i.Input(),i.ContentChild(u.DataTableColumnCellTreeToggle,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"treeToggleTemplate",void 0),a([i.Directive({selector:"ngx-datatable-column"}),r("design:paramtypes",[c.ColumnChangesService])],t)}()},"./src/components/columns/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/columns/column.directive.ts")),a(n("./src/components/columns/column-header.directive.ts")),a(n("./src/components/columns/column-cell.directive.ts")),a(n("./src/components/columns/tree.directive.ts"))},"./src/components/columns/tree.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableColumnCellTreeToggle=function(){return a([i.Directive({selector:"[ngx-datatable-tree-toggle]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/datatable.component.scss":function(t,e,n){var a=n("./node_modules/css-loader/index.js!./node_modules/postcss-loader/index.js!./node_modules/sass-loader/lib/loader.js??ref--3-4!./src/components/datatable.component.scss");t.exports="string"==typeof a?a:a.toString()},"./src/components/datatable.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var s=n("@angular/core"),u=n("./src/utils/index.ts"),c=n("./src/services/index.ts"),l=n("./src/types/index.ts"),d=n("./src/components/body/index.ts"),f=n("./src/components/body/body-group-header.directive.ts"),p=n("./src/components/columns/index.ts"),h=n("./src/components/row-detail/index.ts"),g=n("./src/components/footer/index.ts"),m=n("./src/components/header/index.ts"),b=n("rxjs");e.DatatableComponent=function(){function t(t,e,n,a,r,i){this.scrollbarHelper=t,this.dimensionsHelper=e,this.cd=n,this.columnChangesService=i,this.selected=[],this.scrollbarV=!1,this.scrollbarH=!1,this.rowHeight=30,this.columnMode=l.ColumnMode.standard,this.headerHeight=30,this.footerHeight=0,this.externalPaging=!1,this.externalSorting=!1,this.loadingIndicator=!1,this.reorderable=!0,this.swapColumns=!0,this.sortType=l.SortType.single,this.sorts=[],this.cssClasses={sortAscending:"datatable-icon-up",sortDescending:"datatable-icon-down",pagerLeftArrow:"datatable-icon-left",pagerRightArrow:"datatable-icon-right",pagerPrevious:"datatable-icon-prev",pagerNext:"datatable-icon-skip"},this.messages={emptyMessage:"No data to display",totalMessage:"total",selectedMessage:"selected"},this.rowIdentity=function(t){return t},this.groupExpansionDefault=!1,this.selectAllRowsOnPage=!1,this.virtualization=!0,this.summaryRow=!1,this.summaryHeight=30,this.summaryPosition="top",this.scroll=new s.EventEmitter,this.activate=new s.EventEmitter,this.select=new s.EventEmitter,this.sort=new s.EventEmitter,this.page=new s.EventEmitter,this.reorder=new s.EventEmitter,this.resize=new s.EventEmitter,this.tableContextmenu=new s.EventEmitter(!1),this.treeAction=new s.EventEmitter,this.rowCount=0,this._offsetX=new b.BehaviorSubject(0),this._count=0,this._offset=0,this._subscriptions=[],this.element=a.nativeElement,this.rowDiffer=r.find({}).create()}return Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,t&&(this._internalRows=t.slice()),this.externalSorting||this.sortInternalRows(),this._internalRows=u.groupRowsByParents(this._internalRows,u.optionalGetterForProp(this.treeFromRelation),u.optionalGetterForProp(this.treeToRelation)),this.recalculate(),this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"groupRowsBy",{get:function(){return this._groupRowsBy},set:function(t){t&&(this._groupRowsBy=t,this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){t&&(this._internalColumns=t.slice(),u.setColumnDefaults(this._internalColumns),this.recalculateColumns()),this._columns=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"limit",{get:function(){return this._limit},set:function(t){this._limit=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return Math.max(Math.min(this._offset,Math.ceil(this.rowCount/this.pageSize)-1),0)},set:function(t){this._offset=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedHeader",{get:function(){var t=this.headerHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedRow",{get:function(){var t=this.rowHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVertScroll",{get:function(){return this.scrollbarV},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVirtualized",{get:function(){return this.virtualization},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isHorScroll",{get:function(){return this.scrollbarH},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelectable",{get:function(){return void 0!==this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckboxSelection",{get:function(){return this.selectionType===l.SelectionType.checkbox},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCellSelection",{get:function(){return this.selectionType===l.SelectionType.cell},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSingleSelection",{get:function(){return this.selectionType===l.SelectionType.single},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiSelection",{get:function(){return this.selectionType===l.SelectionType.multi},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiClickSelection",{get:function(){return this.selectionType===l.SelectionType.multiClick},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnTemplates",{get:function(){return this._columnTemplates},set:function(t){this._columnTemplates=t,this.translateColumns(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){var t=this.rows&&this.selected&&this.selected.length===this.rows.length;if(this.selectAllRowsOnPage){var e=this.bodyComponent.indexes;t=this.selected.length===e.last-e.first}return this.selected&&this.rows&&0!==this.rows.length&&t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.recalculate()},t.prototype.ngAfterViewInit=function(){var t=this;this.externalSorting||this.sortInternalRows(),"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame(function(){t.recalculate(),t.externalPaging&&t.scrollbarV&&t.page.emit({count:t.count,pageSize:t.pageSize,limit:t.limit,offset:0})})},t.prototype.ngAfterContentInit=function(){var t=this;this.columnTemplates.changes.subscribe(function(e){return t.translateColumns(e)}),this.listenForColumnInputChanges()},t.prototype.translateColumns=function(t){if(t){var e=t.toArray();e.length&&(this._internalColumns=u.translateTemplates(e),u.setColumnDefaults(this._internalColumns),this.recalculateColumns(),this.sortInternalRows(),this.cd.markForCheck())}},t.prototype.groupArrayBy=function(t,e){var n=new Map;return t.forEach(function(t){var a=t[e];n.has(a)?n.get(a).push(t):n.set(a,[t])}),Array.from(n,function(t){return{key:t[0],value:t[1]}})},t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.rows)&&(this.externalSorting?this._internalRows=this.rows.slice():this.sortInternalRows(),this._internalRows=u.groupRowsByParents(this._internalRows,u.optionalGetterForProp(this.treeFromRelation),u.optionalGetterForProp(this.treeToRelation)),this.recalculatePages(),this.cd.markForCheck())},t.prototype.recalculate=function(){this.recalculateDims(),this.recalculateColumns()},t.prototype.onWindowResize=function(){this.recalculate()},t.prototype.recalculateColumns=function(t,e,n){if(void 0===t&&(t=this._internalColumns),void 0===e&&(e=-1),void 0===n&&(n=this.scrollbarH),t){var a=this._innerWidth;return this.scrollbarV&&(a-=this.scrollbarHelper.width),this.columnMode===l.ColumnMode.force?u.forceFillColumnWidths(t,a,e,n):this.columnMode===l.ColumnMode.flex&&u.adjustColumnWidths(t,a),t}},t.prototype.recalculateDims=function(){var t=this.dimensionsHelper.getDimensions(this.element);if(this._innerWidth=Math.floor(t.width),this.scrollbarV){var e=t.height;this.headerHeight&&(e-=this.headerHeight),this.footerHeight&&(e-=this.footerHeight),this.bodyHeight=e}this.recalculatePages()},t.prototype.recalculatePages=function(){this.pageSize=this.calcPageSize(),this.rowCount=this.calcRowCount()},t.prototype.onBodyPage=function(t){this.externalPaging&&!this.virtualization||(this.offset=t.offset,this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}))},t.prototype.onBodyScroll=function(t){this._offsetX.next(t.offsetX),this.scroll.emit(t),this.cd.detectChanges()},t.prototype.onFooterPage=function(t){this.offset=t.page-1,this.bodyComponent.updateOffsetY(this.offset),this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}),this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected}))},t.prototype.calcPageSize=function(t){if(void 0===t&&(t=this.rows),this.scrollbarV&&this.virtualization){var e=Math.ceil(this.bodyHeight/this.rowHeight);return Math.max(e,0)}return void 0!==this.limit?this.limit:t?t.length:0},t.prototype.calcRowCount=function(t){return void 0===t&&(t=this.rows),this.externalPaging?this.count:t?this.groupedRows?this.groupedRows.length:null!=this.treeFromRelation&&null!=this.treeToRelation?this._internalRows.length:t.length:0},t.prototype.onColumnContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:l.ContextmenuType.header,content:t.column})},t.prototype.onRowContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:l.ContextmenuType.body,content:t.row})},t.prototype.onColumnResize=function(t){var e=t.column,n=t.newValue;if(void 0!==e){var r,i=this._internalColumns.map(function(t,i){return(t=a({},t)).$$id===e.$$id&&(r=i,t.width=n,t.$$oldWidth=n),t});this.recalculateColumns(i,r),this._internalColumns=i,this.resize.emit({column:e,newValue:n})}},t.prototype.onColumnReorder=function(t){var e=t.column,n=t.newValue,r=t.prevValue,i=this._internalColumns.map(function(t){return a({},t)});if(this.swapColumns){var o=i[n];i[n]=e,i[r]=o}else if(n>r){for(var s=i[r],u=r;un;u--)i[u]=i[u-1];i[n]=s}this._internalColumns=i,this.reorder.emit({column:e,newValue:n,prevValue:r})},t.prototype.onColumnSort=function(t){this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected})),this.sorts=t.sorts,!1===this.externalSorting&&this.sortInternalRows(),this._internalRows=u.groupRowsByParents(this._internalRows,u.optionalGetterForProp(this.treeFromRelation),u.optionalGetterForProp(this.treeToRelation)),this.offset=0,this.bodyComponent.updateOffsetY(this.offset),this.sort.emit(t)},t.prototype.onHeaderSelect=function(t){var e,n;if(this.selectAllRowsOnPage){var a=this.bodyComponent.indexes.first,r=this.bodyComponent.indexes.last,i=this.selected.length===r-a;this.selected=[],i||(e=this.selected).push.apply(e,this._internalRows.slice(a,r))}else i=this.selected.length===this.rows.length,this.selected=[],i||(n=this.selected).push.apply(n,this.rows);this.select.emit({selected:this.selected})},t.prototype.onBodySelect=function(t){this.select.emit(t)},t.prototype.onTreeAction=function(t){var e=this,n=t.row,a=this._rows.findIndex(function(n){return n[e.treeToRelation]===t.row[e.treeToRelation]});this.treeAction.emit({row:n,rowIndex:a})},t.prototype.ngOnDestroy=function(){this._subscriptions.forEach(function(t){return t.unsubscribe()})},t.prototype.listenForColumnInputChanges=function(){var t=this;this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe(function(){t.columnTemplates&&t.columnTemplates.notifyOnChanges()}))},t.prototype.sortInternalRows=function(){this._internalRows=u.sortRows(this._internalRows,this._internalColumns,this.sorts)},r([s.Input(),i("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),r([s.Input(),i("design:type",Object),i("design:paramtypes",[Object])],t.prototype,"rows",null),r([s.Input(),i("design:type",String),i("design:paramtypes",[String])],t.prototype,"groupRowsBy",null),r([s.Input(),i("design:type",Array)],t.prototype,"groupedRows",void 0),r([s.Input(),i("design:type",Array),i("design:paramtypes",[Array])],t.prototype,"columns",null),r([s.Input(),i("design:type",Array)],t.prototype,"selected",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"scrollbarV",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"scrollbarH",void 0),r([s.Input(),i("design:type",Number)],t.prototype,"rowHeight",void 0),r([s.Input(),i("design:type",String)],t.prototype,"columnMode",void 0),r([s.Input(),i("design:type",Object)],t.prototype,"headerHeight",void 0),r([s.Input(),i("design:type",Number)],t.prototype,"footerHeight",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"externalPaging",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"externalSorting",void 0),r([s.Input(),i("design:type",Number),i("design:paramtypes",[Number])],t.prototype,"limit",null),r([s.Input(),i("design:type",Number),i("design:paramtypes",[Number])],t.prototype,"count",null),r([s.Input(),i("design:type",Number),i("design:paramtypes",[Number])],t.prototype,"offset",null),r([s.Input(),i("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),r([s.Input(),i("design:type",String)],t.prototype,"selectionType",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"reorderable",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"swapColumns",void 0),r([s.Input(),i("design:type",String)],t.prototype,"sortType",void 0),r([s.Input(),i("design:type",Array)],t.prototype,"sorts",void 0),r([s.Input(),i("design:type",Object)],t.prototype,"cssClasses",void 0),r([s.Input(),i("design:type",Object)],t.prototype,"messages",void 0),r([s.Input(),i("design:type",Function)],t.prototype,"rowIdentity",void 0),r([s.Input(),i("design:type",Object)],t.prototype,"rowClass",void 0),r([s.Input(),i("design:type",Object)],t.prototype,"selectCheck",void 0),r([s.Input(),i("design:type",Function)],t.prototype,"displayCheck",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),r([s.Input(),i("design:type",String)],t.prototype,"trackByProp",void 0),r([s.Input(),i("design:type",Object)],t.prototype,"selectAllRowsOnPage",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"virtualization",void 0),r([s.Input(),i("design:type",String)],t.prototype,"treeFromRelation",void 0),r([s.Input(),i("design:type",String)],t.prototype,"treeToRelation",void 0),r([s.Input(),i("design:type",Boolean)],t.prototype,"summaryRow",void 0),r([s.Input(),i("design:type",Number)],t.prototype,"summaryHeight",void 0),r([s.Input(),i("design:type",String)],t.prototype,"summaryPosition",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"scroll",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"activate",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"select",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"sort",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"page",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"reorder",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"resize",void 0),r([s.Output(),i("design:type",Object)],t.prototype,"tableContextmenu",void 0),r([s.Output(),i("design:type",s.EventEmitter)],t.prototype,"treeAction",void 0),r([s.HostBinding("class.fixed-header"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isFixedHeader",null),r([s.HostBinding("class.fixed-row"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isFixedRow",null),r([s.HostBinding("class.scroll-vertical"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isVertScroll",null),r([s.HostBinding("class.virtualized"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isVirtualized",null),r([s.HostBinding("class.scroll-horz"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isHorScroll",null),r([s.HostBinding("class.selectable"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isSelectable",null),r([s.HostBinding("class.checkbox-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isCheckboxSelection",null),r([s.HostBinding("class.cell-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isCellSelection",null),r([s.HostBinding("class.single-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isSingleSelection",null),r([s.HostBinding("class.multi-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isMultiSelection",null),r([s.HostBinding("class.multi-click-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isMultiClickSelection",null),r([s.ContentChildren(p.DataTableColumnDirective),i("design:type",s.QueryList),i("design:paramtypes",[s.QueryList])],t.prototype,"columnTemplates",null),r([s.ContentChild(h.DatatableRowDetailDirective),i("design:type",h.DatatableRowDetailDirective)],t.prototype,"rowDetail",void 0),r([s.ContentChild(f.DatatableGroupHeaderDirective),i("design:type",f.DatatableGroupHeaderDirective)],t.prototype,"groupHeader",void 0),r([s.ContentChild(g.DatatableFooterDirective),i("design:type",g.DatatableFooterDirective)],t.prototype,"footer",void 0),r([s.ViewChild(d.DataTableBodyComponent),i("design:type",d.DataTableBodyComponent)],t.prototype,"bodyComponent",void 0),r([s.ViewChild(m.DataTableHeaderComponent),i("design:type",m.DataTableHeaderComponent)],t.prototype,"headerComponent",void 0),r([s.HostListener("window:resize"),u.throttleable(5),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],t.prototype,"onWindowResize",null),r([s.Component({selector:"ngx-datatable",template:'\n \n \n \n \n \n \n \n \n ',changeDetection:s.ChangeDetectionStrategy.OnPush,encapsulation:s.ViewEncapsulation.None,styles:[n("./src/components/datatable.component.scss")],host:{class:"ngx-datatable"}}),o(0,s.SkipSelf()),o(1,s.SkipSelf()),i("design:paramtypes",[c.ScrollbarHelper,c.DimensionsHelper,s.ChangeDetectorRef,s.ElementRef,s.KeyValueDiffers,c.ColumnChangesService])],t)}()},"./src/components/footer/footer-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableFooterTemplateDirective=function(){return a([i.Directive({selector:"[ngx-datatable-footer-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/footer/footer.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/components/footer/footer.directive.ts");e.DataTableFooterComponent=function(){function t(){this.selectedCount=0,this.page=new i.EventEmitter}return Object.defineProperty(t.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"rowCount",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"pageSize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offset",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",o.DatatableFooterDirective)],t.prototype,"footerTemplate",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"selectedCount",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"page",void 0),a([i.Component({selector:"datatable-footer",template:'\n \n \n \n
\n \n {{selectedCount?.toLocaleString()}} {{selectedMessage}} / \n \n {{rowCount?.toLocaleString()}} {{totalMessage}}\n
\n \n \n \n ',host:{class:"datatable-footer"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/footer/footer.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/components/footer/footer-template.directive.ts");e.DatatableFooterDirective=function(){function t(){}return a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),i.ContentChild(o.DataTableFooterTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Directive({selector:"ngx-datatable-footer"})],t)}()},"./src/components/footer/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/footer/footer.component.ts")),a(n("./src/components/footer/pager.component.ts")),a(n("./src/components/footer/footer.directive.ts")),a(n("./src/components/footer/footer-template.directive.ts"))},"./src/components/footer/pager.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTablePagerComponent=function(){function t(){this.change=new i.EventEmitter,this._count=0,this._page=1,this._size=0}return Object.defineProperty(t.prototype,"size",{get:function(){return this._size},set:function(t){this._size=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"page",{get:function(){return this._page},set:function(t){this._page=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalPages",{get:function(){var t=this.size<1?1:Math.ceil(this.count/this.size);return Math.max(t||0,1)},enumerable:!0,configurable:!0}),t.prototype.canPrevious=function(){return this.page>1},t.prototype.canNext=function(){return this.page0&&t<=this.totalPages&&t!==this.page&&(this.page=t,this.change.emit({page:t}))},t.prototype.calcPages=function(t){var e=[],n=1,a=this.totalPages;t=t||this.page,5this.totalPages&&(n=Math.max(this.totalPages-5+1,1),a=this.totalPages));for(var r=n;r<=a;r++)e.push({number:r,text:r});return e},a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"size",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"page",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"change",void 0),a([i.Component({selector:"datatable-pager",template:'\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n \n {{pg.text}}\n \n \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n ',host:{class:"datatable-pager"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/header/header-cell.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/types/index.ts"),s=n("./src/utils/index.ts");n("./src/events.ts"),e.DataTableHeaderCellComponent=function(){function t(t){this.cd=t,this.sort=new i.EventEmitter,this.select=new i.EventEmitter,this.columnContextmenu=new i.EventEmitter(!1),this.sortFn=this.onSort.bind(this),this.selectFn=this.select.emit.bind(this.select),this.cellContext={column:this.column,sortDir:this.sortDir,sortFn:this.sortFn,allRowsSelected:this.allRowsSelected,selectFn:this.selectFn}}return Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){return this._allRowsSelected},set:function(t){this._allRowsSelected=t,this.cellContext.allRowsSelected=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.sortDir=this.calcSortDir(t),this.cellContext.sortDir=this.sortDir,this.sortClass=this.calcSortClass(this.sortDir),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-header-cell";if(this.column.sortable&&(t+=" sortable"),this.column.resizeable&&(t+=" resizeable"),this.column.headerClass)if("string"==typeof this.column.headerClass)t+=" "+this.column.headerClass;else if("function"==typeof this.column.headerClass){var e=this.column.headerClass({column:this.column});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',host:{class:"datatable-header-cell"},changeDetection:i.ChangeDetectionStrategy.OnPush}),r("design:paramtypes",[i.ChangeDetectorRef])],t)}()},"./src/components/header/header.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),s=n("./src/types/index.ts"),u=n("./src/utils/index.ts");e.DataTableHeaderComponent=function(){function t(t){this.cd=t,this.sort=new o.EventEmitter,this.reorder=new o.EventEmitter,this.resize=new o.EventEmitter,this.select=new o.EventEmitter,this.columnContextmenu=new o.EventEmitter(!1),this._styleByGroup={left:{},center:{},right:{}}}return Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._innerWidth=t,this._columns){var e=u.columnsByPin(this._columns);this._columnGroupWidths=u.columnGroupWidths(e,this._columns),this.setStylesByGroup()}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerHeight",{get:function(){return this._headerHeight},set:function(t){this._headerHeight="auto"!==t?t+"px":t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=u.columnsByPin(t);this._columnsByPin=u.columnsByPinArr(t),this._columnGroupWidths=u.columnGroupWidths(e,t),this.setStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.setStylesByGroup()},enumerable:!0,configurable:!0}),t.prototype.onLongPressStart=function(t){var e=t.event;t.model.dragging=!0,this.dragEventTarget=e},t.prototype.onLongPressEnd=function(t){var e=this,n=t.model;this.dragEventTarget=t.event,setTimeout(function(){var t=e._columns.find(function(t){return t.$$id===n.$$id});t&&(t.dragging=!1)},5)},Object.defineProperty(t.prototype,"headerWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),t.prototype.trackByGroups=function(t,e){return e.type},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.onColumnResized=function(t,e){t<=e.minWidth?t=e.minWidth:t>=e.maxWidth&&(t=e.maxWidth),this.resize.emit({column:e,prevValue:e.width,newValue:t})},t.prototype.onColumnReordered=function(t){var e=t.prevIndex,n=t.newIndex,a=t.model,r=this.getColumn(n);r.isTarget=!1,r.targetMarkerContext=void 0,this.reorder.emit({column:a,prevValue:e,newValue:n})},t.prototype.onTargetChanged=function(t){var e=t.prevIndex,n=t.newIndex,a=t.initialIndex;if(e||0===e){var r=this.getColumn(e);r.isTarget=!1,r.targetMarkerContext=void 0}if(n||0===n){var i=this.getColumn(n);i.isTarget=!0,a!==n&&(i.targetMarkerContext={class:"targetMarker ".concat(a>n?"dragFromRight":"dragFromLeft")})}},t.prototype.getColumn=function(t){var e=this._columnsByPin[0].columns.length;if(t\n \n \n \n \n \n ',host:{class:"datatable-header"},changeDetection:o.ChangeDetectionStrategy.OnPush}),i("design:paramtypes",[o.ChangeDetectorRef])],t)}()},"./src/components/header/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/header/header.component.ts")),a(n("./src/components/header/header-cell.component.ts"))},"./src/components/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/datatable.component.ts")),a(n("./src/components/header/index.ts")),a(n("./src/components/body/index.ts")),a(n("./src/components/footer/index.ts")),a(n("./src/components/columns/index.ts")),a(n("./src/components/row-detail/index.ts"))},"./src/components/row-detail/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/row-detail/row-detail.directive.ts")),a(n("./src/components/row-detail/row-detail-template.directive.ts"))},"./src/components/row-detail/row-detail-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DatatableRowDetailTemplateDirective=function(){return a([i.Directive({selector:"[ngx-datatable-row-detail-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/row-detail/row-detail.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("./src/components/row-detail/row-detail-template.directive.ts");e.DatatableRowDetailDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandRow=function(t){this.toggle.emit({type:"row",value:t})},t.prototype.expandAllRows=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllRows=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(o.DatatableRowDetailTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-row-detail"})],t)}()},"./src/datatable.module.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core"),i=n("@angular/common"),o=n("./src/components/index.ts"),s=n("./src/directives/index.ts"),u=n("./src/services/index.ts");e.NgxDatatableModule=function(){return a([r.NgModule({imports:[i.CommonModule],providers:[u.ScrollbarHelper,u.DimensionsHelper,u.ColumnChangesService],declarations:[o.DataTableFooterTemplateDirective,s.VisibilityDirective,s.DraggableDirective,s.ResizeableDirective,s.OrderableDirective,s.LongPressDirective,o.ScrollerComponent,o.DatatableComponent,o.DataTableColumnDirective,o.DataTableHeaderComponent,o.DataTableHeaderCellComponent,o.DataTableBodyComponent,o.DataTableFooterComponent,o.DataTablePagerComponent,o.ProgressBarComponent,o.DataTableBodyRowComponent,o.DataTableRowWrapperComponent,o.DatatableRowDetailDirective,o.DatatableGroupHeaderDirective,o.DatatableRowDetailTemplateDirective,o.DataTableBodyCellComponent,o.DataTableSelectionComponent,o.DataTableColumnHeaderDirective,o.DataTableColumnCellDirective,o.DataTableColumnCellTreeToggle,o.DatatableFooterDirective,o.DatatableGroupHeaderTemplateDirective,o.DataTableSummaryRowComponent],exports:[o.DatatableComponent,o.DatatableRowDetailDirective,o.DatatableGroupHeaderDirective,o.DatatableRowDetailTemplateDirective,o.DataTableColumnDirective,o.DataTableColumnHeaderDirective,o.DataTableColumnCellDirective,o.DataTableColumnCellTreeToggle,o.DataTableFooterTemplateDirective,o.DatatableFooterDirective,o.DataTablePagerComponent,o.DatatableGroupHeaderTemplateDirective]})],function(){})}()},"./src/directives/draggable.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("rxjs"),s=n("rxjs/operators");e.DraggableDirective=function(){function t(t){this.dragX=!0,this.dragY=!0,this.dragStart=new i.EventEmitter,this.dragging=new i.EventEmitter,this.dragEnd=new i.EventEmitter,this.isDragging=!1,this.element=t.nativeElement}return t.prototype.ngOnChanges=function(t){t.dragEventTarget&&t.dragEventTarget.currentValue&&this.dragModel.dragging&&this.onMousedown(t.dragEventTarget.currentValue)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(t){this.isDragging&&(this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this._destroySubscription(),this.dragEnd.emit({event:t,element:this.element,model:this.dragModel})))},t.prototype.onMousedown=function(t){var e=this;if(t.target.classList.contains("draggable")&&(this.dragX||this.dragY)){t.preventDefault(),this.isDragging=!0;var n={x:t.clientX,y:t.clientY},a=o.fromEvent(document,"mouseup");this.subscription=a.subscribe(function(t){return e.onMouseup(t)});var r=o.fromEvent(document,"mousemove").pipe(s.takeUntil(a)).subscribe(function(t){return e.move(t,n)});this.subscription.add(r),this.dragStart.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype.move=function(t,e){if(this.isDragging){var n=t.clientY-e.y;this.dragX&&(this.element.style.left=t.clientX-e.x+"px"),this.dragY&&(this.element.style.top=n+"px"),this.element.classList.add("dragging"),this.dragging.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Object)],t.prototype,"dragEventTarget",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"dragModel",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragX",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragY",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragging",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragEnd",void 0),a([i.Directive({selector:"[draggable]"}),r("design:paramtypes",[i.ElementRef])],t)}()},"./src/directives/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/directives/draggable.directive.ts")),a(n("./src/directives/long-press.directive.ts")),a(n("./src/directives/orderable.directive.ts")),a(n("./src/directives/resizeable.directive.ts")),a(n("./src/directives/visibility.directive.ts"))},"./src/directives/long-press.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("rxjs"),s=n("rxjs/operators");n("./src/events.ts"),e.LongPressDirective=function(){function t(){this.pressEnabled=!0,this.duration=500,this.longPressStart=new i.EventEmitter,this.longPressing=new i.EventEmitter,this.longPressEnd=new i.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(t.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLongPress",{get:function(){return this.isLongPressing},enumerable:!0,configurable:!0}),t.prototype.onMouseDown=function(t){var e=this;if(1===t.which&&this.pressEnabled&&!t.target.classList.contains("resize-handle")){this.mouseX=t.clientX,this.mouseY=t.clientY,this.pressing=!0,this.isLongPressing=!1;var n=o.fromEvent(document,"mouseup");this.subscription=n.subscribe(function(t){return e.onMouseup()}),this.timeout=setTimeout(function(){e.isLongPressing=!0,e.longPressStart.emit({event:t,model:e.pressModel}),e.subscription.add(o.fromEvent(document,"mousemove").pipe(s.takeUntil(n)).subscribe(function(t){return e.onMouseMove(t)})),e.loop(t)},this.duration),this.loop(t)}},t.prototype.onMouseMove=function(t){if(this.pressing&&!this.isLongPressing){var e=Math.abs(t.clientX-this.mouseX)>10,n=Math.abs(t.clientY-this.mouseY)>10;(e||n)&&this.endPress()}},t.prototype.loop=function(t){var e=this;this.isLongPressing&&(this.timeout=setTimeout(function(){e.longPressing.emit({event:t,model:e.pressModel}),e.loop(t)},50))},t.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this._destroySubscription(),this.longPressEnd.emit({model:this.pressModel})},t.prototype.onMouseup=function(){this.endPress()},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"pressEnabled",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pressModel",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"duration",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressing",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressEnd",void 0),a([i.HostBinding("class.press"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"press",null),a([i.HostBinding("class.longpress"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isLongPress",null),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseDown",null),a([i.Directive({selector:"[long-press]"})],t)}()},"./src/directives/orderable.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),s=n("./src/directives/draggable.directive.ts"),u=n("@angular/platform-browser");e.OrderableDirective=function(){function t(t,e){this.document=e,this.reorder=new o.EventEmitter,this.targetChanged=new o.EventEmitter,this.differ=t.find({}).create()}return t.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},t.prototype.ngOnDestroy=function(){this.draggables.forEach(function(t){t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe()})},t.prototype.updateSubscriptions=function(){var t=this,e=this.differ.diff(this.createMapDiffs());if(e){var n=function(t){var e=t.previousValue;e&&(e.dragStart.unsubscribe(),e.dragging.unsubscribe(),e.dragEnd.unsubscribe())};e.forEachAddedItem((function(e){var a=e.currentValue;n({previousValue:e.previousValue}),a&&(a.dragStart.subscribe(t.onDragStart.bind(t)),a.dragging.subscribe(t.onDragging.bind(t)),a.dragEnd.subscribe(t.onDragEnd.bind(t)))}).bind(this)),e.forEachRemovedItem(n.bind(this))}},t.prototype.onDragStart=function(){this.positions={};for(var t=0,e=0,n=this.draggables.toArray();e=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),o=n("rxjs"),s=(n("./src/events.ts"),n("rxjs/operators"));e.ResizeableDirective=function(){function t(t,e){this.renderer=e,this.resizeEnabled=!0,this.resize=new i.EventEmitter,this.resizing=!1,this.element=t.nativeElement}return t.prototype.ngAfterViewInit=function(){var t=this.renderer,e=t.createElement("span");t.addClass(e,this.resizeEnabled?"resize-handle":"resize-handle--not-resizable"),t.appendChild(this.element,e)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this._destroySubscription(),this.resize.emit(this.element.clientWidth))},t.prototype.onMousedown=function(t){var e=this,n=t.target.classList.contains("resize-handle"),a=this.element.clientWidth,r=t.screenX;if(n){t.stopPropagation(),this.resizing=!0;var i=o.fromEvent(document,"mouseup");this.subscription=i.subscribe(function(t){return e.onMouseup()});var u=o.fromEvent(document,"mousemove").pipe(s.takeUntil(i)).subscribe(function(t){return e.move(t,a,r)});this.subscription.add(u)}},t.prototype.move=function(t,e,n){var a=e+(t.screenX-n);(!this.minWidth||a>=this.minWidth)&&(!this.maxWidth||a<=this.maxWidth)&&(this.element.style.width=a+"px")},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeEnabled",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"resize",void 0),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMousedown",null),a([i.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}}),r("design:paramtypes",[i.ElementRef,i.Renderer2])],t)}()},"./src/directives/visibility.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.VisibilityDirective=function(){function t(t,e){this.element=t,this.zone=e,this.isVisible=!1,this.visible=new i.EventEmitter}return t.prototype.ngOnInit=function(){this.runCheck()},t.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},t.prototype.onVisibilityChange=function(){var t=this;this.zone.run(function(){t.isVisible=!0,t.visible.emit(!0)})},t.prototype.runCheck=function(){var t=this,e=function(){var n=t.element.nativeElement;n.offsetHeight&&n.offsetWidth?(clearTimeout(t.timeout),t.onVisibilityChange()):(clearTimeout(t.timeout),t.zone.runOutsideAngular(function(){t.timeout=setTimeout(function(){return e()},50)}))};this.timeout=setTimeout(function(){return e()})},a([i.HostBinding("class.visible"),r("design:type",Boolean)],t.prototype,"isVisible",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"visible",void 0),a([i.Directive({selector:"[visibilityObserver]"}),r("design:paramtypes",[i.ElementRef,i.NgZone])],t)}()},"./src/events.ts":function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.MouseEvent=("undefined"!=typeof window&&window||t).MouseEvent,e.KeyboardEvent=("undefined"!=typeof window&&window||t).KeyboardEvent,e.Event=("undefined"!=typeof window&&window||t).Event}).call(e,n("./node_modules/webpack/buildin/global.js"))},"./src/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/datatable.module.ts")),a(n("./src/types/index.ts")),a(n("./src/components/index.ts")),a(n("./src/services/index.ts"))},"./src/services/column-changes.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core"),i=n("rxjs");e.ColumnChangesService=function(){function t(){this.columnInputChanges=new i.Subject}return Object.defineProperty(t.prototype,"columnInputChanges$",{get:function(){return this.columnInputChanges.asObservable()},enumerable:!0,configurable:!0}),t.prototype.onInputChange=function(){this.columnInputChanges.next()},a([r.Injectable()],t)}()},"./src/services/dimensions-helper.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core");e.DimensionsHelper=function(){function t(){}return t.prototype.getDimensions=function(t){return t.getBoundingClientRect()},a([r.Injectable()],t)}()},"./src/services/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/services/scrollbar-helper.service.ts")),a(n("./src/services/dimensions-helper.service.ts")),a(n("./src/services/column-changes.service.ts"))},"./src/services/scrollbar-helper.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,o=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(o=(i<3?r(o):i>3?r(e,n,o):r(e,n))||o);return i>3&&o&&Object.defineProperty(e,n,o),o},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),s=n("@angular/platform-browser");e.ScrollbarHelper=function(){function t(t){this.document=t,this.width=this.getWidth()}return t.prototype.getWidth=function(){var t=this.document.createElement("div");t.style.visibility="hidden",t.style.width="100px",t.style.msOverflowStyle="scrollbar",this.document.body.appendChild(t);var e=t.offsetWidth;t.style.overflow="scroll";var n=this.document.createElement("div");n.style.width="100%",t.appendChild(n);var a=n.offsetWidth;return t.parentNode.removeChild(t),e-a},a([o.Injectable(),i(0,o.Inject(s.DOCUMENT)),r("design:paramtypes",[Object])],t)}()},"./src/types/click.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.double="double"}(e.ClickType||(e.ClickType={}))},"./src/types/column-mode.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.standard="standard",t.flex="flex",t.force="force"}(e.ColumnMode||(e.ColumnMode={}))},"./src/types/contextmenu.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.header="header",t.body="body"}(e.ContextmenuType||(e.ContextmenuType={}))},"./src/types/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/types/column-mode.type.ts")),a(n("./src/types/sort.type.ts")),a(n("./src/types/sort-direction.type.ts")),a(n("./src/types/selection.type.ts")),a(n("./src/types/click.type.ts")),a(n("./src/types/contextmenu.type.ts"))},"./src/types/selection.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi",t.multiClick="multiClick",t.cell="cell",t.checkbox="checkbox"}(e.SelectionType||(e.SelectionType={}))},"./src/types/sort-direction.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.asc="asc",t.desc="desc"}(e.SortDirection||(e.SortDirection={}))},"./src/types/sort.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi"}(e.SortType||(e.SortType={}))},"./src/utils/camel-case.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=function(t){return(t=(t=(t=t.replace(/[^a-zA-Z0-9 ]/g," ")).replace(/([a-z](?=[A-Z]))/g,"$1 ")).replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase()).replace(/([ 0-9]+)([a-zA-Z])/g,function(t,e,n){return e.trim()+n.toUpperCase()})},e.deCamelCase=function(t){return t.replace(/([A-Z])/g,function(t){return" "+t}).replace(/^./,function(t){return t.toUpperCase()})}},"./src/utils/column-helper.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/utils/camel-case.ts"),r=n("./src/utils/id.ts"),i=n("./src/utils/column-prop-getters.ts");function o(t){return null==t}e.setColumnDefaults=function(t){if(t)for(var e=!1,n=0,s=t;n=e;for(var g=0,m=s;gb.maxWidth?(b.width=b.maxWidth,h.push(b)):b.width=y}b.width=Math.max(0,b.width)}p=e-(f=o(t)),i(s,h)}while(p>0&&0!==s.length)}},"./src/utils/prefixes.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,r,i,o,s=n("./src/utils/camel-case.ts"),u={},c="undefined"!=typeof document?document.createElement("div").style:void 0,l=(o=void 0!==(i=null!==(r=void 0!==(a="undefined"!=typeof window?window.getComputedStyle(document.documentElement,""):void 0)?Array.prototype.slice.call(a).join("").match(/-(moz|webkit|ms)-/):null)?r[1]:void 0)?"WebKit|Moz|MS|O".match(new RegExp("("+i+")","i"))[1]:void 0)?{dom:o,lowercase:i,css:"-"+i+"-",js:i[0].toUpperCase()+i.substr(1)}:void 0;e.getVendorPrefixedName=function(t){var e=s.camelCase(t);return u[e]||(void 0!==l&&void 0!==c[l.css+t]?u[e]=l.css+t:void 0!==c[t]&&(u[e]=t)),u[e]}},"./src/utils/row-height-cache.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RowHeightCache=function(){function t(){this.treeArray=[]}return t.prototype.clearCache=function(){this.treeArray=[]},t.prototype.initCache=function(t){var e=t.rows,n=t.rowHeight,a=t.detailRowHeight,r=t.externalVirtual,i=t.rowCount,o=t.rowIndexes,s=t.rowExpansions,u="function"==typeof n,c="function"==typeof a;if(!u&&isNaN(n))throw new Error("Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n valid number or function value: ("+n+") when 'scrollbarV' is enabled.");if(!c&&isNaN(a))throw new Error("Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n valid number or function value: ("+a+") when 'scrollbarV' is enabled.");var l=r?i:e.length;this.treeArray=new Array(l);for(var d=0;d=0;)e+=this.treeArray[t],t=(t&t+1)-1;return e},t.prototype.queryBetween=function(t,e){return this.query(e)-this.query(t-1)},t.prototype.calcRowIndex=function(t){if(!this.treeArray.length)return 0;for(var e=-1,n=this.treeArray.length,a=Math.pow(2,n.toString(2).length-1);0!==a;a>>=1){var r=e+a;r=this.treeArray[r]&&(t-=this.treeArray[r],e=r)}return e+1},t}()},"./src/utils/selection.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.selectRows=function(t,e,n){var a=n(e,t);return a>-1?t.splice(a,1):t.push(e),t},e.selectRowsBetween=function(t,e,n,a,r){for(var i=n=n||!i&&o>=a&&o<=n)&&o>=s.start&&o<=s.end&&t.push(e[o])}return t}},"./src/utils/sort.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/types/index.ts"),r=n("./src/utils/column-prop-getters.ts");function i(t,e){if(null==t&&(t=0),null==e&&(e=0),t instanceof Date&&e instanceof Date){if(te)return 1}else if(isNaN(parseFloat(t))||!isFinite(t)||isNaN(parseFloat(e))||!isFinite(e)){if(t=String(t),e=String(e),t.toLowerCase()e.toLowerCase())return 1}else{if(parseFloat(t)parseFloat(e))return 1}return 0}e.nextSortDir=function(t,e){return t===a.SortType.single?e===a.SortDirection.asc?a.SortDirection.desc:a.SortDirection.asc:e?e===a.SortDirection.asc?a.SortDirection.desc:void 0:a.SortDirection.asc},e.orderByComparator=i,e.sortRows=function(t,e,n){if(!t)return[];if(!n||!n.length||!e)return t.slice();var o=new Map;t.forEach(function(t,e){return o.set(t,e)});var s=t.slice(),u=e.reduce(function(t,e){return e.comparator&&"function"==typeof e.comparator&&(t[e.prop]=e.comparator),t},{}),c=n.map(function(t){var e=t.prop;return{prop:e,dir:t.dir,valueGetter:r.getterForProp(e),compareFn:u[e]||i}});return s.sort(function(t,e){for(var n=0,r=c;n-1&&(c=l),o.parent=a[c],o.row.level=o.parent.row.level+1,o.parent.children.push(o)}var d=[];return a[0].flatten(function(){d=d.concat([this.row])},!0),d}return t};var r=function(){function t(t){void 0===t&&(t=null),t||(t={level:-1,treeStatus:"expanded"}),this.row=t,this.parent=null,this.children=[]}return t.prototype.flatten=function(t,e){if("expanded"===this.row.treeStatus)for(var n=0,a=this.children.length;n1)this.connection=null;else{var n=this.connection,a=t._connection;this.connection=null,!a||n&&a!==n||a.unsubscribe()}}else this.connection=null},e}(r.a)},yJti:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return t[t.ValueOk=0]="ValueOk",t[t.ValueStale=1]="ValueStale",t[t.ValueNone=2]="ValueNone",t[t.ValueException=3]="ValueException",t}({})},yPMN:function(t,e,n){"use strict";n("CDJp")._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),t.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},yPMs:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,n){return t<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},yRPT:function(t,e,n){"use strict";e.isArrayLike=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t}},ylLw:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),o=n("3MdB");n("ZYjt"),e.OrderableDirective=function(){function t(t,e){this.document=e,this.reorder=new i.EventEmitter,this.targetChanged=new i.EventEmitter,this.differ=t.find({}).create()}return t.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},t.prototype.ngOnDestroy=function(){this.draggables.forEach(function(t){t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe()})},t.prototype.updateSubscriptions=function(){var t=this,e=this.differ.diff(this.createMapDiffs());if(e){var n=function(t){var e=t.previousValue;e&&(e.dragStart.unsubscribe(),e.dragging.unsubscribe(),e.dragEnd.unsubscribe())};e.forEachAddedItem((function(e){var a=e.currentValue;n({previousValue:e.previousValue}),a&&(a.dragStart.subscribe(t.onDragStart.bind(t)),a.dragging.subscribe(t.onDragging.bind(t)),a.dragEnd.subscribe(t.onDragEnd.bind(t)))}).bind(this)),e.forEachRemovedItem(n.bind(this))}},t.prototype.onDragStart=function(){this.positions={};for(var t=0,e=0,n=this.draggables.toArray();e11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},z3Vd:function(t,e,n){!function(t){"use strict";var e="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(t,n,a,r){var i=function(t){var n=Math.floor(t%1e3/100),a=Math.floor(t%100/10),r=t%10,i="";return n>0&&(i+=e[n]+"vatlh"),a>0&&(i+=(""!==i?" ":"")+e[a]+"maH"),r>0&&(i+=(""!==i?" ":"")+e[r]),""===i?"pagh":i}(t);switch(a){case"ss":return i+" lup";case"mm":return i+" tup";case"hh":return i+" rep";case"dd":return i+" jaj";case"MM":return i+" jar";case"yy":return i+" DIS"}}t.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq"},past:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu\u2019":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret"},s:"puS lup",ss:n,m:"wa\u2019 tup",mm:n,h:"wa\u2019 rep",hh:n,d:"wa\u2019 jaj",dd:n,M:"wa\u2019 jar",MM:n,y:"wa\u2019 DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},z5nN:function(t,e,n){"use strict";n.d(e,"b",function(){return u}),n.d(e,"a",function(){return f});var a=n("CcnG"),r=n("DQlY"),i=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["role","document"]],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","modal-content"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],null,function(t,e){var n=e.component;t(e,0,0,"modal-dialog"+(n.config.class?" "+n.config.class:""))})}function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"modal-container",[["class","modal"],["role","dialog"],["tabindex","-1"]],[[1,"aria-modal",0]],[[null,"click"],["window","keydown.esc"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick(n)&&r),"window:keydown.esc"===e&&(r=!1!==a["\u0275nov"](t,1).onEsc(n)&&r),r},o,i)),a["\u0275did"](1,245760,null,0,r.d,[r.f,a.ElementRef,a.Renderer2],null,null)],function(t,e){t(e,1,0)},function(t,e){t(e,0,0,!0)})}var u=a["\u0275ccf"]("modal-container",r.d,s,{},{},["*"]),c=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function l(t){return a["\u0275vid"](0,[],null,null)}function d(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-modal-backdrop",[["class","modal-backdrop"]],null,null,null,l,c)),a["\u0275did"](1,114688,null,0,r.c,[a.ElementRef,a.Renderer2],null,null)],function(t,e){t(e,1,0)},null)}var f=a["\u0275ccf"]("bs-modal-backdrop",r.c,d,{},{},[])},zAZS:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){return function(n){return n.lift(new o(t,e,n))}}var o=function(){function t(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new s(t,this.predicate,this.thisArg,this.source))},t}(),s=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.predicate=n,i.thisArg=a,i.source=r,i.index=0,i.thisArg=a||i,i}return a.__extends(e,t),e.prototype.notifyComplete=function(t){this.destination.next(t),this.destination.complete()},e.prototype._next=function(t){var e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e||this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(r.a)},"zB/H":function(t,e,n){"use strict";var a=n("mbIT"),r=n("GMZp"),i=n("pshJ"),o=n("LBXl");function s(t){return t.reduce(function(t,e){return t.concat(e instanceof o.UnsubscriptionError?e.errors:e)},[])}e.Subscription=function(){function t(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}var e;return t.prototype.unsubscribe=function(){var e;if(!this.closed){var n=this._parentOrParents,u=this._unsubscribe,c=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(var l=0;l1)this.state.blockCount--;else if(this.active){var n=this.delayStop||this.settings.delayStop||0;n?null===this.state.stopTimeout&&(this.state.stopTimeout=setTimeout(function(){e.hideBlock()},n)):this.hideBlock()}else this.clearState();this.updateInstanceBlockCount()}},t.prototype.onReset=function(){this.hideBlock()},t.prototype.onUpdate=function(t){var e=t.message;t.name===this.name&&(this.active=!0,this.message=e||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.changeDetectionRef.detectChanges())},t.prototype.showBlock=function(t){this.active=!0,this.message=t||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.changeDetectionRef.detectChanges()},t.prototype.hideBlock=function(){this.clearState(),this.active=!1,this.changeDetectionRef.detectChanges()},t.prototype.clearState=function(){null!=this.state.startTimeout&&clearTimeout(this.state.startTimeout),null!=this.state.stopTimeout&&clearTimeout(this.state.stopTimeout),this.state.blockCount=0,this.state.startTimeout=null,this.state.stopTimeout=null,this.updateInstanceBlockCount()},t.prototype.updateBlockTemplate=function(t){this.templateCompRef&&this.templateCompRef instanceof o.ComponentRef&&(this.templateCompRef.instance.message=t)},t.prototype.onUnsubscribe=function(t){this.blockUISubscription&&t===this.name&&this.blockUISubscription.unsubscribe()},t.prototype.updateInstanceBlockCount=function(){this.blockUI.blockUIInstances[this.name]&&(this.blockUI.blockUIInstances[this.name].blockCount=this.state.blockCount)},t.prototype.ngOnDestroy=function(){this.onUnsubscribe(this.name)},t}(),_=function(){function t(t){this.blockUIInstance=t}return t.prototype.start=function(t,e){this.dispatch(t,m.START,e)},t.prototype.stop=function(t){this.dispatch(t,m.STOP)},t.prototype.unsubscribe=function(t){this.dispatch(t,m.UNSUBSCRIBE)},t.prototype.isActive=function(t){void 0===t&&(t=null);var e=t?this.toArray(t):null,n=this.blockUIInstance.blockUIInstances;return Object.keys(n).some(function(t){return e?e.indexOf(n[t].name)>=0&&n[t].isActive:n[t].isActive})},t.prototype.dispatch=function(t,e,n){var a=this;void 0===t&&(t=[]),this.toArray(t).forEach(function(t){return a.blockUIInstance.decorate(t)[e](n)})},t.prototype.toArray=function(t){return void 0===t&&(t=[]),"string"==typeof t?[t]:t},t}(),T=new y,w=new o.InjectionToken("BlockUIModuleSettings");function S(t){return T.updateSettings(t),T}var O=function(){function t(){}return t.forRoot=function(e){return void 0===e&&(e={}),{ngModule:t,providers:[{provide:w,useValue:e},{provide:y,useFactory:S,deps:[w]},_]}},t}(),I=o["\u0275crt"]({encapsulation:2,styles:[],data:{}});function C(t){return o["\u0275vid"](0,[o["\u0275ncd"](null,0),(t()(),o["\u0275eld"](1,0,null,null,1,"block-ui-content",[],null,null,null,P,R)),o["\u0275did"](2,12828672,null,0,x,[y,o.ComponentFactoryResolver,o.ChangeDetectorRef],{name:[0,"name"],delayStart:[1,"delayStart"],delayStop:[2,"delayStop"],defaultMessage:[3,"defaultMessage"],templateCmp:[4,"templateCmp"]},null)],function(t,e){var n=e.component;t(e,2,0,n.name,n.delayStart,n.delayStop,n.message,n.template)},null)}function k(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"block-ui",[],null,null,null,C,I)),o["\u0275did"](1,114688,null,0,v,[y],null,null)],function(t,e){t(e,1,0)},null)}var N=o["\u0275ccf"]("block-ui",v,k,{name:"name",message:"message",delayStart:"delayStart",delayStop:"delayStop",template:"template"},{},["*"]),R=o["\u0275crt"]({encapsulation:2,styles:["\n.block-ui-wrapper {\n display: none;\n position: fixed;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n background: rgba(0, 0, 0, 0.70);\n z-index: 30000;\n cursor: wait;\n}\n\n.block-ui-wrapper.block-ui-wrapper--element {\n position: absolute;\n}\n\n.block-ui-wrapper.active {\n display: block;\n}\n\n.block-ui-wrapper.block-ui-main {\n position: fixed;\n}\n\n.block-ui-spinner,\n.block-ui-template {\n position: absolute;\n top: 40%;\n margin: 0 auto;\n left: 0;\n right: 0;\n transform: translateY(-50%);\n}\n\n.block-ui-spinner > .message {\n font-size: 1.3em;\n text-align: center;\n color: #fff;\n}\n\n.block-ui__element {\n position: relative;\n}\n\n.loader,\n.loader:after {\n border-radius: 50%;\n width: 10em;\n height: 10em;\n}\n.loader {\n margin: 7px auto;\n font-size: 5px;\n position: relative;\n text-indent: -9999em;\n border-top: 1.1em solid rgba(255, 255, 255, 0.2);\n border-right: 1.1em solid rgba(255, 255, 255, 0.2);\n border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);\n border-left: 1.1em solid #ffffff;\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.1s infinite linear;\n animation: load8 1.1s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n"],data:{}});function A(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,1,0,n.message||n.defaultMessage)})}function E(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"div",[["class","block-ui-spinner"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,0,"div",[["class","loader"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,A)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.message||n.defaultMessage)},null)}function D(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](0,null,null,0))],null,null)}function L(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,[[1,3],["templateOutlet",2]],null,0,null,D)),(t()(),o["\u0275and"](0,null,null,0))],null,null)}function P(t){return o["\u0275vid"](0,[o["\u0275qud"](671088640,1,{templateOutlet:0}),(t()(),o["\u0275eld"](1,0,null,null,6,"div",[],null,null,null,null,null)),o["\u0275did"](2,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](3,{active:0}),(t()(),o["\u0275and"](16777216,null,null,1,null,E)),o["\u0275did"](5,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,L)),o["\u0275did"](7,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=o["\u0275inlineInterpolate"](2,"block-ui-wrapper ",n.name," ",n.className,""),r=t(e,3,0,n.active);t(e,2,0,a,r),t(e,5,0,!n.templateCmp),t(e,7,0,n.templateCmp)},null)}function M(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"block-ui-content",[],null,null,null,P,R)),o["\u0275did"](1,12828672,null,0,x,[y,o.ComponentFactoryResolver,o.ChangeDetectorRef],null,null)],function(t,e){t(e,1,0)},null)}var q=o["\u0275ccf"]("block-ui-content",x,M,{name:"name",delayStart:"delayStart",delayStop:"delayStop",defaultMessage:"message",templateCmp:"template"},{},[]),j=n("SZbH"),F=o["\u0275crt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"flyInOut",definitions:[{type:0,name:"inactive",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{opacity:1},offset:null},options:void 0},{type:0,name:"removed",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:1,expr:"inactive => active",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null},{type:1,expr:"active => removed",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null}],options:{}}]}});function z(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"button",[["aria-label","Close"],["class","toast-close-button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.remove()&&a),a},null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xd7"]))],null,null)}function G(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["[","]"]))],null,function(t,e){t(e,1,0,e.component.duplicatesCount+1)})}function Y(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"div",[],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "])),(t()(),o["\u0275and"](16777216,null,null,1,null,G)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,3,0,e.component.duplicatesCount)},function(t,e){var n=e.component;t(e,0,0,n.options.titleClass,n.title),t(e,1,0,n.title)})}function V(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message)})}function H(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message),t(e,1,0,n.message)})}function B(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,0,"div",[["class","toast-progress"]],[[4,"width",null]],null,null,null,null))],null,function(t,e){t(e,1,0,e.component.width+"%")})}function U(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,z)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Y)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,V)),o["\u0275did"](5,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,H)),o["\u0275did"](7,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,B)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.options.closeButton),t(e,3,0,n.title),t(e,5,0,n.message&&n.options.enableHtml),t(e,7,0,n.message&&!n.options.enableHtml),t(e,9,0,n.options.progressBar)},null)}function W(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"div",[["toast-component",""]],[[8,"className",0],[40,"@flyInOut",0],[4,"display",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,1).tapToast()&&a),"mouseenter"===e&&(a=!1!==o["\u0275nov"](t,1).stickAround()&&a),"mouseleave"===e&&(a=!1!==o["\u0275nov"](t,1).delayedHideToast()&&a),a},U,F)),o["\u0275did"](1,180224,null,0,j.c,[j.j,j.g,o.NgZone],null,null)],null,function(t,e){t(e,0,0,o["\u0275nov"](e,1).toastClasses,o["\u0275nov"](e,1).state,o["\u0275nov"](e,1).displayStyle)})}var K=o["\u0275ccf"]("[toast-component]",j.c,W,{},{},[]),$=n("pMnS"),Z=n("pKUh"),X=n("YAQW"),J=n("OZfm"),Q=n("lqqz"),tt=n("NJnL"),et=n("ZYCi"),nt=function(){return function(){this.cardClass=""}}(),at=o["\u0275crt"]({encapsulation:0,styles:[[".card[_ngcontent-%COMP%]{border:.5px solid #ddd;border-radius:3px;background-color:#fff;box-shadow:0 1px 1px rgba(3,3,3,.175);margin:0 auto 20px;padding:0 20px;width:auto;height:auto;min-height:6vw;position:relative;font-size:12px}@media screen and (min-width:320px){.card[_ngcontent-%COMP%]{font-size:calc(12px + 9 * ((100vw - 320px)/ 1728))}}@media screen and (min-width:2048px){.card[_ngcontent-%COMP%]{font-size:21px}}.card-title[_ngcontent-%COMP%]{margin:1.1vw 0;padding:0}.card-body[_ngcontent-%COMP%]{text-align:center;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.content-chart[_ngcontent-%COMP%]{margin-top:-.7vw;position:unset;top:unset;left:unset;-webkit-transform:unset;transform:unset}.no-center[_ngcontent-%COMP%]{position:unset;top:unset;left:unset;-webkit-transform:unset;transform:unset}.text-area-size-2[_ngcontent-%COMP%]{margin-right:-50%;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%)}.text-area-size-3[_ngcontent-%COMP%]{margin-right:-50%;-webkit-transform:translate(-50%,-40%);transform:translate(-50%,-40%)}.content-highlight[_ngcontent-%COMP%]{font-weight:700}.card-medium[_ngcontent-%COMP%]{min-height:12vw}.scroll[_ngcontent-%COMP%]{max-height:18vw;overflow-y:auto}.text-monospace[_ngcontent-%COMP%]{font-size:12px;font-family:monospace;text-align:left}@media (max-width:1599px){.card[_ngcontent-%COMP%]{min-height:7.8vw}.card-medium[_ngcontent-%COMP%]{min-height:14.4vw}}@media (max-width:calc(1200px - 1px)){.card-medium[_ngcontent-%COMP%]{min-height:18vw}.content-chart[_ngcontent-%COMP%]{margin-top:-.6vw}}@media (max-width:calc(992px - 1px)){.card[_ngcontent-%COMP%]{min-height:12vw}.content-chart[_ngcontent-%COMP%]{margin-top:-.3vw}}@media (max-width:calc(992px - 1px)) and (min-width:768px){.card-medium[_ngcontent-%COMP%]{min-height:26.4vw}}@media (max-width:599px){.card[_ngcontent-%COMP%]{min-height:18vw}}@media (max-width:319px){.card[_ngcontent-%COMP%]{min-height:24vw}}"]],data:{}});function rt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](1,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](2,null,["",""]))],function(t,e){t(e,1,0,e.component.link)},function(t,e){var n=e.component;t(e,0,0,o["\u0275nov"](e,1).target,o["\u0275nov"](e,1).href),t(e,2,0,n.cardTitle)})}function it(t){return o["\u0275vid"](0,[(t()(),o["\u0275ted"](0,null,[" "," "]))],null,function(t,e){t(e,0,0,e.component.cardTitle)})}function ot(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,8,"div",[["class","card"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),o["\u0275eld"](2,0,null,null,3,"div",[["class","card-title"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,rt)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),o["\u0275and"](0,[["noLinkTitle",2]],null,0,null,it)),(t()(),o["\u0275eld"](6,0,null,null,2,"div",[["class","card-body"]],null,null,null,null,null)),o["\u0275did"](7,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275ncd"](null,0)],function(t,e){var n=e.component;t(e,1,0,"card",n.cardClass),t(e,4,0,n.link,o["\u0275nov"](e,5)),t(e,7,0,"card-body",n.contentClass)},null)}var st=function(){return function(){}}(),ut=o["\u0275crt"]({encapsulation:0,styles:[[".info-group-title[_ngcontent-%COMP%]{margin:0 0 .5vw .5vw;padding:0;font-size:21px}"]],data:{}});function ct(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"div",[["class","info-group-title"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" ","\n"])),o["\u0275ncd"](null,0)],null,function(t,e){t(e,1,0,e.component.groupTitle)})}var lt,dt=n("xdbM"),ft=n("WyAD"),pt=n("LvDl"),ht=n("NEZu"),gt=n("Fgil"),mt=n("o4+5");!function(t){t.DEFAULT_RED="#ff7592",t.DEFAULT_BLUE="#1d699d",t.DEFAULT_ORANGE="#ffa500",t.DEFAULT_MAGENTA="#564d65",t.DEFAULT_GREEN="#00bb00"}(lt||(lt={}));var bt=function(){function t(t,e){var n=this;this.dimlessBinary=t,this.dimless=e,this.config={},this.isBytesData=!1,this.showLabelAsTooltip=!1,this.prepareFn=new o.EventEmitter,this.chartConfig={chartType:"pie",dataset:[{label:null,borderWidth:0}],options:{legend:{display:!0,position:"right",labels:{usePointStyle:!0},onClick:function(t,e){n.onLegendClick(t,e)}},animation:{duration:0},tooltips:{enabled:!1},title:{display:!1}}},this.hiddenSlices=[]}return t.prototype.ngOnInit=function(){var t=this;ft.pluginService.register({beforeDraw:function(t){if(t.options.center_text){var e=t.chart.width,n=t.chart.height,a=t.chart.ctx;a.restore();var r=(n/114).toFixed(2);a.font=r+"em sans-serif",a.textBaseline="middle";var i=t.options.center_text,o=Math.round((e-a.measureText(i).width)/2);a.fillText(i,o,n/2),a.save()}}});var e=new ht.a(this.chartCanvasRef,this.chartTooltipRef,function(t,e){return e+t.caretX+"px"},function(t,e){return e+t.caretY-t.height-10+"px"});e.getBody=function(e){return t.getChartTooltipBody(e)},this.chartConfig.options.tooltips.custom=function(t){e.customTooltips(t)},this.chartConfig.colors=[{backgroundColor:[lt.DEFAULT_RED,lt.DEFAULT_BLUE,lt.DEFAULT_ORANGE,lt.DEFAULT_GREEN,lt.DEFAULT_MAGENTA]}],pt.merge(this.chartConfig,this.config),this.prepareFn.emit([this.chartConfig,this.data])},t.prototype.ngOnChanges=function(){this.prepareFn.emit([this.chartConfig,this.data]),this.hideSlices(),this.setChartSliceBorderWidth()},t.prototype.getChartTooltipBody=function(t){var e=t[0].split(": ");return this.showLabelAsTooltip?e[0]:(e[1]=this.isBytesData?this.dimlessBinary.transform(e[1]):this.dimless.transform(e[1]),e.join(": "))},t.prototype.setChartSliceBorderWidth=function(){var t=0;pt.forEach(this.chartConfig.dataset[0].data,function(e){e>0&&(t+=1)}),this.chartConfig.dataset[0].borderWidth=t>1?1:0},t.prototype.onLegendClick=function(t,e){t.stopPropagation(),this.hiddenSlices[e.index]=!e.hidden,this.ngOnChanges()},t.prototype.hideSlices=function(){var t=this;pt.forEach(this.chartConfig.dataset[0].data,function(e,n){t.hiddenSlices[n]&&(t.chartConfig.dataset[0].data[n]=void 0)})},t}(),yt=o["\u0275crt"]({encapsulation:0,styles:[["canvas[_ngcontent-%COMP%]{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;-webkit-transition:.1s;transition:all .1s ease;pointer-events:none;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif!important;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{-webkit-transform:translate(-10%,0);transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{-webkit-transform:translate(-90%,0);transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:' ';position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent} .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:unset;width:100%;height:100%}.chart-canvas[_ngcontent-%COMP%]{position:unset;width:100%;height:100%;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}"]],data:{}});function vt(t){return o["\u0275vid"](0,[o["\u0275qud"](402653184,1,{chartCanvasRef:0}),o["\u0275qud"](402653184,2,{chartTooltipRef:0}),(t()(),o["\u0275eld"](2,0,null,null,4,"div",[["class","chart-container"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,[[1,0],["chartCanvas",1]],null,1,"canvas",[["baseChart",""],["class","chart-canvas"]],null,null,null,null,null)),o["\u0275did"](4,737280,null,0,dt.BaseChartDirective,[o.ElementRef],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),o["\u0275eld"](5,0,[[2,0],["chartTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,0,"table",[],null,null,null,null,null))],function(t,e){var n=e.component;t(e,4,0,n.chartConfig.dataset,n.chartConfig.labels,n.chartConfig.options,n.chartConfig.chartType,n.chartConfig.colors)},null)}var xt=function(){function t(){}return t.prototype.transform=function(t){return"HEALTH_OK"===t?{color:"#00bb00"}:"HEALTH_WARN"===t?{color:"#ffa500"}:"HEALTH_ERR"===t?{color:"#ff0000"}:null},t}(),_t=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){return t?t.monmap.mons.length.toString()+" ("+this.i18n("quorum")+" "+t.quorum.join(", ")+")":""},t}(),Tt=n("Jm/i"),wt=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){if(!t)return"";var e=0,n=0;pt.each(t.osds,function(t){t.in&&e++,t.up&&n++});var a=[{content:t.osds.length+" "+this.i18n("total"),class:""}];a.push({content:"",class:"card-text-line-break"}),a.push({content:n+" "+this.i18n("up")+", "+e+" "+this.i18n("in"),class:""});var r=t.osds.length-n,i=n-e;if(r>0||i>0){a.push({content:"",class:"card-text-line-break"});var o=r>0?r+" "+this.i18n("down"):"",s=r>0&&i>0?", ":"",u=i>0?i+" "+this.i18n("out"):"";a.push({content:""+o+s+u,class:"card-text-error"})}return a},t}(),St=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){if(!t)return"";var e=this.i18n("n/a"),n=pt.isUndefined(t.active_name)?"":this.i18n("active daemon")+": "+t.active_name;n.length>0&&(e="1");var a=t.standbys.map(function(t){return t.name}).join(", "),r=a?this.i18n("standby daemons")+": "+a:"",i=t.standbys.length,o=[{content:e+" "+this.i18n("active"),class:"popover-info",titleText:n}];return o.push({content:"",class:"card-text-line-break",titleText:""}),o.push({content:i+" "+this.i18n("standby"),class:"popover-info",titleText:r}),o},t}(),Ot=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){if(!t)return"";var e="",n="",a=0,r=0,i=0;pt.each(t.standbys,function(){a+=1}),t.standbys&&!t.filesystems?(e=a+" "+this.i18n("up"),n=this.i18n("no filesystems")):0===t.filesystems.length?e=this.i18n("no filesystems"):(pt.each(t.filesystems,function(t){pt.each(t.mdsmap.info,function(t){"up:standby-replay"===t.state?i+=1:r+=1})}),e=r+" "+this.i18n("active"),n=a+i+" "+this.i18n("standby"));var o=t.standbys.map(function(t){return t.name}).join(", "),s=o?this.i18n("standby daemons")+": "+o:"",u=t.filesystems?t.filesystems.length:0,c=Object.values(u>0?t.filesystems[0].mdsmap.info:{}).map(function(t){return t.name}).join(", "),l=c?this.i18n("active daemon")+": "+c:"";!r&&u>0&&(l=i+" "+this.i18n("standbyReplay"));var d=[{content:e,class:"popover-info",titleText:l}];return n&&(d.push({content:"",class:"card-text-line-break",titleText:""}),d.push({content:n,class:"popover-info",titleText:s})),d},t}(),It=function(){function t(){}return t.prototype.transform=function(t,e){return pt.round(t,e)},t}(),Ct=n("aXbf"),kt=n("DtyJ"),Nt=n("t/Na"),Rt=n("pL04"),At=function(){function t(t){this.http=t}return t.prototype.getFullHealth=function(){return this.http.get("api/health/full")},t.prototype.getMinimalHealth=function(){return this.http.get("api/health/minimal")},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),Et=n("ej+x"),Dt=n("26FU"),Lt=n("xXU7"),Pt=function(){function t(){this.intervalDataSource=new Dt.a(null),this.intervalData$=this.intervalDataSource.asObservable();var t=parseInt(sessionStorage.getItem("dashboard_interval"),10)||5e3;this.setRefreshInterval(t)}return t.prototype.setRefreshInterval=function(t){var e=this;this.intervalTime=t,sessionStorage.setItem("dashboard_interval",t.toString()),this.intervalSubscription&&this.intervalSubscription.unsubscribe(),this.intervalSubscription=Object(Lt.a)(this.intervalTime).subscribe(function(){return e.intervalDataSource.next(e.intervalTime)})},t.prototype.getRefreshInterval=function(){return this.intervalTime},t.prototype.ngOnDestroy=function(){this.intervalSubscription&&this.intervalSubscription.unsubscribe()},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),Mt=n("d+Og"),qt=function(){function t(t,e,n,a,r,i,o,s){this.healthService=t,this.i18n=e,this.authStorageService=n,this.pgCategoryService=a,this.featureToggles=r,this.refreshIntervalService=i,this.dimlessBinary=o,this.dimless=s,this.interval=new kt.Subscription,this.rawCapacityChartConfig={options:{title:{display:!0,position:"bottom"}}},this.objectsChartConfig={options:{title:{display:!0,position:"bottom"}},colors:[{backgroundColor:[lt.DEFAULT_GREEN,lt.DEFAULT_MAGENTA,lt.DEFAULT_ORANGE,lt.DEFAULT_RED]}]},this.pgStatusChartConfig={colors:[{backgroundColor:[lt.DEFAULT_GREEN,lt.DEFAULT_BLUE,lt.DEFAULT_ORANGE,lt.DEFAULT_RED]}]},this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}return t.prototype.ngOnInit=function(){var t=this;this.getHealth(),this.interval=this.refreshIntervalService.intervalData$.subscribe(function(){t.getHealth()})},t.prototype.ngOnDestroy=function(){this.interval.unsubscribe()},t.prototype.getHealth=function(){var t=this;this.healthService.getMinimalHealth().subscribe(function(e){t.healthData=e})},t.prototype.prepareReadWriteRatio=function(t){var e=[],n=[],a=this.healthData.client_perf.write_op_per_sec+this.healthData.client_perf.read_op_per_sec;e.push(this.i18n("Writes")+" ("+this.calcPercentage(this.healthData.client_perf.write_op_per_sec,a)+"%)"),n.push(this.healthData.client_perf.write_op_per_sec),e.push(this.i18n("Reads")+" ("+this.calcPercentage(this.healthData.client_perf.read_op_per_sec,a)+"%)"),n.push(this.healthData.client_perf.read_op_per_sec),t.dataset[0].data=n,t.labels=e},t.prototype.prepareRawUsage=function(t,e){var n=this.calcPercentage(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes),a=this.calcPercentage(e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes);t.dataset[0].data=[e.df.stats.total_used_raw_bytes,e.df.stats.total_avail_bytes],t.labels=[this.dimlessBinary.transform(e.df.stats.total_used_raw_bytes)+" "+this.i18n("Used")+" ("+a+"%)",this.dimlessBinary.transform(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes)+" "+this.i18n("Avail.")+" ("+n+"%)"],t.options.title.text=this.dimlessBinary.transform(e.df.stats.total_bytes)+" "+this.i18n("total")},t.prototype.preparePgStatus=function(t,e){var n=this,a={},r=0;pt.forEach(e.pg_info.statuses,function(t,e){var i=n.pgCategoryService.getTypeByStates(e);pt.isUndefined(a[i])&&(a[i]=0),a[i]+=t,r+=t}),t.dataset[0].data=this.pgCategoryService.getAllTypes().map(function(t){return a[t]}),t.labels=[this.i18n("Clean")+" ("+this.calcPercentage(a.clean,r)+"%)",this.i18n("Working")+" ("+this.calcPercentage(a.working,r)+"%)",this.i18n("Warning")+" ("+this.calcPercentage(a.warning,r)+"%)",this.i18n("Unknown")+" ("+this.calcPercentage(a.unknown,r)+"%)"]},t.prototype.prepareObjects=function(t,e){var n=e.pg_info.object_stats.num_object_copies,a=n-e.pg_info.object_stats.num_objects_misplaced-e.pg_info.object_stats.num_objects_degraded-e.pg_info.object_stats.num_objects_unfound;t.labels=[this.i18n("Healthy")+" ("+this.calcPercentage(a,n)+"%)",this.i18n("Misplaced")+" ("+this.calcPercentage(e.pg_info.object_stats.num_objects_misplaced,n)+"%)",this.i18n("Degraded")+" ("+this.calcPercentage(e.pg_info.object_stats.num_objects_degraded,n)+"%)",this.i18n("Unfound")+" ("+this.calcPercentage(e.pg_info.object_stats.num_objects_unfound,n)+"%)"],t.dataset[0].data=[a,e.pg_info.object_stats.num_objects_misplaced,e.pg_info.object_stats.num_objects_degraded,e.pg_info.object_stats.num_objects_unfound],t.options.title.text=this.dimless.transform(e.pg_info.object_stats.num_objects)+" "+this.i18n("total")+" ("+this.dimless.transform(n)+" "+this.i18n("replicas")+")",t.options.maintainAspectRatio=window.innerWidth>=375},t.prototype.isClientReadWriteChartShowable=function(){return(this.healthData.client_perf.read_op_per_sec||0)+(this.healthData.client_perf.write_op_per_sec||0)>0},t.prototype.calcPercentage=function(t,e){return pt.isNumber(t)&&pt.isNumber(e)&&0!==e?Math.round(t/e*100):0},t}(),jt=o["\u0275crt"]({encapsulation:0,styles:[["cd-info-card[_ngcontent-%COMP%]{padding:0 .5vw}.cd-container-flex[_ngcontent-%COMP%]{margin:0;padding:0;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-pack:justify;justify-content:space-between}.cd-col-5[_ngcontent-%COMP%]{width:20%}@media (max-width:1599px){.cd-col-5[_ngcontent-%COMP%]{width:25%}}@media (max-width:calc(1200px - 1px)){.cd-col-5[_ngcontent-%COMP%]{width:33%}}@media (max-width:calc(992px - 1px)){.cd-col-5[_ngcontent-%COMP%]{width:50%}}@media (max-width:calc(768px - 1px)){cd-info-card[_ngcontent-%COMP%]{padding:0}.cd-col-5[_ngcontent-%COMP%]{width:100%}}.info-group[_ngcontent-%COMP%]{margin:0;padding:0} .pg-status-popover-wrapper{position:relative} .pg-status-popover-wrapper .popover{position:absolute;width:116%;max-height:20vh;min-width:unset!important;max-width:unset!important} .pg-status-popover-wrapper .popover .popover-body{max-width:100%;max-height:19vh;font-size:12px}.logs-link[_ngcontent-%COMP%]{text-align:center}.card-text-error[_ngcontent-%COMP%]{display:inline;color:red}.card-text-line-break[_ngcontent-%COMP%]:after{content:'\\A';white-space:pre}.popover-info[_ngcontent-%COMP%]:hover{cursor:pointer}"]],data:{}});function Ft(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function zt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,3,"span",[],null,null,null,null,null)),o["\u0275did"](2,278528,null,0,i.NgStyle,[o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngStyle:[0,"ngStyle"]},null),o["\u0275ppd"](3,1),(t()(),o["\u0275ted"](4,null,["",""])),(t()(),o["\u0275ted"](5,null,[": "," "]))],function(t,e){var n=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent.parent.parent.parent.parent.parent,0),e.context.$implicit.severity));t(e,2,0,n)},function(t,e){t(e,4,0,e.context.$implicit.type),t(e,5,0,e.context.$implicit.summary.message)})}function Gt(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Ft)),o["\u0275did"](1,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),o["\u0275eld"](2,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,zt)),o["\u0275did"](4,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,1,0,o["\u0275nov"](e.parent.parent.parent.parent,7)),t(e,4,0,n.healthData.health.checks)},null)}function Yt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),o["\u0275and"](0,[["healthChecks",2]],null,0,null,Gt)),(t()(),o["\u0275eld"](2,16777216,null,null,4,"div",[["class","info-card-content-clickable"],["container","body"],["containerClass","info-card-popover-cluster-status"],["placement","bottom"],["triggers",""]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).toggle()&&a),a},null,null)),o["\u0275did"](3,278528,null,0,i.NgStyle,[o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngStyle:[0,"ngStyle"]},null),o["\u0275ppd"](4,1),o["\u0275did"](5,212992,[["healthChecksTarget",4]],0,J.c,[J.a,o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"],container:[3,"container"],containerClass:[4,"containerClass"]},null),(t()(),o["\u0275ted"](6,null,[" "," "])),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){var n=e.component,a=o["\u0275unv"](e,3,0,t(e,4,0,o["\u0275nov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,3,0,a),t(e,5,0,o["\u0275nov"](e,1),"bottom","","body","info-card-popover-cluster-status")},function(t,e){t(e,6,0,e.component.healthData.health.status)})}function Vt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,3,"div",[],null,null,null,null,null)),o["\u0275did"](2,278528,null,0,i.NgStyle,[o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngStyle:[0,"ngStyle"]},null),o["\u0275ppd"](3,1),(t()(),o["\u0275ted"](4,null,[" "," "]))],function(t,e){var n=e.component,a=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,2,0,a)},function(t,e){t(e,4,0,e.component.healthData.health.status)})}function Ht(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"cd-info-card",[["cardTitle","Cluster Status"],["class","col-sm-6 col-md-4 col-lg-3"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Yt)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Vt)),o["\u0275did"](5,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Cluster Status",(null==n.healthData.health?null:null==n.healthData.health.checks?null:n.healthData.health.checks.length)>0?"content-highlight text-area-size-2":"content-highlight"),t(e,3,0,(null==n.healthData.health?null:null==n.healthData.health.checks?null:n.healthData.health.checks.length)>0),t(e,5,0,!(null!=n.healthData.health&&null!=n.healthData.health.checks&&n.healthData.health.checks.length))},null)}function Bt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Monitors"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-highlight"],["link","/monitor"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," "])),o["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"Monitors","/monitor","content-highlight")},function(t,e){var n=e.component,a=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent.parent.parent,1),n.healthData.mon_status));t(e,2,0,a)})}function Ut(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngClass:[0,"ngClass"]},null),(t()(),o["\u0275ted"](2,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.class)},function(t,e){t(e,2,0,e.context.$implicit.content)})}function Wt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardTitle","OSDs"],["class","col-sm-6 col-md-4 col-lg-3"],["link","/osd"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Ut)),o["\u0275did"](3,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,1,0,"OSDs","/osd",(5==e.context.ngIf.length?"text-area-size-3":"text-area-size-2")+" content-highlight"),t(e,3,0,e.context.ngIf)},null)}function Kt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[],[[8,"title",0]],null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngClass:[0,"ngClass"]},null),(t()(),o["\u0275ted"](2,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.class)},function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,2,0,e.context.$implicit.content)})}function $t(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"cd-info-card",[["cardTitle","Manager Daemons"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-highlight text-area-size-2"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),o["\u0275and"](16777216,null,0,2,null,Kt)),o["\u0275did"](3,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),o["\u0275ppd"](4,1)],function(t,e){var n=e.component;t(e,1,0,"Manager Daemons","content-highlight text-area-size-2");var a=o["\u0275unv"](e,3,0,t(e,4,0,o["\u0275nov"](e.parent.parent.parent,3),n.healthData.mgr_map));t(e,3,0,a)},null)}function Zt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Hosts"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-medium content-highlight"],["link","/hosts"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," total "]))],function(t,e){t(e,1,0,"Hosts","/hosts","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.hosts)})}function Xt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Object Gateways"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-medium content-highlight"],["link","/rgw/daemon"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," total "]))],function(t,e){t(e,1,0,"Object Gateways","/rgw/daemon","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.rgw)})}function Jt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[],[[8,"title",0]],null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngClass:[0,"ngClass"]},null),(t()(),o["\u0275ted"](2,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.class)},function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,2,0,e.context.$implicit.content)})}function Qt(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Metadata Servers"],["class","col-sm-6 col-md-4 col-lg-3"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Jt)),o["\u0275did"](3,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,1,0,"Metadata Servers",(e.context.ngIf.length>1?"text-area-size-2":"")+" content-highlight"),t(e,3,0,e.context.ngIf)},null)}function te(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardTitle","iSCSI Gateways"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-medium content-highlight"],["link","/block/iscsi"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," total "]))],function(t,e){t(e,1,0,"iSCSI Gateways","/block/iscsi","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.iscsi_daemons)})}function ee(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,19,"cd-info-group",[["class","row info-group"],["groupTitle","Status"]],null,null,null,ct,ut)),o["\u0275did"](1,49152,null,0,st,[],{groupTitle:[0,"groupTitle"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Ht)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Bt)),o["\u0275did"](5,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,2,null,Wt)),o["\u0275did"](7,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),o["\u0275ppd"](8,1),(t()(),o["\u0275and"](16777216,null,0,1,null,$t)),o["\u0275did"](10,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Zt)),o["\u0275did"](12,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Xt)),o["\u0275did"](14,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,2,null,Qt)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),o["\u0275ppd"](17,1),(t()(),o["\u0275and"](16777216,null,0,1,null,te)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Status"),t(e,3,0,null==n.healthData.health?null:n.healthData.health.status),t(e,5,0,n.healthData.mon_status);var a=o["\u0275unv"](e,7,0,t(e,8,0,o["\u0275nov"](e.parent.parent,2),n.healthData.osd_map));t(e,7,0,a),t(e,10,0,n.healthData.mgr_map),t(e,12,0,null!=n.healthData.hosts),t(e,14,0,e.parent.context.ngIf.rgw&&null!=n.healthData.rgw);var r=o["\u0275unv"](e,16,0,t(e,17,0,o["\u0275nov"](e.parent.parent,4),e.parent.context.ngIf.cephfs&&n.healthData.fs_map));t(e,16,0,r),t(e,19,0,e.parent.context.ngIf.iscsi&&null!=n.healthData.iscsi_daemons)},null)}function ne(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Client IOPS"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," "])),o["\u0275ppd"](3,2)],function(t,e){t(e,1,0,"Client IOPS","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent.parent.parent,5),n.healthData.client_perf.read_op_per_sec+n.healthData.client_perf.write_op_per_sec,1));t(e,2,0,a)})}function ae(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Client Throughput"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," "])),o["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"Client Throughput","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent.parent.parent,6),n.healthData.client_perf.read_bytes_sec+n.healthData.client_perf.write_bytes_sec))+"/s";t(e,2,0,a)})}function re(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareReadWriteRatio(n[0],n[1])&&a),a},vt,yt)),o["\u0275did"](1,638976,null,0,bt,[gt.a,mt.a],{data:[0,"data"]},{prepareFn:"prepareFn"})],function(t,e){t(e,1,0,e.component.healthData)},null)}function ie(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[" N/A "]))],null,null)}function oe(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Client Read/Write"],["class","cd-col-5"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,re)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,ie)),o["\u0275did"](5,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Client Read/Write","card-medium",n.isClientReadWriteChartShowable()?"content-chart":"content-medium content-highlight"),t(e,3,0,n.isClientReadWriteChartShowable()),t(e,5,0,!n.isClientReadWriteChartShowable())},null)}function se(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Recovery Throughput"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," "])),o["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"Recovery Throughput","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent.parent.parent,6),n.healthData.client_perf.recovering_bytes_per_sec))+"/s";t(e,2,0,a)})}function ue(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Scrub"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," "]))],function(t,e){t(e,1,0,"Scrub","card-medium","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.scrub_status)})}function ce(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,12,"cd-info-group",[["class","row info-group"],["groupTitle","Performance"]],null,null,null,ct,ut)),o["\u0275did"](1,49152,null,0,st,[],{groupTitle:[0,"groupTitle"]},null),(t()(),o["\u0275eld"](2,0,null,0,10,"div",[["class","cd-container-flex"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,ne)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ae)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,oe)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,se)),o["\u0275did"](10,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ue)),o["\u0275did"](12,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Performance"),t(e,4,0,n.healthData.client_perf),t(e,6,0,n.healthData.client_perf),t(e,8,0,n.healthData.client_perf),t(e,10,0,n.healthData.client_perf),t(e,12,0,n.healthData.scrub_status)},null)}function le(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Pools"],["class","cd-col-5"],["contentClass","content-medium content-highlight"],["link","/pool"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],cardClass:[2,"cardClass"],contentClass:[3,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," "]))],function(t,e){t(e,1,0,"Pools","/pool","card-medium","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.pools.length)})}function de(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Raw Capacity"],["class","cd-col-5"],["contentClass","content-chart"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275eld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareRawUsage(n[0],n[1])&&a),a},vt,yt)),o["\u0275did"](3,638976,null,0,bt,[gt.a,mt.a],{data:[0,"data"],config:[1,"config"],showLabelAsTooltip:[2,"showLabelAsTooltip"]},{prepareFn:"prepareFn"})],function(t,e){var n=e.component;t(e,1,0,"Raw Capacity","card-medium","content-chart"),t(e,3,0,n.healthData,n.rawCapacityChartConfig,!0)},null)}function fe(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Objects"],["class","cd-col-5"],["contentClass","content-chart"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275eld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareObjects(n[0],n[1])&&a),a},vt,yt)),o["\u0275did"](3,638976,null,0,bt,[gt.a,mt.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],function(t,e){var n=e.component;t(e,1,0,"Objects","card-medium","content-chart"),t(e,3,0,n.healthData,n.objectsChartConfig)},null)}function pe(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","PGs per OSD"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275ted"](2,0,[" "," "])),o["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"PGs per OSD","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent.parent.parent,7),n.healthData.pg_info.pgs_per_osd));t(e,2,0,a)})}function he(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function ge(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" ",": "," "]))],null,function(t,e){t(e,1,0,e.context.$implicit.key,e.context.$implicit.value)})}function me(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,he)),o["\u0275did"](1,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),o["\u0275eld"](2,0,null,null,3,"ul",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,2,null,ge)),o["\u0275did"](4,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),o["\u0275pid"](0,i.KeyValuePipe,[o.KeyValueDiffers])],function(t,e){var n=e.component;t(e,1,0,o["\u0275nov"](e.parent.parent.parent,7)),t(e,4,0,o["\u0275unv"](e,4,0,o["\u0275nov"](e,5).transform(n.healthData.pg_info.statuses)))},null)}function be(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,7,"cd-info-card",[["cardClass","card-medium"],["cardTitle","PG Status"],["class","cd-col-5"],["contentClass","content-chart"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).toggle()&&a),a},ot,at)),o["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),o["\u0275and"](0,[["pgStatus",2]],0,0,null,me)),(t()(),o["\u0275eld"](3,0,null,0,4,"div",[["class","pg-status-popover-wrapper"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,16777216,null,null,3,"div",[["placement","bottom"],["triggers",""]],null,null,null,null,null)),o["\u0275did"](5,212992,[["pgStatusTarget",4]],0,J.c,[J.a,o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"]},null),(t()(),o["\u0275eld"](6,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.preparePgStatus(n[0],n[1])&&a),a},vt,yt)),o["\u0275did"](7,638976,null,0,bt,[gt.a,mt.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],function(t,e){var n=e.component;t(e,1,0,"PG Status","card-medium","content-chart"),t(e,5,0,o["\u0275nov"](e,2),"bottom",""),t(e,7,0,n.healthData,n.pgStatusChartConfig)},null)}function ye(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,12,"cd-info-group",[["class","row info-group"],["groupTitle","Capacity"]],null,null,null,ct,ut)),o["\u0275did"](1,49152,null,0,st,[],{groupTitle:[0,"groupTitle"]},null),(t()(),o["\u0275eld"](2,0,null,0,10,"div",[["class","cd-container-flex"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,le)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,de)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,fe)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,pe)),o["\u0275did"](10,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,be)),o["\u0275did"](12,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Capacity"),t(e,4,0,n.healthData.pools),t(e,6,0,n.healthData.df),t(e,8,0,null!=(null==n.healthData.pg_info?null:null==n.healthData.pg_info.object_stats?null:n.healthData.pg_info.object_stats.num_objects)),t(e,10,0,n.healthData.pg_info),t(e,12,0,n.healthData.pg_info)},null)}function ve(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,6,"p",[["class","logs-link"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-info-circle"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[" See "])),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Logs"])),(t()(),o["\u0275ted"](-1,null,[" for more details."]))],function(t,e){t(e,5,0,"/logs")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function xe(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,ve)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.component.permissions.log.read)},null)}function _e(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,7,"div",[["class","container-fluid"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,ee)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ce)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ye)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,[["logsLink",2]],null,0,null,xe))],function(t,e){var n=e.component;t(e,2,0,(null==n.healthData.health?null:n.healthData.health.status)||n.healthData.mon_status||n.healthData.osd_map||n.healthData.mgr_map||null!=n.healthData.hosts||null!=n.healthData.rgw||n.healthData.fs_map||null!=n.healthData.iscsi_daemons),t(e,4,0,n.healthData.client_perf||n.healthData.scrub_status),t(e,6,0,n.healthData.pools||n.healthData.df||n.healthData.pg_info)},null)}function Te(t){return o["\u0275vid"](0,[o["\u0275pid"](0,xt,[]),o["\u0275pid"](0,_t,[Tt.a]),o["\u0275pid"](0,wt,[Tt.a]),o["\u0275pid"](0,St,[Tt.a]),o["\u0275pid"](0,Ot,[Tt.a]),o["\u0275pid"](0,It,[]),o["\u0275pid"](0,gt.a,[Ct.a]),o["\u0275pid"](0,mt.a,[Ct.a]),(t()(),o["\u0275and"](16777216,null,null,2,null,_e)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),o["\u0275pid"](131072,i.AsyncPipe,[o.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,9,0,o["\u0275unv"](e,9,0,o["\u0275nov"](e,10).transform(n.healthData&&n.enabledFeature$)))},null)}var we=n("gIcY"),Se=function(){function t(t){this.refreshIntervalService=t,this.intervalList={"5 s":5e3,"10 s":1e4,"15 s":15e3,"30 s":3e4,"1 min":6e4,"3 min":18e4,"5 min":3e5},this.intervalKeys=Object.keys(this.intervalList)}return t.prototype.ngOnInit=function(){this.selectedInterval=this.refreshIntervalService.getRefreshInterval()||5e3},t.prototype.changeRefreshInterval=function(t){this.refreshIntervalService.setRefreshInterval(t)},t}(),Oe=o["\u0275crt"]({encapsulation:0,styles:[[".refresh-selector[_ngcontent-%COMP%]{padding:0;float:right;margin-right:60px}.refresh-selector[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{padding:0;box-sizing:border-box}.refresh-selector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{padding:10px 10px 0 0;text-align:right;margin:0}@media (min-width:500px) and (max-width:767px){.refresh-selector[_ngcontent-%COMP%]{width:24vw}}@media (min-width:1200px){.refresh-selector[_ngcontent-%COMP%]{width:12vw}}@media (min-width:1400px){.refresh-selector[_ngcontent-%COMP%]{width:10vw}}"]],data:{}});function Ie(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){var n=e.component;t(e,1,0,n.intervalList[e.context.$implicit]),t(e,2,0,n.intervalList[e.context.$implicit])},function(t,e){t(e,3,0,e.context.$implicit)})}function Ce(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,12,"div",[["class","col-xs-5 col-sm-2 refresh-selector"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,2,"label",[["class","control-label col-xs-5 col-sm-5"],["for","refreshInterval"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Refresh"])),(t()(),o["\u0275eld"](5,0,null,null,8,"div",[["class","col-xs-7 col-sm-7"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,7,"select",[["class","form-control"],["id","refreshInterval"],["name","refreshInterval"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,7).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,7).onTouched()&&a),"change"===e&&(a=!1!==r.changeRefreshInterval(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedInterval=n)&&a),a},null,null)),o["\u0275did"](7,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](9,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](11,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ie)),o["\u0275did"](13,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,9,0,"refreshInterval",n.selectedInterval),t(e,13,0,n.intervalKeys)},function(t,e){t(e,6,0,o["\u0275nov"](e,11).ngClassUntouched,o["\u0275nov"](e,11).ngClassTouched,o["\u0275nov"](e,11).ngClassPristine,o["\u0275nov"](e,11).ngClassDirty,o["\u0275nov"](e,11).ngClassValid,o["\u0275nov"](e,11).ngClassInvalid,o["\u0275nov"](e,11).ngClassPending)})}var ke=function(){function t(){this.hasGrafana=!1}return t.prototype.ngOnInit=function(){},t}(),Ne=o["\u0275crt"]({encapsulation:0,styles:[["div[_ngcontent-%COMP%]{padding-top:20px}"]],data:{}});function Re(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](1,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](2,0,null,0,3,"tab",[["heading","Health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](3,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](4,0,null,null,1,"cd-health",[],null,null,null,Te,jt)),o["\u0275did"](5,245760,null,0,qt,[At,Tt.a,d.a,Mt.a,Et.a,Pt,gt.a,mt.a],null,null),(t()(),o["\u0275eld"](6,0,null,0,1,"tab",[["heading","Statistics"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](7,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null)],function(t,e){t(e,3,0,"Health"),t(e,5,0),t(e,7,0,"Statistics")},function(t,e){t(e,0,0,o["\u0275nov"](e,1).clazz),t(e,2,0,o["\u0275nov"](e,3).id,o["\u0275nov"](e,3).active,o["\u0275nov"](e,3).addClass),t(e,6,0,o["\u0275nov"](e,7).id,o["\u0275nov"](e,7).active,o["\u0275nov"](e,7).addClass)})}function Ae(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-health",[],null,null,null,Te,jt)),o["\u0275did"](1,245760,null,0,qt,[At,Tt.a,d.a,Mt.a,Et.a,Pt,gt.a,mt.a],null,null)],function(t,e){t(e,1,0)},null)}function Ee(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"cd-refresh-selector",[],null,null,null,Ce,Oe)),o["\u0275did"](2,114688,null,0,Se,[Pt],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Re)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ae)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.hasGrafana),t(e,6,0,!n.hasGrafana)},null)}function De(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-dashboard",[],null,null,null,Ee,Ne)),o["\u0275did"](1,114688,null,0,ke,[],null,null)],function(t,e){t(e,1,0)},null)}var Le=o["\u0275ccf"]("cd-dashboard",ke,De,{},{},[]),Pe=n("a278"),Me=n("insk"),qe=n("mSOc"),je=n("ZYjt"),Fe=n("20UP"),ze=n("+0ag"),Ge=n("25BL"),Ye=n("uIqm"),Ve=n("vCyI"),He=function(){function t(t){this.authStorageService=t,this.grafanaPermission=this.authStorageService.getPermissions().grafana}return t.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.host=this.selection.first())},t}(),Be=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Ue(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](1,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](2,0,null,0,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](3,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](4,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","rtOg0AiWz"]],null,null,null,Pe.b,Pe.a)),o["\u0275did"](5,638976,null,0,Me.a,[qe.a,je.DomSanitizer,Fe.a,ze.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){var n=e.component;t(e,3,0,"Performance Details"),t(e,5,0,"host-details?var-ceph_hosts="+n.host.hostname,"three","rtOg0AiWz")},function(t,e){t(e,0,0,o["\u0275nov"](e,1).clazz),t(e,2,0,o["\u0275nov"](e,3).id,o["\u0275nov"](e,3).active,o["\u0275nov"](e,3).addClass)})}function We(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Ue)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.selection.hasSingleSelection&&n.grafanaPermission.read)},null)}var Ke=function(){function t(t){this.http=t}return t.prototype.list=function(){return this.http.get("api/host").toPromise().then(function(t){return t})},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),$e=n("85J/"),Ze=function(){function t(t,e,n,a){this.authStorageService=t,this.hostService=e,this.cephShortVersionPipe=n,this.i18n=a,this.columns=[],this.hosts=[],this.isLoadingHosts=!1,this.cdParams={fromLink:"/hosts"},this.selection=new Ve.a,this.permissions=this.authStorageService.getPermissions()}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1},{name:this.i18n("Services"),prop:"services",flexGrow:3,cellTemplate:this.servicesTpl},{name:this.i18n("Version"),prop:"ceph_version",flexGrow:1,pipe:this.cephShortVersionPipe}]},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.getHosts=function(t){var e=this;if(!this.isLoadingHosts){var n={mds:"cephfs",mon:"monitor",osd:"osd",rgw:"rgw","rbd-mirror":"rbdMirroring",mgr:"manager","tcmu-runner":"iscsi"};this.isLoadingHosts=!0,this.hostService.list().then(function(t){t.map(function(t){return t.services.map(function(t){t.cdLink="/perf_counters/"+t.type+"/"+encodeURIComponent(t.id);var a=e.permissions[n[t.type]];return t.canRead=!!a&&a.read,t}),t}),e.hosts=t,e.isLoadingHosts=!1}).catch(function(){e.isLoadingHosts=!1,t.error()})}},t}(),Xe=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Je(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](1,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),o["\u0275pad"](2,1),(t()(),o["\u0275ted"](3,null,["","."," "]))],function(t,e){var n=e.component.cdParams,a=t(e,2,0,e.parent.context.$implicit.cdLink);t(e,1,0,n,a)},function(t,e){t(e,0,0,o["\u0275nov"](e,1).target,o["\u0275nov"](e,1).href),t(e,3,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)})}function Qe(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" ","."," "]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)})}function tn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"span",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Je)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Qe)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275ted"](5,null,[" "," "]))],function(t,e){t(e,2,0,e.context.$implicit.canRead),t(e,4,0,!e.context.$implicit.canRead)},function(t,e){t(e,5,0,e.context.last?"":", ")})}function en(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,tn)),o["\u0275did"](1,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.value)},null)}function nn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](1,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","y0KGL0iZz"]],null,null,null,Pe.b,Pe.a)),o["\u0275did"](3,638976,null,0,Me.a,[qe.a,je.DomSanitizer,Fe.a,ze.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"host-overview?","two","y0KGL0iZz")},function(t,e){t(e,0,0,o["\u0275nov"](e,1).id,o["\u0275nov"](e,1).active,o["\u0275nov"](e,1).addClass)})}function an(t){return o["\u0275vid"](0,[o["\u0275qud"](402653184,1,{servicesTpl:0}),(t()(),o["\u0275eld"](1,0,null,null,10,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](2,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](3,0,null,0,6,"tab",[["heading","Hosts List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](4,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](5,0,null,null,4,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getHosts(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ge.b,Ge.a)),o["\u0275did"](6,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),o["\u0275and"](0,[[1,2],["servicesTpl",2]],null,0,null,en)),(t()(),o["\u0275eld"](8,0,null,2,1,"cd-host-details",[["cdTableDetail",""]],null,null,null,We,Be)),o["\u0275did"](9,573440,null,0,He,[d.a],{selection:[0,"selection"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,nn)),o["\u0275did"](11,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,4,0,"Hosts List"),t(e,6,0,n.hosts,n.columns,"flex","single"),t(e,9,0,n.selection),t(e,11,0,n.permissions.grafana.read)},function(t,e){t(e,1,0,o["\u0275nov"](e,2).clazz),t(e,3,0,o["\u0275nov"](e,4).id,o["\u0275nov"](e,4).active,o["\u0275nov"](e,4).addClass)})}function rn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-hosts",[],null,null,null,an,Xe)),o["\u0275did"](1,114688,null,0,Ze,[d.a,Ke,$e.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var on=o["\u0275ccf"]("cd-hosts",Ze,rn,{},{},[]),sn=function(){function t(t){this.http=t}return t.prototype.getMonitor=function(){return this.http.get("api/monitor")},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),un=n("x38r"),cn=function(){function t(t,e){this.monitorService=t,this.i18n=e,this.inQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:un.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")},{prop:"cdOpenSessions",name:this.i18n("Open Sessions"),cellTransformation:un.a.sparkline,comparator:function(t,e){var n=pt.last(t),a=pt.last(e);return n&&a&&n!==a?n>a?1:-1:0}}],data:[]},this.notInQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:un.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")}],data:[]}}return t.prototype.refresh=function(){var t=this;this.monitorService.getMonitor().subscribe(function(e){e.in_quorum.map(function(t){return t.cdOpenSessions=t.stats.num_sessions.map(function(t){return t[1]}),t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t}),e.out_quorum.map(function(t){return t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t}),t.inQuorum.data=e.in_quorum.slice(),t.notInQuorum.data=e.out_quorum.slice(),t.mon_status=e.mon_status})},t}(),ln=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function dn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,36,"table",[["class","table table-striped"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,35,"tbody",[],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Cluster ID"])),(t()(),o["\u0275eld"](5,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](6,null,["",""])),(t()(),o["\u0275eld"](7,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["monmap modified"])),(t()(),o["\u0275eld"](10,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](11,null,["",""])),(t()(),o["\u0275eld"](12,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["monmap epoch"])),(t()(),o["\u0275eld"](15,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](16,null,["",""])),(t()(),o["\u0275eld"](17,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](18,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["quorum con"])),(t()(),o["\u0275eld"](20,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](21,null,["",""])),(t()(),o["\u0275eld"](22,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](23,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["quorum mon"])),(t()(),o["\u0275eld"](25,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](26,null,["",""])),(t()(),o["\u0275eld"](27,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](28,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["required con"])),(t()(),o["\u0275eld"](30,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](31,null,["",""])),(t()(),o["\u0275eld"](32,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](33,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["required mon"])),(t()(),o["\u0275eld"](35,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](36,null,["",""]))],null,function(t,e){var n=e.component;t(e,6,0,n.mon_status.monmap.fsid),t(e,11,0,n.mon_status.monmap.modified),t(e,16,0,n.mon_status.monmap.epoch),t(e,21,0,n.mon_status.features.quorum_con),t(e,26,0,n.mon_status.features.quorum_mon),t(e,31,0,n.mon_status.features.required_con),t(e,36,0,n.mon_status.features.required_mon)})}function fn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,15,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,5,"div",[["class","col-md-4"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,4,"fieldset",[],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Status"])),(t()(),o["\u0275and"](16777216,null,null,1,null,dn)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](7,0,null,null,8,"div",[["class","col-md-8"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,1,"legend",[["class","in-quorum"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["In Quorum"])),(t()(),o["\u0275eld"](10,0,null,null,1,"cd-table",[],null,null,null,Ge.b,Ge.a)),o["\u0275did"](11,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(t()(),o["\u0275eld"](12,0,null,null,1,"legend",[["class","in-quorum"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Not In Quorum"])),(t()(),o["\u0275eld"](14,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a},Ge.b,Ge.a)),o["\u0275did"](15,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"})],function(t,e){var n=e.component;t(e,6,0,n.mon_status),t(e,11,0,n.inQuorum.data,n.inQuorum.columns),t(e,15,0,n.notInQuorum.data,n.notInQuorum.columns)},null)}function pn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-monitor",[],null,null,null,fn,ln)),o["\u0275did"](1,49152,null,0,cn,[sn,Tt.a],null,null)],null,null)}var hn=o["\u0275ccf"]("cd-monitor",cn,pn,{},{},[]),gn=n("xtZt"),mn=n("xSw7"),bn=n("GgAd"),yn=n("xbqr"),vn=n("9GXa"),xn=n("NUGo"),_n=n("S7zO"),Tn=n("sLuX"),wn=n("FSuO"),Sn=n("a0VL"),On=n("j8L6"),In=n("b5OY"),Cn=n("pxLl"),kn=function(){function t(){this.last={}}return t.prototype.ngOnChanges=function(){this.render()},t.prototype.hexdigits=function(t){var e=Math.floor(255*t).toString(16);return 1===e.length?"0"+e:e},t.prototype.hexcolor=function(t,e,n){return"#"+this.hexdigits(t)+this.hexdigits(e)+this.hexdigits(n)},t.prototype.render=function(){var t=this;if(this.histogram){var e=0;pt.each(this.histogram.values,function(n,a){pt.each(n,function(n,r){e=Math.max(e,t.last&&t.last[a]&&t.last[a][r]?n-t.last[a][r]:n)})}),this.valuesStyle=this.histogram.values.map(function(n,a){return n.map(function(n,r){var i=e?(t.last&&t.last[a]&&t.last[a][r]?n-t.last[a][r]:n)/e:0;return{backgroundColor:t.hexcolor(1-i,i,0)}})}),this.last=this.histogram.values}},t}(),Nn=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Rn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[["style","width: 10px; height: 10px;"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgStyle,[o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngStyle:[0,"ngStyle"]},null)],function(t,e){t(e,1,0,e.context.$implicit)},null)}function An(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"tr",[["style","height: 10px;"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Rn)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.context.$implicit)},null)}function En(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"table",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,An)),o["\u0275did"](3,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,3,0,e.component.valuesStyle)},null)}var Dn=function(){function t(t,e){this.http=t,this.i18n=e,this.path="api/osd",this.osdRecvSpeedModalPriorities={KNOWN_PRIORITIES:[{name:null,text:this.i18n("-- Select the priority --"),values:{osd_max_backfills:null,osd_recovery_max_active:null,osd_recovery_max_single_start:null,osd_recovery_sleep:null}},{name:"low",text:this.i18n("Low"),values:{osd_max_backfills:1,osd_recovery_max_active:1,osd_recovery_max_single_start:1,osd_recovery_sleep:.5}},{name:"default",text:this.i18n("Default"),values:{osd_max_backfills:1,osd_recovery_max_active:3,osd_recovery_max_single_start:1,osd_recovery_sleep:0}},{name:"high",text:this.i18n("High"),values:{osd_max_backfills:4,osd_recovery_max_active:4,osd_recovery_max_single_start:4,osd_recovery_sleep:0}}]}}return t.prototype.getList=function(){return this.http.get(""+this.path)},t.prototype.getDetails=function(t){return this.http.get(this.path+"/"+t)},t.prototype.scrub=function(t,e){return this.http.post(this.path+"/"+t+"/scrub?deep="+e,null)},t.prototype.getFlags=function(){return this.http.get(this.path+"/flags")},t.prototype.updateFlags=function(t){return this.http.put(this.path+"/flags",{flags:t})},t.prototype.markOut=function(t){return this.http.post(this.path+"/"+t+"/mark_out",null)},t.prototype.markIn=function(t){return this.http.post(this.path+"/"+t+"/mark_in",null)},t.prototype.markDown=function(t){return this.http.post(this.path+"/"+t+"/mark_down",null)},t.prototype.reweight=function(t,e){return this.http.post(this.path+"/"+t+"/reweight",{weight:e})},t.prototype.markLost=function(t){return this.http.post(this.path+"/"+t+"/mark_lost",null)},t.prototype.purge=function(t){return this.http.post(this.path+"/"+t+"/purge",null)},t.prototype.destroy=function(t){return this.http.post(this.path+"/"+t+"/destroy",null)},t.prototype.safeToDestroy=function(t){return this.http.get(this.path+"/"+t+"/safe_to_destroy")},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c),o.inject(Tt.a))},token:t,providedIn:Rt.a}),t}(),Ln=function(){function t(t,e){this.osdService=t,this.authStorageService=e,this.grafanaPermission=this.authStorageService.getPermissions().grafana}return t.prototype.ngOnChanges=function(){this.osd={loaded:!1},this.selection.hasSelection&&(this.osd=this.selection.first(),this.refresh())},t.prototype.refresh=function(){var t=this;this.osdService.getDetails(this.osd.id).subscribe(function(e){t.osd.details=e,t.osd.histogram_failed="",pt.isObject(e.histogram)||(t.osd.histogram_failed=e.histogram,t.osd.details.histogram=void 0),t.osd.loaded=!0})},t}(),Pn=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Mn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-table-key-value",[],null,null,null,Tn.b,Tn.a)),o["\u0275did"](1,638976,null,0,wn.a,[Sn.a],{data:[0,"data"]},null)],function(t,e){t(e,1,0,e.component.osd.details.osd_map)},null)}function qn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-table-key-value",[],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a},Tn.b,Tn.a)),o["\u0275did"](1,638976,null,0,wn.a,[Sn.a],{data:[0,"data"]},{fetchData:"fetchData"})],function(t,e){t(e,1,0,e.component.osd.details.osd_metadata)},null)}function jn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-warning-panel",[],null,null,null,yn.b,yn.a)),o["\u0275did"](1,49152,null,0,vn.a,[],null,null),(t()(),o["\u0275ted"](-1,0,["Metadata not available"]))],null,null)}function Fn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-table-performance-counter",[["serviceType","osd"]],null,null,null,On.b,On.a)),o["\u0275did"](1,114688,null,0,In.a,[Cn.a,Tt.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null)],function(t,e){t(e,1,0,"osd",e.component.osd.id)},null)}function zn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-warning-panel",[],null,null,null,yn.b,yn.a)),o["\u0275did"](1,49152,null,0,vn.a,[],null,null),(t()(),o["\u0275ted"](2,0,["Histogram not available: ",""]))],null,function(t,e){t(e,2,0,e.component.osd.histogram_failed)})}function Gn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Writes"])),(t()(),o["\u0275eld"](4,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,En,Nn)),o["\u0275did"](5,573440,null,0,kn,[],{histogram:[0,"histogram"]},null),(t()(),o["\u0275eld"](6,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Reads"])),(t()(),o["\u0275eld"](9,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,En,Nn)),o["\u0275did"](10,573440,null,0,kn,[],{histogram:[0,"histogram"]},null)],function(t,e){var n=e.component;t(e,5,0,n.osd.details.histogram.osd.op_w_latency_in_bytes_histogram),t(e,10,0,n.osd.details.histogram.osd.op_r_latency_out_bytes_histogram)},null)}function Yn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](1,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","GrafanaStyles.two"],["uid","CrAHE0iZz"]],null,null,null,Pe.b,Pe.a)),o["\u0275did"](3,638976,null,0,Me.a,[qe.a,je.DomSanitizer,Fe.a,ze.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"osd-device-details?var-osd=osd."+n.osd.id,"GrafanaStyles.two","CrAHE0iZz")},function(t,e){t(e,0,0,o["\u0275nov"](e,1).id,o["\u0275nov"](e,1).active,o["\u0275nov"](e,1).addClass)})}function Vn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,22,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](1,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](2,0,null,0,3,"tab",[["heading","Attributes (OSD map)"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](3,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Mn)),o["\u0275did"](5,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](6,0,null,0,4,"tab",[["heading","Metadata"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](7,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,qn)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),o["\u0275and"](0,[["noMetaData",2]],null,0,null,jn)),(t()(),o["\u0275eld"](11,0,null,0,3,"tab",[["heading","Performance counter"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](12,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Fn)),o["\u0275did"](14,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](15,0,null,0,5,"tab",[["heading","Histogram"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](16,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,zn)),o["\u0275did"](18,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Gn)),o["\u0275did"](20,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,Yn)),o["\u0275did"](22,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,"Attributes (OSD map)"),t(e,5,0,n.osd.loaded),t(e,7,0,"Metadata"),t(e,9,0,n.osd.loaded&&n.osd.details.osd_metadata,o["\u0275nov"](e,10)),t(e,12,0,"Performance counter"),t(e,14,0,n.osd.loaded),t(e,16,0,"Histogram"),t(e,18,0,n.osd.loaded&&n.osd.histogram_failed),t(e,20,0,n.osd.loaded&&n.osd.details.histogram),t(e,22,0,n.grafanaPermission.read)},function(t,e){t(e,0,0,o["\u0275nov"](e,1).clazz),t(e,2,0,o["\u0275nov"](e,3).id,o["\u0275nov"](e,3).active,o["\u0275nov"](e,3).addClass),t(e,6,0,o["\u0275nov"](e,7).id,o["\u0275nov"](e,7).active,o["\u0275nov"](e,7).addClass),t(e,11,0,o["\u0275nov"](e,12).id,o["\u0275nov"](e,12).active,o["\u0275nov"](e,12).addClass),t(e,15,0,o["\u0275nov"](e,16).id,o["\u0275nov"](e,16).active,o["\u0275nov"](e,16).addClass)})}function Hn(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Vn)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.selection.hasSingleSelection)},null)}function Bn(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-osd-details",[],null,null,null,Hn,Pn)),o["\u0275did"](1,573440,null,0,Ln,[Dn,d.a],null,null)],null,null)}var Un=o["\u0275ccf"]("cd-osd-details",Ln,Bn,{selection:"selection"},{},[]),Wn=n("OLbh"),Kn=n("0+/T"),$n=n("sne2"),Zn=n("mtw6"),Xn=n("9nlD"),Jn=function(){function t(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.osdService=n,this.notificationService=a,this.i18n=r,this.osdFlagsForm=new we.k({}),this.allFlags={noin:{code:"noin",name:this.i18n("No In"),value:!1,description:this.i18n("OSDs that were previously marked out will not be marked back in when they start")},noout:{code:"noout",name:this.i18n("No Out"),value:!1,description:this.i18n("OSDs will not automatically be marked out after the configured interval")},noup:{code:"noup",name:this.i18n("No Up"),value:!1,description:this.i18n("OSDs are not allowed to start")},nodown:{code:"nodown",name:this.i18n("No Down"),value:!1,description:this.i18n("OSD failure reports are being ignored, such that the monitors will not mark OSDs down")},pause:{code:"pause",name:this.i18n("Pause"),value:!1,description:this.i18n("Pauses reads and writes")},noscrub:{code:"noscrub",name:this.i18n("No Scrub"),value:!1,description:this.i18n("Scrubbing is disabled")},"nodeep-scrub":{code:"nodeep-scrub",name:this.i18n("No Deep Scrub"),value:!1,description:this.i18n("Deep Scrubbing is disabled")},nobackfill:{code:"nobackfill",name:this.i18n("No Backfill"),value:!1,description:this.i18n("Backfilling of PGs is suspended")},norebalance:{code:"norebalance",name:this.i18n("No Rebalance"),value:!1,description:this.i18n("OSD will choose not to backfill unless PG is also degraded")},norecover:{code:"norecover",name:this.i18n("No Recover"),value:!1,description:this.i18n("Recovery of PGs is suspended")},sortbitwise:{code:"sortbitwise",name:this.i18n("Bitwise Sort"),value:!1,description:this.i18n("Use bitwise sort"),disabled:!0},purged_snapdirs:{code:"purged_snapdirs",name:this.i18n("Purged Snapdirs"),value:!1,description:this.i18n("OSDs have converted snapsets"),disabled:!0},recovery_deletes:{code:"recovery_deletes",name:this.i18n("Recovery Deletes"),value:!1,description:this.i18n("Deletes performed during recovery instead of peering"),disabled:!0},pglog_hardlimit:{code:"pglog_hardlimit",name:this.i18n("PG Log Hard Limit"),value:!1,description:this.i18n("Puts a hard limit on pg log length"),disabled:!0}},this.unknownFlags=[],this.permissions=this.authStorageService.getPermissions()}return t.prototype.ngOnInit=function(){var t=this;this.osdService.getFlags().subscribe(function(e){e.forEach(function(e){t.allFlags[e]?t.allFlags[e].value=!0:t.unknownFlags.push(e)}),t.flags=pt.toArray(t.allFlags)})},t.prototype.submitAction=function(){var t=this,e=this.flags.filter(function(t){return t.value}).map(function(t){return t.code}).concat(this.unknownFlags);this.osdService.updateFlags(e).subscribe(function(){t.notificationService.show(Zn.a.success,t.i18n("Updated OSD Flags")),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),Qn=n("VNr4"),ta=n("MuvH"),ea=n("QFaf"),na=n("1Ni5"),aa=function(){function t(){}return t.getType=function(t){var e=pt.find(this.knownTypes,function(e){return e.name===t});if(void 0!==e)return e;throw new Error('Found unknown type "'+t+'" for config option.')},t.getTypeValidators=function(e){var n=t.getType(e.type);if("bool"!==n.name&&"str"!==n.name){var a={validators:[],patternHelpText:n.patternHelpText};return n.isNumberType?(e.max&&""!==e.max&&(a.max=e.max,a.validators.push(we.A.max(e.max))),e.min&&""!==e.min?(a.min=e.min,a.validators.push(we.A.min(e.min))):"defaultMin"in n&&(a.min=n.defaultMin,a.validators.push(we.A.min(n.defaultMin))),a.validators.push("float"===e.type?na.a.decimalNumber():na.a.number(n.allowsNegative))):"addr"===e.type?a.validators=[na.a.ip()]:"uuid"===e.type&&(a.validators=[na.a.uuid()]),a}},t.getTypeStep=function(t,e){if(["uint","int","size","secs"].includes(t))return 1;if("float"===t){if(null!==e&&-1!==e.toString().indexOf(".")){var n=e.toString().split(".");return Math.pow(10,-n[1].length)}return.1}},t.knownTypes=[{name:"uint",inputType:"number",humanReadable:"Unsigned integer value",defaultMin:0,patternHelpText:"The entered value needs to be an unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"int",inputType:"number",humanReadable:"Integer value",patternHelpText:"The entered value needs to be a number.",isNumberType:!0,allowsNegative:!0},{name:"size",inputType:"number",humanReadable:"Unsigned integer value (>=16bit)",defaultMin:0,patternHelpText:"The entered value needs to be a unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"secs",inputType:"number",humanReadable:"Number of seconds",defaultMin:1,patternHelpText:"The entered value needs to be a number >= 1.",isNumberType:!0,allowsNegative:!1},{name:"float",inputType:"number",humanReadable:"Double value",patternHelpText:"The entered value needs to be a number or decimal.",isNumberType:!0,allowsNegative:!0},{name:"str",inputType:"text",humanReadable:"Text",isNumberType:!1},{name:"addr",inputType:"text",humanReadable:"IPv4 or IPv6 address",patternHelpText:"The entered value needs to be a valid IP address.",isNumberType:!1},{name:"uuid",inputType:"text",humanReadable:"UUID",patternHelpText:"The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8",isNumberType:!1},{name:"bool",inputType:"checkbox",humanReadable:"Boolean value",isNumberType:!1}],t}(),ra=function(){function t(t){this.configService=t,this.optionNames=[],this.optionsForm=new ea.a({}),this.optionsFormDir=new we.t([],[]),this.optionsFormGroupName="",this.optionsFormShowReset=!0,this.options=[],this.optionsFormGroup=new ea.a({})}return t.optionNameToText=function(t){var e=["mon","mgr","osd","mds","client"];return t.split("_").filter(function(t,n){return 0!==n||!e.includes(t)}).map(function(t){return t.charAt(0).toUpperCase()+t.substring(1)}).join(" ")},t.prototype.ngOnInit=function(){this.createForm(),this.loadStoredData()},t.prototype.createForm=function(){var t=this;this.optionsForm.addControl(this.optionsFormGroupName,this.optionsFormGroup),this.optionNames.forEach(function(e){t.optionsFormGroup.addControl(e,new we.i(null))})},t.prototype.getStep=function(t,e){return aa.getTypeStep(t,e)},t.prototype.loadStoredData=function(){var e=this;this.configService.filter(this.optionNames).subscribe(function(n){e.options=n.map(function(n){var a=e.optionsForm.get(n.name),r=aa.getTypeValidators(n);return n.additionalTypeInfo=aa.getType(n.type),n.text=t.optionNameToText(n.name),n.value=pt.find(n.value,function(t){return"osd"===t.section}),n.value&&a.setValue("bool"===n.additionalTypeInfo.name?"true"===n.value.value:n.value.value),r&&(n.patternHelpText=r.patternHelpText,"max"in r&&""!==r.max&&(n.maxValue=r.max),"min"in r&&""!==r.min&&(n.minValue=r.min),a.setValidators(r.validators)),n})})},t.prototype.saveValues=function(){var t=this,e={};return this.optionNames.forEach(function(n){var a=t.optionsForm.getValue(n);null!==a&&""!==a&&(e[n]={section:"osd",value:a})}),this.configService.bulkCreate({options:e})},t.prototype.resetValue=function(t){var e=this;this.configService.delete(t,"osd").subscribe(function(){e.optionsForm.get(t).reset()})},t}(),ia=function(){function t(){}return t.basicOptions=["osd_scrub_during_recovery","osd_scrub_begin_hour","osd_scrub_end_hour","osd_scrub_begin_week_day","osd_scrub_end_week_day","osd_scrub_min_interval","osd_scrub_max_interval","osd_deep_scrub_interval","osd_scrub_auto_repair","osd_max_scrubs","osd_scrub_priority","osd_scrub_sleep"],t.advancedOptions=["osd_scrub_auto_repair_num_errors","osd_debug_deep_scrub_sleep","osd_deep_scrub_keys","osd_deep_scrub_large_omap_object_key_threshold","osd_deep_scrub_large_omap_object_value_sum_threshold","osd_deep_scrub_randomize_ratio","osd_deep_scrub_stride","osd_deep_scrub_update_digest_min_age","osd_op_queue_mclock_scrub_lim","osd_op_queue_mclock_scrub_res","osd_op_queue_mclock_scrub_wgt","osd_requested_scrub_priority","osd_scrub_backoff_ratio","osd_scrub_chunk_max","osd_scrub_chunk_min","osd_scrub_cost","osd_scrub_interval_randomize_ratio","osd_scrub_invalid_stats","osd_scrub_load_threshold","osd_scrub_max_preemptions"],t}(),oa=function(){function t(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.notificationService=n,this.i18n=a,this.actionLabels=r,this.basicOptions=ia.basicOptions,this.advancedOptions=ia.advancedOptions,this.advancedEnabled=!1,this.osdPgScrubForm=new ea.a({}),this.resource=this.i18n("PG scrub options"),this.action=this.actionLabels.EDIT,this.permissions=this.authStorageService.getPermissions()}return t.prototype.submitAction=function(){var t=this,e=[this.basicOptionsValues.saveValues()];this.advancedOptionsValues&&e.push(this.advancedOptionsValues.saveValues()),Object(Qn.a)(e).subscribe(function(){t.notificationService.show(Zn.a.success,t.i18n("Updated PG scrub options")),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),sa=function(){function t(t,e,n,a,r,i){var o=this;this.bsModalRef=t,this.authStorageService=e,this.configService=n,this.notificationService=a,this.i18n=r,this.osdService=i,this.priorities=[],this.priorityAttrs={},this.permissions=this.authStorageService.getPermissions(),this.priorities=this.osdService.osdRecvSpeedModalPriorities.KNOWN_PRIORITIES,this.osdRecvSpeedForm=new ea.a({priority:new we.i(null,{validators:[we.A.required]}),customizePriority:new we.i(!1)}),this.priorityAttrs={osd_max_backfills:{text:this.i18n("Max Backfills"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_active:{text:this.i18n("Recovery Max Active"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_single_start:{text:this.i18n("Recovery Max Single Start"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_sleep:{text:this.i18n("Recovery Sleep"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0}},Object.keys(this.priorityAttrs).forEach(function(t){o.osdRecvSpeedForm.addControl(t,new we.i(null,{validators:[we.A.required]}))})}return t.prototype.ngOnInit=function(){var t=this;this.configService.filter(Object.keys(this.priorityAttrs)).subscribe(function(e){var n=t.getCurrentValues(e);t.detectPriority(n.values,function(e){t.setPriority(e)}),t.setDescription(n.configOptions),t.setValidators(n.configOptions)})},t.prototype.detectPriority=function(t,e){var n=pt.find(this.priorities,function(e){return pt.isEqual(e.values,t)});return this.osdRecvSpeedForm.controls.customizePriority.setValue(!1),n?e(n):4===Object.entries(t).length?(this.osdRecvSpeedForm.controls.customizePriority.setValue(!0),e(Object({name:"custom",text:this.i18n("Custom"),values:t}))):e(this.priorities[0])},t.prototype.getCurrentValues=function(t){var e={values:{},configOptions:[]};return t.forEach(function(t){e.configOptions.push(t),"value"in t?t.value.forEach(function(n){"osd"===n.section&&(e.values[t.name]=Number(n.value))}):"default"in t&&null!==t.default&&(e.values[t.name]=Number(t.default))}),e},t.prototype.setDescription=function(t){var e=this;t.forEach(function(t){""!==t.desc&&(e.priorityAttrs[t.name].desc=t.desc)})},t.prototype.setPriority=function(t){var e=this,n=pt.find(this.priorities,function(t){return"custom"===t.name});"custom"===t.name?n||this.priorities.push(t):n&&this.priorities.splice(this.priorities.indexOf(n),1),this.osdRecvSpeedForm.controls.priority.setValue(t.name),Object.entries(t.values).forEach(function(t){e.osdRecvSpeedForm.controls[t[0]].setValue(t[1])})},t.prototype.setValidators=function(t){var e=this;t.forEach(function(t){var n=aa.getTypeValidators(t);n?(n.validators.push(we.A.required),"max"in n&&""!==n.max&&(e.priorityAttrs[t.name].maxValue=n.max),"min"in n&&""!==n.min&&(e.priorityAttrs[t.name].minValue=n.min),e.priorityAttrs[t.name].patternHelpText=n.patternHelpText,e.osdRecvSpeedForm.controls[t.name].setValidators(n.validators)):e.osdRecvSpeedForm.controls[t.name].setValidators(we.A.required)})},t.prototype.onCustomizePriorityChange=function(){var t=this,e={};if(Object.keys(this.priorityAttrs).forEach(function(n){e[n]=t.osdRecvSpeedForm.getValue(n)}),this.osdRecvSpeedForm.getValue("customizePriority")){var n={name:"custom",text:this.i18n("Custom"),values:e};this.setPriority(n)}else this.detectPriority(e,function(e){t.setPriority(e)})},t.prototype.onPriorityChange=function(t){var e=pt.find(this.priorities,function(e){return e.name===t})||this.priorities[0];this.osdRecvSpeedForm.get("customizePriority").setValue(!1),this.setPriority(e)},t.prototype.submitAction=function(){var t=this,e={};Object.keys(this.priorityAttrs).forEach(function(n){e[n]={section:"osd",value:t.osdRecvSpeedForm.getValue(n)}}),this.configService.bulkCreate({options:e}).subscribe(function(){t.notificationService.show(Zn.a.success,t.i18n('Updated OSD recovery speed priority "{{value}}"',{value:t.osdRecvSpeedForm.getValue("priority")})),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),ua=n("2EZI"),ca=function(){function t(t,e,n){this.bsModalRef=t,this.osdService=e,this.fb=n,this.currentWeight=1}return Object.defineProperty(t.prototype,"weight",{get:function(){return this.reweightForm.get("weight")},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.reweightForm=this.fb.group({weight:this.fb.control(this.currentWeight,[we.A.required,we.A.max(1),we.A.min(0)])})},t.prototype.reweight=function(){var t=this;this.osdService.reweight(this.osdId,this.reweightForm.value.weight).subscribe(function(){return t.bsModalRef.hide()})},t}(),la=function(){function t(t,e,n,a){this.bsModalRef=t,this.osdService=e,this.notificationService=n,this.i18n=a,this.selected=[]}return t.prototype.ngOnInit=function(){this.scrubForm=new we.k({})},t.prototype.scrub=function(){var t=this,e=this.selected[0].id;this.osdService.scrub(e,this.deep).subscribe(function(){t.notificationService.show(Zn.a.success,t.i18n("{{operation}} was initialized in the following OSD: {{id}}",{operation:t.deep?"Deep scrub":"Scrub",id:e})),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),da=function(){function t(t,e,n,a,r,i){var o=this;this.authStorageService=t,this.osdService=e,this.dimlessBinaryPipe=n,this.modalService=a,this.i18n=r,this.actionLabels=i,this.osds=[],this.selection=new Ve.a,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{name:this.actionLabels.SCRUB,permission:"update",icon:"fa-stethoscope",click:function(){return o.scrubAction(!1)},disable:function(){return!o.hasOsdSelected}},{name:this.actionLabels.DEEP_SCRUB,permission:"update",icon:"fa-cog",click:function(){return o.scrubAction(!0)},disable:function(){return!o.hasOsdSelected}},{name:this.actionLabels.REWEIGHT,permission:"update",click:function(){return o.reweight()},disable:function(){return!o.hasOsdSelected},icon:"fa-balance-scale"},{name:this.actionLabels.MARK_OUT,permission:"update",click:function(){return o.showConfirmationModal(o.i18n("out"),o.osdService.markOut)},disable:function(){return o.isNotSelectedOrInState("out")},icon:"fa-arrow-left"},{name:this.actionLabels.MARK_IN,permission:"update",click:function(){return o.showConfirmationModal(o.i18n("in"),o.osdService.markIn)},disable:function(){return o.isNotSelectedOrInState("in")},icon:"fa-arrow-right"},{name:this.actionLabels.MARK_DOWN,permission:"update",click:function(){return o.showConfirmationModal(o.i18n("down"),o.osdService.markDown)},disable:function(){return o.isNotSelectedOrInState("down")},icon:"fa-arrow-down"},{name:this.actionLabels.MARK_LOST,permission:"delete",click:function(){return o.showCriticalConfirmationModal(o.i18n("Mark"),o.i18n("OSD lost"),o.i18n("marked lost"),o.osdService.markLost)},disable:function(){return o.isNotSelectedOrInState("up")},icon:"fa-unlink"},{name:this.actionLabels.PURGE,permission:"delete",click:function(){return o.showCriticalConfirmationModal(o.i18n("Purge"),o.i18n("OSD"),o.i18n("purged"),o.osdService.purge)},disable:function(){return o.isNotSelectedOrInState("up")},icon:"fa-eraser"},{name:this.actionLabels.DESTROY,permission:"delete",click:function(){return o.showCriticalConfirmationModal(o.i18n("destroy"),o.i18n("OSD"),o.i18n("destroyed"),o.osdService.destroy)},disable:function(){return o.isNotSelectedOrInState("up")},icon:"fa-remove"}],this.advancedTableActions=[{name:this.i18n("Cluster-wide Flags"),icon:"fa-flag",click:function(){return o.configureFlagsAction()},permission:this.permissions.osd.read},{name:this.i18n("Cluster-wide Recovery Priority"),icon:"fa-cog",click:function(){return o.configureQosParamsAction()},permission:this.permissions.configOpt.read},{name:this.i18n("PG scrub"),icon:"fa-stethoscope",click:function(){return o.configurePgScrubAction()},permission:this.permissions.configOpt.read}]}return t.collectStates=function(t){return[t.in?"in":"out",t.up?"up":"down"]},t.prototype.ngOnInit=function(){this.columns=[{prop:"host.name",name:this.i18n("Host")},{prop:"id",name:this.i18n("ID"),cellTransformation:un.a.bold},{prop:"collectedStates",name:this.i18n("Status"),cellTemplate:this.statusColor},{prop:"stats.numpg",name:this.i18n("PGs")},{prop:"stats.stat_bytes",name:this.i18n("Size"),pipe:this.dimlessBinaryPipe},{prop:"stats.usage",name:this.i18n("Usage"),cellTemplate:this.osdUsageTpl},{prop:"stats_history.out_bytes",name:this.i18n("Read bytes"),cellTransformation:un.a.sparkline},{prop:"stats_history.in_bytes",name:this.i18n("Write bytes"),cellTransformation:un.a.sparkline},{prop:"stats.op_r",name:this.i18n("Read ops"),cellTransformation:un.a.perSecond},{prop:"stats.op_w",name:this.i18n("Write ops"),cellTransformation:un.a.perSecond}],this.removeActionsWithNoPermissions()},Object.defineProperty(t.prototype,"hasOsdSelected",{get:function(){if(this.selection.hasSelection){var t=this.selection.first().id;return!!this.osds.filter(function(e){return e.id===t}).pop()}return!1},enumerable:!0,configurable:!0}),t.prototype.updateSelection=function(t){this.selection=t},t.prototype.isNotSelectedOrInState=function(t){if(!this.hasOsdSelected)return!0;var e=this.selection.first().id,n=this.osds.filter(function(t){return t.id===e}).pop();if(!n)return!0;switch(t){case"in":return 1===n.in;case"out":return 1!==n.in;case"down":return 1!==n.up;case"up":return 1===n.up}},t.prototype.getOsdList=function(){var e=this;this.osdService.getList().subscribe(function(n){e.osds=n.map(function(e){return e.collectedStates=t.collectStates(e),e.stats_history.out_bytes=e.stats_history.op_out_bytes.map(function(t){return t[1]}),e.stats_history.in_bytes=e.stats_history.op_in_bytes.map(function(t){return t[1]}),e.stats.usage=e.stats.stat_bytes_used/e.stats.stat_bytes,e.cdIsBinary=!0,e})})},t.prototype.scrubAction=function(t){this.hasOsdSelected&&(this.bsModalRef=this.modalService.show(la,{initialState:{selected:this.tableComponent.selection.selected,deep:t}}))},t.prototype.configureFlagsAction=function(){this.bsModalRef=this.modalService.show(Jn,{})},t.prototype.showConfirmationModal=function(t,e){var n=this;this.bsModalRef=this.modalService.show(Wn.a,{initialState:{titleText:this.i18n("Mark OSD {{markAction}}",{markAction:t}),buttonText:this.i18n("Mark {{markAction}}",{markAction:t}),bodyTpl:this.markOsdConfirmationTpl,bodyContext:{markActionDescription:t},onSubmit:function(){e.call(n.osdService,n.selection.first().id).subscribe(function(){return n.bsModalRef.hide()})}}})},t.prototype.reweight=function(){var t=this,e=this.osds.filter(function(e){return e.id===t.selection.first().id}).pop();this.modalService.show(ca,{initialState:{currentWeight:e.weight,osdId:e.id}})},t.prototype.showCriticalConfirmationModal=function(t,e,n,a){var r=this;this.osdService.safeToDestroy(this.selection.first().id).subscribe(function(i){var o=r.modalService.show(Kn.a,{initialState:{actionDescription:t,itemDescription:e,bodyTemplate:r.criticalConfirmationTpl,bodyContext:{result:i,actionDescription:n},submitAction:function(){a.call(r.osdService,r.selection.first().id).subscribe(function(){return o.hide()})}}})})},t.prototype.configureQosParamsAction=function(){this.bsModalRef=this.modalService.show(sa,{})},t.prototype.configurePgScrubAction=function(){this.bsModalRef=this.modalService.show(oa,{class:"modal-lg"})},t.prototype.removeActionsWithNoPermissions=function(){this.advancedTableActions=this.permissions?this.advancedTableActions.filter(function(t){return t.permission}):[]},t}(),fa=n("DQlY"),pa=o["\u0275crt"]({encapsulation:0,styles:[[".caret.caret-black[_ngcontent-%COMP%]{color:#000}"]],data:{}});function ha(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"button",[["class","btn btn-sm btn-default dropdown-toggle dropdown-toggle-split"],["dropdownToggle",""],["type","button"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,1).onClick()&&a),a},null,null)),o["\u0275did"](1,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275eld"](2,0,null,null,0,"span",[["class","caret caret-black"]],null,null,null,null,null))],null,function(t,e){t(e,0,0,!0,o["\u0275nov"](e,1).isDisabled,o["\u0275nov"](e,1).isOpen)})}function ga(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,4,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,3,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.context.$implicit.click()&&a),a},null,null)),(t()(),o["\u0275eld"](3,0,null,null,0,"i",[["aria-hidden","true"]],[[8,"className",0]],null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](5,null,["",""]))],null,function(t,e){t(e,3,0,o["\u0275inlineInterpolate"](1,"fa fa-fw ",e.context.$implicit.icon,"")),t(e,5,0,e.context.$implicit.name)})}function ma(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"ul",[["class","dropdown-menu"],["role","menu"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,2,null,ga)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),o["\u0275pid"](0,i.SlicePipe,[])],function(t,e){var n=e.component;t(e,2,0,o["\u0275unv"](e,2,0,o["\u0275nov"](e,3).transform(n.advancedTableActions,1)))},null)}function ba(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,16777216,null,null,10,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](2,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),(t()(),o["\u0275eld"](3,0,null,null,3,"button",[["class","btn btn-sm btn-default btn-label tc_configureCluster"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.advancedTableActions[0].click()&&a),a},null,null)),(t()(),o["\u0275eld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](6,null,["",""])),(t()(),o["\u0275and"](16777216,null,null,1,null,ha)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ma)),o["\u0275did"](10,16384,null,0,gn.d,[gn.f,o.ViewContainerRef,o.TemplateRef],null,null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,2,0),t(e,8,0,n.advancedTableActions.length>1)},function(t,e){var n=e.component;t(e,0,0,o["\u0275nov"](e,2).dropup,o["\u0275nov"](e,2).isOpen,o["\u0275nov"](e,2).isOpen&&o["\u0275nov"](e,2).isBs4),t(e,4,0,o["\u0275inlineInterpolate"](1,"fa fa-fw ",n.advancedTableActions[0].icon,"")),t(e,6,0,n.advancedTableActions[0].name)})}function ya(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0"]))],null,null)}function va(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,8,"span",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,5,"span",[["class","label"]],null,null,null,null,null)),o["\u0275did"](2,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pad"](3,2),o["\u0275pad"](4,2),o["\u0275pod"](5,{"label-success":0,"label-danger":1}),(t()(),o["\u0275ted"](6,null,["",""])),(t()(),o["\u0275and"](16777216,null,null,1,null,ya)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,5,0,t(e,3,0,"in","up").includes(e.context.$implicit),t(e,4,0,"down","out").includes(e.context.$implicit));t(e,2,0,"label",n),t(e,8,0,!e.context.last)},function(t,e){t(e,6,0,e.context.$implicit)})}function xa(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,va)),o["\u0275did"](1,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.value)},null)}function _a(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,mn.b,mn.a)),o["\u0275did"](1,573440,null,0,bn.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],function(t,e){t(e,1,0,e.context.row.stats.stat_bytes,e.context.row.stats.stat_bytes_used)},null)}function Ta(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](1,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","lo02I1Aiz"]],null,null,null,Pe.b,Pe.a)),o["\u0275did"](3,638976,null,0,Me.a,[qe.a,je.DomSanitizer,Fe.a,ze.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"osd-overview?","three","lo02I1Aiz")},function(t,e){t(e,0,0,o["\u0275nov"](e,1).id,o["\u0275nov"](e,1).active,o["\u0275nov"](e,1).addClass)})}function wa(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,["OSD ",""])),(t()(),o["\u0275ted"](-1,null,[" will be marked "])),(t()(),o["\u0275eld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](5,null,["",""])),(t()(),o["\u0275ted"](-1,null,[" if you proceed."]))],null,function(t,e){t(e,2,0,e.component.selection.first().id),t(e,5,0,e.context.markActionDescription)})}function Sa(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"div",[["class","danger"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,2,"cd-warning-panel",[],null,null,null,yn.b,yn.a)),o["\u0275did"](2,49152,null,0,vn.a,[],null,null),(t()(),o["\u0275ted"](-1,0,["The OSD is not safe to destroy!"]))],null,null)}function Oa(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Sa)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](2,0,null,null,6,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](4,null,["OSD ",""])),(t()(),o["\u0275ted"](-1,null,[" will be "])),(t()(),o["\u0275eld"](6,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,["",""])),(t()(),o["\u0275ted"](-1,null,[" if you proceed."]))],function(t,e){t(e,1,0,!e.context.result.is_safe_to_destroy)},function(t,e){t(e,4,0,e.component.selection.first().id),t(e,7,0,e.context.actionDescription)})}function Ia(t){return o["\u0275vid"](0,[o["\u0275qud"](402653184,1,{statusColor:0}),o["\u0275qud"](402653184,2,{osdUsageTpl:0}),o["\u0275qud"](402653184,3,{markOsdConfirmationTpl:0}),o["\u0275qud"](402653184,4,{criticalConfirmationTpl:0}),o["\u0275qud"](402653184,5,{tableComponent:0}),o["\u0275qud"](402653184,6,{reweightBodyTpl:0}),o["\u0275qud"](402653184,7,{safeToDestroyBodyTpl:0}),(t()(),o["\u0275eld"](7,0,null,null,16,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](8,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](9,0,null,0,12,"tab",[["heading","OSDs List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](10,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](11,0,null,null,8,"cd-table",[["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getOsdList()&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ge.b,Ge.a)),o["\u0275did"](12,2867200,[[5,4]],0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"],updateSelectionOnRefresh:[3,"updateSelectionOnRefresh"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),o["\u0275eld"](13,0,null,0,4,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),o["\u0275eld"](14,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,xn.b,xn.a)),o["\u0275did"](15,114688,null,0,_n.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ba)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](18,0,null,2,1,"cd-osd-details",[["cdTableDetail",""]],null,null,null,Hn,Pn)),o["\u0275did"](19,573440,null,0,Ln,[Dn,d.a],{selection:[0,"selection"]},null),(t()(),o["\u0275and"](0,[[1,2],["statusColor",2]],null,0,null,xa)),(t()(),o["\u0275and"](0,[[2,2],["osdUsageTpl",2]],null,0,null,_a)),(t()(),o["\u0275and"](16777216,null,0,1,null,Ta)),o["\u0275did"](23,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,[[3,2],["markOsdConfirmationTpl",2]],null,0,null,wa)),(t()(),o["\u0275and"](0,[[4,2],["criticalConfirmationTpl",2]],null,0,null,Oa))],function(t,e){var n=e.component;t(e,10,0,"OSDs List"),t(e,12,0,n.osds,n.columns,"single","never"),t(e,15,0,n.permissions.osd,n.selection,n.tableActions),t(e,17,0,n.advancedTableActions.length>0),t(e,19,0,n.selection),t(e,23,0,n.permissions.grafana.read)},function(t,e){t(e,7,0,o["\u0275nov"](e,8).clazz),t(e,9,0,o["\u0275nov"](e,10).id,o["\u0275nov"](e,10).active,o["\u0275nov"](e,10).addClass)})}function Ca(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-osd-list",[],null,null,null,Ia,pa)),o["\u0275did"](1,114688,null,0,da,[d.a,Dn,gt.a,fa.b,Tt.a,$n.b],null,null)],function(t,e){t(e,1,0)},null)}var ka=o["\u0275ccf"]("cd-osd-list",da,Ca,{},{},[]),Na=function(){function t(){}return t.prototype.transform=function(t,e){return t.filter(function(t){var n=!0;return e.forEach(function(e){if(e.value)return(n=n&&e.applyFilter(t,e.value))?void 0:n}),n})},t}(),Ra=n("iExv"),Aa=function(){function t(t){this.i18n=t,this.flags={runtime:this.i18n("The value can be updated at runtime."),no_mon_update:this.i18n("Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via 'ceph config\n set ...'. This option should be configured via ceph.conf or via the\n command line."),startup:this.i18n("Option takes effect only during daemon startup."),cluster_create:this.i18n("Option only affects cluster creation."),create:this.i18n("Option only affects daemon creation.")}}return t.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.selectedItem.services=pt.split(this.selectedItem.services,","))},t}(),Ea=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Da(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" ",": ","",""])),(t()(),o["\u0275eld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")})}function La(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,2,"span",[["class","badge badge-pill badge-primary margin-right-sm"]],null,null,null,null,null)),(t()(),o["\u0275ted"](3,null,["",""])),o["\u0275ppd"](4,1)],null,function(t,e){t(e,1,0,o["\u0275inlineInterpolate"](1,"",e.component.flags[e.context.$implicit],""));var n=o["\u0275unv"](e,3,0,t(e,4,0,o["\u0275nov"](e.parent.parent,0),e.context.$implicit));t(e,3,0,n)})}function Pa(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[["class","badge badge-pill badge-primary margin-right-sm"]],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function Ma(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,94,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](1,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](2,0,null,0,92,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](3,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](4,0,null,null,90,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,89,"tbody",[],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Name"])),(t()(),o["\u0275eld"](9,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](10,null,["",""])),(t()(),o["\u0275eld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Description"])),(t()(),o["\u0275eld"](14,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](15,null,["",""])),(t()(),o["\u0275eld"](16,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](17,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Long description"])),(t()(),o["\u0275eld"](19,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](20,null,["",""])),(t()(),o["\u0275eld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](22,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Current values"])),(t()(),o["\u0275eld"](24,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Da)),o["\u0275did"](26,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](27,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](28,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Default"])),(t()(),o["\u0275eld"](30,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](31,null,["",""])),(t()(),o["\u0275eld"](32,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](33,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Daemon default"])),(t()(),o["\u0275eld"](35,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](36,null,["",""])),(t()(),o["\u0275eld"](37,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](38,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Type"])),(t()(),o["\u0275eld"](40,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](41,null,["",""])),(t()(),o["\u0275eld"](42,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](43,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Min"])),(t()(),o["\u0275eld"](45,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](46,null,["",""])),(t()(),o["\u0275eld"](47,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](48,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Max"])),(t()(),o["\u0275eld"](50,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](51,null,["",""])),(t()(),o["\u0275eld"](52,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](53,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Flags"])),(t()(),o["\u0275eld"](55,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,La)),o["\u0275did"](57,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](58,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](59,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Services"])),(t()(),o["\u0275eld"](61,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Pa)),o["\u0275did"](63,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](64,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](65,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Source"])),(t()(),o["\u0275eld"](67,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](68,null,["",""])),(t()(),o["\u0275eld"](69,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](70,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Level"])),(t()(),o["\u0275eld"](72,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](73,null,["",""])),(t()(),o["\u0275eld"](74,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](75,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Can be updated at runtime (editable)"])),(t()(),o["\u0275eld"](77,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](78,null,["",""])),o["\u0275ppd"](79,1),(t()(),o["\u0275eld"](80,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](81,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Tags"])),(t()(),o["\u0275eld"](83,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](84,null,["",""])),(t()(),o["\u0275eld"](85,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](86,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Enum values"])),(t()(),o["\u0275eld"](88,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](89,null,["",""])),(t()(),o["\u0275eld"](90,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](91,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["See also"])),(t()(),o["\u0275eld"](93,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](94,null,["",""]))],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,26,0,n.selectedItem.value),t(e,57,0,n.selectedItem.flags),t(e,63,0,n.selectedItem.services)},function(t,e){var n=e.component;t(e,0,0,o["\u0275nov"](e,1).clazz),t(e,2,0,o["\u0275nov"](e,3).id,o["\u0275nov"](e,3).active,o["\u0275nov"](e,3).addClass),t(e,10,0,n.selectedItem.name),t(e,15,0,n.selectedItem.desc),t(e,20,0,n.selectedItem.long_desc),t(e,31,0,n.selectedItem.default),t(e,36,0,n.selectedItem.daemon_default),t(e,41,0,n.selectedItem.type),t(e,46,0,n.selectedItem.min),t(e,51,0,n.selectedItem.max),t(e,68,0,n.selectedItem.source),t(e,73,0,n.selectedItem.level);var a=o["\u0275unv"](e,78,0,t(e,79,0,o["\u0275nov"](e.parent,1),n.selectedItem.can_update_at_runtime));t(e,78,0,a),t(e,84,0,n.selectedItem.tags),t(e,89,0,n.selectedItem.enum_values),t(e,94,0,n.selectedItem.see_also)})}function qa(t){return o["\u0275vid"](0,[o["\u0275pid"](0,i.UpperCasePipe,[]),o["\u0275pid"](0,Ra.a,[Tt.a]),(t()(),o["\u0275and"](16777216,null,null,1,null,Ma)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,null==n.selection?null:n.selection.hasSingleSelection)},null)}var ja=function(){function t(t,e,n,a){var r=this;this.authStorageService=t,this.configurationService=e,this.i18n=n,this.actionLabels=a,this.data=[],this.selection=new Ve.a,this.filters=[{label:this.i18n("Level"),prop:"level",initValue:"basic",value:"basic",options:["basic","advanced","dev"],applyFilter:function(t,e){var n=function(t){return t[t.basic=0]="basic",t[t.advanced=1]="advanced",t[t.dev=2]="dev",t}({});return n[t.level]<=n[e]}},{label:this.i18n("Service"),prop:"services",initValue:"any",value:"any",options:["any","mon","mgr","osd","mds","common","mds_client","rgw"],applyFilter:function(t,e){return"any"===e||t.services.includes(e)}},{label:this.i18n("Source"),prop:"source",initValue:"any",value:"any",options:["any","mon"],applyFilter:function(t,e){return"any"===e||!!t.hasOwnProperty("source")&&t.source.includes(e)}}],this.permission=this.authStorageService.getPermissions().configOpt,this.tableActions=[{permission:"update",icon:"fa-pencil",routerLink:function(){return"/configuration/edit/"+(r.selection.first()&&""+encodeURIComponent(r.selection.first().name))},name:this.actionLabels.EDIT,disable:function(){return!r.isEditable(r.selection)}}]}return t.prototype.ngOnInit=function(){this.columns=[{canAutoResize:!0,prop:"name",name:this.i18n("Name")},{prop:"desc",name:this.i18n("Description"),cellClass:"wrap"},{prop:"value",name:this.i18n("Current value"),cellClass:"wrap",cellTemplate:this.confValTpl},{prop:"default",name:this.i18n("Default"),cellClass:"wrap"},{prop:"can_update_at_runtime",name:this.i18n("Editable"),cellTransformation:un.a.checkIcon,flexGrow:.4,cellClass:"text-center"}]},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.getConfigurationList=function(t){var e=this;this.configurationService.getConfigData().subscribe(function(t){e.data=t},function(){t.error()})},t.prototype.updateFilter=function(){this.data=this.data.slice()},t.prototype.resetFilter=function(){this.filters.forEach(function(t){t.value=t.initValue}),this.data=this.data.slice()},t.prototype.isEditable=function(t){return 1===t.selected.length&&t.selected[0].can_update_at_runtime},t}(),Fa=o["\u0275crt"]({encapsulation:0,styles:[[".filter[_ngcontent-%COMP%]{padding-right:8px} datatable-body-cell.wrap{word-break:break-all}"]],data:{}});function za(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],null,null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],null,null),(t()(),o["\u0275ted"](3,null,["",""]))],null,function(t,e){t(e,3,0,e.context.$implicit)})}function Ga(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,10,"div",[["class","form-group filter"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,["",": "])),(t()(),o["\u0275eld"](3,0,null,null,7,"select",[["class","form-control input-sm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,4).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,4).onTouched()&&a),"ngModelChange"===e&&(a=!1!==(t.context.$implicit.value=n)&&a),"ngModelChange"===e&&(a=!1!==r.updateFilter()&&a),a},null,null)),o["\u0275did"](4,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](6,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](8,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,za)),o["\u0275did"](10,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,6,0,e.context.$implicit.value),t(e,10,0,e.context.$implicit.options)},function(t,e){t(e,2,0,e.context.$implicit.label),t(e,3,0,o["\u0275nov"](e,8).ngClassUntouched,o["\u0275nov"](e,8).ngClassTouched,o["\u0275nov"](e,8).ngClassPristine,o["\u0275nov"](e,8).ngClassDirty,o["\u0275nov"](e,8).ngClassValid,o["\u0275nov"](e,8).ngClassInvalid,o["\u0275nov"](e,8).ngClassPending)})}function Ya(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" ",": ","",""])),(t()(),o["\u0275eld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")})}function Va(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Ya)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.parent.context.value)},null)}function Ha(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Va)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.value)},null)}function Ba(t){return o["\u0275vid"](0,[o["\u0275pid"](0,Na,[]),o["\u0275qud"](402653184,1,{confValTpl:0}),o["\u0275qud"](402653184,2,{confFlagTpl:0}),(t()(),o["\u0275eld"](3,0,null,null,12,"cd-table",[["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getConfigurationList(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ge.b,Ge.a)),o["\u0275did"](4,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),o["\u0275ppd"](5,2),(t()(),o["\u0275eld"](6,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,xn.b,xn.a)),o["\u0275did"](7,114688,null,0,_n.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),o["\u0275eld"](8,0,null,1,5,"div",[["class","table-filters"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Ga)),o["\u0275did"](10,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](11,0,null,null,2,"a",[["class","fa-stack"],["title","Reset filters"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.resetFilter()&&a),a},null,null)),(t()(),o["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-filter fa-stack-2x"]],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,0,"i",[["class","fa fa-times fa-stack-1x"],["style","margin-left: 8px; margin-top: 5px;"]],null,null,null,null,null)),(t()(),o["\u0275eld"](14,0,null,2,1,"cd-configuration-details",[["cdTableDetail",""]],null,null,null,qa,Ea)),o["\u0275did"](15,573440,null,0,Aa,[Tt.a],{selection:[0,"selection"]},null),(t()(),o["\u0275and"](0,[[1,2],["confValTpl",2]],null,0,null,Ha))],function(t,e){var n=e.component,a=o["\u0275unv"](e,4,0,t(e,5,0,o["\u0275nov"](e,0),n.data,n.filters));t(e,4,0,a,n.columns,"single"),t(e,7,0,n.permission,n.selection,n.tableActions),t(e,10,0,n.filters),t(e,15,0,n.selection)},null)}function Ua(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-configuration",[],null,null,null,Ba,Fa)),o["\u0275did"](1,114688,null,0,ja,[d.a,ta.a,Tt.a,$n.b],null,null)],function(t,e){t(e,1,0)},null)}var Wa=o["\u0275ccf"]("cd-configuration",ja,Ua,{},{},[]),Ka=n("gp3X"),$a=n("sb0X"),Za=n("KVJa"),Xa=n("Z21x"),Ja=function(){return function(){this.value=[]}}(),Qa=function(){function t(t,e,n,a,r){this.route=t,this.router=e,this.configService=n,this.notificationService=a,this.i18n=r,this.availSections=["global","mon","mgr","osd","mds","client"],this.createForm()}return t.prototype.createForm=function(){var t={name:new we.i({value:null}),desc:new we.i({value:null}),long_desc:new we.i({value:null}),values:new we.k({}),default:new we.i({value:null}),daemon_default:new we.i({value:null}),services:new we.i([])};this.availSections.forEach(function(e){t.values.addControl(e,new we.i(null))}),this.configForm=new ea.a(t)},t.prototype.ngOnInit=function(){var t=this;this.route.params.subscribe(function(e){t.configService.get(e.name).subscribe(function(e){t.setResponse(e)})})},t.prototype.getValidators=function(t){var e=aa.getTypeValidators(t);if(e)return this.patternHelpText=e.patternHelpText,"max"in e&&""!==e.max&&(this.maxValue=e.max),"min"in e&&""!==e.min&&(this.minValue=e.min),e.validators},t.prototype.getStep=function(t,e){return aa.getTypeStep(t,e)},t.prototype.setResponse=function(t){var e=this;this.response=t;var n=this.getValidators(t);this.configForm.get("name").setValue(t.name),this.configForm.get("desc").setValue(t.desc),this.configForm.get("long_desc").setValue(t.long_desc),this.configForm.get("default").setValue(t.default),this.configForm.get("daemon_default").setValue(t.daemon_default),this.configForm.get("services").setValue(t.services),this.response.value&&this.response.value.forEach(function(t){var n;n="true"===t.value||"false"!==t.value&&t.value,e.configForm.get("values").get(t.section).setValue(n)}),this.availSections.forEach(function(t){e.configForm.get("values").get(t).setValidators(n)});var a=aa.getType(t.type);this.type=a.name,this.inputType=a.inputType,this.humanReadableType=a.humanReadable},t.prototype.createRequest=function(){var t=this,e=[];if(this.availSections.forEach(function(n){var a=t.configForm.getValue(n);null!==a&&""!==a&&e.push({section:n,value:a})}),!pt.isEqual(this.response.value,e)){var n=new Ja;return n.name=this.configForm.getValue("name"),n.value=e,n}return null},t.prototype.submit=function(){var t=this,e=this.createRequest();e&&this.configService.create(e).subscribe(function(){t.notificationService.show(Zn.a.success,t.i18n("Updated config option {{name}}",{name:e.name})),t.router.navigate(["/configuration"])},function(){t.configForm.setErrors({cdSubmitButton:!0})}),this.router.navigate(["/configuration"])},t}(),tr=o["\u0275crt"]({encapsulation:0,styles:[[".form-component-badge[_ngcontent-%COMP%]{height:34px;display:block}.form-component-badge[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-top:7px}.resize-vertical[_ngcontent-%COMP%]{resize:vertical}"]],data:{}});function er(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Description"])),(t()(),o["\u0275eld"](3,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,6,"textarea",[["class","form-control resize-vertical"],["formControlName","desc"],["id","desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,5)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,5).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](5,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](7,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275ted"](-1,null,[" "]))],function(t,e){t(e,7,0,"desc")},function(t,e){t(e,4,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending)})}function nr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Long description"])),(t()(),o["\u0275eld"](3,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,6,"textarea",[["class","form-control resize-vertical"],["formControlName","long_desc"],["id","long_desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,5)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,5).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](5,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](7,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275ted"](-1,null,[" "]))],function(t,e){t(e,7,0,"long_desc")},function(t,e){t(e,4,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending)})}function ar(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,9,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Default"])),(t()(),o["\u0275eld"](3,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,5,"input",[["class","form-control"],["formControlName","default"],["id","default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,5)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,5).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](5,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](7,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){t(e,7,0,"default")},function(t,e){t(e,4,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending)})}function rr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,9,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Daemon default"])),(t()(),o["\u0275eld"](3,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,5,"input",[["class","form-control"],["formControlName","daemon_default"],["id","daemon_default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,5)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,5).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,5)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](5,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](7,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){t(e,7,0,"daemon_default")},function(t,e){t(e,4,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending)})}function ir(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[["class","form-component-badge"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[["class","badge badge-pill badge-primary"]],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function or(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Services"])),(t()(),o["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,ir)),o["\u0275did"](5,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.configForm.getValue("services"))},null)}function sr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),o["\u0275ted"](2,null,[""," "])),(t()(),o["\u0275eld"](3,0,null,null,18,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,17,"select",[["class","form-control custom-select"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,5).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,5).onTouched()&&a),a},null,null)),o["\u0275did"](5,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](7,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](10,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](11,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),o["\u0275did"](12,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),o["\u0275ted"](-1,null,["-- Default --"])),(t()(),o["\u0275eld"](14,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](15,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),o["\u0275did"](16,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),o["\u0275ted"](-1,null,["true"])),(t()(),o["\u0275eld"](18,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](19,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),o["\u0275did"](20,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),o["\u0275ted"](-1,null,["false"]))],function(t,e){t(e,7,0,e.parent.context.$implicit),t(e,11,0,null),t(e,12,0,null),t(e,15,0,!0),t(e,16,0,!0),t(e,19,0,!1),t(e,20,0,!1)},function(t,e){t(e,1,0,e.parent.context.$implicit),t(e,2,0,e.parent.context.$implicit),t(e,4,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending)})}function ur(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.component.patternHelpText)})}function cr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.component.patternHelpText)})}function lr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,function(t,e){t(e,1,0,e.component.maxValue)})}function dr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,function(t,e){t(e,1,0,e.component.minValue)})}function fr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,1,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),o["\u0275ted"](4,null,[""," "])),(t()(),o["\u0275eld"](5,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,5,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,7)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,7).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,7)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,7)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](7,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](9,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](11,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,ur)),o["\u0275did"](13,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,cr)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,lr)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,dr)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.configForm.showError(e.parent.context.$implicit,o["\u0275nov"](e.parent.parent,3)));t(e,1,0,"form-group",a),t(e,9,0,e.parent.context.$implicit),t(e,13,0,n.configForm.showError(e.parent.context.$implicit,o["\u0275nov"](e.parent.parent,3),"pattern")),t(e,15,0,n.configForm.showError(e.parent.context.$implicit,o["\u0275nov"](e.parent.parent,3),"invalidUuid")),t(e,17,0,n.configForm.showError(e.parent.context.$implicit,o["\u0275nov"](e.parent.parent,3),"max")),t(e,19,0,n.configForm.showError(e.parent.context.$implicit,o["\u0275nov"](e.parent.parent,3),"min"))},function(t,e){var n=e.component;t(e,3,0,e.parent.context.$implicit),t(e,4,0,e.parent.context.$implicit),t(e,6,1,[n.inputType,e.parent.context.$implicit,n.humanReadableType,n.getStep(n.type,n.configForm.getValue(e.parent.context.$implicit)),o["\u0275nov"](e,11).ngClassUntouched,o["\u0275nov"](e,11).ngClassTouched,o["\u0275nov"](e,11).ngClassPristine,o["\u0275nov"](e,11).ngClassDirty,o["\u0275nov"](e,11).ngClassValid,o["\u0275nov"](e,11).ngClassInvalid,o["\u0275nov"](e,11).ngClassPending])})}function pr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,sr)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,fr)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,"bool"===n.type),t(e,4,0,"bool"!==n.type)},null)}function hr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,48,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,47,"form",[["class","form-horizontal"],["name","configForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,3).onReset()&&a),a},null,null)),o["\u0275did"](2,16384,null,0,we.D,[],null,null),o["\u0275did"](3,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](5,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](6,0,null,null,42,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Edit"])),(t()(),o["\u0275ted"](11,null,[" "," "])),(t()(),o["\u0275eld"](12,0,null,null,28,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,9,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](14,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Name"])),(t()(),o["\u0275eld"](16,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](17,0,null,null,5,"input",[["class","form-control"],["formControlName","name"],["id","name"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,18)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,18).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,18)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,18)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](18,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](20,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](22,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,er)),o["\u0275did"](24,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,nr)),o["\u0275did"](26,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ar)),o["\u0275did"](28,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,rr)),o["\u0275did"](30,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,or)),o["\u0275did"](32,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](33,0,null,null,7,"div",[["class","col-sm-12"],["formGroupName","values"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),o["\u0275did"](34,212992,null,0,we.m,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.d,null,[we.m]),o["\u0275did"](36,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](37,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Values"])),(t()(),o["\u0275and"](16777216,null,null,1,null,pr)),o["\u0275did"](40,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](41,0,null,null,7,"div",[["class","panel-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](42,0,null,null,6,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),o["\u0275eld"](43,0,null,null,3,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a},Ka.b,Ka.a)),o["\u0275did"](44,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),o["\u0275eld"](45,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Save"])),(t()(),o["\u0275eld"](47,0,null,null,1,"cd-back-button",[],null,null,null,Za.b,Za.a)),o["\u0275did"](48,49152,null,0,Xa.a,[i.Location,$n.b],null,null)],function(t,e){var n=e.component;t(e,3,0,n.configForm),t(e,20,0,"name"),t(e,24,0,n.configForm.getValue("desc")),t(e,26,0,n.configForm.getValue("long_desc")),t(e,28,0,""!==n.configForm.getValue("default")),t(e,30,0,""!==n.configForm.getValue("daemon_default")),t(e,32,0,n.configForm.getValue("services").length>0),t(e,34,0,"values"),t(e,40,0,n.availSections),t(e,44,0,o["\u0275nov"](e,3),"button")},function(t,e){var n=e.component;t(e,1,0,o["\u0275nov"](e,5).ngClassUntouched,o["\u0275nov"](e,5).ngClassTouched,o["\u0275nov"](e,5).ngClassPristine,o["\u0275nov"](e,5).ngClassDirty,o["\u0275nov"](e,5).ngClassValid,o["\u0275nov"](e,5).ngClassInvalid,o["\u0275nov"](e,5).ngClassPending),t(e,11,0,n.configForm.getValue("name")),t(e,17,0,o["\u0275nov"](e,22).ngClassUntouched,o["\u0275nov"](e,22).ngClassTouched,o["\u0275nov"](e,22).ngClassPristine,o["\u0275nov"](e,22).ngClassDirty,o["\u0275nov"](e,22).ngClassValid,o["\u0275nov"](e,22).ngClassInvalid,o["\u0275nov"](e,22).ngClassPending),t(e,33,0,o["\u0275nov"](e,36).ngClassUntouched,o["\u0275nov"](e,36).ngClassTouched,o["\u0275nov"](e,36).ngClassPristine,o["\u0275nov"](e,36).ngClassDirty,o["\u0275nov"](e,36).ngClassValid,o["\u0275nov"](e,36).ngClassInvalid,o["\u0275nov"](e,36).ngClassPending)})}function gr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-configuration-form",[],null,null,null,hr,tr)),o["\u0275did"](1,114688,null,0,Qa,[et.a,et.l,ta.a,Xn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var mr=o["\u0275ccf"]("cd-configuration-form",Qa,gr,{},{},[]),br=n("nuQ0"),yr=n("Tff5"),vr=n("urB8"),xr=n("xtUU"),_r=function(){function t(t){this.healthService=t,this.metadataKeyMap={}}return t.prototype.ngOnInit=function(){var t=this;this.healthService.getFullHealth().subscribe(function(e){t.tree=t._abstractTreeData(e)})},t.prototype._abstractTreeData=function(t){var e=this,n=t.osd_map.tree.nodes||[],a={};if(0===n.length)return{value:"No nodes!",settings:{static:!0}};var r=[];return n.reverse().forEach(function(t){"root"===t.type&&r.push(t.id),a[t.id]=e.generateTreeLeaf(t,a)}),{value:"CRUSH map",children:r.map(function(t){return a[t]})}},t.prototype.generateTreeLeaf=function(t,e){var n=t.id;this.metadataKeyMap[n]=t;var a={static:!0},r=t.name+" ("+t.type+")",i=t.status,o=[];return t.children?(t.children.sort().forEach(function(t){o.push(e[t])}),{value:r,status:i,settings:a,id:n,children:o}):{value:r,status:i,settings:a,id:n}},t.prototype.onNodeSelected=function(t){var e=this.metadataKeyMap[t.node.id],n=e.name,a=e.type,r=h.__rest(e,["name","type","status"]);this.metadata=r,this.metadataTitle=n+" ("+a+")"},t}(),Tr=o["\u0275crt"]({encapsulation:0,styles:[["tree-internal .tree li{cursor:pointer} tree-internal .tree .node-value{color:#2b99a8;border-radius:5px} tree-internal .tree .node-selected{background-color:#d9edf7;color:#212121} tree-internal .tree .node-value:hover{color:#212121} tree-internal .tree .node-value:after{height:0}"]],data:{}});function wr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"span",[["class","label"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pad"](2,2),o["\u0275pad"](3,3),o["\u0275pod"](4,{"label-success":0,"label-danger":1}),(t()(),o["\u0275ted"](5,null,["",""])),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0"])),(t()(),o["\u0275eld"](8,0,null,null,0,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null))],function(t,e){var n=t(e,4,0,t(e,2,0,"in","up").includes(e.context.$implicit.status),t(e,3,0,"down","out","destroyed").includes(e.context.$implicit.status));t(e,1,0,"label",n)},function(t,e){t(e,5,0,e.context.$implicit.status),t(e,8,0,e.context.$implicit.value)})}function Sr(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"div",[["class","col-sm-6 col-lg-6 metadata"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,["",""])),(t()(),o["\u0275eld"](3,0,null,null,1,"cd-table-key-value",[],null,null,null,Tn.b,Tn.a)),o["\u0275did"](4,638976,null,0,wn.a,[Sn.a],{data:[0,"data"]},null)],function(t,e){t(e,4,0,e.component.metadata)},function(t,e){t(e,2,0,e.component.metadataTitle)})}function Or(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,16,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,15,"div",[["class","col-sm-12 col-lg-12"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,14,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,3,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,2,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["CRUSH map viewer"])),(t()(),o["\u0275eld"](7,0,null,null,9,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,6,"div",[["class","col-sm-6 col-lg-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,5,"tree",[],null,[[null,"nodeSelected"]],function(t,e,n){var a=!0;return"nodeSelected"===e&&(a=!1!==t.component.onNodeSelected(n)&&a),a},br.b,br.a)),o["\u0275prd"](512,null,yr.TreeService,yr.TreeService,[vr.NodeDraggableService]),o["\u0275did"](11,770048,null,1,xr.TreeComponent,[yr.TreeService],{treeModel:[0,"treeModel"],settings:[1,"settings"]},{nodeSelected:"nodeSelected"}),o["\u0275qud"](335544320,1,{template:0}),o["\u0275pod"](13,{rootIsVisible:0}),(t()(),o["\u0275and"](0,[[1,2]],null,0,null,wr)),(t()(),o["\u0275and"](16777216,null,null,1,null,Sr)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=n.tree,r=t(e,13,0,!1);t(e,11,0,a,r),t(e,16,0,n.metadata)},null)}function Ir(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-crushmap",[],null,null,null,Or,Tr)),o["\u0275did"](1,114688,null,0,_r,[At],null,null)],function(t,e){t(e,1,0)},null)}var Cr=o["\u0275ccf"]("cd-crushmap",_r,Ir,{},{},[]),kr=n("ARl4"),Nr=n("MwfX"),Rr=function(){function t(){}return t.prototype.writeValue=function(e){return{type:t.WRITE_VALUE,payload:e}},t.prototype.changeHours=function(e){return{type:t.CHANGE_HOURS,payload:e}},t.prototype.changeMinutes=function(e){return{type:t.CHANGE_MINUTES,payload:e}},t.prototype.changeSeconds=function(e){return{type:t.CHANGE_SECONDS,payload:e}},t.prototype.setTime=function(e){return{type:t.SET_TIME_UNIT,payload:e}},t.prototype.updateControls=function(e){return{type:t.UPDATE_CONTROLS,payload:e}},t.WRITE_VALUE="[timepicker] write value from ng model",t.CHANGE_HOURS="[timepicker] change hours",t.CHANGE_MINUTES="[timepicker] change minutes",t.CHANGE_SECONDS="[timepicker] change seconds",t.SET_TIME_UNIT="[timepicker] set time unit",t.UPDATE_CONTROLS="[timepicker] update controls",t}(),Ar=10,Er=24,Dr=12,Lr=60,Pr=60;function Mr(t){return!!t&&!(t instanceof Date&&isNaN(t.getHours()))&&("string"!=typeof t||Mr(new Date(t)))}function qr(t,e){return!(t.min&&et.max)}function jr(t){return"number"==typeof t?t:parseInt(t,Ar)}function Fr(t,e){void 0===e&&(e=!1);var n=jr(t);return isNaN(n)||n<0||n>(e?Dr:Er)?NaN:n!==Dr||e?n:0}function zr(t){var e=jr(t);return isNaN(e)||e<0||e>Lr?NaN:e}function Gr(t){var e=jr(t);return isNaN(e)||e<0||e>Pr?NaN:e}function Yr(t){return"string"==typeof t?new Date(t):t}function Vr(t,e){if(!t)return Vr(Br(new Date,0,0,0),e);var n=t.getHours(),a=t.getMinutes(),r=t.getSeconds();return e.hour&&(n=(n+jr(e.hour))%Er)<0&&(n+=Er),e.minute&&(a+=jr(e.minute)),e.seconds&&(r+=jr(e.seconds)),Br(t,n,a,r)}function Hr(t,e){var n=Fr(e.hour),a=zr(e.minute),r=Gr(e.seconds)||0;return e.isPM&&12!==n&&(n+=Dr),t?isNaN(n)||isNaN(a)?t:Br(t,n,a,r):isNaN(n)||isNaN(a)?t:Br(new Date,n,a,r)}function Br(t,e,n,a){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),e,n,a,t.getMilliseconds())}function Ur(t){var e=t.toString();return e.length>1?e:"0"+e}function Wr(t,e){return!isNaN(Fr(t,e))}function Kr(t){return!isNaN(zr(t))}function $r(t){return!isNaN(Gr(t))}function Zr(t,e,n,a){return void 0===e&&(e="0"),void 0===n&&(n="0"),Wr(t,a)&&Kr(e)&&$r(n)}function Xr(t,e){if(t.readonlyInput||t.disabled)return!1;if(e){if("wheel"===e.source&&!t.mousewheel)return!1;if("key"===e.source&&!t.arrowkeys)return!1}return!0}function Jr(t){return{hourStep:t.hourStep,minuteStep:t.minuteStep,secondsStep:t.secondsStep,readonlyInput:t.readonlyInput,disabled:t.disabled,mousewheel:t.mousewheel,arrowkeys:t.arrowkeys,showSpinners:t.showSpinners,showMeridian:t.showMeridian,showSeconds:t.showSeconds,meridians:t.meridians,min:t.min,max:t.max}}var Qr=function(){return function(){this.hourStep=1,this.minuteStep=5,this.secondsStep=10,this.showMeridian=!0,this.meridians=["AM","PM"],this.readonlyInput=!1,this.disabled=!1,this.mousewheel=!0,this.arrowkeys=!0,this.showSpinners=!0,this.showSeconds=!1,this.showMinutes=!0}}(),ti={value:null,config:new Qr,controls:{canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0}};function ei(t,e){switch(void 0===t&&(t=ti),e.type){case Rr.WRITE_VALUE:return Object.assign({},t,{value:e.payload});case Rr.CHANGE_HOURS:if(!Xr(t.config,e.payload)||(o=t.controls,!(i=e.payload).step||i.step>0&&!o.canIncrementHours||i.step<0&&!o.canDecrementHours))return t;var n=Vr(t.value,{hour:e.payload.step});return!t.config.max&&!t.config.min||qr(t.config,n)?Object.assign({},t,{value:n}):t;case Rr.CHANGE_MINUTES:return Xr(t.config,e.payload)&&function(t,e){return!(!t.step||t.step>0&&!e.canIncrementMinutes||t.step<0&&!e.canDecrementMinutes)}(e.payload,t.controls)?(n=Vr(t.value,{minute:e.payload.step}),!t.config.max&&!t.config.min||qr(t.config,n)?Object.assign({},t,{value:n}):t):t;case Rr.CHANGE_SECONDS:return Xr(t.config,e.payload)&&function(t,e){return!(!t.step||t.step>0&&!e.canIncrementSeconds||t.step<0&&!e.canDecrementSeconds)}(e.payload,t.controls)?(n=Vr(t.value,{seconds:e.payload.step}),!t.config.max&&!t.config.min||qr(t.config,n)?Object.assign({},t,{value:n}):t):t;case Rr.SET_TIME_UNIT:return Xr(t.config)?(n=Hr(t.value,e.payload),Object.assign({},t,{value:n})):t;case Rr.UPDATE_CONTROLS:var a=function(t,e){var n=e.min,a=e.max,r=e.hourStep,i=e.minuteStep,o=e.secondsStep,s=e.showSeconds,u={canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0};if(!t)return u;if(a){var c=Vr(t,{hour:r});if(u.canIncrementHours=a>c,!u.canIncrementHours){var l=Vr(t,{minute:i});u.canIncrementMinutes=s?a>l:a>=l}if(!u.canIncrementMinutes){var d=Vr(t,{seconds:o});u.canIncrementSeconds=a>=d}t.getHours()<12&&(u.canToggleMeridian=Vr(t,{hour:12})=12&&(u.canToggleMeridian=Vr(t,{hour:-12})>n)),u}(t.value,e.payload),r={value:t.value,config:e.payload,controls:a};return t.config.showMeridian!==r.config.showMeridian&&t.value&&(r.value=new Date(t.value)),Object.assign({},t,r);default:return t}var i,o}var ni=function(t){function e(){var e=new Dt.a({type:"[mini-ngrx] dispatcher init"}),n=new Nr.a(ti,e,ei);return t.call(this,e,ei,n)||this}return Object(h.__extends)(e,t),e}(Nr.b),ai=function(){function t(t,e,n,a){var r=this;this._cd=e,this._store=n,this._timepickerActions=a,this.isValid=new o.EventEmitter,this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1,this.onChange=Function.prototype,this.onTouched=Function.prototype,Object.assign(this,t),this.timepickerSub=n.select(function(t){return t.value}).subscribe(function(t){r._renderTime(t),r.onChange(t),r._store.dispatch(r._timepickerActions.updateControls(Jr(r)))}),n.select(function(t){return t.controls}).subscribe(function(t){r.isValid.emit(Zr(r.hours,r.minutes,r.seconds,r.isPM())),Object.assign(r,t),e.markForCheck()})}return Object.defineProperty(t.prototype,"isSpinnersVisible",{get:function(){return this.showSpinners&&!this.readonlyInput},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEditable",{get:function(){return!(this.readonlyInput||this.disabled)},enumerable:!0,configurable:!0}),t.prototype.resetValidation=function(){this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1},t.prototype.isPM=function(){return this.showMeridian&&this.meridian===this.meridians[1]},t.prototype.prevDef=function(t){t.preventDefault()},t.prototype.wheelSign=function(t){return-1*Math.sign(t.deltaY)},t.prototype.ngOnChanges=function(t){this._store.dispatch(this._timepickerActions.updateControls(Jr(this)))},t.prototype.changeHours=function(t,e){void 0===e&&(e=""),this.resetValidation(),this._store.dispatch(this._timepickerActions.changeHours({step:t,source:e}))},t.prototype.changeMinutes=function(t,e){void 0===e&&(e=""),this.resetValidation(),this._store.dispatch(this._timepickerActions.changeMinutes({step:t,source:e}))},t.prototype.changeSeconds=function(t,e){void 0===e&&(e=""),this.resetValidation(),this._store.dispatch(this._timepickerActions.changeSeconds({step:t,source:e}))},t.prototype.updateHours=function(t){if(this.resetValidation(),this.hours=t,!Wr(this.hours,this.isPM())||!this.isValidLimit())return this.invalidHours=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()},t.prototype.updateMinutes=function(t){if(this.resetValidation(),this.minutes=t,!Kr(this.minutes)||!this.isValidLimit())return this.invalidMinutes=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()},t.prototype.updateSeconds=function(t){if(this.resetValidation(),this.seconds=t,!$r(this.seconds)||!this.isValidLimit())return this.invalidSeconds=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()},t.prototype.isValidLimit=function(){return t={hour:this.hours,minute:this.minutes,seconds:this.seconds,isPM:this.isPM()},e=this.max,n=this.min,a=Hr(new Date,t),!(e&&a>e||n&&a=12?1:0],0==(n%=12)&&(n=12)),this.hours=Ur(n),this.minutes=Ur(e.getMinutes()),this.seconds=Ur(e.getUTCSeconds())},t}(),ri=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[Qr,Rr,ni]}},t}(),ii=o["\u0275crt"]({encapsulation:2,styles:["\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n }\n "],data:{}});function oi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function si(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(r.minuteStep)&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canIncrementMinutes||!n.isEditable)})}function ui(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0"]))],null,null)}function ci(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(r.secondsStep)&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canIncrementSeconds||!n.isEditable)})}function li(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function di(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function fi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0:\xa0"]))],null,null)}function pi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","MM"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeMinutes(r.minuteStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeMinutes(r.minuteStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep,"key")&&a),"change"===e&&(a=!1!==r.updateMinutes(n.target.value)&&a),a},null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.invalidMinutes),t(e,1,0,n.invalidMinutes,n.readonlyInput,n.disabled,n.minutes)})}function hi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0:\xa0"]))],null,null)}function gi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","SS"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeSeconds(r.secondsStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeSeconds(r.secondsStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep,"key")&&a),"change"===e&&(a=!1!==r.updateSeconds(n.target.value)&&a),a},null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.invalidSeconds),t(e,1,0,n.invalidSeconds,n.readonlyInput,n.disabled,n.seconds)})}function mi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function bi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-default text-center"],["type","button"]],[[8,"disabled",0],[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleMeridian()&&a),a},null,null)),(t()(),o["\u0275ted"](2,null,[""," "]))],null,function(t,e){var n=e.component;t(e,1,0,!n.isEditable||!n.canToggleMeridian,!n.isEditable||!n.canToggleMeridian),t(e,2,0,n.meridian)})}function yi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function vi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep)&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canDecrementMinutes||!n.isEditable)})}function xi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0"]))],null,null)}function _i(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep)&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canDecrementSeconds||!n.isEditable)})}function Ti(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function wi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function Si(t){return o["\u0275vid"](2,[(t()(),o["\u0275eld"](0,0,null,null,48,"table",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,47,"tbody",[],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(r.hourStep)&&a),a},null,null)),(t()(),o["\u0275eld"](5,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,oi)),o["\u0275did"](7,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,si)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ui)),o["\u0275did"](11,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ci)),o["\u0275did"](13,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,li)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,di)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](18,0,null,null,14,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),o["\u0275eld"](20,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","HH"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeHours(r.hourStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeHours(r.hourStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeHours(0-r.hourStep,"key")&&a),"change"===e&&(a=!1!==r.updateHours(n.target.value)&&a),a},null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,fi)),o["\u0275did"](22,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,pi)),o["\u0275did"](24,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,hi)),o["\u0275did"](26,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,gi)),o["\u0275did"](28,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,mi)),o["\u0275did"](30,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,bi)),o["\u0275did"](32,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](33,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),o["\u0275eld"](34,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](35,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(0-r.hourStep)&&a),a},null,null)),(t()(),o["\u0275eld"](36,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,yi)),o["\u0275did"](38,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,vi)),o["\u0275did"](40,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,xi)),o["\u0275did"](42,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,_i)),o["\u0275did"](44,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ti)),o["\u0275did"](46,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,wi)),o["\u0275did"](48,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,7,0,n.showMinutes),t(e,9,0,n.showMinutes),t(e,11,0,n.showSeconds),t(e,13,0,n.showSeconds),t(e,15,0,n.showMeridian),t(e,17,0,n.showMeridian),t(e,22,0,n.showMinutes),t(e,24,0,n.showMinutes),t(e,26,0,n.showSeconds),t(e,28,0,n.showSeconds),t(e,30,0,n.showMeridian),t(e,32,0,n.showMeridian),t(e,38,0,n.showMinutes),t(e,40,0,n.showMinutes),t(e,42,0,n.showSeconds),t(e,44,0,n.showSeconds),t(e,46,0,n.showMeridian),t(e,48,0,n.showMeridian)},function(t,e){var n=e.component;t(e,2,0,!n.showSpinners),t(e,4,0,!n.canIncrementHours||!n.isEditable),t(e,19,0,n.invalidHours),t(e,20,0,n.invalidHours,n.readonlyInput,n.disabled,n.hours),t(e,33,0,!n.showSpinners),t(e,35,0,!n.canDecrementHours||!n.isEditable)})}var Oi=n("E2fk"),Ii=function(){function t(t){this.http=t}return t.prototype.getLogs=function(){return this.http.get("api/logs/all")},t.prototype.validateDashboardUrl=function(t){return this.http.get("api/grafana/validation/"+t)},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),Ci=function(){function t(t){this.logsService=t,this.bsConfig={dateInputFormat:"YYYY-MM-DD",containerClass:"theme-default"},this.prioritys=[{name:"Info",value:"[INF]"},{name:"Warning",value:"[WRN]"},{name:"Error",value:"[ERR]"},{name:"All",value:"All"}],this.priority="All",this.search="",this.startTime=new Date,this.endTime=new Date,this.startTime.setHours(0,0),this.endTime.setHours(23,59)}return t.prototype.ngOnInit=function(){var t=this;this.getInfo(),this.interval=window.setInterval(function(){t.getInfo()},5e3)},t.prototype.ngOnDestroy=function(){clearInterval(this.interval)},t.prototype.getInfo=function(){var t=this;this.logsService.getLogs().subscribe(function(e){t.contentData=e,t.filterLogs()})},t.prototype.abstractfilters=function(){var t,e=this.priority,n=this.search.toLowerCase().replace(/,/g,"");if(this.selectedDate){var a=this.selectedDate.getMonth()+1,r=this.selectedDate.getDate();t=this.selectedDate.getFullYear().toString()+"-"+(a<=9?"0"+a:""+a)+"-"+(r<=9?"0"+r:""+r)}else t="";return{priority:e,key:n,yearMonthDay:t,sTime:60*(this.startTime?this.startTime.getHours():0)+(this.startTime?this.startTime.getMinutes():0),eTime:60*(this.endTime?this.endTime.getHours():23)+(this.endTime?this.endTime.getMinutes():59)}},t.prototype.filterExecutor=function(t,e){return t.filter(function(t){var n,a,r=parseInt(t.stamp.slice(11,13),10),i=parseInt(t.stamp.slice(14,16),10);return n=e.yearMonthDay?e.yearMonthDay:t.stamp,a=60*r+i,t.priority===("All"===e.priority?t.priority:e.priority)&&-1!==t.message.toLowerCase().indexOf(e.key)&&-1!==t.stamp.indexOf(n)&&a>=e.sTime&&a<=e.eTime})},t.prototype.filterLogs=function(){var t=this.abstractfilters();this.clog=this.filterExecutor(this.contentData.clog,t),this.audit_log=this.filterExecutor(this.contentData.audit_log,t)},t.prototype.clearSearchKey=function(){this.search="",this.filterLogs()},t.prototype.clearDate=function(){this.selectedDate=null,this.filterLogs()},t}(),ki=o["\u0275crt"]({encapsulation:0,styles:[["p[_ngcontent-%COMP%]{font-family:monospace;color:#000}.well[_ngcontent-%COMP%] div[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{display:-webkit-box;display:flex}.well[_ngcontent-%COMP%] div[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.well[_ngcontent-%COMP%] .timestamp[_ngcontent-%COMP%]{font-weight:700;flex-shrink:0}.well[_ngcontent-%COMP%] .priority[_ngcontent-%COMP%]{margin-left:.5rem}.well[_ngcontent-%COMP%] .message[_ngcontent-%COMP%]{margin-left:1rem}.well[_ngcontent-%COMP%] .err[_ngcontent-%COMP%]{color:#a94442}.well[_ngcontent-%COMP%] .warn[_ngcontent-%COMP%]{color:#ffc200}.well[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{color:#2b99a8} timepicker table tbody tr td .bs-timepicker-field{width:3.5rem;font-size:1rem;padding:4px 6px} timepicker table tbody tr td .btn{font-size:1rem}.log-filters[_ngcontent-%COMP%]{margin-bottom:5px;padding:0 30px}.log-filters[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{box-sizing:border-box}.log-filters[_ngcontent-%COMP%] .filter-box[_ngcontent-%COMP%]{margin:0;padding:0 15px 5px 0;display:-webkit-box;display:flex;-webkit-box-pack:start;justify-content:flex-start;-webkit-box-align:center;align-items:center}.log-filters[_ngcontent-%COMP%] .filter-box[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{padding-top:5px;padding-right:5px}@media (max-width:991px){.log-filters[_ngcontent-%COMP%] .time-box[_ngcontent-%COMP%]{margin-top:20px}}@media (min-width:1200px){.log-filters[_ngcontent-%COMP%] .cd-col-4[_ngcontent-%COMP%]{width:28vw}.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:20vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:16vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:14vw}}@media (min-width:1400px){.log-filters[_ngcontent-%COMP%] .cd-col-4[_ngcontent-%COMP%]{width:24vw}.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:18vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:14vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:12vw}}@media (min-width:1600px){.log-filters[_ngcontent-%COMP%] .cd-col-4[_ngcontent-%COMP%]{width:22vw}.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:16vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:12vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:10vw}}@media (min-width:1800px){.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:14vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:11vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:9vw}}"]],data:{}});function Ni(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ri(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,7,"p",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,["",""])),(t()(),o["\u0275eld"](3,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),o["\u0275ppd"](4,1),(t()(),o["\u0275ted"](5,null,["",""])),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.stamp);var n=o["\u0275inlineInterpolate"](1,"priority ",o["\u0275unv"](e,3,0,t(e,4,0,o["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.priority)),"");t(e,3,0,n),t(e,5,0,e.context.$implicit.priority),t(e,7,0,e.context.$implicit.message)})}function Ai(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Ri)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.clog)},null)}function Ei(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["No entries found"]))],null,null)}function Di(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,7,"p",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,["",""])),(t()(),o["\u0275eld"](3,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),o["\u0275ppd"](4,1),(t()(),o["\u0275ted"](5,null,["",""])),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.stamp);var n=o["\u0275inlineInterpolate"](1,"priority ",o["\u0275unv"](e,3,0,t(e,4,0,o["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.priority)),"");t(e,3,0,n),t(e,5,0,e.context.$implicit.priority),t(e,7,0,e.context.$implicit.message)})}function Li(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Di)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.audit_log)},null)}function Pi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["No entries found"]))],null,null)}function Mi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,18,"div",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Ni)),o["\u0275did"](2,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),o["\u0275eld"](3,0,null,null,15,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](4,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](5,0,null,0,6,"tab",[["heading","Cluster Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](6,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](7,0,null,null,4,"div",[["class","well"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Ai)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ei)),o["\u0275did"](11,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](12,0,null,0,6,"tab",[["heading","Audit Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](13,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](14,0,null,null,4,"div",[["class","well"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Li)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Pi)),o["\u0275did"](18,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,o["\u0275nov"](e.parent,3)),t(e,6,0,"Cluster Logs"),t(e,9,0,n.clog),t(e,11,0,0===n.contentData.clog.length),t(e,13,0,"Audit Logs"),t(e,16,0,n.audit_log),t(e,18,0,0===n.contentData.audit_log.length)},function(t,e){t(e,3,0,o["\u0275nov"](e,4).clazz),t(e,5,0,o["\u0275nov"](e,6).id,o["\u0275nov"](e,6).active,o["\u0275nov"](e,6).addClass),t(e,12,0,o["\u0275nov"](e,13).id,o["\u0275nov"](e,13).active,o["\u0275nov"](e,13).addClass)})}function qi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["class","form-control"]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.name)})}function ji(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,62,"div",[["class","row log-filters"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,10,"div",[["class","col-xs-4 col-md-2 cd-col-1 filter-box"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Priority:"])),(t()(),o["\u0275eld"](4,0,null,null,7,"select",[["class","form-control"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,5).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,5).onTouched()&&a),"ngModelChange"===e&&(a=!1!==(r.priority=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},null,null)),o["\u0275did"](5,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](7,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,qi)),o["\u0275did"](11,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](12,0,null,null,14,"div",[["class","col-xs-4 col-md-3 cd-col-3 filter-box"]],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Keyword:"])),(t()(),o["\u0275eld"](15,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](16,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(t()(),o["\u0275eld"](17,0,null,null,0,"i",[["class","glyphicon glyphicon-search"]],null,null,null,null,null)),(t()(),o["\u0275eld"](18,0,null,null,5,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==o["\u0275nov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,19)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.search=n)&&a),"keyup"===e&&(a=!1!==r.filterLogs()&&a),a},null,null)),o["\u0275did"](19,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](21,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](23,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](24,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),o["\u0275eld"](25,0,null,null,1,"button",[["class","btn btn-default clear-input tc_clearInputBtn"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearSearchKey()&&a),a},null,null)),(t()(),o["\u0275eld"](26,0,null,null,0,"i",[["class","icon-prepend fa fa-remove"]],null,null,null,null,null)),(t()(),o["\u0275eld"](27,0,null,null,15,"div",[["class","col-xs-4 col-md-3 cd-col-2 filter-box"]],null,null,null,null,null)),(t()(),o["\u0275eld"](28,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Date:"])),(t()(),o["\u0275eld"](30,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](31,16777216,null,null,8,"input",[["bsDatepicker",""],["class","form-control"],["placeholder","Datepicker"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==o["\u0275nov"](t,32)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,32).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,32)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,32)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==o["\u0275nov"](t,34).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==o["\u0275nov"](t,34).hide()&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,34).onBlur()&&a),"ngModelChange"===e&&(a=!1!==(r.selectedDate=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},null,null)),o["\u0275did"](32,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275did"](33,737280,null,0,kr.c,[kr.a,o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a],{bsConfig:[0,"bsConfig"]},null),o["\u0275did"](34,16384,null,0,kr.f,[kr.c,kr.j,o.Renderer2,o.ElementRef,o.ChangeDetectorRef],null,null),o["\u0275prd"](1024,null,we.o,function(t){return[t]},[kr.f]),o["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,kr.f]),o["\u0275did"](37,671744,null,0,we.u,[[8,null],[6,we.o],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](39,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](40,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),o["\u0275eld"](41,0,null,null,1,"button",[["class","btn btn-default clear-input tc_clearInputBtn"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearDate()&&a),a},null,null)),(t()(),o["\u0275eld"](42,0,null,null,0,"i",[["class","icon-prepend fa fa-remove"]],null,null,null,null,null)),(t()(),o["\u0275eld"](43,0,null,null,0,"div",[["class","clearfix visible-xs-block"]],null,null,null,null,null)),(t()(),o["\u0275eld"](44,0,null,null,18,"div",[["class","col-xs-8 col-md-4 cd-col-4 filter-box time-box"]],null,null,null,null,null)),(t()(),o["\u0275eld"](45,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Time range:"])),(t()(),o["\u0275eld"](47,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.startTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},Si,ii)),o["\u0275prd"](512,null,ni,ni,[]),o["\u0275did"](49,704512,null,0,ai,[Qr,o.ChangeDetectorRef,ni,Rr],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[ai]),o["\u0275did"](51,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](53,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](54,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xa0\u2014\xa0"])),(t()(),o["\u0275eld"](56,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.endTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},Si,ii)),o["\u0275prd"](512,null,ni,ni,[]),o["\u0275did"](58,704512,null,0,ai,[Qr,o.ChangeDetectorRef,ni,Rr],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[ai]),o["\u0275did"](60,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](62,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){var n=e.component;t(e,7,0,n.priority),t(e,11,0,n.prioritys),t(e,21,0,n.search),t(e,33,0,n.bsConfig),t(e,37,0,n.selectedDate),t(e,49,0,1,n.showSpinners,!1),t(e,51,0,n.startTime),t(e,58,0,1,n.showSpinners,!1),t(e,60,0,n.endTime)},function(t,e){t(e,4,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending),t(e,18,0,o["\u0275nov"](e,23).ngClassUntouched,o["\u0275nov"](e,23).ngClassTouched,o["\u0275nov"](e,23).ngClassPristine,o["\u0275nov"](e,23).ngClassDirty,o["\u0275nov"](e,23).ngClassValid,o["\u0275nov"](e,23).ngClassInvalid,o["\u0275nov"](e,23).ngClassPending),t(e,31,0,o["\u0275nov"](e,39).ngClassUntouched,o["\u0275nov"](e,39).ngClassTouched,o["\u0275nov"](e,39).ngClassPristine,o["\u0275nov"](e,39).ngClassDirty,o["\u0275nov"](e,39).ngClassValid,o["\u0275nov"](e,39).ngClassInvalid,o["\u0275nov"](e,39).ngClassPending),t(e,47,0,o["\u0275nov"](e,53).ngClassUntouched,o["\u0275nov"](e,53).ngClassTouched,o["\u0275nov"](e,53).ngClassPristine,o["\u0275nov"](e,53).ngClassDirty,o["\u0275nov"](e,53).ngClassValid,o["\u0275nov"](e,53).ngClassInvalid,o["\u0275nov"](e,53).ngClassPending),t(e,56,0,o["\u0275nov"](e,62).ngClassUntouched,o["\u0275nov"](e,62).ngClassTouched,o["\u0275nov"](e,62).ngClassPristine,o["\u0275nov"](e,62).ngClassDirty,o["\u0275nov"](e,62).ngClassValid,o["\u0275nov"](e,62).ngClassInvalid,o["\u0275nov"](e,62).ngClassPending)})}function Fi(t){return o["\u0275vid"](0,[o["\u0275pid"](0,Oi.a,[]),(t()(),o["\u0275and"](16777216,null,null,1,null,Mi)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,[["logFiltersTpl",2]],null,0,null,ji))],function(t,e){t(e,2,0,e.component.contentData)},null)}function zi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-logs",[],null,null,null,Fi,ki)),o["\u0275did"](1,245760,null,0,Ci,[Ii],null,null)],function(t,e){t(e,1,0)},null)}var Gi,Yi=o["\u0275ccf"]("cd-logs",Ci,zi,{},{},[]),Vi=n("EgGo");!function(t){t.add="fa fa-plus",t.addCircle="fa fa-plus-circle",t.minusCircle="fa fa-minus-circle",t.edit="fa fa-pencil",t.destroy="fa fa-times",t.destroyCircle="fa fa-times-circle",t.exchange="fa fa-exchange",t.copy="fa fa-copy",t.clipboard="fa fa-clipboard",t.flatten="fa-chain-broken",t.trash="fa fa-trash-o",t.lock="fa fa-lock",t.unlock="fa fa-unlock",t.clone="fa fa-clone",t.undo="fa fa-undo",t.search="fa fa-search",t.start="fa fa-play",t.stop="fa fa-stop",t.analyse="fa fa-stethoscope",t.deepCheck="fa fa-cog",t.reweight="fa-balance-scale",t.left="fa fa-arrow-left",t.right="fa fa-arrow-right",t.down="fa fa-arrow-down",t.erase="fa fa-eraser",t.user="fa fa-user",t.share="fa fa-share-alt",t.key="fa fa-key-modern",t.warning="fa fa-exclamation-triangle",t.info="fa fa-info",t.infoCircle="fa fa-info-circle",t.questionCircle="fa fa-question-circle-o",t.check="fa fa-check",t.show="fa fa-eye",t.paragraph="fa fa-paragraph",t.terminal="fa fa-terminal",t.magic="fa fa-magic",t.hourglass="fa fa-hourglass-o",t.filledHourglass="fa fa-hourglass",t.table="fa fa-table",t.spinner="fa spinner",t.refresh="fa fa-refresh",t.bullseye="fa fa-bullseye",t.disk="fa fa-hdd-o",t.server="fa fa-server",t.filter="fa fa-filter",t.lineChart="fa fa-line-chart",t.signOut="fa fa-sign-out",t.health="fa fa-heartbeat",t.circle="fa fa-circle",t.bell="fa fa-bell",t.tag="fa fa-tag",t.leftArrow="fa fa-angle-left",t.rightArrow="fa fa-angle-right",t.leftArrowDouble="fa fa-angle-double-left",t.rightArrowDouble="fa fa-angle-double-right",t.flag="fa fa-flag",t.width="fa fa-fw",t.large="fa fa-lg",t.large2x="fa fa-2x",t.large3x="fa fa-3x",t.stack="fa fa-stack",t.stack1x="fa fa-stack-1x",t.stack2x="fa fa-stack-2x",t.pulse="fa fa-pulse",t.spin="fa fa-spin",t.inverse="fa fa-inverse"}(Gi||(Gi={}));var Hi=n("67Y/"),Bi=function(){function t(t,e){this.http=t,this.settingsService=e,this.baseURL="api/prometheus",this.settingsKey={alertmanager:"api/settings/alertmanager-api-host",prometheus:"api/settings/prometheus-api-host"}}return t.prototype.ifAlertmanagerConfigured=function(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.alertmanager,t,e)},t.prototype.disableAlertmanagerConfig=function(){this.settingsService.disableSetting(this.settingsKey.alertmanager)},t.prototype.ifPrometheusConfigured=function(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.prometheus,t,e)},t.prototype.disablePrometheusConfig=function(){this.settingsService.disableSetting(this.settingsKey.prometheus)},t.prototype.getAlerts=function(t){return void 0===t&&(t={}),this.http.get(this.baseURL,{params:t})},t.prototype.getSilences=function(t){return void 0===t&&(t={}),this.http.get(this.baseURL+"/silences",{params:t})},t.prototype.getRules=function(t){void 0===t&&(t="all");var e,n=this.http.get(this.baseURL+"/rules");switch(t){case"alerting":case"rewrites":e=t,n=n.pipe(Object(Hi.a)(function(t){return t.groups=t.groups.map(function(t){return t.rules=t.rules.filter(function(t){return t.type===e}),t}),t}))}return n},t.prototype.setSilence=function(t){return this.http.post(this.baseURL+"/silence",t,{observe:"response"})},t.prototype.expireSilence=function(t){return this.http.delete(this.baseURL+"/silence/"+t,{observe:"response"})},t.prototype.getNotifications=function(t){return this.http.get(this.baseURL+"/notifications?from="+(t&&t.id?t.id:"last"))},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c),o.inject(Fe.a))},token:t,providedIn:Rt.a}),t}(),Ui=n("G1I9"),Wi=function(){function t(t){this.notificationService=t}return t.prototype.sendNotifications=function(t){var e=this;t.forEach(function(t){return e.notificationService.show(t)})},t.prototype.convertToCustomAlerts=function(t){var e=this;return pt.uniqWith(t.map(function(t){return{status:pt.isObject(t.status)?t.status.state:e.getPrometheusNotificationStatus(t),name:t.labels.alertname,url:t.generatorURL,summary:t.annotations.summary,fingerprint:pt.isObject(t.status)&&t.fingerprint}}),pt.isEqual)},t.prototype.getPrometheusNotificationStatus=function(t){var e=t.status;return"firing"===e?"active":e},t.prototype.convertAlertToNotification=function(t){return new Ui.b(this.formatType(t.status),t.name+" ("+t.status+")",this.appendSourceLink(t,t.summary),void 0,"Prometheus")},t.prototype.formatType=function(t){return Zn.a[pt.findKey({error:["firing","active"],info:["suppressed","unprocessed"],success:["resolved"]},function(e){return e.includes(t)})]},t.prototype.appendSourceLink=function(t,e){return e+' '},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Xn.a))},token:t,providedIn:"root"}),t}(),Ki=function(){function t(t,e){this.alertFormatter=t,this.prometheusService=e,this.canAlertsBeNotified=!1,this.alerts=[],this.rules=[]}return t.prototype.getAlerts=function(){var t=this;this.prometheusService.ifAlertmanagerConfigured(function(){t.prometheusService.getAlerts().subscribe(function(e){return t.handleAlerts(e)},function(e){[404,504].includes(e.status)&&t.prometheusService.disableAlertmanagerConfig()})})},t.prototype.getRules=function(){var t=this;this.prometheusService.ifPrometheusConfigured(function(){t.prometheusService.getRules("alerting").subscribe(function(e){t.rules=e.groups.reduce(function(t,e){return t.concat(e.rules.map(function(t){return t.group=e.name,t}))},[])})})},t.prototype.refresh=function(){this.getAlerts(),this.getRules()},t.prototype.handleAlerts=function(t){this.canAlertsBeNotified&&this.notifyOnAlertChanges(t,this.alerts),this.alerts=t,this.canAlertsBeNotified=!0},t.prototype.notifyOnAlertChanges=function(t,e){var n=this,a=this.getChangedAlerts(this.alertFormatter.convertToCustomAlerts(t),this.alertFormatter.convertToCustomAlerts(e)).map(function(t){return n.alertFormatter.convertAlertToNotification(t)});this.alertFormatter.sendNotifications(a)},t.prototype.getChangedAlerts=function(t,e){return pt.differenceWith(t,e,pt.isEqual).concat(this.getVanishedAlerts(t,e))},t.prototype.getVanishedAlerts=function(t,e){return pt.differenceWith(e,t,function(t,e){return t.fingerprint===e.fingerprint}).map(function(t){return t.status="resolved",t})},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Wi),o.inject(Bi))},token:t,providedIn:"root"}),t}(),$i=new Vi.a("silence"),Zi=function(){function t(t,e,n,a,r){var i=this;this.authStorageService=t,this.prometheusAlertService=e,this.urlBuilder=n,this.i18n=a,this.cdDatePipe=r,this.selection=new Ve.a,this.icons=Gi,this.customCss={"label label-danger":"active","label label-warning":"unprocessed","label label-info":"suppressed"},this.permission=this.authStorageService.getPermissions().prometheus,this.tableActions=[{permission:"create",canBePrimary:function(t){return t.hasSingleSelection},disable:function(t){return!t.hasSingleSelection||t.first().cdExecuting},icon:Gi.add,routerLink:function(){return"/monitoring"+i.urlBuilder.getCreateFrom(i.selection.first().fingerprint)},name:this.i18n("Create Silence")}]}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"labels.alertname",flexGrow:2},{name:this.i18n("Job"),prop:"labels.job",flexGrow:2},{name:this.i18n("Severity"),prop:"labels.severity"},{name:this.i18n("State"),prop:"status.state",cellTransformation:un.a.classAdding},{name:this.i18n("Started"),prop:"startsAt",pipe:this.cdDatePipe},{name:this.i18n("URL"),prop:"generatorURL",sortable:!1,cellTemplate:this.externalLinkTpl}]},t.prototype.updateSelection=function(t){this.selection=t},t}(),Xi=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Ji(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](1,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](3,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Tn.b,Tn.a)),o["\u0275did"](5,638976,null,0,wn.a,[Sn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"],appendParentKey:[3,"appendParentKey"],hideEmpty:[4,"hideEmpty"],customCss:[5,"customCss"]},null)],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.selection.first(),!1,!0,!1,!0,n.customCss)},function(t,e){t(e,0,0,o["\u0275nov"](e,1).clazz),t(e,2,0,o["\u0275nov"](e,3).id,o["\u0275nov"](e,3).active,o["\u0275nov"](e,3).addClass)})}function Qi(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,0,"i",[["class","fa fa-line-chart"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[" Source"]))],null,function(t,e){t(e,0,0,e.context.value)})}function to(t){return o["\u0275vid"](0,[o["\u0275qud"](402653184,1,{externalLinkTpl:0}),(t()(),o["\u0275eld"](1,0,null,null,5,"cd-table",[["identifier","fingerprint"],["selectionType","single"]],null,[[null,"updateSelection"]],function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a},Ge.b,Ge.a)),o["\u0275did"](2,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"],customCss:[5,"customCss"]},{updateSelection:"updateSelection"}),(t()(),o["\u0275eld"](3,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,xn.b,xn.a)),o["\u0275did"](4,114688,null,0,_n.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),o["\u0275and"](16777216,null,2,1,null,Ji)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,[[1,2],["externalLinkTpl",2]],null,0,null,Qi))],function(t,e){var n=e.component;t(e,2,0,n.prometheusAlertService.alerts,n.columns,"fingerprint",!0,"single",n.customCss),t(e,4,0,n.permission,n.selection,n.tableActions),t(e,6,0,n.selection.hasSingleSelection)},null)}var eo=n("TZo1"),no=n("9Kw/"),ao=n("wd/R"),ro=function(){function t(){}return t.prototype.transform=function(t,e){return void 0===e&&(e=!1),e?ao(t).fromNow():this._forHumans(t)},t.prototype._forHumans=function(t){for(var e=[[""+Math.floor(t/31536e3),"years"],[""+Math.floor(t%31536e3/86400),"days"],[""+Math.floor(t%86400/3600),"hours"],[""+Math.floor(t%3600/60),"minutes"],[""+Math.floor(t%60),"seconds"]],n="",a=0,r=e.length;a1?n.rules:n.rule,alerts:e?e>1?n.alerts:n.alert:n.noAlerts}):n.noRule},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Tt.a))},token:t,providedIn:"root"}),t}(),Ao=function(){function t(){}return t.prototype.calculateDuration=function(t,e){var n=+t,a=+e,r=this.getDuration(Math.abs(n-a));return n>a?"-"+r:r},t.prototype.getDuration=function(t){var e=new Date(t),n=e.getUTCHours(),a=e.getUTCMinutes(),r=function(t,e){return t?t+e:t};return[r(Math.floor(t/864e5),"d"),r(n,"h"),r(a,"m")].filter(function(t){return t}).join(" ")},t.prototype.calculateDate=function(t,e,n){var a=+t;if(!pt.isNaN(a)){var r=this.getDurationMs(e)*(n?-1:1);return new Date(a+r)}},t.prototype.getDurationMs=function(t){return 6e4*(60*(24*this.getNumbersFromString(t,"d")+this.getNumbersFromString(t,"h"))+this.getNumbersFromString(t,"m"))},t.prototype.getNumbersFromString=function(t,e){var n=t.match(new RegExp("[0-9 ]+"+e,"i"));return n?parseInt(n,10):0},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),Eo=function(){function t(t,e,n){this.formBuilder=t,this.silenceMatcher=e,this.bsModalRef=n,this.submitAction=new o.EventEmitter,this.editMode=!1,this.nameAttributes=["alertname","instance","job","severity"],this.possibleValues=[],this.matcherMatch=void 0,this.createForm(),this.subscribeToChanges()}return t.prototype.createForm=function(){this.form=this.formBuilder.group({name:[null,[we.A.required]],value:[{value:null,disabled:!0},[we.A.required]],isRegex:new we.i(!1)})},t.prototype.subscribeToChanges=function(){var t=this;this.form.get("name").valueChanges.subscribe(function(e){null!==e?(t.setPossibleValues(e),t.form.get("value").enable()):t.form.get("value").disable()}),this.form.get("value").valueChanges.subscribe(function(e){var n=t.form.value;n.value=e,t.matcherMatch=t.silenceMatcher.singleMatch(n,t.rules)})},t.prototype.setPossibleValues=function(t){var e=this;this.possibleValues=pt.sortedUniq(this.rules.map(function(n){return pt.get(n,e.silenceMatcher.getAttributePath(t))}).filter(function(t){return t}))},t.prototype.preFillControls=function(t){this.form.setValue(t)},t.prototype.onSubmit=function(){this.submitAction.emit(this.form.value),this.bsModalRef.hide()},t}(),Do=function(){function t(t,e,n,a,r,i,o,s,u,c,l,d){this.i18n=t,this.router=e,this.authStorageService=n,this.formBuilder=a,this.prometheusService=r,this.notificationService=i,this.route=o,this.timeDiff=s,this.bsModalService=u,this.silenceMatcher=c,this.actionLabels=l,this.succeededLabels=d,this.icons=Gi,this.bsConfig={dateInputFormat:"YYYY-MM-DDT HH:mm"},this.recreate=!1,this.edit=!1,this.resource=this.i18n("silence"),this.matchers=[],this.matcherMatch=void 0,this.matcherConfig=[{tooltip:this.i18n("Attribute name"),icon:this.icons.paragraph,attribute:"name"},{tooltip:this.i18n("Value"),icon:this.icons.terminal,attribute:"value"},{tooltip:this.i18n("Regular expression"),icon:this.icons.magic,attribute:"isRegex"}],this.init()}return t.prototype.init=function(){this.chooseMode(),this.authenticate(),this.createForm(),this.setupDates(),this.getData()},t.prototype.chooseMode=function(){this.edit=this.router.url.startsWith("/monitoring/silence/edit"),this.recreate=this.router.url.startsWith("/monitoring/silence/recreate"),this.action=this.edit?this.actionLabels.EDIT:this.recreate?this.actionLabels.RECREATE:this.actionLabels.CREATE},t.prototype.authenticate=function(){this.permission=this.authStorageService.getPermissions().prometheus,this.permission.read&&(this.edit?this.permission.update:this.permission.create)||this.router.navigate(["/404"])},t.prototype.createForm=function(){var t=this;this.form=this.formBuilder.group({startsAt:[null,[we.A.required]],duration:["2h",[we.A.min(1)]],endsAt:[null,[we.A.required]],createdBy:[this.authStorageService.getUsername(),[we.A.required]],comment:[null,[we.A.required]]},{validators:na.a.custom("matcherRequired",function(){return 0===t.matchers.length})})},t.prototype.setupDates=function(){var t=new Date;t.setSeconds(0,0),this.form.silentSet("startsAt",t),this.updateDate(),this.subscribeDateChanges()},t.prototype.updateDate=function(t){var e=this.timeDiff.calculateDate(this.form.getValue(t?"endsAt":"startsAt"),this.form.getValue("duration"),t);e&&this.form.silentSet(t?"startsAt":"endsAt",e)},t.prototype.subscribeDateChanges=function(){var t=this;this.form.get("startsAt").valueChanges.subscribe(function(){t.onDateChange()}),this.form.get("duration").valueChanges.subscribe(function(){t.updateDate()}),this.form.get("endsAt").valueChanges.subscribe(function(){t.onDateChange(!0)})},t.prototype.onDateChange=function(t){this.form.getValue("startsAt")0),t(e,6,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"invalidUuid")),t(e,8,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"pattern"))},null)}function Rs(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["This field is required."]))],null,null)}function As(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too high! It must be lower or equal to ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.max)})}function Es(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too low! It must be greater or equal to ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.min)})}function Ds(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["The entered value needs to be a number."]))],null,null)}function Ls(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,15,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,6,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"min",0],[8,"max",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==o["\u0275nov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==o["\u0275nov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,3).onTouched()&&a),a},null,null)),o["\u0275did"](2,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275did"](3,16384,null,0,we.C,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),o["\u0275did"](5,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](7,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Rs)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,As)),o["\u0275did"](11,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Es)),o["\u0275did"](13,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ds)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,5,0,o["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,9,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"required")),t(e,11,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"max")),t(e,13,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"min")),t(e,15,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"pattern"))},function(t,e){t(e,1,0,o["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),o["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.min,""),o["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.max,""),o["\u0275nov"](e,7).ngClassUntouched,o["\u0275nov"](e,7).ngClassTouched,o["\u0275nov"](e,7).ngClassPristine,o["\u0275nov"](e,7).ngClassDirty,o["\u0275nov"](e,7).ngClassValid,o["\u0275nov"](e,7).ngClassInvalid,o["\u0275nov"](e,7).ngClassPending)})}function Ps(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Ms(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["The entered value needs to be a number or decimal."]))],null,null)}function qs(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,11,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,6,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==o["\u0275nov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==o["\u0275nov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,3).onTouched()&&a),a},null,null)),o["\u0275did"](2,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275did"](3,16384,null,0,we.C,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),o["\u0275did"](5,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](7,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ps)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ms)),o["\u0275did"](11,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,5,0,o["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,9,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"required")),t(e,11,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,o["\u0275nov"](e.parent.parent,3),"pattern"))},function(t,e){t(e,1,0,o["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),o["\u0275nov"](e,7).ngClassUntouched,o["\u0275nov"](e,7).ngClassTouched,o["\u0275nov"](e,7).ngClassPristine,o["\u0275nov"](e,7).ngClassDirty,o["\u0275nov"](e,7).ngClassValid,o["\u0275nov"](e,7).ngClassInvalid,o["\u0275nov"](e,7).ngClassPending)})}function js(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),o["\u0275ted"](4,null,[" "," "])),(t()(),o["\u0275and"](16777216,null,null,1,null,Ts)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ws)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,2,null,Ns)),o["\u0275did"](10,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),o["\u0275pad"](11,3),(t()(),o["\u0275and"](16777216,null,null,2,null,Ls)),o["\u0275did"](13,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),o["\u0275pad"](14,4),(t()(),o["\u0275and"](16777216,null,null,1,null,qs)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,2,0,e.component.mgrModuleForm.showError(e.context.$implicit.value.name,o["\u0275nov"](e.parent,3)));t(e,1,0,"form-group",n),t(e,6,0,e.context.$implicit.value.long_desc||e.context.$implicit.value.desc),t(e,8,0,"bool"===e.context.$implicit.value.type);var a=t(e,11,0,"addr","str","uuid").includes(e.context.$implicit.value.type);t(e,10,0,a);var r=t(e,14,0,"uint","int","size","secs").includes(e.context.$implicit.value.type);t(e,13,0,r),t(e,16,0,"float"===e.context.$implicit.value.type)},function(t,e){t(e,3,0,o["\u0275inlineInterpolate"](1,"",e.context.$implicit.value.name,"")),t(e,4,0,e.context.$implicit.value.name)})}function Fs(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,22,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,21,"form",[["class","form-horizontal"],["name","mgrModuleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,3).onReset()&&a),a},null,null)),o["\u0275did"](2,16384,null,0,we.D,[],null,null),o["\u0275did"](3,540672,[["frm",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](5,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](6,0,null,null,16,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,2,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,1,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Edit Manager module"])),(t()(),o["\u0275eld"](10,0,null,null,3,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,2,null,js)),o["\u0275did"](12,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),o["\u0275pid"](0,i.KeyValuePipe,[o.KeyValueDiffers]),(t()(),o["\u0275eld"](14,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](15,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),o["\u0275eld"](16,0,null,null,3,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a},Ka.b,Ka.a)),o["\u0275did"](17,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),o["\u0275eld"](18,0,null,0,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Update"])),(t()(),o["\u0275eld"](20,0,null,null,2,"button",[["class","btn btn-sm btn-default"],["routerLink","/mgr-modules"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,21).onClick()&&a),a},null,null)),o["\u0275did"](21,16384,null,0,et.m,[et.l,et.a,[8,null],o.Renderer2,o.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Back"]))],function(t,e){var n=e.component;t(e,3,0,n.mgrModuleForm),t(e,12,0,o["\u0275unv"](e,12,0,o["\u0275nov"](e,13).transform(n.moduleOptions))),t(e,17,0,n.mgrModuleForm,"button"),t(e,21,0,"/mgr-modules")},function(t,e){t(e,1,0,o["\u0275nov"](e,5).ngClassUntouched,o["\u0275nov"](e,5).ngClassTouched,o["\u0275nov"](e,5).ngClassPristine,o["\u0275nov"](e,5).ngClassDirty,o["\u0275nov"](e,5).ngClassValid,o["\u0275nov"](e,5).ngClassInvalid,o["\u0275nov"](e,5).ngClassPending)})}function zs(t){return o["\u0275vid"](0,[o["\u0275pid"](0,No.a,[]),(t()(),o["\u0275and"](16777216,null,null,1,null,xs)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,_s)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Fs)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.loading&&!n.error),t(e,4,0,n.loading&&n.error),t(e,6,0,!n.loading&&!n.error)},null)}function Gs(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-mgr-module-form",[],null,null,null,zs,vs)),o["\u0275did"](1,114688,null,0,ys,[et.a,et.l,ua.a,as,Xn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var Ys=o["\u0275ccf"]("cd-mgr-module-form",ys,Gs,{},{},[]),Vs=function(){function t(){this.lhsCounter="mds_mem.ino",this.rhsCounter="mds_server.handle_client_request",this.chart={datasets:[{label:this.lhsCounter,yAxisID:"LHS",data:[],lineTension:.1},{label:this.rhsCounter,yAxisID:"RHS",data:[],lineTension:.1}],options:{title:{text:"",display:!0},responsive:!0,maintainAspectRatio:!1,legend:{position:"top"},scales:{xAxes:[{position:"top",type:"time",time:{displayFormats:{quarter:"MMM YYYY"}},ticks:{maxRotation:0}}],yAxes:[{id:"LHS",type:"linear",position:"left"},{id:"RHS",type:"linear",position:"right"}]},tooltips:{enabled:!1,mode:"index",intersect:!1,position:"nearest",callbacks:{title:function(t,e){var n=0;if(t.length>0){var a=t[0];n=e.datasets[a.datasetIndex].data[a.index].x}return n.toString()}}}},chartType:"line"}}return t.prototype.ngOnInit=function(){pt.isUndefined(this.mdsCounter)||(this.setChartTooltip(),this.updateChart())},t.prototype.ngOnChanges=function(){pt.isUndefined(this.mdsCounter)||this.updateChart()},t.prototype.setChartTooltip=function(){var t=new ht.a(this.chartCanvas,this.chartTooltip,function(t){return t.caretX+"px"},function(t){return t.caretY-t.height-23+"px"});t.getTitle=function(t){return ao(t,"x").format("LTS")},t.checkOffset=!0,pt.merge(this.chart,{options:{title:{text:this.mdsCounter.name},tooltips:{custom:function(e){return t.customTooltips(e)}}}})},t.prototype.updateChart=function(){var t=[{data:this.convertTimeSeries(this.mdsCounter[this.lhsCounter])},{data:this.deltaTimeSeries(this.mdsCounter[this.rhsCounter])}];pt.merge(this.chart,{datasets:t}),this.chart.datasets=this.chart.datasets.slice()},t.prototype.convertTimeSeries=function(t){var e=[];return pt.each(t,function(t){e.push({x:1e3*t[0],y:t[1]})}),e.shift(),e},t.prototype.deltaTimeSeries=function(t){var e,n=t[0],a=[];for(e=1;ei?1:-1}}],data:[]}},t.prototype.refresh=function(){var t=this;this.cephfsService.getCephfs(this.id).subscribe(function(e){t.ranks.data=e.cephfs.ranks,t.pools.data=e.cephfs.pools,t.pools.data.forEach(function(t){t.size=t.used+t.avail}),t.standbys=[{key:t.i18n("Standby daemons"),value:e.standbys.map(function(t){return t.name}).join(", ")}],t.name=e.cephfs.name,t.clientCount=e.cephfs.client_count}),this.cephfsService.getMdsCounters(this.id).subscribe(function(e){pt.each(t.mdsCounters,function(n,a){void 0===e[a]&&delete t.mdsCounters[a]}),pt.each(e,function(e,n){e.name=n,t.mdsCounters[n]=e})})},t.prototype.trackByFn=function(t,e){return e.name},t}(),tu=o["\u0275crt"]({encapsulation:0,styles:[[".progress[_ngcontent-%COMP%]{margin-bottom:0}"]],data:{}});function eu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,2,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"cd-cephfs-chart",[],null,null,null,Bs,Hs)),o["\u0275did"](3,638976,null,0,Vs,[],{mdsCounter:[0,"mdsCounter"]},null)],function(t,e){t(e,3,0,e.context.$implicit)},null)}function nu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-cephfs-clients",[],null,null,null,Js,Xs)),o["\u0275did"](1,114688,null,0,Zs,[Ks,Tt.a],{id:[0,"id"]},null)],function(t,e){t(e,1,0,e.component.id)},null)}function au(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](1,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","tbO9LAiZz"]],null,null,null,Pe.b,Pe.a)),o["\u0275did"](3,638976,null,0,Me.a,[qe.a,je.DomSanitizer,Fe.a,ze.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"mds-performance?var-mds_servers=mds."+n.grafanaId,"one","tbO9LAiZz")},function(t,e){t(e,0,0,o["\u0275nov"](e,1).id,o["\u0275nov"](e,1).active,o["\u0275nov"](e,1).addClass)})}function ru(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,26,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](1,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](2,0,null,0,18,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](3,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](4,0,null,null,12,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,6,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Ranks"])),(t()(),o["\u0275eld"](8,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a},Ge.b,Ge.a)),o["\u0275did"](9,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},{fetchData:"fetchData"}),(t()(),o["\u0275eld"](10,0,null,null,1,"cd-table-key-value",[],null,null,null,Tn.b,Tn.a)),o["\u0275did"](11,638976,null,0,wn.a,[Sn.a],{data:[0,"data"]},null),(t()(),o["\u0275eld"](12,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Pools"])),(t()(),o["\u0275eld"](15,0,null,null,1,"cd-table",[],null,null,null,Ge.b,Ge.a)),o["\u0275did"](16,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},null),(t()(),o["\u0275eld"](17,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["MDS performance counters"])),(t()(),o["\u0275and"](16777216,null,null,1,null,eu)),o["\u0275did"](20,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),o["\u0275eld"](21,0,null,0,3,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"],[null,"deselect"]],function(t,e,n){var a=!0,r=t.component;return"selectTab"===e&&(a=0!=(r.clientsSelect=!0)&&a),"deselect"===e&&(a=0!=(r.clientsSelect=!1)&&a),a},null,null)),o["\u0275did"](22,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},{selectTab:"selectTab",deselect:"deselect"}),(t()(),o["\u0275and"](16777216,null,null,1,null,nu)),o["\u0275did"](24,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,0,1,null,au)),o["\u0275did"](26,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,9,0,n.ranks.data,n.ranks.columns,!1),t(e,11,0,n.standbys),t(e,16,0,n.pools.data,n.pools.columns,!1),t(e,20,0,n.objectValues(n.mdsCounters),n.trackByFn),t(e,22,0,o["\u0275inlineInterpolate"](1,"Clients: ",n.clientCount,"")),t(e,24,0,n.clientsSelect),t(e,26,0,n.grafanaPermission.read)},function(t,e){t(e,0,0,o["\u0275nov"](e,1).clazz),t(e,2,0,o["\u0275nov"](e,3).id,o["\u0275nov"](e,3).active,o["\u0275nov"](e,3).addClass),t(e,21,0,o["\u0275nov"](e,22).id,o["\u0275nov"](e,22).active,o["\u0275nov"](e,22).addClass)})}function iu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,mn.b,mn.a)),o["\u0275did"](1,573440,null,0,bn.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],function(t,e){t(e,1,0,e.context.row.size,e.context.row.used)},null)}function ou(t){return o["\u0275vid"](0,[(t()(),o["\u0275ted"](0,null,[" ",": "," /s\n"])),o["\u0275ppd"](1,1)],null,function(t,e){var n="standby-replay"===e.context.row.state?"Evts":"Reqs",a=o["\u0275unv"](e,0,1,t(e,1,0,o["\u0275nov"](e.parent,0),e.context.value));t(e,0,0,n,a)})}function su(t){return o["\u0275vid"](0,[o["\u0275pid"](0,mt.a,[Ct.a]),o["\u0275qud"](402653184,1,{poolUsageTpl:0}),o["\u0275qud"](402653184,2,{activityTmpl:0}),(t()(),o["\u0275and"](16777216,null,null,1,null,ru)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,[[1,2],["poolUsageTpl",2]],null,0,null,iu)),(t()(),o["\u0275and"](0,[[2,2],["activityTmpl",2]],null,0,null,ou))],function(t,e){t(e,4,0,e.component.selectedItem)},null)}var uu=function(){function t(t,e){this.cephfsService=t,this.i18n=e,this.filesystems=[],this.selection=new Ve.a}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"mdsmap.fs_name",flexGrow:2},{name:this.i18n("Created"),prop:"mdsmap.created",flexGrow:2},{name:this.i18n("Enabled"),prop:"mdsmap.enabled",flexGrow:1}]},t.prototype.loadFilesystems=function(t){var e=this;this.cephfsService.list().subscribe(function(t){e.filesystems=t},function(){t.error()})},t.prototype.updateSelection=function(t){this.selection=t},t}(),cu=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function lu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.loadFilesystems(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ge.b,Ge.a)),o["\u0275did"](1,2867200,null,0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),o["\u0275eld"](2,0,null,2,1,"cd-cephfs-detail",[["cdTableDetail",""]],null,null,null,su,tu)),o["\u0275did"](3,638976,null,0,Qs,[d.a,Ks,gt.a,mt.a,Tt.a],{selection:[0,"selection"]},null)],function(t,e){var n=e.component;t(e,1,0,n.filesystems,n.columns,"flex","id","true","single"),t(e,3,0,n.selection)},null)}function du(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-cephfs-list",[],null,null,null,lu,cu)),o["\u0275did"](1,114688,null,0,uu,[Ks,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var fu=o["\u0275ccf"]("cd-cephfs-list",uu,du,{},{},[]),pu=function(){function t(t,e,n,a){this.route=t,this.summaryService=e,this.cephReleaseNamePipe=n,this.i18n=a,this.message=this.i18n("The NFS Ganesha service is not configured.")}return t.prototype.ngOnInit=function(){var t=this,e=this.summaryService.subscribe(function(n){if(n){var a=t.cephReleaseNamePipe.transform(n.version);t.docsUrl="http://docs.ceph.com/docs/"+a+"/mgr/dashboard/#configuring-nfs-ganesha-in-the-dashboard",setTimeout(function(){e.unsubscribe()},0)}});this.routeParamsSubscribe=this.route.params.subscribe(function(e){t.message=e.message})},t.prototype.ngOnDestroy=function(){this.routeParamsSubscribe.unsubscribe()},t}(),hu=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function gu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,8,"cd-info-panel",[],null,null,null,eo.b,eo.a)),o["\u0275did"](1,49152,null,0,no.a,[Tt.a],null,null),(t()(),o["\u0275ted"](2,0,[" ",""])),(t()(),o["\u0275eld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,0,4,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Please consult the "])),(t()(),o["\u0275eld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["documentation"])),(t()(),o["\u0275ted"](-1,null,[" on how to configure and enable the NFS Ganesha management functionality."]))],null,function(t,e){var n=e.component;t(e,2,0,n.message),t(e,6,0,o["\u0275inlineInterpolate"](1,"",n.docsUrl,""))})}function mu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-nfs-501",[],null,null,null,gu,hu)),o["\u0275did"](1,245760,null,0,pu,[et.a,qe.a,ze.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var bu=o["\u0275ccf"]("cd-nfs-501",pu,mu,{},{},[]),yu=function(){function t(t){this.i18n=t,this.clients=[],this.clientsColumns=[{name:this.i18n("Addresses"),prop:"addresses",flexGrow:2},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:1},{name:this.i18n("Squash"),prop:"squash",flexGrow:1}]}return t.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.clients=this.selectedItem.clients,this.data={},this.data[this.i18n("Cluster")]=this.selectedItem.cluster_id,this.data[this.i18n("Daemons")]=this.selectedItem.daemons,this.data[this.i18n("NFS Protocol")]=this.selectedItem.protocols.map(function(t){return"NFSv"+t}),this.data[this.i18n("Pseudo")]=this.selectedItem.pseudo,this.data[this.i18n("Access Type")]=this.selectedItem.access_type,this.data[this.i18n("Squash")]=this.selectedItem.squash,this.data[this.i18n("Transport")]=this.selectedItem.transports,this.data[this.i18n("Path")]=this.selectedItem.path,"CEPH"===this.selectedItem.fsal.name?(this.data[this.i18n("Storage Backend")]=this.i18n("CephFS"),this.data[this.i18n("CephFS User")]=this.selectedItem.fsal.user_id,this.data[this.i18n("CephFS Filesystem")]=this.selectedItem.fsal.fs_name,this.data[this.i18n("Security Label")]=this.selectedItem.fsal.sec_label_xattr):(this.data[this.i18n("Storage Backend")]=this.i18n("Object Gateway"),this.data[this.i18n("Object Gateway User")]=this.selectedItem.fsal.rgw_user_id))},t}(),vu=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function xu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),o["\u0275did"](1,180224,null,0,X.d,[X.e,o.Renderer2,o.ElementRef],null,null),(t()(),o["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](3,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Tn.b,Tn.a)),o["\u0275did"](5,638976,null,0,wn.a,[Sn.a],{data:[0,"data"]},null),(t()(),o["\u0275eld"](6,0,null,0,3,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),o["\u0275did"](7,212992,null,0,X.b,[X.d,o.ElementRef,o.Renderer2],{heading:[0,"heading"]},null),(t()(),o["\u0275eld"](8,0,null,null,1,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","addresses"],["selectionType",""]],null,null,null,Ge.b,Ge.a)),o["\u0275did"](9,2867200,[["table",4]],0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},null)],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.data),t(e,7,0,o["\u0275inlineInterpolate"](1,"Clients (",n.clients.length,")")),t(e,9,0,n.clients,n.clientsColumns,"flex","addresses","true","")},function(t,e){t(e,0,0,o["\u0275nov"](e,1).clazz),t(e,2,0,o["\u0275nov"](e,3).id,o["\u0275nov"](e,3).active,o["\u0275nov"](e,3).addClass),t(e,6,0,o["\u0275nov"](e,7).id,o["\u0275nov"](e,7).active,o["\u0275nov"](e,7).addClass)})}function _u(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,xu)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,null==n.selection?null:n.selection.hasSingleSelection)},null)}var Tu=n("VTlA"),wu=n("ufoC"),Su=function(){function t(t,e){this.http=t,this.i18n=e,this.apiPath="api/nfs-ganesha",this.uiApiPath="ui-api/nfs-ganesha",this.nfsAccessType=[{value:"RW",help:this.i18n("Allows all operations")},{value:"RO",help:this.i18n("Allows only operations that do not modify the server")},{value:"MDONLY",help:this.i18n("Does not allow read or write operations, but allows any other operation")},{value:"MDONLY_RO",help:this.i18n("Does not allow read, write, or any operation that modifies file attributes or directory content")},{value:"NONE",help:this.i18n("Allows no access at all")}],this.nfsFsal=[{value:"CEPH",descr:this.i18n("CephFS")},{value:"RGW",descr:this.i18n("Object Gateway")}],this.nfsSquash=["no_root_squash","root_id_squash","root_squash","all_squash"]}return t.prototype.list=function(){return this.http.get(this.apiPath+"/export")},t.prototype.get=function(t,e){return this.http.get(this.apiPath+"/export/"+t+"/"+e)},t.prototype.create=function(t){return this.http.post(this.apiPath+"/export",t,{observe:"response"})},t.prototype.update=function(t,e,n){return this.http.put(this.apiPath+"/export/"+t+"/"+e,n,{observe:"response"})},t.prototype.delete=function(t,e){return this.http.delete(this.apiPath+"/export/"+t+"/"+e,{observe:"response"})},t.prototype.lsDir=function(t){return this.http.get(this.uiApiPath+"/lsdir?root_dir="+t)},t.prototype.buckets=function(t){return this.http.get(this.uiApiPath+"/rgw/buckets?user_id="+t)},t.prototype.clients=function(){return this.http.get(this.uiApiPath+"/cephx/clients")},t.prototype.fsals=function(){return this.http.get(this.uiApiPath+"/fsals")},t.prototype.filesystems=function(){return this.http.get(this.uiApiPath+"/cephfs/filesystems")},t.prototype.daemon=function(){return this.http.get(this.apiPath+"/daemon")},t.prototype.start=function(t){return this.http.put(this.apiPath+"/service/"+t+"/start",null,{observe:"response"})},t.prototype.stop=function(t){return this.http.put(this.apiPath+"/service/"+t+"/stop",null,{observe:"response"})},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c),o.inject(Tt.a))},token:t,providedIn:Rt.a}),t}(),Ou=n("kvvV"),Iu=n("kn/O"),Cu=function(){function t(t,e,n,a,r,i,o){var s=this;this.authStorageService=t,this.i18n=e,this.modalService=n,this.nfsService=a,this.taskListService=r,this.taskWrapper=i,this.actionLabels=o,this.selection=new Ve.a,this.isDefaultCluster=!1,this.builders={"nfs/create":function(t){return{path:t.path,cluster_id:t.cluster_id,fsal:t.fsal}}},this.permission=this.authStorageService.getPermissions().nfs,this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return"/nfs/create"},canBePrimary:function(t){return!t.hasSingleSelection},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return"/nfs/edit/"+(s.selection.first()&&encodeURI(s.selection.first().cluster_id)+"/"+encodeURI(s.selection.first().export_id))},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-times",click:function(){return s.deleteNfsModal()},name:this.actionLabels.DELETE}]}return t.prototype.ngOnInit=function(){var t=this;this.columns=[{name:this.i18n("Path"),prop:"path",flexGrow:2,cellTransformation:un.a.executing},{name:this.i18n("Pseudo"),prop:"pseudo",flexGrow:2},{name:this.i18n("Cluster"),prop:"cluster_id",flexGrow:2},{name:this.i18n("Daemons"),prop:"daemons",flexGrow:2},{name:this.i18n("Storage Backend"),prop:"fsal",flexGrow:2,cellTemplate:this.nfsFsal},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:2}],this.nfsService.daemon().subscribe(function(e){var n=pt(e).map(function(t){return t.cluster_id}).uniq().value();t.isDefaultCluster=1===n.length&&"_default_"===n[0],t.columns[2].isHidden=t.isDefaultCluster,t.table&&t.table.updateColumns(),t.taskListService.init(function(){return t.nfsService.list()},function(e){return t.prepareResponse(e)},function(e){return t.exports=e},function(){return t.onFetchError()},t.taskFilter,t.itemFilter,t.builders)},function(){t.onFetchError()})},t.prototype.ngOnDestroy=function(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()},t.prototype.prepareResponse=function(t){var e=[];return t.forEach(function(t){t.id=t.cluster_id+":"+t.export_id,t.state="LOADING",e=e.concat(t)}),e},t.prototype.onFetchError=function(){this.table.reset(),this.viewCacheStatus={status:$s.a.ValueException}},t.prototype.itemFilter=function(t,e){return t.cluster_id===e.metadata.cluster_id&&t.export_id===e.metadata.export_id},t.prototype.taskFilter=function(t){return["nfs/create","nfs/delete","nfs/edit"].includes(t.name)},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.deleteNfsModal=function(){var t=this,e=this.selection.first().cluster_id,n=this.selection.first().export_id;this.modalRef=this.modalService.show(Kn.a,{initialState:{itemDescription:this.i18n("NFS export"),itemNames:[e+":"+n],submitActionObservable:function(){return t.taskWrapper.wrapTaskAroundCall({task:new Ou.a("nfs/delete",{cluster_id:e,export_id:n}),call:t.nfsService.delete(e,n)})}}})},t}(),ku=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Nu(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["CephFS"]))],null,null)}function Ru(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Object Gateway"]))],null,null)}function Au(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Nu)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ru)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,"CEPH"===e.context.value.name),t(e,3,0,"RGW"===e.context.value.name)},null)}function Eu(t){return o["\u0275vid"](0,[o["\u0275qud"](402653184,1,{nfsState:0}),o["\u0275qud"](402653184,2,{nfsFsal:0}),o["\u0275qud"](402653184,3,{table:0}),(t()(),o["\u0275eld"](3,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a},Ge.b,Ge.a)),o["\u0275did"](4,2867200,[[3,4],["table",4]],0,Ye.a,[o.NgZone,o.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),o["\u0275eld"](5,0,null,0,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,xn.b,xn.a)),o["\u0275did"](7,114688,null,0,_n.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),o["\u0275eld"](8,0,null,2,1,"cd-nfs-details",[["cdTableDetail",""]],null,null,null,_u,vu)),o["\u0275did"](9,573440,null,0,yu,[Tt.a],{selection:[0,"selection"]},null),(t()(),o["\u0275and"](0,[[2,2],["nfsFsal",2]],null,0,null,Au))],function(t,e){var n=e.component;t(e,4,0,n.exports,n.columns,"flex","id","true","single"),t(e,7,0,n.permission,n.selection,n.tableActions),t(e,9,0,n.selection)},null)}function Du(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-nfs-list",[],null,null,null,Eu,ku)),o["\u0275prd"](131584,null,Tu.a,Tu.a,[wu.a,qe.a]),o["\u0275did"](2,245760,null,0,Cu,[d.a,Tt.a,fa.b,Su,Tu.a,Iu.a,$n.b],null,null)],function(t,e){t(e,2,0)},null)}var Lu=o["\u0275ccf"]("cd-nfs-list",Cu,Du,{},{},[]),Pu=n("rpEJ"),Mu=n("ihYY"),qu=n("t9fZ"),ju=n("Gi3i"),Fu=n("15JJ"),zu=n("psW0"),Gu=n("VnD/"),Yu=n("R+r5"),Vu=n("zrt+"),Hu=n("0/uQ"),Bu={"\xc1":"A","\u0102":"A","\u1eae":"A","\u1eb6":"A","\u1eb0":"A","\u1eb2":"A","\u1eb4":"A","\u01cd":"A","\xc2":"A","\u1ea4":"A","\u1eac":"A","\u1ea6":"A","\u1ea8":"A","\u1eaa":"A","\xc4":"A","\u01de":"A","\u0226":"A","\u01e0":"A","\u1ea0":"A","\u0200":"A","\xc0":"A","\u1ea2":"A","\u0202":"A","\u0100":"A","\u0104":"A","\xc5":"A","\u01fa":"A","\u1e00":"A","\u023a":"A","\xc3":"A","\ua732":"AA","\xc6":"AE","\u01fc":"AE","\u01e2":"AE","\ua734":"AO","\ua736":"AU","\ua738":"AV","\ua73a":"AV","\ua73c":"AY","\u1e02":"B","\u1e04":"B","\u0181":"B","\u1e06":"B","\u0243":"B","\u0182":"B","\u0106":"C","\u010c":"C","\xc7":"C","\u1e08":"C","\u0108":"C","\u010a":"C","\u0187":"C","\u023b":"C","\u010e":"D","\u1e10":"D","\u1e12":"D","\u1e0a":"D","\u1e0c":"D","\u018a":"D","\u1e0e":"D","\u01f2":"D","\u01c5":"D","\u0110":"D","\u018b":"D","\u01f1":"DZ","\u01c4":"DZ","\xc9":"E","\u0114":"E","\u011a":"E","\u0228":"E","\u1e1c":"E","\xca":"E","\u1ebe":"E","\u1ec6":"E","\u1ec0":"E","\u1ec2":"E","\u1ec4":"E","\u1e18":"E","\xcb":"E","\u0116":"E","\u1eb8":"E","\u0204":"E","\xc8":"E","\u1eba":"E","\u0206":"E","\u0112":"E","\u1e16":"E","\u1e14":"E","\u0118":"E","\u0246":"E","\u1ebc":"E","\u1e1a":"E","\ua76a":"ET","\u1e1e":"F","\u0191":"F","\u01f4":"G","\u011e":"G","\u01e6":"G","\u0122":"G","\u011c":"G","\u0120":"G","\u0193":"G","\u1e20":"G","\u01e4":"G","\u1e2a":"H","\u021e":"H","\u1e28":"H","\u0124":"H","\u2c67":"H","\u1e26":"H","\u1e22":"H","\u1e24":"H","\u0126":"H","\xcd":"I","\u012c":"I","\u01cf":"I","\xce":"I","\xcf":"I","\u1e2e":"I","\u0130":"I","\u1eca":"I","\u0208":"I","\xcc":"I","\u1ec8":"I","\u020a":"I","\u012a":"I","\u012e":"I","\u0197":"I","\u0128":"I","\u1e2c":"I","\ua779":"D","\ua77b":"F","\ua77d":"G","\ua782":"R","\ua784":"S","\ua786":"T","\ua76c":"IS","\u0134":"J","\u0248":"J","\u1e30":"K","\u01e8":"K","\u0136":"K","\u2c69":"K","\ua742":"K","\u1e32":"K","\u0198":"K","\u1e34":"K","\ua740":"K","\ua744":"K","\u0139":"L","\u023d":"L","\u013d":"L","\u013b":"L","\u1e3c":"L","\u1e36":"L","\u1e38":"L","\u2c60":"L","\ua748":"L","\u1e3a":"L","\u013f":"L","\u2c62":"L","\u01c8":"L","\u0141":"L","\u01c7":"LJ","\u1e3e":"M","\u1e40":"M","\u1e42":"M","\u2c6e":"M","\u0143":"N","\u0147":"N","\u0145":"N","\u1e4a":"N","\u1e44":"N","\u1e46":"N","\u01f8":"N","\u019d":"N","\u1e48":"N","\u0220":"N","\u01cb":"N","\xd1":"N","\u01ca":"NJ","\xd3":"O","\u014e":"O","\u01d1":"O","\xd4":"O","\u1ed0":"O","\u1ed8":"O","\u1ed2":"O","\u1ed4":"O","\u1ed6":"O","\xd6":"O","\u022a":"O","\u022e":"O","\u0230":"O","\u1ecc":"O","\u0150":"O","\u020c":"O","\xd2":"O","\u1ece":"O","\u01a0":"O","\u1eda":"O","\u1ee2":"O","\u1edc":"O","\u1ede":"O","\u1ee0":"O","\u020e":"O","\ua74a":"O","\ua74c":"O","\u014c":"O","\u1e52":"O","\u1e50":"O","\u019f":"O","\u01ea":"O","\u01ec":"O","\xd8":"O","\u01fe":"O","\xd5":"O","\u1e4c":"O","\u1e4e":"O","\u022c":"O","\u01a2":"OI","\ua74e":"OO","\u0190":"E","\u0186":"O","\u0222":"OU","\u1e54":"P","\u1e56":"P","\ua752":"P","\u01a4":"P","\ua754":"P","\u2c63":"P","\ua750":"P","\ua758":"Q","\ua756":"Q","\u0154":"R","\u0158":"R","\u0156":"R","\u1e58":"R","\u1e5a":"R","\u1e5c":"R","\u0210":"R","\u0212":"R","\u1e5e":"R","\u024c":"R","\u2c64":"R","\ua73e":"C","\u018e":"E","\u015a":"S","\u1e64":"S","\u0160":"S","\u1e66":"S","\u015e":"S","\u015c":"S","\u0218":"S","\u1e60":"S","\u1e62":"S","\u1e68":"S","\u0164":"T","\u0162":"T","\u1e70":"T","\u021a":"T","\u023e":"T","\u1e6a":"T","\u1e6c":"T","\u01ac":"T","\u1e6e":"T","\u01ae":"T","\u0166":"T","\u2c6f":"A","\ua780":"L","\u019c":"M","\u0245":"V","\ua728":"TZ","\xda":"U","\u016c":"U","\u01d3":"U","\xdb":"U","\u1e76":"U","\xdc":"U","\u01d7":"U","\u01d9":"U","\u01db":"U","\u01d5":"U","\u1e72":"U","\u1ee4":"U","\u0170":"U","\u0214":"U","\xd9":"U","\u1ee6":"U","\u01af":"U","\u1ee8":"U","\u1ef0":"U","\u1eea":"U","\u1eec":"U","\u1eee":"U","\u0216":"U","\u016a":"U","\u1e7a":"U","\u0172":"U","\u016e":"U","\u0168":"U","\u1e78":"U","\u1e74":"U","\ua75e":"V","\u1e7e":"V","\u01b2":"V","\u1e7c":"V","\ua760":"VY","\u1e82":"W","\u0174":"W","\u1e84":"W","\u1e86":"W","\u1e88":"W","\u1e80":"W","\u2c72":"W","\u1e8c":"X","\u1e8a":"X","\xdd":"Y","\u0176":"Y","\u0178":"Y","\u1e8e":"Y","\u1ef4":"Y","\u1ef2":"Y","\u01b3":"Y","\u1ef6":"Y","\u1efe":"Y","\u0232":"Y","\u024e":"Y","\u1ef8":"Y","\u0179":"Z","\u017d":"Z","\u1e90":"Z","\u2c6b":"Z","\u017b":"Z","\u1e92":"Z","\u0224":"Z","\u1e94":"Z","\u01b5":"Z","\u0132":"IJ","\u0152":"OE","\u1d00":"A","\u1d01":"AE","\u0299":"B","\u1d03":"B","\u1d04":"C","\u1d05":"D","\u1d07":"E","\ua730":"F","\u0262":"G","\u029b":"G","\u029c":"H","\u026a":"I","\u0281":"R","\u1d0a":"J","\u1d0b":"K","\u029f":"L","\u1d0c":"L","\u1d0d":"M","\u0274":"N","\u1d0f":"O","\u0276":"OE","\u1d10":"O","\u1d15":"OU","\u1d18":"P","\u0280":"R","\u1d0e":"N","\u1d19":"R","\ua731":"S","\u1d1b":"T","\u2c7b":"E","\u1d1a":"R","\u1d1c":"U","\u1d20":"V","\u1d21":"W","\u028f":"Y","\u1d22":"Z","\xe1":"a","\u0103":"a","\u1eaf":"a","\u1eb7":"a","\u1eb1":"a","\u1eb3":"a","\u1eb5":"a","\u01ce":"a","\xe2":"a","\u1ea5":"a","\u1ead":"a","\u1ea7":"a","\u1ea9":"a","\u1eab":"a","\xe4":"a","\u01df":"a","\u0227":"a","\u01e1":"a","\u1ea1":"a","\u0201":"a","\xe0":"a","\u1ea3":"a","\u0203":"a","\u0101":"a","\u0105":"a","\u1d8f":"a","\u1e9a":"a","\xe5":"a","\u01fb":"a","\u1e01":"a","\u2c65":"a","\xe3":"a","\ua733":"aa","\xe6":"ae","\u01fd":"ae","\u01e3":"ae","\ua735":"ao","\ua737":"au","\ua739":"av","\ua73b":"av","\ua73d":"ay","\u1e03":"b","\u1e05":"b","\u0253":"b","\u1e07":"b","\u1d6c":"b","\u1d80":"b","\u0180":"b","\u0183":"b","\u0275":"o","\u0107":"c","\u010d":"c","\xe7":"c","\u1e09":"c","\u0109":"c","\u0255":"c","\u010b":"c","\u0188":"c","\u023c":"c","\u010f":"d","\u1e11":"d","\u1e13":"d","\u0221":"d","\u1e0b":"d","\u1e0d":"d","\u0257":"d","\u1d91":"d","\u1e0f":"d","\u1d6d":"d","\u1d81":"d","\u0111":"d","\u0256":"d","\u018c":"d","\u0131":"i","\u0237":"j","\u025f":"j","\u0284":"j","\u01f3":"dz","\u01c6":"dz","\xe9":"e","\u0115":"e","\u011b":"e","\u0229":"e","\u1e1d":"e","\xea":"e","\u1ebf":"e","\u1ec7":"e","\u1ec1":"e","\u1ec3":"e","\u1ec5":"e","\u1e19":"e","\xeb":"e","\u0117":"e","\u1eb9":"e","\u0205":"e","\xe8":"e","\u1ebb":"e","\u0207":"e","\u0113":"e","\u1e17":"e","\u1e15":"e","\u2c78":"e","\u0119":"e","\u1d92":"e","\u0247":"e","\u1ebd":"e","\u1e1b":"e","\ua76b":"et","\u1e1f":"f","\u0192":"f","\u1d6e":"f","\u1d82":"f","\u01f5":"g","\u011f":"g","\u01e7":"g","\u0123":"g","\u011d":"g","\u0121":"g","\u0260":"g","\u1e21":"g","\u1d83":"g","\u01e5":"g","\u1e2b":"h","\u021f":"h","\u1e29":"h","\u0125":"h","\u2c68":"h","\u1e27":"h","\u1e23":"h","\u1e25":"h","\u0266":"h","\u1e96":"h","\u0127":"h","\u0195":"hv","\xed":"i","\u012d":"i","\u01d0":"i","\xee":"i","\xef":"i","\u1e2f":"i","\u1ecb":"i","\u0209":"i","\xec":"i","\u1ec9":"i","\u020b":"i","\u012b":"i","\u012f":"i","\u1d96":"i","\u0268":"i","\u0129":"i","\u1e2d":"i","\ua77a":"d","\ua77c":"f","\u1d79":"g","\ua783":"r","\ua785":"s","\ua787":"t","\ua76d":"is","\u01f0":"j","\u0135":"j","\u029d":"j","\u0249":"j","\u1e31":"k","\u01e9":"k","\u0137":"k","\u2c6a":"k","\ua743":"k","\u1e33":"k","\u0199":"k","\u1e35":"k","\u1d84":"k","\ua741":"k","\ua745":"k","\u013a":"l","\u019a":"l","\u026c":"l","\u013e":"l","\u013c":"l","\u1e3d":"l","\u0234":"l","\u1e37":"l","\u1e39":"l","\u2c61":"l","\ua749":"l","\u1e3b":"l","\u0140":"l","\u026b":"l","\u1d85":"l","\u026d":"l","\u0142":"l","\u01c9":"lj","\u017f":"s","\u1e9c":"s","\u1e9b":"s","\u1e9d":"s","\u1e3f":"m","\u1e41":"m","\u1e43":"m","\u0271":"m","\u1d6f":"m","\u1d86":"m","\u0144":"n","\u0148":"n","\u0146":"n","\u1e4b":"n","\u0235":"n","\u1e45":"n","\u1e47":"n","\u01f9":"n","\u0272":"n","\u1e49":"n","\u019e":"n","\u1d70":"n","\u1d87":"n","\u0273":"n","\xf1":"n","\u01cc":"nj","\xf3":"o","\u014f":"o","\u01d2":"o","\xf4":"o","\u1ed1":"o","\u1ed9":"o","\u1ed3":"o","\u1ed5":"o","\u1ed7":"o","\xf6":"o","\u022b":"o","\u022f":"o","\u0231":"o","\u1ecd":"o","\u0151":"o","\u020d":"o","\xf2":"o","\u1ecf":"o","\u01a1":"o","\u1edb":"o","\u1ee3":"o","\u1edd":"o","\u1edf":"o","\u1ee1":"o","\u020f":"o","\ua74b":"o","\ua74d":"o","\u2c7a":"o","\u014d":"o","\u1e53":"o","\u1e51":"o","\u01eb":"o","\u01ed":"o","\xf8":"o","\u01ff":"o","\xf5":"o","\u1e4d":"o","\u1e4f":"o","\u022d":"o","\u01a3":"oi","\ua74f":"oo","\u025b":"e","\u1d93":"e","\u0254":"o","\u1d97":"o","\u0223":"ou","\u1e55":"p","\u1e57":"p","\ua753":"p","\u01a5":"p","\u1d71":"p","\u1d88":"p","\ua755":"p","\u1d7d":"p","\ua751":"p","\ua759":"q","\u02a0":"q","\u024b":"q","\ua757":"q","\u0155":"r","\u0159":"r","\u0157":"r","\u1e59":"r","\u1e5b":"r","\u1e5d":"r","\u0211":"r","\u027e":"r","\u1d73":"r","\u0213":"r","\u1e5f":"r","\u027c":"r","\u1d72":"r","\u1d89":"r","\u024d":"r","\u027d":"r","\u2184":"c","\ua73f":"c","\u0258":"e","\u027f":"r","\u015b":"s","\u1e65":"s","\u0161":"s","\u1e67":"s","\u015f":"s","\u015d":"s","\u0219":"s","\u1e61":"s","\u1e63":"s","\u1e69":"s","\u0282":"s","\u1d74":"s","\u1d8a":"s","\u023f":"s","\u0261":"g","\u1d11":"o","\u1d13":"o","\u1d1d":"u","\u0165":"t","\u0163":"t","\u1e71":"t","\u021b":"t","\u0236":"t","\u1e97":"t","\u2c66":"t","\u1e6b":"t","\u1e6d":"t","\u01ad":"t","\u1e6f":"t","\u1d75":"t","\u01ab":"t","\u0288":"t","\u0167":"t","\u1d7a":"th","\u0250":"a","\u1d02":"ae","\u01dd":"e","\u1d77":"g","\u0265":"h","\u02ae":"h","\u02af":"h","\u1d09":"i","\u029e":"k","\ua781":"l","\u026f":"m","\u0270":"m","\u1d14":"oe","\u0279":"r","\u027b":"r","\u027a":"r","\u2c79":"r","\u0287":"t","\u028c":"v","\u028d":"w","\u028e":"y","\ua729":"tz","\xfa":"u","\u016d":"u","\u01d4":"u","\xfb":"u","\u1e77":"u","\xfc":"u","\u01d8":"u","\u01da":"u","\u01dc":"u","\u01d6":"u","\u1e73":"u","\u1ee5":"u","\u0171":"u","\u0215":"u","\xf9":"u","\u1ee7":"u","\u01b0":"u","\u1ee9":"u","\u1ef1":"u","\u1eeb":"u","\u1eed":"u","\u1eef":"u","\u0217":"u","\u016b":"u","\u1e7b":"u","\u0173":"u","\u1d99":"u","\u016f":"u","\u0169":"u","\u1e79":"u","\u1e75":"u","\u1d6b":"ue","\ua778":"um","\u2c74":"v","\ua75f":"v","\u1e7f":"v","\u028b":"v","\u1d8c":"v","\u2c71":"v","\u1e7d":"v","\ua761":"vy","\u1e83":"w","\u0175":"w","\u1e85":"w","\u1e87":"w","\u1e89":"w","\u1e81":"w","\u2c73":"w","\u1e98":"w","\u1e8d":"x","\u1e8b":"x","\u1d8d":"x","\xfd":"y","\u0177":"y","\xff":"y","\u1e8f":"y","\u1ef5":"y","\u1ef3":"y","\u01b4":"y","\u1ef7":"y","\u1eff":"y","\u0233":"y","\u1e99":"y","\u024f":"y","\u1ef9":"y","\u017a":"z","\u017e":"z","\u1e91":"z","\u0291":"z","\u2c6c":"z","\u017c":"z","\u1e93":"z","\u0225":"z","\u1e95":"z","\u1d76":"z","\u1d8e":"z","\u0290":"z","\u01b6":"z","\u0240":"z","\ufb00":"ff","\ufb03":"ffi","\ufb04":"ffl","\ufb01":"fi","\ufb02":"fl","\u0133":"ij","\u0153":"oe","\ufb06":"st","\u2090":"a","\u2091":"e","\u1d62":"i","\u2c7c":"j","\u2092":"o","\u1d63":"r","\u1d64":"u","\u1d65":"v","\u2093":"x"},Uu=function(){function t(t,e,n){void 0===e&&(e=t),void 0===n&&(n=!1),this.item=t,this.value=e,this.header=n}return t.prototype.isHeader=function(){return this.header},t.prototype.toString=function(){return this.value},t}();function Wu(t){return t?t.replace(/[^A-Za-z0-9\[\] ]/g,function(t){return Bu[t]||t}):""}function Ku(t,e,n){void 0===e&&(e=" "),void 0===n&&(n="");for(var a,r=t.split(new RegExp("(?:["+n+"])([^"+n+"]+)(?:["+n+"])|([^"+e+"]+)","g")),i=[],o=r.length,s=new RegExp("["+n+"]+","g"),u=0;u=e}}return Object.defineProperty(t.prototype,"isBs4",{get:function(){return!Object(Pu.d)()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"active",{get:function(){return this._active},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"matches",{get:function(){return this._matches},set:function(t){var e=this;if(this.positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition}},allowedPositions:["top","bottom"]}),this.positionService.event$.pipe(Object(qu.a)(1)).subscribe(function(){e.positionService.disable(),e.visibility=e.typeaheadScrollable?"hidden":"visible",e.animationState=e.isAnimated?e.isTopPosition?"animated-up":"animated-down":"unanimated"}),this._matches=t,this.needScrollbar=this.typeaheadScrollable&&this.typeaheadOptionsInScrollableView0&&(this._active=this._matches[0],this._active.isHeader()&&this.nextActiveMatch()),this._active&&!this.typeaheadIsFirstItemActive){var n=this._matches.find(function(t){return t.value===e._active.value});if(n)return void this.selectActive(n);this._active=null}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isTopPosition",{get:function(){return this.element.nativeElement.classList.contains("top")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"optionsListTemplate",{get:function(){return this.parent?this.parent.optionsListTemplate:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAnimated",{get:function(){return!!this.parent&&this.parent.isAnimated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"adaptivePosition",{get:function(){return!!this.parent&&this.parent.adaptivePosition},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"typeaheadScrollable",{get:function(){return!!this.parent&&this.parent.typeaheadScrollable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"typeaheadOptionsInScrollableView",{get:function(){return this.parent?this.parent.typeaheadOptionsInScrollableView:5},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"typeaheadIsFirstItemActive",{get:function(){return!this.parent||this.parent.typeaheadIsFirstItemActive},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"itemTemplate",{get:function(){return this.parent?this.parent.typeaheadItemTemplate:void 0},enumerable:!0,configurable:!0}),t.prototype.selectActiveMatch=function(t){this._active&&this.parent.typeaheadSelectFirstItem&&this.selectMatch(this._active),!this.parent.typeaheadSelectFirstItem&&t&&this.selectMatch(this._active)},t.prototype.positionServiceEnable=function(){this.positionService.enable()},t.prototype.prevActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[t-1<0?this.matches.length-1:t-1],this._active.isHeader()&&this.prevActiveMatch(),this.typeaheadScrollable&&this.scrollPrevious(t)},t.prototype.nextActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[t+1>this.matches.length-1?0:t+1],this._active.isHeader()&&this.nextActiveMatch(),this.typeaheadScrollable&&this.scrollNext(t)},t.prototype.selectActive=function(t){this.isFocused=!0,this._active=t},t.prototype.highlight=function(t,e){var n,a,r=t.value,i=(this.parent&&this.parent.typeaheadLatinize?Wu(r):r).toLowerCase();if("object"==typeof e)for(var o=e.length,s=0;s=0&&a>0&&(r=r.substring(0,n)+""+r.substring(n,n+a)+""+r.substring(n+a),i=i.substring(0,n)+" "+" ".repeat(a)+" "+i.substring(n+a));else e&&(n=i.indexOf(e),a=e.length,n>=0&&a>0&&(r=r.substring(0,n)+""+r.substring(n,n+a)+""+r.substring(n+a)));return r},t.prototype.focusLost=function(){this.isFocused=!1},t.prototype.isActive=function(t){return this._active===t},t.prototype.selectMatch=function(t,e){var n=this;return void 0===e&&(e=void 0),e&&(e.stopPropagation(),e.preventDefault()),this.parent.changeModel(t),setTimeout(function(){return n.parent.typeaheadOnSelect.emit(t)},0),!1},t.prototype.setScrollableMode=function(){if(this.ulElement||(this.ulElement=this.element),this.liElements.first){var t=Pu.b.getStyles(this.ulElement.nativeElement),e=Pu.b.getStyles(this.liElements.first.nativeElement),n=parseFloat((t["padding-bottom"]?t["padding-bottom"]:"").replace("px","")),a=parseFloat((t["padding-top"]?t["padding-top"]:"0").replace("px","")),r=parseFloat((e.height?e.height:"0").replace("px",""));this.guiHeight=this.typeaheadOptionsInScrollableView*r+a+n+"px"}this.renderer.setStyle(this.element.nativeElement,"visibility","visible")},t.prototype.scrollPrevious=function(t){if(0!==t){if(this.liElements){var e=this.liElements.toArray()[t-1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop)}}else this.scrollToBottom()},t.prototype.scrollNext=function(t){if(t+1>this.matches.length-1)this.scrollToTop();else if(this.liElements){var e=this.liElements.toArray()[t+1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop-Number(this.ulElement.nativeElement.offsetHeight)+Number(e.nativeElement.offsetHeight))}},t.prototype.scrollToBottom=function(){this.ulElement.nativeElement.scrollTop=this.ulElement.nativeElement.scrollHeight},t.prototype.scrollToTop=function(){this.ulElement.nativeElement.scrollTop=0},t}(),Xu=function(){return function(){this.adaptivePosition=!1,this.isAnimated=!1,this.hideResultsOnBlur=!0,this.selectFirstItem=!0,this.isFirstItemActive=!0,this.minLength=1}}(),Ju=function(){function t(t,e,n,a,r,i,s){this.changeDetection=n,this.element=a,this.ngControl=r,this.renderer=i,this.typeaheadMinLength=void 0,this.isAnimated=!1,this.typeaheadAsync=void 0,this.typeaheadLatinize=!0,this.typeaheadSingleWords=!0,this.typeaheadWordDelimiters=" ",this.typeaheadPhraseDelimiters="'\"",this.typeaheadScrollable=!1,this.typeaheadOptionsInScrollableView=5,this.typeaheadSelectFirstItem=!0,this.typeaheadIsFirstItemActive=!0,this.typeaheadLoading=new o.EventEmitter,this.typeaheadNoResults=new o.EventEmitter,this.typeaheadOnSelect=new o.EventEmitter,this.typeaheadOnBlur=new o.EventEmitter,this.dropup=!1,this.isActiveItemChanged=!1,this.isTypeaheadOptionsListActive=!1,this.keyUpEventEmitter=new o.EventEmitter,this.placement="bottom-left",this._subscriptions=[],this._typeahead=t.createLoader(a,s,i).provide({provide:Xu,useValue:e}),Object.assign(this,{typeaheadHideResultsOnBlur:e.hideResultsOnBlur,typeaheadSelectFirstItem:e.selectFirstItem,typeaheadIsFirstItemActive:e.isFirstItemActive,typeaheadMinLength:e.minLength,adaptivePosition:e.adaptivePosition,isAnimated:e.isAnimated})}return t.prototype.ngOnInit=function(){this.typeaheadOptionsLimit=this.typeaheadOptionsLimit||20,this.typeaheadMinLength=void 0===this.typeaheadMinLength?1:this.typeaheadMinLength,this.typeaheadWaitMs=this.typeaheadWaitMs||0,void 0!==this.typeaheadAsync||Object(Vu.a)(this.typeahead)||(this.typeaheadAsync=!1),Object(Vu.a)(this.typeahead)&&(this.typeaheadAsync=!0),this.typeaheadAsync?this.asyncActions():this.syncActions()},t.prototype.onInput=function(t){var e=void 0!==t.target.value?t.target.value:void 0!==t.target.textContent?t.target.textContent:t.target.innerText;null!=e&&e.trim().length>=this.typeaheadMinLength?(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(t.target.value)):(this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!1),this.hide())},t.prototype.onChange=function(t){if(this._container){if(27===t.keyCode||"Escape"===t.key)return void this.hide();if(38===t.keyCode||"ArrowUp"===t.key)return this.isActiveItemChanged=!0,void this._container.prevActiveMatch();if(40===t.keyCode||"ArrowDown"===t.key)return this.isActiveItemChanged=!0,void this._container.nextActiveMatch();if(13===t.keyCode||"Enter"===t.key)return void this._container.selectActiveMatch()}},t.prototype.onFocus=function(){0===this.typeaheadMinLength&&(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(this.element.nativeElement.value||""))},t.prototype.onBlur=function(){this._container&&!this._container.isFocused&&this.typeaheadOnBlur.emit(this._container.active)},t.prototype.onKeydown=function(t){if(this._container&&(9===t.keyCode||"Tab"===t.key||13===t.keyCode||"Enter"===t.key)){if(t.preventDefault(),this.typeaheadSelectFirstItem)return void this._container.selectActiveMatch();this.typeaheadSelectFirstItem||(this._container.selectActiveMatch(this.isActiveItemChanged),this.isActiveItemChanged=!1,this.hide())}},t.prototype.changeModel=function(t){var e=t.value;this.ngControl.viewToModelUpdate(e),this.ngControl.control.setValue(e),this.changeDetection.markForCheck(),this.hide()},Object.defineProperty(t.prototype,"matches",{get:function(){return this._matches},enumerable:!0,configurable:!0}),t.prototype.show=function(){var t=this;this._typeahead.attach(Zu).to(this.container).position({attachment:(this.dropup?"top":"bottom")+" start"}).show({typeaheadRef:this,placement:this.placement,animation:!1,dropup:this.dropup}),this._outsideClickListener=this.renderer.listen("document","click",function(e){0===t.typeaheadMinLength&&t.element.nativeElement.contains(e.target)||t.typeaheadHideResultsOnBlur&&!t.element.nativeElement.contains(e.target)&&t.onOutsideClick()}),this._container=this._typeahead.instance,this._container.parent=this;var e=(this.typeaheadLatinize?Wu(this.ngControl.control.value):this.ngControl.control.value).toString().toLowerCase();this._container.query=this.typeaheadSingleWords?Ku(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e,this._container.matches=this._matches,this.element.nativeElement.focus()},t.prototype.hide=function(){this._typeahead.isShown&&(this._typeahead.hide(),this._outsideClickListener(),this._container=null)},t.prototype.onOutsideClick=function(){this._container&&!this._container.isFocused&&this.hide()},t.prototype.ngOnDestroy=function(){var t,e;try{for(var n=Object(h.__values)(this._subscriptions),a=n.next();!a.done;a=n.next())a.value.unsubscribe()}catch(r){t={error:r}}finally{try{a&&!a.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this._typeahead.dispose()},t.prototype.asyncActions=function(){var t=this;this._subscriptions.push(this.keyUpEventEmitter.pipe(Object(ju.a)(this.typeaheadWaitMs),Object(Fu.a)(function(){return t.typeahead})).subscribe(function(e){t.finalizeAsyncCall(e)}))},t.prototype.syncActions=function(){var t=this;this._subscriptions.push(this.keyUpEventEmitter.pipe(Object(ju.a)(this.typeaheadWaitMs),Object(zu.a)(function(e){var n=t.normalizeQuery(e);return Object(Hu.a)(t.typeahead).pipe(Object(Gu.a)(function(e){return e&&t.testMatch(t.normalizeOption(e),n)}),Object(Yu.a)())})).subscribe(function(e){t.finalizeAsyncCall(e)}))},t.prototype.normalizeOption=function(t){var e=$u(t,this.typeaheadOptionField);return(this.typeaheadLatinize?Wu(e):e).toLowerCase()},t.prototype.normalizeQuery=function(t){var e=(this.typeaheadLatinize?Wu(t):t).toString().toLowerCase();return this.typeaheadSingleWords?Ku(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e},t.prototype.testMatch=function(t,e){var n;if("object"==typeof e){n=e.length;for(var a=0;a0&&t.indexOf(e[a])<0)return!1;return!0}return t.indexOf(e)>=0},t.prototype.finalizeAsyncCall=function(t){if(this.prepareMatches(t||[]),this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!this.hasMatches()),this.hasMatches())if(this._container){var e=((this.typeaheadLatinize?Wu(this.ngControl.control.value):this.ngControl.control.value)||"").toString().toLowerCase();this._container.query=this.typeaheadSingleWords?Ku(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e,this._container.matches=this._matches}else this.show();else this.hide()},t.prototype.prepareMatches=function(t){var e=this,n=t.slice(0,this.typeaheadOptionsLimit);if(this.typeaheadGroupField){var a=[];n.map(function(t){return $u(t,e.typeaheadGroupField)}).filter(function(t,e,n){return n.indexOf(t)===e}).forEach(function(t){a.push(new Uu(t,t,!0)),a=a.concat(n.filter(function(n){return $u(n,e.typeaheadGroupField)===t}).map(function(t){return new Uu(t,$u(t,e.typeaheadOptionField))}))}),this._matches=a}else this._matches=n.map(function(t){return new Uu(t,$u(t,e.typeaheadOptionField))})},t.prototype.hasMatches=function(){return this._matches.length>0},t}(),Qu=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[Q.a,tt.a,Xu]}},t}(),tc=n("WiuZ"),ec=n("wnGv"),nc=n("TYzs"),ac=function(){function t(t,e){this.nfsService=t,this.i18n=e,this.nfsSquash=this.nfsService.nfsSquash,this.nfsAccessType=this.nfsService.nfsAccessType}return t.prototype.getNoAccessTypeDescr=function(){return this.form.getValue("access_type")?this.form.getValue("access_type")+" "+this.i18n("(inherited from global config)"):this.i18n("-- Select the access type --")},t.prototype.getAccessTypeHelp=function(t){var e=this,n=this.nfsAccessType.find(function(n){return e.getValue(t,"access_type")===n.value});return pt.isObjectLike(n)?n.help:""},t.prototype.getNoSquashDescr=function(){return this.form.getValue("squash")?this.form.getValue("squash")+" ("+this.i18n("inherited from global config")+")":this.i18n("-- Select what kind of user id squashing is performed --")},t.prototype.addClient=function(){var t=this.form.get("clients"),e=new ea.a({addresses:new we.i("",{validators:[we.A.required,we.A.pattern("(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}).([0-9]{1,3})([/](\\d|[1-2]\\d|3[0-2]))?)([ ,]{1,2}(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}).([0-9]{1,3})([/](\\d|[1-2]\\d|3[0-2]))?))*")]}),access_type:new we.i(""),squash:new we.i("")});return t.push(e),e},t.prototype.removeClient=function(t){this.form.get("clients").removeAt(t)},t.prototype.showError=function(t,e,n,a){return this.form.controls.clients.controls[t].showError(e,n,a)},t.prototype.getValue=function(t,e){return this.form.get("clients").at(t).getValue(e)},t.prototype.resolveModel=function(t){var e=this;pt.forEach(t,function(t){e.addClient().patchValue(t)})},t.prototype.trackByFn=function(t){return t},t}(),rc=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function ic(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border text-muted"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Any client can access"]))],null,null)}function oc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function sc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Must contain one or more comma-separated values"])),(t()(),o["\u0275eld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["For example:"])),(t()(),o["\u0275ted"](-1,null,[" 192.168.0.10, 192.168.1.0/8 "]))],null,null)}function uc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.value)})}function cc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.component.getAccessTypeHelp(e.parent.context.index))})}function lc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function dc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,62,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,61,"div",[["class","panel panel-default"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),o["\u0275did"](2,212992,null,0,we.m,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.d,null,[we.m]),o["\u0275did"](4,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](5,0,null,null,5,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,4,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,[""," "])),o["\u0275ppd"](8,1),(t()(),o["\u0275eld"](9,0,null,null,1,"span",[["class","pull-right clickable"],["tooltip","Remove"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeClient(t.context.index)&&a),a},null,null)),(t()(),o["\u0275ted"](-1,null,["\xd7"])),(t()(),o["\u0275eld"](11,0,null,null,51,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),o["\u0275eld"](12,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](13,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](14,{"has-error":0}),(t()(),o["\u0275eld"](15,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","addresses"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Addresses"])),(t()(),o["\u0275eld"](17,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](18,0,null,null,5,"input",[["class","form-control"],["formControlName","addresses"],["id","addresses"],["name","addresses"],["placeholder","192.168.0.10, 192.168.1.0/8"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,19)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](19,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](21,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](23,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](24,0,null,null,4,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,oc)),o["\u0275did"](26,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,sc)),o["\u0275did"](28,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](29,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](30,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","access_type"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Access Type"])),(t()(),o["\u0275eld"](32,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](33,0,null,null,11,"select",[["class","form-control"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,34).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,34).onTouched()&&a),a},null,null)),o["\u0275did"](34,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](36,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](38,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](39,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](40,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](41,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](42,null,["",""])),(t()(),o["\u0275and"](16777216,null,null,1,null,uc)),o["\u0275did"](44,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,cc)),o["\u0275did"](46,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](47,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](48,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","squash"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Squash"])),(t()(),o["\u0275eld"](50,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](51,0,null,null,11,"select",[["class","form-control"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,52).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,52).onTouched()&&a),a},null,null)),o["\u0275did"](52,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](54,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](56,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](57,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](58,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](59,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](60,null,["",""])),(t()(),o["\u0275and"](16777216,null,null,1,null,lc)),o["\u0275did"](62,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,2,0,e.context.index);var a=t(e,14,0,n.showError(e.context.index,"addresses",o["\u0275nov"](e.parent,5)));t(e,13,0,"form-group",a),t(e,21,0,"addresses"),t(e,26,0,n.showError(e.context.index,"addresses",o["\u0275nov"](e.parent,5),"required")),t(e,28,0,n.showError(e.context.index,"addresses",o["\u0275nov"](e.parent,5),"pattern")),t(e,36,0,"access_type"),t(e,40,0,""),t(e,41,0,""),t(e,44,0,n.nfsAccessType),t(e,46,0,n.getValue(e.context.index,"access_type")),t(e,54,0,"squash"),t(e,58,0,""),t(e,59,0,""),t(e,62,0,n.nfsSquash)},function(t,e){var n=e.component;t(e,1,0,o["\u0275nov"](e,4).ngClassUntouched,o["\u0275nov"](e,4).ngClassTouched,o["\u0275nov"](e,4).ngClassPristine,o["\u0275nov"](e,4).ngClassDirty,o["\u0275nov"](e,4).ngClassValid,o["\u0275nov"](e,4).ngClassInvalid,o["\u0275nov"](e,4).ngClassPending);var a=o["\u0275unv"](e,7,0,t(e,8,0,o["\u0275nov"](e.parent,0),e.context.index+1));t(e,7,0,a),t(e,18,0,o["\u0275nov"](e,23).ngClassUntouched,o["\u0275nov"](e,23).ngClassTouched,o["\u0275nov"](e,23).ngClassPristine,o["\u0275nov"](e,23).ngClassDirty,o["\u0275nov"](e,23).ngClassValid,o["\u0275nov"](e,23).ngClassInvalid,o["\u0275nov"](e,23).ngClassPending),t(e,33,0,o["\u0275nov"](e,38).ngClassUntouched,o["\u0275nov"](e,38).ngClassTouched,o["\u0275nov"](e,38).ngClassPristine,o["\u0275nov"](e,38).ngClassDirty,o["\u0275nov"](e,38).ngClassValid,o["\u0275nov"](e,38).ngClassInvalid,o["\u0275nov"](e,38).ngClassPending),t(e,42,0,n.getNoAccessTypeDescr()),t(e,51,0,o["\u0275nov"](e,56).ngClassUntouched,o["\u0275nov"](e,56).ngClassTouched,o["\u0275nov"](e,56).ngClassPristine,o["\u0275nov"](e,56).ngClassDirty,o["\u0275nov"](e,56).ngClassValid,o["\u0275nov"](e,56).ngClassInvalid,o["\u0275nov"](e,56).ngClassPending),t(e,60,0,n.getNoSquashDescr())})}function fc(t){return o["\u0275vid"](0,[o["\u0275pid"](0,nc.a,[]),(t()(),o["\u0275eld"](1,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Clients"])),(t()(),o["\u0275eld"](4,0,null,null,17,"div",[["class","col-sm-9"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,5).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,5).onReset()&&a),a},null,null)),o["\u0275did"](5,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](7,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,ic)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](10,0,null,null,5,null,null,null,null,null,null,null)),o["\u0275did"](11,212992,null,0,we.g,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.d,null,[we.g]),o["\u0275did"](13,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,dc)),o["\u0275did"](15,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),o["\u0275eld"](16,0,null,null,4,"span",[["class","form-control no-border"]],null,null,null,null,null)),(t()(),o["\u0275eld"](17,0,null,null,3,"button",[["class","btn btn-default btn-label pull-right"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.addClient()&&a),a},null,null)),(t()(),o["\u0275eld"](18,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Add clients"])),(t()(),o["\u0275eld"](21,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){var n=e.component;t(e,5,0,n.form),t(e,9,0,0===n.form.get("clients").value.length),t(e,11,0,"clients"),t(e,15,0,n.form.get("clients").value,n.trackByFn)},function(t,e){t(e,4,0,o["\u0275nov"](e,7).ngClassUntouched,o["\u0275nov"](e,7).ngClassTouched,o["\u0275nov"](e,7).ngClassPristine,o["\u0275nov"](e,7).ngClassDirty,o["\u0275nov"](e,7).ngClassValid,o["\u0275nov"](e,7).ngClassInvalid,o["\u0275nov"](e,7).ngClassPending)})}var pc=n("F/XL"),hc=n("P8lu"),gc=n("DNAf"),mc=n("a96k"),bc=function(){function t(t,e,n,a,r,i,o,s,u,c,l,d){var f=this;this.authStorageService=t,this.nfsService=e,this.route=n,this.router=a,this.rgwUserService=r,this.formBuilder=i,this.summaryservice=o,this.cephReleaseNamePipe=s,this.taskWrapper=u,this.cdRef=c,this.i18n=l,this.actionLabels=d,this.isEdit=!1,this.cluster_id=null,this.export_id=null,this.isNewDirectory=!1,this.isNewBucket=!1,this.isDefaultCluster=!1,this.allClusters=null,this.allDaemons={},this.allFsals=[],this.allRgwUsers=[],this.allCephxClients=null,this.allFsNames=null,this.defaultAccessType={RGW:"RO"},this.nfsAccessType=this.nfsService.nfsAccessType,this.nfsSquash=this.nfsService.nfsSquash,this.daemonsSelections=[],this.daemonsMessages=new gc.a({noOptions:this.i18n("There are no daemons available.")},this.i18n),this.pathDataSource=co.a.create(function(t){t.next(f.nfsForm.getValue("path"))}).pipe(Object(zu.a)(function(t){return f.getPathTypeahead(t)}),Object(Hi.a)(function(t){return t.paths})),this.bucketDataSource=co.a.create(function(t){t.next(f.nfsForm.getValue("path"))}).pipe(Object(zu.a)(function(t){return f.getBucketTypeahead(t)})),this.permission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("NFS export"),this.createForm()}return t.prototype.ngOnInit=function(){var t=this,e=[this.nfsService.daemon(),this.nfsService.fsals(),this.nfsService.clients(),this.nfsService.filesystems()];this.router.url.startsWith("/nfs/edit")&&(this.isEdit=!0),this.isEdit?(this.action=this.actionLabels.EDIT,this.route.params.subscribe(function(n){t.cluster_id=decodeURIComponent(n.cluster_id),t.export_id=decodeURIComponent(n.export_id),e.push(t.nfsService.get(t.cluster_id,t.export_id)),t.getData(e)})):(this.action=this.actionLabels.CREATE,this.getData(e));var n=this.summaryservice.getCurrentSummary(),a=this.cephReleaseNamePipe.transform(n.version);this.docsUrl="http://docs.ceph.com/docs/"+a+"/radosgw/nfs/"},t.prototype.getData=function(t){var e=this;Object(Qn.a)(t).subscribe(function(t){e.resolveDaemons(t[0]),e.resolvefsals(t[1]),e.resolveClients(t[2]),e.resolveFilesystems(t[3]),t[4]&&e.resolveModel(t[4])})},t.prototype.createForm=function(){this.nfsForm=new ea.a({cluster_id:new we.i("",{validators:[we.A.required]}),daemons:new we.i([]),fsal:new ea.a({name:new we.i("",{validators:[we.A.required]}),user_id:new we.i("",{validators:[na.a.requiredIf({name:"CEPH"})]}),fs_name:new we.i("",{validators:[na.a.requiredIf({name:"CEPH"})]}),rgw_user_id:new we.i("",{validators:[na.a.requiredIf({name:"RGW"})]})}),path:new we.i(""),protocolNfsv3:new we.i(!0,{validators:[na.a.requiredIf({protocolNfsv4:!1},function(t){return!t})]}),protocolNfsv4:new we.i(!0,{validators:[na.a.requiredIf({protocolNfsv3:!1},function(t){return!t})]}),tag:new we.i(""),pseudo:new we.i("",{validators:[na.a.requiredIf({protocolNfsv4:!0}),we.A.pattern("^/[^><|&()]*$")]}),access_type:new we.i("RW",{validators:[we.A.required]}),squash:new we.i("",{validators:[we.A.required]}),transportUDP:new we.i(!0,{validators:[na.a.requiredIf({transportTCP:!1},function(t){return!t})]}),transportTCP:new we.i(!0,{validators:[na.a.requiredIf({transportUDP:!1},function(t){return!t})]}),clients:this.formBuilder.array([]),security_label:new we.i(!1),sec_label_xattr:new we.i("security.selinux",na.a.requiredIf({security_label:!0,"fsal.name":"CEPH"}))})},t.prototype.resolveModel=function(t){"CEPH"===t.fsal.name&&(t.sec_label_xattr=t.fsal.sec_label_xattr),this.daemonsSelections=pt.map(this.allDaemons[t.cluster_id],function(e){return new mc.a(-1!==t.daemons.indexOf(e),e,"")}),this.daemonsSelections=this.daemonsSelections.slice(),t.protocolNfsv3=-1!==t.protocols.indexOf(3),t.protocolNfsv4=-1!==t.protocols.indexOf(4),delete t.protocols,t.transportTCP=-1!==t.transports.indexOf("TCP"),t.transportUDP=-1!==t.transports.indexOf("UDP"),delete t.transports,t.clients.forEach(function(t){var e="";t.addresses.forEach(function(t){e+=t+", "}),e.length>=2&&(e=e.substring(0,e.length-2)),t.addresses=e}),this.nfsForm.patchValue(t),this.setPathValidation(),this.nfsClients.resolveModel(t.clients)},t.prototype.resolveDaemons=function(t){var e=this;t=pt.sortBy(t,["daemon_id"]),this.allClusters=pt(t).map(function(t){return t.cluster_id}).sortedUniq().value(),pt.forEach(this.allClusters,function(t){e.allDaemons[t]=[]}),pt.forEach(t,function(t){e.allDaemons[t.cluster_id].push(t.daemon_id)});var n=pt.isArray(this.allClusters)&&1===this.allClusters.length;this.isDefaultCluster=n&&"_default_"===this.allClusters[0],n&&(this.nfsForm.patchValue({cluster_id:this.allClusters[0]}),this.onClusterChange())},t.prototype.resolvefsals=function(t){var e=this;t.forEach(function(t){var n=e.nfsService.nfsFsal.find(function(e){return t===e.value});pt.isObjectLike(n)&&(e.allFsals.push(n),"RGW"===n.value&&e.rgwUserService.list().subscribe(function(t){t.forEach(function(t){0===t.suspended&&t.keys.length>0&&e.allRgwUsers.push(t.user_id)})}))}),1===this.allFsals.length&&pt.isUndefined(this.nfsForm.getValue("fsal"))&&this.nfsForm.patchValue({fsal:this.allFsals[0]})},t.prototype.resolveClients=function(t){this.allCephxClients=t},t.prototype.resolveFilesystems=function(t){this.allFsNames=t,1===t.length&&this.nfsForm.patchValue({fsal:{fs_name:t[0].name}})},t.prototype.fsalChangeHandler=function(){this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo(),access_type:this._updateAccessType()}),this.setPathValidation(),this.cdRef.detectChanges()},t.prototype.accessTypeChangeHandler=function(){var t=this.nfsForm.getValue("name"),e=this.nfsForm.getValue("access_type");this.defaultAccessType[t]=e},t.prototype.setPathValidation=function(){"RGW"===this.nfsForm.getValue("name")?this.nfsForm.get("path").setValidators([we.A.required,we.A.pattern("^(/|[^/><|&()#?]+)$")]):this.nfsForm.get("path").setValidators([we.A.required,we.A.pattern("^/[^><|&()?]*$")])},t.prototype.rgwUserIdChangeHandler=function(){this.nfsForm.patchValue({pseudo:this._generatePseudo()})},t.prototype.getAccessTypeHelp=function(t){var e=this.nfsAccessType.find(function(e){if(t===e.value)return e});return pt.isObjectLike(e)?e.help:""},t.prototype.getId=function(){return pt.isString(this.nfsForm.getValue("cluster_id"))&&pt.isString(this.nfsForm.getValue("path"))?this.nfsForm.getValue("cluster_id")+":"+this.nfsForm.getValue("path"):""},t.prototype.getPathTypeahead=function(t){return pt.isString(t)&&"/"!==t?this.nfsService.lsDir(t):Object(pc.a)([])},t.prototype.pathChangeHandler=function(){var t=this;this.nfsForm.patchValue({pseudo:this._generatePseudo()});var e=this.nfsForm.getValue("path");this.getPathTypeahead(e).subscribe(function(n){t.isNewDirectory="/"!==e&&-1===n.paths.indexOf(e)})},t.prototype.bucketChangeHandler=function(){var t=this;this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo()});var e=this.nfsForm.getValue("path");this.getBucketTypeahead(e).subscribe(function(n){t.isNewBucket=""!==e&&-1===n.indexOf(e)})},t.prototype.getBucketTypeahead=function(t){var e=this.nfsForm.getValue("rgw_user_id");return pt.isString(e)&&pt.isString(t)&&"/"!==t&&""!==t?this.nfsService.buckets(e):Object(pc.a)([])},t.prototype._generateTag=function(){var t=this.nfsForm.getValue("tag");return this.nfsForm.get("tag").dirty||(t=void 0,"RGW"===this.nfsForm.getValue("fsal")&&(t=this.nfsForm.getValue("path"))),t},t.prototype._generatePseudo=function(){var t=this.nfsForm.getValue("pseudo");return this.nfsForm.get("pseudo")&&!this.nfsForm.get("pseudo").dirty&&(t=void 0,"CEPH"===this.nfsForm.getValue("fsal")?(t="/cephfs",pt.isString(this.nfsForm.getValue("path"))&&(t+=this.nfsForm.getValue("path"))):"RGW"===this.nfsForm.getValue("fsal")&&pt.isString(this.nfsForm.getValue("rgw_user_id"))&&(t="/"+this.nfsForm.getValue("rgw_user_id"),pt.isString(this.nfsForm.getValue("path"))&&(t+="/"+this.nfsForm.getValue("path")))),t},t.prototype._updateAccessType=function(){var t=this.nfsForm.getValue("name"),e=this.defaultAccessType[t];return e||(e="RW"),e},t.prototype.onClusterChange=function(){var t=this.nfsForm.getValue("cluster_id");this.daemonsSelections=pt.map(this.allDaemons[t],function(t){return new mc.a(!1,t,"")}),this.daemonsSelections=this.daemonsSelections.slice(),this.nfsForm.patchValue({daemons:[]})},t.prototype.removeDaemon=function(t,e){this.daemonsSelections.forEach(function(t){t.name===e&&(t.selected=!1)});var n=this.nfsForm.get("daemons");return n.value.splice(t,1),n.setValue(n.value),!1},t.prototype.onDaemonSelection=function(){this.nfsForm.get("daemons").setValue(this.nfsForm.getValue("daemons"))},t.prototype.submitAction=function(){var t=this,e=this._buildRequest();this.taskWrapper.wrapTaskAroundCall(this.isEdit?{task:new Ou.a("nfs/edit",{cluster_id:this.cluster_id,export_id:this.export_id}),call:this.nfsService.update(this.cluster_id,this.export_id,e)}:{task:new Ou.a("nfs/create",{path:e.path,fsal:e.fsal,cluster_id:e.cluster_id}),call:this.nfsService.create(e)}).subscribe(void 0,function(){return t.nfsForm.setErrors({cdSubmitButton:!0})},function(){return t.router.navigate(["/nfs"])})},t.prototype._buildRequest=function(){var t=pt.cloneDeep(this.nfsForm.value);return(pt.isUndefined(t.tag)||""===t.tag)&&(t.tag=null),this.isEdit&&(t.export_id=this.export_id),"CEPH"===t.fsal.name?delete t.fsal.rgw_user_id:(delete t.fsal.fs_name,delete t.fsal.user_id),t.protocols=[],t.protocolNfsv3?t.protocols.push(3):t.tag=null,delete t.protocolNfsv3,t.protocolNfsv4?t.protocols.push(4):t.pseudo=null,delete t.protocolNfsv4,t.transports=[],t.transportTCP&&t.transports.push("TCP"),delete t.transportTCP,t.transportUDP&&t.transports.push("UDP"),delete t.transportUDP,t.clients.forEach(function(e){e.addresses=pt.isString(e.addresses)?pt(e.addresses).split(/[ ,]+/).uniq().filter(function(t){return""!==t}).value():[],e.squash||(e.squash=t.squash),e.access_type||(e.access_type=t.access_type)}),t.fsal.sec_label_xattr=!1===t.security_label||"RGW"===t.fsal.name?null:t.sec_label_xattr,delete t.sec_label_xattr,t},t}(),yc=o["\u0275crt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function vc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function xc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- No cluster available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function _c(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- Select the cluster --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Tc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function wc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Sc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","cluster_id"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Cluster"])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,13,"select",[["class","form-control"],["formControlName","cluster_id"],["id","cluster_id"],["name","cluster_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,9).onTouched()&&a),"change"===e&&(a=!1!==r.onClusterChange()&&a),a},null,null)),o["\u0275did"](9,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,vc)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,xc)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,_c)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Tc)),o["\u0275did"](21,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,wc)),o["\u0275did"](23,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("cluster_id",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"cluster_id"),t(e,15,0,null===n.allClusters),t(e,17,0,null!==n.allClusters&&0===n.allClusters.length),t(e,19,0,null!==n.allClusters&&n.allClusters.length>0),t(e,21,0,n.allClusters),t(e,23,0,n.nfsForm.showError("cluster_id",o["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,o["\u0275nov"](e,13).ngClassUntouched,o["\u0275nov"](e,13).ngClassTouched,o["\u0275nov"](e,13).ngClassPristine,o["\u0275nov"](e,13).ngClassDirty,o["\u0275nov"](e,13).ngClassValid,o["\u0275nov"](e,13).ngClassInvalid,o["\u0275nov"](e,13).ngClassPending)})}function Oc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,4,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeDaemon(t.context.index,t.context.$implicit)&&a),a},null,null)),(t()(),o["\u0275eld"](5,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function Ic(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Cc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- No data pools available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function kc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- Select the storage backend --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Nc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.descr)})}function Rc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Ac(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Ec(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- No users available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Dc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- Select the object gateway user --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Lc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function Pc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Mc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","rgw_user_id"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Object Gateway User"])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,13,"select",[["class","form-control"],["formControlName","rgw_user_id"],["id","rgw_user_id"],["name","rgw_user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,9).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a},null,null)),o["\u0275did"](9,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ac)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ec)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Dc)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Lc)),o["\u0275did"](21,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Pc)),o["\u0275did"](23,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("rgw_user_id",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"rgw_user_id"),t(e,15,0,null===n.allRgwUsers),t(e,17,0,null!==n.allRgwUsers&&0===n.allRgwUsers.length),t(e,19,0,null!==n.allRgwUsers&&n.allRgwUsers.length>0),t(e,21,0,n.allRgwUsers),t(e,23,0,n.nfsForm.showError("rgw_user_id",o["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,o["\u0275nov"](e,13).ngClassUntouched,o["\u0275nov"](e,13).ngClassTouched,o["\u0275nov"](e,13).ngClassPristine,o["\u0275nov"](e,13).ngClassDirty,o["\u0275nov"](e,13).ngClassValid,o["\u0275nov"](e,13).ngClassInvalid,o["\u0275nov"](e,13).ngClassPending)})}function qc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function jc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- No clients available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Fc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- Select the cephx client --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function zc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function Gc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Yc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","user_id"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["CephFS User ID"])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,13,"select",[["class","form-control"],["formControlName","user_id"],["id","user_id"],["name","user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,9).onTouched()&&a),a},null,null)),o["\u0275did"](9,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,qc)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,jc)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Fc)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,zc)),o["\u0275did"](21,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Gc)),o["\u0275did"](23,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("user_id",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"user_id"),t(e,15,0,null===n.allCephxClients),t(e,17,0,null!==n.allCephxClients&&0===n.allCephxClients.length),t(e,19,0,null!==n.allCephxClients&&n.allCephxClients.length>0),t(e,21,0,n.allCephxClients),t(e,23,0,n.nfsForm.showError("user_id",o["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,o["\u0275nov"](e,13).ngClassUntouched,o["\u0275nov"](e,13).ngClassTouched,o["\u0275nov"](e,13).ngClassPristine,o["\u0275nov"](e,13).ngClassDirty,o["\u0275nov"](e,13).ngClassValid,o["\u0275nov"](e,13).ngClassInvalid,o["\u0275nov"](e,13).ngClassPending)})}function Vc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Hc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- No CephFS filesystem available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Bc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- Select the CephFS filesystem --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Uc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)},function(t,e){t(e,3,0,e.context.$implicit.name)})}function Wc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Kc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","fs_name"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["CephFS Name"])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,13,"select",[["class","form-control"],["formControlName","fs_name"],["id","fs_name"],["name","fs_name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,9).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a},null,null)),o["\u0275did"](9,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Vc)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Hc)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Bc)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Uc)),o["\u0275did"](21,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Wc)),o["\u0275did"](23,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("fs_name",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"fs_name"),t(e,15,0,null===n.allFsNames),t(e,17,0,null!==n.allFsNames&&0===n.allFsNames.length),t(e,19,0,null!==n.allFsNames&&n.allFsNames.length>0),t(e,21,0,n.allFsNames),t(e,23,0,n.nfsForm.showError("fs_name",o["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,o["\u0275nov"](e,13).ngClassUntouched,o["\u0275nov"](e,13).ngClassTouched,o["\u0275nov"](e,13).ngClassPristine,o["\u0275nov"](e,13).ngClassDirty,o["\u0275nov"](e,13).ngClassValid,o["\u0275nov"](e,13).ngClassInvalid,o["\u0275nov"](e,13).ngClassPending)})}function $c(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Zc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"input",[["class","form-control"],["formControlName","sec_label_xattr"],["id","sec_label_xattr"],["name","sec_label_xattr"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,1)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,1).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,1)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,1)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](1,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](3,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](5,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){t(e,3,0,"sec_label_xattr")},function(t,e){t(e,0,0,o["\u0275nov"](e,5).ngClassUntouched,o["\u0275nov"](e,5).ngClassTouched,o["\u0275nov"](e,5).ngClassPristine,o["\u0275nov"](e,5).ngClassDirty,o["\u0275nov"](e,5).ngClassValid,o["\u0275nov"](e,5).ngClassInvalid,o["\u0275nov"](e,5).ngClassPending)})}function Xc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Jc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,4,"label",[["class","col-sm-3 control-label"],["for","security_label"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Security Label"])),(t()(),o["\u0275and"](16777216,null,null,1,null,$c)),o["\u0275did"](7,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](8,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,5,"input",[["formControlName","security_label"],["id","security_label"],["name","security_label"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,11).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,11).onTouched()&&a),a},null,null)),o["\u0275did"](11,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](13,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](15,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](16,0,null,null,1,"label",[["for","security_label"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Enable security label"])),(t()(),o["\u0275eld"](18,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Zc)),o["\u0275did"](20,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Xc)),o["\u0275did"](22,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("security_label",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,7,0,n.nfsForm.getValue("security_label")),t(e,13,0,"security_label"),t(e,20,0,n.nfsForm.getValue("security_label")),t(e,22,0,n.nfsForm.showError("sec_label_xattr",o["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,10,0,o["\u0275nov"](e,15).ngClassUntouched,o["\u0275nov"](e,15).ngClassTouched,o["\u0275nov"](e,15).ngClassPristine,o["\u0275nov"](e,15).ngClassDirty,o["\u0275nov"](e,15).ngClassValid,o["\u0275nov"](e,15).ngClassInvalid,o["\u0275nov"](e,15).ngClassPending)})}function Qc(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function tl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Path need to start with a '/' and can be followed by a word"]))],null,null)}function el(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["New directory will be created"]))],null,null)}function nl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","path"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["CephFS Path"])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,16777216,null,null,6,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==o["\u0275nov"](t,9)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,9).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,9)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,9)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==o["\u0275nov"](t,14).onInput(n)&&a),"keyup"===e&&(a=!1!==o["\u0275nov"](t,14).onChange(n)&&a),"click"===e&&(a=!1!==o["\u0275nov"](t,14).onFocus()&&a),"focus"===e&&(a=!1!==o["\u0275nov"](t,14).onFocus()&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,14).onBlur()&&a),"keydown"===e&&(a=!1!==o["\u0275nov"](t,14).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.pathChangeHandler()&&a),"blur"===e&&(a=!1!==r.pathChangeHandler()&&a),a},null,null)),o["\u0275did"](9,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),o["\u0275did"](14,212992,null,0,Ju,[Q.a,Xu,o.ChangeDetectorRef,o.ElementRef,we.q,o.Renderer2,o.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),(t()(),o["\u0275and"](16777216,null,null,1,null,Qc)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,tl)),o["\u0275did"](18,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,el)),o["\u0275did"](20,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("path",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"path"),t(e,14,0,n.pathDataSource),t(e,16,0,n.nfsForm.showError("path",o["\u0275nov"](e.parent,6),"required")),t(e,18,0,n.nfsForm.showError("path",o["\u0275nov"](e.parent,6),"pattern")),t(e,20,0,n.isNewDirectory&&!n.nfsForm.showError("path",o["\u0275nov"](e.parent,6)))},function(t,e){t(e,8,0,o["\u0275nov"](e,13).ngClassUntouched,o["\u0275nov"](e,13).ngClassTouched,o["\u0275nov"](e,13).ngClassPristine,o["\u0275nov"](e,13).ngClassDirty,o["\u0275nov"](e,13).ngClassValid,o["\u0275nov"](e,13).ngClassInvalid,o["\u0275nov"](e,13).ngClassPending)})}function al(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function rl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Path can only be a single '/' or a word"]))],null,null)}function il(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["New bucket will be created"]))],null,null)}function ol(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","path"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Path"])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,16777216,null,null,6,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==o["\u0275nov"](t,9)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,9).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,9)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,9)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==o["\u0275nov"](t,14).onInput(n)&&a),"keyup"===e&&(a=!1!==o["\u0275nov"](t,14).onChange(n)&&a),"click"===e&&(a=!1!==o["\u0275nov"](t,14).onFocus()&&a),"focus"===e&&(a=!1!==o["\u0275nov"](t,14).onFocus()&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,14).onBlur()&&a),"keydown"===e&&(a=!1!==o["\u0275nov"](t,14).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.bucketChangeHandler()&&a),"blur"===e&&(a=!1!==r.bucketChangeHandler()&&a),a},null,null)),o["\u0275did"](9,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),o["\u0275did"](14,212992,null,0,Ju,[Q.a,Xu,o.ChangeDetectorRef,o.ElementRef,we.q,o.Renderer2,o.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),(t()(),o["\u0275and"](16777216,null,null,1,null,al)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,rl)),o["\u0275did"](18,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,il)),o["\u0275did"](20,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("path",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"path"),t(e,14,0,n.bucketDataSource),t(e,16,0,n.nfsForm.showError("path",o["\u0275nov"](e.parent,6),"required")),t(e,18,0,n.nfsForm.showError("path",o["\u0275nov"](e.parent,6),"pattern")),t(e,20,0,n.isNewBucket&&!n.nfsForm.showError("path",o["\u0275nov"](e.parent,6)))},function(t,e){t(e,8,0,o["\u0275nov"](e,13).ngClassUntouched,o["\u0275nov"](e,13).ngClassTouched,o["\u0275nov"](e,13).ngClassPristine,o["\u0275nov"](e,13).ngClassDirty,o["\u0275nov"](e,13).ngClassValid,o["\u0275nov"](e,13).ngClassInvalid,o["\u0275nov"](e,13).ngClassPending)})}function sl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function ul(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,13,"label",[["class","col-sm-3 control-label"],["for","tag"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["NFS Tag"])),(t()(),o["\u0275eld"](4,0,null,null,10,"cd-helper",[],null,null,null,Co.b,Co.a)),o["\u0275did"](5,49152,null,0,ko.a,[],null,null),(t()(),o["\u0275eld"](6,0,null,0,4,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Alternative access for "])),(t()(),o["\u0275eld"](8,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["NFS v3"])),(t()(),o["\u0275ted"](-1,null,[" mounts (it must not have a leading /)."])),(t()(),o["\u0275eld"](11,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz)."])),(t()(),o["\u0275eld"](13,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["By using different Tag options, the same Path may be exported multiple times."])),(t()(),o["\u0275eld"](15,0,null,null,6,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](16,0,null,null,5,"input",[["class","form-control"],["formControlName","tag"],["id","tag"],["name","tag"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,17)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,17).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,17)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,17)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](17,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](19,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](21,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){t(e,19,0,"tag")},function(t,e){t(e,16,0,o["\u0275nov"](e,21).ngClassUntouched,o["\u0275nov"](e,21).ngClassTouched,o["\u0275nov"](e,21).ngClassPristine,o["\u0275nov"](e,21).ngClassDirty,o["\u0275nov"](e,21).ngClassValid,o["\u0275nov"](e,21).ngClassInvalid,o["\u0275nov"](e,21).ngClassPending)})}function cl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function ll(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Pseudo needs to start with a '/' and can't contain any of the following: >, <, |, &, ( or )."]))],null,null)}function dl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,29,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,15,"label",[["class","col-sm-3 control-label"],["for","pseudo"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Pseudo"])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,11,"cd-helper",[],null,null,null,Co.b,Co.a)),o["\u0275did"](8,49152,null,0,ko.a,[],null,null),(t()(),o["\u0275eld"](9,0,null,0,7,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["The position that this "])),(t()(),o["\u0275eld"](11,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["NFS v4"])),(t()(),o["\u0275ted"](-1,null,[" export occupies in the "])),(t()(),o["\u0275eld"](14,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Pseudo FS"])),(t()(),o["\u0275ted"](-1,null,[" (it must be unique)."])),(t()(),o["\u0275eld"](17,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["By using different Pseudo options, the same Path may be exported multiple times."])),(t()(),o["\u0275eld"](19,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](20,0,null,null,5,"input",[["class","form-control"],["formControlName","pseudo"],["id","pseudo"],["name","pseudo"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,21)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](21,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](23,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](25,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,cl)),o["\u0275did"](27,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ll)),o["\u0275did"](29,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("pseudo",o["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,23,0,"pseudo"),t(e,27,0,n.nfsForm.showError("pseudo",o["\u0275nov"](e.parent,6),"required")),t(e,29,0,n.nfsForm.showError("pseudo",o["\u0275nov"](e.parent,6),"pattern"))},function(t,e){t(e,20,0,o["\u0275nov"](e,25).ngClassUntouched,o["\u0275nov"](e,25).ngClassTouched,o["\u0275nov"](e,25).ngClassPristine,o["\u0275nov"](e,25).ngClassDirty,o["\u0275nov"](e,25).ngClassValid,o["\u0275nov"](e,25).ngClassInvalid,o["\u0275nov"](e,25).ngClassPending)})}function fl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function pl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- No access type available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function hl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- Select the access type --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function gl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.value)})}function ml(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,1,0,n.getAccessTypeHelp(n.nfsForm.getValue("access_type")))})}function bl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"span",[["class","text-warning"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["The Object Gateway NFS backend has a number of limitations which will seriously affect applications writing to the share. Please consult the "])),(t()(),o["\u0275eld"](2,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[" documentation"])),(t()(),o["\u0275ted"](-1,null,[" for details before enabling write access."]))],null,function(t,e){t(e,2,0,o["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function yl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function vl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function xl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["-- No squash available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function _l(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](-1,null,["--Select what kind of user id squashing is performed --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Tl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function wl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Sl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Required field"]))],null,null)}function Ol(t){return o["\u0275vid"](0,[o["\u0275pid"](0,i.TitleCasePipe,[]),o["\u0275pid"](0,No.a,[]),o["\u0275qud"](402653184,1,{nfsClients:0}),(t()(),o["\u0275eld"](3,0,null,null,194,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,193,"form",[["class","form-horizontal"],["name","nfsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,6).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,6).onReset()&&a),a},null,null)),o["\u0275did"](5,16384,null,0,we.D,[],null,null),o["\u0275did"](6,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](8,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](9,0,null,null,188,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),o["\u0275eld"](11,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),o["\u0275ted"](12,null,["","",""])),o["\u0275ppd"](13,1),o["\u0275ppd"](14,1),(t()(),o["\u0275eld"](15,0,null,null,173,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Sc)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](18,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](19,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](20,{"has-error":0}),(t()(),o["\u0275eld"](21,0,null,null,2,"label",[["class","col-sm-3 control-label"],["for","daemons"]],null,null,null,null,null)),(t()(),o["\u0275eld"](22,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Daemons"])),(t()(),o["\u0275eld"](24,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Oc)),o["\u0275did"](26,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](27,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](28,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),o["\u0275eld"](29,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(t,e,n){var a=!0;return"selection"===e&&(a=!1!==t.component.onDaemonSelection()&&a),a},tc.b,tc.a)),o["\u0275did"](30,638976,null,0,ec.a,[Tt.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(t()(),o["\u0275eld"](31,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(t()(),o["\u0275eld"](32,0,null,0,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Add daemon"])),(t()(),o["\u0275eld"](34,0,null,null,33,"div",[["formGroupName","fsal"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),o["\u0275did"](35,212992,null,0,we.m,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.d,null,[we.m]),o["\u0275did"](37,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](38,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](39,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](40,{"has-error":0}),(t()(),o["\u0275eld"](41,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","name"]],null,null,null,null,null)),(t()(),o["\u0275eld"](42,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Storage Backend"])),(t()(),o["\u0275eld"](44,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](45,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](46,0,null,null,13,"select",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,47).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,47).onTouched()&&a),"change"===e&&(a=!1!==r.fsalChangeHandler()&&a),a},null,null)),o["\u0275did"](47,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](49,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](51,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ic)),o["\u0275did"](53,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Cc)),o["\u0275did"](55,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,kc)),o["\u0275did"](57,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Nc)),o["\u0275did"](59,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Rc)),o["\u0275did"](61,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Mc)),o["\u0275did"](63,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Yc)),o["\u0275did"](65,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Kc)),o["\u0275did"](67,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Jc)),o["\u0275did"](69,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,nl)),o["\u0275did"](71,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ol)),o["\u0275did"](73,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](74,0,null,null,27,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](75,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](76,{"has-error":0}),(t()(),o["\u0275eld"](77,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","protocols"]],null,null,null,null,null)),(t()(),o["\u0275eld"](78,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["NFS Protocol"])),(t()(),o["\u0275eld"](80,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](81,0,null,null,20,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](82,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](83,0,null,null,5,"input",[["formControlName","protocolNfsv3"],["id","protocolNfsv3"],["name","protocolNfsv3"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,84).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,84).onTouched()&&a),a},null,null)),o["\u0275did"](84,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](86,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](88,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](89,0,null,null,1,"label",[["for","protocolNfsv3"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["NFSv3"])),(t()(),o["\u0275eld"](91,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](92,0,null,null,5,"input",[["formControlName","protocolNfsv4"],["id","protocolNfsv4"],["name","protocolNfsv4"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,93).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,93).onTouched()&&a),a},null,null)),o["\u0275did"](93,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](95,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](97,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](98,0,null,null,1,"label",[["for","protocolNfsv4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["NFSv4"])),(t()(),o["\u0275and"](16777216,null,null,1,null,sl)),o["\u0275did"](101,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ul)),o["\u0275did"](103,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,dl)),o["\u0275did"](105,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](106,0,null,null,27,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](107,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](108,{"has-error":0}),(t()(),o["\u0275eld"](109,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","access_type"]],null,null,null,null,null)),(t()(),o["\u0275eld"](110,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Access Type"])),(t()(),o["\u0275eld"](112,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](113,0,null,null,20,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](114,0,null,null,13,"select",[["class","form-control"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,115).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,115).onTouched()&&a),"change"===e&&(a=!1!==r.accessTypeChangeHandler()&&a),a},null,null)),o["\u0275did"](115,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](117,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](119,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,fl)),o["\u0275did"](121,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,pl)),o["\u0275did"](123,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,hl)),o["\u0275did"](125,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,gl)),o["\u0275did"](127,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ml)),o["\u0275did"](129,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,bl)),o["\u0275did"](131,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,yl)),o["\u0275did"](133,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](134,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](135,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](136,{"has-error":0}),(t()(),o["\u0275eld"](137,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","squash"]],null,null,null,null,null)),(t()(),o["\u0275eld"](138,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Squash"])),(t()(),o["\u0275eld"](140,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](141,0,null,null,16,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](142,0,null,null,13,"select",[["class","form-control"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,143).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,143).onTouched()&&a),a},null,null)),o["\u0275did"](143,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](145,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](147,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,vl)),o["\u0275did"](149,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,xl)),o["\u0275did"](151,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,_l)),o["\u0275did"](153,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Tl)),o["\u0275did"](155,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,wl)),o["\u0275did"](157,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](158,0,null,null,28,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](159,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](160,{"has-error":0}),(t()(),o["\u0275eld"](161,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","transports"]],null,null,null,null,null)),(t()(),o["\u0275eld"](162,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Transport Protocol"])),(t()(),o["\u0275eld"](164,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](165,0,null,null,21,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](166,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](167,0,null,null,5,"input",[["formControlName","transportUDP"],["id","transportUDP"],["name","transportUDP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,168).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,168).onTouched()&&a),a},null,null)),o["\u0275did"](168,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](170,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](172,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](173,0,null,null,1,"label",[["for","transportUDP"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["UDP"])),(t()(),o["\u0275eld"](175,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](176,0,null,null,5,"input",[["formControlName","transportTCP"],["id","transportTCP"],["name","transportTCP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,177).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,177).onTouched()&&a),a},null,null)),o["\u0275did"](177,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](179,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](181,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](182,0,null,null,1,"label",[["for","transportTCP"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["TCP"])),(t()(),o["\u0275and"](16777216,null,null,1,null,Sl)),o["\u0275did"](185,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](186,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](187,0,null,null,1,"cd-nfs-form-client",[],null,null,null,fc,rc)),o["\u0275did"](188,49152,[[1,4],["nfsClients",4]],0,ac,[Su,Tt.a],{form:[0,"form"]},null),(t()(),o["\u0275eld"](189,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](190,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),o["\u0275eld"](191,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Ka.b,Ka.a)),o["\u0275did"](192,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),o["\u0275ted"](193,0,["","",""])),o["\u0275ppd"](194,1),o["\u0275ppd"](195,1),(t()(),o["\u0275eld"](196,0,null,null,1,"cd-back-button",[],null,null,null,Za.b,Za.a)),o["\u0275did"](197,49152,null,0,Xa.a,[i.Location,$n.b],null,null)],function(t,e){var n=e.component;t(e,6,0,n.nfsForm),t(e,17,0,!n.isDefaultCluster);var a=t(e,20,0,n.nfsForm.showError("daemons",o["\u0275nov"](e,6)));t(e,19,0,"form-group",a),t(e,26,0,n.nfsForm.getValue("daemons")),t(e,30,0,"btn btn-default pull-right",n.nfsForm.get("daemons").value,n.daemonsSelections,n.daemonsMessages),t(e,35,0,"fsal");var r=t(e,40,0,n.nfsForm.showError("name",o["\u0275nov"](e,6)));t(e,39,0,"form-group",r),t(e,49,0,"name"),t(e,53,0,null===n.allFsals),t(e,55,0,null!==n.allFsals&&0===n.allFsals.length),t(e,57,0,null!==n.allFsals&&n.allFsals.length>0),t(e,59,0,n.allFsals),t(e,61,0,n.nfsForm.showError("name",o["\u0275nov"](e,6),"required")),t(e,63,0,"RGW"===n.nfsForm.getValue("name")),t(e,65,0,"CEPH"===n.nfsForm.getValue("name")),t(e,67,0,"CEPH"===n.nfsForm.getValue("name")),t(e,69,0,"CEPH"===n.nfsForm.getValue("name")),t(e,71,0,"CEPH"===n.nfsForm.getValue("name")),t(e,73,0,"RGW"===n.nfsForm.getValue("name"));var i=t(e,76,0,n.nfsForm.showError("protocolNfsv3",o["\u0275nov"](e,6))||n.nfsForm.showError("protocolNfsv4",o["\u0275nov"](e,6)));t(e,75,0,"form-group",i),t(e,86,0,"protocolNfsv3"),t(e,95,0,"protocolNfsv4"),t(e,101,0,n.nfsForm.showError("protocolNfsv3",o["\u0275nov"](e,6),"required")||n.nfsForm.showError("protocolNfsv4",o["\u0275nov"](e,6),"required")),t(e,103,0,n.nfsForm.getValue("protocolNfsv3")),t(e,105,0,n.nfsForm.getValue("protocolNfsv4"));var s=t(e,108,0,n.nfsForm.showError("access_type",o["\u0275nov"](e,6)));t(e,107,0,"form-group",s),t(e,117,0,"access_type"),t(e,121,0,null===n.nfsAccessType),t(e,123,0,null!==n.nfsAccessType&&0===n.nfsAccessType.length),t(e,125,0,null!==n.nfsAccessType&&n.nfsAccessType.length>0),t(e,127,0,n.nfsAccessType),t(e,129,0,n.nfsForm.getValue("access_type")),t(e,131,0,"RW"===n.nfsForm.getValue("access_type")&&"RGW"===n.nfsForm.getValue("name")),t(e,133,0,n.nfsForm.showError("access_type",o["\u0275nov"](e,6),"required"));var u=t(e,136,0,n.nfsForm.showError("squash",o["\u0275nov"](e,6)));t(e,135,0,"form-group",u),t(e,145,0,"squash"),t(e,149,0,null===n.nfsSquash),t(e,151,0,null!==n.nfsSquash&&0===n.nfsSquash.length),t(e,153,0,null!==n.nfsSquash&&n.nfsSquash.length>0),t(e,155,0,n.nfsSquash),t(e,157,0,n.nfsForm.showError("squash",o["\u0275nov"](e,6),"required"));var c=t(e,160,0,n.nfsForm.showError("transportUDP",o["\u0275nov"](e,6))||n.nfsForm.showError("transportTCP",o["\u0275nov"](e,6)));t(e,159,0,"form-group",c),t(e,170,0,"transportUDP"),t(e,179,0,"transportTCP"),t(e,185,0,n.nfsForm.showError("transportUDP",o["\u0275nov"](e,6),"required")||n.nfsForm.showError("transportTCP",o["\u0275nov"](e,6),"required")),t(e,188,0,n.nfsForm),t(e,192,0,o["\u0275nov"](e,6),"button")},function(t,e){var n=e.component;t(e,4,0,o["\u0275nov"](e,8).ngClassUntouched,o["\u0275nov"](e,8).ngClassTouched,o["\u0275nov"](e,8).ngClassPristine,o["\u0275nov"](e,8).ngClassDirty,o["\u0275nov"](e,8).ngClassValid,o["\u0275nov"](e,8).ngClassInvalid,o["\u0275nov"](e,8).ngClassPending);var a=o["\u0275unv"](e,12,0,t(e,13,0,o["\u0275nov"](e,0),n.action)),r=o["\u0275unv"](e,12,1,t(e,14,0,o["\u0275nov"](e,1),n.resource));t(e,12,0,a,r),t(e,34,0,o["\u0275nov"](e,37).ngClassUntouched,o["\u0275nov"](e,37).ngClassTouched,o["\u0275nov"](e,37).ngClassPristine,o["\u0275nov"](e,37).ngClassDirty,o["\u0275nov"](e,37).ngClassValid,o["\u0275nov"](e,37).ngClassInvalid,o["\u0275nov"](e,37).ngClassPending),t(e,46,0,o["\u0275nov"](e,51).ngClassUntouched,o["\u0275nov"](e,51).ngClassTouched,o["\u0275nov"](e,51).ngClassPristine,o["\u0275nov"](e,51).ngClassDirty,o["\u0275nov"](e,51).ngClassValid,o["\u0275nov"](e,51).ngClassInvalid,o["\u0275nov"](e,51).ngClassPending),t(e,83,0,o["\u0275nov"](e,88).ngClassUntouched,o["\u0275nov"](e,88).ngClassTouched,o["\u0275nov"](e,88).ngClassPristine,o["\u0275nov"](e,88).ngClassDirty,o["\u0275nov"](e,88).ngClassValid,o["\u0275nov"](e,88).ngClassInvalid,o["\u0275nov"](e,88).ngClassPending),t(e,92,0,o["\u0275nov"](e,97).ngClassUntouched,o["\u0275nov"](e,97).ngClassTouched,o["\u0275nov"](e,97).ngClassPristine,o["\u0275nov"](e,97).ngClassDirty,o["\u0275nov"](e,97).ngClassValid,o["\u0275nov"](e,97).ngClassInvalid,o["\u0275nov"](e,97).ngClassPending),t(e,114,0,o["\u0275nov"](e,119).ngClassUntouched,o["\u0275nov"](e,119).ngClassTouched,o["\u0275nov"](e,119).ngClassPristine,o["\u0275nov"](e,119).ngClassDirty,o["\u0275nov"](e,119).ngClassValid,o["\u0275nov"](e,119).ngClassInvalid,o["\u0275nov"](e,119).ngClassPending),t(e,142,0,o["\u0275nov"](e,147).ngClassUntouched,o["\u0275nov"](e,147).ngClassTouched,o["\u0275nov"](e,147).ngClassPristine,o["\u0275nov"](e,147).ngClassDirty,o["\u0275nov"](e,147).ngClassValid,o["\u0275nov"](e,147).ngClassInvalid,o["\u0275nov"](e,147).ngClassPending),t(e,167,0,o["\u0275nov"](e,172).ngClassUntouched,o["\u0275nov"](e,172).ngClassTouched,o["\u0275nov"](e,172).ngClassPristine,o["\u0275nov"](e,172).ngClassDirty,o["\u0275nov"](e,172).ngClassValid,o["\u0275nov"](e,172).ngClassInvalid,o["\u0275nov"](e,172).ngClassPending),t(e,176,0,o["\u0275nov"](e,181).ngClassUntouched,o["\u0275nov"](e,181).ngClassTouched,o["\u0275nov"](e,181).ngClassPristine,o["\u0275nov"](e,181).ngClassDirty,o["\u0275nov"](e,181).ngClassValid,o["\u0275nov"](e,181).ngClassInvalid,o["\u0275nov"](e,181).ngClassPending);var i=o["\u0275unv"](e,193,0,t(e,194,0,o["\u0275nov"](e,0),n.action)),s=o["\u0275unv"](e,193,1,t(e,195,0,o["\u0275nov"](e,1),n.resource));t(e,193,0,i,s)})}function Il(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-nfs-form",[],null,null,null,Ol,yc)),o["\u0275did"](1,114688,null,0,bc,[d.a,Su,et.a,et.l,hc.a,ua.a,qe.a,ze.a,Iu.a,o.ChangeDetectorRef,Tt.a,$n.b],null,null)],function(t,e){t(e,1,0)},null)}var Cl=o["\u0275ccf"]("cd-nfs-form",bc,Il,{},{},[]),kl=function(){return function(){this.logoutUrl=window.location.origin+"/auth/saml2/slo"}}(),Nl=o["\u0275crt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function Rl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,16,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,15,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Sorry, the user does not exist in Ceph."])),(t()(),o["\u0275eld"](4,0,null,null,4,"h4",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Return to "])),(t()(),o["\u0275eld"](6,0,null,null,1,"a",[["class","sso-logout"]],[[8,"href",4]],null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Login Page"])),(t()(),o["\u0275ted"](-1,null,[". You'll be logged out from the Identity Provider when you retry logging in."])),(t()(),o["\u0275eld"](9,0,null,null,0,"img",[["class","img-responsive center-block img-rounded"],["src","assets/1280px-Nautilus_Octopus.jpg"]],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[' "'])),(t()(),o["\u0275eld"](12,0,null,null,1,"a",[["href","https://www.flickr.com/photos/146401137@N06/40335060661"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Nautilus Octopus"])),(t()(),o["\u0275ted"](-1,null,['" by Jin Kemoole is licensed under '])),(t()(),o["\u0275eld"](15,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/2.0/"],["rel","nofollow"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["CC BY 2.0"]))],null,function(t,e){t(e,6,0,e.component.logoutUrl)})}function Al(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-sso-not-found",[],null,null,null,Rl,Nl)),o["\u0275did"](1,49152,null,0,kl,[],null,null)],null,null)}var El,Dl=o["\u0275ccf"]("cd-sso-not-found",kl,Al,{},{},[]),Ll=n("lHUG"),Pl=function(){function t(t,e){this.http=t,this.localeId=e}return t.prototype.getLocale=function(){return this.localeId||"en-US"},t.prototype.setLocale=function(t){document.cookie="cd-lang="+t},t.prototype.getLanguages=function(){return this.http.get("ui-api/langs")},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c),o.inject(o.LOCALE_ID))},token:t,providedIn:"root"}),t}();!function(t){t.cs="\u010ce\u0161tina",t["de-DE"]="Deutsch",t["en-US"]="English",t["es-ES"]="Espa\xf1ol",t["fr-FR"]="Fran\xe7ais",t["id-ID"]="Bahasa Indonesia",t["it-IT"]="Italiano",t["ja-JP"]="\u65e5\u672c\u8a9e",t["ko-KR"]="\ud55c\uad6d\uc5b4",t["pl-PL"]="Polski",t["pt-BR"]="Portugu\xeas",t["zh-CN"]="\u4e2d\u6587 (\u7b80\u4f53)",t["zh-TW"]="\u4e2d\u6587 (\u7e41\u9ad4\uff09"}(El||(El={}));var Ml={cs:Ll.a,de:Ll.b,es:Ll.e,fr:Ll.g,id:Ll.m,it:Ll.y,ja:Ll.z,ko:Ll.A,pl:Ll.C,pt:Ll.D,zh:Ll.H},ql=function(){function t(t,e){this.localeService=t,this.languageService=e,this.isDropdown=!0,this.supportedLanguages=El}return t.prototype.ngOnInit=function(){var t=this;this.selectedLanguage=this.languageService.getLocale(),this.defineUsedLanguage(),this.languageService.getLanguages().subscribe(function(e){t.supportedLanguages=pt.pick(t.supportedLanguages,e)})},t.prototype.defineUsedLanguage=function(){var t=this.selectedLanguage.slice(0,2);t in Ml&&(Object(Ll.c)(t,Ml[t]),this.localeService.use(t))},t.prototype.reloadWindow=function(){window.location.reload()},t.prototype.changeLanguage=function(t){this.languageService.setLocale(t),this.reloadWindow()},t}(),jl=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Fl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.changeLanguage(t.context.$implicit.key)&&a),a},null,null)),(t()(),o["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.value)})}function zl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,2,null,Fl)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),o["\u0275pid"](0,i.KeyValuePipe,[o.KeyValueDiffers])],function(t,e){var n=e.component;t(e,2,0,o["\u0275unv"](e,2,0,o["\u0275nov"](e,3).transform(n.supportedLanguages)))},null)}function Gl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,16777216,null,null,8,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](2,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),(t()(),o["\u0275eld"](3,0,null,null,3,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Select a Language"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,4).onClick()&&a),a},null,null)),o["\u0275did"](4,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275ted"](5,null,[" "," "])),(t()(),o["\u0275eld"](6,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,zl)),o["\u0275did"](8,16384,null,0,gn.d,[gn.f,o.ViewContainerRef,o.TemplateRef],null,null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0)},function(t,e){var n=e.component;t(e,0,0,o["\u0275nov"](e,2).dropup,o["\u0275nov"](e,2).isOpen,o["\u0275nov"](e,2).isOpen&&o["\u0275nov"](e,2).isBs4),t(e,3,0,!0,o["\u0275nov"](e,4).isDisabled,o["\u0275nov"](e,4).isOpen),t(e,5,0,n.supportedLanguages[n.selectedLanguage])})}function Yl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.key),t(e,2,0,e.context.$implicit.key)},function(t,e){t(e,3,0,e.context.$implicit.value)})}function Vl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,8,"select",[["class","form-control"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,1).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,1).onTouched()&&a),"change"===e&&(a=!1!==r.changeLanguage(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedLanguage=n)&&a),a},null,null)),o["\u0275did"](1,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](3,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](5,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,2,null,Yl)),o["\u0275did"](7,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),o["\u0275pid"](0,i.KeyValuePipe,[o.KeyValueDiffers])],function(t,e){var n=e.component;t(e,3,0,n.selectedLanguage),t(e,7,0,o["\u0275unv"](e,7,0,o["\u0275nov"](e,8).transform(n.supportedLanguages)))},function(t,e){t(e,0,0,o["\u0275nov"](e,5).ngClassUntouched,o["\u0275nov"](e,5).ngClassTouched,o["\u0275nov"](e,5).ngClassPristine,o["\u0275nov"](e,5).ngClassDirty,o["\u0275nov"](e,5).ngClassValid,o["\u0275nov"](e,5).ngClassInvalid,o["\u0275nov"](e,5).ngClassPending)})}function Hl(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Gl)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Vl)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.isDropdown),t(e,3,0,!n.isDropdown)},null)}var Bl=n("IZUe"),Ul=n("D4zM"),Wl=n("DSvg"),Kl=function(){return function(){}}(),$l=function(){function t(t,e,n,a){this.authService=t,this.authStorageService=e,this.bsModalService=n,this.router=a,this.model=new Kl,this.isLoginActive=!1}return t.prototype.ngOnInit=function(){var t=this;if(this.authStorageService.isLoggedIn())this.router.navigate([""]);else{for(var e=this.bsModalService.getModalsCount(),n=1;n<=e;n++)this.bsModalService.hide(n);var a=null;if(-1!==window.location.hash.indexOf("access_token=")){a=window.location.hash.split("access_token=")[1];var r=window.location.toString();window.history.replaceState({},document.title,r.split("?")[0])}this.authService.check(a).subscribe(function(e){e.login_url?"#/login"===e.login_url?t.isLoginActive=!0:window.location.replace(e.login_url):(t.authStorageService.set(e.username,a,e.permissions),t.router.navigate([""]))})}},t.prototype.login=function(){var t=this;this.authService.login(this.model).then(function(){t.router.navigate([""])})},t}(),Zl=o["\u0275crt"]({encapsulation:0,styles:[[".login{height:100%} .login .row{color:#fff;background-color:#374249} .login h1{margin-top:0;margin-bottom:30px} .login .btn-password, .login .form-control{color:#fff;background-color:#555} .login .btn-password:focus{outline-color:#2b99a8} .login .checkbox-primary input[type=checkbox]:checked+label::before, .login .checkbox-primary input[type=radio]:checked+label::before{background-color:#2b99a8;border-color:#2b99a8}"]],data:{}});function Xl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"div",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Username is required"]))],null,null)}function Jl(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"div",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Password is required"]))],null,null)}function Ql(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,46,"div",[["class","login"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,45,"div",[["class","row full-height vertical-align"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"div",[["class","col-sm-6 hidden-xs"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,0,"img",[["alt","Ceph"],["class","pull-right"],["src","assets/Ceph_Logo_Stacked_RGB_White_120411_fa_256x256.png"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,42,"div",[["class","col-xs-10 col-sm-4 col-lg-3 col-xs-offset-1 col-sm-offset-0 col-md-offset-0 col-lg-offset-0"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Welcome to Ceph!"])),(t()(),o["\u0275eld"](7,0,null,null,39,"form",[["name","loginForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngSubmit"],[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0,r=t.component;return"submit"===e&&(a=!1!==o["\u0275nov"](t,9).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,9).onReset()&&a),"ngSubmit"===e&&(a=!1!==r.login()&&a),a},null,null)),o["\u0275did"](8,16384,null,0,we.D,[],null,null),o["\u0275did"](9,4210688,[["loginForm",4]],0,we.t,[[8,null],[8,null]],null,{ngSubmit:"ngSubmit"}),o["\u0275prd"](2048,null,we.d,null,[we.t]),o["\u0275did"](11,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](12,0,null,null,2,"div",[["class","form-group has-feedback"]],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,1,"cd-language-selector",[],null,null,null,Hl,jl)),o["\u0275did"](14,114688,null,0,ql,[kr.j,Pl],{isDropdown:[0,"isDropdown"]},null),(t()(),o["\u0275eld"](15,0,null,null,13,"div",[["class","form-group has-feedback"]],null,null,null,null,null)),o["\u0275did"](16,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](17,{"has-error":0}),(t()(),o["\u0275eld"](18,0,null,null,8,"input",[["autofocus",""],["class","form-control"],["name","username"],["placeholder","Enter your username..."],["required",""],["type","text"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==o["\u0275nov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,19)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.username=n)&&a),a},null,null)),o["\u0275did"](19,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275did"](20,16384,null,0,we.y,[],{required:[0,"required"]},null),o["\u0275prd"](1024,null,we.o,function(t){return[t]},[we.y]),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](23,671744,[["username",4]],0,we.u,[[2,we.d],[6,we.o],[8,null],[6,we.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](25,16384,null,0,we.r,[[4,we.q]],null,null),o["\u0275did"](26,4210688,null,0,Bl.a,[o.ElementRef],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Xl)),o["\u0275did"](28,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](29,0,null,null,16,"div",[["class","form-group has-feedback"]],null,null,null,null,null)),o["\u0275did"](30,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](31,{"has-error":0}),(t()(),o["\u0275eld"](32,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](33,0,null,null,7,"input",[["class","form-control"],["id","password"],["name","password"],["placeholder","Enter your password..."],["required",""],["type","password"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==o["\u0275nov"](t,34)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,34).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,34)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,34)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.password=n)&&a),a},null,null)),o["\u0275did"](34,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275did"](35,16384,null,0,we.y,[],{required:[0,"required"]},null),o["\u0275prd"](1024,null,we.o,function(t){return[t]},[we.y]),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](38,671744,[["password",4]],0,we.u,[[2,we.d],[6,we.o],[8,null],[6,we.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),o["\u0275prd"](2048,null,we.q,null,[we.u]),o["\u0275did"](40,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](41,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),o["\u0275eld"](42,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-default btn-password"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,43).onClick()&&a),a},null,null)),o["\u0275did"](43,81920,null,0,Ul.a,[o.ElementRef,o.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Jl)),o["\u0275did"](45,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](46,0,null,null,0,"input",[["class","btn btn-primary btn-block"],["type","submit"],["value","Login"]],[[8,"disabled",0]],null,null,null,null))],function(t,e){var n=e.component;t(e,14,0,!1);var a=t(e,17,0,(o["\u0275nov"](e,9).submitted||o["\u0275nov"](e,23).dirty)&&o["\u0275nov"](e,23).invalid);t(e,16,0,"form-group has-feedback",a),t(e,20,0,""),t(e,23,0,"username",n.model.username),t(e,28,0,(o["\u0275nov"](e,9).submitted||o["\u0275nov"](e,23).dirty)&&o["\u0275nov"](e,23).invalid);var r=t(e,31,0,(o["\u0275nov"](e,9).submitted||o["\u0275nov"](e,38).dirty)&&o["\u0275nov"](e,38).invalid);t(e,30,0,"form-group has-feedback",r),t(e,35,0,""),t(e,38,0,"password",n.model.password),t(e,43,0,"password"),t(e,45,0,(o["\u0275nov"](e,9).submitted||o["\u0275nov"](e,38).dirty)&&o["\u0275nov"](e,38).invalid)},function(t,e){t(e,7,0,o["\u0275nov"](e,11).ngClassUntouched,o["\u0275nov"](e,11).ngClassTouched,o["\u0275nov"](e,11).ngClassPristine,o["\u0275nov"](e,11).ngClassDirty,o["\u0275nov"](e,11).ngClassValid,o["\u0275nov"](e,11).ngClassInvalid,o["\u0275nov"](e,11).ngClassPending),t(e,18,0,o["\u0275nov"](e,20).required?"":null,o["\u0275nov"](e,25).ngClassUntouched,o["\u0275nov"](e,25).ngClassTouched,o["\u0275nov"](e,25).ngClassPristine,o["\u0275nov"](e,25).ngClassDirty,o["\u0275nov"](e,25).ngClassValid,o["\u0275nov"](e,25).ngClassInvalid,o["\u0275nov"](e,25).ngClassPending),t(e,33,0,o["\u0275nov"](e,35).required?"":null,o["\u0275nov"](e,40).ngClassUntouched,o["\u0275nov"](e,40).ngClassTouched,o["\u0275nov"](e,40).ngClassPristine,o["\u0275nov"](e,40).ngClassDirty,o["\u0275nov"](e,40).ngClassValid,o["\u0275nov"](e,40).ngClassInvalid,o["\u0275nov"](e,40).ngClassPending),t(e,46,0,o["\u0275nov"](e,9).invalid)})}function td(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Ql)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.isLoginActive)},null)}function ed(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-login",[],null,null,null,td,Zl)),o["\u0275did"](1,114688,null,0,$l,[Wl.a,d.a,fa.b,et.l],null,null)],function(t,e){t(e,1,0)},null)}var nd=o["\u0275ccf"]("cd-login",$l,ed,{},{},[]),ad=function(){return function(){}}(),rd=o["\u0275crt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large;font-family:monospace}h2[_ngcontent-%COMP%]{font-size:xx-large;font-family:monospace}i[_ngcontent-%COMP%]{font-size:200px}"]],data:{}});function id(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,5,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Forbidden"])),(t()(),o["\u0275eld"](4,0,null,null,0,"i",[["class","fa fa-lock text-danger"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,1,"h2",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Sorry, you are not allowed to see what you were looking for."]))],null,null)}function od(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-forbidden",[],null,null,null,id,rd)),o["\u0275did"](1,49152,null,0,ad,[],null,null)],null,null)}var sd=o["\u0275ccf"]("cd-forbidden",ad,od,{},{},[]),ud=function(){return function(){}}(),cd=o["\u0275crt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function ld(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,11,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,10,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Sorry, we could not find what you were looking for"])),(t()(),o["\u0275eld"](4,0,null,null,0,"img",[["class","img-responsive center-block img-rounded"],["src","assets/1280px-Nautilus_Octopus.jpg"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[' "'])),(t()(),o["\u0275eld"](7,0,null,null,1,"a",[["href","https://www.flickr.com/photos/146401137@N06/40335060661"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Nautilus Octopus"])),(t()(),o["\u0275ted"](-1,null,['" by Jin Kemoole is licensed under '])),(t()(),o["\u0275eld"](10,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/2.0/"],["rel","nofollow"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["CC BY 2.0"]))],null,null)}function dd(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-not-found",[],null,null,null,ld,cd)),o["\u0275did"](1,49152,null,0,ud,[],null,null)],null,null)}var fd=o["\u0275ccf"]("cd-not-found",ud,dd,{},{},[]),pd=n("iutN"),hd=n("ES0t"),gd=n("MdoF"),md=n("Xg1U"),bd=n("z5nN"),yd=n("EEJc"),vd=n("PEr+"),xd=n("a40w"),_d=n("SjWX"),Td=n("Mxhz"),wd=function(){function t(t,e,n,a){this.modalRef=t,this.summaryService=e,this.userService=n,this.authStorageService=a,this.userPermission=this.authStorageService.getPermissions().user}return t.prototype.ngOnInit=function(){var t=this;this.copyright="Copyright(c) 2020 Ceph contributors.",this.projectConstants=$n.c,this.hostAddr=window.location.hostname,this.modalVariables=this.setVariables(),this.subs=this.summaryService.subscribe(function(e){if(e){var n=e.version.replace("ceph version ","").split(" ");t.hostAddr=e.mgr_host.replace(/(^\w+:|^)\/\//,"").replace(/\/$/,""),t.versionNumber=n[0],t.versionHash=n[1],t.versionName=n.slice(2,n.length).join(" ")}})},t.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},t.prototype.setVariables=function(){var t={};t.user=localStorage.getItem("dashboard_username"),t.role="user",this.userPermission.read&&this.userService.get(t.user).subscribe(function(e){t.role=e.roles});var e=Object(_d.detect)();return t.browserName=e&&e.name?e.name:"Not detected",t.browserVersion=e&&e.version?e.version:"Not detected",t.browserOS=e&&e.os?e.os:"Not detected",t},t}(),Sd=o["\u0275crt"]({encapsulation:0,styles:[[".product-versions[_ngcontent-%COMP%]{margin-top:30px}.product-versions[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{margin-right:10px}.modal-header[_ngcontent-%COMP%]{border-bottom:none}.modal-body[_ngcontent-%COMP%]{padding-left:80px;padding-right:80px}.modal-footer[_ngcontent-%COMP%]{border-top:none;padding:15px 80px 35px}h2[_ngcontent-%COMP%]{font-size:3em}.ceph-logo[_ngcontent-%COMP%]{width:10%}.list-unstyled[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-top:5px}.modal-body[_ngcontent-%COMP%]{margin-top:0;padding-top:0}.modal-body[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin-top:0}"]],data:{}});function Od(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.modalRef.hide()&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xd7"])),(t()(),o["\u0275eld"](4,0,null,null,45,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,2,"h2",[],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,0,"img",[["class","ceph-logo"],["src","assets/Ceph_Logo_Stacked_RGB_120411_fa_348x348.png"]],[[8,"alt",0]],null,null,null,null)),(t()(),o["\u0275ted"](7,null,[" "," "])),(t()(),o["\u0275eld"](8,0,null,null,2,"h3",[],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](10,null,["",""])),(t()(),o["\u0275eld"](11,0,null,null,6,"div",[["class","product-versions"]],null,null,null,null,null)),(t()(),o["\u0275eld"](12,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Version"])),(t()(),o["\u0275eld"](14,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275ted"](15,null,[" "," "," "])),(t()(),o["\u0275eld"](16,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275ted"](17,null,[" "," "])),(t()(),o["\u0275eld"](18,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,30,"ul",[["class","list-unstyled"]],null,null,null,null,null)),(t()(),o["\u0275eld"](20,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](21,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Ceph Manager"])),(t()(),o["\u0275eld"](23,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](24,null,["",""])),(t()(),o["\u0275eld"](25,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](26,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["User"])),(t()(),o["\u0275eld"](28,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](29,null,["",""])),(t()(),o["\u0275eld"](30,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](31,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["User Role"])),(t()(),o["\u0275eld"](33,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](34,null,["",""])),(t()(),o["\u0275eld"](35,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](36,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Browser"])),(t()(),o["\u0275eld"](38,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](39,null,["",""])),(t()(),o["\u0275eld"](40,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](41,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Browser Version"])),(t()(),o["\u0275eld"](43,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](44,null,["",""])),(t()(),o["\u0275eld"](45,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](46,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Browser OS"])),(t()(),o["\u0275eld"](48,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),o["\u0275ted"](49,null,["",""])),(t()(),o["\u0275eld"](50,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](51,0,null,null,1,"div",[["class","text-left"]],null,null,null,null,null)),(t()(),o["\u0275ted"](52,null,[" "," "," "]))],null,function(t,e){var n=e.component;t(e,6,0,o["\u0275inlineInterpolate"](1,"",n.projectConstants.organization,"")),t(e,7,0,n.projectConstants.organization),t(e,10,0,n.projectConstants.projectName),t(e,15,0,n.versionNumber,n.versionHash),t(e,17,0,n.versionName),t(e,24,0,n.hostAddr),t(e,29,0,n.modalVariables.user),t(e,34,0,n.modalVariables.role),t(e,39,0,n.modalVariables.browserName),t(e,44,0,n.modalVariables.browserVersion),t(e,49,0,n.modalVariables.browserOS),t(e,52,0,n.copyright,n.projectConstants.license)})}function Id(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-about",[],null,null,null,Od,Sd)),o["\u0275did"](1,245760,null,0,wd,[fa.a,qe.a,Td.a,d.a],null,null)],function(t,e){t(e,1,0)},null)}var Cd=o["\u0275ccf"]("cd-about",wd,Id,{},{},[]),kd=n("atuK"),Nd=o["\u0275crt"]({encapsulation:0,styles:[".dropdown[_nghost-%COMP%] {\n z-index: 1000;\n }"],data:{animation:[{type:7,name:"typeaheadAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function Rd(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](0,null,null,0))],null,null)}function Ad(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,0,0,e.component.highlight(e.context.match,e.context.query))})}function Ed(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,[[2,0],["liElements",1]],null,1,"li",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit)})}function Dd(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](0,null,null,0))],null,null)}function Ld(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,[[2,0],["liElements",1]],null,4,"li",[],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"@typeaheadAnimation.done"],[null,"mouseenter"]],function(t,e,n){var a=!0,r=t.component;return"@typeaheadAnimation.done"===e&&(a=!1!==r.positionServiceEnable()&&a),"mouseenter"===e&&(a=!1!==r.selectActive(t.parent.context.$implicit)&&a),a},null,null)),(t()(),o["\u0275eld"](1,0,null,null,3,"a",[["href","#"],["tabindex","-1"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectMatch(t.parent.context.$implicit,n)&&a),a},null,null)),(t()(),o["\u0275and"](16777216,null,null,2,null,Dd)),o["\u0275did"](3,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),o["\u0275pod"](4,{item:0,index:1,match:2,query:3})],function(t,e){var n=e.component,a=t(e,4,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,3,0,a,n.itemTemplate||o["\u0275nov"](e.parent.parent.parent,5))},function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))})}function Pd(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Ed)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ld)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)},null)}function Md(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,[[1,0],["ulElement",1]],null,2,"ul",[["class","dropdown-menu"]],[[4,"overflow-y",null],[4,"height",null]],null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Pd)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.matches)},function(t,e){var n=e.component;t(e,0,0,n.needScrollbar?"scroll":"auto",n.needScrollbar?n.guiHeight:"auto")})}function qd(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"h6",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit)})}function jd(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](0,null,null,0))],null,null)}function Fd(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,[[2,0],["liElements",1]],null,3,"button",[["class","dropdown-item"]],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"@typeaheadAnimation.done"],[null,"click"],[null,"mouseenter"]],function(t,e,n){var a=!0,r=t.component;return"@typeaheadAnimation.done"===e&&(a=!1!==r.positionServiceEnable()&&a),"click"===e&&(a=!1!==r.selectMatch(t.parent.context.$implicit,n)&&a),"mouseenter"===e&&(a=!1!==r.selectActive(t.parent.context.$implicit)&&a),a},null,null)),(t()(),o["\u0275and"](16777216,null,null,2,null,jd)),o["\u0275did"](2,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),o["\u0275pod"](3,{item:0,index:1,match:2,query:3})],function(t,e){var n=e.component,a=t(e,3,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,2,0,a,n.itemTemplate||o["\u0275nov"](e.parent.parent.parent,5))},function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))})}function zd(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,qd)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Fd)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)},null)}function Gd(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,zd)),o["\u0275did"](1,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.component.matches)},null)}function Yd(t){return o["\u0275vid"](0,[o["\u0275qud"](671088640,1,{ulElement:0}),o["\u0275qud"](671088640,2,{liElements:1}),(t()(),o["\u0275and"](16777216,null,null,2,null,Rd)),o["\u0275did"](3,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),o["\u0275pod"](4,{matches:0,itemTemplate:1,query:2}),(t()(),o["\u0275and"](0,[["bsItemTemplate",2]],null,0,null,Ad)),(t()(),o["\u0275and"](0,[["bs3Template",2]],null,0,null,Md)),(t()(),o["\u0275and"](0,[["bs4Template",2]],null,0,null,Gd))],function(t,e){var n=e.component,a=t(e,4,0,n.matches,n.itemTemplate,n.query);t(e,3,0,a,n.optionsListTemplate||o["\u0275nov"](e,n.isBs4?7:6))},null)}function Vd(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"typeahead-container",[["class","dropdown open bottom"],["style","position: absolute;display: block;"]],[[2,"dropdown-menu",null],[4,"overflow-y",null],[4,"height",null],[4,"visibility",null],[2,"dropup",null]],[[null,"mouseleave"],[null,"blur"]],function(t,e,n){var a=!0;return"mouseleave"===e&&(a=!1!==o["\u0275nov"](t,1).focusLost()&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,1).focusLost()&&a),a},Yd,Nd)),o["\u0275did"](1,49152,null,0,Zu,[tt.a,o.Renderer2,o.ElementRef],null,null)],null,function(t,e){t(e,0,0,o["\u0275nov"](e,1).isBs4,o["\u0275nov"](e,1).isBs4&&o["\u0275nov"](e,1).needScrollbar?"scroll":"visible",o["\u0275nov"](e,1).isBs4&&o["\u0275nov"](e,1).needScrollbar?o["\u0275nov"](e,1).guiHeight:"auto",o["\u0275nov"](e,1).visibility,o["\u0275nov"](e,1).dropup)})}var Hd=o["\u0275ccf"]("typeahead-container",Zu,Vd,{},{},[]),Bd=n("ajRT"),Ud=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Wd(t){return o["\u0275vid"](0,[(t()(),o["\u0275ted"](-1,null,["Deep "]))],null,null)}function Kd(t){return o["\u0275vid"](0,[(t()(),o["\u0275ted"](-1,null,["deep "]))],null,null)}function $d(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,10,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,9,"p",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["You are about to apply a "])),(t()(),o["\u0275eld"](3,0,null,null,3,null,null,null,null,null,null,null)),o["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Kd)),o["\u0275did"](6,278528,null,0,i.NgSwitchCase,[o.ViewContainerRef,o.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),o["\u0275ted"](-1,null,["scrub to the OSD "])),(t()(),o["\u0275eld"](8,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](9,null,["",""])),(t()(),o["\u0275ted"](-1,null,["."]))],function(t,e){t(e,4,0,e.component.deep),t(e,6,0,"1")},function(t,e){t(e,9,0,e.component.selected[0].id)})}function Zd(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,23,"cd-modal",[],null,null,null,yd.c,yd.b)),o["\u0275did"](1,49152,null,0,Bd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),o["\u0275eld"](2,0,null,0,6,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["OSDs "])),(t()(),o["\u0275eld"](4,0,null,null,3,null,null,null,null,null,null,null)),o["\u0275did"](5,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Wd)),o["\u0275did"](7,278528,null,0,i.NgSwitchCase,[o.ViewContainerRef,o.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),o["\u0275ted"](-1,null,["Scrub"])),(t()(),o["\u0275eld"](9,0,null,1,14,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,13,"form",[["class","form-horizontal"],["name","scrubForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,12).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,12).onReset()&&a),a},null,null)),o["\u0275did"](11,16384,null,0,we.D,[],null,null),o["\u0275did"](12,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](14,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](15,0,null,null,2,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,$d)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](18,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.scrub()&&a),a},Ka.b,Ka.a)),o["\u0275did"](20,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),o["\u0275ted"](-1,0,["Submit"])),(t()(),o["\u0275eld"](22,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Za.b,Za.a)),o["\u0275did"](23,49152,null,0,Xa.a,[i.Location,$n.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,5,0,n.deep),t(e,7,0,"1"),t(e,12,0,n.scrubForm),t(e,17,0,1===n.selected.length),t(e,20,0,n.scrubForm),t(e,23,0,"Cancel",n.bsModalRef.hide)},function(t,e){t(e,10,0,o["\u0275nov"](e,14).ngClassUntouched,o["\u0275nov"](e,14).ngClassTouched,o["\u0275nov"](e,14).ngClassPristine,o["\u0275nov"](e,14).ngClassDirty,o["\u0275nov"](e,14).ngClassValid,o["\u0275nov"](e,14).ngClassInvalid,o["\u0275nov"](e,14).ngClassPending)})}function Xd(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-osd-scrub-modal",[],null,null,null,Zd,Ud)),o["\u0275did"](1,114688,null,0,la,[fa.a,Dn,Xn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var Jd=o["\u0275ccf"]("cd-osd-scrub-modal",la,Xd,{},{},[]),Qd=o["\u0275crt"]({encapsulation:0,styles:[[".osd-modal[_ngcontent-%COMP%] .oa-hr-small[_ngcontent-%COMP%]{margin:5px}"]],data:{}});function tf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"hr",[["class","oa-hr-small"]],null,null,null,null,null))],null,null)}function ef(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0],[8,"name",0],[8,"id",0],[8,"disabled",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=0!=(t.context.$implicit.value=!t.context.$implicit.value)&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,5,"label",[["ng-class","['tc_' + key]"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](4,null,["",""])),(t()(),o["\u0275eld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,["",""])),(t()(),o["\u0275and"](16777216,null,null,1,null,tf)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,9,0,!e.context.last)},function(t,e){t(e,1,0,e.context.$implicit.value,e.context.$implicit.code,e.context.$implicit.code,e.context.$implicit.disabled),t(e,2,0,e.context.$implicit.code),t(e,4,0,e.context.$implicit.name),t(e,7,0,e.context.$implicit.description)})}function nf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Ka.b,Ka.a)),o["\u0275did"](1,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),o["\u0275ted"](-1,0,["Submit"]))],function(t,e){t(e,1,0,e.component.osdFlagsForm)},null)}function af(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,18,"cd-modal",[],null,null,null,yd.c,yd.b)),o["\u0275did"](1,49152,null,0,Bd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),o["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Cluster-wide OSD Flags"])),(t()(),o["\u0275eld"](4,0,null,1,14,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,13,"form",[["name","osdFlagsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,7).onReset()&&a),a},null,null)),o["\u0275did"](6,16384,null,0,we.D,[],null,null),o["\u0275did"](7,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](9,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](10,0,null,null,2,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,ef)),o["\u0275did"](12,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275eld"](13,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](14,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,nf)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](17,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Za.b,Za.a)),o["\u0275did"](18,49152,null,0,Xa.a,[i.Location,$n.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.osdFlagsForm),t(e,12,0,n.flags),t(e,16,0,n.permissions.osd.update),t(e,18,0,"Cancel",n.bsModalRef.hide)},function(t,e){t(e,5,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending)})}function rf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-osd-flags-modal",[],null,null,null,af,Qd)),o["\u0275did"](1,114688,null,0,Jn,[fa.a,d.a,Dn,Xn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var of=o["\u0275ccf"]("cd-osd-flags-modal",Jn,rf,{},{},[]),sf=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function uf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)},function(t,e){t(e,3,0,e.context.$implicit.text)})}function cf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["This field is required."]))],null,null)}function lf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-helper",[],null,null,null,Co.b,Co.a)),o["\u0275did"](1,49152,null,0,ko.a,[],null,null),(t()(),o["\u0275ted"](2,0,["",""]))],null,function(t,e){t(e,2,0,e.parent.context.$implicit.value.desc)})}function df(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function ff(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function pf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.value.patternHelpText)})}function hf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.value.maxValue)})}function gf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.value.minValue)})}function mf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,5,"label",[["class","control-label col-sm-6"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),o["\u0275ted"](4,null,[""," "])),(t()(),o["\u0275and"](16777216,null,null,1,null,lf)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,df)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](9,0,null,null,15,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,6,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,11)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,11).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,11)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,11)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==o["\u0275nov"](t,12).onChange(n.target.value)&&a),"input"===e&&(a=!1!==o["\u0275nov"](t,12).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,12).onTouched()&&a),a},null,null)),o["\u0275did"](11,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275did"](12,16384,null,0,we.C,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),o["\u0275did"](14,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](16,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,ff)),o["\u0275did"](18,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,pf)),o["\u0275did"](20,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,hf)),o["\u0275did"](22,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,gf)),o["\u0275did"](24,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,o["\u0275nov"](e.parent,7)));t(e,1,0,"form-group",a),t(e,6,0,e.context.$implicit.value.desc),t(e,8,0,n.osdRecvSpeedForm.getValue("customizePriority")),t(e,14,0,e.context.$implicit.key),t(e,18,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,o["\u0275nov"](e.parent,7),"required")),t(e,20,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,o["\u0275nov"](e.parent,7),"pattern")),t(e,22,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,o["\u0275nov"](e.parent,7),"max")),t(e,24,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,o["\u0275nov"](e.parent,7),"min"))},function(t,e){var n=e.component;t(e,3,0,e.context.$implicit.key),t(e,4,0,e.context.$implicit.value.text),t(e,10,0,e.context.$implicit.key,!n.osdRecvSpeedForm.getValue("customizePriority"),o["\u0275nov"](e,16).ngClassUntouched,o["\u0275nov"](e,16).ngClassTouched,o["\u0275nov"](e,16).ngClassPristine,o["\u0275nov"](e,16).ngClassDirty,o["\u0275nov"](e,16).ngClassValid,o["\u0275nov"](e,16).ngClassInvalid,o["\u0275nov"](e,16).ngClassPending)})}function bf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Ka.b,Ka.a)),o["\u0275did"](1,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),o["\u0275ted"](-1,0,["Submit"]))],function(t,e){t(e,1,0,e.component.osdRecvSpeedForm)},null)}function yf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,48,"cd-modal",[],null,null,null,yd.c,yd.b)),o["\u0275did"](1,49152,null,0,Bd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),o["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["OSD Recovery Priority"])),(t()(),o["\u0275eld"](4,0,null,1,44,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,43,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,7).onReset()&&a),a},null,null)),o["\u0275did"](6,16384,null,0,we.D,[],null,null),o["\u0275did"](7,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](9,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](10,0,null,null,32,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),o["\u0275eld"](11,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](12,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](13,{"has-error":0}),(t()(),o["\u0275eld"](14,0,null,null,3,"label",[["class","control-label col-sm-6"],["for","priority"]],null,null,null,null,null)),(t()(),o["\u0275eld"](15,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Priority"])),(t()(),o["\u0275eld"](17,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](18,0,null,null,10,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,7,"select",[["class","form-control"],["formControlName","priority"],["id","priority"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,20).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,20).onTouched()&&a),"change"===e&&(a=!1!==r.onPriorityChange(n.target.value)&&a),a},null,null)),o["\u0275did"](20,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](22,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](24,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,uf)),o["\u0275did"](26,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,cf)),o["\u0275did"](28,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](29,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](30,0,null,null,9,"div",[["class","col-sm-offset-6 col-sm-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](31,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](32,0,null,null,5,"input",[["formControlName","customizePriority"],["id","customizePriority"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==o["\u0275nov"](t,33).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,33).onTouched()&&a),"change"===e&&(a=!1!==r.onCustomizePriorityChange()&&a),a},null,null)),o["\u0275did"](33,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](35,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](37,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](38,0,null,null,1,"label",[["for","customizePriority"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Customize priority values"])),(t()(),o["\u0275and"](16777216,null,null,2,null,mf)),o["\u0275did"](41,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),o["\u0275pid"](0,i.KeyValuePipe,[o.KeyValueDiffers]),(t()(),o["\u0275eld"](43,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](44,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,bf)),o["\u0275did"](46,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](47,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Za.b,Za.a)),o["\u0275did"](48,49152,null,0,Xa.a,[i.Location,$n.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.osdRecvSpeedForm);var a=t(e,13,0,n.osdRecvSpeedForm.showError("priority",o["\u0275nov"](e,7)));t(e,12,0,"form-group",a),t(e,22,0,"priority"),t(e,26,0,n.priorities),t(e,28,0,n.osdRecvSpeedForm.showError("priority",o["\u0275nov"](e,7),"required")),t(e,35,0,"customizePriority"),t(e,41,0,o["\u0275unv"](e,41,0,o["\u0275nov"](e,42).transform(n.priorityAttrs))),t(e,46,0,n.permissions.configOpt.update),t(e,48,0,"Cancel",n.bsModalRef.hide)},function(t,e){t(e,5,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending),t(e,19,0,o["\u0275nov"](e,24).ngClassUntouched,o["\u0275nov"](e,24).ngClassTouched,o["\u0275nov"](e,24).ngClassPristine,o["\u0275nov"](e,24).ngClassDirty,o["\u0275nov"](e,24).ngClassValid,o["\u0275nov"](e,24).ngClassInvalid,o["\u0275nov"](e,24).ngClassPending),t(e,32,0,o["\u0275nov"](e,37).ngClassUntouched,o["\u0275nov"](e,37).ngClassTouched,o["\u0275nov"](e,37).ngClassPristine,o["\u0275nov"](e,37).ngClassDirty,o["\u0275nov"](e,37).ngClassValid,o["\u0275nov"](e,37).ngClassInvalid,o["\u0275nov"](e,37).ngClassPending)})}function vf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-osd-recv-speed-modal",[],null,null,null,yf,sf)),o["\u0275did"](1,114688,null,0,sa,[fa.a,d.a,ta.a,Xn.a,Tt.a,Dn],null,null)],function(t,e){t(e,1,0)},null)}var xf=o["\u0275ccf"]("cd-osd-recv-speed-modal",sa,vf,{},{},[]),_f=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Tf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["This field is required."]))],null,null)}function wf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["The value needs to be between 0 and 1."]))],null,null)}function Sf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Tf)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,wf)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,null==n.weight.errors?null:n.weight.errors.required),t(e,4,0,(null==n.weight.errors?null:n.weight.errors.max)||(null==n.weight.errors?null:n.weight.errors.min))},null)}function Of(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,31,"cd-modal",[],null,null,null,yd.c,yd.b)),o["\u0275did"](1,49152,null,0,Bd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),o["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Reweight OSD"])),(t()(),o["\u0275eld"](4,0,null,1,27,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,26,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,7).onReset()&&a),a},null,null)),o["\u0275did"](6,16384,null,0,we.D,[],null,null),o["\u0275did"](7,540672,null,0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](9,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](10,0,null,null,15,"div",[["class","modal-body"]],null,null,null,null,null)),o["\u0275did"](11,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](12,{"has-error":0}),(t()(),o["\u0275eld"](13,0,null,null,12,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](14,0,null,null,1,"label",[["class","col-sm-2 control-label"],["for","weight"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Weight"])),(t()(),o["\u0275eld"](16,0,null,null,9,"div",[["class","col-sm-10"]],null,null,null,null,null)),(t()(),o["\u0275eld"](17,0,null,null,6,"input",[["class","form-control"],["formControlName","weight"],["id","weight"],["max","1"],["min","0"],["step","0.1"],["type","number"]],[[8,"value",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,18)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,18).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,18)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,18)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==o["\u0275nov"](t,19).onChange(n.target.value)&&a),"input"===e&&(a=!1!==o["\u0275nov"](t,19).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,19).onTouched()&&a),a},null,null)),o["\u0275did"](18,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275did"](19,16384,null,0,we.C,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),o["\u0275did"](21,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](23,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Sf)),o["\u0275did"](25,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](26,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](27,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.reweight()&&a),a},Ka.b,Ka.a)),o["\u0275did"](28,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),o["\u0275ted"](-1,0,["Reweight"])),(t()(),o["\u0275eld"](30,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Za.b,Za.a)),o["\u0275did"](31,49152,null,0,Xa.a,[i.Location,$n.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.reweightForm);var a=t(e,12,0,n.weight.errors);t(e,11,0,"modal-body",a),t(e,21,0,"weight"),t(e,25,0,n.weight.errors),t(e,28,0,n.reweightForm,n.reweightForm.invalid),t(e,31,0,"Cancel",n.bsModalRef.hide)},function(t,e){var n=e.component;t(e,5,0,o["\u0275nov"](e,9).ngClassUntouched,o["\u0275nov"](e,9).ngClassTouched,o["\u0275nov"](e,9).ngClassPristine,o["\u0275nov"](e,9).ngClassDirty,o["\u0275nov"](e,9).ngClassValid,o["\u0275nov"](e,9).ngClassInvalid,o["\u0275nov"](e,9).ngClassPending),t(e,17,0,n.currentWeight,o["\u0275nov"](e,23).ngClassUntouched,o["\u0275nov"](e,23).ngClassTouched,o["\u0275nov"](e,23).ngClassPristine,o["\u0275nov"](e,23).ngClassDirty,o["\u0275nov"](e,23).ngClassValid,o["\u0275nov"](e,23).ngClassInvalid,o["\u0275nov"](e,23).ngClassPending)})}function If(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-osd-reweight-modal",[],null,null,null,Of,_f)),o["\u0275did"](1,114688,null,0,ca,[fa.a,Dn,ua.a],null,null)],function(t,e){t(e,1,0)},null)}var Cf=o["\u0275ccf"]("cd-osd-reweight-modal",ca,If,{},{},[]),kf=o["\u0275crt"]({encapsulation:0,styles:[["hr[_ngcontent-%COMP%]{margin-top:5px;margin-bottom:5px}.control-label[_ngcontent-%COMP%]{text-align:left}.checkbox-primary[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:23px;height:15px;margin-left:0;cursor:pointer}.checkbox-primary[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{cursor:auto}.checkbox-primary[_ngcontent-%COMP%] label[_ngcontent-%COMP%]:after, .checkbox-primary[_ngcontent-%COMP%] label[_ngcontent-%COMP%]:before{margin-left:0}.form-group[_ngcontent-%COMP%] .col-sm-6[_ngcontent-%COMP%]{padding-top:7px}"]],data:{}});function Nf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-helper",[],null,null,null,Co.b,Co.a)),o["\u0275did"](1,49152,null,0,ko.a,[],null,null),(t()(),o["\u0275ted"](2,0,[" ",""]))],null,function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)})}function Rf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,6,"label",[["class","col-sm-6 control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),o["\u0275ted"](4,null,[" "," "])),(t()(),o["\u0275eld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,[" "," "])),(t()(),o["\u0275and"](16777216,null,null,1,null,Nf)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](10,0,null,null,7,"div",[["class","col-sm-6 checkbox-primary checkbox"]],null,null,null,null,null)),(t()(),o["\u0275eld"](11,0,null,null,5,"input",[["type","checkbox"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,12).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,12).onTouched()&&a),a},null,null)),o["\u0275did"](12,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](14,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](16,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](17,0,null,null,0,"label",[],null,null,null,null,null))],function(t,e){var n=e.component,a=t(e,2,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir));t(e,1,0,"form-group",a),t(e,9,0,e.parent.context.$implicit.long_desc),t(e,14,0,e.parent.context.$implicit.name)},function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,4,0,e.parent.context.$implicit.text),t(e,7,0,e.parent.context.$implicit.desc),t(e,11,0,e.parent.context.$implicit.name,o["\u0275nov"](e,16).ngClassUntouched,o["\u0275nov"](e,16).ngClassTouched,o["\u0275nov"](e,16).ngClassPristine,o["\u0275nov"](e,16).ngClassDirty,o["\u0275nov"](e,16).ngClassValid,o["\u0275nov"](e,16).ngClassInvalid,o["\u0275nov"](e,16).ngClassPending)})}function Af(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-helper",[],null,null,null,Co.b,Co.a)),o["\u0275did"](1,49152,null,0,ko.a,[],null,null),(t()(),o["\u0275ted"](2,0,[" ",""]))],null,function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)})}function Ef(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-default"],["data-toggle","button"],["title","Remove the custom configuration value. The default configuration will be inherited and used instead."],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.resetValue(t.parent.parent.context.$implicit.name)&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-eraser"]],null,null,null,null,null))],null,null)}function Df(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" ",""]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)})}function Lf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" ",""]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)})}function Pf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.maxValue)})}function Mf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.minValue)})}function qf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,27,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{"has-error":0}),(t()(),o["\u0275eld"](3,0,null,null,6,"label",[["class","col-sm-6 control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),o["\u0275ted"](4,null,[""," "])),(t()(),o["\u0275eld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,[" "," "])),(t()(),o["\u0275and"](16777216,null,null,1,null,Af)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](10,0,null,null,17,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),o["\u0275eld"](11,0,null,null,8,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](12,0,null,null,5,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,13)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,13).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,13)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,13)._compositionEnd(n.target.value)&&a),a},null,null)),o["\u0275did"](13,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](15,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](17,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ef)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Df)),o["\u0275did"](21,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Lf)),o["\u0275did"](23,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Pf)),o["\u0275did"](25,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Mf)),o["\u0275did"](27,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir));t(e,1,0,"form-group",a),t(e,9,0,e.parent.context.$implicit.long_desc),t(e,15,0,e.parent.context.$implicit.name),t(e,19,0,n.optionsFormShowReset),t(e,21,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"pattern")),t(e,23,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"invalidUuid")),t(e,25,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"max")),t(e,27,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"min"))},function(t,e){var n=e.component;t(e,3,0,e.parent.context.$implicit.name),t(e,4,0,e.parent.context.$implicit.text),t(e,7,0,e.parent.context.$implicit.desc),t(e,12,1,[e.parent.context.$implicit.additionalTypeInfo.inputType,e.parent.context.$implicit.name,e.parent.context.$implicit.additionalTypeInfo.humanReadable,n.getStep(e.parent.context.$implicit.type,n.optionsForm.getValue(e.parent.context.$implicit.name)),o["\u0275nov"](e,17).ngClassUntouched,o["\u0275nov"](e,17).ngClassTouched,o["\u0275nov"](e,17).ngClassPristine,o["\u0275nov"](e,17).ngClassDirty,o["\u0275nov"](e,17).ngClassValid,o["\u0275nov"](e,17).ngClassInvalid,o["\u0275nov"](e,17).ngClassPending])})}function jf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,"hr",[],null,null,null,null,null))],null,null)}function Ff(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Rf)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,qf)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,jf)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,2,0,"bool"===e.context.$implicit.type),t(e,4,0,"bool"!==e.context.$implicit.type),t(e,6,0,!e.context.last)},null)}function zf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"div",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,1).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,1).onReset()&&a),a},null,null)),o["\u0275did"](1,540672,null,0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](3,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ff)),o["\u0275did"](5,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.optionsFormGroup),t(e,5,0,n.options)},function(t,e){t(e,0,0,o["\u0275nov"](e,3).ngClassUntouched,o["\u0275nov"](e,3).ngClassTouched,o["\u0275nov"](e,3).ngClassPristine,o["\u0275nov"](e,3).ngClassDirty,o["\u0275nov"](e,3).ngClassValid,o["\u0275nov"](e,3).ngClassInvalid,o["\u0275nov"](e,3).ngClassPending)})}var Gf=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Yf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"a",[["class","pull-right margin-right-md"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.component.advancedEnabled=!0)&&a),a},null,null)),(t()(),o["\u0275ted"](-1,null,["Advanced..."]))],null,null)}function Vf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Advanced configuration options"])),(t()(),o["\u0275eld"](3,0,null,null,1,"cd-config-option",[],null,null,null,zf,kf)),o["\u0275did"](4,114688,[[2,4],["advancedOptionsValues",4]],0,ra,[ta.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null)],function(t,e){var n=e.component;t(e,4,0,n.advancedOptions,n.osdPgScrubForm,o["\u0275nov"](e.parent,13),"advancedFormGroup")},null)}function Hf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Ka.b,Ka.a)),o["\u0275did"](1,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),o["\u0275ted"](2,0,["","",""])),o["\u0275ppd"](3,1),o["\u0275ppd"](4,1)],function(t,e){t(e,1,0,e.component.osdPgScrubForm,"button")},function(t,e){var n=e.component,a=o["\u0275unv"](e,2,0,t(e,3,0,o["\u0275nov"](e.parent,0),n.action)),r=o["\u0275unv"](e,2,1,t(e,4,0,o["\u0275nov"](e.parent,1),n.resource));t(e,2,0,a,r)})}function Bf(t){return o["\u0275vid"](0,[o["\u0275pid"](0,i.TitleCasePipe,[]),o["\u0275pid"](0,No.a,[]),o["\u0275qud"](402653184,1,{basicOptionsValues:0}),o["\u0275qud"](671088640,2,{advancedOptionsValues:0}),(t()(),o["\u0275eld"](4,0,null,null,26,"cd-modal",[],null,null,null,yd.c,yd.b)),o["\u0275did"](5,49152,null,0,Bd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),o["\u0275eld"](6,0,null,0,3,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](7,null,["","",""])),o["\u0275ppd"](8,1),o["\u0275ppd"](9,1),(t()(),o["\u0275eld"](10,0,null,1,20,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](11,0,null,null,19,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,13).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,13).onReset()&&a),a},null,null)),o["\u0275did"](12,16384,null,0,we.D,[],null,null),o["\u0275did"](13,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](15,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](16,0,null,null,8,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),o["\u0275eld"](17,0,null,null,1,"cd-config-option",[],null,null,null,zf,kf)),o["\u0275did"](18,114688,[[1,4],["basicOptionsValues",4]],0,ra,[ta.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null),(t()(),o["\u0275eld"](19,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),o["\u0275eld"](20,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Yf)),o["\u0275did"](22,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Vf)),o["\u0275did"](24,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](25,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](26,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Hf)),o["\u0275did"](28,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](29,0,null,null,1,"cd-back-button",[],null,null,null,Za.b,Za.a)),o["\u0275did"](30,49152,null,0,Xa.a,[i.Location,$n.b],{back:[0,"back"]},null)],function(t,e){var n=e.component;t(e,5,0,n.bsModalRef),t(e,13,0,n.osdPgScrubForm),t(e,18,0,n.basicOptions,n.osdPgScrubForm,o["\u0275nov"](e,13),"basicFormGroup"),t(e,22,0,!n.advancedEnabled),t(e,24,0,n.advancedEnabled),t(e,28,0,n.permissions.configOpt.update),t(e,30,0,n.bsModalRef.hide)},function(t,e){var n=e.component,a=o["\u0275unv"](e,7,0,t(e,8,0,o["\u0275nov"](e,0),n.action)),r=o["\u0275unv"](e,7,1,t(e,9,0,o["\u0275nov"](e,1),n.resource));t(e,7,0,a,r),t(e,11,0,o["\u0275nov"](e,15).ngClassUntouched,o["\u0275nov"](e,15).ngClassTouched,o["\u0275nov"](e,15).ngClassPristine,o["\u0275nov"](e,15).ngClassDirty,o["\u0275nov"](e,15).ngClassValid,o["\u0275nov"](e,15).ngClassInvalid,o["\u0275nov"](e,15).ngClassPending)})}function Uf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-osd-pg-scrub-modal",[],null,null,null,Bf,Gf)),o["\u0275did"](1,49152,null,0,oa,[fa.a,d.a,Xn.a,Tt.a,$n.b],null,null)],null,null)}var Wf=o["\u0275ccf"]("cd-osd-pg-scrub-modal",oa,Uf,{},{},[]),Kf=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function $f(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](1,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{value:[0,"value"]},null),o["\u0275did"](2,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),o["\u0275ted"](3,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function Zf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Xf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function Jf(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"div",[["id","match-state"]],[[8,"className",0]],null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),o["\u0275ted"](2,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,0,0,o["\u0275inlineInterpolate"](1,"col-sm-offset-3 col-sm-9 ",n.matcherMatch.cssClass,"")),t(e,1,0,o["\u0275inlineInterpolate"](1,"help-block ",n.matcherMatch.cssClass,"")),t(e,2,0,n.matcherMatch.status)})}function Qf(t){return o["\u0275vid"](0,[(t()(),o["\u0275ted"](-1,null,["Update"]))],null,null)}function tp(t){return o["\u0275vid"](0,[(t()(),o["\u0275ted"](-1,null,["Add"]))],null,null)}function ep(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Matcher"])),(t()(),o["\u0275eld"](3,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.bsModalRef.hide()&&a),a},null,null)),(t()(),o["\u0275eld"](4,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["\xd7"])),(t()(),o["\u0275eld"](6,0,null,null,70,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==o["\u0275nov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==o["\u0275nov"](t,8).onReset()&&a),a},null,null)),o["\u0275did"](7,16384,null,0,we.D,[],null,null),o["\u0275did"](8,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),o["\u0275prd"](2048,null,we.d,null,[we.l]),o["\u0275did"](10,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),o["\u0275eld"](11,0,null,null,53,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),o["\u0275eld"](12,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](13,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](14,{"has-error":0}),(t()(),o["\u0275eld"](15,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(t()(),o["\u0275eld"](16,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Name"])),(t()(),o["\u0275eld"](18,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](20,0,null,null,11,"select",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,21).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,21).onTouched()&&a),a},null,null)),o["\u0275did"](21,16384,null,0,we.z,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),o["\u0275did"](23,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](25,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](26,0,null,null,3,"option",[],null,null,null,null,null)),o["\u0275did"](27,147456,null,0,we.v,[o.ElementRef,o.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),o["\u0275did"](28,147456,null,0,we.G,[o.ElementRef,o.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),o["\u0275ted"](-1,null,["-- Select an attribute to match against --"])),(t()(),o["\u0275and"](16777216,null,null,1,null,$f)),o["\u0275did"](31,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Zf)),o["\u0275did"](33,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](34,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),o["\u0275did"](35,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](36,{"has-error":0}),(t()(),o["\u0275eld"](37,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","value"]],null,null,null,null,null)),(t()(),o["\u0275eld"](38,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Value"])),(t()(),o["\u0275eld"](40,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),o["\u0275eld"](41,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](42,16777216,null,null,6,"input",[["class","form-control"],["formControlName","value"],["id","value"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==o["\u0275nov"](t,43)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,43).onTouched()&&a),"compositionstart"===e&&(a=!1!==o["\u0275nov"](t,43)._compositionStart()&&a),"compositionend"===e&&(a=!1!==o["\u0275nov"](t,43)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==o["\u0275nov"](t,48).onInput(n)&&a),"keyup"===e&&(a=!1!==o["\u0275nov"](t,48).onChange(n)&&a),"click"===e&&(a=!1!==o["\u0275nov"](t,48).onFocus()&&a),"focus"===e&&(a=!1!==o["\u0275nov"](t,48).onFocus()&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,48).onBlur()&&a),"keydown"===e&&(a=!1!==o["\u0275nov"](t,48).onKeydown(n)&&a),a},null,null)),o["\u0275did"](43,16384,null,0,we.e,[o.Renderer2,o.ElementRef,[2,we.b]],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),o["\u0275did"](45,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](47,16384,null,0,we.r,[[4,we.q]],null,null),o["\u0275did"](48,212992,null,0,Ju,[Q.a,Xu,o.ChangeDetectorRef,o.ElementRef,we.q,o.Renderer2,o.ViewContainerRef],{typeahead:[0,"typeahead"],typeaheadMinLength:[1,"typeaheadMinLength"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Xf)),o["\u0275did"](50,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Jf)),o["\u0275did"](52,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](53,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](54,0,null,null,10,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(t()(),o["\u0275eld"](55,0,null,null,9,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),o["\u0275eld"](56,0,null,null,8,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](57,0,null,null,5,"input",[["formControlName","isRegex"],["id","is-regex"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==o["\u0275nov"](t,58).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==o["\u0275nov"](t,58).onTouched()&&a),a},null,null)),o["\u0275did"](58,16384,null,0,we.c,[o.Renderer2,o.ElementRef],null,null),o["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),o["\u0275did"](60,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),o["\u0275prd"](2048,null,we.q,null,[we.j]),o["\u0275did"](62,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),o["\u0275eld"](63,0,null,null,1,"label",[["for","is-regex"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Use regular expression"])),(t()(),o["\u0275eld"](65,0,null,null,11,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),o["\u0275eld"](66,0,null,null,8,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a},Ka.b,Ka.a)),o["\u0275did"](67,114688,null,0,$a.a,[o.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),o["\u0275eld"](68,0,null,0,6,null,null,null,null,null,null,null)),(t()(),o["\u0275eld"](69,0,null,null,5,null,null,null,null,null,null,null)),o["\u0275did"](70,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Qf)),o["\u0275did"](72,278528,null,0,i.NgSwitchCase,[o.ViewContainerRef,o.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,tp)),o["\u0275did"](74,16384,null,0,i.NgSwitchDefault,[o.ViewContainerRef,o.TemplateRef,i.NgSwitch],null,null),(t()(),o["\u0275eld"](75,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,Za.b,Za.a)),o["\u0275did"](76,49152,null,0,Xa.a,[i.Location,$n.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,8,0,n.form);var a=t(e,14,0,n.form.showError("name",o["\u0275nov"](e,8)));t(e,13,0,"form-group",a),t(e,23,0,"name"),t(e,27,0,null),t(e,28,0,null),t(e,31,0,n.nameAttributes),t(e,33,0,n.form.showError("name",o["\u0275nov"](e,8),"required"));var r=t(e,36,0,n.form.showError("value",o["\u0275nov"](e,8)));t(e,35,0,"form-group",r),t(e,45,0,"value"),t(e,48,0,n.possibleValues,0),t(e,50,0,n.form.showError("value",o["\u0275nov"](e,8),"required")),t(e,52,0,n.form.getValue("value")&&!n.form.getValue("isRegex")&&n.matcherMatch),t(e,60,0,"isRegex"),t(e,67,0,n.form),t(e,70,0,n.editMode),t(e,72,0,"1"),t(e,76,0,"Close",n.bsModalRef.hide)},function(t,e){t(e,6,0,o["\u0275nov"](e,10).ngClassUntouched,o["\u0275nov"](e,10).ngClassTouched,o["\u0275nov"](e,10).ngClassPristine,o["\u0275nov"](e,10).ngClassDirty,o["\u0275nov"](e,10).ngClassValid,o["\u0275nov"](e,10).ngClassInvalid,o["\u0275nov"](e,10).ngClassPending),t(e,20,0,o["\u0275nov"](e,25).ngClassUntouched,o["\u0275nov"](e,25).ngClassTouched,o["\u0275nov"](e,25).ngClassPristine,o["\u0275nov"](e,25).ngClassDirty,o["\u0275nov"](e,25).ngClassValid,o["\u0275nov"](e,25).ngClassInvalid,o["\u0275nov"](e,25).ngClassPending),t(e,42,0,o["\u0275nov"](e,47).ngClassUntouched,o["\u0275nov"](e,47).ngClassTouched,o["\u0275nov"](e,47).ngClassPristine,o["\u0275nov"](e,47).ngClassDirty,o["\u0275nov"](e,47).ngClassValid,o["\u0275nov"](e,47).ngClassInvalid,o["\u0275nov"](e,47).ngClassPending),t(e,57,0,o["\u0275nov"](e,62).ngClassUntouched,o["\u0275nov"](e,62).ngClassTouched,o["\u0275nov"](e,62).ngClassPristine,o["\u0275nov"](e,62).ngClassDirty,o["\u0275nov"](e,62).ngClassValid,o["\u0275nov"](e,62).ngClassInvalid,o["\u0275nov"](e,62).ngClassPending)})}function np(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-silence-matcher-modal",[],null,null,null,ep,Kf)),o["\u0275did"](1,49152,null,0,Eo,[ua.a,Ro,fa.a],null,null)],null,null)}var ap=o["\u0275ccf"]("cd-silence-matcher-modal",Eo,np,{},{submitAction:"submitAction"},[]),rp=[Object(Mu.h)({height:0,visibility:"hidden"}),Object(Mu.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(Mu.h)({height:"*",visibility:"visible"}))],ip=[Object(Mu.h)({height:"*",visibility:"visible"}),Object(Mu.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(Mu.h)({height:0,visibility:"hidden"}))],op=function(){function t(t,e,n){this._el=t,this._renderer=e,this.collapsed=new o.EventEmitter,this.collapses=new o.EventEmitter,this.expanded=new o.EventEmitter,this.expands=new o.EventEmitter,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapse=!0,this.isCollapsing=!1,this.isAnimated=!1,this._display="block",this._stylesLoaded=!1,this._COLLAPSE_ACTION_NAME="collapse",this._EXPAND_ACTION_NAME="expand",this._factoryCollapseAnimation=n.build(ip),this._factoryExpandAnimation=n.build(rp)}return Object.defineProperty(t.prototype,"display",{set:function(t){this.isAnimated?(this._display=t,"none"!==t?this.show():this.hide()):this._renderer.setStyle(this._el.nativeElement,"display",t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"collapse",{get:function(){return this.isExpanded},set:function(t){this.isExpanded=t,this.toggle()},enumerable:!0,configurable:!0}),t.prototype.ngAfterViewChecked=function(){this._stylesLoaded=!0},t.prototype.toggle=function(){this.isExpanded?this.hide():this.show()},t.prototype.hide=function(){var t=this;this.isCollapsing=!0,this.isExpanded=!1,this.isCollapsed=!0,this.isCollapsing=!1,this.collapses.emit(this),this.animationRun(this.isAnimated,this._COLLAPSE_ACTION_NAME)(function(){t.collapsed.emit(t),t._renderer.setStyle(t._el.nativeElement,"display","none")})},t.prototype.show=function(){var t=this;this._renderer.setStyle(this._el.nativeElement,"display",this._display),this.isCollapsing=!0,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapsing=!1,this.expands.emit(this),this.animationRun(this.isAnimated,this._EXPAND_ACTION_NAME)(function(){t.expanded.emit(t)})},t.prototype.animationRun=function(t,e){var n=this;if(!t||!this._stylesLoaded)return function(t){return t()};this._renderer.setStyle(this._el.nativeElement,"overflow","hidden"),this._renderer.addClass(this._el.nativeElement,"collapse");var a=e===this._EXPAND_ACTION_NAME?this._factoryExpandAnimation:this._factoryCollapseAnimation;return this._player&&this._player.destroy(),this._player=a.create(this._el.nativeElement),this._player.play(),function(t){return n._player.onDone(t)}},t}(),sp=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[]}},t}(),up=function(){function t(t,e){this.summaryService=t,this.taskMessageService=e,this.executingTasks=[],this.finishedTasks=[],this.icon="fa-hourglass-o"}return t.prototype.ngOnInit=function(){var t=this;this.summaryService.subscribe(function(e){e&&(t._handleTasks(e.executing_tasks,e.finished_tasks),t._setIcon(e.executing_tasks.length))})},t.prototype._handleTasks=function(t,e){for(var n=0,a=t;n0?1:0]},t}(),cp=o["\u0275crt"]({encapsulation:0,styles:[[".popover-content{padding:.5em;height:auto;max-height:70vh;overflow-x:hidden} .popover{min-width:276px!important}.separator[_ngcontent-%COMP%]{padding:5px 12px;color:#90949c;background-color:#eee;font-size:12px}.message[_ngcontent-%COMP%]{padding:10px 16px;color:#474544;font-size:12px}table[_ngcontent-%COMP%]{width:252px;margin:5px 12px 5px 5px;font-size:12px;color:#474544}.icon-col[_ngcontent-%COMP%]{width:50px;font-size:10px}.date[_ngcontent-%COMP%]{color:#555}hr[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0}"]],data:{}});function lp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"td",[["class","text-right italic"],["nowrap",""]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](2,null,[""," %"]))],null,function(t,e){t(e,2,0,e.parent.context.$implicit.progress)})}function dp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,18,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,16,"table",[],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,15,"tbody",[],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,7,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,3,"td",[["class","icon-col text-center"],["rowspan","3"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,2,"span",[["class","fa-stack fa-2x text-info"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,0,"i",[["class","fa fa-stack-1x fa-inverse fa-spinner fa-spin"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,2,"td",[["colspan","3"]],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](10,null,["",""])),(t()(),o["\u0275eld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](12,0,null,null,3,"td",[["colspan","2"]],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,2,"small",[["class","date"]],null,null,null,null,null)),(t()(),o["\u0275ted"](14,null,["",""])),o["\u0275ppd"](15,1),(t()(),o["\u0275and"](16777216,null,null,1,null,lp)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](18,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){t(e,17,0,e.context.$implicit.progress)},function(t,e){t(e,10,0,e.context.$implicit.description);var n=o["\u0275unv"](e,14,0,t(e,15,0,o["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.begin_time));t(e,14,0,n)})}function fp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"div",[["class","separator"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["EXECUTING"])),(t()(),o["\u0275eld"](3,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,dp)),o["\u0275did"](5,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.executingTasks)},null)}function pp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,2,"span",[["class","fa-stack fa-2x text-success"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,0,"i",[["class","fa fa-stack-1x fa-inverse fa-check"]],null,null,null,null,null))],null,null)}function hp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,2,"span",[["class","fa-stack fa-2x text-danger"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,0,"i",[["class","fa fa-stack-1x fa-inverse fa-exclamation-triangle"]],null,null,null,null,null))],null,null)}function gp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[["class","text-danger"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.errorMessage)})}function mp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,22,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,20,"table",[],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,19,"tbody",[],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,8,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,4,"td",[["class","icon-col text-center"],["rowspan","3"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,pp)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,hp)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](9,0,null,null,2,"td",[["colspan","2"]],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](11,null,["",""])),(t()(),o["\u0275eld"](12,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,0,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](14,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,gp)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](17,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](18,0,null,null,3,"td",[["colspan","2"]],null,null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,2,"small",[["class","date"]],null,null,null,null,null)),(t()(),o["\u0275ted"](20,null,["",""])),o["\u0275ppd"](21,1),(t()(),o["\u0275eld"](22,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){t(e,6,0,!e.context.$implicit.errorMessage),t(e,8,0,e.context.$implicit.errorMessage),t(e,16,0,e.context.$implicit.errorMessage)},function(t,e){t(e,11,0,e.context.$implicit.description);var n=o["\u0275unv"](e,20,0,t(e,21,0,o["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.end_time));t(e,20,0,n)})}function bp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,5,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"div",[["class","separator"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["FINISHED"])),(t()(),o["\u0275eld"](3,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,mp)),o["\u0275did"](5,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.finishedTasks)},null)}function yp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["There are no background tasks."]))],null,null)}function vp(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,fp)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,bp)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,yp)),o["\u0275did"](5,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.executingTasks.length>0),t(e,3,0,n.finishedTasks.length>0),t(e,5,0,0===n.executingTasks.length&&0===n.finishedTasks.length)},null)}function xp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,[" (",")"]))],null,function(t,e){t(e,1,0,e.component.executingTasks.length)})}function _p(t){return o["\u0275vid"](0,[o["\u0275pid"](0,Sn.a,[i.DatePipe]),(t()(),o["\u0275and"](0,[["popTemplate",2]],null,0,null,vp)),(t()(),o["\u0275eld"](2,16777216,null,null,7,"a",[["container","body"],["outsideClick","true"],["placement","bottom"],["title","Background Tasks"]],null,null,null,null,null)),o["\u0275did"](3,212992,null,0,J.c,[J.a,o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null),(t()(),o["\u0275eld"](4,0,null,null,1,"i",[["class","fa fa-fw"]],null,null,null,null,null)),o["\u0275did"](5,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Background Tasks"])),(t()(),o["\u0275and"](16777216,null,null,1,null,xp)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,o["\u0275nov"](e,1),"bottom","true","body"),t(e,5,0,"fa fa-fw",n.icon),t(e,9,0,n.executingTasks.length>0)},null)}var Tp=function(){function t(t,e){this.alertFormatter=t,this.prometheusService=e,this.backendFailure=!1,this.notifications=[]}return t.prototype.refresh=function(){var t=this;this.backendFailure||this.prometheusService.getNotifications(pt.last(this.notifications)).subscribe(function(e){return t.handleNotifications(e)},function(){return t.backendFailure=!0})},t.prototype.handleNotifications=function(t){var e=this;0!==t.length&&(this.notifications.length>0&&this.alertFormatter.sendNotifications(pt.flatten(t.map(function(t){return e.formatNotification(t)}))),this.notifications=this.notifications.concat(t))},t.prototype.formatNotification=function(t){var e=this;return this.alertFormatter.convertToCustomAlerts(t.alerts).map(function(t){return e.alertFormatter.convertAlertToNotification(t)})},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Wi),o.inject(Bi))},token:t,providedIn:"root"}),t}(),wp=function(){function t(t,e,n,a,r){this.notificationService=t,this.prometheusNotificationService=e,this.authStorageService=n,this.prometheusAlertService=a,this.ngZone=r,this.notifications=[]}return t.prototype.ngOnDestroy=function(){window.clearInterval(this.interval)},t.prototype.ngOnInit=function(){var t=this;this.authStorageService.getPermissions().prometheus.read&&(this.triggerPrometheusAlerts(),this.ngZone.runOutsideAngular(function(){t.interval=window.setInterval(function(){t.ngZone.run(function(){t.triggerPrometheusAlerts()})},5e3)})),this.notificationService.data$.subscribe(function(e){t.notifications=pt.orderBy(e,["timestamp"],["desc"])})},t.prototype.triggerPrometheusAlerts=function(){this.prometheusAlertService.refresh(),this.prometheusNotificationService.refresh()},t.prototype.removeAll=function(){this.notificationService.removeAll()},t}(),Sp=o["\u0275crt"]({encapsulation:0,styles:[[".popover-content{padding:.5em;height:auto;max-height:70vh;overflow-x:hidden} .popover{min-width:276px!important}.separator[_ngcontent-%COMP%]{padding:5px 12px;color:#90949c;background-color:#eee;font-size:12px}.message[_ngcontent-%COMP%]{padding:10px 16px;color:#474544;font-size:12px}table[_ngcontent-%COMP%]{width:252px;margin:5px 12px 5px 5px;font-size:12px;color:#474544}.icon-col[_ngcontent-%COMP%]{width:50px;font-size:10px}.date[_ngcontent-%COMP%]{color:#555}hr[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0}"]],data:{}});function Op(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,19,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,17,"table",[],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,16,"tbody",[],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,11,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,7,"td",[["class","icon-col text-center"],["rowspan","3"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,6,"span",[],null,null,null,null,null)),o["\u0275did"](6,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngClass:[0,"ngClass"]},null),o["\u0275pad"](7,2),(t()(),o["\u0275eld"](8,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,2,"i",[],null,null,null,null,null)),o["\u0275did"](10,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngClass:[0,"ngClass"]},null),o["\u0275pad"](11,2),(t()(),o["\u0275eld"](12,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),o["\u0275eld"](13,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](14,null,["",""])),(t()(),o["\u0275eld"](15,0,null,null,1,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](16,0,null,null,0,"td",[],[[8,"innerHTML",1]],null,null,null,null)),(t()(),o["\u0275eld"](17,0,null,null,1,"tr",[],null,null,null,null,null)),(t()(),o["\u0275eld"](18,0,null,null,0,"td",[],[[8,"innerHTML",1]],null,null,null,null)),(t()(),o["\u0275eld"](19,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){var n=t(e,7,0,"fa-stack fa-2x",e.context.$implicit.textClass);t(e,6,0,n);var a=t(e,11,0,"fa fa-stack-1x fa-inverse",e.context.$implicit.iconClass);t(e,10,0,a)},function(t,e){var n=e.component;t(e,14,0,e.context.$implicit.title),t(e,16,0,e.context.$implicit.message),t(e,18,0,n.notificationService.renderTimeAndApplicationHtml(e.context.$implicit))})}function Ip(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,4,"button",[["class","btn btn-default btn-sm btn-block"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeAll()&&a),a},null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-trash-o"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[" \xa0 "])),(t()(),o["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Remove all"])),(t()(),o["\u0275eld"](6,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Op)),o["\u0275did"](8,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,8,0,e.component.notifications)},null)}function Cp(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Ip)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.component.notifications.length>0)},null)}function kp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,[" There are no notifications. "]))],null,null)}function Np(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,kp)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,0===e.component.notifications.length)},null)}function Rp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ap(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ep(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Rp)),o["\u0275did"](1,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ap)),o["\u0275did"](3,540672,null,0,i.NgTemplateOutlet,[o.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,o["\u0275nov"](e.parent,0)),t(e,3,0,o["\u0275nov"](e.parent,1))},null)}function Dp(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](0,[["notificationsTpl",2]],null,0,null,Cp)),(t()(),o["\u0275and"](0,[["emptyTpl",2]],null,0,null,Np)),(t()(),o["\u0275and"](0,[["popTpl",2]],null,0,null,Ep)),(t()(),o["\u0275eld"](3,16777216,null,null,4,"a",[["container","body"],["outsideClick","true"],["placement","bottom"],["title","Recent Notifications"]],null,null,null,null,null)),o["\u0275did"](4,212992,null,0,J.c,[J.a,o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null),(t()(),o["\u0275eld"](5,0,null,null,0,"i",[["class","fa fa-fw fa-bell"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Recent Notifications"]))],function(t,e){t(e,4,0,o["\u0275nov"](e,2),"bottom","true","body")},null)}var Lp=function(){function t(t,e,n,a){this.summaryService=t,this.cephReleaseNamePipe=e,this.modalService=n,this.authStorageService=a}return t.prototype.ngOnInit=function(){var t=this,e=this.summaryService.subscribe(function(n){if(n){var a=t.cephReleaseNamePipe.transform(n.version);t.docsUrl="http://docs.ceph.com/docs/"+a+"/mgr/dashboard/",setTimeout(function(){e.unsubscribe()},0)}})},t.prototype.openAboutModal=function(){this.modalRef=this.modalService.show(wd)},t.prototype.goToApiDocs=function(){this.docsFormElement.nativeElement.children[0].value=this.authStorageService.getToken(),this.docsFormElement.nativeElement.submit()},t}(),Pp=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Mp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,11,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,4,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,3,"a",[["class","dropdown-item"],["target","_blank"]],[[8,"href",4]],null,null,null,null)),o["\u0275did"](3,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](4,{disabled:0}),(t()(),o["\u0275ted"](-1,null,["Documentation"])),(t()(),o["\u0275eld"](6,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.goToApiDocs()&&a),a},null,null)),(t()(),o["\u0275ted"](-1,null,["API"])),(t()(),o["\u0275eld"](9,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.openAboutModal()&&a),a},null,null)),(t()(),o["\u0275ted"](-1,null,["About"]))],function(t,e){var n=t(e,4,0,!e.component.docsUrl);t(e,3,0,"dropdown-item",n)},function(t,e){t(e,2,0,o["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function qp(t){return o["\u0275vid"](0,[o["\u0275qud"](402653184,1,{docsFormElement:0}),(t()(),o["\u0275eld"](1,0,[[1,0],["docsForm",1]],null,1,"form",[["action","/docs"],["method","post"],["target","_blank"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,0,"input",[["name","token"],["type","hidden"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,16777216,null,null,10,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](5,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),(t()(),o["\u0275eld"](6,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Help"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,7).onClick()&&a),a},null,null)),o["\u0275did"](7,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275eld"](8,0,null,null,0,"i",[["class","fa fa-fw fa-question-circle-o"]],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Help"])),(t()(),o["\u0275eld"](11,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Mp)),o["\u0275did"](13,16384,null,0,gn.d,[gn.f,o.ViewContainerRef,o.TemplateRef],null,null)],function(t,e){t(e,5,0)},function(t,e){t(e,3,0,o["\u0275nov"](e,5).dropup,o["\u0275nov"](e,5).isOpen,o["\u0275nov"](e,5).isOpen&&o["\u0275nov"](e,5).isBs4),t(e,6,0,!0,o["\u0275nov"](e,7).isDisabled,o["\u0275nov"](e,7).isOpen)})}var jp=function(){function t(t){this.authStorageService=t,this.userPermission=this.authStorageService.getPermissions().user}return t.prototype.ngOnInit=function(){},t}(),Fp=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function zp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,3,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/user-management"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,2).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](2,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["User management"]))],function(t,e){t(e,2,0,"/user-management")},function(t,e){t(e,1,0,o["\u0275nov"](e,2).target,o["\u0275nov"](e,2).href)})}function Gp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,zp)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,2,0,e.component.userPermission.read)},null)}function Yp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,16777216,null,null,10,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](2,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),(t()(),o["\u0275eld"](3,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Dashboard Settings"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,4).onClick()&&a),a},null,null)),o["\u0275did"](4,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275eld"](5,0,null,null,0,"i",[["class","fa fa-fw fa-cog"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Dashboard Settings"])),(t()(),o["\u0275eld"](8,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Gp)),o["\u0275did"](10,16384,null,0,gn.d,[gn.f,o.ViewContainerRef,o.TemplateRef],null,null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0)},function(t,e){t(e,0,0,o["\u0275nov"](e,2).dropup,o["\u0275nov"](e,2).isOpen,o["\u0275nov"](e,2).isOpen&&o["\u0275nov"](e,2).isBs4),t(e,3,0,!0,o["\u0275nov"](e,4).isDisabled,o["\u0275nov"](e,4).isOpen)})}function Vp(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Yp)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.userPermission.read)},null)}var Hp=function(){function t(t,e){this.authStorageService=t,this.authService=e}return t.prototype.ngOnInit=function(){this.username=this.authStorageService.getUsername()},t.prototype.logout=function(){this.authService.logout()},t}(),Bp=o["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Up(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,11,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,4,"li",[["class","disabled"],["role","menuitem"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,3,"a",[["class","dropdown-item disabled"],["href","#"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Signed in as "])),(t()(),o["\u0275eld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),o["\u0275ted"](5,null,["",""])),(t()(),o["\u0275eld"](6,0,null,null,0,"li",[["class","divider dropdown-divider"]],null,null,null,null,null)),(t()(),o["\u0275eld"](7,0,null,null,4,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),o["\u0275eld"](8,0,null,null,3,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.logout()&&a),a},null,null)),(t()(),o["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-sign-out fa-fw"]],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Sign out"]))],null,function(t,e){t(e,5,0,e.component.username)})}function Wp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,16777216,null,null,10,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](2,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),(t()(),o["\u0275eld"](3,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Logged in user"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,4).onClick()&&a),a},null,null)),o["\u0275did"](4,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275eld"](5,0,null,null,0,"i",[["class","fa fa-fw fa-user"]],null,null,null,null,null)),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Logged in user"])),(t()(),o["\u0275eld"](8,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Up)),o["\u0275did"](10,16384,null,0,gn.d,[gn.f,o.ViewContainerRef,o.TemplateRef],null,null)],function(t,e){t(e,2,0)},function(t,e){t(e,0,0,o["\u0275nov"](e,2).dropup,o["\u0275nov"](e,2).isOpen,o["\u0275nov"](e,2).isOpen&&o["\u0275nov"](e,2).isBs4),t(e,3,0,!0,o["\u0275nov"](e,4).isDisabled,o["\u0275nov"](e,4).isOpen)})}var Kp=function(){function t(t,e,n,a,r){this.authStorageService=t,this.prometheusService=e,this.summaryService=n,this.featureToggles=a,this.prometheusAlertService=r,this.isCollapsed=!0,this.isAlertmanagerConfigured=!1,this.isPrometheusConfigured=!1,this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}return t.prototype.ngOnInit=function(){var t=this;this.summaryService.subscribe(function(e){e&&(t.summaryData=e)}),this.permissions.configOpt.read&&(this.prometheusService.ifAlertmanagerConfigured(function(){t.isAlertmanagerConfigured=!0}),this.prometheusService.ifPrometheusConfigured(function(){t.isPrometheusConfigured=!0}))},t.prototype.blockHealthColor=function(){if(this.summaryData&&this.summaryData.rbd_mirroring){if(this.summaryData.rbd_mirroring.errors>0)return{color:"#d9534f"};if(this.summaryData.rbd_mirroring.warnings>0)return{color:"#f0ad4e"}}},t}(),$p=o["\u0275crt"]({encapsulation:0,styles:[[".navbar-main{margin-bottom:0;background:#374249;border:0;border-radius:0;border-top:4px solid #2b99a8;font-size:1.2em} .navbar-main .navbar-header{display:-webkit-box;display:flex;float:none} .navbar-main .navbar-brand, .navbar-main .navbar-brand:hover{color:#eee;height:auto;margin:15px 0 15px 20px;padding:0;-webkit-align-self:flex-start;align-self:flex-start} .navbar-main .navbar-brand>img{height:25px} .navbar-main .navbar-toggle{margin-left:auto;border:0} .navbar-main .navbar-toggle:focus, .navbar-main .navbar-toggle:hover{background-color:transparent;outline:0} .navbar-main .navbar-toggle .icon-bar{background-color:#eee} .navbar-main .navbar-toggle:focus .icon-bar, .navbar-main .navbar-toggle:hover .icon-bar{box-shadow:0 0 3px #fff} .navbar-main .navbar-collapse{padding:0} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>ul>li>.dropdown-item{font-size:12px} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a, .navbar-main .navbar-nav>li>.oa-navbar>a, .navbar-main .navbar-nav>li>a{color:#eee;line-height:1;padding:10px 18px;position:relative;display:block;text-decoration:none} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a:focus, .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a:hover, .navbar-main .navbar-nav>li>.oa-navbar>a:focus, .navbar-main .navbar-nav>li>.oa-navbar>a:hover, .navbar-main .navbar-nav>li>a:focus, .navbar-main .navbar-nav>li>a:hover{color:#eee} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown].open>a, .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a:hover, .navbar-main .navbar-nav>li>.oa-navbar>a:hover, .navbar-main .navbar-nav>li>a:hover{background-color:#2b99a8} .navbar-main .navbar-nav>li a.dropdown-toggle span.caret{margin-left:5px} .navbar-main .navbar-nav>.open>.oa-navbar>[dropdown]>a, .navbar-main .navbar-nav>.open>.oa-navbar>[dropdown]>a:hover, .navbar-main .navbar-nav>.open>.oa-navbar>a, .navbar-main .navbar-nav>.open>.oa-navbar>a:focus, .navbar-main .navbar-nav>.open>.oa-navbar>a:hover, .navbar-main .navbar-nav>.open>.oa-navbar>li>a:focus, .navbar-main .navbar-nav>.open>a, .navbar-main .navbar-nav>.open>a:focus, .navbar-main .navbar-nav>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent} .navbar-main .navbar-primary>li>a{border:0} .navbar-main .navbar-primary>.active>a, .navbar-main .navbar-primary>.active>a:focus, .navbar-main .navbar-primary>.active>a:hover{color:#eee;background-color:#2b99a8;border:0} .navbar-main .navbar-utility .fa, .navbar-main .navbar-utility a{font-size:1.1em} .navbar-main .navbar-utility>.active>a{color:#eee;background-color:#2b99a8} .navbar-main .navbar-utility>li>.open>a, .navbar-main .navbar-utility>li>.open>a:focus, .navbar-main .navbar-utility>li>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent}@media (min-width:768px){ .navbar-main .navbar-primary>li>a{border-bottom:4px solid transparent} .navbar-main .navbar-primary>.active>a, .navbar-main .navbar-primary>.active>a:focus, .navbar-main .navbar-primary>.active>a:hover{background-color:transparent;border-bottom:4px solid #2b99a8} .navbar-main .navbar-utility{border-bottom:0;font-size:11px;position:absolute;right:0;top:0}}@media (max-width:calc(768px - 1px)){ .navbar-main .navbar-nav{margin:0} .navbar-main .navbar-nav .fa{margin-right:.5em} .navbar-main .navbar-collapse, .navbar-main .navbar-form{border-color:#eee} .navbar-main .navbar-collapse{padding:0} .navbar-main .navbar-nav .open .dropdown-menu{padding-top:0;padding-bottom:0;background-color:#2b99a8} .navbar-main .navbar-nav .open .dropdown-menu .dropdown-header, .navbar-main .navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 35px} .navbar-main .navbar-nav .open .dropdown-menu>li>a{color:#eee} .navbar-main .navbar-nav .open .dropdown-menu>.active>a{color:#eee;background-color:#2b99a8} .navbar-main .navbar-nav>li>a:hover{background-color:#2b99a8} .navbar-main .navbar-utility{border-top:1px solid #eee} .navbar-main .navbar-utility a{font-size:1em} .navbar-main .navbar-primary>.active>a, .navbar-main .navbar-primary>.active>a:focus, .navbar-main .navbar-primary>.active>a:hover{background-color:#2b99a8}}"]],data:{}});function Zp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_hosts"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,5,{links:1}),o["\u0275qud"](603979776,6,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/hosts"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[6,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Hosts"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/hosts")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function Xp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_monitor"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,7,{links:1}),o["\u0275qud"](603979776,8,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/monitor/"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[8,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Monitors"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/monitor/")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function Jp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_hosts"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,9,{links:1}),o["\u0275qud"](603979776,10,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/osd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[10,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["OSDs"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/osd")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function Qp(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_configuration"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,11,{links:1}),o["\u0275qud"](603979776,12,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/configuration"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[12,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Configuration"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/configuration")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function th(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_crush"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,13,{links:1}),o["\u0275qud"](603979776,14,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/crush-map"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[14,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["CRUSH map"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/crush-map")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function eh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_modules"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,15,{links:1}),o["\u0275qud"](603979776,16,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/mgr-modules"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[16,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Manager modules"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/mgr-modules")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function nh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_log"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,17,{links:1}),o["\u0275qud"](603979776,18,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[18,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Logs"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/logs")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function ah(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"small",[["class","badge badge-danger"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.component.prometheusAlertService.alerts.length)})}function rh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,9,"li",[["class","tc_submenuitem tc_submenuitem_monitoring"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,19,{links:1}),o["\u0275qud"](603979776,20,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,5,"a",[["routerLink","/monitoring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[20,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Monitoring"])),(t()(),o["\u0275and"](16777216,null,null,1,null,ah)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"active"),t(e,5,0,"/monitoring"),t(e,9,0,n.prometheusAlertService.alerts.length>0)},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function ih(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,16,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,Zp)),o["\u0275did"](2,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Xp)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Jp)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Qp)),o["\u0275did"](8,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,th)),o["\u0275did"](10,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,eh)),o["\u0275did"](12,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,nh)),o["\u0275did"](14,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,rh)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.permissions.hosts.read),t(e,4,0,n.permissions.monitor.read),t(e,6,0,n.permissions.osd.read),t(e,8,0,n.permissions.configOpt.read),t(e,10,0,n.permissions.hosts.read&&n.permissions.osd.read),t(e,12,0,n.permissions.configOpt.read),t(e,14,0,n.permissions.log.read),t(e,16,0,(n.isAlertmanagerConfigured||n.isPrometheusConfigured)&&n.permissions.prometheus.read)},null)}function oh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,16777216,null,null,12,"li",[["class","dropdown tc_menuitem tc_menuitem_cluster"],["dropdown",""],["routerLinkActive","active"]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](2,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),o["\u0275did"](3,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,3,{links:1}),o["\u0275qud"](603979776,4,{linksWithHrefs:1}),(t()(),o["\u0275eld"](6,0,null,null,4,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,7).onClick()&&a),a},null,null)),o["\u0275did"](7,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275eld"](8,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Cluster"])),(t()(),o["\u0275eld"](10,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,ih)),o["\u0275did"](12,16384,null,0,gn.d,[gn.f,o.ViewContainerRef,o.TemplateRef],null,null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0),t(e,3,0,"active")},function(t,e){t(e,0,0,o["\u0275nov"](e,2).dropup,o["\u0275nov"](e,2).isOpen,o["\u0275nov"](e,2).isOpen&&o["\u0275nov"](e,2).isBs4),t(e,6,0,!0,o["\u0275nov"](e,7).isDisabled,o["\u0275nov"](e,7).isOpen)})}function sh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_menuitem tc_menuitem_pool"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,21,{links:1}),o["\u0275qud"](603979776,22,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/pool"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[22,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Pools"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/pool")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function uh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,25,{links:1}),o["\u0275qud"](603979776,26,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/block/rbd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[26,4],[24,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Images"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/rbd")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function ch(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"small",[["class","label label-warning"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["",""]))],null,function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)})}function lh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"small",[["class","label label-danger"]],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["",""]))],null,function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors)})}function dh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,11,"li",[["class","tc_submenuitem tc_submenuitem_block_mirroring"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,27,{links:1}),o["\u0275qud"](603979776,28,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,7,"a",[["class","dropdown-item"],["routerLink","/block/mirroring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[28,4],[24,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Mirroring"])),(t()(),o["\u0275and"](16777216,null,null,1,null,ch)),o["\u0275did"](9,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,lh)),o["\u0275did"](11,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"active"),t(e,5,0,"/block/mirroring"),t(e,9,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)),t(e,11,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors))},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function fh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,29,{links:1}),o["\u0275qud"](603979776,30,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/block/iscsi"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[30,4],[24,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["iSCSI"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/iscsi")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function ph(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,16777216,null,null,18,"li",[["class","dropdown tc_menuitem tc_menuitem_block"],["dropdown",""],["routerLinkActive","active"]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](2,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),o["\u0275did"](3,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,23,{links:1}),o["\u0275qud"](603979776,24,{linksWithHrefs:1}),(t()(),o["\u0275eld"](6,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,8).onClick()&&a),a},null,null)),o["\u0275did"](7,278528,null,0,i.NgStyle,[o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngStyle:[0,"ngStyle"]},null),o["\u0275did"](8,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275eld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Block"])),(t()(),o["\u0275eld"](11,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),o["\u0275eld"](12,0,null,null,6,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,uh)),o["\u0275did"](14,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,dh)),o["\u0275did"](16,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,fh)),o["\u0275did"](18,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,2,0),t(e,3,0,"active"),t(e,7,0,n.blockHealthColor()),t(e,14,0,e.parent.context.ngIf.rbd&&n.permissions.rbdImage.read),t(e,16,0,e.parent.context.ngIf.mirroring&&n.permissions.rbdMirroring.read),t(e,18,0,e.parent.context.ngIf.iscsi&&n.permissions.iscsi.read)},function(t,e){t(e,0,0,o["\u0275nov"](e,2).dropup,o["\u0275nov"](e,2).isOpen,o["\u0275nov"](e,2).isOpen&&o["\u0275nov"](e,2).isBs4),t(e,6,0,!0,o["\u0275nov"](e,8).isDisabled,o["\u0275nov"](e,8).isOpen)})}function hh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_menuitem tc_menuitem_nfs"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,31,{links:1}),o["\u0275qud"](603979776,32,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/nfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[32,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["NFS"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/nfs")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function gh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","tc_menuitem tc_menuitem_cephs"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](1,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,33,{links:1}),o["\u0275qud"](603979776,34,{linksWithHrefs:1}),(t()(),o["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/cephfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](5,671744,[[34,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Filesystems"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/cephfs")},function(t,e){t(e,4,0,o["\u0275nov"](e,5).target,o["\u0275nov"](e,5).href)})}function mh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,21,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),o["\u0275eld"](1,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_daemons"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](2,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,37,{links:1}),o["\u0275qud"](603979776,38,{linksWithHrefs:1}),(t()(),o["\u0275eld"](5,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/rgw/daemon"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](6,671744,[[38,4],[36,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Daemons"])),(t()(),o["\u0275eld"](8,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_users"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](9,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,39,{links:1}),o["\u0275qud"](603979776,40,{linksWithHrefs:1}),(t()(),o["\u0275eld"](12,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/rgw/user"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,13).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](13,671744,[[40,4],[36,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Users"])),(t()(),o["\u0275eld"](15,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_buckets"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](16,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,41,{links:1}),o["\u0275qud"](603979776,42,{linksWithHrefs:1}),(t()(),o["\u0275eld"](19,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/rgw/bucket"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,20).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](20,671744,[[42,4],[36,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275ted"](-1,null,["Buckets"]))],function(t,e){t(e,2,0,"active"),t(e,6,0,"/rgw/daemon"),t(e,9,0,"active"),t(e,13,0,"/rgw/user"),t(e,16,0,"active"),t(e,20,0,"/rgw/bucket")},function(t,e){t(e,5,0,o["\u0275nov"](e,6).target,o["\u0275nov"](e,6).href),t(e,12,0,o["\u0275nov"](e,13).target,o["\u0275nov"](e,13).href),t(e,19,0,o["\u0275nov"](e,20).target,o["\u0275nov"](e,20).href)})}function bh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,16777216,null,null,12,"li",[["class","dropdown tc_menuitem tc_menuitem_rgw"],["dropdown",""],["routerLinkActive","active"]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),o["\u0275prd"](512,null,gn.f,gn.f,[]),o["\u0275did"](2,212992,null,0,gn.c,[o.ElementRef,o.Renderer2,o.ViewContainerRef,Q.a,gn.a,gn.f],null,null),o["\u0275did"](3,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,35,{links:1}),o["\u0275qud"](603979776,36,{linksWithHrefs:1}),(t()(),o["\u0275eld"](6,0,null,null,4,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,7).onClick()&&a),a},null,null)),o["\u0275did"](7,147456,null,0,gn.g,[o.ChangeDetectorRef,gn.c,o.ElementRef,o.Renderer2,gn.f],null,null),(t()(),o["\u0275eld"](8,0,null,null,1,null,null,null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Object Gateway"])),(t()(),o["\u0275eld"](10,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,mh)),o["\u0275did"](12,16384,null,0,gn.d,[gn.f,o.ViewContainerRef,o.TemplateRef],null,null),(t()(),o["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0),t(e,3,0,"active")},function(t,e){t(e,0,0,o["\u0275nov"](e,2).dropup,o["\u0275nov"](e,2).isOpen,o["\u0275nov"](e,2).isOpen&&o["\u0275nov"](e,2).isBs4),t(e,6,0,!0,o["\u0275nov"](e,7).isDisabled,o["\u0275nov"](e,7).isOpen)})}function yh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,44,"div",[["class","collapse navbar-collapse"],["id","bs-example-navbar-collapse-1"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),o["\u0275did"](1,8404992,null,0,op,[o.ElementRef,o.Renderer2,Mu.b],{collapse:[0,"collapse"]},null),(t()(),o["\u0275eld"](2,0,null,null,23,"ul",[["class","nav navbar-nav navbar-primary"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,10,"li",[["class","tc_menuitem tc_menuitem_dashboard"],["routerLinkActive","active"]],null,null,null,null,null)),o["\u0275did"](4,1720320,null,2,et.n,[et.l,o.ElementRef,o.Renderer2,o.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),o["\u0275qud"](603979776,1,{links:1}),o["\u0275qud"](603979776,2,{linksWithHrefs:1}),(t()(),o["\u0275eld"](7,0,null,null,6,"a",[["routerLink","/dashboard"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,8).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](8,671744,[[2,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),o["\u0275eld"](9,0,null,null,2,"i",[["class","fa fa-heartbeat fa-fw"]],null,null,null,null,null)),o["\u0275did"](10,278528,null,0,i.NgStyle,[o.KeyValueDiffers,o.ElementRef,o.Renderer2],{ngStyle:[0,"ngStyle"]},null),o["\u0275ppd"](11,1),(t()(),o["\u0275eld"](12,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Dashboard"])),(t()(),o["\u0275and"](16777216,null,null,1,null,oh)),o["\u0275did"](15,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,sh)),o["\u0275did"](17,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,ph)),o["\u0275did"](19,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,hh)),o["\u0275did"](21,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,gh)),o["\u0275did"](23,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,bh)),o["\u0275did"](25,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](26,0,null,null,18,"ul",[["class","nav navbar-nav navbar-utility"]],null,null,null,null,null)),(t()(),o["\u0275eld"](27,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](28,0,null,null,1,"cd-language-selector",[["class","oa-navbar"]],null,null,null,Hl,jl)),o["\u0275did"](29,114688,null,0,ql,[kr.j,Pl],null,null),(t()(),o["\u0275eld"](30,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](31,0,null,null,1,"cd-task-manager",[["class","oa-navbar"]],null,null,null,_p,cp)),o["\u0275did"](32,114688,null,0,up,[qe.a,wu.a],null,null),(t()(),o["\u0275eld"](33,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](34,0,null,null,1,"cd-notifications",[["class","oa-navbar"]],null,null,null,Dp,Sp)),o["\u0275did"](35,245760,null,0,wp,[Xn.a,Tp,d.a,Ki,o.NgZone],null,null),(t()(),o["\u0275eld"](36,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](37,0,null,null,1,"cd-dashboard-help",[["class","oa-navbar"]],null,null,null,qp,Pp)),o["\u0275did"](38,114688,null,0,Lp,[qe.a,ze.a,fa.b,d.a],null,null),(t()(),o["\u0275eld"](39,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](40,0,null,null,1,"cd-administration",[["class","oa-navbar"]],null,null,null,Vp,Fp)),o["\u0275did"](41,114688,null,0,jp,[d.a],null,null),(t()(),o["\u0275eld"](42,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),o["\u0275eld"](43,0,null,null,1,"cd-identity",[["class","oa-navbar"]],null,null,null,Wp,Bp)),o["\u0275did"](44,114688,null,0,Hp,[d.a,Wl.a],null,null)],function(t,e){var n=e.component;t(e,1,0,n.isCollapsed),t(e,4,0,"active"),t(e,8,0,"/dashboard");var a=o["\u0275unv"](e,10,0,t(e,11,0,o["\u0275nov"](e.parent,0),null==n.summaryData?null:n.summaryData.health_status));t(e,10,0,a),t(e,15,0,n.permissions.hosts.read||n.permissions.monitor.read||n.permissions.osd.read||n.permissions.configOpt.read),t(e,17,0,n.permissions.pool.read),t(e,19,0,(e.context.ngIf.rbd||e.context.ngIf.mirroring||e.context.ngIf.iscsi)&&(n.permissions.rbdImage.read||n.permissions.rbdMirroring.read||n.permissions.iscsi.read)),t(e,21,0,null==n.permissions?null:null==n.permissions.nfs?null:n.permissions.nfs.read),t(e,23,0,e.context.ngIf.cephfs&&n.permissions.cephfs.read),t(e,25,0,e.context.ngIf.rgw&&n.permissions.rgw.read),t(e,29,0),t(e,32,0),t(e,35,0),t(e,38,0),t(e,41,0),t(e,44,0)},function(t,e){t(e,0,0,o["\u0275nov"](e,1).isCollapse,o["\u0275nov"](e,1).isExpanded,o["\u0275nov"](e,1).isExpanded,o["\u0275nov"](e,1).isExpanded,o["\u0275nov"](e,1).isCollapsed,o["\u0275nov"](e,1).isCollapsing),t(e,7,0,o["\u0275nov"](e,8).target,o["\u0275nov"](e,8).href)})}function vh(t){return o["\u0275vid"](0,[o["\u0275pid"](0,xt,[]),(t()(),o["\u0275eld"](1,0,null,null,12,"nav",[["class","navbar navbar-default navbar-main"]],null,null,null,null,null)),(t()(),o["\u0275eld"](2,0,null,null,8,"div",[["class","navbar-header tc_logo_component"]],null,null,null,null,null)),(t()(),o["\u0275eld"](3,0,null,null,1,"a",[["class","navbar-brand"],["href","#"]],null,null,null,null,null)),(t()(),o["\u0275eld"](4,0,null,null,0,"img",[["alt","Ceph"],["src","assets/Ceph_Logo_Standard_RGB_White_120411_fa.png"]],null,null,null,null,null)),(t()(),o["\u0275eld"](5,0,null,null,5,"button",[["class","navbar-toggle collapsed"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=0!=(r.isCollapsed=!r.isCollapsed)&&a),a},null,null)),(t()(),o["\u0275eld"](6,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),o["\u0275ted"](-1,null,["Toggle navigation"])),(t()(),o["\u0275eld"](8,0,null,null,0,"span",[["class","icon-bar"]],null,null,null,null,null)),(t()(),o["\u0275eld"](9,0,null,null,0,"span",[["class","icon-bar"]],null,null,null,null,null)),(t()(),o["\u0275eld"](10,0,null,null,0,"span",[["class","icon-bar"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,2,null,yh)),o["\u0275did"](12,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),o["\u0275pid"](131072,i.AsyncPipe,[o.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,12,0,o["\u0275unv"](e,12,0,o["\u0275nov"](e,13).transform(n.enabledFeature$)))},null)}var xh=n("ou9H"),_h=n("P6uZ"),Th=n("wbK0"),wh=function(){function t(){}return t.prototype.resolve=function(t){var e=t.routeConfig.data,n=null===e.path?null:this.getFullPath(t),a=[{text:"string"==typeof e.breadcrumbs?e.breadcrumbs:e.breadcrumbs.text||e.text||n,path:n}];return Object(pc.a)(a)},t.prototype.getFullPath=function(t){return t.pathFromRoot.reduce(function(t,e){return t+e.url.reduce(function(t,e){return t+"/"+e.path},"")},"")},t}(),Sh=function(){function t(t,e){var n=this;this.router=t,this.injector=e,this.crumbs=[],this.defaultResolver=new wh,this.subscription=this.router.events.pipe(Object(Gu.a)(function(t){return t instanceof et.d})).subscribe(function(){n._resolveCrumbs(t.routerState.snapshot.root).pipe(Object(zu.a)(function(t){return t}),Object(xh.a)(function(t){return t.text}),Object(Yu.a)(),Object(zu.a)(function(t){var e=n.postProcess(t);return n.wrapIntoObservable(e).pipe(Object(_h.a)())})).subscribe(function(t){n.crumbs=t})})}return t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype._resolveCrumbs=function(t){var e,n=t.routeConfig&&t.routeConfig.data;if(n&&n.breadcrumbs){var a=(n.breadcrumbs.prototype instanceof wh?this.injector.get(n.breadcrumbs):this.defaultResolver).resolve(t);e=this.wrapIntoObservable(a).pipe(Object(_h.a)())}else e=Object(pc.a)([]);return t.firstChild&&(e=e.pipe(Object(Th.a)(this._resolveCrumbs(t.firstChild)))),e},t.prototype.postProcess=function(t){var e=[];return t.forEach(function(t){var n=t.text.split("/");if(n.length>1){t.text=n[n.length-1];for(var a=0;a li[_ngcontent-%COMP%] + li[_ngcontent-%COMP%]:before{padding:0 5px 0 7px;color:#474544;font-family:ForkAwesome;content:'\\f101'}.breadcrumb[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:#474544}"]],data:{}});function Ih(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"a",[["preserveFragment",""]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==o["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),o["\u0275did"](1,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),o["\u0275ted"](2,null,["",""]))],function(t,e){t(e,1,0,"",e.parent.context.$implicit.path)},function(t,e){t(e,0,0,o["\u0275nov"](e,1).target,o["\u0275nov"](e,1).href),t(e,2,0,e.parent.context.$implicit.text)})}function Ch(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),o["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.text)})}function kh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,6,"li",[["class","breadcrumb-item"]],null,null,null,null,null)),o["\u0275did"](1,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](2,{active:0}),(t()(),o["\u0275and"](16777216,null,null,1,null,Ih)),o["\u0275did"](4,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275and"](16777216,null,null,1,null,Ch)),o["\u0275did"](6,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,2,0,e.context.last);t(e,1,0,"breadcrumb-item",n),t(e,4,0,!e.context.last&&null!==e.context.$implicit.path),t(e,6,0,e.context.last||null===e.context.$implicit.path)},null)}function Nh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"ol",[["class","breadcrumb"]],null,null,null,null,null)),(t()(),o["\u0275and"](16777216,null,null,1,null,kh)),o["\u0275did"](2,278528,null,0,i.NgForOf,[o.ViewContainerRef,o.TemplateRef,o.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.crumbs)},null)}function Rh(t){return o["\u0275vid"](0,[(t()(),o["\u0275and"](16777216,null,null,1,null,Nh)),o["\u0275did"](1,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.crumbs.length)},null)}var Ah=o["\u0275crt"]({encapsulation:0,styles:[[".dashboard[_ngcontent-%COMP%]{background-color:#f5f5f5;margin:0;padding:0} #toast-container{margin-top:2vw}@media (max-width:1600px){ #toast-container{margin-top:2.5vw}}@media (max-width:calc(992px - 1px)){ #toast-container{margin-top:9vw}}@media (max-width:900px){ #toast-container{margin-top:10vw}}@media (max-width:319px){ #toast-container{margin-top:11vw}}@media (max-width:260px){ #toast-container{margin-top:14vw}}"]],data:{}});function Eh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,1,"cd-navigation",[],null,null,null,vh,$p)),o["\u0275did"](1,114688,null,0,Kp,[d.a,Bi,qe.a,Et.a,Ki],null,null)],function(t,e){t(e,1,0)},null)}function Dh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,12,"block-ui",[],null,null,null,C,I)),o["\u0275did"](1,114688,null,0,v,[y],null,null),(t()(),o["\u0275and"](16777216,null,0,1,null,Eh)),o["\u0275did"](3,16384,null,0,i.NgIf,[o.ViewContainerRef,o.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),o["\u0275eld"](4,0,null,0,6,"div",[["class","container-fluid"]],null,null,null,null,null)),o["\u0275did"](5,278528,null,0,i.NgClass,[o.IterableDiffers,o.KeyValueDiffers,o.ElementRef,o.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),o["\u0275pod"](6,{"full-height":0,dashboard:1}),(t()(),o["\u0275eld"](7,0,null,null,1,"cd-breadcrumbs",[],null,null,null,Rh,Oh)),o["\u0275did"](8,180224,null,0,Sh,[et.l,o.Injector],null,null),(t()(),o["\u0275eld"](9,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),o["\u0275did"](10,212992,null,0,et.q,[et.b,o.ViewContainerRef,o.ComponentFactoryResolver,[8,null],o.ChangeDetectorRef],null,null),(t()(),o["\u0275eld"](11,0,null,0,1,"block-ui",[],null,null,null,C,I)),o["\u0275did"](12,114688,null,0,v,[y],null,null)],function(t,e){var n=e.component;t(e,1,0),t(e,3,0,!n.isLoginActive());var a=t(e,6,0,n.isLoginActive(),n.isDashboardPage());t(e,5,0,"container-fluid",a),t(e,10,0),t(e,12,0)},null)}function Lh(t){return o["\u0275vid"](0,[(t()(),o["\u0275eld"](0,0,null,null,2,"cd-root",[],null,null,null,Dh,Ah)),o["\u0275prd"](5120,null,l.a,f,[]),o["\u0275did"](2,49152,null,0,p,[d.a,et.l],null,null)],null,null)}var Ph=o["\u0275ccf"]("cd-root",p,Lh,{},{},[]),Mh=new o.InjectionToken("JWT_OPTIONS"),qh=function(){function t(t){void 0===t&&(t=null),this.tokenGetter=t&&t.tokenGetter||function(){}}return t.prototype.urlBase64Decode=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}return this.b64DecodeUnicode(e)},t.prototype.b64decode=function(t){var e="";if((t=String(t).replace(/=+$/,"")).length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var n=0,a=void 0,r=void 0,i=0;r=t.charAt(i++);~r&&(a=n%4?64*a+r:r,n++%4)?e+=String.fromCharCode(255&a>>(-2*n&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return e},t.prototype.b64DecodeUnicode=function(t){return decodeURIComponent(Array.prototype.map.call(this.b64decode(t),function(t){return"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)}).join(""))},t.prototype.decodeToken=function(t){if(void 0===t&&(t=this.tokenGetter()),null===t)return null;var e=t.split(".");if(3!==e.length)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");var n=this.urlBase64Decode(e[1]);if(!n)throw new Error("Cannot decode the token.");return JSON.parse(n)},t.prototype.getTokenExpirationDate=function(t){var e;if(void 0===t&&(t=this.tokenGetter()),!(e=this.decodeToken(t)).hasOwnProperty("exp"))return null;var n=new Date(0);return n.setUTCSeconds(e.exp),n},t.prototype.isTokenExpired=function(t,e){if(void 0===t&&(t=this.tokenGetter()),null===t||""===t)return!0;var n=this.getTokenExpirationDate(t);return e=e||0,null===n||!(n.valueOf()>(new Date).valueOf()+1e3*e)},t}(),jh=n("gTqA"),Fh=n("CxY0"),zh=function(){function t(t,e){this.jwtHelper=e,this.tokenGetter=t.tokenGetter,this.headerName=t.headerName||"Authorization",this.authScheme=t.authScheme||""===t.authScheme?t.authScheme:"Bearer ",this.whitelistedDomains=t.whitelistedDomains||[],this.blacklistedRoutes=t.blacklistedRoutes||[],this.throwNoTokenError=t.throwNoTokenError||!1,this.skipWhenExpired=t.skipWhenExpired}return t.prototype.isWhitelistedDomain=function(t){var e=Object(Fh.parse)(t.url,!1,!0);return null===e.host||this.whitelistedDomains.findIndex(function(t){return"string"==typeof t?t===e.host:t instanceof RegExp&&t.test(e.host)})>-1},t.prototype.isBlacklistedRoute=function(t){var e=t.url;return this.blacklistedRoutes.findIndex(function(t){return"string"==typeof t?t===e:t instanceof RegExp&&t.test(e)})>-1},t.prototype.handleInterception=function(t,e,n){var a,r=!1;if(!t&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");return this.skipWhenExpired&&(r=!t||this.jwtHelper.isTokenExpired(t)),t&&r&&this.skipWhenExpired?e=e.clone():t&&this.isWhitelistedDomain(e)&&!this.isBlacklistedRoute(e)&&(e=e.clone({setHeaders:(a={},a[this.headerName]=""+this.authScheme+t,a)})),n.handle(e)},t.prototype.intercept=function(t,e){var n=this,a=this.tokenGetter();return a instanceof Promise?Object(jh.from)(a).pipe(Object(zu.a)(function(a){return n.handleInterception(a,t,e)})):this.handleInterception(a,t,e)},t}(),Gh=n("XlPw"),Yh=n("9Z1F"),Vh=function(){function t(t,e,n){this.router=t,this.authStorageService=e,this.notificationService=n}return t.prototype.intercept=function(t,e){var n=this;return e.handle(t).pipe(Object(Yh.a)(function(t){if(t instanceof Nt.f){var e;switch(t.status){case 400:var a=new Ou.a,r=t.error.task;pt.isPlainObject(r)?(r.metadata.component=r.metadata.component||t.error.component,a.name=r.name,a.metadata=r.metadata):a.metadata=t.error,a.success=!1,a.exception=t.error,e=n.notificationService.notifyTask(a);break;case 401:n.authStorageService.remove(),n.router.navigate(["/login"]);break;case 403:n.router.navigate(["/403"]);break;default:e=n.prepareNotification(t)}t.preventDefault=function(){n.notificationService.cancel(e)},t.ignoreStatusCode=function(t){this.status===t&&this.preventDefault()}}return Object(Gh.a)(t)}))},t.prototype.prepareNotification=function(t){return this.notificationService.show(function(){var e="";return pt.isPlainObject(t.error)&&pt.isString(t.error.detail)?e=t.error.detail:pt.isString(t.error)?e=t.error:pt.isString(t.message)&&(e=t.message),new Ui.b(Zn.a.error,t.status+" - "+t.statusText,e,void 0,t.application)})},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(et.l),o.inject(d.a),o.inject(Xn.a))},token:t,providedIn:"root"}),t}();function Hh(){return"undefined"!=typeof process}function Bh(t){switch(t.length){case 0:return new Mu.d;case 1:return t[0];default:return new Mu.k(t)}}function Uh(t,e,n,a,r,i){void 0===r&&(r={}),void 0===i&&(i={});var o=[],s=[],u=-1,c=null;if(a.forEach(function(t){var n=t.offset,a=n==u,l=a&&c||{};Object.keys(t).forEach(function(n){var a=n,s=t[n];if("offset"!==n)switch(a=e.normalizePropertyName(a,o),s){case Mu.l:s=r[n];break;case Mu.a:s=i[n];break;default:s=e.normalizeStyleValue(n,a,s,o)}l[a]=s}),a||s.push(l),c=l,u=n}),o.length)throw new Error("Unable to animate due to the following errors:\n - "+o.join("\n - "));return s}function Wh(t,e,n,a){switch(e){case"start":t.onStart(function(){return a(n&&Kh(n,"start",t))});break;case"done":t.onDone(function(){return a(n&&Kh(n,"done",t))});break;case"destroy":t.onDestroy(function(){return a(n&&Kh(n,"destroy",t))})}}function Kh(t,e,n){var a=n.totalTime,r=$h(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,null==a?t.totalTime:a,!!n.disabled),i=t._data;return null!=i&&(r._data=i),r}function $h(t,e,n,a,r,i,o){return void 0===r&&(r=""),void 0===i&&(i=0),{element:t,triggerName:e,fromState:n,toState:a,phaseName:r,totalTime:i,disabled:!!o}}function Zh(t,e,n){var a;return t instanceof Map?(a=t.get(e))||t.set(e,a=n):(a=t[e])||(a=t[e]=n),a}function Xh(t){var e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}var Jh=function(t,e){return!1},Qh=function(t,e){return!1},tg=function(t,e,n){return[]},eg=Hh();if(eg||"undefined"!=typeof Element){if(Jh=function(t,e){return t.contains(e)},eg||Element.prototype.matches)Qh=function(t,e){return t.matches(e)};else{var ng=Element.prototype,ag=ng.matchesSelector||ng.mozMatchesSelector||ng.msMatchesSelector||ng.oMatchesSelector||ng.webkitMatchesSelector;ag&&(Qh=function(t,e){return ag.apply(t,[e])})}tg=function(t,e,n){var a=[];if(n)a.push.apply(a,Object(h.__spread)(t.querySelectorAll(e)));else{var r=t.querySelector(e);r&&a.push(r)}return a}}var rg=null,ig=!1;function og(t){rg||(rg=("undefined"!=typeof document?document.body:null)||{},ig=!!rg.style&&"WebkitAppearance"in rg.style);var e=!0;return rg.style&&!function(t){return"ebkit"==t.substring(1,6)}(t)&&!(e=t in rg.style)&&ig&&(e="Webkit"+t.charAt(0).toUpperCase()+t.substr(1)in rg.style),e}var sg=Qh,ug=Jh,cg=tg;function lg(t){var e={};return Object.keys(t).forEach(function(n){var a=n.replace(/([a-z])([A-Z])/g,"$1-$2");e[a]=t[n]}),e}var dg=function(){function t(){}return t.prototype.validateStyleProperty=function(t){return og(t)},t.prototype.matchesElement=function(t,e){return sg(t,e)},t.prototype.containsElement=function(t,e){return ug(t,e)},t.prototype.query=function(t,e,n){return cg(t,e,n)},t.prototype.computeStyle=function(t,e,n){return n||""},t.prototype.animate=function(t,e,n,a,r,i,o){return void 0===i&&(i=[]),new Mu.d(n,a)},t}(),fg=function(){function t(){}return t.NOOP=new dg,t}(),pg=1e3;function hg(t){if("number"==typeof t)return t;var e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:gg(parseFloat(e[1]),e[2])}function gg(t,e){switch(e){case"s":return t*pg;default:return t}}function mg(t,e,n){return t.hasOwnProperty("duration")?t:function(t,e,n){var a,r=0,i="";if("string"==typeof t){var o=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===o)return e.push('The provided timing value "'+t+'" is invalid.'),{duration:0,delay:0,easing:""};a=gg(parseFloat(o[1]),o[2]);var s=o[3];null!=s&&(r=gg(parseFloat(s),o[4]));var u=o[5];u&&(i=u)}else a=t;if(!n){var c=!1,l=e.length;a<0&&(e.push("Duration values below 0 are not allowed for this animation step."),c=!0),r<0&&(e.push("Delay values below 0 are not allowed for this animation step."),c=!0),c&&e.splice(l,0,'The provided timing value "'+t+'" is invalid.')}return{duration:a,delay:r,easing:i}}(t,e,n)}function bg(t,e){return void 0===e&&(e={}),Object.keys(t).forEach(function(n){e[n]=t[n]}),e}function yg(t,e,n){if(void 0===n&&(n={}),e)for(var a in t)n[a]=t[a];else bg(t,n);return n}function vg(t,e,n){return n?e+":"+n+";":""}function xg(t){for(var e="",n=0;n *";case":leave":return"* => void";case":increment":return function(t,e){return parseFloat(e)>parseFloat(t)};case":decrement":return function(t,e){return parseFloat(e) *"}}(t,n);if("function"==typeof a)return void e.push(a);t=a}var r=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==r||r.length<4)return n.push('The provided transition expression "'+t+'" is not supported'),e;var i=r[1],o=r[2],s=r[3];e.push(qg(i,s)),"<"!=o[0]||i==Lg&&s==Lg||e.push(qg(s,i))}(t,r,a)}):r.push(n),r),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Vg(t.options)}},t.prototype.visitSequence=function(t,e){var n=this;return{type:2,steps:t.steps.map(function(t){return Eg(n,t,e)}),options:Vg(t.options)}},t.prototype.visitGroup=function(t,e){var n=this,a=e.currentTime,r=0,i=t.steps.map(function(t){e.currentTime=a;var i=Eg(n,t,e);return r=Math.max(r,e.currentTime),i});return e.currentTime=r,{type:3,steps:i,options:Vg(t.options)}},t.prototype.visitAnimate=function(t,e){var n,a=function(t,e){var n=null;if(t.hasOwnProperty("duration"))n=t;else if("number"==typeof t)return Hg(mg(t,e).duration,0,"");var a=t;if(a.split(/\s+/).some(function(t){return"{"==t.charAt(0)&&"{"==t.charAt(1)})){var r=Hg(0,0,"");return r.dynamic=!0,r.strValue=a,r}return Hg((n=n||mg(a,e)).duration,n.delay,n.easing)}(t.timings,e.errors);e.currentAnimateTimings=a;var r=t.styles?t.styles:Object(Mu.h)({});if(5==r.type)n=this.visitKeyframes(r,e);else{var i=t.styles,o=!1;if(!i){o=!0;var s={};a.easing&&(s.easing=a.easing),i=Object(Mu.h)(s)}e.currentTime+=a.duration+a.delay;var u=this.visitStyle(i,e);u.isEmptyStep=o,n=u}return e.currentAnimateTimings=null,{type:4,timings:a,style:n,options:null}},t.prototype.visitStyle=function(t,e){var n=this._makeStyleAst(t,e);return this._validateStyleAst(n,e),n},t.prototype._makeStyleAst=function(t,e){var n=[];Array.isArray(t.styles)?t.styles.forEach(function(t){"string"==typeof t?t==Mu.a?n.push(t):e.errors.push("The provided style string value "+t+" is not allowed."):n.push(t)}):n.push(t.styles);var a=!1,r=null;return n.forEach(function(t){if(Yg(t)){var e=t,n=e.easing;if(n&&(r=n,delete e.easing),!a)for(var i in e)if(e[i].toString().indexOf("{{")>=0){a=!0;break}}}),{type:6,styles:n,easing:r,offset:t.offset,containsDynamicStyles:a,options:null}},t.prototype._validateStyleAst=function(t,e){var n=this,a=e.currentAnimateTimings,r=e.currentTime,i=e.currentTime;a&&i>0&&(i-=a.duration+a.delay),t.styles.forEach(function(t){"string"!=typeof t&&Object.keys(t).forEach(function(a){if(n._driver.validateStyleProperty(a)){var o,s,u,c=e.collectedStyles[e.currentQuerySelector],l=c[a],d=!0;l&&(i!=r&&i>=l.startTime&&r<=l.endTime&&(e.errors.push('The CSS property "'+a+'" that exists between the times of "'+l.startTime+'ms" and "'+l.endTime+'ms" is also being animated in a parallel animation between the times of "'+i+'ms" and "'+r+'ms"'),d=!1),i=l.startTime),d&&(c[a]={startTime:i,endTime:r}),e.options&&(o=e.errors,s=e.options.params||{},(u=Og(t[a])).length&&u.forEach(function(t){s.hasOwnProperty(t)||o.push("Unable to resolve the local animation param "+t+" in the given list of values")}))}else e.errors.push('The provided animation property "'+a+'" is not a supported CSS property for animations')})})},t.prototype.visitKeyframes=function(t,e){var n=this,a={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),a;var r=0,i=[],o=!1,s=!1,u=0,c=t.steps.map(function(t){var a=n._makeStyleAst(t,e),c=null!=a.offset?a.offset:function(t){if("string"==typeof t)return null;var e=null;if(Array.isArray(t))t.forEach(function(t){if(Yg(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}});else if(Yg(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}return e}(a.styles),l=0;return null!=c&&(r++,l=a.offset=c),s=s||l<0||l>1,o=o||l0&&r0?r==f?1:d*r:i[r],s=o*g;e.currentTime=p+h.delay+s,h.duration=s,n._validateStyleAst(t,e),t.offset=o,a.styles.push(t)}),a},t.prototype.visitReference=function(t,e){return{type:8,animation:Eg(this,wg(t.animation),e),options:Vg(t.options)}},t.prototype.visitAnimateChild=function(t,e){return e.depCount++,{type:9,options:Vg(t.options)}},t.prototype.visitAnimateRef=function(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Vg(t.options)}},t.prototype.visitQuery=function(t,e){var n=e.currentQuerySelector,a=t.options||{};e.queryCount++,e.currentQuery=t;var r=Object(h.__read)(function(t){var e=!!t.split(/\s*,\s*/).find(function(t){return":self"==t});return e&&(t=t.replace(jg,"")),[t=t.replace(/@\*/g,".ng-trigger").replace(/@\w+/g,function(t){return".ng-trigger-"+t.substr(1)}).replace(/:animating/g,".ng-animating"),e]}(t.selector),2),i=r[0],o=r[1];e.currentQuerySelector=n.length?n+" "+i:i,Zh(e.collectedStyles,e.currentQuerySelector,{});var s=Eg(this,wg(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=n,{type:11,selector:i,limit:a.limit||0,optional:!!a.optional,includeSelf:o,animation:s,originalSelector:t.selector,options:Vg(t.options)}},t.prototype.visitStagger=function(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");var n="full"===t.timings?{duration:0,delay:0,easing:"full"}:mg(t.timings,e.errors,!0);return{type:12,animation:Eg(this,wg(t.animation),e),timings:n,options:null}},t}(),Gg=function(){return function(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}();function Yg(t){return!Array.isArray(t)&&"object"==typeof t}function Vg(t){var e;return t?(t=bg(t)).params&&(t.params=(e=t.params)?bg(e):null):t={},t}function Hg(t,e,n){return{duration:t,delay:e,easing:n}}function Bg(t,e,n,a,r,i,o,s){return void 0===o&&(o=null),void 0===s&&(s=!1),{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:a,duration:r,delay:i,totalTime:r+i,easing:o,subTimeline:s}}var Ug=function(){function t(){this._map=new Map}return t.prototype.consume=function(t){var e=this._map.get(t);return e?this._map.delete(t):e=[],e},t.prototype.append=function(t,e){var n=this._map.get(t);n||this._map.set(t,n=[]),n.push.apply(n,Object(h.__spread)(e))},t.prototype.has=function(t){return this._map.has(t)},t.prototype.clear=function(){this._map.clear()},t}(),Wg=new RegExp(":enter","g"),Kg=new RegExp(":leave","g");function $g(t,e,n,a,r,i,o,s,u,c){return void 0===i&&(i={}),void 0===o&&(o={}),void 0===c&&(c=[]),(new Zg).buildKeyframes(t,e,n,a,r,i,o,s,u,c)}var Zg=function(){function t(){}return t.prototype.buildKeyframes=function(t,e,n,a,r,i,o,s,u,c){void 0===c&&(c=[]),u=u||new Ug;var l=new Jg(t,e,u,a,r,c,[]);l.options=s,l.currentTimeline.setStyles([i],null,l.errors,s),Eg(this,n,l);var d=l.timelines.filter(function(t){return t.containsAnimation()});if(d.length&&Object.keys(o).length){var f=d[d.length-1];f.allowOnlyTimelineStyles()||f.setStyles([o],null,l.errors,s)}return d.length?d.map(function(t){return t.buildKeyframes()}):[Bg(e,[],[],[],0,0,"",!1)]},t.prototype.visitTrigger=function(t,e){},t.prototype.visitState=function(t,e){},t.prototype.visitTransition=function(t,e){},t.prototype.visitAnimateChild=function(t,e){var n=e.subInstructions.consume(e.element);if(n){var a=e.createSubContext(t.options),r=e.currentTimeline.currentTime,i=this._visitSubInstructions(n,a,a.options);r!=i&&e.transformIntoNewTimeline(i)}e.previousNode=t},t.prototype.visitAnimateRef=function(t,e){var n=e.createSubContext(t.options);n.transformIntoNewTimeline(),this.visitReference(t.animation,n),e.transformIntoNewTimeline(n.currentTimeline.currentTime),e.previousNode=t},t.prototype._visitSubInstructions=function(t,e,n){var a=e.currentTimeline.currentTime,r=null!=n.duration?hg(n.duration):null,i=null!=n.delay?hg(n.delay):null;return 0!==r&&t.forEach(function(t){var n=e.appendInstructionToTimeline(t,r,i);a=Math.max(a,n.duration+n.delay)}),a},t.prototype.visitReference=function(t,e){e.updateOptions(t.options,!0),Eg(this,t.animation,e),e.previousNode=t},t.prototype.visitSequence=function(t,e){var n=this,a=e.subContextCount,r=e,i=t.options;if(i&&(i.params||i.delay)&&((r=e.createSubContext(i)).transformIntoNewTimeline(),null!=i.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=Xg);var o=hg(i.delay);r.delayNextStep(o)}t.steps.length&&(t.steps.forEach(function(t){return Eg(n,t,r)}),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>a&&r.transformIntoNewTimeline()),e.previousNode=t},t.prototype.visitGroup=function(t,e){var n=this,a=[],r=e.currentTimeline.currentTime,i=t.options&&t.options.delay?hg(t.options.delay):0;t.steps.forEach(function(o){var s=e.createSubContext(t.options);i&&s.delayNextStep(i),Eg(n,o,s),r=Math.max(r,s.currentTimeline.currentTime),a.push(s.currentTimeline)}),a.forEach(function(t){return e.currentTimeline.mergeTimelineCollectedStyles(t)}),e.transformIntoNewTimeline(r),e.previousNode=t},t.prototype._visitTiming=function(t,e){if(t.dynamic){var n=t.strValue;return mg(e.params?Ig(n,e.params,e.errors):n,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}},t.prototype.visitAnimate=function(t,e){var n=e.currentAnimateTimings=this._visitTiming(t.timings,e),a=e.currentTimeline;n.delay&&(e.incrementTime(n.delay),a.snapshotCurrentStyles());var r=t.style;5==r.type?this.visitKeyframes(r,e):(e.incrementTime(n.duration),this.visitStyle(r,e),a.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t},t.prototype.visitStyle=function(t,e){var n=e.currentTimeline,a=e.currentAnimateTimings;!a&&n.getCurrentStyleProperties().length&&n.forwardFrame();var r=a&&a.easing||t.easing;t.isEmptyStep?n.applyEmptyStep(r):n.setStyles(t.styles,r,e.errors,e.options),e.previousNode=t},t.prototype.visitKeyframes=function(t,e){var n=e.currentAnimateTimings,a=e.currentTimeline.duration,r=n.duration,i=e.createSubContext().currentTimeline;i.easing=n.easing,t.styles.forEach(function(t){i.forwardTime((t.offset||0)*r),i.setStyles(t.styles,t.easing,e.errors,e.options),i.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(i),e.transformIntoNewTimeline(a+r),e.previousNode=t},t.prototype.visitQuery=function(t,e){var n=this,a=e.currentTimeline.currentTime,r=t.options||{},i=r.delay?hg(r.delay):0;i&&(6===e.previousNode.type||0==a&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Xg);var o=a,s=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=s.length;var u=null;s.forEach(function(a,r){e.currentQueryIndex=r;var s=e.createSubContext(t.options,a);i&&s.delayNextStep(i),a===e.element&&(u=s.currentTimeline),Eg(n,t.animation,s),s.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,s.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(o),u&&(e.currentTimeline.mergeTimelineCollectedStyles(u),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t},t.prototype.visitStagger=function(t,e){var n=e.parentContext,a=e.currentTimeline,r=t.timings,i=Math.abs(r.duration),o=i*(e.currentQueryTotal-1),s=i*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":s=o-s;break;case"full":s=n.currentStaggerTime}var u=e.currentTimeline;s&&u.delayNextStep(s);var c=u.currentTime;Eg(this,t.animation,e),e.previousNode=t,n.currentStaggerTime=a.currentTime-c+(a.startTime-n.currentTimeline.startTime)},t}(),Xg={},Jg=function(){function t(t,e,n,a,r,i,o,s){this._driver=t,this.element=e,this.subInstructions=n,this._enterClassName=a,this._leaveClassName=r,this.errors=i,this.timelines=o,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Xg,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=s||new Qg(this._driver,e,0),o.push(this.currentTimeline)}return Object.defineProperty(t.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),t.prototype.updateOptions=function(t,e){var n=this;if(t){var a=t,r=this.options;null!=a.duration&&(r.duration=hg(a.duration)),null!=a.delay&&(r.delay=hg(a.delay));var i=a.params;if(i){var o=r.params;o||(o=this.options.params={}),Object.keys(i).forEach(function(t){e&&o.hasOwnProperty(t)||(o[t]=Ig(i[t],o,n.errors))})}}},t.prototype._copyOptions=function(){var t={};if(this.options){var e=this.options.params;if(e){var n=t.params={};Object.keys(e).forEach(function(t){n[t]=e[t]})}}return t},t.prototype.createSubContext=function(e,n,a){void 0===e&&(e=null);var r=n||this.element,i=new t(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,a||0));return i.previousNode=this.previousNode,i.currentAnimateTimings=this.currentAnimateTimings,i.options=this._copyOptions(),i.updateOptions(e),i.currentQueryIndex=this.currentQueryIndex,i.currentQueryTotal=this.currentQueryTotal,i.parentContext=this,this.subContextCount++,i},t.prototype.transformIntoNewTimeline=function(t){return this.previousNode=Xg,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline},t.prototype.appendInstructionToTimeline=function(t,e,n){var a={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+t.delay,easing:""},r=new tm(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,a,t.stretchStartingKeyframe);return this.timelines.push(r),a},t.prototype.incrementTime=function(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)},t.prototype.delayNextStep=function(t){t>0&&this.currentTimeline.delayNextStep(t)},t.prototype.invokeQuery=function(t,e,n,a,r,i){var o=[];if(a&&o.push(this.element),t.length>0){t=(t=t.replace(Wg,"."+this._enterClassName)).replace(Kg,"."+this._leaveClassName);var s=this._driver.query(this.element,t,1!=n);0!==n&&(s=n<0?s.slice(s.length+n,s.length):s.slice(0,n)),o.push.apply(o,Object(h.__spread)(s))}return r||0!=o.length||i.push('`query("'+e+'")` returned zero elements. (Use `query("'+e+'", { optional: true })` if you wish to allow this.)'),o},t}(),Qg=function(){function t(t,e,n,a){this._driver=t,this.element=e,this.startTime=n,this._elementTimelineStylesLookup=a,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}return t.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},t.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(t.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),t.prototype.delayNextStep=function(t){var e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t},t.prototype.fork=function(e,n){return this.applyStylesToKeyframe(),new t(this._driver,e,n||this.currentTime,this._elementTimelineStylesLookup)},t.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},t.prototype.forwardFrame=function(){this.duration+=1,this._loadKeyframe()},t.prototype.forwardTime=function(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()},t.prototype._updateStyle=function(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}},t.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},t.prototype.applyEmptyStep=function(t){var e=this;t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(function(t){e._backFill[t]=e._globalTimelineStyles[t]||Mu.a,e._currentKeyframe[t]=Mu.a}),this._currentEmptyStepKeyframe=this._currentKeyframe},t.prototype.setStyles=function(t,e,n,a){var r=this;e&&(this._previousKeyframe.easing=e);var i=a&&a.params||{},o=function(t,e){var n,a={};return t.forEach(function(t){"*"===t?(n=n||Object.keys(e)).forEach(function(t){a[t]=Mu.a}):yg(t,!1,a)}),a}(t,this._globalTimelineStyles);Object.keys(o).forEach(function(t){var e=Ig(o[t],i,n);r._pendingStyles[t]=e,r._localTimelineStyles.hasOwnProperty(t)||(r._backFill[t]=r._globalTimelineStyles.hasOwnProperty(t)?r._globalTimelineStyles[t]:Mu.a),r._updateStyle(t,e)})},t.prototype.applyStylesToKeyframe=function(){var t=this,e=this._pendingStyles,n=Object.keys(e);0!=n.length&&(this._pendingStyles={},n.forEach(function(n){t._currentKeyframe[n]=e[n]}),Object.keys(this._localTimelineStyles).forEach(function(e){t._currentKeyframe.hasOwnProperty(e)||(t._currentKeyframe[e]=t._localTimelineStyles[e])}))},t.prototype.snapshotCurrentStyles=function(){var t=this;Object.keys(this._localTimelineStyles).forEach(function(e){var n=t._localTimelineStyles[e];t._pendingStyles[e]=n,t._updateStyle(e,n)})},t.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(t.prototype,"properties",{get:function(){var t=[];for(var e in this._currentKeyframe)t.push(e);return t},enumerable:!0,configurable:!0}),t.prototype.mergeTimelineCollectedStyles=function(t){var e=this;Object.keys(t._styleSummary).forEach(function(n){var a=e._styleSummary[n],r=t._styleSummary[n];(!a||r.time>a.time)&&e._updateStyle(n,r.value)})},t.prototype.buildKeyframes=function(){var t=this;this.applyStylesToKeyframe();var e=new Set,n=new Set,a=1===this._keyframes.size&&0===this.duration,r=[];this._keyframes.forEach(function(i,o){var s=yg(i,!0);Object.keys(s).forEach(function(t){var a=s[t];a==Mu.l?e.add(t):a==Mu.a&&n.add(t)}),a||(s.offset=o/t.duration),r.push(s)});var i=e.size?Cg(e.values()):[],o=n.size?Cg(n.values()):[];if(a){var s=r[0],u=bg(s);s.offset=0,u.offset=1,r=[s,u]}return Bg(this.element,r,i,o,this.duration,this.startTime,this.easing,!1)},t}(),tm=function(t){function e(e,n,a,r,i,o,s){void 0===s&&(s=!1);var u=t.call(this,e,n,o.delay)||this;return u.element=n,u.keyframes=a,u.preStyleProps=r,u.postStyleProps=i,u._stretchStartingKeyframe=s,u.timings={duration:o.duration,delay:o.delay,easing:o.easing},u}return Object(h.__extends)(e,t),e.prototype.containsAnimation=function(){return this.keyframes.length>1},e.prototype.buildKeyframes=function(){var t=this.keyframes,e=this.timings,n=e.delay,a=e.duration,r=e.easing;if(this._stretchStartingKeyframe&&n){var i=[],o=a+n,s=n/o,u=yg(t[0],!1);u.offset=0,i.push(u);var c=yg(t[0],!1);c.offset=em(s),i.push(c);for(var l=t.length-1,d=1;d<=l;d++){var f=yg(t[d],!1);f.offset=em((n+f.offset*a)/o),i.push(f)}a=o,n=0,r="",t=i}return Bg(this.element,t,this.preStyleProps,this.postStyleProps,a,n,r,!0)},e}(Qg);function em(t,e){void 0===e&&(e=3);var n=Math.pow(10,e-1);return Math.round(t*n)/n}var nm=function(){return function(){}}(),am=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(h.__extends)(e,t),e.prototype.normalizePropertyName=function(t,e){return Ng(t)},e.prototype.normalizeStyleValue=function(t,e,n,a){var r="",i=n.toString().trim();if(rm[e]&&0!==n&&"0"!==n)if("number"==typeof n)r="px";else{var o=n.match(/^[+-]?[\d\.]+([a-z]*)$/);o&&0==o[1].length&&a.push("Please provide a CSS unit value for "+t+":"+n)}return i+r},e}(nm),rm=im("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","));function im(t){var e={};return t.forEach(function(t){return e[t]=!0}),e}function om(t,e,n,a,r,i,o,s,u,c,l,d,f){return{type:0,element:t,triggerName:e,isRemovalTransition:r,fromState:n,fromStyles:i,toState:a,toStyles:o,timelines:s,queriedElements:u,preStyleProps:c,postStyleProps:l,totalTime:d,errors:f}}var sm={},um=function(){function t(t,e,n){this._triggerName=t,this.ast=e,this._stateStyles=n}return t.prototype.match=function(t,e,n,a){return function(t,e,n,a,r){return t.some(function(t){return t(e,n,a,r)})}(this.ast.matchers,t,e,n,a)},t.prototype.buildStyles=function(t,e,n){var a=this._stateStyles["*"],r=this._stateStyles[t],i=a?a.buildStyles(e,n):{};return r?r.buildStyles(e,n):i},t.prototype.build=function(t,e,n,a,r,i,o,s,u,c){var l=[],d=this.ast.options&&this.ast.options.params||sm,f=this.buildStyles(n,o&&o.params||sm,l),p=s&&s.params||sm,g=this.buildStyles(a,p,l),m=new Set,b=new Map,y=new Map,v="void"===a,x={params:Object(h.__assign)({},d,p)},_=c?[]:$g(t,e,this.ast.animation,r,i,f,g,x,u,l),T=0;if(_.forEach(function(t){T=Math.max(t.duration+t.delay,T)}),l.length)return om(e,this._triggerName,n,a,v,f,g,[],[],b,y,T,l);_.forEach(function(t){var n=t.element,a=Zh(b,n,{});t.preStyleProps.forEach(function(t){return a[t]=!0});var r=Zh(y,n,{});t.postStyleProps.forEach(function(t){return r[t]=!0}),n!==e&&m.add(n)});var w=Cg(m.values());return om(e,this._triggerName,n,a,v,f,g,_,w,b,y,T)},t}(),cm=function(){function t(t,e){this.styles=t,this.defaultParams=e}return t.prototype.buildStyles=function(t,e){var n={},a=bg(this.defaultParams);return Object.keys(t).forEach(function(e){var n=t[e];null!=n&&(a[e]=n)}),this.styles.styles.forEach(function(t){if("string"!=typeof t){var r=t;Object.keys(r).forEach(function(t){var i=r[t];i.length>1&&(i=Ig(i,a,e)),n[t]=i})}}),n},t}(),lm=function(){function t(t,e){var n=this;this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach(function(t){n.states[t.name]=new cm(t.style,t.options&&t.options.params||{})}),dm(this.states,"true","1"),dm(this.states,"false","0"),e.transitions.forEach(function(e){n.transitionFactories.push(new um(t,e,n.states))}),this.fallbackTransition=new um(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(t,e){return!0}],options:null,queryCount:0,depCount:0},this.states)}return Object.defineProperty(t.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),t.prototype.matchTransition=function(t,e,n,a){return this.transitionFactories.find(function(r){return r.match(t,e,n,a)})||null},t.prototype.matchStyles=function(t,e,n){return this.fallbackTransition.buildStyles(t,e,n)},t}();function dm(t,e,n){t.hasOwnProperty(e)?t.hasOwnProperty(n)||(t[n]=t[e]):t.hasOwnProperty(n)&&(t[e]=t[n])}var fm=new Ug,pm=function(){function t(t,e,n){this.bodyNode=t,this._driver=e,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}return t.prototype.register=function(t,e){var n=[],a=Fg(this._driver,e,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[t]=a},t.prototype._buildPlayer=function(t,e,n){var a=t.element,r=Uh(0,this._normalizer,0,t.keyframes,e,n);return this._driver.animate(a,r,t.duration,t.delay,t.easing,[],!0)},t.prototype.create=function(t,e,n){var a=this;void 0===n&&(n={});var r,i=[],o=this._animations[t],s=new Map;if(o?(r=$g(this._driver,e,o,"ng-enter","ng-leave",{},{},n,fm,i)).forEach(function(t){var e=Zh(s,t.element,{});t.postStyleProps.forEach(function(t){return e[t]=null})}):(i.push("The requested animation doesn't exist or has already been destroyed"),r=[]),i.length)throw new Error("Unable to create the animation due to the following errors: "+i.join("\n"));s.forEach(function(t,e){Object.keys(t).forEach(function(n){t[n]=a._driver.computeStyle(e,n,Mu.a)})});var u=Bh(r.map(function(t){var e=s.get(t.element);return a._buildPlayer(t,{},e)}));return this._playersById[t]=u,u.onDestroy(function(){return a.destroy(t)}),this.players.push(u),u},t.prototype.destroy=function(t){var e=this._getPlayer(t);e.destroy(),delete this._playersById[t];var n=this.players.indexOf(e);n>=0&&this.players.splice(n,1)},t.prototype._getPlayer=function(t){var e=this._playersById[t];if(!e)throw new Error("Unable to find the timeline player referenced by "+t);return e},t.prototype.listen=function(t,e,n,a){var r=$h(e,"","","");return Wh(this._getPlayer(t),n,r,a),function(){}},t.prototype.command=function(t,e,n,a){if("register"!=n)if("create"!=n){var r=this._getPlayer(t);switch(n){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(a[0]));break;case"destroy":this.destroy(t)}}else this.create(t,e,a[0]||{});else this.register(t,a[0])},t}(),hm=[],gm={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},mm={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},bm="__ng_removed",ym=function(){function t(t,e){void 0===e&&(e=""),this.namespaceId=e;var n=t&&t.hasOwnProperty("value");if(this.value=function(t){return null!=t?t:null}(n?t.value:t),n){var a=bg(t);delete a.value,this.options=a}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(t.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),t.prototype.absorbOptions=function(t){var e=t.params;if(e){var n=this.options.params;Object.keys(e).forEach(function(t){null==n[t]&&(n[t]=e[t])})}},t}(),vm=new ym("void"),xm=function(){function t(t,e,n){this.id=t,this.hostElement=e,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,km(e,this._hostClassName)}return t.prototype.listen=function(t,e,n,a){var r,i=this;if(!this._triggers.hasOwnProperty(e))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+e+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+e+'" because the provided event is undefined!');if("start"!=(r=n)&&"done"!=r)throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+e+'" is not supported!');var o=Zh(this._elementListeners,t,[]),s={name:e,phase:n,callback:a};o.push(s);var u=Zh(this._engine.statesByElement,t,{});return u.hasOwnProperty(e)||(km(t,"ng-trigger"),km(t,"ng-trigger-"+e),u[e]=vm),function(){i._engine.afterFlush(function(){var t=o.indexOf(s);t>=0&&o.splice(t,1),i._triggers[e]||delete u[e]})}},t.prototype.register=function(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)},t.prototype._getTrigger=function(t){var e=this._triggers[t];if(!e)throw new Error('The provided animation trigger "'+t+'" has not been registered!');return e},t.prototype.trigger=function(t,e,n,a){var r=this;void 0===a&&(a=!0);var i=this._getTrigger(e),o=new Tm(this.id,e,t),s=this._engine.statesByElement.get(t);s||(km(t,"ng-trigger"),km(t,"ng-trigger-"+e),this._engine.statesByElement.set(t,s={}));var u=s[e],c=new ym(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&u&&c.absorbOptions(u.options),s[e]=c,u||(u=vm),"void"===c.value||u.value!==c.value){var l=Zh(this._engine.playersByElement,t,[]);l.forEach(function(t){t.namespaceId==r.id&&t.triggerName==e&&t.queued&&t.destroy()});var d=i.matchTransition(u.value,c.value,t,c.params),f=!1;if(!d){if(!a)return;d=i.fallbackTransition,f=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:d,fromState:u,toState:c,player:o,isFallbackTransition:f}),f||(km(t,"ng-animate-queued"),o.onStart(function(){Nm(t,"ng-animate-queued")})),o.onDone(function(){var e=r.players.indexOf(o);e>=0&&r.players.splice(e,1);var n=r._engine.playersByElement.get(t);if(n){var a=n.indexOf(o);a>=0&&n.splice(a,1)}}),this.players.push(o),l.push(o),o}if(!function(t,e){var n=Object.keys(t),a=Object.keys(e);if(n.length!=a.length)return!1;for(var r=0;r=0){for(var a=!1,r=n;r>=0;r--)if(this.driver.containsElement(this._namespaceList[r].hostElement,e)){this._namespaceList.splice(r+1,0,t),a=!0;break}a||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t},t.prototype.register=function(t,e){var n=this._namespaceLookup[t];return n||(n=this.createNamespace(t,e)),n},t.prototype.registerTrigger=function(t,e,n){var a=this._namespaceLookup[t];a&&a.register(e,n)&&this.totalAnimations++},t.prototype.destroy=function(t,e){var n=this;if(t){var a=this._fetchNamespace(t);this.afterFlush(function(){n.namespacesByHostElement.delete(a.hostElement),delete n._namespaceLookup[t];var e=n._namespaceList.indexOf(a);e>=0&&n._namespaceList.splice(e,1)}),this.afterFlushAnimationsDone(function(){return a.destroy(e)})}},t.prototype._fetchNamespace=function(t){return this._namespaceLookup[t]},t.prototype.fetchNamespacesByElement=function(t){var e=new Set,n=this.statesByElement.get(t);if(n)for(var a=Object.keys(n),r=0;r=0&&this.collectedLeaveElements.splice(i,1)}if(t){var o=this._fetchNamespace(t);o&&o.insertNode(e,n)}a&&this.collectEnterElement(e)}},t.prototype.collectEnterElement=function(t){this.collectedEnterElements.push(t)},t.prototype.markElementAsDisabled=function(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),km(t,"ng-animate-disabled")):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Nm(t,"ng-animate-disabled"))},t.prototype.removeNode=function(t,e,n){if(wm(e)){var a=t?this._fetchNamespace(t):null;a?a.removeNode(e,n):this.markElementAsRemoved(t,e,!1,n)}else this._onRemovalComplete(e,n)},t.prototype.markElementAsRemoved=function(t,e,n,a){this.collectedLeaveElements.push(e),e[bm]={namespaceId:t,setForRemoval:a,hasAnimation:n,removedBeforeQueried:!1}},t.prototype.listen=function(t,e,n,a,r){return wm(e)?this._fetchNamespace(t).listen(e,n,a,r):function(){}},t.prototype._buildInstruction=function(t,e,n,a,r){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,n,a,t.fromState.options,t.toState.options,e,r)},t.prototype.destroyInnerAnimations=function(t){var e=this,n=this.driver.query(t,".ng-trigger",!0);n.forEach(function(t){return e.destroyActiveAnimationsForElement(t)}),0!=this.playersByQueriedElement.size&&(n=this.driver.query(t,".ng-animating",!0)).forEach(function(t){return e.finishActiveQueriedAnimationOnElement(t)})},t.prototype.destroyActiveAnimationsForElement=function(t){var e=this.playersByElement.get(t);e&&e.forEach(function(t){t.queued?t.markedForDestroy=!0:t.destroy()})},t.prototype.finishActiveQueriedAnimationOnElement=function(t){var e=this.playersByQueriedElement.get(t);e&&e.forEach(function(t){return t.finish()})},t.prototype.whenRenderingDone=function(){var t=this;return new Promise(function(e){if(t.players.length)return Bh(t.players).onDone(function(){return e()});e()})},t.prototype.processLeaveNode=function(t){var e=this,n=t[bm];if(n&&n.setForRemoval){if(t[bm]=gm,n.namespaceId){this.destroyInnerAnimations(t);var a=this._fetchNamespace(n.namespaceId);a&&a.clearElementCache(t)}this._onRemovalComplete(t,n.setForRemoval)}this.driver.matchesElement(t,".ng-animate-disabled")&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(function(t){e.markElementAsDisabled(t,!1)})},t.prototype.flush=function(t){var e=this;void 0===t&&(t=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(t,n){return e._balanceNamespaceList(t,n)}),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var a=0;a=0;O--)this._namespaceList[O].drainQueuedTransitions(e).forEach(function(t){var e=t.player,i=t.element;if(w.push(e),n.collectedEnterElements.length){var l=i[bm];if(l&&l.setForMove)return void e.destroy()}var f=!d||!n.driver.containsElement(d,i),p=_.get(i),h=g.get(i),m=n._buildInstruction(t,a,h,p,f);if(m.errors&&m.errors.length)S.push(m);else{if(f)return e.onStart(function(){return Tg(i,m.fromStyles)}),e.onDestroy(function(){return _g(i,m.toStyles)}),void r.push(e);if(t.isFallbackTransition)return e.onStart(function(){return Tg(i,m.fromStyles)}),e.onDestroy(function(){return _g(i,m.toStyles)}),void r.push(e);m.timelines.forEach(function(t){return t.stretchStartingKeyframe=!0}),a.append(i,m.timelines),o.push({instruction:m,player:e,element:i}),m.queriedElements.forEach(function(t){return Zh(s,t,[]).push(e)}),m.preStyleProps.forEach(function(t,e){var n=Object.keys(t);if(n.length){var a=u.get(e);a||u.set(e,a=new Set),n.forEach(function(t){return a.add(t)})}}),m.postStyleProps.forEach(function(t,e){var n=Object.keys(t),a=c.get(e);a||c.set(e,a=new Set),n.forEach(function(t){return a.add(t)})})}});if(S.length){var I=[];S.forEach(function(t){I.push("@"+t.triggerName+" has failed due to:\n"),t.errors.forEach(function(t){return I.push("- "+t+"\n")})}),w.forEach(function(t){return t.destroy()}),this.reportError(I)}var C=new Map,k=new Map;o.forEach(function(t){var e=t.element;a.has(e)&&(k.set(e,e),n._beforeAnimationBuild(t.player.namespaceId,t.instruction,C))}),r.forEach(function(t){var e=t.element;n._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach(function(t){Zh(C,e,[]).push(t),t.destroy()})});var N=b.filter(function(t){return Am(t,u,c)}),R=new Map;Om(R,this.driver,v,c,Mu.a).forEach(function(t){Am(t,u,c)&&N.push(t)});var A=new Map;p.forEach(function(t,e){Om(A,n.driver,new Set(t),u,Mu.l)}),N.forEach(function(t){var e=R.get(t),n=A.get(t);R.set(t,Object(h.__assign)({},e,n))});var E=[],D=[],L={};o.forEach(function(t){var e=t.element,o=t.player,s=t.instruction;if(a.has(e)){if(l.has(e))return o.onDestroy(function(){return _g(e,s.toStyles)}),o.disabled=!0,o.overrideTotalTime(s.totalTime),void r.push(o);var u=L;if(k.size>1){for(var c=e,d=[];c=c.parentNode;){var f=k.get(c);if(f){u=f;break}d.push(c)}d.forEach(function(t){return k.set(t,u)})}var p=n._buildAnimation(o.namespaceId,s,C,i,A,R);if(o.setRealPlayer(p),u===L)E.push(o);else{var h=n.playersByElement.get(u);h&&h.length&&(o.parentPlayer=Bh(h)),r.push(o)}}else Tg(e,s.fromStyles),o.onDestroy(function(){return _g(e,s.toStyles)}),D.push(o),l.has(e)&&r.push(o)}),D.forEach(function(t){var e=i.get(t.element);if(e&&e.length){var n=Bh(e);t.setRealPlayer(n)}}),r.forEach(function(t){t.parentPlayer?t.syncPlayerEvents(t.parentPlayer):t.destroy()});for(var P=0;P0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,n):new Mu.d(t.duration,t.delay)},t}(),Tm=function(){function t(t,e,n){this.namespaceId=t,this.triggerName=e,this.element=n,this._player=new Mu.d,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}return t.prototype.setRealPlayer=function(t){var e=this;this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(function(n){e._queuedCallbacks[n].forEach(function(e){return Wh(t,n,void 0,e)})}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)},t.prototype.getRealPlayer=function(){return this._player},t.prototype.overrideTotalTime=function(t){this.totalTime=t},t.prototype.syncPlayerEvents=function(t){var e=this,n=this._player;n.triggerCallback&&t.onStart(function(){return n.triggerCallback("start")}),t.onDone(function(){return e.finish()}),t.onDestroy(function(){return e.destroy()})},t.prototype._queueEvent=function(t,e){Zh(this._queuedCallbacks,t,[]).push(e)},t.prototype.onDone=function(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)},t.prototype.onStart=function(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)},t.prototype.onDestroy=function(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)},t.prototype.init=function(){this._player.init()},t.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},t.prototype.play=function(){!this.queued&&this._player.play()},t.prototype.pause=function(){!this.queued&&this._player.pause()},t.prototype.restart=function(){!this.queued&&this._player.restart()},t.prototype.finish=function(){this._player.finish()},t.prototype.destroy=function(){this.destroyed=!0,this._player.destroy()},t.prototype.reset=function(){!this.queued&&this._player.reset()},t.prototype.setPosition=function(t){this.queued||this._player.setPosition(t)},t.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},t.prototype.triggerCallback=function(t){var e=this._player;e.triggerCallback&&e.triggerCallback(t)},t}();function wm(t){return t&&1===t.nodeType}function Sm(t,e){var n=t.style.display;return t.style.display=null!=e?e:"none",n}function Om(t,e,n,a,r){var i=[];n.forEach(function(t){return i.push(Sm(t))});var o=[];a.forEach(function(n,a){var i={};n.forEach(function(t){var n=i[t]=e.computeStyle(a,t,r);n&&0!=n.length||(a[bm]=mm,o.push(a))}),t.set(a,i)});var s=0;return n.forEach(function(t){return Sm(t,i[s++])}),o}function Im(t,e){var n=new Map;if(t.forEach(function(t){return n.set(t,[])}),0==e.length)return n;var a=new Set(e),r=new Map;return e.forEach(function(t){var e=function t(e){if(!e)return 1;var i=r.get(e);if(i)return i;var o=e.parentNode;return i=n.has(o)?o:a.has(o)?1:t(o),r.set(e,i),i}(t);1!==e&&n.get(e).push(t)}),n}var Cm="$$classes";function km(t,e){if(t.classList)t.classList.add(e);else{var n=t[Cm];n||(n=t[Cm]={}),n[e]=!0}}function Nm(t,e){if(t.classList)t.classList.remove(e);else{var n=t[Cm];n&&delete n[e]}}function Rm(t,e,n){Bh(n).onDone(function(){return t.processLeaveNode(e)})}function Am(t,e,n){var a=n.get(t);if(!a)return!1;var r=e.get(t);return r?a.forEach(function(t){return r.add(t)}):e.set(t,a),n.delete(t),!0}var Em=function(){function t(t,e,n){var a=this;this.bodyNode=t,this._driver=e,this._triggerCache={},this.onRemovalComplete=function(t,e){},this._transitionEngine=new _m(t,e,n),this._timelineEngine=new pm(t,e,n),this._transitionEngine.onRemovalComplete=function(t,e){return a.onRemovalComplete(t,e)}}return t.prototype.registerTrigger=function(t,e,n,a,r){var i=t+"-"+a,o=this._triggerCache[i];if(!o){var s=[],u=Fg(this._driver,r,s);if(s.length)throw new Error('The animation trigger "'+a+'" has failed to build due to the following errors:\n - '+s.join("\n - "));o=function(t,e){return new lm(t,e)}(a,u),this._triggerCache[i]=o}this._transitionEngine.registerTrigger(e,a,o)},t.prototype.register=function(t,e){this._transitionEngine.register(t,e)},t.prototype.destroy=function(t,e){this._transitionEngine.destroy(t,e)},t.prototype.onInsert=function(t,e,n,a){this._transitionEngine.insertNode(t,e,n,a)},t.prototype.onRemove=function(t,e,n){this._transitionEngine.removeNode(t,e,n)},t.prototype.disableAnimations=function(t,e){this._transitionEngine.markElementAsDisabled(t,e)},t.prototype.process=function(t,e,n,a){if("@"==n.charAt(0)){var r=Object(h.__read)(Xh(n),2);this._timelineEngine.command(r[0],e,r[1],a)}else this._transitionEngine.trigger(t,e,n,a)},t.prototype.listen=function(t,e,n,a,r){if("@"==n.charAt(0)){var i=Object(h.__read)(Xh(n),2);return this._timelineEngine.listen(i[0],e,i[1],r)}return this._transitionEngine.listen(t,e,n,a,r)},t.prototype.flush=function(t){void 0===t&&(t=-1),this._transitionEngine.flush(t)},Object.defineProperty(t.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),t.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},t}(),Dm="animation",Lm="animationend",Pm=function(){function t(t,e,n,a,r,i,o){var s=this;this._element=t,this._name=e,this._duration=n,this._delay=a,this._easing=r,this._fillMode=i,this._onDoneFn=o,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=function(t){return s._handleCallback(t)}}return t.prototype.apply=function(){var t,e,n;e=this._duration+"ms "+this._easing+" "+this._delay+"ms 1 normal "+this._fillMode+" "+this._name,(n=Gm(t=this._element,"").trim()).length&&(function(t,e){for(var n=0;n=this._delay&&n>=this._duration&&this.finish()},t.prototype.finish=function(){this._finished||(this._finished=!0,this._onDoneFn(),Fm(this._element,this._eventFn,!0))},t.prototype.destroy=function(){var t,e,n,a;this._destroyed||(this._destroyed=!0,this.finish(),e=this._name,(a=jm(n=Gm(t=this._element,"").split(","),e))>=0&&(n.splice(a,1),zm(t,"",n.join(","))))},t}();function Mm(t,e,n){zm(t,"PlayState",n,qm(t,e))}function qm(t,e){var n=Gm(t,"");return n.indexOf(",")>0?jm(n.split(","),e):jm([n],e)}function jm(t,e){for(var n=0;n=0)return n;return-1}function Fm(t,e,n){n?t.removeEventListener(Lm,e):t.addEventListener(Lm,e)}function zm(t,e,n,a){var r=Dm+e;if(null!=a){var i=t.style[r];if(i.length){var o=i.split(",");o[a]=n,n=o.join(",")}}t.style[r]=n}function Gm(t,e){return t.style[Dm+e]}var Ym="linear",Vm=function(){function t(t,e,n,a,r,i,o){this.element=t,this.keyframes=e,this.animationName=n,this._duration=a,this._delay=r,this._finalStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=i||Ym,this.totalTime=a+r,this._buildStyler()}return t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.destroy=function(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype._flushDoneFns=function(){this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[]},t.prototype._flushStartFns=function(){this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]},t.prototype.finish=function(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._flushDoneFns())},t.prototype.setPosition=function(t){this._styler.setPosition(t)},t.prototype.getPosition=function(){return this._styler.getPosition()},t.prototype.hasStarted=function(){return this._state>=2},t.prototype.init=function(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())},t.prototype.play=function(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2),this._styler.resume()},t.prototype.pause=function(){this.init(),this._styler.pause()},t.prototype.restart=function(){this.reset(),this.play()},t.prototype.reset=function(){this._styler.destroy(),this._buildStyler(),this._styler.apply()},t.prototype._buildStyler=function(){var t=this;this._styler=new Pm(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",function(){return t.finish()})},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t.prototype.beforeDestroy=function(){var t=this;this.init();var e={};if(this.hasStarted()){var n=this._state>=3;Object.keys(this._finalStyles).forEach(function(a){"offset"!=a&&(e[a]=n?t._finalStyles[a]:Dg(t.element,a))})}this.currentSnapshot=e},t}(),Hm=function(t){function e(e,n){var a=t.call(this)||this;return a.element=e,a._startingStyles={},a.__initialized=!1,a._styles=lg(n),a}return Object(h.__extends)(e,t),e.prototype.init=function(){var e=this;!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach(function(t){e._startingStyles[t]=e.element.style[t]}),t.prototype.init.call(this))},e.prototype.play=function(){var e=this;this._startingStyles&&(this.init(),Object.keys(this._styles).forEach(function(t){return e.element.style.setProperty(t,e._styles[t])}),t.prototype.play.call(this))},e.prototype.destroy=function(){var e=this;this._startingStyles&&(Object.keys(this._startingStyles).forEach(function(t){var n=e._startingStyles[t];n?e.element.style.setProperty(t,n):e.element.style.removeProperty(t)}),this._startingStyles=null,t.prototype.destroy.call(this))},e}(Mu.d),Bm=function(){function t(){this._count=0,this._head=document.querySelector("head"),this._warningIssued=!1}return t.prototype.validateStyleProperty=function(t){return og(t)},t.prototype.matchesElement=function(t,e){return sg(t,e)},t.prototype.containsElement=function(t,e){return ug(t,e)},t.prototype.query=function(t,e,n){return cg(t,e,n)},t.prototype.computeStyle=function(t,e,n){return window.getComputedStyle(t)[e]},t.prototype.buildKeyframeElement=function(t,e,n){n=n.map(function(t){return lg(t)});var a="@keyframes "+e+" {\n",r="";n.forEach(function(t){r=" ";var e=parseFloat(t.offset);a+=""+r+100*e+"% {\n",r+=" ",Object.keys(t).forEach(function(e){var n=t[e];switch(e){case"offset":return;case"easing":return void(n&&(a+=r+"animation-timing-function: "+n+";\n"));default:return void(a+=""+r+e+": "+n+";\n")}}),a+=r+"}\n"}),a+="}\n";var i=document.createElement("style");return i.innerHTML=a,i},t.prototype.animate=function(t,e,n,a,r,i,o){void 0===i&&(i=[]),o&&this._notifyFaultyScrubber();var s=i.filter(function(t){return t instanceof Vm}),u={};Rg(n,a)&&s.forEach(function(t){var e=t.currentSnapshot;Object.keys(e).forEach(function(t){return u[t]=e[t]})});var c=function(t){var e={};return t&&(Array.isArray(t)?t:[t]).forEach(function(t){Object.keys(t).forEach(function(n){"offset"!=n&&"easing"!=n&&(e[n]=t[n])})}),e}(e=Ag(t,e,u));if(0==n)return new Hm(t,c);var l="gen_css_kf_"+this._count++,d=this.buildKeyframeElement(t,l,e);document.querySelector("head").appendChild(d);var f=new Vm(t,e,l,n,a,r,c);return f.onDestroy(function(){var t;(t=d).parentNode.removeChild(t)}),f},t.prototype._notifyFaultyScrubber=function(){this._warningIssued||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n"," visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),this._warningIssued=!0)},t}(),Um=function(){function t(t,e,n){this.element=t,this.keyframes=e,this.options=n,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},t.prototype._buildPlayer=function(){var t=this;if(!this._initialized){this._initialized=!0;var e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:{},this.domPlayer.addEventListener("finish",function(){return t._onFinish()})}},t.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()},t.prototype._triggerWebAnimation=function(t,e,n){return t.animate(e,n)},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0),this.domPlayer.play()},t.prototype.pause=function(){this.init(),this.domPlayer.pause()},t.prototype.finish=function(){this.init(),this._onFinish(),this.domPlayer.finish()},t.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},t.prototype._resetDomPlayerState=function(){this.domPlayer&&this.domPlayer.cancel()},t.prototype.restart=function(){this.reset(),this.play()},t.prototype.hasStarted=function(){return this._started},t.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.setPosition=function(t){this.domPlayer.currentTime=t*this.time},t.prototype.getPosition=function(){return this.domPlayer.currentTime/this.time},Object.defineProperty(t.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),t.prototype.beforeDestroy=function(){var t=this,e={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(e[n]=t._finished?t._finalKeyframe[n]:Dg(t.element,n))}),this.currentSnapshot=e},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),Wm=function(){function t(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(Km().toString()),this._cssKeyframesDriver=new Bm}return t.prototype.validateStyleProperty=function(t){return og(t)},t.prototype.matchesElement=function(t,e){return sg(t,e)},t.prototype.containsElement=function(t,e){return ug(t,e)},t.prototype.query=function(t,e,n){return cg(t,e,n)},t.prototype.computeStyle=function(t,e,n){return window.getComputedStyle(t)[e]},t.prototype.overrideWebAnimationsSupport=function(t){this._isNativeImpl=t},t.prototype.animate=function(t,e,n,a,r,i,o){if(void 0===i&&(i=[]),!o&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(t,e,n,a,r,i);var s={duration:n,delay:a,fill:0==a?"both":"forwards"};r&&(s.easing=r);var u={},c=i.filter(function(t){return t instanceof Um});return Rg(n,a)&&c.forEach(function(t){var e=t.currentSnapshot;Object.keys(e).forEach(function(t){return u[t]=e[t]})}),e=Ag(t,e=e.map(function(t){return yg(t,!1)}),u),new Um(t,e,s)},t}();function Km(){return"undefined"!=typeof window&&void 0!==window.document&&Element.prototype.animate||{}}var $m=function(t){function e(e,n){var a=t.call(this)||this;return a._nextAnimationId=0,a._renderer=e.createRenderer(n.body,{id:"0",encapsulation:o.ViewEncapsulation.None,styles:[],data:{animation:[]}}),a}return Object(h.__extends)(e,t),e.prototype.build=function(t){var e=this._nextAnimationId.toString();this._nextAnimationId++;var n=Array.isArray(t)?Object(Mu.f)(t):t;return Jm(this._renderer,null,e,"register",[n]),new Zm(e,this._renderer)},e}(Mu.b),Zm=function(t){function e(e,n){var a=t.call(this)||this;return a._id=e,a._renderer=n,a}return Object(h.__extends)(e,t),e.prototype.create=function(t,e){return new Xm(this._id,t,e||{},this._renderer)},e}(Mu.c),Xm=function(){function t(t,e,n,a){this.id=t,this.element=e,this._renderer=a,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}return t.prototype._listen=function(t,e){return this._renderer.listen(this.element,"@@"+this.id+":"+t,e)},t.prototype._command=function(t){for(var e=[],n=1;n=0&&t0&&t.WHITELIST.includes(e.url[0].path))return Object(pc.a)(!0);var a=e.data.moduleStatusGuardConfig;return this.http.get("api/"+a.apiPath+"/status").pipe(Object(Hi.a)(function(t){return t.available||n.router.navigate([a.redirectTo,t.message||""]),t.available}),Object(Yh.a)(function(){return n.router.navigate([a.redirectTo]),Object(pc.a)(!1)}))},t.WHITELIST=["501"],t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c),o.inject(et.l))},token:t,providedIn:"root"}),t}(),db=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h.__extends(e,t),e.prototype.resolve=function(t){var e=[],n=t.queryParams.fromLink||null,a="";switch(n){case"/monitor":a="Monitors";break;case"/hosts":a="Hosts"}return e.push({text:"Cluster",path:null}),e.push({text:a,path:n}),e.push({text:"Performance Counters",path:""}),e},e}(wh),fb=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h.__extends(e,t),e.prototype.resolve=function(t){var e=t.params.name;return[{text:pt.startCase(e),path:e}]},e}(wh),pb={breadcrumbs:"Cluster/Hosts"},hb={breadcrumbs:"Cluster/Monitors"},gb={breadcrumbs:"Cluster/OSDs"},mb={breadcrumbs:"Cluster/Configuration"},bb={breadcrumbs:$n.a.EDIT},yb={breadcrumbs:"Cluster/CRUSH map"},vb={breadcrumbs:"Cluster/Logs"},xb={breadcrumbs:"Cluster/Monitoring"},_b={breadcrumbs:$n.a.CREATE+" Silence"},Tb={breadcrumbs:$n.a.CREATE},wb={breadcrumbs:$n.a.EDIT},Sb={breadcrumbs:$n.a.RECREATE},Ob={breadcrumbs:db},Ib={breadcrumbs:"Cluster/Manager modules"},Cb={breadcrumbs:fb},kb={breadcrumbs:"Pools"},Nb={breadcrumbs:!0,text:"Block",path:null},Rb={breadcrumbs:"Filesystems"},Ab={moduleStatusGuardConfig:{apiPath:"rgw",redirectTo:"rgw/501"},breadcrumbs:!0,text:"Object Gateway",path:null},Eb={breadcrumbs:"User management",path:null},Db={breadcrumbs:"NFS"},Lb={moduleStatusGuardConfig:{apiPath:"nfs-ganesha",redirectTo:"nfs/501"},breadcrumbs:"NFS"},Pb={breadcrumbs:$n.a.CREATE},Mb={breadcrumbs:$n.a.EDIT},qb=function(){return function(){}}(),jb=n("IzCI"),Fb=n("Dwqy"),zb=n("uYzU"),Gb=n("uhwM"),Yb=n("nSDx"),Vb=n("SB+Q"),Hb=n("BQkM"),Bb=n("dEH0"),Ub=n("G1/K"),Wb=n("TJUb"),Kb=n("lTVp"),$b=n("FO+L"),Zb=n("nhM1"),Xb=n("BARL"),Jb=n("JZ5S"),Qb=n("Da1D"),ty=function(){return function(){this.closeOthers=!1,this.isAnimated=!1}}(),ey=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[ty]}},t}(),ny=function(){function t(t){this.http=t}return t.prototype.jsError=function(t,e,n){return this.http.post("ui-api/logging/js-error",{url:t,message:e,stack:n})},t.ngInjectableDef=o.defineInjectable({factory:function(){return new t(o.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),ay=function(){function t(t){this.injector=t}return t.prototype.handleError=function(t){var e=this.injector.get(ny),n=window.location.href;throw e.jsError(n,t&&t.message,t&&t.stack).subscribe(),t},t}(),ry=n("9Xeq"),iy=n("yGOH"),oy=n("V/fk"),sy=n("F8xH"),uy=n("ChqD"),cy=n("PCNd"),ly=n("LceX"),dy=function(){return function(){}}(),fy=function(){return function(){}}(),py=n("G6Q+"),hy=n("STEd"),gy=function(){return function(){}}(),my=function(){return function(){}}(),by=n("kJI8"),yy=function(){return function(){}}(),vy=function(){return function(){}}(),xy=function(){return function(){}}(),_y=function(){return function(){}}(),Ty=function(){function t(t){if(t)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}return t.forRoot=function(e){return{ngModule:t,providers:[{provide:Nt.a,useClass:zh,multi:!0},e.jwtOptionsProvider||{provide:Mh,useValue:e.config},qh]}},t}(),wy=o["\u0275cmf"](c,[p],function(t){return o["\u0275mod"]([o["\u0275mpd"](512,o.ComponentFactoryResolver,o["\u0275CodegenComponentFactoryResolver"],[[8,[N,q,K,$.a,Le,on,hn,ka,Wa,mr,Cr,Yi,Io,Xo,ns,ps,Ys,fu,bu,Lu,Cl,Dl,nd,sd,fd,pd.a,hd.a,gd.a,md.a,bd.a,bd.b,yd.a,vd.a,xd.a,Cd,kd.a,kd.c,kd.b,Hd,Un,Jd,of,xf,Cf,Wf,ap,Ph]],[3,o.ComponentFactoryResolver],o.NgModuleRef]),o["\u0275mpd"](4608,Nt.j,Nt.p,[i.DOCUMENT,o.PLATFORM_ID,Nt.n]),o["\u0275mpd"](4608,Nt.q,Nt.q,[Nt.j,Nt.o]),o["\u0275mpd"](4608,qh,qh,[Mh]),o["\u0275mpd"](4608,d.a,d.a,[]),o["\u0275mpd"](5120,Nt.a,function(t,e,n,a,r,i){return[t,new zh(e,n),new Vh(a,r,i)]},[Nt.q,Mh,qh,et.l,d.a,Xn.a]),o["\u0275mpd"](4608,Nt.m,Nt.m,[]),o["\u0275mpd"](6144,Nt.k,null,[Nt.m]),o["\u0275mpd"](4608,Nt.i,Nt.i,[Nt.k]),o["\u0275mpd"](6144,Nt.b,null,[Nt.i]),o["\u0275mpd"](4608,Nt.g,Nt.l,[Nt.b,o.Injector]),o["\u0275mpd"](4608,Nt.c,Nt.c,[Nt.g]),o["\u0275mpd"](4352,o.LOCALE_ID,"en-US",[]),o["\u0275mpd"](4608,i.NgLocalization,i.NgLocaleLocalization,[o.LOCALE_ID,[2,i["\u0275angular_packages_common_common_a"]]]),o["\u0275mpd"](5120,o.APP_ID,o["\u0275angular_packages_core_core_h"],[]),o["\u0275mpd"](5120,o.IterableDiffers,o["\u0275angular_packages_core_core_q"],[]),o["\u0275mpd"](5120,o.KeyValueDiffers,o["\u0275angular_packages_core_core_r"],[]),o["\u0275mpd"](4608,je.DomSanitizer,je["\u0275DomSanitizerImpl"],[i.DOCUMENT]),o["\u0275mpd"](6144,o.Sanitizer,null,[je.DomSanitizer]),o["\u0275mpd"](4608,je.HAMMER_GESTURE_CONFIG,je.HammerGestureConfig,[]),o["\u0275mpd"](5120,je.EVENT_MANAGER_PLUGINS,function(t,e,n,a,r,i,o,s){return[new je["\u0275DomEventsPlugin"](t,e,n),new je["\u0275KeyEventsPlugin"](a),new je["\u0275HammerGesturesPlugin"](r,i,o,s)]},[i.DOCUMENT,o.NgZone,o.PLATFORM_ID,i.DOCUMENT,i.DOCUMENT,je.HAMMER_GESTURE_CONFIG,o["\u0275Console"],[2,je.HAMMER_LOADER]]),o["\u0275mpd"](4608,je.EventManager,je.EventManager,[je.EVENT_MANAGER_PLUGINS,o.NgZone]),o["\u0275mpd"](135680,je["\u0275DomSharedStylesHost"],je["\u0275DomSharedStylesHost"],[i.DOCUMENT]),o["\u0275mpd"](4608,je["\u0275DomRendererFactory2"],je["\u0275DomRendererFactory2"],[je.EventManager,je["\u0275DomSharedStylesHost"]]),o["\u0275mpd"](5120,fg,ab,[]),o["\u0275mpd"](5120,nm,rb,[]),o["\u0275mpd"](4608,Em,nb,[i.DOCUMENT,fg,nm]),o["\u0275mpd"](5120,o.RendererFactory2,ib,[je["\u0275DomRendererFactory2"],Em,o.NgZone]),o["\u0275mpd"](6144,je["\u0275SharedStylesHost"],null,[je["\u0275DomSharedStylesHost"]]),o["\u0275mpd"](4608,o.Testability,o.Testability,[o.NgZone]),o["\u0275mpd"](4608,Mu.b,$m,[o.RendererFactory2,je.DOCUMENT]),o["\u0275mpd"](5120,et.a,et.B,[et.l]),o["\u0275mpd"](4608,et.f,et.f,[]),o["\u0275mpd"](6144,et.g,null,[et.f]),o["\u0275mpd"](135680,et.r,et.r,[et.l,o.NgModuleFactoryLoader,o.Compiler,o.Injector,et.g]),o["\u0275mpd"](4608,et.e,et.e,[]),o["\u0275mpd"](5120,et.F,et.x,[et.l,i.ViewportScroller,et.h]),o["\u0275mpd"](5120,et.i,et.E,[et.C]),o["\u0275mpd"](5120,o.APP_BOOTSTRAP_LISTENER,function(t){return[t]},[et.i]),o["\u0275mpd"](4608,fb,fb,[]),o["\u0275mpd"](4608,db,db,[]),o["\u0275mpd"](4608,we.E,we.E,[]),o["\u0275mpd"](4608,we.h,we.h,[]),o["\u0275mpd"](5120,o.TRANSLATIONS,u,[o.LOCALE_ID]),o["\u0275mpd"](4608,Tt.a,Tt.a,[o.TRANSLATIONS_FORMAT,o.TRANSLATIONS,o.LOCALE_ID,[2,Tt.b]]),o["\u0275mpd"](4608,Ra.a,Ra.a,[Tt.a]),o["\u0275mpd"](4608,i.DatePipe,i.DatePipe,[o.LOCALE_ID]),o["\u0275mpd"](4608,$e.a,$e.a,[]),o["\u0275mpd"](4608,ze.a,ze.a,[]),o["\u0275mpd"](4608,Ct.a,Ct.a,[]),o["\u0275mpd"](4608,gt.a,gt.a,[Ct.a]),o["\u0275mpd"](4608,jb.a,jb.a,[Ct.a]),o["\u0275mpd"](4608,mt.a,mt.a,[Ct.a]),o["\u0275mpd"](4608,Fb.a,Fb.a,[]),o["\u0275mpd"](4608,zb.a,zb.a,[]),o["\u0275mpd"](4608,Gb.a,Gb.a,[]),o["\u0275mpd"](4608,Oi.a,Oi.a,[]),o["\u0275mpd"](4608,Sn.a,Sn.a,[i.DatePipe]),o["\u0275mpd"](4608,Yb.a,Yb.a,[]),o["\u0275mpd"](4608,Vb.a,Vb.a,[]),o["\u0275mpd"](4608,nc.a,nc.a,[]),o["\u0275mpd"](4608,Hb.a,Hb.a,[]),o["\u0275mpd"](4608,Bb.a,Bb.a,[]),o["\u0275mpd"](4608,Ub.a,Ub.a,[Tt.a]),o["\u0275mpd"](4608,No.a,No.a,[]),o["\u0275mpd"](4608,Wb.a,Wb.a,[]),o["\u0275mpd"](4608,Kb.b,Kb.b,[]),o["\u0275mpd"](4608,J.a,J.a,[]),o["\u0275mpd"](4608,tt.a,tt.a,[o.RendererFactory2,o.PLATFORM_ID]),o["\u0275mpd"](4608,Q.a,Q.a,[o.ComponentFactoryResolver,o.NgZone,o.Injector,tt.a,o.ApplicationRef]),o["\u0275mpd"](4608,l.a,l.a,[]),o["\u0275mpd"](4608,fa.b,fa.b,[o.RendererFactory2,Q.a]),o["\u0275mpd"](4608,$b.ScrollbarHelper,$b.ScrollbarHelper,[je.DOCUMENT]),o["\u0275mpd"](4608,Zb.DimensionsHelper,Zb.DimensionsHelper,[]),o["\u0275mpd"](4608,Xb.ColumnChangesService,Xb.ColumnChangesService,[]),o["\u0275mpd"](4608,gn.f,gn.f,[]),o["\u0275mpd"](4608,ub.a,ub.a,[et.l,d.a]),o["\u0275mpd"](4608,X.e,X.e,[]),o["\u0275mpd"](4608,vr.NodeDraggableService,vr.NodeDraggableService,[]),o["\u0275mpd"](4608,Jb.NodeMenuService,Jb.NodeMenuService,[]),o["\u0275mpd"](4608,yr.TreeService,yr.TreeService,[vr.NodeDraggableService]),o["\u0275mpd"](4608,kr.r,kr.r,[]),o["\u0275mpd"](4608,kr.t,kr.t,[]),o["\u0275mpd"](4608,kr.a,kr.a,[]),o["\u0275mpd"](4608,kr.h,kr.h,[]),o["\u0275mpd"](4608,kr.d,kr.d,[]),o["\u0275mpd"](4608,kr.j,kr.j,[]),o["\u0275mpd"](4608,kr.s,kr.s,[kr.t,kr.j]),o["\u0275mpd"](4608,Xu,Xu,[]),o["\u0275mpd"](4608,Qr,Qr,[]),o["\u0275mpd"](4608,Rr,Rr,[]),o["\u0275mpd"](4608,ni,ni,[]),o["\u0275mpd"](4608,Qb.c,Qb.c,[]),o["\u0275mpd"](5120,y,S,[w]),o["\u0275mpd"](4608,_,_,[y]),o["\u0275mpd"](4608,ty,ty,[]),o["\u0275mpd"](1073742336,Nt.e,Nt.e,[]),o["\u0275mpd"](1073742336,Nt.d,Nt.d,[]),o["\u0275mpd"](1073742336,i.CommonModule,i.CommonModule,[]),o["\u0275mpd"](1073742336,O,O,[]),o["\u0275mpd"](512,o.ErrorHandler,ay,[o.Injector]),o["\u0275mpd"](1024,o.NgProbeToken,function(){return[et.w()]},[]),o["\u0275mpd"](512,et.C,et.C,[o.Injector]),o["\u0275mpd"](1024,o.APP_INITIALIZER,function(t,e){return[je["\u0275angular_packages_platform_browser_platform_browser_j"](t),et.D(e)]},[[2,o.NgProbeToken],et.C]),o["\u0275mpd"](512,o.ApplicationInitStatus,o.ApplicationInitStatus,[[2,o.APP_INITIALIZER]]),o["\u0275mpd"](131584,o.ApplicationRef,o.ApplicationRef,[o.NgZone,o["\u0275Console"],o.Injector,o.ErrorHandler,o.ComponentFactoryResolver,o.ApplicationInitStatus]),o["\u0275mpd"](1073742336,o.ApplicationModule,o.ApplicationModule,[o.ApplicationRef]),o["\u0275mpd"](1073742336,je.BrowserModule,je.BrowserModule,[[3,je.BrowserModule]]),o["\u0275mpd"](1073742336,sb,sb,[]),o["\u0275mpd"](1073742336,j.i,j.i,[]),o["\u0275mpd"](1024,et.v,et.z,[[3,et.l]]),o["\u0275mpd"](512,et.t,et.c,[]),o["\u0275mpd"](512,et.b,et.b,[]),o["\u0275mpd"](256,et.h,{useHash:!0,preloadingStrategy:et.f},[]),o["\u0275mpd"](1024,i.LocationStrategy,et.y,[i.PlatformLocation,[2,i.APP_BASE_HREF],et.h]),o["\u0275mpd"](512,i.Location,i.Location,[i.LocationStrategy]),o["\u0275mpd"](512,o.Compiler,o.Compiler,[]),o["\u0275mpd"](512,o.NgModuleFactoryLoader,o.SystemJsNgModuleLoader,[o.Compiler,[2,o.SystemJsNgModuleLoaderConfig]]),o["\u0275mpd"](1024,et.j,function(){return[[{path:"",redirectTo:"dashboard",pathMatch:"full"},{path:"dashboard",component:ke,canActivate:[ub.a]},{path:"hosts",component:Ze,canActivate:[ub.a],data:pb},{path:"monitor",component:cn,canActivate:[ub.a],data:hb},{path:"osd",canActivate:[ub.a],canActivateChild:[ub.a],data:gb,children:[{path:"",component:da}]},{path:"configuration",data:mb,children:[{path:"",component:ja},{path:"edit/:name",component:Qa,data:bb}]},{path:"crush-map",component:_r,canActivate:[ub.a],data:yb},{path:"logs",component:Ci,canActivate:[ub.a],data:vb},{path:"monitoring",canActivate:[ub.a],data:xb,children:[{path:"",component:mo},{path:"silence/create",component:Do,data:_b},{path:"silence/create/:id",component:Do,data:Tb},{path:"silence/edit/:id",component:Do,data:wb},{path:"silence/recreate/:id",component:Do,data:Sb}]},{path:"perf_counters/:type/:id",component:Jo,canActivate:[ub.a],data:Ob},{path:"mgr-modules",canActivate:[ub.a],canActivateChild:[ub.a],data:Ib,children:[{path:"",component:cs},{path:"edit/:name",component:ys,data:Cb}]},{path:"pool",canActivate:[ub.a],canActivateChild:[ub.a],data:kb,loadChildren:"./ceph/pool/pool.module#RoutedPoolModule"},{path:"block",canActivateChild:[ub.a],canActivate:[ub.a],data:Nb,loadChildren:"./ceph/block/block.module#RoutedBlockModule"},{path:"cephfs",component:uu,canActivate:[cb.a,ub.a],data:Rb},{path:"rgw",canActivateChild:[cb.a,lb,ub.a],data:Ab,loadChildren:"./ceph/rgw/rgw.module#RoutedRgwModule"},{path:"user-management",canActivate:[ub.a],canActivateChild:[ub.a],data:Eb,loadChildren:"./core/auth/auth.module#RoutedAuthModule"},{path:"nfs/501/:message",component:pu,canActivate:[ub.a],data:Db},{path:"nfs",canActivate:[ub.a],canActivateChild:[ub.a,lb],data:Lb,children:[{path:"",component:Cu},{path:"create",component:bc,data:Pb},{path:"edit/:cluster_id/:export_id",component:bc,data:Mb}]},{path:"sso/404",component:kl},{path:"login",component:$l},{path:"logout",children:[]},{path:"403",component:ad},{path:"404",component:ud},{path:"**",redirectTo:"/404"}]]},[]),o["\u0275mpd"](1024,et.l,et.A,[o.ApplicationRef,et.t,et.b,i.Location,o.Injector,o.NgModuleFactoryLoader,o.Compiler,et.j,et.h,[2,et.s],[2,et.k]]),o["\u0275mpd"](1073742336,et.p,et.p,[[2,et.v],[2,et.l]]),o["\u0275mpd"](1073742336,qb,qb,[]),o["\u0275mpd"](1073742336,gn.e,gn.e,[]),o["\u0275mpd"](1073742336,we.B,we.B,[]),o["\u0275mpd"](1073742336,we.n,we.n,[]),o["\u0275mpd"](1073742336,J.d,J.d,[]),o["\u0275mpd"](1073742336,we.x,we.x,[]),o["\u0275mpd"](1073742336,ry.a,ry.a,[]),o["\u0275mpd"](1073742336,Kb.c,Kb.c,[]),o["\u0275mpd"](1073742336,l.d,l.d,[]),o["\u0275mpd"](1073742336,dt.ChartsModule,dt.ChartsModule,[]),o["\u0275mpd"](1073742336,fa.e,fa.e,[]),o["\u0275mpd"](1073742336,iy.a,iy.a,[]),o["\u0275mpd"](1073742336,oy.a,oy.a,[]),o["\u0275mpd"](1073742336,sy.NgxDatatableModule,sy.NgxDatatableModule,[]),o["\u0275mpd"](1073742336,uy.a,uy.a,[]),o["\u0275mpd"](1073742336,Rt.a,Rt.a,[]),o["\u0275mpd"](1073742336,cy.a,cy.a,[]),o["\u0275mpd"](1073742336,X.c,X.c,[]),o["\u0275mpd"](1073742336,ly.a,ly.a,[]),o["\u0275mpd"](1073742336,sp,sp,[]),o["\u0275mpd"](1073742336,dy,dy,[]),o["\u0275mpd"](1073742336,fy,fy,[]),o["\u0275mpd"](1073742336,py.a,py.a,[]),o["\u0275mpd"](1073742336,kr.g,kr.g,[]),o["\u0275mpd"](1073742336,hy.TreeModule,hy.TreeModule,[]),o["\u0275mpd"](1073742336,gy,gy,[]),o["\u0275mpd"](1073742336,Qu,Qu,[]),o["\u0275mpd"](1073742336,ri,ri,[]),o["\u0275mpd"](1073742336,my,my,[]),o["\u0275mpd"](1073742336,by.a,by.a,[]),o["\u0275mpd"](1073742336,yy,yy,[]),o["\u0275mpd"](1073742336,Qb.d,Qb.d,[]),o["\u0275mpd"](1073742336,vy,vy,[]),o["\u0275mpd"](1073742336,xy,xy,[]),o["\u0275mpd"](1073742336,_y,_y,[]),o["\u0275mpd"](1073742336,ey,ey,[]),o["\u0275mpd"](1073742336,Ty,Ty,[[3,Ty]]),o["\u0275mpd"](1073742336,c,c,[]),o["\u0275mpd"](256,Nt.n,"XSRF-TOKEN",[]),o["\u0275mpd"](256,Nt.o,"X-XSRF-TOKEN",[]),o["\u0275mpd"](256,Mh,{tokenGetter:s},[]),o["\u0275mpd"](256,o["\u0275APP_ROOT"],!0,[]),o["\u0275mpd"](256,ob,"BrowserAnimations",[]),o["\u0275mpd"](256,o.TRANSLATIONS_FORMAT,"xlf",[]),o["\u0275mpd"](256,gn.a,{autoClose:!0,insideClick:!1},[]),o["\u0275mpd"](256,w,{},[]),o["\u0275mpd"](256,j.b,{default:j.a,config:{positionClass:"toast-top-right",preventDuplicates:!0,enableHtml:!0}},[])])});i.registerLocaleData(r.a),Object(o.enableProdMode)(),je.platformBrowser().bootstrapModuleFactory(wy).catch(function(t){return console.log(t)})},zavE:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},zfKp:function(t,e,n){"use strict";e.observable="function"==typeof Symbol&&Symbol.observable||"@@observable"},zo3G:function(t,e,n){"use strict";var a=n("mrSG"),r=function(t){function e(e,n){var a=t.call(this,e,n)||this;return a.scheduler=e,a.work=n,a}return a.__extends(e,t),e.prototype.schedule=function(e,n){return void 0===n&&(n=0),n>0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,a){return void 0===a&&(a=0),null!==a&&a>0||null===a&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,a):e.flush(this)},e}(n("h9Dq").a),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e}(n("CS9Q").a);n.d(e,"a",function(){return o});var o=new i(r)},zotm:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("rPjj"),r=n("Fxb1"),i=n("6blF");function o(t,e,n,o,s){if(void 0===s&&(s=new a.a(t,n,o)),!s.closed)return e instanceof i.a?e.subscribe(s):Object(r.a)(e)(s)}},"zrt+":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("6blF");function r(t){return!!t&&(t instanceof a.a||"function"==typeof t.lift&&"function"==typeof t.subscribe)}},zx6S:function(t,e,n){!function(t){"use strict";var e={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))}},[[0,1]]]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/main.a755488a34fa64d1b79f.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/main.a755488a34fa64d1b79f.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/main.a755488a34fa64d1b79f.js 1970-01-01 00:00:00.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/main.a755488a34fa64d1b79f.js 2021-03-15 17:51:46.000000000 +0000 @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"+0ag":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){var e=/ceph version\s+[^ ]+\s+\(.+\)\s+(.+)\s+\((.+)\)/.exec(t);return e?"dev"===e[2]?"master":e[1]:t},t}()},"+s0g":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"+tJ4":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return function(e){for(var n=0,a=t.length;n=0}},"/6aS":function(t,e){t.exports='\n \n \n \n Toggle navigation\n Rozwi\u0144\n \n \n Dashboard\n Pulpit\n \n \n Cluster\n Klaster\n \n \n Hosts\n Hosty\n \n \n Monitors\n Monitory\n \n \n OSDs\n OSD-ki\n \n \n Configuration\n Konfiguracja\n \n \n CRUSH map\n CRUSH mapa\n \n \n Manager modules\n Zarz\u0105dca modu\u0142\xf3w\n \n \n Logs\n Logi\n \n \n Alerts\n Powiadomienia\n \n \n Silences\n Silences\n \n \n Pools\n Pule\n \n \n Block\n Dost\u0119p blokowy\n \n \n Images\n Obrazy\n \n \n Mirroring\n Kopia lustrzana\n \n \n iSCSI\n iSCSI\n \n \n NFS\n Sieciowy system plik\xf3w NFS\n \n \n Filesystems\n Systemy plik\xf3w\n \n \n Object Gateway\n Dost\u0119p obiektowy\n \n \n Daemons\n Demony\n \n \n Users\n U\u017cytkownicy\n \n \n Buckets\n Wiadra\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Trwa pobieranie danych \n dla \n \n \n . Czekaj...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Wy\u015bwietlanie wcze\u015bniej buforowanych danych \n \ndla \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Nie mo\u017cna za\u0142adowa\u0107 danych \n dla\n \n \n . Sprawd\u017a prosz\u0119 zdrowie klastra. \n \n \n \n Back\n Wstecz\n \n \n Select a Language\n Wybierz j\u0119zyk\n \n \n Loading panel data...\n Trwa \u0142adowanie danych...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119\n jak\nskonfigurowa\u0107 i uruchomi\u0107 funkcje monitoringu.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Pulpit Grafany nie istnieje. Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n jak\ndodaj pulpity do Grafany.\n \n \n \n Grafana Time Picker\n Wyb\xf3r czasu Grafana\n \n \n Reset Settings\n Zresetuj ustawienia\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n B\u0142\u0105d wczytywania danych.\n \n \n selected\n Wybrane\n X selected\n \n \n found\n Znaleziono\n X found\n \n \n total\n Razem\n X total\n \n \n Edit\n Edytuj\n \n \n Name\n Nazwa\n \n \n Description\n Opis\n \n \n Long description\n D\u0142ugi opis\n \n \n Default\n Domy\u015blna\n \n \n Daemon default\n Domy\u015blny demon\n \n \n Services\n Us\u0142ugi\n \n \n Values\n Warto\u015bci\n \n \n The entered value is too high! It must not be greater than \n .\n \n Podana warto\u015b\u0107 jest za wysoka. Nie mo\u017ce by\u0107 wi\u0119ksza ni\u017c \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Podana warto\u015b\u0107 jest za ma\u0142a. Nie mo\u017ce by\u0107 mniejsza od \n .\n \n \n \n Save\n Zapisz\n \n \n CRUSH map viewer\n widok CRUSH mapy\n \n \n Hosts List\n Lista host\xf3w\n \n \n Overall Performance\n Ca\u0142kowita wydajno\u015b\u0107\n \n \n No entries found\n Nie znaleziono wej\u015b\u0107\n \n \n Cluster Logs\n Logi z klastra \n \n \n Audit Logs\n Audyt log\xf3w\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u0141adowanie konfiguracji.\n \n \n The configuration could not be loaded.\n Nie mo\u017cna za\u0142adowa\u0107 konfiguracji\n \n \n Edit Manager module\n Edytuj modu\u0142 zarz\u0105dzania\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Wpisana warto\u015b\u0107 nie jest poprawnym UUID, np. 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Wpisana warto\u015b\u0107 musi by\u0107 poprawnym adresem IP\n \n \n This field is required.\n Pole jest wymagane.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Podana warto\u015b\u0107 jest za wysoka! Musi by\u0107 mniejsza b\u0105d\u017a r\xf3wna \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Podana warto\u015b\u0107 jest za niska! Musi by\u0107 wi\u0119ksza b\u0105d\u017a r\xf3wna \n .\n \n \n \n The entered value needs to be a number.\n Podana warto\u015b\u0107 musi by\u0107 liczb\u0105\n \n \n The entered value needs to be a number or decimal.\n Podana warto\u015b\u0107 musi by\u0107 liczb\u0105 albo dziesi\u0119tn\u0105.\n \n \n Update\n Zaktualizuj\n \n \n Status\n Status\n \n \n Cluster ID\n Klaster ID\n \n \n monmap modified\n Zmodyfikowana monmapa\n \n \n monmap epoch\n epoka monmap\n \n \n quorum con\n kworum con\n \n \n quorum mon\n kworum mon\n \n \n required con\n wymagany con\n \n \n required mon\n Wymagane mon \n \n \n In Quorum\n W kworum\n \n \n Not In Quorum\n Nie w kworum\n \n \n Cancel\n Anuluj\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Jeste\u015b pewny, \u017ce chcesz \n \xa0 wybrany \n ? \n \n \n \n Yes, I am sure.\n Tak, jestem pewny.\n \n \n Cluster-wide OSD Flags\n Flagi OSD w ca\u0142ym klastrze\n \n \n Submit\n Zatwierd\u017a\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Zaawansowane...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorytet odzyskiwania OSD\n \n \n Priority\n Priorytet\n \n \n Customize priority values\n Dostosuj warto\u015bci priorytetowe\n \n \n This field is required!\n To pole jest wymagane.\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Podana warto\u015b\u0107 jest za wysoka. Nie mo\u017ce by\u0107 wi\u0119ksza ni\u017c \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Podana warto\u015b\u0107 jest za ma\u0142a! Nie mo\u017ce by\u0107 mniejsza od \n .\n \n \n \n Reweight OSD\n Ponowne wa\u017cenie OSD\n \n \n The value needs to be between 0 and 1.\n Warto\u015b\u0107 powinna by\u0107 pomi\u0119dzy 0 a 1. \n \n \n Reweight\n Ponowne wa\u017cenie\n \n \n OSDs \n Scrub\n \n Szoruj\n OSD-ki\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, wybierz, 1 {G\u0142\u0119boko\u015b\u0107} }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Zamierzasz zaaplikowa\u0107 \n szorowanie na OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, wybierz, 1 {g\u0142\u0119boko\u015b\u0107} }\n \n \n OSDs List\n Lista OSD-k\xf3w \n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n Je\u015bli kontynuujesz \n OSD \n \n b\u0119dzie zaznaczony\n \n \n .\n \n \n \n The OSD is not safe to destroy!\n Nie mo\u017cna bezpiecznie zniszczy\u0107 tego OSD.\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n Je\u015bli kontyuujesz \n OSD \n \n b\u0119dzie \n \n \n .\n \n \n \n Details\n Szczeg\xf3\u0142y\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Warto\u015b\u0107\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Zamknij\n \n \n Delete\n Usu\u0144\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Zdrowie\n \n \n Statistics\n Statystyki\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n \xa0\njak nale\u017cy skonfigurowa\u0107 i uruchomi\u0107 zarz\u0105dzanie funkcjami NFS Ganeshy \n \n \n \n Clients\n Klienci\n \n \n Any client can access\n Ka\u017cdy klient ma dost\u0119p\n \n \n Addresses\n Adresy\n \n \n Required field\n Obowi\u0105zkowe pole\n \n \n Must contain one or more comma-separated values\n Musi zawiera\u0107 jedn\u0105 albo wi\u0119cej ,rozdzielonych przecinkiem, warto\u015bci \n \n \n For example:\n Na przyk\u0142ad: \n \n \n Access Type\n Typ dost\u0119pu\n \n \n Squash\n Squash\n \n \n Add clients\n Dodaj klient\xf3w \n \n \n Loading...\n \u0141adowanie...\n \n \n -- No cluster available --\n -- Brak dost\u0119pnego klastra -- \n \n \n -- Select the cluster --\n -- Wybierz klaster --\n \n \n Add daemon\n Dodaj demona\n \n \n Storage Backend\n Pami\u0119\u0107 Podr\u0119czna\n \n \n -- No data pools available --\n -- Brak danych puli -- \n \n \n -- Select the storage backend --\n -- Wybierz pami\u0119\u0107 podr\u0119czn\u0105 -- \n \n \n Object Gateway User\n U\u017cytkownik dost\u0119pu obiektowego\n \n \n -- No users available --\n -- Brak dost\u0119pnych u\u017cytkownik\xf3w -- \n \n \n -- Select the object gateway user --\n -- Wybierz u\u017cytkownika dost\u0119pu obiektowego -- \n \n \n CephFS User ID\n CephFS U\u017cytkownik ID\n \n \n -- No clients available --\n -- Brak dost\u0119pnych klient\xf3w -- \n \n \n -- Select the cephx client --\n -- Wybierz klienta cephx -- \n \n \n CephFS Name\n Nazwa CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Etykieta bezpiecze\u0144stwa\n \n \n Enable security label\n Uruchom etykiet\u0119 bezpiecze\u0144stwa\n \n \n CephFS Path\n \u015acie\u017cka CephFS \n \n \n Path need to start with a \'/\' and can be followed by a word\n \u015acie\u017cka powinna zaczyna\u0107 si\u0119 z \'/\' i nast\u0119pne mo\u017ce by\u0107 s\u0142owo\n \n \n New directory will be created\n Nowy katalog b\u0119dzie stworzony. \n \n \n Path\n \u015acie\u017cka\n \n \n Path can only be a single \'/\' or a word\n \u015acie\u017ck\u0105 mo\u017ce by\u0107 tylko \'/\' albo s\u0142owo\n \n \n New bucket will be created\n Nowe wiadro b\u0119dzie stworzone \n \n \n NFS Protocol\n Protok\xf3\u0142 NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternatywny dost\u0119p do \n NFS v3\n \xa0montuje ( nie musi mie\u0107 poprzedzaj\u0105cego \'/\' )\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Klient mo\u017ce nie montowa\u0107 podkatalog\xf3w ( np. je\u015bli Tag = foo, klient mo\u017ce nie montowa\u0107 foo/baz) \n \n \n By using different Tag options, the same Path may be exported multiple times.\n U\u017cywaj\u0105c r\xf3\u017cnych opcji Tagu, ta sama \u015acie\u017cka mo\u017ce by\u0107 wyeksportowana kilka razy.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Pozycja, kt\xf3r\u0105 \n NFS v4\n eksport zajmuje \nw \n Pseudo FS\n (musi by\u0107 unikatowa). \n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n U\u017cywaj\u0105c r\xf3\u017cnych opcji Pseudo, ta sama \u015acie\u017cka mo\u017ce by\u0107 wyeksportowana kilka razy.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Brak dost\u0119pnych typ\xf3w dost\u0119pu --\n \n \n -- Select the access type --\n -- Wybierz typ dost\u0119pu --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n - Brak squasha -\n \n \n --Select what kind of user id squashing is performed --\n -- Wybierz, jakiego rodzaju identyfikacja u\u017cytkownika ma by\u0107 przeprowadzana --\n \n \n Transport Protocol\n Protok\xf3\u0142 Transportu \n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Witamy w Cephie! \n The welcome message on the login page\n \n \n Username is required\n Nazwa u\u017cytkownika jest wymagana\n \n \n Password is required\n Has\u0142o jest wymagane.\n \n \n Login\n Zaloguj\n \n \n Sorry, the user does not exist in Ceph.\n Przepraszam, u\u017cytkownik nie istnieje w Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Powr\xf3t do \n Strony Logowania\n . Zostaniesz wylogowany z Dostastcy To\u017csamo\u015bci , kiedy spr\xf3bujesz si\u0119 zalgowa\u0107. \n \n \n \n Forbidden\n Zakazany\n \n \n Sorry, you are not allowed to see what you were looking for.\n Przepraszam, nie masz dost\u0119pu do tego czego szukasz. \n \n \n Sorry, we could not find what you were looking for\n Przepraszam, nie mo\u017cemy znale\u017a\u0107 tego czego szukasz.\n \n \n Remove all\n Usu\u0144 wszystko\n \n \n Recent Notifications\n Ostatnie powiadomienia\n \n \n There are no background tasks.\n Brak zada\u0144 w tle.\n \n \n Background Tasks\n Zagadnienia w tle \n \n \n Help\n Pomoc\n \n \n Documentation\n Dokumentacja\n \n \n API\n Interfejs API\n \n \n About\n O\n \n \n Dashboard Settings\n Ustawienia Pulpitu\n \n \n User management\n Zarz\u0105dzanie u\u017cytkownikami\n \n \n Logged in user\n Zalogowany u\u017cytkownik\n \n \n Signed in as\n \n \n \n \n Zalogowany jako \n \n \n \n \n \n \n Sign out\n Wyloguj\n \n \n Name...\n Nazwa...\n \n \n The chosen name is already in use.\n Wybrana nazwa ju\u017c jest u\u017cyta.\n \n \n Description...\n Opis...\n \n \n Permissions\n Pozwolenia\n \n \n Roles\n Role\n \n \n Username\n Nazwa u\u017cytkownika\n \n \n Password\n Has\u0142o\n \n \n Confirm password\n Potwierd\u017a has\u0142o\n \n \n Password confirmation doesn\'t match the password.\n Potwierdzaj\u0105ce has\u0142o nie pokrywa si\u0119 z has\u0142em.\n \n \n Full name\n Pe\u0142ne imi\u0119 \n \n \n Email\n Email\n \n \n Invalid email.\n Niepoprawny email.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Zamierzasz usun\u0105\u0107 uprawnienia \u201eodczytu / aktualizacji u\u017cytkownika\u201d od w\u0142asnego u\u017cytkownika.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Je\u015bli kontynuujesz, nie b\u0119dziesz m\xf3g\u0142 dodawa\u0107 albo usuwa\u0107 role od u\u017cytkownik\xf3w.\n \n \n Are you sure you want to continue?\n Jeste\u015b pewny, \u017ce chcesz kontynuowa\u0107? \n \n \n Performance counters not available\n Liczniki wydajno\u015bci nie s\u0105 dost\u0119pne\n \n \n Attributes (OSD map)\n Atrybuty (mapa OSD-k\xf3w)\n \n \n Metadata not available\n Niedost\u0119pne metadane\n \n \n Metadata\n Metadane\n \n \n Performance counter\n Licznik wydajno\u015bci\n \n \n Histogram not available: \n \n \n Histogram niedost\u0119pny: \n \n \n \n \n Writes\n Pisze\n \n \n Reads\n Czyta\n \n \n Histogram\n Histogram\n \n \n Performance Details\n Szczeg\xf3\u0142y wydajno\u015bci\n \n \n Current values\n Obecne warto\u015bci \n \n \n Type\n Typ\n \n \n Min\n Min\n \n \n Max\n Max\n \n \n Flags\n Flagi\n \n \n Source\n \u0179r\xf3d\u0142o \n \n \n Level\n Poziom\n \n \n Can be updated at runtime (editable)\n Mo\u017ce by\u0107 aktualizowany w czasie wykonywania (edytowalny)\n \n \n Tags\n Tagi\n \n \n Enum values\n Warto\u015bci enumerowane \n \n \n See also\n Zobacz tak\u017ce \n \n \n Cluster Status\n Status klastra\n \n \n Manager Daemons\n Zarz\u0105dzanie demonami\n \n \n Object Gateways\n Obiekty bram \n \n \n Metadata Servers\n Serwery metadanych\n \n \n iSCSI Gateways\n Bramy iSCSI\n \n \n Client IOPS\n Klient IOPS\n \n \n Client Throughput\n Przepustowo\u015b\u0107 klienta\n \n \n Client Read/Write\n Odczyt/Zapis klienta\n \n \n Recovery Throughput\n Przepustowo\u015b\u0107 odzyskiwania\n \n \n Scrub\n Szoruj\n \n \n Performance\n Wydajno\u015b\u0107\n \n \n Raw Capacity\n Pojemno\u015b\u0107 rz\u0119du\n \n \n Objects\n Obiekty\n \n \n PGs per OSD\n PG-y na OSD\n \n \n PG Status\n Status PG\n \n \n Capacity\n Pojemno\u015b\u0107\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n zobacz\n logi\n , \u017ceby mie\u0107 wi\u0119cej szczeg\xf3\u0142\xf3w. \n \n \n \n Ranks\n Szeregi\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Klienci: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Przenie\u015b obraz do kosza\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \u017beby przenie\u015b\u0107 \n \n /\n \n do kosza, kliknij \n Przenie\u015b obraz\n . Opcjonalnie, mo\u017cesz wybra\u0107 dat\u0119 wa\u017cno\u015bci.\n \n \n \n Protection expires at\n Zabezpieczenie wygasa w \n \n \n NOT PROTECTED\n NIEZABEZPIECZONY \n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Z\u0142y format daty. Prosz\u0119 u\u017cywa\u0107 "RRRR-MM-DD GG:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Ochrona ju\u017c wygas\u0142a. Prosz\u0119 wybra\u0107 przysz\u0142\u0105 dat\u0119 lub zostawi\u0107 pust\u0105.\n \n \n Move Image\n Przenie\u015b obraz\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Przegl\u0105d\n \n \n Targets\n Obiekty docelowe\n \n \n Discovery Authentication\n Uwierzytelnianie wykrywania\n \n \n User\n U\u017cytkownik\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nazwy u\u017cytkownik\xf3w musz\u0105 mie\u0107 d\u0142ugo\u015b\u0107 od 8 do 64 znak\xf3w i \nmog\u0105 zawiera\u0107 jedynie litery, \'.\', \'@\', \'-\', \'_\' lub \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Wsp\xf3lny u\u017cytkownik \n \n \n Mutual Password\n Wsp\xf3lne has\u0142o\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n \xa0\njak skonfigurowa\u0107 i uruchomi\u0107 zarz\u0105dzanie funkcjonalno\u015bciami obiektami docelowymi iSCSI\n \n \n \n Available information:\n Dost\u0119pne informacje: \n \n \n iSCSI Targets not available\n obiekty docelowe iSCSI niedost\u0119pne \n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Dost\u0119pne tylko dla obraz\xf3w RBD z \n szybk\u0105 r\xf3\u017cnic\u0105 \n w\u0142\u0105czone\n \n \n \n Pool\n Pul\n \n \n Data Pool\n Dane pula\n \n \n Created\n Utworzony\n \n \n Size\n Rozmiar\n \n \n Object size\n Rozmiar obiektu\n \n \n Features\n Funkcje\n \n \n Provisioned\n Zaopatrzony\n \n \n N/A\n Niedost\u0119pny\n \n \n Total provisioned\n Ca\u0142kowite rezerwy\n \n \n Striping unit\n Jednostka maskowana\n \n \n Striping count\n Licznik maskowania\n \n \n Parent\n Rodzic\n \n \n Block name prefix\n Prefiks nazwy bloku\n \n \n Order\n Zam\xf3wienie\n \n \n Snapshots\n Migawki\n \n \n Image\n Obraz\n \n \n This setting overrides the global value\n To ustawienie zast\u0119puj\u0119 warto\u015b\u0107 globaln\u0105.\n \n \n Global\n Globalne\n \n \n This is the global value. No value for this option has been set for this image.\n To jest globalna warto\u015b\u0107. Dla tego obrazu nie ustawiono \u017cadnej warto\u015bci dla tej opcji.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' and \'@\' nie s\u0105 dozwolone.\n \n \n -- No rbd pools available --\n -- Brak dost\u0119pnych rbd puli -- \n \n \n -- Select a pool --\n -- Wybierz pul --\n \n \n Use a dedicated data pool\n U\u017cyj dedykowanych danych pul \n \n \n Data pool\n Dane pul\n \n \n Dedicated pool that stores the object-data of the RBD.\n Dedykowany pul, kt\xf3ry przechowuje dane obiektowe z RBD\n \n \n e.g., 10GiB\n np. 10 GiB\n \n \n You have to increase the size.\n Musisz zwi\u0119kszy\u0107 rozmiar.\n \n \n Advanced\n Zaawansowane\n \n \n Striping\n Maskowanie\n \n \n Stripe unit\n Jednostka pask\xf3w\n \n \n -- Select stripe unit --\n -- Wybierz jednostk\u0119 pask\xf3w -- \n \n \n This field is required because stripe count is defined!\n Pole jest wymagane, poniewa\u017c licznik pask\xf3w jest zdefiniowany. \n \n \n Stripe unit is greater than object size.\n Jednostka pask\xf3w jest wi\u0119ksza ni\u017c rozmiar obiektu.\n \n \n Stripe count\n Licznik pask\xf3w \n \n \n This field is required because stripe unit is defined!\n Pole jest wymagane, poniewa\u017c jednostka pask\xf3w jest zdefiniowana! \n \n \n Stripe count must be greater than 0.\n Licznik pask\xf3w musi by\u0107 wi\u0119kszy od 0.\n \n \n \n RBD Snapshot\n \n \n migawka RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, wybierz, prawda {Zmie\u0144 nazwe} inaczej{Utw\xf3rz} }\n \n \n \n Snapshot\n \n \n Migawka\n \n \n \n PROTECTED\n ZABEZPIECZONE\n \n \n UNPROTECTED\n NIEZABEZPIECZONY \n \n \n You are about to rollback\n Zaraz si\u0119 wycofasz. \n \n \n Purge Trash\n Usu\u0144 \u015amieci\n \n \n To purge, select one or All images and click\n Aby usun\u0105\u0107, wybierz jeden albo wszystkie obrazy i kliknij \n \n \n Pool:\n Pul:\n \n \n Pool name...\n Nazwa pula\n \n \n All\n Wszystkie\n \n \n Restore Image\n Przywr\xf3\u0107 obraz\n \n \n To restore\n Przywr\xf3\u0107\n \n \n type the image\'s new name and click\n Wpisz nazwe nowego obrazu i kliknij. \n \n \n New Name\n Nowa Nazwa\n \n \n Expired at\n Wygas\u0142y w\n \n \n Protected until\n Zabezpieczony do\n \n \n This image is protected until \n .\n \n Ten obraz jest chroniony do \n .\xa0\n \n \n \n Trash\n Kosz\n \n \n iSCSI Topology\n Topologia iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Zmiana tych parametr\xf3w z domy\u015blnych warto\u015bci przewa\u017cnie nie jest potrzebna.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Ustawienia\n \n \n Backstore\n Tylny koniec przechowywania\n \n \n Confirm\n Potwierd\u017a\n \n \n Advanced Settings\n Ustawienia zaawansowane\n \n \n Target IQN\n Nazwa IQN obiektu docelowego iSCSI\n \n \n IQN has wrong pattern.\n B\u0142\u0119dna sk\u0142adnia nazwy IQN.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN ma nast\u0119puj\u0105c\u0105 notacj\u0119 \u201eiqn. $ Rok-$ miesi\u0105c. $ odwr\xf3conyAdres: $ zdefiniowanaNazwa\u201d\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Na przyk\u0142ad: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Wi\u0119cej informacji\n \n \n This target has modified advanced settings.\n Ten obiekt docelowy zmodyfikowa\u0142 zaawansowane ustawienia.\n \n \n Portals\n Portale\n \n \n At least \n gateways are required.\n \n Wymagane s\u0105 przynajmniej \n bramy.\n \n \n \n Add portal\n Dodaj portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Ten obraz zmodyfikowa\u0142 ustawienia. \n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Dodaj obraz.\n \n \n ACL authentication\n Uwierzytelnianie ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Inicjatory iSCSI\n \n \n Initiator\n Inicjator iSCSI\n \n \n Client IQN\n Klient IQN\n \n \n Initiator IQN needs to be unique.\n Inicjator IQN powinien by\u0107 unikalny.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nazwy u\u017cytkownik\xf3w musz\u0105 mie\u0107 d\u0142ugo\u015b\u0107 od 8 do 64 znak\xf3w i mog\u0105 zawiera\u0107 jedynie litery, \'.\', \'@\', \'-\', \'_\' lub \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Inicjator iSCSI nale\u017c\u0105 do grupy. Obrazy b\u0119d\u0105 skonfigurowane w grupie. \n \n \n No items added.\n Brak dodanych pozycji.\n \n \n Add initiator\n Dodaj inicjator iSCSI\n \n \n Groups\n Grupy\n \n \n Group\n Grupa\n \n \n Add group\n Dodaj grup\u0119\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Konfiguracja RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Usu\u0144 warto\u015b\u0107 konfiguracji lokalnej. Warto\u015b\u0107 konfiguracji rodzica b\u0119dzie odziedziczona i zostanie u\u017cyta zamiast tej.\n \n \n The mininum value is 0\n Minimalna warto\u015b\u0107 wynosi 0.\n \n \n Issues\n Zagadnienia\n \n \n Syncing\n Synchronizacja\n \n \n Ready\n Gotowy\n \n \n Edit pool mirror mode\n Tryb edycji lustrzanego pula\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Aby edytowa\u0107 tryb lustrzanydla pula\n \n \n , wybierz tryb z listy i kliknij\n Zaktualizuj\n .\n \n \n \n Mode\n Tryb\n \n \n Peer clusters must be removed prior to disabling mirror.\n Sparowany klaster musi by\u0107 usuni\u0119ty przed wy\u0142\u0105czeniem lustra. \n \n \n \n \n pool mirror peer\n \n \n sparowany pul lustrzany\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, wybierz, edytuj{Edytuj} inaczej {Dodaj} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n pul \nlustra sparowanych atrybut\xf3w dla pula \n \n \n i kliknij \n Zatwierd\u017a\n .\n \n \n \n Cluster Name\n Nazwa Klastra\n \n \n The cluster name is not valid.\n Nazwa klastra jest niepoprawna \n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n ID CephX nie jest poprawne.\n \n \n Monitor Addresses\n Adres monitora \n \n \n Comma-delimited addresses...\n Adresy rozdzielane przecinkami... \n \n \n The monitory address is not valid.\n Adres monitora nie jest poprawny.\n \n \n CephX Key\n Klucz CephX\n \n \n Base64-encoded key...\n Klucz zakodowany w Base64...\n \n \n CephX key must be base64 encoded.\n Klucz CephX musi by\u0107 zakodowany w Base64/\n \n \n Pools List\n Lista puli\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Nazwa mo\u017ce sk\u0142ada\u0107 si\u0119 z alfanumerycznych znak\xf3w, kresek i podkre\u015ble\u0144.\n \n \n The chosen erasure code profile name is already in use.\n Wybrana nazwa profilu kodu kasowania jest ju\u017c u\u017cywana.\n \n \n Plugin\n Wtyczka\n \n \n Data chunks (k)\n Ramka danych (k)\n \n \n Must be equal to or greater than 2.\n Musi by\u0107 wi\u0119ksza b\u0105d\u017a r\xf3wna 2.\n \n \n Coding chunks (m)\n Kodowanie kawa\u0142ka (m)\n \n \n Must be equal to or greater than 1.\n Musi by\u0107 wi\u0119ksza b\u0105d\u017a r\xf3wna 1.\n \n \n Durability estimator (c)\n Estymator trwa\u0142o\u015bci (c)\n \n \n Locality (l)\n Lokalno\u015b\u0107 (l)\n \n \n Crush failure domain\n Domena niepowodzenia Crush\n \n \n Crush Locality\n Lokalno\u015b\u0107 Crusha\n \n \n None\n Nic\n \n \n Technique\n Technika\n \n \n Packetsize\n Rozmiar pakietu\n \n \n Crush root\n korze\u0144 Crusha\n \n \n Crush device class\n urz\u0105dzenie klasy Crush\n \n \n any\n kt\xf3rykolwiek\n \n \n Directory\n Katalog\n \n \n The chosen Ceph pool name is already in use.\n Wybrana nazwa Ceph pula jest ju\u017c u\u017cyta.\n \n \n Pool type\n Typ pula\n \n \n -- Select a pool type --\n -- Wybierz typ pula --\n \n \n Placement groups\n Grupa umieszczenia\n \n \n At least one placement group is needed!\n Przynajmniej jedna grupa umieszczenia jest wymagana\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Tw\xf3j klaster nie obs\u0142uguje tylu PG. Skalkuluj prosz\u0119 potrzebn\u0105 ilo\u015b\u0107 PG.\n \n \n Calculation help\n Pomoc obliczeniowa\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Obecne ustawienia PG zosta\u0142y policzone dla Ciebie, \npowiniene\u015b upewni\u0107 si\u0119 czy te warto\u015bci Ci odpowiadaj\u0105 przed zatwierdzeniem.\n \n \n Crush ruleset\n zbi\xf3r zasad Crush\n \n \n -- Select a crush rule --\n -- Wybierz zasad\u0119 Crush --\n \n \n Crush rule\n zasada Crush\n \n \n Crush steps\n Kroki Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Zasada nie mo\u017ce by\u0107 u\u017cyta w obecnym klastrze, gdy\u017c ma\nzbyt ma\u0142o OSD-k\xf3w, \u017ceby spe\u0142ni\u0107 minimum OSD-k\xf3w wymaganych przez t\u0119 zasad\u0119.\n \n \n Replicated size\n Replikowany rozmiar\n \n \n Minimum: \n \n \n Minimum: \n \n \n \n \n Maximum: \n \n \n Maximum: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Sprecyzowany rozmiar jest poza zakresem. Warto\u015b\u0107 od \n do \n jest poprawna.\n \n \n \n Erasure code profile\n Skasuj profil kodu.\n \n \n -- No erasure code profile available --\n -- Brak profilu kasowania --\n \n \n -- Select an erasure code profile --\n -- Wybierz profil kodu wymazywania --\n \n \n EC Overwrites\n EC Nadpisuje\n \n \n Applications\n Zastosowania\n \n \n Compression\n Kompresja\n \n \n Algorithm\n Algorytm\n \n \n -- No erasure compression algorithm available --\n -- Brak algorytmu kompresji wymazywania --\n \n \n Minimum blob size\n Minimalny rozmiar blob\n \n \n e.g., 128KiB\n np. 128 KB\n \n \n Value should be greater than 0\n Warto\u015b\u0107 powinna by\u0107 wi\u0119ksza ni\u017c 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Maksymalny rozmiar blob\n \n \n e.g., 512KiB\n np. 512 KB\n \n \n Value should be greater than the minimum blob size\n Warto\u015b\u0107 powinna by\u0107 wi\u0119ksza ni\u017c minimalny rozmiar blob\n \n \n Ratio\n Stosunek\n \n \n Compression ratio\n Skompresowany stosunek\n \n \n Value should be between 0.0 and 1.0\n Warto\u015b\u0107 powinna by\u0107 pomi\u0119dzy 0.0, a 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Nie mo\u017cna stworzy\u0107 pula RBD z \'/\' w nazwie.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Prosz\u0119 zmieni\u0107 nazw\u0119 albo usun\u0105\u0107 \'rbd\' z listy zastosowa\u0144.\n \n \n Cache Tiers Details\n Szczeg\xf3\u0142y poziom\xf3w pami\u0119ci podr\u0119cznej\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Sprawd\u017a prosz\u0119 \n dokumentacj\u0119 \n \xa0\njak skonfigurowa\u0107 i i uruchomi\u0107 zarz\u0105dzanie funkcjami Dost\u0119pu obiektowego\n \n \n \n Daemons List\n Lista demon\xf3w\n \n \n Performance Counters\n Liczniki wydajno\u015bci\n \n \n Loading bucket data...\n \u0141adowanie wiadra danych\n \n \n The bucket data could not be loaded.\n Nie mo\u017cna za\u0142adowa\u0107 wiadra danych.\n \n \n Id\n Number ID\n \n \n The value is not valid.\n Warto\u015b\u0107 nie jest poprawna.\n \n \n Owner\n W\u0142a\u015bciciel\n \n \n -- Select a user --\n -- Wybierz u\u017cytkownika -- \n \n \n ID\n ID\n \n \n Index type\n Typ indeksu\n \n \n Placement rule\n Zasada umieszczania\n \n \n Marker\n Znacznik\n \n \n Maximum marker\n Maksymalny znacznik\n \n \n Version\n Wersja\n \n \n Master version\n G\u0142\xf3wna wersja\n \n \n Modification time\n Czas modyfikacji\n \n \n Zonegroup\n Strefa \n \n \n Bucket quota\n kontyngent wiadra\n \n \n Enabled\n Uaktywniony\n \n \n Maximum size\n Maksymalny rozmiar\n \n \n Unlimited\n Nielimitowany\n \n \n Maximum objects\n Maksimum obiekt\xf3w\n \n \n -- Select a username --\n -- Wybierz nazw\u0119 u\u017cytkownika -- \n \n \n Auto-generate key\n Auto-generowany klucz\n \n \n Access key\n Klucz dost\u0119pu\n \n \n Secret key\n Tajny klucz \n \n \n Email address\n Adres email\n \n \n Suspended\n Zawieszony\n \n \n System\n System\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, wybierz, 0 {Nie} 1{Tak} }\n \n \n Maximum buckets\n Maksimum wiader\n \n \n Subusers\n pod-u\u017cytkownicy\n \n \n Capabilities\n Zdolno\u015bci\n \n \n User quota\n Limit u\u017cytkownika\n \n \n Show\n Poka\u017c\n \n \n Keys\n Klucze\n \n \n -- Select a type --\n -- wybierz typ --\n \n \n Permission\n Pozwolenie \n \n \n -- Select a permission --\n -- Wybierz pozwolenie --\n \n \n Subuser\n pod-u\u017cytkownik\n \n \n The chosen subuser ID is already in use.\n Wybrane ID pod-u\u017cytkownika jest ju\u017c u\u017cyte.\n \n \n read, write\n odczyt, zapis\n \n \n full\n pe\u0142ny\n \n \n Swift key\n Szybki klucz\n \n \n Auto-generate secret\n Auto-generowany sekret\n \n \n Loading user data...\n \u0141adowanie danych u\u017cytkownika...\n \n \n The user data could not be loaded.\n Nie mo\u017cna za\u0142adowa\u0107 danych u\u017cytkownika.\n \n \n The chosen user ID is already in use.\n Wybrane ID u\u017cytkownika jest ju\u017c u\u017cyte.\n \n \n This is not a valid email address.\n Ten adres email nie jest poprawny.\n \n \n The chosen email address is already in use.\n Wybrany adres email jest ju\u017c u\u017cyty.\n \n \n Max. buckets\n Max. wiader \n \n \n The entered value must be >= 0.\n Podana warto\u015b\u0107 musi by\u0107 >= 0\n \n \n S3 key\n klucz S3\n \n \n There are no subusers.\n Nie ma pod-u\u017cytkownik\xf3w.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3 (prosty serwis przechowywania) \n \n \n There are no keys.\n Nie ma kluczy.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Szybki\n \n \n There are no capabilities.\n Nie ma zdolno\u015bci. \n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Nielimitowany rozmiar\n \n \n Max. size\n Max. rozmiar\n \n \n Unlimited objects\n Nielimitowane obiekty\n \n \n Max. objects\n Max. obiekt\xf3w\n \n \n Current\n Obecny\n \n \n Updated discovery authentication\n Zaktualizowane uwierzytelnianie wykrywania\n \n \n There are no portals available.\n Brak dost\u0119pnych portali.\n \n \n There are no images available.\n Nie ma dost\u0119pnych obraz\xf3w. \n \n \n There are no images available. Please make sure you add an image to the target.\n Nie ma dost\u0119pnych obraz\xf3w. Prosz\u0119 si\u0119 upewni\u0107, \u017ce dodajesz obraz do obiektu docelowego. \n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Nie ma dost\u0119pnych inicjator\xf3w iSCSI. Prosz\u0119 upewni\u0107 si\u0119, \u017ce dodajesz inicjator iSCSI do obiektu docelowego.\n \n \n target\n target\n \n \n Target\n obiekt docelowy iSCSI\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Stan\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Odczyt bajt\xf3w \n \n \n Write Bytes\n Zapis bajt\xf3w\n \n \n Read Ops\n Odczyt Ops\n \n \n Write Ops\n Zapis Ops\n \n \n A/O Since\n A/O Od\n \n \n Instance\n Instancja\n \n \n Hostname\n Nazwa hosta\n \n \n Issue\n Zagadnienie \n \n \n Progress\n Progres\n \n \n Disabled\n Wy\u0142\u0105czony\n \n \n Edit Mode\n Tryb Edycji\n \n \n Add Peer\n Dodaj parowanie \n \n \n Edit Peer\n Edytuj parowanie\n \n \n Delete Peer\n Usu\u0144 parowanie\n \n \n Leader\n Lider\n \n \n # Local\n # Lokalny\n \n \n # Remote\n # Zdalny\n \n \n mirror peer\n lustrzane parowanie\n \n \n Key\n Klucz\n \n \n RBD\n RBD\n \n \n Deep flatten\n G\u0142\u0119bokie sp\u0142aszczenie\n \n \n Layering\n Warstwowanie \n \n \n Exclusive lock\n Wy\u0142\u0105czna blokada\n \n \n Object map (requires exclusive-lock)\n Mapa obiekt\xf3w (wymaga wy\u0142\u0105cznej blokady)\n \n \n Journaling (requires exclusive-lock)\n Kronikowanie (wymaga wy\u0142\u0105cznej blokady)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Wycofywanie migawek RBD\n \n \n Rollback\n Wycofanie\n \n \n RBD snapshot\n migawka RBD\n \n \n Deleted At\n Usuni\u0119ty o \n \n \n id\n id\n \n \n type\n typ\n \n \n state\n stan\n \n \n version\n wersja\n \n \n Host\n Host\n \n \n root\n administrator\n \n \n Rank\n Ranga\n \n \n Daemon\n Demon\n \n \n Activity\n Aktywno\u015b\u0107\n \n \n Dentries\n centrale\n \n \n Inodes\n i-w\u0119z\u0142y\n \n \n Usage\n U\u017cycie\n \n \n Standby daemons\n Czuwanie demona \n \n \n The value can be updated at runtime.\n Warto\u015b\u0107 mo\u017ce by\u0107 zaktualizowana w czasie wykonywania . \n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Demony/klienci nie pobieraj\u0105 tej warto\u015bci z\nbazy danych skonfigurowanego monitora. Nie zezwalamy na ustawienie tej opcji przez \'konfiguracje ceph\nustaw.. \'. Ta opcja powinna by\u0107 skonfigurowana przez ceph.conf albo przez\nterminal.\n \n \n Option takes effect only during daemon startup.\n Opcja dzia\u0142a tylko podczas startu demona.\n \n \n Option only affects cluster creation.\n Opcja dotyczy tylko tworzenia klastra.\n \n \n Option only affects daemon creation.\n Opcja tylko wp\u0142ywa na tworzenie demona.\n \n \n Updated config option \n \n \n Zaktualizowana opcja konfiguracji \n \n \n \n \n Service\n Us\u0142uga\n \n \n Current value\n Obecna warto\u015b\u0107\n \n \n Editable\n Edytowalny\n \n \n Updated options for module "\n ".\n \n Zaktualizowane opcje dla modu\u0142u &quot;\n &quot;.\n \n \n \n Enable\n W\u0142\u0105czy\u0107\n \n \n Disable\n Wy\u0142\u0105czy\u0107\n \n \n Reconnecting, please wait ...\n Ponowne \u0142\u0105czenie, prosz\u0119 czeka\u0107\n \n \n Public Address\n Adres publiczny\n \n \n Open Sessions\n Otwarte sesje\n \n \n No In\n Nie w \n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSD-ki, kt\xf3re zosta\u0142y oznaczone jako poza, nie b\u0119d\u0105 oznaczone ponownie jako w gdy zostan\u0105 uruchomion\n \n \n No Out\n Nie poza\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD-ki nie b\u0119d\u0105 automatycznie oznaczone jako poza po konfiguracji interwa\u0142u\n \n \n No Up\n Nie powsta\u0142y \n \n \n OSDs are not allowed to start\n OSD-ki nie mog\u0105 startowa\u0107\n \n \n No Down\n Nie upad\u0142y\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Raport z niepowodzenia OSD jest ignorowany, tak\u017ce monitory nie oznacz\u0105 OSD jako upad\u0142ego. \n \n \n Pause\n Pauza \n \n \n Pauses reads and writes\n Pauzuje czytanie i zapisywanie\n \n \n No Scrub\n Nie szoruj\n \n \n Scrubbing is disabled\n Szorowanie jest wy\u0142\u0105czone\n \n \n No Deep Scrub\n Nie ma g\u0142\u0119bokiego szorowania\n \n \n Deep Scrubbing is disabled\n G\u0142\u0119bokie szorowanie jest wy\u0142\u0105czone\n \n \n No Backfill\n Brak zasypywania\n \n \n Backfilling of PGs is suspended\n Zasypywanie PG jest zawieszone\n \n \n No Recover\n Nie przywr\xf3cono\n \n \n Recovery of PGs is suspended\n Przywr\xf3cenie PGy jest zawieszone \n \n \n Bitwise Sort\n Sortuj bitowo\n \n \n Use bitwise sort\n U\u017cyj sortowania bitowego\n \n \n Purged Snapdirs\n Usu\u0144 snap katalogi\n \n \n OSDs have converted snapsets\n OSD-ki zmieni\u0142y snapsety\n \n \n Recovery Deletes\n Odzyskaj usuni\u0119te\n \n \n Deletes performed during recovery instead of peering\n Podczas zdrowienia zastosowano usuni\u0119cie zamiast parowania\n \n \n PG Log Hard Limit\n Twardy limit log\xf3w PG\n \n \n Puts a hard limit on pg log length\n Ustawia twardy limit na d\u0142ugo\u015b\u0107 log\xf3w PG\n \n \n Updated OSD Flags\n Zaktualizowane flagi OSD-k\xf3w\n \n \n out\n poza\n \n \n in\n w\n \n \n down\n upad\u0142y\n \n \n Mark\n Zaznacz\n \n \n OSD lost\n Stracony OSD\n \n \n marked lost\n Zaznaczony jako stracony\n \n \n Purge\n Czy\u015b\u0107\n \n \n OSD\n OSD-ik\n \n \n purged\n Oczyszczony\n \n \n destroy\n Zniszcz\n \n \n destroyed\n Zniszczony\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG-y\n \n \n Read bytes\n Czytanie bajt\xf3w\n \n \n Writes bytes\n Zapis bajt\xf3w\n \n \n Read ops\n Czytanie ops\n \n \n Write ops\n Zapis ops\n \n \n Mark OSD \n \n \n Zaznacz OSD \n \n \n \n \n Mark \n \n \n Zaznacz \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Max zasypywanie\n \n \n Recovery Max Active\n Max aktywno\u015b\u0107 wyzdrowienia\n \n \n Recovery Max Single Start\n Max pojedynczy start wyzdrowienia\n \n \n Recovery Sleep\n U\u015bpienie wyzdrowienia\n \n \n Custom\n Zwyczaj\n \n \n Updated OSD recovery speed priority "\n "\n \n Zaktualizowano pr\u0119dko\u015b\u0107 wyzdrowienia OSD priorytet &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n zosta\u0142 zainicjalizowany w nast\u0119puj\u0105cym OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Praca\n \n \n Severity\n surowo\u015b\u0107\n \n \n Started\n Wystartowany\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Zaktualizowany\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n U\u017cyty\n \n \n Avail.\n Dost\u0119pny\n \n \n Clean\n Czy\u015b\u0107\n \n \n Working\n Dzia\u0142aj\u0105cy\n \n \n Warning\n Ostrze\u017cenie \n \n \n Unknown\n Nieznany\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n Podniesiony\n \n \n no filesystems\n brak system\xf3w plik\xf3w\n \n \n active\n aktywny\n \n \n standby\n Rezerwa\n \n \n n/a\n niedost\u0119pny\n \n \n active daemon\n aktywny demon\n \n \n quorum\n kworum\n \n \n The NFS Ganesha service is not configured.\n Us\u0142uga NFS Ganesha nie jest skonfigurowana\n \n \n Transport\n Transport\n \n \n CephFS User\n U\u017cytkownik CephFS\n \n \n CephFS Filesystem\n system plik\xf3w CephFS \n \n \n (inherited from global config)\n (Odziedziczy\u0142o z globalnej konfiguracji)\n \n \n inherited from global config\n Odziedziczy\u0142o z globalnej konfiguracji\n \n \n -- Select what kind of user id squashing is performed --\n -- Wybierz, jakiego rodzaju identyfikacja u\u017cytkownika ma by\u0107 przeprowadzana -- \n \n \n There are no daemons available.\n Brak dost\u0119pnym demon\xf3w\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Tryb pami\u0119ci podr\u0119cznej\n \n \n Min Evict Age\n Min wiek eksmisji\n \n \n Min Flush Age\n Min wiek wyr\xf3wnania \n \n \n Target Max Bytes\n Max bajt\xf3w obiektu docelowego \n \n \n Target Max Objects\n Max obiekt\xf3w docelowych\n \n \n No applications added\n Nie dodano \u017cadnego zastosowania\n \n \n Applications limit reached\n Osi\u0105gni\u0119to limit zastosowa\u0144 \n \n \n A pool can only have up to four applications definitions.\n Pul mo\u017ce mie\u0107 maksymalnie 4 definicje aplikacji. \n \n \n Allowed characters \'_a-zA-Z0-9\'\n Dozwolone znaki \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Maksymalna d\u0142ugo\u015b\u0107 wynosi 128 znak\xf3w\n \n \n Filter or add applications\n Filtruj lub dodaj zastosowanie\n \n \n Add application\n Dodaj zastosowanie\n \n \n pool\n pool\n \n \n erasure code profile\n skasuj profil kodu\n \n \n Replica Size\n Rozmiar repliki\n \n \n Last Change\n Ostatnia zmiana\n \n \n Erasure Coded Profile\n Skasuj profil zakodowany\n \n \n Crush Ruleset\n Zbi\xf3r zasad Crush\n \n \n Write bytes\n Zapis bajt\xf3w \n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n wiadro\n \n \n Updated Object Gateway bucket "\n "\n \n Zaktualizowano wiadro dost\u0119pu obiektowego &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n Stworzono wiadro dost\u0119pu obiektowego &quot;\n &quot;\n \n \n \n buckets\n Wiadra\n \n \n capability\n capability\n \n \n user\n u\u017cytkownik\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Zaktualizowano u\u017cytkownika dost\u0119pu obiektowego &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n Stworzono u\u017cytkownika dost\u0119pu obiektowego&quot;\n &quot;\n \n \n \n users\n u\u017cytkownicy\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Zakres\n \n \n Read\n Czytaj\n \n \n Create\n Stw\xf3rz\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Utw\xf3rz rol\u0119 \'\n \'\n \n \n \n Updated role \'\n \'\n \n Zaktualizuj rol\u0119 \'\n \'\n \n \n \n System Role\n System roli \n \n \n Deleted role \'\n \'\n \n Usu\u0144 rol\u0119 \'\n \'\n \n \n \n Created user "\n "\n \n Stw\xf3rz u\u017cytkownika &quot;\n &quot;\n \n \n \n Update user\n Zaktualizuj u\u017cytkownika\n \n \n Continue\n Kontynuuj \n \n \n You were automatically logged out because your roles have been changed.\n Zosta\u0142e\u015b automatycznie wylogowany, poniewa\u017c zosta\u0142y zmienione twoje role.\n \n \n Updated user "\n "\n \n Zaktualizowano u\u017cytkownika &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Usuni\u0119to u\u017cytkownika &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Nie uda\u0142o si\u0119 usun\u0105\u0107 u\u017cytkownika &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Jeste\u015b obecnie zalogowany jako&quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Ka\u017cdy obiekt jest podzielony na cz\u0119\u015bci fragment\xf3w danych, ka\u017cdy jest przechowywany na innym OSD.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Oblicz porcje kodu dla ka\u017cdego obiektu i przechowuj je na r\xf3\u017cnych OSD.\n Liczba fragment\xf3w koduj\u0105cych to r\xf3wnie\u017c liczba OSD, kt\xf3re mog\u0105 zosta\u0107 wy\u0142\u0105czone bez utraty danych.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Wtyczka jerasure jest najbardziej uniwersaln\u0105 i elastyczn\u0105 wtyczk\u0105,\n jest to r\xf3wnie\u017c domy\u015blne ustawienie dla pui kodowanych przez Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Bardziej elastyczn\u0105 technik\u0105 jest reed_sol_van: wystarczy ustawi\u0107 k\n oraz m. Technika cauchy_good mo\u017ce by\u0107 szybsza, ale musisz wybra\u0107 rozmiar pakietu\n ostro\u017cnie. Wszystkie reed_sol_r6_op, liberation, blaum_roth, liber8tion s\u0105 odpowiednikami RAID6\n w tym sensie, \u017ce mog\u0105 by\u0107 skonfigurowane tylko z m = 2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n Kodowanie b\u0119dzie wykonywane na pakietach o rozmiarze bajt\xf3w naraz.\n Wyb\xf3r odpowiedniego rozmiaru pakietu jest trudny.\n Dokumentacja jerasure zawiera obszerne informacje na ten temat.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Z wtyczk\u0105 jerasure, gdy obiekt zakodowany przy u\u017cyciu skasowania jest przechowywany na \n wielu OSD-kach, odzyskiwanie po utracie jednego OSD wymaga odczytu ze wszystkich pozosta\u0142ych.\n Na przyk\u0142ad, je\u015bli konfiguracja skryptu ma warto\u015b\u0107 k = 8 ,m = 4 i l=4, utrata jednego OSD wymaga odczytu\n od jedenastu innych do naprawy.\n\n Wtyczka kodu wymazywania lrc tworzy fragmenty o parzysto\u015bci lokalnej, aby m\xf3c je odzyska\u0107\n mniej OSD. Na przyk\u0142ad, je\u015bli lrc jest skonfigurowane z k = 8, m = 4 i l = 4, zostanie utworzony\n dodatkowy fragment parzysto\u015bci na ka\u017cde cztery OSD. Gdy jeden OSD zostanie utracone, mo\u017ce to by\u0107\n odzyskane tylko z czterema OSD zamiast jedenastu.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Grupuj fragmenty kodu i danych w zestawy lokalizacji wielko\u015bci. Na przyk\u0142ad,\n dla k = 4 i m = 2, gdy lokalno\u015b\u0107 = 3 tworzone s\u0105 dwie grupy po trzy. Ka\u017cdy zestaw mo\u017ce\n odzyska\u0107 bez czytania kawa\u0142k\xf3w z innego zestawu.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Typ wiadra CRUSH, w kt\xf3rym zdefiniowano ka\u017cdy zestaw porcji\n przez l zostan\u0105 zapisane. Na przyk\u0142ad, je\u015bli jest ustawiony na rack, ka\u017cda grupa l porcji b\u0119dzie\n umieszczona w innym raku. S\u0142u\u017cy do utworzenia kroku regu\u0142y CRUSH, takiego jak krok wyboru\n racka. Je\u015bli nie jest ustawiony, nie ma takiego grupowania.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Wtyczka isa zawiera bibliotek\u0119 ISA. Dzia\u0142a tylko na procesorach Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Wtyczka ISA jest dost\u0119pna w dw\xf3ch formach Reed Solomon.\n Je\u015bli ustawiono reed_sol_van, jest to Vandermonde, je\u015bli ustawiono cauchy, to jest to Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Wtyczka shec zawiera wiele bibliotek SHEC.\n Pozwala ceph odzyska\u0107 dane bardziej efektywnie ni\u017c kody Reeda Solomona.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Liczba kawa\u0142k\xf3w parzysto\u015bci, z kt\xf3rych ka\u017cdy zawiera ka\u017cd\u0105 porcj\u0119 danych w swoim zakresie oblicze\u0144. Liczba jest u\u017cywana jako estymator trwa\u0142o\u015bci. Na przyk\u0142ad, je\u015bli c = 2,\n 2 OSD mo\u017cna wy\u0142\u0105czy\u0107 bez utraty danych.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Nazwa wiadra crush jest u\u017cyte do pierwszego kroku regu\u0142y CRUSH.\nNa przyk\u0142ad krok jest domy\u015blny.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Upewnij si\u0119, \u017ce \u017cadne dwie porcje nie znajduj\u0105 si\u0119 w wiadrze z t\u0105 sam\u0105 awari\u0105\n domeny. Na przyk\u0142ad, je\u015bli domena awarii jest hostem, nie zostan\u0105 na niej zapisane dwie porcje\n hosta. S\u0142u\u017cy do utworzenia kroku regu\u0142y CRUSH, takiego jak krok wyboru hosta.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Ogranicz umieszczanie do urz\u0105dze\u0144 okre\u015blonej klasy\n (np. ssd lub hdd), u\u017cywaj\u0105c nazw klas urz\u0105dze\u0144 zgniataj\u0105cych na mapie CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Ustaw nazw\u0119 katalogu, z kt\xf3rego \u0142adowana jest wtyczka kodu kasowania.\n \n \n Allows all operations\n Dozwolone s\u0105 wszystkie operacje\n \n \n Allows only operations that do not modify the server\n Dozwolone s\u0105 operacje, kt\xf3re nie modyfikuj\u0105 serweru\n \n \n Does not allow read or write operations, but allows any other operation\n Operacje odczytu i zapisu s\u0105 zakazane, wszystkie inne dozwolone\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Operacje odczytu i zapisu, oraz wszystkie operacje modyfikuj\u0105ce atrybuty albo katalogi s\u0105 zakazane\xa0\n \n \n Allows no access at all\n Brak dost\u0119pu w og\xf3le\n \n \n -- Select the priority --\n -- wybierz priorytet -- \n \n \n Low\n Niski\n \n \n High\n Wysoki\n \n \n Last 5 minutes\n Ostatnie 5 minut\n \n \n Last 15 minutes\n Ostatnie 15 minut\n \n \n Last 30 minutes\n Ostatnie 30 minut\n \n \n Last 1 hour (Default)\n Ostatnia 1 godzina (domy\u015blnie)\n \n \n Last 3 hours\n Ostatnie 3 godziny\n \n \n Last 6 hours\n Ostatnie 6 godzin\n \n \n Last 12 hours\n Ostatnie 12 godzin\n \n \n Last 24 hours\n Ostatnie 24 godziny\n \n \n Yesterday\n Wczoraj\n \n \n Today\n Dzisiaj\n \n \n Today so far\n Do tej pory dzisiaj\n \n \n Day before yesterday\n Przedwczoraj\n \n \n Last 2 days\n Ostatnie 2 dni\n \n \n This day last week\n Tego dnia tydzie\u0144 temu\n \n \n Previous week\n Poprzedni tydzie\u0144\n \n \n This week\n Ten tydzie\u0144 \n \n \n This week so far\n Do tej pory w tym tygodniu\n \n \n Last 7 days\n Ostatnie 7 dni\n \n \n Previous month\n Poprzedniego miesi\u0105ca\n \n \n This month\n ten miesi\u0105c\n \n \n This month so far\n Do tej pory w tym miesi\u0105cu\n \n \n Last 30 days\n Ostatnie 30 dni\n \n \n Last 90 days\n Ostatnie 90 dni\n \n \n Last 6 months\n Ostatnie 6 miesi\u0119cy\n \n \n Last 1 year\n Ostatni 1 rok\n \n \n Previous year\n Poprzedniego roku\n \n \n This year\n Bie\u017c\u0105cego roku\n \n \n This year so far\n Do tej pory bie\u017c\u0105cego roku\n \n \n Last 2 years\n Ostatnie 2 lata\n \n \n Last 5 years\n Ostatnie 5 lat\n \n \n Information\n Informacja\n \n \n No items selected.\n Nie wybrano \u017cadnej pozycji\n \n \n Deselect item to select again\n Odznacz pozycj\u0119, \u017ceby wybra\u0107 ponownie\n \n \n Selection limit reached\n Osi\u0105gni\u0119to limit wyboru. \n \n \n Filter tags\n Filtr tag\xf3w.\n \n \n Add badge\n Dodaj odznak\u0119\n \n \n There are no items available.\n Brak dost\u0119pnych pozycji.\n \n \n Add\n Dodaj\n \n \n Remove\n Remove\n \n \n Clone\n Sklonuj\n \n \n Copy\n Kopia\n \n \n Deep Scrub\n Szoruj g\u0142\u0119boko\n \n \n Destroy\n Zniszcz\n \n \n Flatten\n Sp\u0142aszcz\n \n \n Mark Down\n zaznacz jako upad\u0142y\n \n \n Mark In\n Zaznacz jako w \n \n \n Mark Lost\n Zaznacz jako stracony\n \n \n Mark Out\n Zaznacz jako poza\n \n \n Protect\n Zabezpiecz\n \n \n Rename\n Zmie\u0144 nazw\u0119\n \n \n Restore\n Przywr\xf3\u0107\n \n \n Move to Trash\n Przenie\u015b do kosza\n \n \n Unprotect\n Odbezpiecz \n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Usuni\u0119ty\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Sklonowano\n \n \n Copied\n Skopiowano \n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Tak\n \n \n No\n Nie\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Jako\u015b\u0107 serwisu\n \n \n BPS Limit\n Limit BPS\n \n \n The desired limit of IO bytes per second.\n Po\u017c\u0105dany limit IO bajt\xf3w na sekund\u0119.\n \n \n IOPS Limit\n Limit IOPS\n \n \n The desired limit of IO operations per second.\n Po\u017c\u0105dany limit operacji IO na sekund\u0119.\n \n \n Read BPS Limit\n limit odczytu BPS\n \n \n The desired limit of read bytes per second.\n Po\u017c\u0105dany limit odczytu bajt\xf3w na sekund\u0119.\n \n \n Read IOPS Limit\n limit odczytu IOPS\n \n \n The desired limit of read operations per second.\n Po\u017c\u0105dany limit operacji odczytu na sekund\u0119.\n \n \n Write BPS Limit\n Limit zapisu BPS\n \n \n The desired limit of write bytes per second.\n Po\u017c\u0105dany limit zapisu bajt\xf3w na sekund\u0119.\n \n \n Write IOPS Limit\n Limit zapisu IOPS\n \n \n The desired limit of write operations per second.\n Po\u017c\u0105dany limit operacji zapisu na sekund\u0119.\n \n \n BPS Burst\n Wi\u0105zka BPS\n \n \n The desired burst limit of IO bytes.\n \u017b\u0105dana granica serii IO bajt\xf3w.\n \n \n IOPS Burst\n Wi\u0105zka IOPS\n \n \n The desired burst limit of IO operations.\n \u017b\u0105dana granica serii operacji IO.\n \n \n Read BPS Burst\n Odczyt wi\u0105zki BPS\n \n \n The desired burst limit of read bytes.\n \u017b\u0105dana granica serii odczytanych bajt\xf3w.\n \n \n Read IOPS Burst\n Odczyt wi\u0105zki IOPS\n \n \n The desired burst limit of read operations.\n \u017b\u0105dana granica serii operacji odczytu.\n \n \n Write BPS Burst\n Zapis wi\u0105zki BPS\n \n \n The desired burst limit of write bytes.\n \u017b\u0105dana granica serii bajt\xf3w zapisu.\n \n \n Write IOPS Burst\n Zapis wi\u0105zki IOPS\n \n \n The desired burst limit of write operations.\n \u017b\u0105dana granica serii operacji zapisu.\n \n \n Failed to \n \n \n \n Nie powiod\u0142o si\u0119 \n \n \n \n \n \n Executing\n Wykonywanie \n \n \n execute\n Wykonaj\n \n \n Executed\n Wykonany\n \n \n unknown task\n Nieznane zadanie\n \n \n Creating\n Tworzenie\n \n \n create\n Utw\xf3rz\n \n \n Updating\n Aktualizowanie \n \n \n update\n Zaktualizuj\n \n \n Deleting\n Usuwanie\n \n \n delete\n Usu\u0144\n \n \n RBD \'\n \'\n \n urz\u0105dzenie blokowe Rados\xa0\'\n \'\xa0\n \n \n \n RBD snapshot \'\n \'\n \n migawka RBD \'\n \'\xa0\n \n \n \n mirror mode for pool \'\n \'\n \n tryb lustrzany dla pula \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n Lustrzane parowanie dla pula \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Nazwa jest ju\u017c u\u017cyta przez \n .\n \n \n \n Name is already used by \n .\n \n Nazwa jest ju\u017c u\u017cywana przez \n .\n \n \n \n Name is already used by \n .\n \n Nazwa jest ju\u017c u\u017cywana przez \n .\n \n \n \n \n contains snapshots.\n \n \n zawiera migawk\u0119.\n \n \n \n Cloning\n Klonowanie\n \n \n clone\n Sklonuj \n \n \n Snapshot of \n must be protected.\n \n Migawka \n \xa0 musi by\u0107 zabezpieczona.\n \n \n \n Copying\n Kopiowanie \n \n \n copy\n Kopiuj\n \n \n Flattening\n Sp\u0142aszczanie\n \n \n flatten\n Sp\u0142aszcz\n \n \n Flattened\n Sp\u0142aszczony\n \n \n Name is already used by \n .\n \n Nazwa ju\u017c jest u\u017cywana przez \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Nie mo\u017cna zdj\u0105\u0107 zabezpieczenia \n , poniewa\u017c zawiera pokrewne obrazy.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Nie mo\u017cna usun\u0105\u0107 \n , poniewa\u017c jest zabezpieczony.\n \n \n \n Rolling back\n Wycofywanie \n \n \n rollback\n Wycofanie\n \n \n Rolled back\n Wycofaj\n \n \n Moving\n Przenoszenie\n \n \n move\n Przenie\u015b\n \n \n Moved\n Przeniesiono\n \n \n image \'\n \' to trash\n \n Obraz \'\n \' przenie\u015b do kosza\n \n \n \n Could not find image.\n Nie znaleziono obrazu.\n \n \n Restoring\n Przywracanie\n \n \n restore\n Przywr\xf3\u0107 \n \n \n Restored\n Przywr\xf3cony\n \n \n image \'\n \' into \'\n \'\n \n Obraz \'\n \' w \'\n \' \n \n \n \n Image name \'\n \' is already in use.\n \n Nazwa obrazu \'\n \' jest ju\u017c u\u017cywana. \n \n \n \n image \'\n \'\n \n Obraz \'\n \'\xa0\n \n \n \n Purging\n oczyszcza\u0107\n \n \n purge\n oczy\u015b\u0107\n \n \n Purged\n Oczyszczony\n \n \n all pools\n Wszystkie pule\n \n \n images from \n \n \n Obraz z \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Nie mo\u017cna wy\u0142\u0105czy\u0107 lustrzenia poniewa\u017c zawiera parowanie.\n \n \n pool \'\n \'\n \n pul \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n skasuj profil kodu \'\n \'\n \n \n \n target \'\n \'\n \n docelowy \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},"/TVo":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=(n("urB8"),n("0M9P"));n("xZld"),e.NodeDraggableDirective=function(){function t(t,e,n){this.element=t,this.nodeDraggableService=e,this.renderer=n,this.disposersForDragListeners=[],this.nodeNativeElement=t.nativeElement}return t.prototype.ngOnInit=function(){this.tree.isStatic()||(this.renderer.setAttribute(this.nodeNativeElement,"draggable","true"),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragenter",this.handleDragEnter.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragover",this.handleDragOver.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragstart",this.handleDragStart.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragleave",this.handleDragLeave.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"drop",this.handleDrop.bind(this))),this.disposersForDragListeners.push(this.renderer.listen(this.nodeNativeElement,"dragend",this.handleDragEnd.bind(this))))},t.prototype.ngOnDestroy=function(){this.disposersForDragListeners.forEach(function(t){return t()})},t.prototype.handleDragStart=function(e){e.stopPropagation&&e.stopPropagation(),this.nodeDraggableService.captureNode(new r.CapturedNode(this.nodeDraggable,this.tree)),e.dataTransfer.setData("text",t.DATA_TRANSFER_STUB_DATA),e.dataTransfer.effectAllowed="move"},t.prototype.handleDragOver=function(t){t.preventDefault(),t.dataTransfer.dropEffect="move"},t.prototype.handleDragEnter=function(t){t.preventDefault(),this.containsElementAt(t)&&this.addClass("over-drop-target")},t.prototype.handleDragLeave=function(t){this.containsElementAt(t)||this.removeClass("over-drop-target")},t.prototype.handleDrop=function(t){return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),this.removeClass("over-drop-target"),!!this.isDropPossible(t)&&(this.nodeDraggableService.getCapturedNode()?this.notifyThatNodeWasDropped():void 0)},t.prototype.isDropPossible=function(t){var e=this.nodeDraggableService.getCapturedNode();return e&&e.canBeDroppedAt(this.nodeDraggable)&&this.containsElementAt(t)},t.prototype.handleDragEnd=function(t){this.removeClass("over-drop-target"),this.nodeDraggableService.releaseCapturedNode()},t.prototype.containsElementAt=function(t){var e=t.x,n=t.y;return this.nodeNativeElement.contains(document.elementFromPoint(void 0===e?t.clientX:e,void 0===n?t.clientY:n))},t.prototype.addClass=function(t){this.nodeNativeElement.classList.add(t)},t.prototype.removeClass=function(t){this.nodeNativeElement.classList.remove(t)},t.prototype.notifyThatNodeWasDropped=function(){this.nodeDraggableService.fireNodeDragged(this.nodeDraggableService.getCapturedNode(),this.nodeDraggable)},t.DATA_TRANSFER_STUB_DATA="some browsers enable drag-n-drop only when dataTransfer has data",t.decorators=[{type:a.Directive,args:[{selector:"[nodeDraggable]"}]}],t.propDecorators={nodeDraggable:[{type:a.Input}],tree:[{type:a.Input}]},t}()},"/WYv":function(t,e,n){"use strict";function a(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}n.d(e,"a",function(){return a})},"/X5v":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},0:function(t,e,n){t.exports=n("zUnb")},"0+/T":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("gIcY"),r=n("QFaf"),i=(n("sb0X"),function(){function t(t){this.modalRef=t,this.actionDescription="delete"}return t.prototype.ngOnInit=function(){if(this.deletionForm=new r.a({confirmation:new a.i(!1,[a.A.requiredTrue])}),!this.submitAction&&!this.submitActionObservable)throw new Error("No submit action defined")},t.prototype.callSubmitAction=function(){this.submitActionObservable?this.submitActionObservable().subscribe(null,this.stopLoadingSpinner.bind(this),this.hideModal.bind(this)):this.submitAction()},t.prototype.hideModal=function(){this.modalRef.hide()},t.prototype.stopLoadingSpinner=function(){this.deletionForm.setErrors({cdSubmitButton:!0})},t}())},"0/uQ":function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("6blF"),r=n("Fxb1"),i=n("i4X3");function s(t,e){return e?Object(i.a)(t,e):t instanceof a.a?t:new a.a(Object(r.a)(t))}},"0M9P":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CapturedNode=function(){function t(t,e){this.anElement=t,this.aTree=e}return t.prototype.canBeDroppedAt=function(t){return!this.sameAs(t)&&!this.contains(t)},t.prototype.contains=function(t){return this.element.nativeElement.contains(t.nativeElement)},t.prototype.sameAs=function(t){return this.element===t},Object.defineProperty(t.prototype,"element",{get:function(){return this.anElement},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"tree",{get:function(){return this.aTree},enumerable:!0,configurable:!0}),t}()},"0MID":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("qwkt"),o=n("5tze");n("czA5"),e.DataTableHeaderCellComponent=function(){function t(t){this.cd=t,this.sort=new i.EventEmitter,this.select=new i.EventEmitter,this.columnContextmenu=new i.EventEmitter(!1),this.sortFn=this.onSort.bind(this),this.selectFn=this.select.emit.bind(this.select),this.cellContext={column:this.column,sortDir:this.sortDir,sortFn:this.sortFn,allRowsSelected:this.allRowsSelected,selectFn:this.selectFn}}return Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){return this._allRowsSelected},set:function(t){this._allRowsSelected=t,this.cellContext.allRowsSelected=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.sortDir=this.calcSortDir(t),this.cellContext.sortDir=this.sortDir,this.sortClass=this.calcSortClass(this.sortDir),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-header-cell";if(this.column.sortable&&(t+=" sortable"),this.column.resizeable&&(t+=" resizeable"),this.column.headerClass)if("string"==typeof this.column.headerClass)t+=" "+this.column.headerClass;else if("function"==typeof this.column.headerClass){var e=this.column.headerClass({column:this.column});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',host:{class:"datatable-header-cell"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"0mo+":function(t,e,n){!function(t){"use strict";var e={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},n={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};t.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(t){return t.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===e&&t>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===e&&t<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===e?t+12:t},meridiem:function(t,e,n){return t<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":t<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":t<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":t<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(n("wd/R"))},"0tRk":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("pt-br",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}()},"15JJ":function(t,e,n){"use strict";n.d(e,"a",function(){return c});var a=n("mrSG"),r=n("MGBS"),i=n("rPjj"),s=n("zotm"),o=n("67Y/"),u=n("0/uQ");function c(t,e){return"function"==typeof e?function(n){return n.pipe(c(function(n,a){return Object(u.a)(t(n,a)).pipe(Object(o.a)(function(t,r){return e(n,t,a,r)}))}))}:function(e){return e.lift(new l(t))}}var l=function(){function t(t){this.project=t}return t.prototype.call=function(t,e){return e.subscribe(new d(t,this.project))},t}(),d=function(t){function e(e,n){var a=t.call(this,e)||this;return a.project=n,a.index=0,a}return a.__extends(e,t),e.prototype._next=function(t){var e,n=this.index++;try{e=this.project(t,n)}catch(a){return void this.destination.error(a)}this._innerSub(e,t,n)},e.prototype._innerSub=function(t,e,n){var a=this.innerSubscription;a&&a.unsubscribe();var r=new i.a(this,void 0,void 0);this.destination.add(r),this.innerSubscription=Object(s.a)(this,t,e,n,r)},e.prototype._complete=function(){var e=this.innerSubscription;e&&!e.closed||t.prototype._complete.call(this),this.unsubscribe()},e.prototype._unsubscribe=function(){this.innerSubscription=null},e.prototype.notifyComplete=function(e){this.destination.remove(e),this.innerSubscription=null,this.isStopped&&t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,a,r){this.destination.next(e)},e}(r.a)},"1HVU":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("rdkg"),r=n("CVuo"),i="undefined"!=typeof window?a.getVendorPrefixedName("transform"):void 0,s="undefined"!=typeof window?a.getVendorPrefixedName("backfaceVisibility"):void 0,o="undefined"!=typeof window?!!a.getVendorPrefixedName("transform"):void 0,u="undefined"!=typeof window?!!a.getVendorPrefixedName("perspective"):void 0,c="undefined"!=typeof window?window.navigator.userAgent:"Chrome",l=/Safari\//.test(c)&&!/Chrome\//.test(c);e.translateXY=function(t,e,n){void 0!==i&&o?!l&&u?(t[i]="translate3d("+e+"px, "+n+"px, 0)",t[s]="hidden"):t[r.camelCase(i)]="translate("+e+"px, "+n+"px)":(t.top=n+"px",t.left=e+"px")}},"1Ni5":function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return d});var a=n("gIcY"),r=n("LvDl"),i=n("F/XL"),s=n("gI3B"),o=n("zQHH"),u=n("67Y/"),c=n("t9fZ");function l(t){return null==t||0===t.length}var d=function(){function t(){}return t.email=function(t){return l(t.value)?null:a.A.email(t)},t.ip=function(t){void 0===t&&(t=0);var e=/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i,n=/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i;return a.A.pattern(4===t?e:6===t?n:new RegExp(e.source+"|"+n.source))},t.number=function(t){return void 0===t&&(t=!0),a.A.pattern(t?/^-?[0-9]+$/i:/^[0-9]+$/i)},t.decimalNumber=function(t){return void 0===t&&(t=!0),a.A.pattern(t?/^-?[0-9]+(.[0-9]+)?$/i:/^[0-9]+(.[0-9]+)?$/i)},t.requiredIf=function(t,e){var n=!1;return function(a){return!n&&a.parent&&(Object.keys(t).forEach(function(t){a.parent.get(t).valueChanges.subscribe(function(){a.updateValueAndValidity({emitEvent:!1})})}),n=!0),Object.keys(t).every(function(e){return a.parent&&a.parent.get(e).value===t[e]})&&(r.isFunction(e)?e.call(e,a.value):l(a.value))?{required:!0}:null}},t.custom=function(t,e){var n=this;return function(a){var r,i=e.call(n,a.value);return i?((r={})[t]=i,r):null}},t.validateIf=function(t,e,n,r,i){var s=this;void 0===r&&(r=[]),void 0===i&&(i=[]),n=n.concat(r),t.setValidators(function(t){return e.call(s)?a.A.compose(n)(t):r.length>0?a.A.compose(r)(t):null}),i.forEach(function(e){e.valueChanges.subscribe(function(){t.updateValueAndValidity({emitEvent:!1})})})},t.match=function(t,e){return function(n){var a=n.get(t),i=n.get(e);if(a.value!==i.value)i.setErrors({match:!0});else if(i.hasError("match")){var s=i.errors;r.unset(s,"match"),i.setErrors(r.isEmpty(r.keys(s))?null:s)}return null}},t.unique=function(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=500),function(a){return a.pristine||l(a.value)?Object(i.a)(null):Object(s.a)(n).pipe(Object(o.a)(t.call(e,a.value)),Object(u.a)(function(t){return t?{notUnique:!0}:null}),Object(c.a)(1))}},t.uuid=function(t){void 0===t&&(t=!1);var e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return function(n){return n.pristine&&n.untouched?null:t||n.value?e.test(n.value)?null:{invalidUuid:"This is not a valid UUID"}:null}},t}()},"1PfE":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeEditableEventAction=function(t){return t[t.Cancel=0]="Cancel",t}(e.NodeEditableEventAction||{})},"1fDf":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("FFOo");function r(t){for(;t;){var e=t.destination;if(t.closed||t.isStopped)return!1;t=e&&e instanceof a.a?e:null}return!0}},"1rYy":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(t){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(t)},meridiem:function(t){return t<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":t<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":t<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-\u056b\u0576":t+"-\u0580\u0564";default:return t}},week:{dow:1,doy:7}})}()},"1xZ4":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(t,e){var n=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"\xe8";return"w"!==e&&"W"!==e||(n="a"),t+n},week:{dow:1,doy:4}})}()},"20UP":function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("CcnG"),r=n("t/Na"),i=n("pL04"),s=function(){function t(t){this.http=t,this.settings={}}return t.prototype.ifSettingConfigured=function(t,e,n){var a=this,r=this.settings[t];void 0===r?this.http.get(t).subscribe(function(r){a.settings[t]=a.getSettingsValue(r),a.ifSettingConfigured(t,e,n)},function(e){401!==e.status&&(a.settings[t]="")}):""!==r?e(r):n&&n()},t.prototype.disableSetting=function(t){this.settings[t]=""},t.prototype.getSettingsValue=function(t){return t.value||t.instance||""},t.prototype.validateGrafanaDashboardUrl=function(t){return this.http.get("api/grafana/validation/"+t)},t.ngInjectableDef=a.defineInjectable({factory:function(){return new t(a.inject(r.c))},token:t,providedIn:i.a}),t}()},"25BL":function(t,e,n){"use strict";var a=n("CcnG"),r=n("M/6F"),i=n("NDi4"),s=n("Ip0R"),o=n("gIcY"),u=n("xtZt"),c=n("lqqz"),l=n("fhFe"),d=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"li",[["class","pages"],["role","button"]],[[1,"aria-label",0],[2,"active",null]],null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"a",[["href","javascript:void(0)"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(t.context.$implicit.number)&&a),a},null,null)),(t()(),a["\u0275ted"](2,null,[" "," "]))],null,function(t,e){t(e,0,0,"page "+e.context.$implicit.number,e.context.$implicit.number===e.component.page),t(e,2,0,e.context.$implicit.text)})}function p(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,14,"ul",[["class","pager"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,1,"a",[["aria-label","go to first page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(1)&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"a",[["aria-label","go to previous page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.prevPage()&&a),a},null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,f)),a["\u0275did"](8,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](9,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](10,0,null,null,1,"a",[["aria-label","go to next page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.nextPage()&&a),a},null,null)),(t()(),a["\u0275eld"](11,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](12,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["\u0275eld"](13,0,null,null,1,"a",[["aria-label","go to last page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectPage(r.totalPages)&&a),a},null,null)),(t()(),a["\u0275eld"](14,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null))],function(t,e){t(e,8,0,e.component.pages)},function(t,e){var n=e.component;t(e,1,0,!n.canPrevious()),t(e,3,0,a["\u0275inlineInterpolate"](1,"",n.pagerPreviousIcon,"")),t(e,4,0,!n.canPrevious()),t(e,6,0,a["\u0275inlineInterpolate"](1,"",n.pagerLeftArrowIcon,"")),t(e,9,0,!n.canNext()),t(e,11,0,a["\u0275inlineInterpolate"](1,"",n.pagerRightArrowIcon,"")),t(e,12,0,!n.canNext()),t(e,14,0,a["\u0275inlineInterpolate"](1,"",n.pagerNextIcon,""))})}var h=n("JxMD"),g=n("dgut"),b=n("Fgil"),m=n("ZYCi"),y=n("o4+5"),v=n("aXbf"),_=n("TJUb"),x=n("0MID"),T=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,w)),a["\u0275did"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.targetMarkerContext,n.targetMarkerTemplate)},null)}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==r.select.emit(!r.allRowsSelected)&&a),a},null,null))],null,function(t,e){t(e,1,0,e.component.allRowsSelected)})}function I(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","datatable-header-cell-wrapper"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"span",[["class","datatable-header-cell-label draggable"]],[[8,"innerHTML",1]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a},null,null))],null,function(t,e){t(e,1,0,e.component.name)})}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function k(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,C)),a["\u0275did"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.headerTemplate)},null)}function N(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,9,"div",[["class","datatable-header-cell-template-wrap"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,S)),a["\u0275did"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,O)),a["\u0275did"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,I)),a["\u0275did"](6,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,k)),a["\u0275did"](8,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](9,0,null,null,0,"span",[],[[8,"className",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a},null,null))],function(t,e){var n=e.component;t(e,2,0,n.isTarget),t(e,4,0,n.isCheckboxable),t(e,6,0,!n.column.headerTemplate),t(e,8,0,n.column.headerTemplate)},function(t,e){t(e,9,0,e.component.sortClass)})}var R=n("3MdB"),A=n("M9eX"),D=n("Cc8h"),E=n("ylLw"),L=n("ZYjt"),P=n("tFKq"),M=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function q(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"datatable-header-cell",[["class","datatable-header-cell"],["draggable",""],["long-press",""],["resizeable",""]],[[2,"resizeable",null],[2,"press",null],[2,"longpress",null],[4,"height","px"],[8,"className",0],[1,"title",0],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"width","px"]],[[null,"resize"],[null,"longPressStart"],[null,"longPressEnd"],[null,"sort"],[null,"select"],[null,"columnContextmenu"],[null,"mousedown"],[null,"contextmenu"]],function(t,e,n){var r=!0,i=t.component;return"mousedown"===e&&(r=!1!==a["\u0275nov"](t,2).onMousedown(n)&&r),"mousedown"===e&&(r=!1!==a["\u0275nov"](t,3).onMouseDown(n)&&r),"contextmenu"===e&&(r=!1!==a["\u0275nov"](t,4).onContextmenu(n)&&r),"resize"===e&&(r=!1!==i.onColumnResized(n,t.context.$implicit)&&r),"longPressStart"===e&&(r=!1!==i.onLongPressStart(n)&&r),"longPressEnd"===e&&(r=!1!==i.onLongPressEnd(n)&&r),"sort"===e&&(r=!1!==i.onSort(n)&&r),"select"===e&&(r=!1!==i.select.emit(n)&&r),"columnContextmenu"===e&&(r=!1!==i.columnContextmenu.emit(n)&&r),r},N,T)),a["\u0275did"](1,671744,[[1,4]],0,R.DraggableDirective,[a.ElementRef],{dragEventTarget:[0,"dragEventTarget"],dragModel:[1,"dragModel"],dragX:[2,"dragX"],dragY:[3,"dragY"]},null),a["\u0275did"](2,4341760,null,0,A.ResizeableDirective,[a.ElementRef,a.Renderer2],{resizeEnabled:[0,"resizeEnabled"]},{resize:"resize"}),a["\u0275did"](3,147456,null,0,D.LongPressDirective,[],{pressEnabled:[0,"pressEnabled"],pressModel:[1,"pressModel"]},{longPressStart:"longPressStart",longPressEnd:"longPressEnd"}),a["\u0275did"](4,49152,null,0,x.DataTableHeaderCellComponent,[a.ChangeDetectorRef],{sortType:[0,"sortType"],sortAscendingIcon:[1,"sortAscendingIcon"],sortDescendingIcon:[2,"sortDescendingIcon"],isTarget:[3,"isTarget"],targetMarkerTemplate:[4,"targetMarkerTemplate"],targetMarkerContext:[5,"targetMarkerContext"],allRowsSelected:[6,"allRowsSelected"],selectionType:[7,"selectionType"],column:[8,"column"],headerHeight:[9,"headerHeight"],sorts:[10,"sorts"]},{sort:"sort",select:"select",columnContextmenu:"columnContextmenu"})],function(t,e){var n=e.component;t(e,1,0,n.dragEventTarget,e.context.$implicit,n.reorderable&&e.context.$implicit.draggable&&e.context.$implicit.dragging,!1),t(e,2,0,e.context.$implicit.resizeable),t(e,3,0,n.reorderable&&e.context.$implicit.draggable,e.context.$implicit),t(e,4,1,[n.sortType,n.sortAscendingIcon,n.sortDescendingIcon,e.context.$implicit.isTarget,n.targetMarkerTemplate,e.context.$implicit.targetMarkerContext,n.allRowsSelected,n.selectionType,e.context.$implicit,n.headerHeight,n.sorts])},function(t,e){t(e,0,0,a["\u0275nov"](e,2).resizeEnabled,a["\u0275nov"](e,3).press,a["\u0275nov"](e,3).isLongPress,a["\u0275nov"](e,4).headerHeight,a["\u0275nov"](e,4).columnCssClasses,a["\u0275nov"](e,4).name,a["\u0275nov"](e,4).minWidth,a["\u0275nov"](e,4).maxWidth,a["\u0275nov"](e,4).width)})}function j(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[],[[8,"className",0]],null,null,null,null)),a["\u0275did"](1,278528,null,0,s.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,q)),a["\u0275did"](3,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,1,0,n._styleByGroup[e.context.$implicit.type]),t(e,3,0,e.context.$implicit.columns,n.columnTrackingFn)},function(t,e){t(e,0,0,"datatable-row-"+e.context.$implicit.type)})}function F(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","datatable-header-inner"],["orderable",""]],[[4,"width","px"]],[[null,"reorder"],[null,"targetChanged"]],function(t,e,n){var a=!0,r=t.component;return"reorder"===e&&(a=!1!==r.onColumnReordered(n)&&a),"targetChanged"===e&&(a=!1!==r.onTargetChanged(n)&&a),a},null,null)),a["\u0275did"](1,1196032,null,1,E.OrderableDirective,[a.KeyValueDiffers,L.DOCUMENT],null,{reorder:"reorder",targetChanged:"targetChanged"}),a["\u0275qud"](603979776,1,{draggables:1}),(t()(),a["\u0275and"](16777216,null,null,1,null,j)),a["\u0275did"](4,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,4,0,n._columnsByPin,n.trackByGroups)},function(t,e){t(e,0,0,e.component._columnGroupWidths.total)})}var z=n("Ahxa"),G=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function Y(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function V(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,Y)),a["\u0275did"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["\u0275pod"](2,{rowCount:0,pageSize:1,selectedCount:2,curPage:3,offset:4}),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component,a=t(e,2,0,n.rowCount,n.pageSize,n.selectedCount,n.curPage,n.offset);t(e,1,0,a,n.footerTemplate.template)},null)}function H(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[" "," "," / "]))],null,function(t,e){var n=e.component;t(e,1,0,null==n.selectedCount?null:n.selectedCount.toLocaleString(),n.selectedMessage)})}function B(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,H)),a["\u0275did"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](3,null,[" "," "," "]))],function(t,e){t(e,2,0,e.component.selectedMessage)},function(t,e){var n=e.component;t(e,3,0,null==n.rowCount?null:n.rowCount.toLocaleString(),n.totalMessage)})}function U(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.page.emit(n)&&a),a},p,d)),a["\u0275did"](1,49152,null,0,l.DataTablePagerComponent,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],function(t,e){var n=e.component;t(e,1,0,n.pagerLeftArrowIcon,n.pagerRightArrowIcon,n.pagerPreviousIcon,n.pagerNextIcon,n.pageSize,n.rowCount,n.curPage)},function(t,e){t(e,0,0,!e.component.isVisible)})}function W(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,8,"div",[["class","datatable-footer-inner"]],[[4,"height","px"]],null,null,null,null)),a["\u0275did"](1,278528,null,0,s.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](2,{"selected-count":0}),(t()(),a["\u0275and"](16777216,null,null,1,null,V)),a["\u0275did"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,B)),a["\u0275did"](6,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,U)),a["\u0275did"](8,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.selectedMessage);t(e,1,0,"datatable-footer-inner",a),t(e,4,0,n.footerTemplate),t(e,6,0,!n.footerTemplate),t(e,8,0,!n.footerTemplate)},function(t,e){t(e,0,0,e.component.footerHeight)})}var K=n("uKs4"),$=n("PNOi"),Z=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function X(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","progress-linear"],["role","progressbar"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","container"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,0,"div",[["class","bar"]],null,null,null,null,null))],null,null)}var J=n("YVFZ"),Q=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function tt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onCheckboxChange(n)&&a),a},null,null))],null,function(t,e){t(e,1,0,e.component.isSelected)})}function et(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","icon datatable-icon-collapse"]],null,null,null,null,null))],null,null)}function nt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","icon datatable-icon-up"]],null,null,null,null,null))],null,null)}function at(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","icon datatable-icon-down"]],null,null,null,null,null))],null,null)}function rt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"button",[["class","datatable-tree-button"]],[[8,"disabled",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onTreeAction()&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,et)),a["\u0275did"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,nt)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,at)),a["\u0275did"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,"loading"===n.treeStatus),t(e,5,0,"collapsed"===n.treeStatus),t(e,7,0,"expanded"===n.treeStatus||"disabled"===n.treeStatus)},function(t,e){t(e,0,0,"disabled"===e.component.treeStatus)})}function it(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function st(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,it)),a["\u0275did"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["\u0275pod"](2,{cellContext:0}),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component,a=t(e,2,0,n.cellContext);t(e,1,0,a,n.column.treeToggleTemplate)},null)}function ot(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,rt)),a["\u0275did"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,st)),a["\u0275did"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,2,0,!n.column.treeToggleTemplate),t(e,4,0,n.column.treeToggleTemplate)},null)}function ut(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"span",[],[[8,"title",0],[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.sanitizedValue,n.value)})}function ct(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function lt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,[[1,3],["cellTemplate",2]],null,1,null,ct)),a["\u0275did"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.cellTemplate)},null)}function dt(t){return a["\u0275vid"](2,[a["\u0275qud"](671088640,1,{cellTemplate:0}),(t()(),a["\u0275eld"](1,0,null,null,8,"div",[["class","datatable-body-cell-label"]],[[4,"margin-left","px"]],null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,tt)),a["\u0275did"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,ot)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,ut)),a["\u0275did"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,lt)),a["\u0275did"](9,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.column.checkboxable&&(!n.displayCheck||n.displayCheck(n.row,n.column,n.value))),t(e,5,0,n.column.isTreeColumn),t(e,7,0,!n.column.cellTemplate),t(e,9,0,n.column.cellTemplate)},function(t,e){var n=e.component;t(e,1,0,n.calcLeftMargin(n.column,n.row))})}var ft=n("syrc"),pt=n("FO+L"),ht=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function gt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-cell",[["tabindex","-1"]],[[8,"className",0],[4,"width","px"],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"height",null]],[[null,"activate"],[null,"treeAction"],[null,"focus"],[null,"blur"],[null,"click"],[null,"dblclick"],[null,"keydown"]],function(t,e,n){var r=!0,i=t.component;return"focus"===e&&(r=!1!==a["\u0275nov"](t,1).onFocus()&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,1).onBlur()&&r),"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick(n)&&r),"dblclick"===e&&(r=!1!==a["\u0275nov"](t,1).onDblClick(n)&&r),"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"activate"===e&&(r=!1!==i.onActivate(n,t.context.index)&&r),"treeAction"===e&&(r=!1!==i.onTreeAction()&&r),r},dt,Q)),a["\u0275did"](1,442368,null,0,J.DataTableBodyCellComponent,[a.ElementRef,a.ChangeDetectorRef],{displayCheck:[0,"displayCheck"],group:[1,"group"],rowHeight:[2,"rowHeight"],isSelected:[3,"isSelected"],expanded:[4,"expanded"],rowIndex:[5,"rowIndex"],column:[6,"column"],row:[7,"row"],treeStatus:[8,"treeStatus"]},{activate:"activate",treeAction:"treeAction"})],function(t,e){var n=e.component;t(e,1,0,n.displayCheck,n.group,n.rowHeight,n.isSelected,n.expanded,n.rowIndex,e.context.$implicit,n.row,n.treeStatus)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).columnCssClasses,a["\u0275nov"](e,1).width,a["\u0275nov"](e,1).minWidth,a["\u0275nov"](e,1).maxWidth,a["\u0275nov"](e,1).height)})}function bt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[],[[8,"className",0]],null,null,null,null)),a["\u0275did"](1,278528,null,0,s.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,gt)),a["\u0275did"](3,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,1,0,n._groupStyles[e.context.$implicit.type]),t(e,3,0,e.context.$implicit.columns,n.columnTrackingFn)},function(t,e){t(e,0,0,a["\u0275inlineInterpolate"](1,"datatable-row-",e.context.$implicit.type," datatable-row-group"))})}function mt(t){return a["\u0275vid"](2,[(t()(),a["\u0275and"](16777216,null,null,1,null,bt)),a["\u0275did"](1,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],function(t,e){var n=e.component;t(e,1,0,n._columnsByPin,n.trackByGroups)},null)}var yt=n("rLYq"),vt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function _t(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"keydown"],[null,"mouseenter"]],function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["\u0275nov"](t,1).onMouseenter(n)&&r),r},mt,ht)),a["\u0275did"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],row:[2,"row"],rowIndex:[3,"rowIndex"],offsetX:[4,"offsetX"],rowHeight:[5,"rowHeight"]},null)],function(t,e){var n=e.component;t(e,1,0,n._internalColumns,n.innerWidth,n.summaryRow,-1,n.offsetX,n.rowHeight)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).cssClass,a["\u0275nov"](e,1).rowHeight,a["\u0275nov"](e,1).columnsTotalWidths)})}function xt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,_t)),a["\u0275did"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.summaryRow&&n._internalColumns)},null)}var Tt=n("Mfce"),wt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function St(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function Ot(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,St)),a["\u0275did"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.groupContext,n.groupHeader.template)},null)}function It(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","datatable-group-header"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,s.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Ot)),a["\u0275did"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.getGroupHeaderStyle()),t(e,3,0,n.groupHeader&&n.groupHeader.template)},null)}function Ct(t){return a["\u0275vid"](0,[a["\u0275ncd"](null,0),(t()(),a["\u0275and"](0,null,null,0))],null,null)}function kt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function Nt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,kt)),a["\u0275did"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.rowContext,n.rowDetail.template)},null)}function Rt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","datatable-row-detail"]],[[4,"height","px"]],null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,Nt)),a["\u0275did"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.rowDetail&&n.rowDetail.template)},function(t,e){t(e,0,0,e.component.detailRowHeight)})}function At(t){return a["\u0275vid"](2,[(t()(),a["\u0275and"](16777216,null,null,1,null,It)),a["\u0275did"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Ct)),a["\u0275did"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Rt)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.groupHeader&&n.groupHeader.template),t(e,3,0,n.groupHeader&&n.groupHeader.template&&n.expanded||!n.groupHeader||!n.groupHeader.template),t(e,5,0,n.rowDetail&&n.rowDetail.template&&n.expanded)},null)}var Dt=n("SfHT"),Et=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function Lt(t){return a["\u0275vid"](2,[a["\u0275ncd"](null,0)],null,null)}var Pt=n("7F1K"),Mt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function qt(t){return a["\u0275vid"](2,[a["\u0275ncd"](null,0)],null,null)}var jt=n("IPm6"),Ft=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function zt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-progress",[],null,null,null,X,Z)),a["\u0275did"](1,49152,null,0,$.ProgressBarComponent,[],null,null)],null,null)}function Gt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,xt,vt)),a["\u0275did"](1,573440,null,0,yt.DataTableSummaryRowComponent,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],function(t,e){var n=e.component;t(e,1,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)},null)}function Yt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"treeAction"],[null,"activate"],[null,"keydown"],[null,"mouseenter"]],function(t,e,n){var r=!0,i=t.component;return"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["\u0275nov"](t,1).onMouseenter(n)&&r),"treeAction"===e&&(r=!1!==i.onTreeAction(t.parent.context.$implicit)&&r),"activate"===e&&(r=!1!==a["\u0275nov"](t.parent.parent.parent,2).onActivate(n,i.indexes.first+t.parent.context.index)&&r),r},mt,ht)),a["\u0275did"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],isSelected:[5,"isSelected"],rowIndex:[6,"rowIndex"],displayCheck:[7,"displayCheck"],treeStatus:[8,"treeStatus"],offsetX:[9,"offsetX"],rowHeight:[10,"rowHeight"]},{activate:"activate",treeAction:"treeAction"})],function(t,e){var n=e.component;t(e,1,1,[n.columns,n.innerWidth,n.getRowExpanded(e.parent.context.$implicit),n.rowClass,e.parent.context.$implicit,a["\u0275nov"](e.parent.parent.parent,2).getRowSelected(e.parent.context.$implicit),n.getRowIndex(e.parent.context.$implicit),n.displayCheck,e.parent.context.$implicit.treeStatus,n.offsetX,n.getRowHeight(e.parent.context.$implicit)])},function(t,e){t(e,0,0,a["\u0275nov"](e,1).cssClass,a["\u0275nov"](e,1).rowHeight,a["\u0275nov"](e,1).columnsTotalWidths)})}function Vt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"activate"],[null,"keydown"],[null,"mouseenter"]],function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["\u0275nov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["\u0275nov"](t,1).onMouseenter(n)&&r),"activate"===e&&(r=!1!==a["\u0275nov"](t.parent.parent.parent.parent,2).onActivate(n,t.context.index)&&r),r},mt,ht)),a["\u0275did"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],group:[5,"group"],isSelected:[6,"isSelected"],rowIndex:[7,"rowIndex"],offsetX:[8,"offsetX"],rowHeight:[9,"rowHeight"]},{activate:"activate"})],function(t,e){var n=e.component;t(e,1,0,n.columns,n.innerWidth,n.getRowExpanded(e.context.$implicit),n.rowClass,e.context.$implicit,e.parent.parent.context.$implicit.value,a["\u0275nov"](e.parent.parent.parent.parent,2).getRowSelected(e.context.$implicit),n.getRowIndex(e.context.$implicit),n.offsetX,n.getRowHeight(e.context.$implicit))},function(t,e){t(e,0,0,a["\u0275nov"](e,1).cssClass,a["\u0275nov"](e,1).rowHeight,a["\u0275nov"](e,1).columnsTotalWidths)})}function Ht(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,Vt)),a["\u0275did"](1,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.parent.context.$implicit.value,e.component.rowTrackingFn)},null)}function Bt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"datatable-row-wrapper",[["class","datatable-row-wrapper"]],null,[[null,"rowContextmenu"],[null,"contextmenu"]],function(t,e,n){var r=!0,i=t.component;return"contextmenu"===e&&(r=!1!==a["\u0275nov"](t,2).onContextmenu(n)&&r),"rowContextmenu"===e&&(r=!1!==i.rowContextmenu.emit(n)&&r),r},At,wt)),a["\u0275did"](1,278528,null,0,s.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),a["\u0275did"](2,311296,null,0,Tt.DataTableRowWrapperComponent,[a.ChangeDetectorRef,a.KeyValueDiffers],{innerWidth:[0,"innerWidth"],rowDetail:[1,"rowDetail"],groupHeader:[2,"groupHeader"],offsetX:[3,"offsetX"],detailRowHeight:[4,"detailRowHeight"],row:[5,"row"],groupedRows:[6,"groupedRows"],rowIndex:[7,"rowIndex"],expanded:[8,"expanded"]},{rowContextmenu:"rowContextmenu"}),(t()(),a["\u0275and"](16777216,null,0,1,null,Yt)),a["\u0275did"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["groupedRowsTemplate",2]],0,0,null,Ht))],function(t,e){var n=e.component;t(e,1,0,n.getRowsStyles(e.context.$implicit)),t(e,2,0,n.innerWidth,n.rowDetail,n.groupHeader,n.offsetX,n.getDetailRowHeight(e.context.$implicit[e.context.index],e.context.index),e.context.$implicit,n.groupedRows,n.getRowIndex(e.context.$implicit[e.context.index]),n.getRowExpanded(e.context.$implicit)),t(e,4,0,!n.groupedRows,a["\u0275nov"](e,5))},null)}function Ut(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,xt,vt)),a["\u0275did"](1,278528,null,0,s.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),a["\u0275did"](2,573440,null,0,yt.DataTableSummaryRowComponent,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],function(t,e){var n=e.component;t(e,1,0,n.getBottomSummaryRowStyles()),t(e,2,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)},null)}function Wt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"datatable-scroller",[["class","datatable-scroll"]],[[4,"height","px"],[4,"width","px"]],[[null,"scroll"]],function(t,e,n){var a=!0;return"scroll"===e&&(a=!1!==t.component.onBodyScroll(n)&&a),a},Lt,Et)),a["\u0275did"](1,245760,[[1,4]],0,Dt.ScrollerComponent,[a.NgZone,a.ElementRef,a.Renderer2],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],scrollHeight:[2,"scrollHeight"],scrollWidth:[3,"scrollWidth"]},{scroll:"scroll"}),(t()(),a["\u0275and"](16777216,null,0,1,null,Gt)),a["\u0275did"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Bt)),a["\u0275did"](5,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Ut)),a["\u0275did"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.scrollbarV,n.scrollbarH,n.scrollHeight,null==n.columnGroupWidths?null:n.columnGroupWidths.total),t(e,3,0,n.summaryRow&&"top"===n.summaryPosition),t(e,5,0,n.temp,n.rowTrackingFn),t(e,7,0,n.summaryRow&&"bottom"===n.summaryPosition)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).scrollHeight,a["\u0275nov"](e,1).scrollWidth)})}function Kt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","empty-row"]],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,0,0,e.component.emptyMessage)})}function $t(t){return a["\u0275vid"](2,[a["\u0275qud"](671088640,1,{scroller:0}),(t()(),a["\u0275eld"](1,0,null,null,7,"datatable-selection",[],null,[[null,"select"],[null,"activate"]],function(t,e,n){var a=!0,r=t.component;return"select"===e&&(a=!1!==r.select.emit(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),a},qt,Mt)),a["\u0275did"](2,49152,[["selector",4]],0,Pt.DataTableSelectionComponent,[],{rows:[0,"rows"],selected:[1,"selected"],selectEnabled:[2,"selectEnabled"],selectionType:[3,"selectionType"],rowIdentity:[4,"rowIdentity"],selectCheck:[5,"selectCheck"]},{activate:"activate",select:"select"}),(t()(),a["\u0275and"](16777216,null,0,1,null,zt)),a["\u0275did"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Wt)),a["\u0275did"](6,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,0,1,null,Kt)),a["\u0275did"](8,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.rows,n.selected,n.selectEnabled,n.selectionType,n.rowIdentity,n.selectCheck),t(e,4,0,n.loadingIndicator),t(e,6,0,null==n.rows?null:n.rows.length),t(e,8,0,!(null!=n.rows&&n.rows.length||n.loadingIndicator))},null)}var Zt=n("3/HP"),Xt=n("nhM1"),Jt=n("BARL"),Qt=a["\u0275crt"]({encapsulation:2,styles:[[".ngx-datatable{display:block;overflow:hidden;-webkit-box-pack:center;justify-content:center;position:relative;-webkit-transform:translate3d(0,0,0)}.ngx-datatable [hidden]{display:none!important}.ngx-datatable *,.ngx-datatable :after,.ngx-datatable :before{box-sizing:border-box}.ngx-datatable.scroll-vertical .datatable-body{overflow-y:auto}.ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper{position:absolute}.ngx-datatable.scroll-horz .datatable-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner{white-space:nowrap}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngx-datatable.fixed-row .datatable-scroll,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row{white-space:nowrap}.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ngx-datatable .datatable-body-row,.ngx-datatable .datatable-header-inner,.ngx-datatable .datatable-row-center{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-o-flex-flow:row;flex-flow:row}.ngx-datatable .datatable-body-cell,.ngx-datatable .datatable-header-cell{overflow-x:hidden;vertical-align:top;display:inline-block;line-height:1.625}.ngx-datatable .datatable-body-cell:focus,.ngx-datatable .datatable-header-cell:focus{outline:0}.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{z-index:9}.ngx-datatable .datatable-row-center,.ngx-datatable .datatable-row-group,.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{position:relative}.ngx-datatable .datatable-header{display:block;overflow:hidden}.ngx-datatable .datatable-header .datatable-header-inner{-webkit-box-align:stretch;align-items:stretch;-webkit-align-items:stretch}.ngx-datatable .datatable-header .datatable-header-cell{position:relative;display:inline-block}.ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper{cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper{cursor:move}.ngx-datatable .datatable-header .datatable-header-cell .sort-btn{line-height:100%;vertical-align:middle;display:inline-block;cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable{display:inline-block;position:absolute;right:0;top:0;bottom:0;width:5px;padding:0 4px;visibility:hidden}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle{cursor:ew-resize}.ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable{visibility:visible}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker{position:absolute;top:0;bottom:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft{right:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight{left:0}.ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap{height:inherit}.ngx-datatable .datatable-body{position:relative;z-index:10;display:block}.ngx-datatable .datatable-body .datatable-scroll{display:inline-block}.ngx-datatable .datatable-body .datatable-row-detail{overflow-y:hidden}.ngx-datatable .datatable-body .datatable-row-wrapper{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.ngx-datatable .datatable-body .datatable-body-row{outline:0}.ngx-datatable .datatable-body .datatable-body-row>div{display:-webkit-box;display:flex}.ngx-datatable .datatable-footer{display:block;width:100%}.ngx-datatable .datatable-footer .datatable-footer-inner{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%}.ngx-datatable .datatable-footer .selected-count .page-count{-webkit-box-flex:1;flex:1 1 40%}.ngx-datatable .datatable-footer .selected-count .datatable-pager{-webkit-box-flex:1;flex:1 1 60%}.ngx-datatable .datatable-footer .page-count{-webkit-box-flex:1;flex:1 1 20%}.ngx-datatable .datatable-footer .datatable-pager{-webkit-box-flex:1;flex:1 1 80%;text-align:right}.ngx-datatable .datatable-footer .datatable-pager .pager,.ngx-datatable .datatable-footer .datatable-pager .pager li{padding:0;margin:0;display:inline-block;list-style:none}.ngx-datatable .datatable-footer .datatable-pager .pager li,.ngx-datatable .datatable-footer .datatable-pager .pager li a{outline:0}.ngx-datatable .datatable-footer .datatable-pager .pager li a{cursor:pointer;display:inline-block}.ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a{cursor:not-allowed}"]],data:{}});function te(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"datatable-header",[["class","datatable-header"]],[[4,"height",null],[4,"width",null]],[[null,"sort"],[null,"resize"],[null,"reorder"],[null,"select"],[null,"columnContextmenu"]],function(t,e,n){var a=!0,r=t.component;return"sort"===e&&(a=!1!==r.onColumnSort(n)&&a),"resize"===e&&(a=!1!==r.onColumnResize(n)&&a),"reorder"===e&&(a=!1!==r.onColumnReorder(n)&&a),"select"===e&&(a=!1!==r.onHeaderSelect(n)&&a),"columnContextmenu"===e&&(a=!1!==r.onColumnContextmenu(n)&&a),a},F,M)),a["\u0275did"](1,49152,[[2,4]],0,P.DataTableHeaderComponent,[a.ChangeDetectorRef],{sortAscendingIcon:[0,"sortAscendingIcon"],sortDescendingIcon:[1,"sortDescendingIcon"],scrollbarH:[2,"scrollbarH"],dealsWithGroup:[3,"dealsWithGroup"],targetMarkerTemplate:[4,"targetMarkerTemplate"],innerWidth:[5,"innerWidth"],sorts:[6,"sorts"],sortType:[7,"sortType"],allRowsSelected:[8,"allRowsSelected"],selectionType:[9,"selectionType"],reorderable:[10,"reorderable"],headerHeight:[11,"headerHeight"],columns:[12,"columns"],offsetX:[13,"offsetX"]},{sort:"sort",reorder:"reorder",resize:"resize",select:"select",columnContextmenu:"columnContextmenu"}),a["\u0275pid"](131072,s.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,1,[n.cssClasses.sortAscending,n.cssClasses.sortDescending,n.scrollbarH,n.groupedRows,n.targetMarkerTemplate,n._innerWidth,n.sorts,n.sortType,n.allRowsSelected,n.selectionType,n.reorderable,n.headerHeight,n._internalColumns,a["\u0275unv"](e,1,13,a["\u0275nov"](e,2).transform(n._offsetX))])},function(t,e){t(e,0,0,a["\u0275nov"](e,1).headerHeight,a["\u0275nov"](e,1).headerWidth)})}function ee(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"datatable-footer",[["class","datatable-footer"]],null,[[null,"page"]],function(t,e,n){var a=!0;return"page"===e&&(a=!1!==t.component.onFooterPage(n)&&a),a},W,G)),a["\u0275did"](1,49152,null,0,z.DataTableFooterComponent,[],{footerHeight:[0,"footerHeight"],rowCount:[1,"rowCount"],pageSize:[2,"pageSize"],offset:[3,"offset"],pagerLeftArrowIcon:[4,"pagerLeftArrowIcon"],pagerRightArrowIcon:[5,"pagerRightArrowIcon"],pagerPreviousIcon:[6,"pagerPreviousIcon"],pagerNextIcon:[7,"pagerNextIcon"],totalMessage:[8,"totalMessage"],footerTemplate:[9,"footerTemplate"],selectedCount:[10,"selectedCount"],selectedMessage:[11,"selectedMessage"]},{page:"page"})],function(t,e){var n=e.component;t(e,1,1,[n.footerHeight,n.rowCount,n.pageSize,n.offset,n.cssClasses.pagerLeftArrow,n.cssClasses.pagerRightArrow,n.cssClasses.pagerPrevious,n.cssClasses.pagerNext,n.messages.totalMessage,n.footer,n.selected.length,!!n.selectionType&&n.messages.selectedMessage])},null)}function ne(t){return a["\u0275vid"](2,[a["\u0275qud"](402653184,1,{bodyComponent:0}),a["\u0275qud"](671088640,2,{headerComponent:0}),(t()(),a["\u0275eld"](2,0,null,null,8,"div",[["visibilityObserver",""]],[[2,"visible",null]],[[null,"visible"]],function(t,e,n){var a=!0;return"visible"===e&&(a=!1!==t.component.recalculate()&&a),a},null,null)),a["\u0275did"](3,212992,null,0,K.VisibilityDirective,[a.ElementRef,a.NgZone],null,{visible:"visible"}),(t()(),a["\u0275and"](16777216,null,null,1,null,te)),a["\u0275did"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](6,0,null,null,2,"datatable-body",[["class","datatable-body"]],[[4,"width",null],[4,"height",null]],[[null,"page"],[null,"activate"],[null,"rowContextmenu"],[null,"select"],[null,"scroll"],[null,"treeAction"]],function(t,e,n){var a=!0,r=t.component;return"page"===e&&(a=!1!==r.onBodyPage(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),"rowContextmenu"===e&&(a=!1!==r.onRowContextmenu(n)&&a),"select"===e&&(a=!1!==r.onBodySelect(n)&&a),"scroll"===e&&(a=!1!==r.onBodyScroll(n)&&a),"treeAction"===e&&(a=!1!==r.onTreeAction(n)&&a),a},$t,Ft)),a["\u0275did"](7,245760,[[1,4]],0,jt.DataTableBodyComponent,[a.ChangeDetectorRef],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],loadingIndicator:[2,"loadingIndicator"],externalPaging:[3,"externalPaging"],rowHeight:[4,"rowHeight"],offsetX:[5,"offsetX"],emptyMessage:[6,"emptyMessage"],selectionType:[7,"selectionType"],selected:[8,"selected"],rowIdentity:[9,"rowIdentity"],rowDetail:[10,"rowDetail"],groupHeader:[11,"groupHeader"],selectCheck:[12,"selectCheck"],displayCheck:[13,"displayCheck"],trackByProp:[14,"trackByProp"],rowClass:[15,"rowClass"],groupedRows:[16,"groupedRows"],groupExpansionDefault:[17,"groupExpansionDefault"],innerWidth:[18,"innerWidth"],groupRowsBy:[19,"groupRowsBy"],virtualization:[20,"virtualization"],summaryRow:[21,"summaryRow"],summaryPosition:[22,"summaryPosition"],summaryHeight:[23,"summaryHeight"],pageSize:[24,"pageSize"],rows:[25,"rows"],columns:[26,"columns"],offset:[27,"offset"],rowCount:[28,"rowCount"],bodyHeight:[29,"bodyHeight"]},{scroll:"scroll",page:"page",activate:"activate",select:"select",rowContextmenu:"rowContextmenu",treeAction:"treeAction"}),a["\u0275pid"](131072,s.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,ee)),a["\u0275did"](10,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0),t(e,5,0,n.headerHeight),t(e,7,1,[n.scrollbarV,n.scrollbarH,n.loadingIndicator,n.externalPaging,n.rowHeight,a["\u0275unv"](e,7,5,a["\u0275nov"](e,8).transform(n._offsetX)),n.messages.emptyMessage,n.selectionType,n.selected,n.rowIdentity,n.rowDetail,n.groupHeader,n.selectCheck,n.displayCheck,n.trackByProp,n.rowClass,n.groupedRows,n.groupExpansionDefault,n._innerWidth,n.groupRowsBy,n.virtualization,n.summaryRow,n.summaryPosition,n.summaryHeight,n.pageSize,n._internalRows,n._internalColumns,n.offset,n.rowCount,n.bodyHeight]),t(e,10,0,n.footerHeight)},function(t,e){t(e,2,0,a["\u0275nov"](e,3).isVisible),t(e,6,0,a["\u0275nov"](e,7).bodyWidth,a["\u0275nov"](e,7).bodyHeight)})}var ae=n("lUjN"),re=n("vxfy");n("uIqm"),n.d(e,"a",function(){return ie}),n.d(e,"b",function(){return Oe});var ie=a["\u0275crt"]({encapsulation:0,styles:[[".dataTables_wrapper[_ngcontent-%COMP%]{margin-bottom:25px}.dataTables_wrapper[_ngcontent-%COMP%] .separator[_ngcontent-%COMP%]{height:30px;border-left:1px solid rgba(0,0,0,.09);padding-left:5px;margin-left:5px;display:inline-block;vertical-align:middle}.dataTables_wrapper[_ngcontent-%COMP%] .widget-toolbar[_ngcontent-%COMP%]{display:inline-block;float:right;width:auto;height:30px;line-height:28px;position:relative;border-left:1px solid rgba(0,0,0,.09);cursor:pointer;padding:0 8px;text-align:center}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%]{white-space:nowrap}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]{width:100%;margin-bottom:0;padding-left:20px;padding-right:20px;cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]:hover{background-color:#f5f5f5}.dataTables_wrapper[_ngcontent-%COMP%] .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%] th.oadatatablecheckbox[_ngcontent-%COMP%]{width:16px}.dataTables_wrapper[_ngcontent-%COMP%] .dataTables_length[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{line-height:25px;text-align:right}.dataTables_header[_ngcontent-%COMP%]{background-color:#f5f5f5;border:1px solid #d1d1d1;border-bottom:none;padding:5px;position:relative}.dataTables_header[_ngcontent-%COMP%] .oadatatableactions[_ngcontent-%COMP%]{float:left}.dataTables_header[_ngcontent-%COMP%] .table-filters{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px}.dataTables_header[_ngcontent-%COMP%] .table-filters label{margin-right:4px}.dataTables_header[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%]{padding-left:8px}.dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px;padding-right:8px;width:40%;max-width:250px}.dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .clear-input[_ngcontent-%COMP%], .dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]{height:30px}.dataTables_header[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .clear-input[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{vertical-align:text-top}.dataTables_header[_ngcontent-%COMP%] .input-group.dataTables_paginate[_ngcontent-%COMP%]{width:8%;min-width:85px;padding-right:8px} .oadatatable{border:1px solid #d1d1d1;margin-bottom:0;max-width:none!important} .oadatatable .progress-linear{display:block;position:relative;width:100%;height:5px;padding:0;margin:0} .oadatatable .progress-linear .container{background-color:#afd9ee} .oadatatable .progress-linear .container .bar{left:0;height:100%;width:100%;position:absolute;overflow:hidden;background-color:#afd9ee} .oadatatable .progress-linear .container .bar:before{display:block;position:absolute;content:'';left:-200px;width:200px;height:100%;background-color:#2b99a8;-webkit-animation:3s linear infinite progress-loading;animation:3s linear infinite progress-loading} .oadatatable .datatable-header{background-clip:padding-box;background-color:#f5f5f5;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f5f5f5),to(#ededed));background-image:linear-gradient(to bottom,#f5f5f5 0,#ededed 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffededed', GradientType=0)} .oadatatable .datatable-header .sort-asc, .oadatatable .datatable-header .sort-desc{color:#2b99a8} .oadatatable .datatable-header .datatable-header-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;text-align:left;font-weight:700} .oadatatable .datatable-header .datatable-header-cell .datatable-header-cell-label:after{font-family:ForkAwesome;font-weight:400;height:9px;left:10px;line-height:12px;position:relative;vertical-align:baseline;width:12px} .oadatatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-label:after{content:' \\f0dc'} .oadatatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-asc .datatable-header-cell-label:after{content:' \\f160'} .oadatatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-desc .datatable-header-cell-label:after{content:' \\f161'} .oadatatable .datatable-header .datatable-header-cell:first-child{border-left:none} .oadatatable .datatable-body .empty-row{background-color:#fff3cd;text-align:center;font-weight:700;font-style:italic;padding-top:5px;padding-bottom:5px} .oadatatable .datatable-body .datatable-body-row .label{font-size:.9em} .oadatatable .datatable-body .datatable-body-row.clickable:hover .datatable-row-group{background-color:#eee;-webkit-transition-property:background;transition-property:background;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:linear;transition-timing-function:linear} .oadatatable .datatable-body .datatable-body-row.datatable-row-even{background-color:#fff} .oadatatable .datatable-body .datatable-body-row.datatable-row-odd{background-color:#f5f5f5} .oadatatable .datatable-body .datatable-body-row.active, .oadatatable .datatable-body .datatable-body-row.active:hover{background-color:#d9edf7} .oadatatable .datatable-body .datatable-body-row .datatable-body-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1} .oadatatable .datatable-body .datatable-body-row .datatable-body-cell:first-child{border-left:none} .oadatatable .datatable-body .datatable-body-row .datatable-body-cell .datatable-body-cell-label{display:block} .oadatatable .datatable-footer .page-count, .oadatatable .datatable-footer .selected-count{font-style:italic;padding-left:5px} .oadatatable .datatable-footer .datatable-pager .pager{margin-right:5px!important} .oadatatable .datatable-footer .datatable-pager .pager li:not(:first-child){margin-left:3px} .oadatatable .datatable-footer .datatable-pager .pager li>a, .oadatatable .datatable-footer .datatable-pager .pager li>span{border-radius:3px} .oadatatable .datatable-footer .datatable-pager .pager .pages>a, .oadatatable .datatable-footer .datatable-pager .pager .pages>span{display:inline-block;padding:5px 10px;margin-bottom:5px;border:none} .oadatatable .datatable-footer .datatable-pager .pager .pages a:hover{background-color:#afd9ee} .oadatatable .datatable-footer .datatable-pager .pager .pages.active>a{background-color:#d9edf7}@-webkit-keyframes progress-loading{from{left:-200px;width:15%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}@keyframes progress-loading{from{left:-200px;width:15%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}"]],data:{}});function se(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-error-panel",[],null,null,null,r.b,r.a)),a["\u0275did"](1,49152,null,0,i.a,[],null,null),(t()(),a["\u0275ted"](-1,0,["Failed to load data."]))],null,null)}function oe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"div",[["class","input-group dataTables_paginate"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"input",[["class","form-control"],["max","9999"],["min","1"],["type","number"]],[[8,"value",0]],[[null,"click"],[null,"keyup"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.setLimit(n)&&a),"keyup"===e&&(a=!1!==r.setLimit(n)&&a),"blur"===e&&(a=!1!==r.setLimit(n)&&a),a},null,null))],null,function(t,e){t(e,1,0,e.component.userConfig.limit)})}function ue(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"li",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,3,"label",[],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,0,"input",[["type","checkbox"]],[[8,"name",0],[8,"checked",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.toggleColumn(n)&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](4,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.prop,!e.context.$implicit.isHidden),t(e,4,0,e.context.$implicit.name)})}function ce(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ue)),a["\u0275did"](2,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.columns)},null)}function le(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","widget-toolbar tc_refreshBtn"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"a",[],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.refreshBtn()&&a),a},null,null)),(t()(),a["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-lg fa-refresh"]],[[2,"fa-spin",null]],null,null,null,null))],null,function(t,e){var n=e.component;t(e,2,0,n.updating||n.loadingIndicator)})}function de(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,28,"div",[["class","dataTables_header clearfix form-inline"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","oadatatableactions"]],null,null,null,null,null)),a["\u0275ncd"](null,0),a["\u0275ncd"](null,1),(t()(),a["\u0275eld"](4,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[["class","glyphicon glyphicon-search"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,5,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var r=!0,i=t.component;return"input"===e&&(r=!1!==a["\u0275nov"](t,8)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,8).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["\u0275nov"](t,8)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["\u0275nov"](t,8)._compositionEnd(n.target.value)&&r),"ngModelChange"===e&&(r=!1!==(i.search=n)&&r),"keyup"===e&&(r=!1!==i.updateFilter()&&r),r},null,null)),a["\u0275did"](8,16384,null,0,o.e,[a.Renderer2,a.ElementRef,[2,o.b]],null,null),a["\u0275prd"](1024,null,o.p,function(t){return[t]},[o.e]),a["\u0275did"](10,671744,null,0,o.u,[[8,null],[8,null],[8,null],[6,o.p]],{model:[0,"model"]},{update:"ngModelChange"}),a["\u0275prd"](2048,null,o.q,null,[o.u]),a["\u0275did"](12,16384,null,0,o.r,[[4,o.q]],null,null),(t()(),a["\u0275eld"](13,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),a["\u0275eld"](14,0,null,null,1,"button",[["class","btn btn-default clear-input tc_clearInputBtn"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.updateFilter(!0)&&a),a},null,null)),(t()(),a["\u0275eld"](15,0,null,null,0,"i",[["class","icon-prepend fa fa-remove"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,oe)),a["\u0275did"](17,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](18,0,null,null,8,"div",[["class","widget-toolbar"]],null,null,null,null,null)),(t()(),a["\u0275eld"](19,16777216,null,null,7,"div",[["class","dropdown tc_menuitem tc_menuitem_cluster"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["\u0275prd"](512,null,u.f,u.f,[]),a["\u0275did"](21,212992,null,0,u.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,c.a,u.a,u.f],null,null),(t()(),a["\u0275eld"](22,0,null,null,2,"a",[["class","btn btn-sm btn-default dropdown-toggle tc_columnBtn"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,23).onClick()&&r),r},null,null)),a["\u0275did"](23,147456,null,0,u.g,[a.ChangeDetectorRef,u.c,a.ElementRef,a.Renderer2,u.f],null,null),(t()(),a["\u0275eld"](24,0,null,null,0,"i",[["class","fa fa-lg fa-table"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ce)),a["\u0275did"](26,16384,null,0,u.d,[u.f,a.ViewContainerRef,a.TemplateRef],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,le)),a["\u0275did"](28,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,10,0,n.search),t(e,17,0,n.limit),t(e,21,0),t(e,28,0,n.fetchData.observers.length>0)},function(t,e){t(e,7,0,a["\u0275nov"](e,12).ngClassUntouched,a["\u0275nov"](e,12).ngClassTouched,a["\u0275nov"](e,12).ngClassPristine,a["\u0275nov"](e,12).ngClassDirty,a["\u0275nov"](e,12).ngClassValid,a["\u0275nov"](e,12).ngClassInvalid,a["\u0275nov"](e,12).ngClassPending),t(e,19,0,a["\u0275nov"](e,21).dropup,a["\u0275nov"](e,21).isOpen,a["\u0275nov"](e,21).isOpen&&a["\u0275nov"](e,21).isBs4),t(e,22,0,!0,a["\u0275nov"](e,23).isDisabled,a["\u0275nov"](e,23).isOpen)})}function fe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[" "," "])),(t()(),a["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["selected"])),(t()(),a["\u0275ted"](-1,null,[" / "]))],null,function(t,e){t(e,1,0,e.parent.context.selectedCount)})}function pe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[" "," "])),(t()(),a["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["found"])),(t()(),a["\u0275ted"](-1,null,[" / "]))],null,function(t,e){t(e,1,0,e.parent.context.rowCount)})}function he(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,8,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,fe)),a["\u0275did"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,pe)),a["\u0275did"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](5,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](6,null,[" "," "])),(t()(),a["\u0275eld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["total"])),(t()(),a["\u0275eld"](9,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["\u0275nov"](t.parent,17).onFooterPage(n)&&r),r},p,d)),a["\u0275did"](10,49152,null,0,l.DataTablePagerComponent,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],function(t,e){var n=e.component;t(e,2,0,n.selectionType),t(e,4,0,e.context.rowCount!=(null==n.data?null:n.data.length)),t(e,10,0,n.paginationClasses.pagerLeftArrow,n.paginationClasses.pagerRightArrow,n.paginationClasses.pagerPrevious,n.paginationClasses.pagerNext,e.context.pageSize,e.context.rowCount,e.context.curPage)},function(t,e){var n=e.component;t(e,6,0,(null==n.data?null:n.data.length)||0),t(e,9,0,!(e.context.rowCount/e.context.pageSize>1))})}function ge(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.context.value)})}function be(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-sparkline",[],null,null,null,h.b,h.a)),a["\u0275did"](1,638976,null,0,g.a,[b.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],function(t,e){t(e,1,0,e.context.value,e.context.row.cdIsBinary)},null)}function me(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),r},null,null)),a["\u0275did"](1,671744,null,0,m.o,[m.l,m.a,s.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),a["\u0275pad"](2,1),(t()(),a["\u0275ted"](3,null,["",""]))],function(t,e){var n=e.context.row.cdParams,a=t(e,2,0,e.context.row.cdLink);t(e,1,0,n,a)},function(t,e){t(e,0,0,a["\u0275nov"](e,1).target,a["\u0275nov"](e,1).href),t(e,3,0,e.context.value)})}function ye(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","fa fa-check fa-fw"]],[[8,"hidden",0]],null,null,null,null))],null,function(t,e){t(e,0,0,!e.context.value)})}function ve(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](0,null,[" "," /s\n"])),a["\u0275ppd"](1,1)],null,function(t,e){var n=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent,0),e.context.value));t(e,0,0,n)})}function _e(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"i",[["class","fa fa-spinner fa-spin fa-fw"]],null,null,null,null,null))],null,null)}function xe(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","text-muted italic"]],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["(",")"]))],null,function(t,e){t(e,1,0,e.parent.context.row.cdExecuting)})}function Te(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,_e)),a["\u0275did"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](2,null,[" "," "])),(t()(),a["\u0275and"](16777216,null,null,1,null,xe)),a["\u0275did"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.row.cdExecuting),t(e,4,0,e.context.row.cdExecuting)},function(t,e){t(e,2,0,e.context.value)})}function we(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,0,0,a["\u0275inlineInterpolate"](1,"",e.component.useCustomClass(e.context.value),"")),t(e,1,0,e.context.value)})}function Se(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""])),a["\u0275ppd"](2,2)],null,function(t,e){var n=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent,1),e.context.value,null==e.context.column?null:e.context.column.customTemplateConfig));t(e,1,0,n)})}function Oe(t){return a["\u0275vid"](2,[a["\u0275pid"](0,y.a,[v.a]),a["\u0275pid"](0,_.a,[]),a["\u0275qud"](402653184,1,{table:0}),a["\u0275qud"](402653184,2,{tableCellBoldTpl:0}),a["\u0275qud"](402653184,3,{sparklineTpl:0}),a["\u0275qud"](402653184,4,{routerLinkTpl:0}),a["\u0275qud"](402653184,5,{checkIconTpl:0}),a["\u0275qud"](402653184,6,{perSecondTpl:0}),a["\u0275qud"](402653184,7,{executingTpl:0}),a["\u0275qud"](402653184,8,{classAddingTpl:0}),a["\u0275qud"](402653184,9,{mapTpl:0}),(t()(),a["\u0275and"](16777216,null,null,1,null,se)),a["\u0275did"](12,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](13,0,null,null,13,"div",[["class","dataTables_wrapper"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,de)),a["\u0275did"](15,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](16,0,null,null,10,"ngx-datatable",[["class","bootstrap oadatatable ngx-datatable"]],[[2,"fixed-header",null],[2,"fixed-row",null],[2,"scroll-vertical",null],[2,"virtualized",null],[2,"scroll-horz",null],[2,"selectable",null],[2,"checkbox-selection",null],[2,"cell-selection",null],[2,"single-selection",null],[2,"multi-selection",null],[2,"multi-click-selection",null]],[[null,"select"],[null,"sort"],["window","resize"]],function(t,e,n){var r=!0,i=t.component;return"window:resize"===e&&(r=!1!==a["\u0275nov"](t,17).onWindowResize()&&r),"select"===e&&(r=!1!==i.onSelect(n)&&r),"sort"===e&&(r=!1!==i.changeSorting(n)&&r),r},ne,Qt)),a["\u0275did"](17,5750784,[[1,4],["table",4]],4,Zt.DatatableComponent,[[1,pt.ScrollbarHelper],[1,Xt.DimensionsHelper],a.ChangeDetectorRef,a.ElementRef,a.KeyValueDiffers,Jt.ColumnChangesService],{rows:[0,"rows"],columns:[1,"columns"],selected:[2,"selected"],rowHeight:[3,"rowHeight"],columnMode:[4,"columnMode"],headerHeight:[5,"headerHeight"],footerHeight:[6,"footerHeight"],limit:[7,"limit"],loadingIndicator:[8,"loadingIndicator"],selectionType:[9,"selectionType"],sorts:[10,"sorts"],cssClasses:[11,"cssClasses"],rowIdentity:[12,"rowIdentity"],rowClass:[13,"rowClass"]},{select:"select",sort:"sort"}),a["\u0275qud"](603979776,10,{columnTemplates:1}),a["\u0275qud"](335544320,11,{rowDetail:0}),a["\u0275qud"](335544320,12,{groupHeader:0}),a["\u0275qud"](335544320,13,{footer:0}),(t()(),a["\u0275eld"](22,0,null,null,4,"ngx-datatable-footer",[],null,null,null,null,null)),a["\u0275did"](23,16384,[[13,4]],1,ae.DatatableFooterDirective,[],null,null),a["\u0275qud"](335544320,14,{template:0}),(t()(),a["\u0275and"](0,[[14,2]],null,1,null,he)),a["\u0275did"](26,16384,null,0,re.DataTableFooterTemplateDirective,[a.TemplateRef],null,null),a["\u0275ncd"](null,2),(t()(),a["\u0275and"](0,[[2,2],["tableCellBoldTpl",2]],null,0,null,ge)),(t()(),a["\u0275and"](0,[[3,2],["sparklineTpl",2]],null,0,null,be)),(t()(),a["\u0275and"](0,[[4,2],["routerLinkTpl",2]],null,0,null,me)),(t()(),a["\u0275and"](0,[[5,2],["checkIconTpl",2]],null,0,null,ye)),(t()(),a["\u0275and"](0,[[6,2],["perSecondTpl",2]],null,0,null,ve)),(t()(),a["\u0275and"](0,[[7,2],["executingTpl",2]],null,0,null,Te)),(t()(),a["\u0275and"](0,[[8,2],["classAddingTpl",2]],null,0,null,we)),(t()(),a["\u0275and"](0,[[9,2],["mapTpl",2]],null,0,null,Se))],function(t,e){var n=e.component;t(e,12,0,n.loadingError),t(e,15,0,n.toolHeader),t(e,17,1,[n.rows,n.tableColumns,n.selection.selected,"auto",n.columnMode,n.header?"auto":0,n.footer?"auto":0,n.userConfig.limit>0?n.userConfig.limit:void 0,n.loadingIndicator,n.selectionType,n.userConfig.sorts,n.paginationClasses,n.rowIdentity(),n.getRowClass()])},function(t,e){t(e,16,1,[a["\u0275nov"](e,17).isFixedHeader,a["\u0275nov"](e,17).isFixedRow,a["\u0275nov"](e,17).isVertScroll,a["\u0275nov"](e,17).isVirtualized,a["\u0275nov"](e,17).isHorScroll,a["\u0275nov"](e,17).isSelectable,a["\u0275nov"](e,17).isCheckboxSelection,a["\u0275nov"](e,17).isCellSelection,a["\u0275nov"](e,17).isSingleSelection,a["\u0275nov"](e,17).isMultiSelection,a["\u0275nov"](e,17).isMultiClickSelection])})}},"26FU":function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("K9Ia"),i=n("8g8A"),s=function(t){function e(e){var n=t.call(this)||this;return n._value=e,n}return a.__extends(e,t),Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),e.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return n&&!n.closed&&e.next(this._value),n},e.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new i.a;return this._value},e.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},e}(r.a)},"2Bdj":function(t,e,n){"use strict";function a(t){return"function"==typeof t}n.d(e,"a",function(){return a})},"2EZI":function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("gIcY"),i=n("QFaf"),s=n("CcnG"),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.group=function(e,n){void 0===n&&(n=null);var a=t.prototype.group.call(this,e,n);return new i.a(a.controls,a.validator,a.asyncValidator)},e.ngInjectableDef=s.defineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e}(r.h)},"2UWG":function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3");function i(t){return void 0!==t._view.width}function s(t){var e,n,a,r,s=t._view;if(i(t)){var o=s.width/2;e=s.x-o,n=s.x+o,a=Math.min(s.y,s.base),r=Math.max(s.y,s.base)}else{var u=s.height/2;e=Math.min(s.x,s.base),n=Math.max(s.x,s.base),a=s.y-u,r=s.y+u}return{left:e,top:a,right:n,bottom:r}}a._set("global",{elements:{rectangle:{backgroundColor:a.global.defaultColor,borderColor:a.global.defaultColor,borderSkipped:"bottom",borderWidth:0}}}),t.exports=r.extend({draw:function(){var t,e,n,a,r,i,s,o=this._chart.ctx,u=this._view,c=u.borderWidth;if(u.horizontal?(n=u.y-u.height/2,a=u.y+u.height/2,r=(e=u.x)>(t=u.base)?1:-1,i=1,s=u.borderSkipped||"left"):(t=u.x-u.width/2,e=u.x+u.width/2,r=1,i=(a=u.base)>(n=u.y)?1:-1,s=u.borderSkipped||"bottom"),c){var l=Math.min(Math.abs(t-e),Math.abs(n-a)),d=(c=c>l?l:c)/2,f=t+("left"!==s?d*r:0),p=e+("right"!==s?-d*r:0),h=n+("top"!==s?d*i:0),g=a+("bottom"!==s?-d*i:0);f!==p&&(n=h,a=g),h!==g&&(t=f,e=p)}o.beginPath(),o.fillStyle=u.backgroundColor,o.strokeStyle=u.borderColor,o.lineWidth=c;var b=[[t,a],[t,n],[e,n],[e,a]],m=["bottom","left","top","right"].indexOf(s,0);function y(t){return b[(m+t)%4]}-1===m&&(m=0);var v=y(0);o.moveTo(v[0],v[1]);for(var _=1;_<4;_++)v=y(_),o.lineTo(v[0],v[1]);o.fill(),c&&o.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var a=s(this);n=t>=a.left&&t<=a.right&&e>=a.top&&e<=a.bottom}return n},inLabelRange:function(t,e){if(!this._view)return!1;var n=s(this);return i(this)?t>=n.left&&t<=n.right:e>=n.top&&e<=n.bottom},inXRange:function(t){var e=s(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=s(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},"2V7f":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("IPm6")),a(n("YVFZ")),a(n("syrc")),a(n("PNOi")),a(n("SfHT")),a(n("Mfce")),a(n("7F1K")),a(n("99TG")),a(n("Fjl2")),a(n("VHo1"))},"2WpN":function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("FFOo"),i=n("pugT");function s(t){return function(e){return e.lift(new o(t))}}var o=function(){function t(t){this.callback=t}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.callback))},t}(),u=function(t){function e(e,n){var a=t.call(this,e)||this;return a.add(new i.a(n)),a}return a.__extends(e,t),e}(r.a)},"2ePl":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return t&&"number"==typeof t.length&&"function"!=typeof t}},"2fjn":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}}})}()},"2ykv":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"3/HP":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;na){for(var o=r[a],u=a;un;u--)r[u]=r[u-1];r[n]=o}this._internalColumns=r,this.reorder.emit({column:e,newValue:n,prevValue:a})},t.prototype.onColumnSort=function(t){this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected})),this.sorts=t.sorts,!1===this.externalSorting&&this.sortInternalRows(),this._internalRows=o.groupRowsByParents(this._internalRows,o.optionalGetterForProp(this.treeFromRelation),o.optionalGetterForProp(this.treeToRelation)),this.offset=0,this.bodyComponent.updateOffsetY(this.offset),this.sort.emit(t)},t.prototype.onHeaderSelect=function(t){var e,n;if(this.selectAllRowsOnPage){var a=this.bodyComponent.indexes.first,r=this.bodyComponent.indexes.last,i=this.selected.length===r-a;this.selected=[],i||(e=this.selected).push.apply(e,this._internalRows.slice(a,r))}else i=this.selected.length===this.rows.length,this.selected=[],i||(n=this.selected).push.apply(n,this.rows);this.select.emit({selected:this.selected})},t.prototype.onBodySelect=function(t){this.select.emit(t)},t.prototype.onTreeAction=function(t){var e=this,n=t.row,a=this._rows.findIndex(function(n){return n[e.treeToRelation]===t.row[e.treeToRelation]});this.treeAction.emit({row:n,rowIndex:a})},t.prototype.ngOnDestroy=function(){this._subscriptions.forEach(function(t){return t.unsubscribe()})},t.prototype.listenForColumnInputChanges=function(){var t=this;this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe(function(){t.columnTemplates&&t.columnTemplates.notifyOnChanges()}))},t.prototype.sortInternalRows=function(){this._internalRows=o.sortRows(this._internalRows,this._internalColumns,this.sorts)},a([s.Input(),r("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),a([s.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"rows",null),a([s.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"groupRowsBy",null),a([s.Input(),r("design:type",Array)],t.prototype,"groupedRows",void 0),a([s.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"columns",null),a([s.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([s.Input(),r("design:type",Number)],t.prototype,"rowHeight",void 0),a([s.Input(),r("design:type",String)],t.prototype,"columnMode",void 0),a([s.Input(),r("design:type",Object)],t.prototype,"headerHeight",void 0),a([s.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"externalPaging",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"externalSorting",void 0),a([s.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"limit",null),a([s.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([s.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"offset",null),a([s.Input(),r("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),a([s.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"reorderable",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"swapColumns",void 0),a([s.Input(),r("design:type",String)],t.prototype,"sortType",void 0),a([s.Input(),r("design:type",Array)],t.prototype,"sorts",void 0),a([s.Input(),r("design:type",Object)],t.prototype,"cssClasses",void 0),a([s.Input(),r("design:type",Object)],t.prototype,"messages",void 0),a([s.Input(),r("design:type",Function)],t.prototype,"rowIdentity",void 0),a([s.Input(),r("design:type",Object)],t.prototype,"rowClass",void 0),a([s.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([s.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),a([s.Input(),r("design:type",String)],t.prototype,"trackByProp",void 0),a([s.Input(),r("design:type",Object)],t.prototype,"selectAllRowsOnPage",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"virtualization",void 0),a([s.Input(),r("design:type",String)],t.prototype,"treeFromRelation",void 0),a([s.Input(),r("design:type",String)],t.prototype,"treeToRelation",void 0),a([s.Input(),r("design:type",Boolean)],t.prototype,"summaryRow",void 0),a([s.Input(),r("design:type",Number)],t.prototype,"summaryHeight",void 0),a([s.Input(),r("design:type",String)],t.prototype,"summaryPosition",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"scroll",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"activate",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"select",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"sort",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"page",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"reorder",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"resize",void 0),a([s.Output(),r("design:type",Object)],t.prototype,"tableContextmenu",void 0),a([s.Output(),r("design:type",s.EventEmitter)],t.prototype,"treeAction",void 0),a([s.HostBinding("class.fixed-header"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isFixedHeader",null),a([s.HostBinding("class.fixed-row"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isFixedRow",null),a([s.HostBinding("class.scroll-vertical"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isVertScroll",null),a([s.HostBinding("class.virtualized"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isVirtualized",null),a([s.HostBinding("class.scroll-horz"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isHorScroll",null),a([s.HostBinding("class.selectable"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isSelectable",null),a([s.HostBinding("class.checkbox-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isCheckboxSelection",null),a([s.HostBinding("class.cell-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isCellSelection",null),a([s.HostBinding("class.single-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isSingleSelection",null),a([s.HostBinding("class.multi-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isMultiSelection",null),a([s.HostBinding("class.multi-click-selection"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isMultiClickSelection",null),a([s.ContentChildren(d.DataTableColumnDirective),r("design:type",s.QueryList),r("design:paramtypes",[s.QueryList])],t.prototype,"columnTemplates",null),a([s.ContentChild(f.DatatableRowDetailDirective),r("design:type",f.DatatableRowDetailDirective)],t.prototype,"rowDetail",void 0),a([s.ContentChild(l.DatatableGroupHeaderDirective),r("design:type",l.DatatableGroupHeaderDirective)],t.prototype,"groupHeader",void 0),a([s.ContentChild(p.DatatableFooterDirective),r("design:type",p.DatatableFooterDirective)],t.prototype,"footer",void 0),a([s.ViewChild(c.DataTableBodyComponent),r("design:type",c.DataTableBodyComponent)],t.prototype,"bodyComponent",void 0),a([s.ViewChild(h.DataTableHeaderComponent),r("design:type",h.DataTableHeaderComponent)],t.prototype,"headerComponent",void 0),a([s.HostListener("window:resize"),o.throttleable(5),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onWindowResize",null),a([s.Component({selector:"ngx-datatable",template:'\n \n \n \n \n \n \n \n \n ',changeDetection:s.ChangeDetectionStrategy.OnPush,encapsulation:s.ViewEncapsulation.None,styleUrls:["./datatable.component.css"],host:{class:"ngx-datatable"}})],t)}()},"35yf":function(t,e,n){"use strict";n("CDJp")._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),t.exports=function(t){t.controllers.scatter=t.controllers.line}},"3E1r":function(t,e,n){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};t.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924"===e?t<4?t:t+12:"\u0938\u0941\u092c\u0939"===e?t:"\u0926\u094b\u092a\u0939\u0930"===e?t>=10?t:t+12:"\u0936\u093e\u092e"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0930\u093e\u0924":t<10?"\u0938\u0941\u092c\u0939":t<17?"\u0926\u094b\u092a\u0939\u0930":t<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(n("wd/R"))},"3MdB":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("DtyJ"),o=n("ahDk");e.DraggableDirective=function(){function t(t){this.dragX=!0,this.dragY=!0,this.dragStart=new i.EventEmitter,this.dragging=new i.EventEmitter,this.dragEnd=new i.EventEmitter,this.isDragging=!1,this.element=t.nativeElement}return t.prototype.ngOnChanges=function(t){t.dragEventTarget&&t.dragEventTarget.currentValue&&this.dragModel.dragging&&this.onMousedown(t.dragEventTarget.currentValue)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(t){this.isDragging&&(this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this._destroySubscription(),this.dragEnd.emit({event:t,element:this.element,model:this.dragModel})))},t.prototype.onMousedown=function(t){var e=this;if(t.target.classList.contains("draggable")&&(this.dragX||this.dragY)){t.preventDefault(),this.isDragging=!0;var n={x:t.clientX,y:t.clientY},a=s.fromEvent(document,"mouseup");this.subscription=a.subscribe(function(t){return e.onMouseup(t)});var r=s.fromEvent(document,"mousemove").pipe(o.takeUntil(a)).subscribe(function(t){return e.move(t,n)});this.subscription.add(r),this.dragStart.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype.move=function(t,e){if(this.isDragging){var n=t.clientY-e.y;this.dragX&&(this.element.style.left=t.clientX-e.x+"px"),this.dragY&&(this.element.style.top=n+"px"),this.element.classList.add("dragging"),this.dragging.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Object)],t.prototype,"dragEventTarget",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"dragModel",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragX",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragY",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragging",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragEnd",void 0),a([i.Directive({selector:"[draggable]"})],t)}()},"3U0i":function(t,e,n){"use strict";function a(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},"3fWJ":function(t,e,n){"use strict";function a(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},"4HWh":function(t,e,n){"use strict";var a=n("CcnG"),r=n("OZfm"),i=n("lqqz"),s=n("NJnL");n("p4Cf"),n.d(e,"a",function(){return o}),n.d(e,"b",function(){return c});var o=a["\u0275crt"]({encapsulation:0,styles:[["i[_ngcontent-%COMP%]{color:#2b99a8;cursor:pointer;padding-left:4px}"]],data:{}});function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[],[[8,"innerHTML",1]],null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275and"](0,null,null,0))],null,function(t,e){t(e,0,0,e.component.html)})}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,[["popoverTpl",2]],null,0,null,u)),(t()(),a["\u0275eld"](1,16777216,null,null,1,"i",[["aria-hidden","true"],["class","fa fa-question-circle"],["container","body"],["placement","bottom"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a},null,null)),a["\u0275did"](2,212992,null,0,r.c,[r.a,a.ElementRef,a.Renderer2,a.ViewContainerRef,i.a,s.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null)],function(t,e){t(e,2,0,a["\u0275nov"](e,0),"bottom",!0,"body")},null)}},"4MV3":function(t,e,n){!function(t){"use strict";var e={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},n={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};t.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(t){return t.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0ab0\u0abe\u0aa4"===e?t<4?t:t+12:"\u0ab8\u0ab5\u0abe\u0ab0"===e?t:"\u0aac\u0aaa\u0acb\u0ab0"===e?t>=10?t:t+12:"\u0ab8\u0abe\u0a82\u0a9c"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0ab0\u0abe\u0aa4":t<10?"\u0ab8\u0ab5\u0abe\u0ab0":t<17?"\u0aac\u0aaa\u0acb\u0ab0":t<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(n("wd/R"))},"4dOw":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},"4fRq":function(t,e){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var a=new Uint8Array(16);t.exports=function(){return n(a),a}}else{var r=new Array(16);t.exports=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),r[e]=t>>>((3&e)<<3)&255;return r}}},"58b6":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("kQXf");e.FoldingType=function(){function t(t){this._cssClass=t}return Object.defineProperty(t.prototype,"cssClass",{get:function(){return this._cssClass},enumerable:!0,configurable:!0}),t.Expanded=new t("node-expanded"),t.Collapsed=new t("node-collapsed"),t.Empty=new t("node-empty"),t.Leaf=new t("node-leaf"),t}(),e.TreeModelSettings=function(){function t(){}return t.merge=function(e,n){var r=a.omit(a.get(n,"settings"),t.NOT_CASCADING_SETTINGS);return a.defaultsDeep({},a.get(e,"settings"),r,{static:!1,leftMenu:!1,rightMenu:!0,isCollapsedOnInit:!1,checked:!1,keepNodesInDOM:!1,selectionAllowed:!0})},t.NOT_CASCADING_SETTINGS=["selectionAllowed"],t}(),e.Ng2TreeSettings=function(){return function(){this.rootIsVisible=!0,this.showCheckboxes=!1,this.enableCheckboxes=!0}}(),e.TreeStatus=function(t){return t[t.New=0]="New",t[t.Modified=1]="Modified",t[t.IsBeingRenamed=2]="IsBeingRenamed",t}(e.TreeStatus||{})},"5ZZ7":function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("polarArea",{scale:{type:"radialLinear",angleLines:{display:!1},gridLines:{circular:!0},pointLabels:{display:!1},ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,legendCallback:function(t){var e=[];e.push('
    ');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i'),r[i]&&e.push(r[i]),e.push("");return e.push("
"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,a){var r=t.getDatasetMeta(0),s=e.datasets[0],o=r.data[a].custom||{},u=i.valueAtIndexOrDefault,c=t.options.elements.arc;return{text:n,fillStyle:o.backgroundColor?o.backgroundColor:u(s.backgroundColor,a,c.backgroundColor),strokeStyle:o.borderColor?o.borderColor:u(s.borderColor,a,c.borderColor),lineWidth:o.borderWidth?o.borderWidth:u(s.borderWidth,a,c.borderWidth),hidden:isNaN(s.data[a])||r.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,a,r,i=e.index,s=this.chart;for(n=0,a=(s.data.datasets||[]).length;n=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}()},"60iU":function(t,e,n){"use strict";n.d(e,"b",function(){return a}),n.d(e,"a",function(){return o});var a,r=n("G5J1"),i=n("F/XL"),s=n("XlPw");a||(a={});var o=function(){function t(t,e,n){this.kind=t,this.value=e,this.error=n,this.hasValue="N"===t}return t.prototype.observe=function(t){switch(this.kind){case"N":return t.next&&t.next(this.value);case"E":return t.error&&t.error(this.error);case"C":return t.complete&&t.complete()}},t.prototype.do=function(t,e,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}},t.prototype.accept=function(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)},t.prototype.toObservable=function(){switch(this.kind){case"N":return Object(i.a)(this.value);case"E":return Object(s.a)(this.error);case"C":return Object(r.b)()}throw new Error("unexpected notification kind value")},t.createNext=function(e){return void 0!==e?new t("N",e):t.undefinedValueNotification},t.createError=function(e){return new t("E",void 0,e)},t.createComplete=function(){return t.completeNotification},t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t}()},"67Y/":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){return function(n){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.project=t,this.thisArg=e}return t.prototype.call=function(t,e){return e.subscribe(new o(t,this.project,this.thisArg))},t}(),o=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.project=n,r.count=0,r.thisArg=a||r,r}return a.__extends(e,t),e.prototype._next=function(t){var e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)},e}(r.a)},"6B0Y":function(t,e,n){!function(t){"use strict";var e={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},n={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};t.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(t){return"\u179b\u17d2\u1784\u17b6\u1785"===t},meridiem:function(t,e,n){return t<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(t){return t.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})}(n("wd/R"))},"6ahw":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("iLxQ"),r=n("DKTb"),i={closed:!0,next:function(t){},error:function(t){if(a.a.useDeprecatedSynchronousErrorHandling)throw t;Object(r.a)(t)},complete:function(){}}},"6blF":function(t,e,n){"use strict";var a=n("1fDf"),r=n("FFOo"),i=n("L/V9"),s=n("6ahw"),o=n("xTla"),u=n("y3By"),c=n("iLxQ");n.d(e,"a",function(){return l});var l=function(){function t(t){this._isScalar=!1,t&&(this._subscribe=t)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(t,e,n){var a=this.operator,o=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[i.a])return t[i.a]()}return t||e||n?new r.a(t,e,n):new r.a(s.a)}(t,e,n);if(o.add(a?a.call(o,this.source):this.source||c.a.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),c.a.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},t.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(e){c.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),Object(a.a)(t)?t.error(e):console.warn(e)}},t.prototype.forEach=function(t,e){var n=this;return new(e=d(e))(function(e,a){var r;r=n.subscribe(function(e){try{t(e)}catch(n){a(n),r&&r.unsubscribe()}},a,e)})},t.prototype._subscribe=function(t){var e=this.source;return e&&e.subscribe(t)},t.prototype[o.a]=function(){return this},t.prototype.pipe=function(){for(var t=[],e=0;e=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);l.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this.getDatasetMeta(t),a={meta:n,index:t,easingValue:e};!1!==l.notify(this,"beforeDatasetDraw",[a])&&(n.controller.draw(e),l.notify(this,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==l.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),l.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var a=o.modes[e];return"function"==typeof a?a(this,t,n):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;en?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,a=void 0===e?.5:e,r=2*a-1,i=this.alpha()-n.alpha(),s=((r*i==-1?r:(r+i)/(1+r*i))+1)/2,o=1-s;return this.rgb(s*this.red()+o*n.red(),s*this.green()+o*n.green(),s*this.blue()+o*n.blue()).alpha(this.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new i,a=this.values,r=n.values;for(var s in a)a.hasOwnProperty(s)&&("[object Array]"===(e={}.toString.call(t=a[s]))?r[s]=t.slice(0):"[object Number]"===e?r[s]=t:console.error("unexpected color value:",t));return n}},i.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},i.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},i.prototype.getValues=function(t){for(var e=this.values,n={},a=0;a-1},t.prototype.getRowSelectedIdx=function(t,e){var n=this;if(!e||!e.length)return-1;var a=this.rowIdentity(t);return e.findIndex(function(t){return n.rowIdentity(t)===a})},a([i.Input(),r("design:type",Array)],t.prototype,"rows",void 0),a([i.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"selectEnabled",void 0),a([i.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"select",void 0),a([i.Component({selector:"datatable-selection",template:"\n \n ",changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"7O6V":function(t,e,n){"use strict";t.exports=function(t){t.Line=function(e,n){return n.type="line",new t(e,n)}}},"7aV9":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(t){return t+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(t){return"\u0db4.\u0dc0."===t||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===t},meridiem:function(t,e,n){return t>11?n?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":n?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}()},"8/+R":function(t,e,n){!function(t){"use strict";var e={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},n={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};t.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(t){return t.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0a30\u0a3e\u0a24"===e?t<4?t:t+12:"\u0a38\u0a35\u0a47\u0a30"===e?t:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===e?t>=10?t:t+12:"\u0a38\u0a3c\u0a3e\u0a2e"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0a30\u0a3e\u0a24":t<10?"\u0a38\u0a35\u0a47\u0a30":t<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":t<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(n("wd/R"))},"8//i":function(t,e,n){"use strict";var a=n("CDJp"),r=n("RDha"),i=n("tjFV"),s=n("g8vO");t.exports=function(t){var e=a.global,n={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:s.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function o(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function u(t){var n=t.options.pointLabels,a=r.valueOrDefault(n.fontSize,e.defaultFontSize),i=r.valueOrDefault(n.fontStyle,e.defaultFontStyle),s=r.valueOrDefault(n.fontFamily,e.defaultFontFamily);return{size:a,style:i,family:s,font:r.fontString(a,i,s)}}function c(t,e,n,a,r){return t===a||t===r?{start:e-n/2,end:e+n/2}:tr?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function l(t){return 0===t||180===t?"center":t<180?"left":"right"}function d(t,e,n,a){if(r.isArray(e))for(var i=n.y,s=1.5*a,o=0;o270||t<90)&&(n.y-=e.h)}function p(t){return r.isNumber(t)?t:0}var h=t.LinearScaleBase.extend({setDimensions:function(){var t=this,n=t.options,a=n.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var i=r.min([t.height,t.width]),s=r.valueOrDefault(a.fontSize,e.defaultFontSize);t.drawingArea=n.display?i/2-(s/2+a.backdropPaddingY):i/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;r.each(e.data.datasets,function(i,s){if(e.isDatasetVisible(s)){var o=e.getDatasetMeta(s);r.each(i.data,function(e,r){var i=+t.getRightValue(e);isNaN(i)||o.data[r].hidden||(n=Math.min(i,n),a=Math.max(i,a))})}}),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=a===Number.NEGATIVE_INFINITY?0:a,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,n=r.valueOrDefault(t.fontSize,e.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*n)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t;this.options.pointLabels.display?function(t){var e,n,a,i=u(t),s=Math.min(t.height/2,t.width/2),l={r:t.width,l:0,t:t.height,b:0},d={};t.ctx.font=i.font,t._pointLabelSizes=[];var f,p,h,g=o(t);for(e=0;el.r&&(l.r=y.end,d.r=b),v.startl.b&&(l.b=v.end,d.b=b)}t.setReductions(s,l,d)}(this):(t=Math.min(this.height/2,this.width/2),this.drawingArea=Math.round(t),this.setCenterPoint(0,0,0,0))},setReductions:function(t,e,n){var a=e.l/Math.sin(n.l),r=Math.max(e.r-this.width,0)/Math.sin(n.r),i=-e.t/Math.cos(n.t),s=-Math.max(e.b-this.height,0)/Math.cos(n.b);a=p(a),r=p(r),i=p(i),s=p(s),this.drawingArea=Math.min(Math.round(t-(a+r)/2),Math.round(t-(i+s)/2)),this.setCenterPoint(a,r,i,s)},setCenterPoint:function(t,e,n,a){var r=this,i=n+r.drawingArea,s=r.height-a-r.drawingArea;r.xCenter=Math.round((t+r.drawingArea+(r.width-e-r.drawingArea))/2+r.left),r.yCenter=Math.round((i+s)/2+r.top)},getIndexAngle:function(t){return t*(2*Math.PI/o(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(n)*e)+this.xCenter,y:Math.round(Math.sin(n)*e)+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,n=t.options,a=n.gridLines,i=n.ticks,s=r.valueOrDefault;if(n.display){var c=t.ctx,p=this.getIndexAngle(0),h=s(i.fontSize,e.defaultFontSize),g=s(i.fontStyle,e.defaultFontStyle),b=s(i.fontFamily,e.defaultFontFamily),m=r.fontString(h,g,b);r.each(t.ticks,function(n,u){if(u>0||i.reverse){var l=t.getDistanceFromCenterForValue(t.ticksAsNumbers[u]);if(a.display&&0!==u&&function(t,e,n,a){var i=t.ctx;if(i.strokeStyle=r.valueAtIndexOrDefault(e.color,a-1),i.lineWidth=r.valueAtIndexOrDefault(e.lineWidth,a-1),t.options.gridLines.circular)i.beginPath(),i.arc(t.xCenter,t.yCenter,n,0,2*Math.PI),i.closePath(),i.stroke();else{var s=o(t);if(0===s)return;i.beginPath();var u=t.getPointPosition(0,n);i.moveTo(u.x,u.y);for(var c=1;c=0;h--){if(i.display){var g=t.getPointPosition(h,c);n.beginPath(),n.moveTo(t.xCenter,t.yCenter),n.lineTo(g.x,g.y),n.stroke(),n.closePath()}if(s.display){var b=t.getPointPosition(h,c+5),m=r.valueAtIndexOrDefault(s.fontColor,h,e.defaultFontColor);n.font=p.font,n.fillStyle=m;var y=t.getIndexAngle(h),v=r.toDegrees(y);n.textAlign=l(v),f(v,t._pointLabelSizes[h],b),d(n,t.pointLabels[h]||"",b,p.size)}}}(t)}}});i.registerScaleType("radialLinear",h,n)}},"85J/":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){var e=/ceph version\s+([^ ]+)\s+\(.+\)/.exec(t);return e?e[1]:t},t}()},"88/t":function(t,e,n){"use strict";n.r(e);var a=n("DtyJ");n.d(e,"Observable",function(){return a.Observable})},"8TtQ":function(t,e,n){"use strict";var a=n("cdu6"),r=n("tjFV");t.exports=function(){var t=a.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,n=e.getLabels();e.minIndex=0,e.maxIndex=n.length-1,void 0!==e.options.ticks.min&&(t=n.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=n.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=n[e.minIndex],e.max=n[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,a=n.chart.data,r=n.isHorizontal();return a.yLabels&&!r?n.getRightValue(a.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,a=this,r=a.options.offset,i=Math.max(a.maxIndex+1-a.minIndex-(r?0:1),1);if(null!=t&&(n=a.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var s=a.getLabels().indexOf(t=n||t);e=-1!==s?s:e}if(a.isHorizontal()){var o=a.width/i,u=o*(e-a.minIndex);return r&&(u+=o/2),a.left+Math.round(u)}var c=a.height/i,l=c*(e-a.minIndex);return r&&(l+=c/2),a.top+Math.round(l)},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,a=Math.max(e._ticks.length-(n?0:1),1),r=e.isHorizontal(),i=(r?e.width:e.height)/a;return t-=r?e.left:e.top,n&&(t-=i/2),(t<=0?0:Math.round(t/i))+e.minIndex},getBasePixel:function(){return this.bottom}});r.registerScaleType("category",t,{position:"bottom"})}},"8g8A":function(t,e,n){"use strict";function a(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},"8iEZ":function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DataTableColumnCellDirective=function(){return a([r.Directive({selector:"[ngx-datatable-cell-template]"})],function(t){this.template=t})}()},"8mBD":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("pt",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},"8xTl":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){function t(){}return t.prototype.transform=function(t){return a.upperFirst(t)},t}()},"909l":function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return d});var a=n("mrSG"),r=n("IUTb"),i=n("isby"),s=n("FFOo"),o=n("MGBS"),u=n("zotm"),c=n("En8+");function l(){for(var t=[],e=0;ethis.index},t.prototype.hasCompleted=function(){return this.array.length===this.index},t}(),g=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.parent=n,r.observable=a,r.stillUnsubscribed=!0,r.buffer=[],r.isComplete=!1,r}return a.__extends(e,t),e.prototype[c.a]=function(){return this},e.prototype.next=function(){var t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(t,e,n,a,r){this.buffer.push(e),this.parent.checkIterators()},e.prototype.subscribe=function(t,e){return Object(u.a)(this,this.observable,this,e)},e}(o.a)},"99TG":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("Fjl2");e.DatatableGroupHeaderDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandGroup=function(t){this.toggle.emit({type:"group",value:t})},t.prototype.expandAllGroups=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllGroups=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(s.DatatableGroupHeaderTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-group-header"})],t)}()},"9GXa":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){this.title="Warning"}}()},"9Kw/":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(t){this.i18n=t,this.title=this.i18n("Information")}}()},"9Xeq":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},"9Z1F":function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("MGBS"),i=n("rPjj"),s=n("zotm");function o(t){return function(e){var n=new u(t),a=e.lift(n);return n.caught=a}}var u=function(){function t(t){this.selector=t}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.selector,this.caught))},t}(),c=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.selector=n,r.caught=a,r}return a.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=void 0;try{n=this.selector(e,this.caught)}catch(r){return void t.prototype.error.call(this,r)}this._unsubscribeAndRecycle();var a=new i.a(this,void 0,void 0);this.add(a),Object(s.a)(this,n,void 0,void 0,a)}},e}(r.a)},"9nlD":function(t,e,n){"use strict";n.d(e,"a",function(){return d});var a=n("LvDl"),r=n("26FU"),i=n("mtw6"),s=n("G1I9"),o=n("a0VL"),u=n("ufoC"),c=n("CcnG"),l=n("SZbH"),d=function(){function t(t,e,n){this.toastr=t,this.taskMessageService=e,this.cdDatePipe=n,this.hideToasties=!1,this.dataSource=new r.a([]),this.data$=this.dataSource.asObservable(),this.queued=[],this.KEY="cdNotifications";var i=localStorage.getItem(this.KEY),o=[];a.isString(i)&&(o=JSON.parse(i,function(t,e){return a.isPlainObject(e)?a.assign(new s.a,e):e})),this.dataSource.next(o)}return t.prototype.removeAll=function(){localStorage.removeItem(this.KEY),this.dataSource.next([])},t.prototype.save=function(t){var e=this.dataSource.getValue();for(e.push(t);e.length>10;)e.shift();this.dataSource.next(e),localStorage.setItem(this.KEY,JSON.stringify(e))},t.prototype.show=function(t,e,n,r,i){var o=this;return window.setTimeout(function(){var u;u=a.isFunction(t)?t():a.isObject(t)?t:new s.b(t,e,n,r,i),o.queueToShow(u)},10)},t.prototype.queueToShow=function(t){var e=this;this.cancel(this.queuedTimeoutId),this.queued.find(function(e){return a.isEqual(e,t)})||this.queued.push(t),this.queuedTimeoutId=window.setTimeout(function(){e.showQueued()},500)},t.prototype.showQueued=function(){var t=this;this.getUnifiedTitleQueue().forEach(function(e){var n=new s.a(e);t.save(n),t.showToasty(n)})},t.prototype.getUnifiedTitleQueue=function(){return Object.values(this.queueShiftByTitle()).map(function(t){var e=t[0];return t.length>1&&(e.message="
    "+t.map(function(t){return"
  • "+t.message+"
  • "}).join("")+"
"),e})},t.prototype.queueShiftByTitle=function(){for(var t,e={};t=this.queued.shift();)e[t.title]||(e[t.title]=[]),e[t.title].push(t);return e},t.prototype.showToasty=function(t){this.hideToasties||this.toastr[["error","info","success"][t.type]]((t.message?t.message+"
":"")+this.renderTimeAndApplicationHtml(t),t.title,t.options)},t.prototype.renderTimeAndApplicationHtml=function(t){return''+this.cdDatePipe.transform(t.timestamp)+''},t.prototype.notifyTask=function(t,e){var n;return void 0===e&&(e=!0),n=t.success&&e?new s.b(i.a.success,this.taskMessageService.getSuccessTitle(t)):new s.b(i.a.error,this.taskMessageService.getErrorTitle(t),this.taskMessageService.getErrorMessage(t)),this.show(n)},t.prototype.cancel=function(t){window.clearTimeout(t)},t.prototype.suspendToasties=function(t){this.hideToasties=t},t.ngInjectableDef=c.defineInjectable({factory:function(){return new t(c.inject(l.j),c.inject(u.a),c.inject(o.a))},token:t,providedIn:"root"}),t}()},"9rRi":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],monthsShort:["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],monthsParseExact:!0,weekdays:["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}()},"A+xa":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(t){return t+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(t)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(t)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}()},A5uo:function(t,e,n){"use strict";var a=n("K2E3");e=t.exports=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),Object.defineProperty(e.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(e.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})},ANnk:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("aexS"),n("f/UV");var a=function(){function t(t,e,n){this.formScope=t,this.authStorageService=e,this.elementRef=n}return t.prototype.ngAfterViewInit=function(){this.permissions=this.authStorageService.getPermissions(),null!==this.formScope&&(this.service_name=this.formScope.cdFormScope),this.service_name&&!this.permissions[this.service_name].update&&(this.elementRef.nativeElement.disabled=!0)},t}()},AQ68:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}()},ARl4:function(t,e,n){"use strict";n.d(e,"a",function(){return h}),n.d(e,"b",function(){return z}),n.d(e,"c",function(){return G}),n.d(e,"d",function(){return Y}),n.d(e,"e",function(){return V}),n.d(e,"f",function(){return H}),n.d(e,"g",function(){return at}),n.d(e,"h",function(){return B}),n.d(e,"i",function(){return U}),n.d(e,"j",function(){return m}),n.d(e,"k",function(){return ot}),n.d(e,"l",function(){return it}),n.d(e,"m",function(){return st}),n.d(e,"n",function(){return dt}),n.d(e,"o",function(){return ut}),n.d(e,"p",function(){return ct}),n.d(e,"q",function(){return lt}),n.d(e,"r",function(){return F}),n.d(e,"s",function(){return y}),n.d(e,"t",function(){return b}),n.d(e,"u",function(){return Z}),n.d(e,"v",function(){return K}),n.d(e,"w",function(){return J}),n.d(e,"x",function(){return et}),n.d(e,"y",function(){return W}),n.d(e,"z",function(){return Q}),n.d(e,"A",function(){return tt}),n.d(e,"B",function(){return nt}),n.d(e,"C",function(){return $});var a=n("CcnG"),r=n("mrSG"),i=n("VnD/"),s=n("67Y/"),o=n("t9fZ"),u=n("lHUG"),c=n("26FU"),l=n("MwfX"),d=n("NJnL"),f=(n("ihYY"),n("lqqz")),p=(n("gIcY"),n("rpEJ")),h=function(){return function(){this.adaptivePosition=!1,this.isAnimated=!1,this.containerClass="theme-green",this.displayMonths=1,this.showWeekNumbers=!0,this.dateInputFormat="L",this.rangeSeparator=" - ",this.rangeInputFormat="L",this.monthTitle="MMMM",this.yearTitle="YYYY",this.dayLabel="D",this.monthLabel="MMMM",this.yearLabel="YYYY",this.weekNumbers="w"}}(),g=function(){function t(){this._customRangesFish=[]}return Object.defineProperty(t.prototype,"minDate",{set:function(t){this._effects.setMinDate(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxDate",{set:function(t){this._effects.setMaxDate(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"daysDisabled",{set:function(t){this._effects.setDaysDisabled(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"datesDisabled",{set:function(t){this._effects.setDatesDisabled(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisabled",{set:function(t){this._effects.setDisabled(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dateCustomClasses",{set:function(t){this._effects.setDateCustomClasses(t)},enumerable:!0,configurable:!0}),t.prototype.setViewMode=function(t){},t.prototype.navigateTo=function(t){},t.prototype.dayHoverHandler=function(t){},t.prototype.weekHoverHandler=function(t){},t.prototype.monthHoverHandler=function(t){},t.prototype.yearHoverHandler=function(t){},t.prototype.daySelectHandler=function(t){},t.prototype.monthSelectHandler=function(t){},t.prototype.yearSelectHandler=function(t){},t.prototype._stopPropagation=function(t){t.stopPropagation()},t}(),b=function(){function t(){}return t.prototype.calculate=function(){return{type:t.CALCULATE}},t.prototype.format=function(){return{type:t.FORMAT}},t.prototype.flag=function(){return{type:t.FLAG}},t.prototype.select=function(e){return{type:t.SELECT,payload:e}},t.prototype.changeViewMode=function(e){return{type:t.CHANGE_VIEWMODE,payload:e}},t.prototype.navigateTo=function(e){return{type:t.NAVIGATE_TO,payload:e}},t.prototype.navigateStep=function(e){return{type:t.NAVIGATE_OFFSET,payload:e}},t.prototype.setOptions=function(e){return{type:t.SET_OPTIONS,payload:e}},t.prototype.selectRange=function(e){return{type:t.SELECT_RANGE,payload:e}},t.prototype.hoverDay=function(e){return{type:t.HOVER,payload:e.isHovered?e.cell.date:null}},t.prototype.minDate=function(e){return{type:t.SET_MIN_DATE,payload:e}},t.prototype.maxDate=function(e){return{type:t.SET_MAX_DATE,payload:e}},t.prototype.daysDisabled=function(e){return{type:t.SET_DAYSDISABLED,payload:e}},t.prototype.datesDisabled=function(e){return{type:t.SET_DATESDISABLED,payload:e}},t.prototype.isDisabled=function(e){return{type:t.SET_IS_DISABLED,payload:e}},t.prototype.setDateCustomClasses=function(e){return{type:t.SET_DATE_CUSTOM_CLASSES,payload:e}},t.prototype.setLocale=function(e){return{type:t.SET_LOCALE,payload:e}},t.CALCULATE="[datepicker] calculate dates matrix",t.FORMAT="[datepicker] format datepicker values",t.FLAG="[datepicker] set flags",t.SELECT="[datepicker] select date",t.NAVIGATE_OFFSET="[datepicker] shift view date",t.NAVIGATE_TO="[datepicker] change view date",t.SET_OPTIONS="[datepicker] update render options",t.HOVER="[datepicker] hover date",t.CHANGE_VIEWMODE="[datepicker] switch view mode",t.SET_MIN_DATE="[datepicker] set min date",t.SET_MAX_DATE="[datepicker] set max date",t.SET_DAYSDISABLED="[datepicker] set days disabled",t.SET_DATESDISABLED="[datepicker] set dates disabled",t.SET_IS_DISABLED="[datepicker] set is disabled",t.SET_DATE_CUSTOM_CLASSES="[datepicker] set date custom classes",t.SET_LOCALE="[datepicker] set datepicker locale",t.SELECT_RANGE="[daterangepicker] select dates range",t}(),m=function(){function t(){this._defaultLocale="en",this._locale=new c.a(this._defaultLocale),this._localeChange=this._locale.asObservable()}return Object.defineProperty(t.prototype,"locale",{get:function(){return this._locale},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"localeChange",{get:function(){return this._localeChange},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"currentLocale",{get:function(){return this._locale.getValue()},enumerable:!0,configurable:!0}),t.prototype.use=function(t){t!==this.currentLocale&&this._locale.next(t)},t}(),y=function(){function t(t,e){this._actions=t,this._localeService=e,this._subs=[]}return t.prototype.init=function(t){return this._store=t,this},t.prototype.setValue=function(t){this._store.dispatch(this._actions.select(t))},t.prototype.setRangeValue=function(t){this._store.dispatch(this._actions.selectRange(t))},t.prototype.setMinDate=function(t){return this._store.dispatch(this._actions.minDate(t)),this},t.prototype.setMaxDate=function(t){return this._store.dispatch(this._actions.maxDate(t)),this},t.prototype.setDaysDisabled=function(t){return this._store.dispatch(this._actions.daysDisabled(t)),this},t.prototype.setDatesDisabled=function(t){return this._store.dispatch(this._actions.datesDisabled(t)),this},t.prototype.setDisabled=function(t){return this._store.dispatch(this._actions.isDisabled(t)),this},t.prototype.setDateCustomClasses=function(t){return this._store.dispatch(this._actions.setDateCustomClasses(t)),this},t.prototype.setOptions=function(t){var e=Object.assign({locale:this._localeService.currentLocale},t);return this._store.dispatch(this._actions.setOptions(e)),this},t.prototype.setBindings=function(t){return t.daysCalendar=this._store.select(function(t){return t.flaggedMonths}).pipe(Object(i.a)(function(t){return!!t})),t.monthsCalendar=this._store.select(function(t){return t.flaggedMonthsCalendar}).pipe(Object(i.a)(function(t){return!!t})),t.yearsCalendar=this._store.select(function(t){return t.yearsCalendarFlagged}).pipe(Object(i.a)(function(t){return!!t})),t.viewMode=this._store.select(function(t){return t.view.mode}),t.options=this._store.select(function(t){return t.showWeekNumbers}).pipe(Object(s.a)(function(t){return{showWeekNumbers:t}})),this},t.prototype.setEventHandlers=function(t){var e=this;return t.setViewMode=function(t){e._store.dispatch(e._actions.changeViewMode(t))},t.navigateTo=function(t){e._store.dispatch(e._actions.navigateStep(t.step))},t.dayHoverHandler=function(t){var n=t.cell;n.isOtherMonth||n.isDisabled||(e._store.dispatch(e._actions.hoverDay(t)),n.isHovered=t.isHovered)},t.monthHoverHandler=function(t){t.cell.isHovered=t.isHovered},t.yearHoverHandler=function(t){t.cell.isHovered=t.isHovered},t.monthSelectHandler=function(t){t.isDisabled||e._store.dispatch(e._actions.navigateTo({unit:{month:Object(u.l)(t.date),year:Object(u.j)(t.date)},viewMode:"day"}))},t.yearSelectHandler=function(t){t.isDisabled||e._store.dispatch(e._actions.navigateTo({unit:{year:Object(u.j)(t.date)},viewMode:"month"}))},this},t.prototype.registerDatepickerSideEffects=function(){var t=this;return this._subs.push(this._store.select(function(t){return t.view}).subscribe(function(e){t._store.dispatch(t._actions.calculate())})),this._subs.push(this._store.select(function(t){return t.monthsModel}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.format())})),this._subs.push(this._store.select(function(t){return t.formattedMonths}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.selectedDate}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.selectedRange}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.monthsCalendar}).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.yearsCalendarModel}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.hoveredDate}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._store.select(function(t){return t.dateCustomClasses}).pipe(Object(i.a)(function(t){return!!t})).subscribe(function(e){return t._store.dispatch(t._actions.flag())})),this._subs.push(this._localeService.localeChange.subscribe(function(e){return t._store.dispatch(t._actions.setLocale(e))})),this},t.prototype.destroy=function(){var t,e;try{for(var n=Object(r.__values)(this._subs),a=n.next();!a.done;a=n.next())a.value.unsubscribe()}catch(i){t={error:i}}finally{try{a&&!a.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},t}(),v={date:new Date,mode:"day"},_=Object.assign(new h,{locale:"en",view:v,selectedRange:[],monthViewOptions:{width:7,height:6}});function x(t,e,n){var a=e&&Object(u.p)(Object(u.d)(t,"month"),e,"day"),r=n&&Object(u.n)(Object(u.G)(t,"month"),n,"day");return a||r}function T(t,e,n){var a=e&&Object(u.p)(Object(u.d)(t,"year"),e,"day"),r=n&&Object(u.n)(Object(u.G)(t,"year"),n,"day");return a||r}function w(t,e){for(var n=t.initialDate,a=new Array(t.height),r=0;r=e}var I=4,C=3,k={month:1};function N(t,e){var n=Object(u.G)(t,"year");return{months:w({width:C,height:I,initialDate:n,shift:k},function(t){return{date:t,label:Object(u.f)(t,e.monthLabel,e.locale)}}),monthTitle:"",yearTitle:Object(u.f)(t,e.yearTitle,e.locale)}}var R=4,A=4,D=R*A,E=-1*(Math.floor(D/2)-1),L={year:1};function P(t,e){var n=Object(u.F)(t,{year:E}),a=w({width:A,height:R,initialDate:n,shift:L},function(t){return{date:t,label:Object(u.f)(t,e.yearLabel,e.locale)}});return{years:a,monthTitle:"",yearTitle:function(t,e){return Object(u.f)(t[0][0].date,e.yearTitle,e.locale)+" - "+Object(u.f)(t[R-1][A-1].date,e.yearTitle,e.locale)}(a,e)}}function M(t,e){switch(void 0===t&&(t=_),e.type){case b.CALCULATE:return function(t){var e,n,a,r,i=t.displayMonths,s=t.view.date;if("day"===t.view.mode){t.monthViewOptions.firstDayOfWeek=Object(u.k)(t.locale).firstDayOfWeek();for(var o=new Array(i),c=0;ce[0]&&t<=e[1]:!!n&&t>e[0]&&t<=n)}(a.date,e.selectedRange,e.hoveredDate),h=e.isDisabled||Object(u.p)(a.date,e.minDate,"day")||Object(u.n)(a.date,e.maxDate,"day")||Object(u.s)(a.date,e.daysDisabled)||(i=a.date,!(void 0===(s=e.datesDisabled)||!s||!s.length)&&s.some(function(t){return Object(u.u)(i,t,"date")})),g=new Date,b=!o&&Object(u.v)(a.date,g),m=e.dateCustomClasses&&e.dateCustomClasses.map(function(t){return Object(u.v)(a.date,t.date)?t.classes:[]}).reduce(function(t,e){return t.concat(e)},[]).join(" ")||"",y=Object.assign({},a,{isOtherMonth:o,isHovered:c,isSelected:f,isSelectionStart:l,isSelectionEnd:d,isInRange:p,isDisabled:h,isToday:b,customClasses:m});a.isOtherMonth===y.isOtherMonth&&a.isHovered===y.isHovered&&a.isSelected===y.isSelected&&a.isSelectionStart===y.isSelectionStart&&a.isSelectionEnd===y.isSelectionEnd&&a.isDisabled===y.isDisabled&&a.isInRange===y.isInRange&&a.customClasses===y.customClasses||(n.days[r]=y)})}),t.hideLeftArrow=e.isDisabled||e.monthIndex>0&&e.monthIndex!==e.displayMonths,t.hideRightArrow=e.isDisabled||e.monthIndex0&&r.monthIndex!==r.displayMonths,a.hideRightArrow=r.monthIndex0&&e.yearIndex!==e.displayMonths,t.hideRightArrow=e.yearIndex=this._rangeStack[0]?[this._rangeStack[0],t.date]:[t.date]),0===this._rangeStack.length&&(this._rangeStack=[t.date]),this._store.dispatch(this._actions.selectRange(this._rangeStack)),2===this._rangeStack.length&&(this._rangeStack=[]))},e.prototype.ngOnDestroy=function(){var t,e;try{for(var n=Object(r.__values)(this._subs),a=n.next();!a.done;a=n.next())a.value.unsubscribe()}catch(i){t={error:i}}finally{try{a&&!a.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this._effects.destroy()},e}(g),W=function(){return function(){}}(),K=function(){return function(){}}(),$=function(){return function(){}}(),Z=function(){function t(t,e,n){this._config=t,this._elRef=e,this._renderer=n}return t.prototype.ngOnInit=function(){var t=this;this.day.isToday&&this._config&&this._config.customTodayClass&&this._renderer.addClass(this._elRef.nativeElement,this._config.customTodayClass),"string"==typeof this.day.customClasses&&this.day.customClasses.split(" ").filter(function(t){return t}).forEach(function(e){t._renderer.addClass(t._elRef.nativeElement,e)})},t}(),X=function(){var t={UP:0,DOWN:1};return t[t.UP]="UP",t[t.DOWN]="DOWN",t}(),J=function(){function t(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter}return t.prototype.navTo=function(t){this.onNavigate.emit(t?X.DOWN:X.UP)},t.prototype.view=function(t){this.onViewMode.emit(t)},t}(),Q=function(){function t(t){this._config=t,this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter,this.onHoverWeek=new a.EventEmitter}return t.prototype.navigateTo=function(t){this.onNavigate.emit({step:{month:X.DOWN===t?-1:1}})},t.prototype.changeViewMode=function(t){this.onViewMode.emit(t)},t.prototype.selectDay=function(t){this.onSelect.emit(t)},t.prototype.selectWeek=function(t){var e=this;if(this._config.selectWeek)if(t.days&&t.days[0]&&!t.days[0].isDisabled&&this._config.selectFromOtherMonth)this.onSelect.emit(t.days[0]);else if(0!==t.days.length){var n=t.days.find(function(t){return e._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled});this.onSelect.emit(n)}},t.prototype.weekHoverHandler=function(t,e){var n=this;this._config.selectWeek&&t.days.find(function(t){return n._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled})&&(t.isHovered=e,this.isWeekHovered=e,this.onHoverWeek.emit(t))},t.prototype.hoverDay=function(t,e){this._config.selectFromOtherMonth&&t.isOtherMonth&&(t.isOtherMonthHovered=e),this.onHover.emit({cell:t,isHovered:e})},t}(),tt=function(){function t(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}return t.prototype.navigateTo=function(t){this.onNavigate.emit({step:{year:X.DOWN===t?-1:1}})},t.prototype.viewMonth=function(t){this.onSelect.emit(t)},t.prototype.hoverMonth=function(t,e){this.onHover.emit({cell:t,isHovered:e})},t.prototype.changeViewMode=function(t){this.onViewMode.emit(t)},t}(),et=function(){return function(){this.ampm="ok",this.hours=0,this.minutes=0}}(),nt=function(){function t(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}return t.prototype.navigateTo=function(t){this.onNavigate.emit({step:{year:(X.DOWN===t?-1:1)*D}})},t.prototype.viewYear=function(t){this.onSelect.emit(t)},t.prototype.hoverYear=function(t,e){this.onHover.emit({cell:t,isHovered:e})},t.prototype.changeViewMode=function(t){this.onViewMode.emit(t)},t}(),at=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[f.a,d.a,F,b,h,B,Y,y,m]}},t}(),rt=function(){function t(){}return t.prototype.format=function(t,e,n){return Object(u.f)(t,e,n)},t}(),it=function(){function t(){this.selectionDone=new a.EventEmitter(void 0),this.update=new a.EventEmitter(!1),this.activeDateChange=new a.EventEmitter(void 0),this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new rt}return Object.defineProperty(t.prototype,"activeDate",{get:function(){return this._activeDate},set:function(t){this._activeDate=t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.uniqueId="datepicker--"+Math.floor(1e4*Math.random()),this.initDate?(this.activeDate=this.initDate,this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate)):void 0===this.activeDate&&(this.activeDate=new Date)},t.prototype.ngOnChanges=function(t){this.refreshView(),this.checkIfActiveDateGotUpdated(t.activeDate)},t.prototype.checkIfActiveDateGotUpdated=function(t){if(t&&!t.firstChange){var e=t.previousValue;e&&e instanceof Date&&e.getTime()!==t.currentValue.getTime()&&this.activeDateChange.emit(this.activeDate)}},t.prototype.setCompareHandler=function(t,e){"day"===e&&(this.compareHandlerDay=t),"month"===e&&(this.compareHandlerMonth=t),"year"===e&&(this.compareHandlerYear=t)},t.prototype.compare=function(t,e){if(void 0!==t&&void 0!==e)return"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(t,e):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(t,e):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(t,e):void 0},t.prototype.setRefreshViewHandler=function(t,e){"day"===e&&(this.refreshViewHandlerDay=t),"month"===e&&(this.refreshViewHandlerMonth=t),"year"===e&&(this.refreshViewHandlerYear=t)},t.prototype.refreshView=function(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()},t.prototype.dateFilter=function(t,e){return this.dateFormatter.format(t,e,this.locale)},t.prototype.isActive=function(t){return 0===this.compare(t.date,this.activeDate)&&(this.activeDateId=t.uid,!0)},t.prototype.createDateObject=function(t,e){var n={};return n.date=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n.date=this.fixTimeZone(n.date),n.label=this.dateFilter(t,e),n.selected=0===this.compare(t,this.selectedDate),n.disabled=this.isDisabled(t),n.current=0===this.compare(t,new Date),n.customClass=this.getCustomClassForDate(n.date),n},t.prototype.split=function(t,e){for(var n=[];t.length>0;)n.push(t.splice(0,e));return n},t.prototype.fixTimeZone=function(t){var e=t.getHours();return new Date(t.getFullYear(),t.getMonth(),t.getDate(),23===e?e+2:0)},t.prototype.select=function(t,e){void 0===e&&(e=!0),this.datepickerMode===this.minMode?(this.activeDate||(this.activeDate=new Date(0,0,0,0,0,0,0)),this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&this.selectionDone.emit(this.activeDate)):(this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1])),this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate),this.refreshView()},t.prototype.move=function(t){var e;if("day"===this.datepickerMode&&(e=this.stepDay),"month"===this.datepickerMode&&(e=this.stepMonth),"year"===this.datepickerMode&&(e=this.stepYear),e){var n=this.activeDate.getFullYear()+t*(e.years||0),a=this.activeDate.getMonth()+t*(e.months||0);this.activeDate=new Date(n,a,1),this.refreshView(),this.activeDateChange.emit(this.activeDate)}},t.prototype.toggleMode=function(t){var e=t||1;this.datepickerMode===this.maxMode&&1===e||this.datepickerMode===this.minMode&&-1===e||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+e],this.refreshView())},t.prototype.getCustomClassForDate=function(t){var e=this;if(!this.customClass)return"";var n=this.customClass.find(function(n){return n.date.valueOf()===t.valueOf()&&n.mode===e.datepickerMode},this);return void 0===n?"":n.clazz},t.prototype.compareDateDisabled=function(t,e){if(void 0!==t&&void 0!==e)return"day"===t.mode&&this.compareHandlerDay?this.compareHandlerDay(t.date,e):"month"===t.mode&&this.compareHandlerMonth?this.compareHandlerMonth(t.date,e):"year"===t.mode&&this.compareHandlerYear?this.compareHandlerYear(t.date,e):void 0},t.prototype.isDisabled=function(t){var e=this,n=!1;return this.dateDisabled&&this.dateDisabled.forEach(function(a){0===e.compareDateDisabled(a,t)&&(n=!0)}),this.dayDisabled&&(n=n||this.dayDisabled.indexOf(t.getDay())>-1),n||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0},t}(),st=function(){return function(){this.locale="en",this.datepickerMode="day",this.startingDay=0,this.yearRange=20,this.minMode="day",this.maxMode="year",this.showWeeks=!0,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.onlyCurrentMonth=!1,this.monthColLimit=3,this.yearColLimit=5,this.shortcutPropagation=!1}}(),ot=function(){function t(t){this.datepickerMode="day",this.showWeeks=!0,this.selectionDone=new a.EventEmitter(void 0),this.activeDateChange=new a.EventEmitter(void 0),this.onChange=Function.prototype,this.onTouched=Function.prototype,this._now=new Date,this.config=t,this.configureOptions()}return Object.defineProperty(t.prototype,"activeDate",{get:function(){return this._activeDate||this._now},set:function(t){this._activeDate=t},enumerable:!0,configurable:!0}),t.prototype.configureOptions=function(){Object.assign(this,this.config)},t.prototype.onUpdate=function(t){this.activeDate=t,this.onChange(t)},t.prototype.onSelectionDone=function(t){this.selectionDone.emit(t)},t.prototype.onActiveDateChange=function(t){this.activeDateChange.emit(t)},t.prototype.writeValue=function(t){if(0!==this._datePicker.compare(t,this._activeDate))return t&&t instanceof Date?(this.activeDate=t,void this._datePicker.select(t,!1)):void(this.activeDate=t?new Date(t):void 0)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t}(),ut=function(){function t(t){this.labels=[],this.rows=[],this.weekNumbers=[],this.datePicker=t}return Object.defineProperty(t.prototype,"isBs4",{get:function(){return!Object(p.d)()},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.datePicker.stepDay={months:1},this.datePicker.setRefreshViewHandler(function(){var e=this.activeDate.getFullYear(),n=this.activeDate.getMonth(),a=new Date(e,n,1),r=this.startingDay-a.getDay(),i=r>0?7-r:-r,s=new Date(a.getTime());i>0&&s.setDate(1-i);for(var o=t.getDates(s,42),u=[],c=0;c<42;c++){var l=this.createDateObject(o[c],this.formatDay);l.secondary=o[c].getMonth()!==n,l.uid=this.uniqueId+"-"+c,u[c]=l}t.labels=[];for(var d=0;d<7;d++)t.labels[d]={},t.labels[d].abbr=this.dateFilter(u[d].date,this.formatDayHeader),t.labels[d].full=this.dateFilter(u[d].date,"EEEE");if(t.title=this.dateFilter(this.activeDate,this.formatDayTitle),t.rows=this.split(u,7),this.showWeeks){t.weekNumbers=[];for(var f=(11-this.startingDay)%7,p=t.rows.length,h=0;h');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push(""),e.join("")}});var c=r.extend({initialize:function(t){i.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:o,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:o,beforeSetDimensions:o,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:o,beforeBuildLabels:o,buildLabels:function(){var t=this,e=t.options.labels||{},n=i.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:o,beforeFit:o,fit:function(){var t=this,e=t.options,n=e.labels,r=e.display,s=t.ctx,o=a.global,c=i.valueOrDefault,l=c(n.fontSize,o.defaultFontSize),d=c(n.fontStyle,o.defaultFontStyle),f=c(n.fontFamily,o.defaultFontFamily),p=i.fontString(l,d,f),h=t.legendHitBoxes=[],g=t.minSize,b=t.isHorizontal();if(b?(g.width=t.maxWidth,g.height=r?10:0):(g.width=r?10:0,g.height=t.maxHeight),r)if(s.font=p,b){var m=t.lineWidths=[0],y=t.legendItems.length?l+n.padding:0;s.textAlign="left",s.textBaseline="top",i.each(t.legendItems,function(e,a){var r=u(n,l)+l/2+s.measureText(e.text).width;m[m.length-1]+r+n.padding>=t.width&&(y+=l+n.padding,m[m.length]=t.left),h[a]={left:0,top:0,width:r,height:l},m[m.length-1]+=r+n.padding}),g.height+=y}else{var v=n.padding,_=t.columnWidths=[],x=n.padding,T=0,w=0,S=l+v;i.each(t.legendItems,function(t,e){var a=u(n,l)+l/2+s.measureText(t.text).width;w+S>g.height&&(x+=T+n.padding,_.push(T),T=0,w=0),T=Math.max(T,a),w+=S,h[e]={left:0,top:0,width:a,height:l}}),x+=T,_.push(T),g.width+=x}t.width=g.width,t.height=g.height},afterFit:o,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,r=a.global,s=r.elements.line,o=t.width,c=t.lineWidths;if(e.display){var l,d=t.ctx,f=i.valueOrDefault,p=f(n.fontColor,r.defaultFontColor),h=f(n.fontSize,r.defaultFontSize),g=f(n.fontStyle,r.defaultFontStyle),b=f(n.fontFamily,r.defaultFontFamily),m=i.fontString(h,g,b);d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=p,d.fillStyle=p,d.font=m;var y=u(n,h),v=t.legendHitBoxes,_=t.isHorizontal();l=_?{x:t.left+(o-c[0])/2,y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+n.padding,line:0};var x=h+n.padding;i.each(t.legendItems,function(a,u){var p=d.measureText(a.text).width,g=y+h/2+p,b=l.x,m=l.y;_?b+g>=o&&(m=l.y+=x,l.line++,b=l.x=t.left+(o-c[l.line])/2):m+x>t.bottom&&(b=l.x=b+t.columnWidths[l.line]+n.padding,m=l.y=t.top+n.padding,l.line++),function(t,n,a){if(!(isNaN(y)||y<=0)){d.save(),d.fillStyle=f(a.fillStyle,r.defaultColor),d.lineCap=f(a.lineCap,s.borderCapStyle),d.lineDashOffset=f(a.lineDashOffset,s.borderDashOffset),d.lineJoin=f(a.lineJoin,s.borderJoinStyle),d.lineWidth=f(a.lineWidth,s.borderWidth),d.strokeStyle=f(a.strokeStyle,r.defaultColor);var o=0===f(a.lineWidth,s.borderWidth);if(d.setLineDash&&d.setLineDash(f(a.lineDash,s.borderDash)),e.labels&&e.labels.usePointStyle){var u=h*Math.SQRT2/2,c=u/Math.SQRT2;i.canvas.drawPoint(d,a.pointStyle,u,t+c,n+c)}else o||d.strokeRect(t,n,y,h),d.fillRect(t,n,y,h);d.restore()}}(b,m,a),v[u].left=b,v[u].top=m,function(t,e,n,a){var r=h/2,i=y+r+t,s=e+r;d.fillText(n.text,i,s),n.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(i,s),d.lineTo(i+a,s),d.stroke())}(b,m,a,p),_?l.x+=g+n.padding:l.y+=x})}},handleEvent:function(t){var e=this,n=e.options,a="mouseup"===t.type?"click":t.type,r=!1;if("mousemove"===a){if(!n.onHover)return}else{if("click"!==a)return;if(!n.onClick)return}var i=t.x,s=t.y;if(i>=e.left&&i<=e.right&&s>=e.top&&s<=e.bottom)for(var o=e.legendHitBoxes,u=0;u=c.left&&i<=c.left+c.width&&s>=c.top&&s<=c.top+c.height){if("click"===a){n.onClick.call(e,t.native,e.legendItems[u]),r=!0;break}if("mousemove"===a){n.onHover.call(e,t.native,e.legendItems[u]),r=!0;break}}}return r}});function l(t,e){var n=new c({ctx:t.ctx,options:e,chart:t});s.configure(t,n,e),s.addBox(t,n),t.legend=n}t.exports={id:"legend",_element:c,beforeInit:function(t){var e=t.options.legend;e&&l(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(i.mergeIf(e,a.global.legend),n?(s.configure(t,n,e),n.options=e):l(t,e)):n&&(s.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}},Ahxa:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("lUjN");e.DataTableFooterComponent=function(){function t(){this.selectedCount=0,this.page=new i.EventEmitter}return Object.defineProperty(t.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"rowCount",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"pageSize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offset",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",s.DatatableFooterDirective)],t.prototype,"footerTemplate",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"selectedCount",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"page",void 0),a([i.Component({selector:"datatable-footer",template:'\n \n \n \n
\n \n {{selectedCount?.toLocaleString()}} {{selectedMessage}} / \n \n {{rowCount?.toLocaleString()}} {{totalMessage}}\n
\n \n \n \n ',host:{class:"datatable-footer"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},AqeW:function(t,e,n){"use strict";function a(t,e){for(var n,a,r,i=[],s=[];(n=document.elementFromPoint(t,e))&&-1===i.indexOf(n)&&null!=n;)i.push(n),s.push({value:n.style.getPropertyValue("pointer-events"),priority:n.style.getPropertyPriority("pointer-events")}),n.style.setProperty("pointer-events","none","important");for(a=s.length;r=s[--a];)i[a].style.setProperty("pointer-events",r.value?r.value:"",r.priority);return i}Object.defineProperty(e,"__esModule",{value:!0}),"undefined"==typeof document||document.elementsFromPoint||(document.elementsFromPoint=a),e.elementsFromPoint=a},As3K:function(t,e,n){"use strict";var a=n("TC34");t.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,r,i;return a.isObject(t)?(e=+t.top||0,n=+t.right||0,r=+t.bottom||0,i=+t.left||0):e=n=r=i=+t||0,{top:e,right:n,bottom:r,left:i,height:e+r,width:i+n}},resolve:function(t,e,n){var r,i,s;for(r=0,i=t.length;r=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===e||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===e?t+12:t},meridiem:function(t,e,n){return t<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":t<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":t<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":t<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}()},AxiF:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("FFOo"),i=n("b7mW"),s=n("G5J1");function o(t){return function(e){return 0===t?Object(s.b)():e.lift(new u(t))}}var u=function(){function t(t){if(this.total=t,this.total<0)throw new i.a}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.total))},t}(),c=function(t){function e(e,n){var a=t.call(this,e)||this;return a.total=n,a.ring=new Array,a.count=0,a}return a.__extends(e,t),e.prototype._next=function(t){var e=this.ring,n=this.total,a=this.count++;e.length0)for(var n=this.count>=this.total?this.total:this.count,a=this.ring,r=0;rdocumentation\n on how to\n add dashboards to Grafana.\n \n Das Grafana-Dashboard ist nicht vorhanden. In der\n Dokumentation\n wird beschrieben,\n wie Grafana Dashboards hinzugef\xfcgt werden.\n \n \n \n Grafana Time Picker\n Grafana-Zeitauswahl\n \n \n Reset Settings\n Einstellungen f\xfcr Zur\xfccksetzungen\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Daten konnten nicht geladen werden.\n \n \n selected\n ausgew\xe4hlt\n X selected\n \n \n found\n gefunden\n X found\n \n \n total\n insgesamt\n X total\n \n \n Edit\n Bearbeiten\n \n \n Name\n Name\n \n \n Description\n Beschreibung\n \n \n Long description\n Lange Beschreibung\n \n \n Default\n Standard\n \n \n Daemon default\n Daemon-Standard\n \n \n Services\n Services\n \n \n Values\n Werte\n \n \n The entered value is too high! It must not be greater than \n .\n \n Der eingegebene Wert ist zu gro\xdf! Er darf nicht gr\xf6\xdfer als \n sein.\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Der eingegebene Wert ist zu klein! Er darf nicht kleiner als \n sein.\n \n \n \n Save\n Speichern\n \n \n CRUSH map viewer\n CRUSH-Zuordnungsanzeige\n \n \n Hosts List\n Liste mit Hosts\n \n \n Overall Performance\n Gesamtleistung\n \n \n No entries found\n Keine Eintr\xe4ge gefunden\n \n \n Cluster Logs\n Clusterprotokolle\n \n \n Audit Logs\n Revisionsprotokoll\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Konfiguration wird geladen...\n \n \n The configuration could not be loaded.\n Die Konfiguration konnte nicht geladen werden.\n \n \n Edit Manager module\n Manager-Modul bearbeiten\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Der eingegebene Wert ist kein g\xfcltiger UUID, z. B.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Der eingegebene Wert muss eine g\xfcltige IP-Adresse sein.\n \n \n This field is required.\n Dies ist ein Pflichtfeld.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Der eingegebene Wert ist zu gro\xdf! Er muss kleiner als \n sein oder diesem Wert entsprechen.\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Der eingegebene Wert ist zu klein! Er muss gr\xf6\xdfer als \n sein oder diesem Wert entsprechen.\n \n \n \n The entered value needs to be a number.\n Der eingegebene Wert muss eine Zahl sein.\n \n \n The entered value needs to be a number or decimal.\n Der eingegebene Wert muss eine Zahl oder Dezimalzahl sein.\n \n \n Update\n Aktualisieren\n \n \n Status\n Status\n \n \n Cluster ID\n Cluster-ID\n \n \n monmap modified\n Monmap ge\xe4ndert\n \n \n monmap epoch\n Monmap-Epoche\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n erforderliche Verbindung\n \n \n required mon\n erforderliche \xdcberwachung\n \n \n In Quorum\n In Quorum\n \n \n Not In Quorum\n Nicht in Quorum\n \n \n Cancel\n Abbrechen\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Sind Sie sicher dass Sie die ausgew\xe4hlten \n \n m\xf6chten?\n \n \n \n Yes, I am sure.\n Ja, ich bin sicher.\n \n \n Cluster-wide OSD Flags\n Clusterweite OSD-Flags\n \n \n Submit\n Absenden\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Erweitert...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD-Wiederherstellungspriorit\xe4t\n \n \n Priority\n Priorit\xe4t\n \n \n Customize priority values\n Priorit\xe4tswerte anpassen\n \n \n This field is required!\n Dies ist ein Pflichtfeld!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Der eingegebene Wert ist zu gro\xdf! Er darf nicht gr\xf6\xdfer als \n sein.\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Der eingegebene Wert ist zu klein! Er darf nicht kleiner als \n sein.\n \n \n \n Reweight OSD\n OSD neu gewichten\n \n \n The value needs to be between 0 and 1.\n Der Wert muss zwischen 0 und 1 liegen.\n \n \n Reweight\n Neu gewichten\n \n \n OSDs \n Scrub\n \n OSDs \n Scrub\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Tief } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Sie sind dabei, einen \n Scrub auf\n das OSD \n \n \n anzuwenden.\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {tief } }\n \n \n OSDs List\n OSD-Liste\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n OSD \n \n wird markiert als\n \n \n , wenn Sie den Vorgang fortsetzen.\n \n \n \n The OSD is not safe to destroy!\n Es ist nicht sicher, das OSD zu vernichten!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n OSD \n \n wird\n \n \n , wenn Sie den Vorgang fortsetzen.\n \n \n \n Details\n Details\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Wert\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Schlie\xdfen\n \n \n Delete\n L\xf6schen\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Integrit\xe4t\n \n \n Statistics\n Statistiken\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Lesen Sie die \n Dokumentation\n zum\n Konfigurieren und Aktivieren der Verwaltungsfunktion f\xfcr NFS Ganesha.\n \n \n \n Clients\n Clients\n \n \n Any client can access\n Jeder Client hat Zugriff\n \n \n Addresses\n Adressen\n \n \n Required field\n Pflichtfeld\n \n \n Must contain one or more comma-separated values\n Muss mindestens einen kommagetrennten Wert enthalten\n \n \n For example:\n Beispielsweise:\n \n \n Access Type\n Zugriffstyp\n \n \n Squash\n Squash\n \n \n Add clients\n Clients hinzuf\xfcgen\n \n \n Loading...\n Laden...\n \n \n -- No cluster available --\n -- Kein Cluster verf\xfcgbar --\n \n \n -- Select the cluster --\n -- Cluster ausw\xe4hlen --\n \n \n Add daemon\n Daemon hinzuf\xfcgen\n \n \n Storage Backend\n Speicher-Back-End\n \n \n -- No data pools available --\n -- Keine Datenpools verf\xfcgbar --\n \n \n -- Select the storage backend --\n -- Speicher-Back-End ausw\xe4hlen --\n \n \n Object Gateway User\n Objektgatewaybenutzer\n \n \n -- No users available --\n -- Keine Benutzer verf\xfcgbar --\n \n \n -- Select the object gateway user --\n -- Objektgatewaybenutzer ausw\xe4hlen --\n \n \n CephFS User ID\n CephFS-Benutzer-ID\n \n \n -- No clients available --\n -- keine Clients verf\xfcgbar --\n \n \n -- Select the cephx client --\n -- cephx-Client ausw\xe4hlen --\n \n \n CephFS Name\n CephFS-Name\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Sicherheitsbezeichnung\n \n \n Enable security label\n Sicherheitsbezeichnung aktivieren\n \n \n CephFS Path\n CephFS-Pfad\n \n \n Path need to start with a \'/\' and can be followed by a word\n Pfad muss mit einem \'/\' beginnen und kann von einem Wort gefolgt werden\n \n \n New directory will be created\n Neues Verzeichnis wird erstellt\n \n \n Path\n Pfad\n \n \n Path can only be a single \'/\' or a word\n Pfad darf nur ein einzelner \'/\' oder ein Wort sein\n \n \n New bucket will be created\n Neuer Bucket wird erstellt\n \n \n NFS Protocol\n NFS-Protokoll\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS-Tag\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternativer Zugriff f\xfcr \n NFS v3\n -Mountpunkte (d\xfcrfen keinen f\xfchrenden / enthalten)\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Clients k\xf6nnen Unterverzeichnisse m\xf6glicherweise nicht mounten (d. h. wenn das Tag = foo, kann der Client foo/baz m\xf6glicherweise nicht mounten).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Wenn unterschiedliche Tagoptionen verwendet werden, wird derselbe Pfad m\xf6glicherweise mehrfach exportiert.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Die Position dieses \n NFS v4\n -Exports\n auf dem \n Pseudo-Dateisystem\n (muss eindeutig sein).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Wenn unterschiedliche Pseudo-Optionen verwendet werden, wird derselbe Pfad m\xf6glicherweise mehrfach exportiert.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Kein Zugriffstyp verf\xfcgbar --\n \n \n -- Select the access type --\n -- Zugriffstyp ausw\xe4hlen --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Kein Squash verf\xfcgbar --\n \n \n --Select what kind of user id squashing is performed --\n -- Durchzuf\xfchrende Benutzer-ID-Squashing-Art ausw\xe4hlen --\n \n \n Transport Protocol\n Transportprotokoll\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Willkommen bei Ceph!\n The welcome message on the login page\n \n \n Username is required\n Benutzername ist erforderlich\n \n \n Password is required\n Passwort ist erforderlich\n \n \n Login\n Anmeldung\n \n \n Sorry, the user does not exist in Ceph.\n Der Benutzer ist in Ceph leider nicht enthalten.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Kehren Sie zur \n Anmeldeseite\n zur\xfcck. Sie werden vom Identit\xe4tsanbieter abgemeldet, wenn Sie versuchen, sich erneut anzumelden.\n \n \n \n Forbidden\n Verboten\n \n \n Sorry, you are not allowed to see what you were looking for.\n Leider sind Sie nicht berechtigt, den gew\xfcnschten Inhalt anzuzeigen.\n \n \n Sorry, we could not find what you were looking for\n Leider konnte der gew\xfcnschte Inhalt nicht gefunden werden.\n \n \n Remove all\n Alle l\xf6schen\n \n \n Recent Notifications\n Neue Benachrichtigungen\n \n \n There are no background tasks.\n Keine Hintergrundaufgaben vorhanden.\n \n \n Background Tasks\n Hintergrundaufgaben\n \n \n Help\n Hilfe\n \n \n Documentation\n Dokumentation\n \n \n API\n API\n \n \n About\n \xdcber\n \n \n Dashboard Settings\n Dashboard-Einstellungen\n \n \n User management\n Benutzerverwaltung\n \n \n Logged in user\n Angemeldeter Benutzer\n \n \n Signed in as\n \n \n \n \n Angemeldet als\n \n \n \n \n \n \n Sign out\n Abmelden\n \n \n Name...\n Name...\n \n \n The chosen name is already in use.\n Der ausgew\xe4hlte Name wird bereits verwendet.\n \n \n Description...\n Beschreibung...\n \n \n Permissions\n Berechtigungen\n \n \n Roles\n Rollen\n \n \n Username\n Benutzername\n \n \n Password\n Passwort\n \n \n Confirm password\n Passwort best\xe4tigen\n \n \n Password confirmation doesn\'t match the password.\n Passwortbest\xe4tigung stimmt nicht mit dem Passwort \xfcberein.\n \n \n Full name\n Vollst\xe4ndiger Name\n \n \n Email\n E-Mail-Adresse\n \n \n Invalid email.\n Ung\xfcltige E-Mail-Adresse.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Sie sind dabei, die Lese-/Aktualisierungsberechtigungen f\xfcr Benutzer von Ihrem eigenen Benutzer zu entfernen.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Wenn Sie den Vorgang fortsetzen, k\xf6nnen Sie Benutzerrollen nicht mehr hinzuf\xfcgen oder entfernen.\n \n \n Are you sure you want to continue?\n M\xf6chten Sie den Vorgang wirklich fortsetzen?\n \n \n Performance counters not available\n Leistungsindikatoren nicht verf\xfcgbar\n \n \n Attributes (OSD map)\n Attribute (OSD-Zuordnung)\n \n \n Metadata not available\n Metadaten nicht verf\xfcgbar\n \n \n Metadata\n Metadaten\n \n \n Performance counter\n Leistungsindikator\n \n \n Histogram not available: \n \n \n Histogramm nicht verf\xfcgbar: \n \n \n \n \n Writes\n Schreibvorg\xe4nge\n \n \n Reads\n Lesevorg\xe4nge\n \n \n Histogram\n Histogramm\n \n \n Performance Details\n Leistungsdetails\n \n \n Current values\n Aktuelle Werte\n \n \n Type\n Typ\n \n \n Min\n Min.\n \n \n Max\n Max.\n \n \n Flags\n Flags\n \n \n Source\n Quelle\n \n \n Level\n Ebene\n \n \n Can be updated at runtime (editable)\n Kann zur Laufzeit aktualisiert werden (bearbeitbar)\n \n \n Tags\n Tags\n \n \n Enum values\n Auflistungswerte\n \n \n See also\n Siehe auch\n \n \n Cluster Status\n Clusterstatus\n \n \n Manager Daemons\n Manager-Daemons\n \n \n Object Gateways\n Objektgateways\n \n \n Metadata Servers\n Metadatenserver\n \n \n iSCSI Gateways\n iSCSI-Gateways\n \n \n Client IOPS\n Client-IOPS\n \n \n Client Throughput\n Clientdurchsatz\n \n \n Client Read/Write\n Client-Lese-/Schreibvorg\xe4nge\n \n \n Recovery Throughput\n Wiederherstellungsdurchsatz\n \n \n Scrub\n Scrub\n \n \n Performance\n Leistung\n \n \n Raw Capacity\n Rohkapazit\xe4t\n \n \n Objects\n Objekte\n \n \n PGs per OSD\n Platzierungsgruppen pro OSD\n \n \n PG Status\n Platzierungsgruppenstatus\n \n \n Capacity\n Kapazit\xe4t\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Weitere Details finden Sie in den \n Protokollen\n .\n \n \n \n Ranks\n R\xe4nge\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clients: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Image in Papierkorb verschieben\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Um \n \n /\n \n in den Papierkorb zu verschieben,\n klicken Sie auf \n Image verschieben\n . Optional k\xf6nnen Sie ein Ablaufdatum ausw\xe4hlen.\n \n \n \n Protection expires at\n Schutz l\xe4uft ab am\n \n \n NOT PROTECTED\n NICHT GESCH\xdcTZT\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Falsches Datumsformat. Verwenden Sie "TT.MM.JJJJ HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Schutz ist bereits abgelaufen. W\xe4hlen Sie ein k\xfcnftiges Datum aus oder lassen Sie es leer.\n \n \n Move Image\n Image verschieben\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \xdcbersicht\n \n \n Targets\n Ziele\n \n \n Discovery Authentication\n Ermittlungsauthentifizierung\n \n \n User\n Benutzer\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Benutzernamen m\xfcssen zwischen 8 und 64 Zeichen lang sein und\n d\xfcrfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Gemeinsamer Benutzer\n \n \n Mutual Password\n Gemeinsames Passwort\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Lesen Sie die\n Dokumentation\n zum\n Konfigurieren und Aktivieren der Verwaltungsfunktion f\xfcr iSCSI-Ziele.\n \n \n \n Available information:\n Verf\xfcgbare Informationen:\n \n \n iSCSI Targets not available\n iSCSI-Ziele nicht verf\xfcgbar\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Nur f\xfcr RBD-Images verf\xfcgbar, bei denen \n fast-diff\n aktiviert ist\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Datenpool\n \n \n Created\n Erstellt\n \n \n Size\n Gr\xf6\xdfe\n \n \n Object size\n Objektgr\xf6\xdfe\n \n \n Features\n Funktionen\n \n \n Provisioned\n Bereitgestellt\n \n \n N/A\n n. v.\n \n \n Total provisioned\n Bereitgestellt gesamt\n \n \n Striping unit\n Striping-Einheit\n \n \n Striping count\n Striping-Anzahl\n \n \n Parent\n \xdcbergeordnet\n \n \n Block name prefix\n Pr\xe4fix f\xfcr Blockname\n \n \n Order\n Reihenfolge\n \n \n Snapshots\n Snapshots\n \n \n Image\n Image\n \n \n This setting overrides the global value\n Diese Einstellung \xfcberschreibt den globalen Wert\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Dies ist der globale Wert. Kein Wert f\xfcr diese Option wurde f\xfcr dieses Image festgelegt.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' und \'@\' sind nicht zul\xe4ssig.\n \n \n -- No rbd pools available --\n -- Keine rbd-Pools verf\xfcgbar --\n \n \n -- Select a pool --\n -- Pool ausw\xe4hlen --\n \n \n Use a dedicated data pool\n Dedizierten Datenpool verwenden\n \n \n Data pool\n Datenpool\n \n \n Dedicated pool that stores the object-data of the RBD.\n Dedizierter Pool zur Speicherung von RBD-Objektdaten.\n \n \n e.g., 10GiB\n z. B. 10GiB\n \n \n You have to increase the size.\n Sie m\xfcssen die Gr\xf6\xdfe erh\xf6hen.\n \n \n Advanced\n Erweitert\n \n \n Striping\n Striping\n \n \n Stripe unit\n Stripe-Einheit\n \n \n -- Select stripe unit --\n -- Stripe-Einheit ausw\xe4hlen --\n \n \n This field is required because stripe count is defined!\n Dies ist ein Pflichtfeld, da eine Stripe-Anzahl definiert wurde!\n \n \n Stripe unit is greater than object size.\n Die Stripe-Einheit ist gr\xf6\xdfer als die Objektgr\xf6\xdfe.\n \n \n Stripe count\n Stripe-Anzahl\n \n \n This field is required because stripe unit is defined!\n Dies ist ein Pflichtfeld, da eine Stripe-Einheit definiert wurde!\n \n \n Stripe count must be greater than 0.\n Die Stripe-Anzahl muss gr\xf6\xdfer als 0 sein.\n \n \n \n RBD Snapshot\n \n \n RBD-Snapshot\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Umbenennen} other {Erstellen} }\n \n \n \n Snapshot\n \n \n Snapshot\n \n \n \n PROTECTED\n GESCH\xdcTZT\n \n \n UNPROTECTED\n NICHT GESCH\xdcTZT\n \n \n You are about to rollback\n Sie sind dabei, ein Rollback durchzuf\xfchren\n \n \n Purge Trash\n Papierkorb bereinigen\n \n \n To purge, select one or All images and click\n Zum Bereinigen ein oder alle Images ausw\xe4hlen und klicken\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Poolname...\n \n \n All\n Alle\n \n \n Restore Image\n Image wiederherstellen\n \n \n To restore\n Zum Wiederherstellen\n \n \n type the image\'s new name and click\n Neuen Namen des Images eingeben und klicken\n \n \n New Name\n Neuer Name\n \n \n Expired at\n Abgelaufen am\n \n \n Protected until\n Gesch\xfctzt bis\n \n \n This image is protected until \n .\n \n Dieses Image ist gesch\xfctzt bis \n .\n \n \n \n Trash\n Papierkorb\n \n \n iSCSI Topology\n iSCSI-Topologie\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Eine \xc4nderung dieser Parameter von ihren Standardwerten ist in der Regel nicht erforderlich.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Einstellungen\n \n \n Backstore\n Backstore\n \n \n Confirm\n Best\xe4tigen\n \n \n Advanced Settings\n Erweiterte Einstellungen\n \n \n Target IQN\n Ziel-IQN\n \n \n IQN has wrong pattern.\n IQN hat ein fehlerhaftes Muster.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Eine IQN hat die folgende Notation \'iqn.$jahr-$monat.$umkehradresse:$definierterName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Zum Beispiel: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Weitere Informationen\n \n \n This target has modified advanced settings.\n Erweiterte Einstellungen bei diesem Ziel wurden ge\xe4ndert.\n \n \n Portals\n Portale\n \n \n At least \n gateways are required.\n \n Es sind mindestens \n Gateways erforderlich.\n \n \n \n Add portal\n Portal hinzuf\xfcgen\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Einstellungen bei diesem Image wurden ge\xe4ndert.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Image hinzuf\xfcgen\n \n \n ACL authentication\n ACL-Authentifizierung\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Initiatoren\n \n \n Initiator\n Initiator\n \n \n Client IQN\n Client-IQN\n \n \n Initiator IQN needs to be unique.\n Initiator-IQN muss eindeutig sein.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Benutzernamen m\xfcssen zwischen 8 und 64 Zeichen lang sein und\n d\xfcrfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Der Initiator geh\xf6rt zu einer Gruppe. Images werden in der Gruppe konfiguriert.\n \n \n No items added.\n Keine Elemente hinzugef\xfcgt.\n \n \n Add initiator\n Initiator hinzuf\xfcgen\n \n \n Groups\n Gruppen\n \n \n Group\n Gruppe\n \n \n Add group\n Gruppe hinzuf\xfcgen\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD-Konfiguration\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Entfernen Sie den lokalen Konfigurationswert. Stattdessen wird der \xfcbergeordnete Konfigurationswert \xfcbernommen und verwendet.\n \n \n The mininum value is 0\n Der Mindestwert lautet 0\n \n \n Issues\n Probleme\n \n \n Syncing\n Wird synchronisiert\n \n \n Ready\n Fertig\n \n \n Edit pool mirror mode\n Spiegelungsmodus f\xfcr Pool bearbeiten\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n W\xe4hlen Sie zum Bearbeiten des Spiegelungsmodus f\xfcr den Pool\xa0\n \n \n einen neuen Modus aus der Liste aus und klicken Sie auf\xa0\n Aktualisieren\n .\n \n \n \n Mode\n Modus\n \n \n Peer clusters must be removed prior to disabling mirror.\n Vor dem Deaktivieren der Spiegelung m\xfcssen Peer-Cluster entfernt werden.\n \n \n \n \n pool mirror peer\n \n \n \n Peer f\xfcr Poolspiegelung\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Bearbeiten} other {Hinzuf\xfcgen} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n Der Pool\n Spiegeln Sie Peer-Attribute f\xfcr Pool \n \n \n und klicken Sie auf \n Absenden\n .\n \n \n \n Cluster Name\n Clustername\n \n \n The cluster name is not valid.\n Der Clustername ist ung\xfcltig.\n \n \n CephX ID\n CephX-ID\n \n \n CephX ID...\n CephX-ID...\n \n \n The CephX ID is not valid.\n Die CephX ID ist ung\xfcltig.\n \n \n Monitor Addresses\n Adressen der Monitore\n \n \n Comma-delimited addresses...\n Kommagetrennte Adressen...\n \n \n The monitory address is not valid.\n Die Anrede ist ung\xfcltig.\n \n \n CephX Key\n CephX-Schl\xfcssel\n \n \n Base64-encoded key...\n Base64-codierter Schl\xfcssel...\n \n \n CephX key must be base64 encoded.\n CephX-Schl\xfcssel muss base64-codiert sein.\n \n \n Pools List\n Pool-Liste\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Der Name darf nur alphanumerische Zeichen, Bindestriche und Unterstriche enthalten.\n \n \n The chosen erasure code profile name is already in use.\n Der ausgew\xe4hlte L\xf6schcode-Profilname wird bereits verwendet.\n \n \n Plugin\n Plugin\n \n \n Data chunks (k)\n Datenbl\xf6cke (k)\n \n \n Must be equal to or greater than 2.\n Muss gr\xf6\xdfer oder gleich 2 sein.\n \n \n Coding chunks (m)\n Datenbl\xf6cke f\xfcr die Codierung (m)\n \n \n Must be equal to or greater than 1.\n Muss gr\xf6\xdfer oder gleich 1 sein.\n \n \n Durability estimator (c)\n Dauerhaftigkeitssch\xe4tzung (c)\n \n \n Locality (l)\n Standort (l)\n \n \n Crush failure domain\n Crush-Ausfalldom\xe4ne\n \n \n Crush Locality\n Crush-Standort\n \n \n None\n Keine\n \n \n Technique\n Technik\n \n \n Packetsize\n Paketgr\xf6\xdfe\n \n \n Crush root\n Crush-Stamm\n \n \n Crush device class\n Crush-Ger\xe4teklasse\n \n \n any\n beliebig\n \n \n Directory\n Verzeichnis\n \n \n The chosen Ceph pool name is already in use.\n Der ausgew\xe4hlte Poolname wird bereits verwendet.\n \n \n Pool type\n Pooltyp\n \n \n -- Select a pool type --\n -- Pooltyp ausw\xe4hlen --\n \n \n Placement groups\n Platzierungsgruppen\n \n \n At least one placement group is needed!\n Es wird mindestens eine Platzierungsgruppe ben\xf6tigt.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Ihr Cluster kann nicht so viele Platzierungsgruppen verarbeiten. Berechnen Sie die ben\xf6tigte Anzahl an Platzierungsgruppen.\n \n \n Calculation help\n Hilfe zur Berechnung\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Die aktuellen Einstellungen f\xfcr die Platzierungsgruppen wurden f\xfcr Sie berechnet.\n Stellen Sie vor dem Senden sicher, dass die Werte Ihren Anforderungen entsprechen.\n \n \n Crush ruleset\n Crush-Regelsatz\n \n \n -- Select a crush rule --\n -- Crush-Regel ausw\xe4hlen --\n \n \n Crush rule\n Crush-Regel\n \n \n Crush steps\n Crush-Schritte\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Die Regel kann im aktuellen Cluster nicht verwendet werden,\n da es zu wenige OSDs enth\xe4lt, um das von dieser Regel geforderte OSD-Minimum zu erf\xfcllen.\n \n \n Replicated size\n Reproduzierte Gr\xf6\xdfe\n \n \n Minimum: \n \n \n Minimum: \n \n \n \n \n Maximum: \n \n \n Maximum: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Die angegebene Gr\xf6\xdfe liegt au\xdferhalb des Bereichs. G\xfcltige Werte liegen zwischen\n und \n .\n \n \n \n Erasure code profile\n L\xf6schcode-Profil\n \n \n -- No erasure code profile available --\n -- Kein L\xf6schcode-Profil verf\xfcgbar --\n \n \n -- Select an erasure code profile --\n -- L\xf6schcode-Profil ausw\xe4hlen --\n \n \n EC Overwrites\n EC-\xdcberschreibungen\n \n \n Applications\n Anwendungen\n \n \n Compression\n Komprimierung\n \n \n Algorithm\n Algorithmus\n \n \n -- No erasure compression algorithm available --\n -- Kein L\xf6schkomprimierungsalgorithmus verf\xfcgbar --\n \n \n Minimum blob size\n Minimale Blobgr\xf6\xdfe\n \n \n e.g., 128KiB\n z. B. 128KiB\n \n \n Value should be greater than 0\n Wert sollte gr\xf6\xdfer als 0 sein\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Maximale Blobgr\xf6\xdfe\n \n \n e.g., 512KiB\n z. B. 512KiB\n \n \n Value should be greater than the minimum blob size\n Wert sollte gr\xf6\xdfer als die minimale Blobgr\xf6\xdfe sein\n \n \n Ratio\n Verh\xe4ltnis\n \n \n Compression ratio\n Komprimierungsverh\xe4ltnis\n \n \n Value should be between 0.0 and 1.0\n Wert sollte zwischen 0,0 und 1,0 liegen\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Es ist nicht m\xf6glich, einen RBD-Pool mit \'/\' im Namen zu erstellen.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \xc4ndern Sie den Namen oder entfernen Sie \'rbd\' aus der Anwendungsliste.\n \n \n Cache Tiers Details\n Details zu den Cache-Ebenen\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Lesen Sie die \n Dokumentation\n zum\n Konfigurieren und Aktivieren der Verwaltungsfunktion f\xfcr das Objektgateway.\n \n \n \n Daemons List\n Liste der Daemons\n \n \n Performance Counters\n Leistungsindikatoren\n \n \n Loading bucket data...\n Bucket-Daten werden geladen...\n \n \n The bucket data could not be loaded.\n Die Bucket-Daten konnten nicht geladen werden.\n \n \n Id\n ID\n \n \n The value is not valid.\n Der Wert ist ung\xfcltig.\n \n \n Owner\n Inhaber\n \n \n -- Select a user --\n -- Benutzer ausw\xe4hlen --\n \n \n ID\n ID\n \n \n Index type\n Indextyp\n \n \n Placement rule\n Platzierungsregel\n \n \n Marker\n Marker\n \n \n Maximum marker\n Maximum f\xfcr Marker\n \n \n Version\n Version\n \n \n Master version\n Masterversion\n \n \n Modification time\n \xc4nderungszeit\n \n \n Zonegroup\n Zonengruppe\n \n \n Bucket quota\n Bucket-Quote\n \n \n Enabled\n Aktiviert\n \n \n Maximum size\n Maximale Gr\xf6\xdfe\n \n \n Unlimited\n Unbegrenzt\n \n \n Maximum objects\n Maximale Objekte\n \n \n -- Select a username --\n -- Benutzername ausw\xe4hlen --\n \n \n Auto-generate key\n Schl\xfcssel automatisch generieren\n \n \n Access key\n Zugriffsschl\xfcssel\n \n \n Secret key\n Geheimer Schl\xfcssel\n \n \n Email address\n E-Mail-Adresse\n \n \n Suspended\n Angehalten\n \n \n System\n System\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {Nein} 1 {Ja} }\n \n \n Maximum buckets\n Maximale Buckets\n \n \n Subusers\n Unterbenutzer\n \n \n Capabilities\n Bef\xe4higungen\n \n \n User quota\n Benutzerquote\n \n \n Show\n Anzeigen\n \n \n Keys\n Schl\xfcssel\n \n \n -- Select a type --\n -- Typ ausw\xe4hlen --\n \n \n Permission\n Berechtigung\n \n \n -- Select a permission --\n -- Berechtigung ausw\xe4hlen --\n \n \n Subuser\n Unterbenutzer\n \n \n The chosen subuser ID is already in use.\n Die ausgew\xe4hlte Unterbenutzer-ID wird bereits verwendet.\n \n \n read, write\n lesen, schreiben\n \n \n full\n voll\n \n \n Swift key\n Swift-Schl\xfcssel\n \n \n Auto-generate secret\n Geheimnis automatisch generieren\n \n \n Loading user data...\n Benutzerdaten werden geladen...\n \n \n The user data could not be loaded.\n Die Benutzerdaten konnten nicht geladen werden.\n \n \n The chosen user ID is already in use.\n Die ausgew\xe4hlte Benutzer-ID wird bereits verwendet.\n \n \n This is not a valid email address.\n Dies ist keine g\xfcltige E-Mail-Adresse.\n \n \n The chosen email address is already in use.\n Die ausgew\xe4hlte E-Mail-Adresse wird bereits verwendet.\n \n \n Max. buckets\n Max. Buckets\n \n \n The entered value must be >= 0.\n Der eingegebene Wert muss >=0 sein.\n \n \n S3 key\n S3-Schl\xfcssel\n \n \n There are no subusers.\n Keine Unterbenutzer vorhanden.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Keine Schl\xfcssel vorhanden.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Keine Bef\xe4higungen vorhanden.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Unbegrenzte Gr\xf6\xdfe\n \n \n Max. size\n Max. Gr\xf6\xdfe\n \n \n Unlimited objects\n Unbegrenzte Objekte\n \n \n Max. objects\n Max. Objekte\n \n \n Current\n Aktuell\n \n \n Updated discovery authentication\n Ermittlungsauthentifizierung aktualisiert\n \n \n There are no portals available.\n Keine Portale verf\xfcgbar.\n \n \n There are no images available.\n Keine Images verf\xfcgbar.\n \n \n There are no images available. Please make sure you add an image to the target.\n Keine Images verf\xfcgbar. F\xfcgen Sie dem Ziel ein Image hinzu.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Keine Initiatoren verf\xfcgen. F\xfcgen Sie dem Ziel einen Initiator hinzu.\n \n \n target\n target\n \n \n Target\n Ziel\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Zustand\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bytes f\xfcr Lesevorgang\n \n \n Write Bytes\n Bytes f\xfcr Schreibvorgang\n \n \n Read Ops\n Lesevorg\xe4nge\n \n \n Write Ops\n Schreibvorg\xe4nge\n \n \n A/O Since\n A/O seit\n \n \n Instance\n Instanz\n \n \n Hostname\n Hostname\n \n \n Issue\n Problem\n \n \n Progress\n Fortschritt\n \n \n Disabled\n Deaktiviert\n \n \n Edit Mode\n Bearbeitungsmodus\n \n \n Add Peer\n Peer hinzuf\xfcgen\n \n \n Edit Peer\n Peer bearbeiten\n \n \n Delete Peer\n Peer l\xf6schen\n \n \n Leader\n Leader\n \n \n # Local\n # lokal\n \n \n # Remote\n # remote\n \n \n mirror peer\n Peer spiegeln\n \n \n Key\n Schl\xfcssel\n \n \n RBD\n RBD\n \n \n Deep flatten\n Umfassende Vereinfachung\n \n \n Layering\n Schichtung\n \n \n Exclusive lock\n Exklusive Sperre\n \n \n Object map (requires exclusive-lock)\n Objektzuordnung (erfordert exklusive Sperre)\n \n \n Journaling (requires exclusive-lock)\n Journaling (erfordert exklusive Sperre)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Rollback f\xfcr RBD-Snapshot\n \n \n Rollback\n Rollback\n \n \n RBD snapshot\n RBD-Snapshot\n \n \n Deleted At\n Gel\xf6scht am\n \n \n id\n ID\n \n \n type\n Typ\n \n \n state\n Zustand\n \n \n version\n Version\n \n \n Host\n Host\n \n \n root\n Stamm\n \n \n Rank\n Rang\n \n \n Daemon\n Daemon\n \n \n Activity\n Aktivit\xe4t\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodes\n \n \n Usage\n Nutzung\n \n \n Standby daemons\n Standby-Daemons\n \n \n The value can be updated at runtime.\n Der Wert kann zur Laufzeit aktualisiert werden.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Daemons/Clients rufen diesen Wert nicht aus der\n Datenbank \'monitor config\' ab. Es ist nicht zul\xe4ssig, diese Option \xfcber \'ceph config\n set ...\' festzulegen. Diese Option sollte \xfcber \'ceph.conf\' oder an der\n Befehlszeile konfiguriert werden.\n \n \n Option takes effect only during daemon startup.\n Die Option wird nur w\xe4hrend des Daemon-Starts wirksam.\n \n \n Option only affects cluster creation.\n Die Option wirkt sich nur auf die Cluster-Erstellung aus.\n \n \n Option only affects daemon creation.\n Die Option wirkt sich nur auf die Daemon-Erstellung aus.\n \n \n Updated config option \n \n \n Aktualisierte config-Option \n \n \n \n \n Service\n Service\n \n \n Current value\n Aktueller Wert\n \n \n Editable\n Bearbeitbar\n \n \n Updated options for module "\n ".\n \n Aktualisierte Optionen f\xfcr Modul &quot;\n &quot;.\n \n \n \n Enable\n Aktivieren\n \n \n Disable\n Deaktivieren\n \n \n Reconnecting, please wait ...\n Verbindung wird erneut hergestellt, bitte warten...\n \n \n Public Address\n \xd6ffentliche Adresse\n \n \n Open Sessions\n Offene Sitzungen\n \n \n No In\n Kein In-Vorgang\n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSDs, die zuvor als \'out\' markiert wurden, werden beim Start nicht wieder markiert\n \n \n No Out\n Kein Out-Vorgang\n \n \n OSDs will not automatically be marked out after the configured interval\n OSDs werden nach dem konfigurierten Intervall nicht automatisch als \'out\' markiert\n \n \n No Up\n Kein Up-Vorgang\n \n \n OSDs are not allowed to start\n OSDs d\xfcrfen nicht gestartet werden\n \n \n No Down\n Kein Down-Vorgang\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n OSD-Fehlerberichte werden ignoriert, sodass die Monitore die OSDs nicht als ausgefallen markieren\n \n \n Pause\n Pause\n \n \n Pauses reads and writes\n H\xe4lt Lese- und Schreibvorg\xe4nge an\n \n \n No Scrub\n Kein Scrub\n \n \n Scrubbing is disabled\n Scrubbing ist deaktiviert\n \n \n No Deep Scrub\n Kein umfassender Scrub\n \n \n Deep Scrubbing is disabled\n Umfassendes Scrubbing ist deaktiviert\n \n \n No Backfill\n Kein Abgleich\n \n \n Backfilling of PGs is suspended\n Abgleich der Platzierungsgruppen ist ausgesetzt\n \n \n No Recover\n Keine Wiederherstellung\n \n \n Recovery of PGs is suspended\n Wiederherstellung der Platzierungsgruppen ist ausgesetzt\n \n \n Bitwise Sort\n Bitweise Sortierung\n \n \n Use bitwise sort\n Bitweise Sortierung verwenden\n \n \n Purged Snapdirs\n Bereinigte Snapdirs\n \n \n OSDs have converted snapsets\n OSDs besitzen konvertierte Snapsets\n \n \n Recovery Deletes\n L\xf6schvorg\xe4nge bei Wiederherstellungen\n \n \n Deletes performed during recovery instead of peering\n Bei der Wiederherstellung anstelle des Peerings durchgef\xfchrte L\xf6schvorg\xe4nge\n \n \n PG Log Hard Limit\n Hardlimit f\xfcr Platzierungsgruppen-Protokoll\n \n \n Puts a hard limit on pg log length\n Legt ein Hardlimit f\xfcr die Platzierungsgruppen-Protokolll\xe4nge fest\n \n \n Updated OSD Flags\n Aktualisierte OSD-Flags\n \n \n out\n aus\n \n \n in\n ein\n \n \n down\n ausgefallen\n \n \n Mark\n Markieren\n \n \n OSD lost\n OSD verloren\n \n \n marked lost\n markierter Verlust\n \n \n Purge\n Bereinigen\n \n \n OSD\n OSD\n \n \n purged\n bereinigt\n \n \n destroy\n vernichten\n \n \n destroyed\n vernichtet\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Platzierungsgruppen\n \n \n Read bytes\n Bytes f\xfcr Lesevorgang\n \n \n Writes bytes\n Bytes f\xfcr Schreibvorgang\n \n \n Read ops\n Lesevorg\xe4nge\n \n \n Write ops\n Schreibvorg\xe4nge\n \n \n Mark OSD \n \n \n OSD \n markieren\n \n \n \n Mark \n \n \n \n markieren\n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Max. Abgleiche\n \n \n Recovery Max Active\n Wiederherstellung, max. aktiv\n \n \n Recovery Max Single Start\n Wiederherstellung, max. - einzelner Start\n \n \n Recovery Sleep\n Wiederherstellung - Inaktivit\xe4t\n \n \n Custom\n Benutzerdefiniert\n \n \n Updated OSD recovery speed priority "\n "\n \n Aktualisierte OSD-Wiederherstellungsgeschwindigkeits-Priorit\xe4t &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n wurde im folgenden OSD initialisiert: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Auftrag\n \n \n Severity\n Schweregrad\n \n \n Started\n Gestartet\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Aktualisiert\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Verwendet\n \n \n Avail.\n Verf.\n \n \n Clean\n Bereinigen\n \n \n Working\n In Bearbeitung\n \n \n Warning\n Warnung\n \n \n Unknown\n Unbekannt\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n aktiv\n \n \n no filesystems\n keine Dateisysteme\n \n \n active\n aktiv\n \n \n standby\n Standby\n \n \n n/a\n n. v.\n \n \n active daemon\n aktiver Daemon\n \n \n quorum\n Quorum\n \n \n The NFS Ganesha service is not configured.\n Der NFS Ganesha-Dienst ist nicht konfiguriert.\n \n \n Transport\n Transport\n \n \n CephFS User\n CephFS-Benutzer\n \n \n CephFS Filesystem\n CephFS-Dateisystem\n \n \n (inherited from global config)\n (aus globaler Konfiguration \xfcbernommen)\n \n \n inherited from global config\n aus globaler Konfiguration \xfcbernommen\n \n \n -- Select what kind of user id squashing is performed --\n -- Durchzuf\xfchrende Benutzer-ID-Squashing-Art ausw\xe4hlen --\n \n \n There are no daemons available.\n Keine Daemons verf\xfcgbar.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Cache-Modus\n \n \n Min Evict Age\n Min. Alter f\xfcr Vertreibung\n \n \n Min Flush Age\n Min. Alter f\xfcr Leerung\n \n \n Target Max Bytes\n Max. Bytes f\xfcr Ziel\n \n \n Target Max Objects\n Max. Objekte f\xfcr Ziel\n \n \n No applications added\n Keine Anwendungen hinzugef\xfcgt\n \n \n Applications limit reached\n Anwendungslimit erreicht\n \n \n A pool can only have up to four applications definitions.\n Ein Pool kann nur bis zu vier Anwendungsdefinitionen aufweisen.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Zul\xe4ssige Zeichen \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Maximale L\xe4nge betr\xe4gt 128 Zeichen\n \n \n Filter or add applications\n Anwendungen filtern oder hinzuf\xfcgen\n \n \n Add application\n Anwendung hinzuf\xfcgen\n \n \n pool\n pool\n \n \n erasure code profile\n L\xf6schcode-Profil\n \n \n Replica Size\n Gr\xf6\xdfe des Replikats\n \n \n Last Change\n Letzte \xc4nderung\n \n \n Erasure Coded Profile\n Profil mit L\xf6schcodierung\n \n \n Crush Ruleset\n Crush-Regelsatz\n \n \n Write bytes\n Bytes f\xfcr Schreibvorgang\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n Bucket\n \n \n Updated Object Gateway bucket "\n "\n \n Aktualisierter Objektgateway-Bucket &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n Erstellter Objektgateway-Bucket &quot;\n &quot;\n \n \n \n buckets\n Buckets\n \n \n capability\n capability\n \n \n user\n Benutzer\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Aktualisierter Objektgatewaybenutzer &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n Erstellter Objektgatewaybenutzer &quot;\n &quot;\n \n \n \n users\n Benutzer\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Bereich\n \n \n Read\n Lesen\n \n \n Create\n Erstellen\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Erstellte Rolle \'\n \'\n \n \n \n Updated role \'\n \'\n \n Aktualisierte Rolle \'\n \'\n \n \n \n System Role\n Systemrolle\n \n \n Deleted role \'\n \'\n \n Gel\xf6schte Rolle \'\n \'\n \n \n \n Created user "\n "\n \n Erstellter Benutzer &quot;\n &quot;\n \n \n \n Update user\n Benutzer aktualisieren\n \n \n Continue\n Fortfahren\n \n \n You were automatically logged out because your roles have been changed.\n Sie wurden automatisch abgemeldet, da Ihre Rollen ge\xe4ndert wurden.\n \n \n Updated user "\n "\n \n Aktualisierter Benutzer &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Gel\xf6schter Benutzer &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Fehler beim L\xf6schen des Benutzers &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Sie sind derzeit angemeldet als &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Jedes Objekt wird in Datenbl\xf6cke aufgeteilt und jeweils auf einem anderen OSD gespeichert.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Berechnen Sie Codierungsdatenbl\xf6cke f\xfcr jedes Objekt und speichern Sie sie auf unterschiedlichen OSDs.\n Die Anzahl der Codierungsdatenbl\xf6cke entspricht auch der Anzahl der OSDs, die ausfallen k\xf6nnen, ohne dass Daten verloren gehen.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Das jerasure-Modul ist das allgemeinste und flexibelste Modul\n und fungiert auch als der Standard f\xfcr Ceph-Pools mit L\xf6schcodierung.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Die flexiblere Technik ist \'reed_sol_van :\', wobei es ausreicht, k\n und m festzulegen. Die Technik \'cauchy_good\' kann schneller sein. Sie m\xfcssen jedoch die Paketgr\xf6\xdfe sorgf\xe4ltig\n ausw\xe4hlen. S\xe4mtliche \'reed_sol_r6_op\'-, \'liberation\'-, \'blaum_roth\'- und \'liber8tion\'-Vorg\xe4nge sind dahingehend RAID6-Entsprechungen,\n dass sie nur mit \'m=2\' konfiguriert werden k\xf6nnen.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n Die Codierung wird jeweils f\xfcr Pakete auf Bytes-Gr\xf6\xdfe vorgenommen.\n Die Auswahl der richtigen Paketgr\xf6\xdfe ist schwierig.\n In der Jerasure-Dokumentation sind ausf\xfchrliche Informationen zu diesem Thema enthalten.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Bei Verwendung des Jerasure-Moduls, wenn ein Objekt mit L\xf6schcodierung auf mehreren OSDs gespeichert ist,\n m\xfcssen alle anderen OSDs gelesen werden, um die verloren gegangenen Daten eines OSDs wiederherzustellen.\n Wenn jerasure beispielsweise mit \'k=8\' und \'m=4\' konfiguriert ist,\n m\xfcssen bei Verlust eines OSDs zum Reparieren die elf anderen gelesen werden.\n\n Das lrc-L\xf6schcode-Modul erstellt lokale Parit\xe4tsdatenbl\xf6cke, um die Wiederherstellung mit weniger OSDs auszuf\xfchren.\n Wenn lrc beispielsweise mit \'k=8\', \'m=4\' und \'l=4\' konfiguriert ist, wird ein zus\xe4tzlicher Parit\xe4tsdatenblock f\xfcr jeweils vier OSDs erstellt.\n Geht ein einzelnes OSD verloren, kann es mit nur vier OSDs anstelle\n von elf wiederhergestellt werden.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Gruppieren Sie die Codierungs- und Datenbl\xf6cke in S\xe4tze entsprechend dem Speicherort.\n Beispielsweise werden f\xfcr \'k=4\' und \'m=2\', wenn der Speicherort \'3\' entspricht, zwei Dreiergruppen erstellt.\n Jeder Satz kann wiederhergestellt werden, ohne dass Datenbl\xf6cke aus einem anderen Satz gelesen werden.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Der Typ des Crush-Buckets, in dem jeder durch l definierte Satz von Datenbl\xf6cken gespeichert wird.\n Wenn er beispielsweise auf \'rack\' festgelegt ist, wird jede Gruppe an l-Datenbl\xf6cken in einem anderen Rack platziert.\n Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise f\xfcr einen Schritt zum Ausw\xe4hlen des Racks.\n Wenn er nicht festgelegt ist, wird keine solche Gruppierung vorgenommen.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Das isa-Modul kapselt die ISA-Bibliothek und wird nur auf Intel-Prozessoren ausgef\xfchrt.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Das ISA-Modul wird in zwei Reed Solomon-Formularen bereitgestellt.\n Wenn \'reed_sol_van\' festgelegt ist, entspricht dies Vandermonde. Ist \'cauchy\' festgelegt, entspricht dies \'Cauchy\'.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Das shec-Modul kapselt die SHEC-Mehrfachbibliothek.\n Dadurch kann ceph Daten effizienter wiederherstellen als Reed Solomon-Codes.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Die Anzahl der Parit\xe4tsdatenbl\xf6cke, von denen jeder jeden Datenblock in seinem Berechnungsbereich enth\xe4lt.\n Die Anzahl wird als eine Dauerhaftigkeitssch\xe4tzung verwendet. Wenn beispielsweise \'c=2\' vorliegt,\n k\xf6nnen 2 OSDs ausfallen, ohne dass Daten verloren gehen.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Der Name des f\xfcr den ersten Schritt der CRUSH-Regel verwendeten Crush-Buckets.\n Beispielsweise \'step take default\'.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Stellen Sie sicher, dass sich keine zwei Datenbl\xf6cke in einem Bucket mit derselben Ausfalldom\xe4ne befinden.\n Wenn die Ausfalldom\xe4ne beispielsweise als Host fungiert, werden keine zwei Datenbl\xf6cke auf demselben Host gespeichert.\n Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise \'step chooseleaf host\'.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Schr\xe4nken Sie mithilfe der Klassennamen f\xfcr Crush-Ger\xe4te in der CRUSH-Zuordnung die Platzierung\n auf Ger\xe4te einer bestimmten Klasse (z. B. SSD oder HDD) ein.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Legen Sie den Verzeichnisnamen fest, \xfcber den das L\xf6schcode-Modul geladen wird.\n \n \n Allows all operations\n L\xe4sst alle Vorg\xe4nge zu\n \n \n Allows only operations that do not modify the server\n L\xe4sst nur Vorg\xe4nge zu, die den Server nicht \xe4ndern\n \n \n Does not allow read or write operations, but allows any other operation\n L\xe4sst weder Lese- noch Schreibvorg\xe4nge zu, jedoch alle anderen Vorg\xe4nge\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n L\xe4sst Lese-/Schreibvorg\xe4nge und andere Vorg\xe4nge nicht zu, die Dateiattribute oder Verzeichnisinhalte \xe4ndern\n \n \n Allows no access at all\n L\xe4sst \xfcberhaupt keinen Zugriff zu\n \n \n -- Select the priority --\n -- Priorit\xe4t ausw\xe4hlen --\n \n \n Low\n Niedrig\n \n \n High\n Hoch\n \n \n Last 5 minutes\n Letzte 5 Minuten\n \n \n Last 15 minutes\n Letzte 15 Minuten\n \n \n Last 30 minutes\n Letzte 30 Minuten\n \n \n Last 1 hour (Default)\n Letzte Stunde (Standard)\n \n \n Last 3 hours\n Letzte 3 Stunden\n \n \n Last 6 hours\n Letzte 6 Stunden\n \n \n Last 12 hours\n Letzte 12 Stunden\n \n \n Last 24 hours\n Letzte 24 Stunden\n \n \n Yesterday\n Gestern\n \n \n Today\n Heute\n \n \n Today so far\n Heute bisher\n \n \n Day before yesterday\n Vorgestern\n \n \n Last 2 days\n Letzte 2 Tage\n \n \n This day last week\n Dieser Tag letzte Woche\n \n \n Previous week\n Vorwoche\n \n \n This week\n Diese Woche\n \n \n This week so far\n Diese Woche bisher\n \n \n Last 7 days\n Letzte 7 Tage\n \n \n Previous month\n Vormonat\n \n \n This month\n Dieser Monat\n \n \n This month so far\n Dieser Monat bisher\n \n \n Last 30 days\n Letzte 30 Tage\n \n \n Last 90 days\n Letzte 90 Tage\n \n \n Last 6 months\n Letzte 6 Monate\n \n \n Last 1 year\n Letztes Jahr\n \n \n Previous year\n Vorjahr\n \n \n This year\n Dieses Jahr\n \n \n This year so far\n Dieses Jahr bisher\n \n \n Last 2 years\n Letzte 2 Jahre\n \n \n Last 5 years\n Letzte 5 Jahre\n \n \n Information\n Informationen\n \n \n No items selected.\n Keine Elemente ausgew\xe4hlt.\n \n \n Deselect item to select again\n Elementauswahl zum erneuten Ausw\xe4hlen aufheben\n \n \n Selection limit reached\n Auswahllimit erreicht\n \n \n Filter tags\n Tags filtern\n \n \n Add badge\n Badge hinzuf\xfcgen\n \n \n There are no items available.\n Keine Elemente verf\xfcgbar.\n \n \n Add\n Hinzuf\xfcgen\n \n \n Remove\n Remove\n \n \n Clone\n Klonen\n \n \n Copy\n Kopieren\n \n \n Deep Scrub\n Umfassender Scrub\n \n \n Destroy\n Vernichten\n \n \n Flatten\n Vereinfachen\n \n \n Mark Down\n Als ausgefallen markieren\n \n \n Mark In\n Mit Befehl \'In\' markieren\n \n \n Mark Lost\n Als verloren markieren\n \n \n Mark Out\n Mit Befehl \'Out\' markieren\n \n \n Protect\n Sch\xfctzen\n \n \n Rename\n Umbenennen\n \n \n Restore\n Wiederherstellen\n \n \n Move to Trash\n In Papierkorb verschieben\n \n \n Unprotect\n Schutz aufheben\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Gel\xf6scht\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Geklont\n \n \n Copied\n Kopiert\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Ja\n \n \n No\n Nein\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Quality of Service\n \n \n BPS Limit\n BPS-Limit\n \n \n The desired limit of IO bytes per second.\n Das gew\xfcnschte Limit der E/A-Bytes pro Sekunde.\n \n \n IOPS Limit\n IOPS-Limit\n \n \n The desired limit of IO operations per second.\n Das gew\xfcnschte Limit der E/A-Vorg\xe4nge pro Sekunde.\n \n \n Read BPS Limit\n BPS-Limit f\xfcr Lesevorg\xe4nge\n \n \n The desired limit of read bytes per second.\n Das gew\xfcnschte Limit der gelesenen Bytes pro Sekunde.\n \n \n Read IOPS Limit\n IOPS-Limit f\xfcr Lesevorg\xe4nge\n \n \n The desired limit of read operations per second.\n Das gew\xfcnschte Limit f\xfcr Lesevorg\xe4nge pro Sekunde.\n \n \n Write BPS Limit\n BPS-Limit f\xfcr Schreibvorg\xe4nge\n \n \n The desired limit of write bytes per second.\n Das gew\xfcnschte Limit der geschriebenen Bytes pro Sekunde.\n \n \n Write IOPS Limit\n IOPS-Limit f\xfcr Schreibvorg\xe4nge\n \n \n The desired limit of write operations per second.\n Das gew\xfcnschte Limit f\xfcr Schreibvorg\xe4nge pro Sekunde.\n \n \n BPS Burst\n BPS-Block\n \n \n The desired burst limit of IO bytes.\n Das gew\xfcnschte Blocklimit der E/A-Bytes.\n \n \n IOPS Burst\n IOPS-Block\n \n \n The desired burst limit of IO operations.\n Das gew\xfcnschte Blocklimit der E/A-Vorg\xe4nge.\n \n \n Read BPS Burst\n BPS-Block f\xfcr Lesevorg\xe4nge\n \n \n The desired burst limit of read bytes.\n Das gew\xfcnschte Blocklimit der gelesenen Bytes.\n \n \n Read IOPS Burst\n IOPS-Block f\xfcr Lesevorg\xe4nge\n \n \n The desired burst limit of read operations.\n Das gew\xfcnschte Blocklimit der Lesevorg\xe4nge.\n \n \n Write BPS Burst\n BPS-Block f\xfcr Schreibvorg\xe4nge\n \n \n The desired burst limit of write bytes.\n Das gew\xfcnschte Blocklimit der geschriebenen Bytes.\n \n \n Write IOPS Burst\n IOPS-Block f\xfcr Schreibvorg\xe4nge\n \n \n The desired burst limit of write operations.\n Das gew\xfcnschte Blocklimit der Schreibvorg\xe4nge.\n \n \n Failed to \n \n \n \n Fehler bei \n \n \n \n \n \n Executing\n Wird ausgef\xfchrt\n \n \n execute\n ausf\xfchren\n \n \n Executed\n Ausgef\xfchrt\n \n \n unknown task\n Unbekannte Aufgabe\n \n \n Creating\n Wird erstellt\n \n \n create\n erstellen\n \n \n Updating\n Wird aktualisiert\n \n \n update\n aktualisieren\n \n \n Deleting\n Wird gel\xf6scht\n \n \n delete\n l\xf6schen\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n RBD-Snapshot \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n Spiegelungsmodus f\xfcr Pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n Peer f\xfcr Pool \'\n \' spiegeln\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n \n contains snapshots.\n \n \n enth\xe4lt Snapshots.\n \n \n \n Cloning\n Wird geklont\n \n \n clone\n klonen\n \n \n Snapshot of \n must be protected.\n \n Snapshot von \n muss gesch\xfctzt sein.\n \n \n \n Copying\n Wird kopiert\n \n \n copy\n kopieren\n \n \n Flattening\n Wird vereinfacht\n \n \n flatten\n vereinfachen\n \n \n Flattened\n Vereinfacht\n \n \n Name is already used by \n .\n \n Name wird bereits von \n verwendet.\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Der Schutz von \n kann aufgrund enthaltener untergeordneter Images nicht aufgehoben werden.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Kann \n nicht l\xf6schen, da es gesch\xfctzt ist.\n \n \n \n Rolling back\n Rollback wird ausgef\xfchrt\n \n \n rollback\n Rollback\n \n \n Rolled back\n Rollback wurde ausgef\xfchrt\n \n \n Moving\n Wird verschoben\n \n \n move\n verschieben\n \n \n Moved\n Verschoben\n \n \n image \'\n \' to trash\n \n Image \'\n \' in Papierkorb verschieben\n \n \n \n Could not find image.\n Image konnte nicht gefunden werden.\n \n \n Restoring\n Wird wiederhergestellt\n \n \n restore\n wiederherstellen\n \n \n Restored\n Wiederhergestellt\n \n \n image \'\n \' into \'\n \'\n \n Image \'\n \' in \'\n \' verschieben\n \n \n \n Image name \'\n \' is already in use.\n \n Image-Name \'\n \' wird bereits verwendet.\n \n \n \n image \'\n \'\n \n Image \'\n \'\n \n \n \n Purging\n Wird bereinigt\n \n \n purge\n bereinigen\n \n \n Purged\n Bereinigt\n \n \n all pools\n alle Pools\n \n \n images from \n \n \n Images von \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Spiegelung kann nicht deaktiviert werden, da sie einen Peer enth\xe4lt.\n \n \n pool \'\n \'\n \n Pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n L\xf6schcode-Profil \'\n \'\n \n \n \n target \'\n \'\n \n Ziel \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},ByF4:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},C6Ij:function(t,e,n){"use strict";var a=n("CcnG"),r=n("TZo1"),i=n("9Kw/"),s=n("Jm/i"),o=n("Ip0R"),u=n("xbqr"),c=n("9GXa"),l=n("M/6F"),d=n("NDi4");n("AWcq"),n.d(e,"a",function(){return f}),n.d(e,"b",function(){return v});var f=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,[" for "])),(t()(),a["\u0275eld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,2,0,e.component.statusFor)})}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"cd-info-panel",[],null,null,null,r.b,r.a)),a["\u0275did"](1,49152,null,0,i.a,[s.a],null,null),(t()(),a["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Retrieving data"])),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,[". Please wait..."]))],function(t,e){t(e,5,0,e.component.statusFor)},null)}function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,[" for "])),(t()(),a["\u0275eld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,2,0,e.component.statusFor)})}function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"cd-warning-panel",[],null,null,null,u.b,u.a)),a["\u0275did"](1,49152,null,0,c.a,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Displaying previously cached data"])),(t()(),a["\u0275and"](16777216,null,null,1,null,g)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,["."]))],function(t,e){t(e,5,0,e.component.statusFor)},null)}function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,[" for "])),(t()(),a["\u0275eld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,2,0,e.component.statusFor)})}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"cd-error-panel",[],null,null,null,l.b,l.a)),a["\u0275did"](1,49152,null,0,d.a,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Could not load data"])),(t()(),a["\u0275and"](16777216,null,null,1,null,m)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,[". Please check the cluster health."]))],function(t,e){t(e,5,0,e.component.statusFor)},null)}function v(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,h)),a["\u0275did"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,b)),a["\u0275did"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,y)),a["\u0275did"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.status===n.vcs.ValueNone),t(e,3,0,n.status===n.vcs.ValueStale),t(e,5,0,n.status===n.vcs.ValueException)},null)}},CDJp:function(t,e,n){"use strict";var a=n("RDha");t.exports={_set:function(t,e){return a.merge(this[t]||(this[t]={}),e)}}},CS9Q:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("siIJ"),i=function(t){function e(n,a){void 0===a&&(a=r.a.now);var i=t.call(this,n,function(){return e.delegate&&e.delegate!==i?e.delegate.now():a()})||this;return i.actions=[],i.active=!1,i.scheduled=void 0,i}return a.__extends(e,t),e.prototype.schedule=function(n,a,r){return void 0===a&&(a=0),e.delegate&&e.delegate!==this?e.delegate.schedule(n,a,r):t.prototype.schedule.call(this,n,a,r)},e.prototype.flush=function(t){var e=this.actions;if(this.active)e.push(t);else{var n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}},e}(r.a)},CVuo:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=function(t){return(t=(t=(t=t.replace(/[^a-zA-Z0-9 ]/g," ")).replace(/([a-z](?=[A-Z]))/g,"$1 ")).replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase()).replace(/([ 0-9]+)([a-zA-Z])/g,function(t,e,n){return e.trim()+n.toUpperCase()})},e.deCamelCase=function(t){return t.replace(/([A-Z])/g,function(t){return" "+t}).replace(/^./,function(t){return t.toUpperCase()})}},Cc8h:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("DtyJ"),o=n("ahDk");n("czA5"),e.LongPressDirective=function(){function t(){this.pressEnabled=!0,this.duration=500,this.longPressStart=new i.EventEmitter,this.longPressing=new i.EventEmitter,this.longPressEnd=new i.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(t.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLongPress",{get:function(){return this.isLongPressing},enumerable:!0,configurable:!0}),t.prototype.onMouseDown=function(t){var e=this;if(1===t.which&&this.pressEnabled&&!t.target.classList.contains("resize-handle")){this.mouseX=t.clientX,this.mouseY=t.clientY,this.pressing=!0,this.isLongPressing=!1;var n=s.fromEvent(document,"mouseup");this.subscription=n.subscribe(function(t){return e.onMouseup()}),this.timeout=setTimeout(function(){e.isLongPressing=!0,e.longPressStart.emit({event:t,model:e.pressModel}),e.subscription.add(s.fromEvent(document,"mousemove").pipe(o.takeUntil(n)).subscribe(function(t){return e.onMouseMove(t)})),e.loop(t)},this.duration),this.loop(t)}},t.prototype.onMouseMove=function(t){if(this.pressing&&!this.isLongPressing){var e=Math.abs(t.clientX-this.mouseX)>10,n=Math.abs(t.clientY-this.mouseY)>10;(e||n)&&this.endPress()}},t.prototype.loop=function(t){var e=this;this.isLongPressing&&(this.timeout=setTimeout(function(){e.longPressing.emit({event:t,model:e.pressModel}),e.loop(t)},50))},t.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this._destroySubscription(),this.longPressEnd.emit({model:this.pressModel})},t.prototype.onMouseup=function(){this.endPress()},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"pressEnabled",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pressModel",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"duration",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressing",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressEnd",void 0),a([i.HostBinding("class.press"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"press",null),a([i.HostBinding("class.longpress"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isLongPress",null),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseDown",null),a([i.Directive({selector:"[long-press]"})],t)}()},CcnG:function(t,e,n){"use strict";n.r(e),n.d(e,"\u0275angular_packages_core_core_t",function(){return Xh}),n.d(e,"\u0275angular_packages_core_core_q",function(){return Kh}),n.d(e,"\u0275angular_packages_core_core_r",function(){return $h}),n.d(e,"\u0275angular_packages_core_core_s",function(){return Zh}),n.d(e,"\u0275angular_packages_core_core_h",function(){return Zf}),n.d(e,"\u0275angular_packages_core_core_o",function(){return kh}),n.d(e,"\u0275angular_packages_core_core_p",function(){return Ph}),n.d(e,"\u0275angular_packages_core_core_n",function(){return gh}),n.d(e,"\u0275angular_packages_core_core_m",function(){return hh}),n.d(e,"\u0275angular_packages_core_core_c",function(){return po}),n.d(e,"\u0275angular_packages_core_core_d",function(){return Ae}),n.d(e,"\u0275angular_packages_core_core_e",function(){return Hf}),n.d(e,"\u0275angular_packages_core_core_f",function(){return Df}),n.d(e,"\u0275angular_packages_core_core_g",function(){return jf}),n.d(e,"\u0275angular_packages_core_core_l",function(){return rd}),n.d(e,"\u0275angular_packages_core_core_u",function(){return Sp}),n.d(e,"\u0275angular_packages_core_core_w",function(){return _p}),n.d(e,"\u0275angular_packages_core_core_v",function(){return vp}),n.d(e,"\u0275angular_packages_core_core_z",function(){return wp}),n.d(e,"\u0275angular_packages_core_core_x",function(){return xp}),n.d(e,"\u0275angular_packages_core_core_y",function(){return Tp}),n.d(e,"\u0275angular_packages_core_core_bc",function(){return kn}),n.d(e,"\u0275angular_packages_core_core_bj",function(){return p}),n.d(e,"\u0275angular_packages_core_core_bd",function(){return Xe}),n.d(e,"\u0275angular_packages_core_core_be",function(){return Qe}),n.d(e,"\u0275angular_packages_core_core_bf",function(){return mn}),n.d(e,"\u0275angular_packages_core_core_bi",function(){return rr}),n.d(e,"\u0275angular_packages_core_core_bm",function(){return Xt}),n.d(e,"\u0275angular_packages_core_core_i",function(){return du}),n.d(e,"\u0275angular_packages_core_core_j",function(){return fu}),n.d(e,"\u0275angular_packages_core_core_k",function(){return pu}),n.d(e,"\u0275angular_packages_core_core_a",function(){return N}),n.d(e,"\u0275angular_packages_core_core_b",function(){return R}),n.d(e,"\u0275angular_packages_core_core_bk",function(){return c}),n.d(e,"\u0275angular_packages_core_core_ba",function(){return Ub}),n.d(e,"\u0275angular_packages_core_core_bb",function(){return ug}),n.d(e,"createPlatform",function(){return Bp}),n.d(e,"assertPlatform",function(){return Wp}),n.d(e,"destroyPlatform",function(){return Kp}),n.d(e,"getPlatform",function(){return $p}),n.d(e,"PlatformRef",function(){return Zp}),n.d(e,"ApplicationRef",function(){return Jp}),n.d(e,"createPlatformFactory",function(){return Up}),n.d(e,"NgProbeToken",function(){return Hp}),n.d(e,"enableProdMode",function(){return zu}),n.d(e,"isDevMode",function(){return Fu}),n.d(e,"APP_ID",function(){return $f}),n.d(e,"PACKAGE_ROOT_URL",function(){return np}),n.d(e,"PLATFORM_INITIALIZER",function(){return Qf}),n.d(e,"PLATFORM_ID",function(){return tp}),n.d(e,"APP_BOOTSTRAP_LISTENER",function(){return ep}),n.d(e,"APP_INITIALIZER",function(){return Wf}),n.d(e,"ApplicationInitStatus",function(){return Kf}),n.d(e,"DebugElement",function(){return Ch}),n.d(e,"DebugNode",function(){return Ih}),n.d(e,"asNativeElements",function(){return bh}),n.d(e,"getDebugNode",function(){return Sh}),n.d(e,"Testability",function(){return qp}),n.d(e,"TestabilityRegistry",function(){return jp}),n.d(e,"setTestabilityGetter",function(){return Fp}),n.d(e,"TRANSLATIONS",function(){return Bh}),n.d(e,"TRANSLATIONS_FORMAT",function(){return Uh}),n.d(e,"LOCALE_ID",function(){return Hh}),n.d(e,"MissingTranslationStrategy",function(){return Wh}),n.d(e,"ApplicationModule",function(){return Jh}),n.d(e,"wtfCreateScope",function(){return Ip}),n.d(e,"wtfLeave",function(){return Cp}),n.d(e,"wtfStartTimeRange",function(){return kp}),n.d(e,"wtfEndTimeRange",function(){return Np}),n.d(e,"Type",function(){return ud}),n.d(e,"EventEmitter",function(){return hl}),n.d(e,"ErrorHandler",function(){return Sf}),n.d(e,"Sanitizer",function(){return Cu}),n.d(e,"SecurityContext",function(){return Iu}),n.d(e,"ANALYZE_FOR_ENTRY_COMPONENTS",function(){return A}),n.d(e,"Attribute",function(){return D}),n.d(e,"ContentChild",function(){return P}),n.d(e,"ContentChildren",function(){return L}),n.d(e,"Query",function(){return E}),n.d(e,"ViewChild",function(){return q}),n.d(e,"ViewChildren",function(){return M}),n.d(e,"Component",function(){return Yd}),n.d(e,"Directive",function(){return Gd}),n.d(e,"HostBinding",function(){return Wd}),n.d(e,"HostListener",function(){return Kd}),n.d(e,"Input",function(){return Bd}),n.d(e,"Output",function(){return Ud}),n.d(e,"Pipe",function(){return Vd}),n.d(e,"CUSTOM_ELEMENTS_SCHEMA",function(){return rf}),n.d(e,"NO_ERRORS_SCHEMA",function(){return sf}),n.d(e,"NgModule",function(){return of}),n.d(e,"ViewEncapsulation",function(){return at}),n.d(e,"Version",function(){return ku}),n.d(e,"VERSION",function(){return Nu}),n.d(e,"defineInjectable",function(){return v}),n.d(e,"defineInjector",function(){return _}),n.d(e,"forwardRef",function(){return X}),n.d(e,"resolveForwardRef",function(){return J}),n.d(e,"Injectable",function(){return gf}),n.d(e,"INJECTOR",function(){return fo}),n.d(e,"Injector",function(){return ho}),n.d(e,"inject",function(){return De}),n.d(e,"\u0275inject",function(){return De}),n.d(e,"InjectFlags",function(){return Ce}),n.d(e,"ReflectiveInjector",function(){return Vf}),n.d(e,"createInjector",function(){return Po}),n.d(e,"ResolvedReflectiveFactory",function(){return Pf}),n.d(e,"ReflectiveKey",function(){return Nf}),n.d(e,"InjectionToken",function(){return w}),n.d(e,"Inject",function(){return Te}),n.d(e,"Optional",function(){return we}),n.d(e,"Self",function(){return Se}),n.d(e,"SkipSelf",function(){return Oe}),n.d(e,"Host",function(){return Ie}),n.d(e,"NgZone",function(){return Rp}),n.d(e,"\u0275NoopNgZone",function(){return Mp}),n.d(e,"RenderComponentType",function(){return mu}),n.d(e,"Renderer",function(){return vu}),n.d(e,"Renderer2",function(){return wu}),n.d(e,"RendererFactory2",function(){return xu}),n.d(e,"RendererStyleFlags2",function(){return Tu}),n.d(e,"RootRenderer",function(){return _u}),n.d(e,"COMPILER_OPTIONS",function(){return mp}),n.d(e,"Compiler",function(){return bp}),n.d(e,"CompilerFactory",function(){return yp}),n.d(e,"ModuleWithComponentFactories",function(){return rp}),n.d(e,"ComponentFactory",function(){return Xo}),n.d(e,"\u0275ComponentFactory",function(){return Xo}),n.d(e,"ComponentRef",function(){return Zo}),n.d(e,"ComponentFactoryResolver",function(){return ru}),n.d(e,"ElementRef",function(){return hu}),n.d(e,"NgModuleFactory",function(){return uu}),n.d(e,"NgModuleRef",function(){return ou}),n.d(e,"NgModuleFactoryLoader",function(){return td}),n.d(e,"getModuleFactory",function(){return sd}),n.d(e,"QueryList",function(){return th}),n.d(e,"SystemJsNgModuleLoader",function(){return ah}),n.d(e,"SystemJsNgModuleLoaderConfig",function(){return eh}),n.d(e,"TemplateRef",function(){return gl}),n.d(e,"ViewContainerRef",function(){return ih}),n.d(e,"EmbeddedViewRef",function(){return fh}),n.d(e,"ViewRef",function(){return dh}),n.d(e,"ChangeDetectionStrategy",function(){return j}),n.d(e,"ChangeDetectorRef",function(){return uh}),n.d(e,"DefaultIterableDiffer",function(){return Rh}),n.d(e,"IterableDiffers",function(){return jh}),n.d(e,"KeyValueDiffers",function(){return Fh}),n.d(e,"SimpleChange",function(){return la}),n.d(e,"WrappedValue",function(){return ca}),n.d(e,"platformCore",function(){return Vh}),n.d(e,"\u0275ALLOW_MULTIPLE_PLATFORMS",function(){return Vp}),n.d(e,"\u0275APP_ID_RANDOM_PROVIDER",function(){return Xf}),n.d(e,"\u0275defaultIterableDiffers",function(){return Gh}),n.d(e,"\u0275defaultKeyValueDiffers",function(){return Yh}),n.d(e,"\u0275devModeEqual",function(){return ua}),n.d(e,"\u0275isListLikeIterable",function(){return da}),n.d(e,"\u0275ChangeDetectorStatus",function(){return F}),n.d(e,"\u0275isDefaultChangeDetectionStrategy",function(){return z}),n.d(e,"\u0275Console",function(){return ap}),n.d(e,"\u0275getInjectableDef",function(){return x}),n.d(e,"\u0275setCurrentInjector",function(){return Ne}),n.d(e,"\u0275APP_ROOT",function(){return No}),n.d(e,"\u0275ivyEnabled",function(){return tg}),n.d(e,"\u0275CodegenComponentFactoryResolver",function(){return iu}),n.d(e,"\u0275resolveComponentResources",function(){return Q}),n.d(e,"\u0275ReflectionCapabilities",function(){return pd}),n.d(e,"\u0275RenderDebugInfo",function(){return yu}),n.d(e,"\u0275_sanitizeHtml",function(){return oc}),n.d(e,"\u0275_sanitizeStyle",function(){return Bl}),n.d(e,"\u0275_sanitizeUrl",function(){return Hu}),n.d(e,"\u0275global",function(){return V}),n.d(e,"\u0275looseIdentical",function(){return K}),n.d(e,"\u0275stringify",function(){return $}),n.d(e,"\u0275makeDecorator",function(){return C}),n.d(e,"\u0275isObservable",function(){return Uf}),n.d(e,"\u0275isPromise",function(){return Bf}),n.d(e,"\u0275clearOverrides",function(){return ky}),n.d(e,"\u0275initServicesIfNeeded",function(){return Vm}),n.d(e,"\u0275overrideComponentView",function(){return Cy}),n.d(e,"\u0275overrideProvider",function(){return Iy}),n.d(e,"\u0275NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR",function(){return Qb}),n.d(e,"\u0275defineBase",function(){return ft}),n.d(e,"\u0275defineComponent",function(){return ot}),n.d(e,"\u0275defineDirective",function(){return pt}),n.d(e,"\u0275definePipe",function(){return ht}),n.d(e,"\u0275defineNgModule",function(){return lt}),n.d(e,"\u0275detectChanges",function(){return gs}),n.d(e,"\u0275renderComponent",function(){return $s}),n.d(e,"\u0275Render3ComponentFactory",function(){return Pu}),n.d(e,"\u0275Render3ComponentRef",function(){return Mu}),n.d(e,"\u0275directiveInject",function(){return Ps}),n.d(e,"\u0275injectAttribute",function(){return Ms}),n.d(e,"\u0275getFactoryOf",function(){return qn}),n.d(e,"\u0275getInheritedFactory",function(){return jn}),n.d(e,"\u0275templateRefExtractor",function(){return Ll}),n.d(e,"\u0275ProvidersFeature",function(){return $o}),n.d(e,"\u0275InheritDefinitionFeature",function(){return no}),n.d(e,"\u0275NgOnChangesFeature",function(){return io}),n.d(e,"\u0275LifecycleHooksFeature",function(){return Qs}),n.d(e,"\u0275Render3NgModuleRef",function(){return Wc}),n.d(e,"\u0275markDirty",function(){return vs}),n.d(e,"\u0275NgModuleFactory",function(){return Kc}),n.d(e,"\u0275NO_CHANGE",function(){return ha}),n.d(e,"\u0275container",function(){return ns}),n.d(e,"\u0275nextContext",function(){return di}),n.d(e,"\u0275elementStart",function(){return xi}),n.d(e,"\u0275namespaceHTML",function(){return mi}),n.d(e,"\u0275namespaceMathML",function(){return bi}),n.d(e,"\u0275namespaceSVG",function(){return gi}),n.d(e,"\u0275element",function(){return yi}),n.d(e,"\u0275listener",function(){return ki}),n.d(e,"\u0275text",function(){return Hi}),n.d(e,"\u0275embeddedViewStart",function(){return ss}),n.d(e,"\u0275query",function(){return Dl}),n.d(e,"\u0275registerContentQuery",function(){return qs}),n.d(e,"\u0275projection",function(){return ls}),n.d(e,"\u0275bind",function(){return _s}),n.d(e,"\u0275interpolation1",function(){return ws}),n.d(e,"\u0275interpolation2",function(){return Ss}),n.d(e,"\u0275interpolation3",function(){return Os}),n.d(e,"\u0275interpolation4",function(){return Is}),n.d(e,"\u0275interpolation5",function(){return Cs}),n.d(e,"\u0275interpolation6",function(){return ks}),n.d(e,"\u0275interpolation7",function(){return Ns}),n.d(e,"\u0275interpolation8",function(){return Rs}),n.d(e,"\u0275interpolationV",function(){return Ts}),n.d(e,"\u0275pipeBind1",function(){return ol}),n.d(e,"\u0275pipeBind2",function(){return ul}),n.d(e,"\u0275pipeBind3",function(){return cl}),n.d(e,"\u0275pipeBind4",function(){return ll}),n.d(e,"\u0275pipeBindV",function(){return dl}),n.d(e,"\u0275pureFunction0",function(){return Zc}),n.d(e,"\u0275pureFunction1",function(){return Xc}),n.d(e,"\u0275pureFunction2",function(){return Jc}),n.d(e,"\u0275pureFunction3",function(){return Qc}),n.d(e,"\u0275pureFunction4",function(){return tl}),n.d(e,"\u0275pureFunction5",function(){return el}),n.d(e,"\u0275pureFunction6",function(){return nl}),n.d(e,"\u0275pureFunction7",function(){return al}),n.d(e,"\u0275pureFunction8",function(){return rl}),n.d(e,"\u0275pureFunctionV",function(){return il}),n.d(e,"\u0275getCurrentView",function(){return zs}),n.d(e,"\u0275getHostElement",function(){return ea}),n.d(e,"\u0275restoreView",function(){return Je}),n.d(e,"\u0275containerRefreshStart",function(){return rs}),n.d(e,"\u0275containerRefreshEnd",function(){return is}),n.d(e,"\u0275queryRefresh",function(){return El}),n.d(e,"\u0275loadQueryList",function(){return Es}),n.d(e,"\u0275elementEnd",function(){return Ni}),n.d(e,"\u0275elementProperty",function(){return Ai}),n.d(e,"\u0275componentHostSyntheticProperty",function(){return Di}),n.d(e,"\u0275projectionDef",function(){return us}),n.d(e,"\u0275reference",function(){return Ds}),n.d(e,"\u0275enableBindings",function(){return $e}),n.d(e,"\u0275disableBindings",function(){return Ze}),n.d(e,"\u0275allocHostVars",function(){return xs}),n.d(e,"\u0275elementAttribute",function(){return Ri}),n.d(e,"\u0275elementContainerStart",function(){return vi}),n.d(e,"\u0275elementContainerEnd",function(){return _i}),n.d(e,"\u0275elementStyling",function(){return ji}),n.d(e,"\u0275elementHostAttrs",function(){return Fi}),n.d(e,"\u0275elementStylingMap",function(){return Vi}),n.d(e,"\u0275elementStyleProp",function(){return Gi}),n.d(e,"\u0275elementStylingApply",function(){return zi}),n.d(e,"\u0275elementClassProp",function(){return Yi}),n.d(e,"\u0275textBinding",function(){return Bi}),n.d(e,"\u0275template",function(){return es}),n.d(e,"\u0275embeddedViewEnd",function(){return os}),n.d(e,"\u0275store",function(){return As}),n.d(e,"\u0275load",function(){return Ls}),n.d(e,"\u0275pipe",function(){return sl}),n.d(e,"\u0275whenRendered",function(){return to}),n.d(e,"\u0275i18n",function(){return Pc}),n.d(e,"\u0275i18nAttributes",function(){return Mc}),n.d(e,"\u0275i18nExp",function(){return Fc}),n.d(e,"\u0275i18nStart",function(){return Nc}),n.d(e,"\u0275i18nEnd",function(){return Dc}),n.d(e,"\u0275i18nApply",function(){return zc}),n.d(e,"\u0275i18nPostprocess",function(){return Ac}),n.d(e,"\u0275setClassMetadata",function(){return $c}),n.d(e,"\u0275compileComponent",function(){return Ed}),n.d(e,"\u0275compileDirective",function(){return Ld}),n.d(e,"\u0275compileNgModule",function(){return Sd}),n.d(e,"\u0275compileNgModuleDefs",function(){return Od}),n.d(e,"\u0275patchComponentDefWithScope",function(){return kd}),n.d(e,"\u0275resetCompiledComponents",function(){return Id}),n.d(e,"\u0275compilePipe",function(){return zd}),n.d(e,"\u0275sanitizeHtml",function(){return Ul}),n.d(e,"\u0275sanitizeStyle",function(){return Wl}),n.d(e,"\u0275defaultStyleSanitizer",function(){return Xl}),n.d(e,"\u0275sanitizeScript",function(){return Zl}),n.d(e,"\u0275sanitizeUrl",function(){return Kl}),n.d(e,"\u0275sanitizeResourceUrl",function(){return $l}),n.d(e,"\u0275bypassSanitizationTrustHtml",function(){return ql}),n.d(e,"\u0275bypassSanitizationTrustStyle",function(){return jl}),n.d(e,"\u0275bypassSanitizationTrustScript",function(){return Fl}),n.d(e,"\u0275bypassSanitizationTrustUrl",function(){return zl}),n.d(e,"\u0275bypassSanitizationTrustResourceUrl",function(){return Gl}),n.d(e,"\u0275getLContext",function(){return Fn}),n.d(e,"\u0275bindPlayerFactory",function(){return ar}),n.d(e,"\u0275addPlayer",function(){return Vs}),n.d(e,"\u0275getPlayers",function(){return Hs}),n.d(e,"\u0275compileNgModuleFactory__POST_R3__",function(){return Yp}),n.d(e,"\u0275SWITCH_COMPILE_COMPONENT__POST_R3__",function(){return $d}),n.d(e,"\u0275SWITCH_COMPILE_DIRECTIVE__POST_R3__",function(){return Zd}),n.d(e,"\u0275SWITCH_COMPILE_PIPE__POST_R3__",function(){return Xd}),n.d(e,"\u0275SWITCH_COMPILE_NGMODULE__POST_R3__",function(){return uf}),n.d(e,"\u0275getDebugNode__POST_R3__",function(){return wh}),n.d(e,"\u0275SWITCH_COMPILE_INJECTABLE__POST_R3__",function(){return bf}),n.d(e,"\u0275SWITCH_IVY_ENABLED__POST_R3__",function(){return Qh}),n.d(e,"\u0275SWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__",function(){return ch}),n.d(e,"\u0275Compiler_compileModuleSync__POST_R3__",function(){return up}),n.d(e,"\u0275Compiler_compileModuleAsync__POST_R3__",function(){return lp}),n.d(e,"\u0275Compiler_compileModuleAndAllComponentsSync__POST_R3__",function(){return fp}),n.d(e,"\u0275Compiler_compileModuleAndAllComponentsAsync__POST_R3__",function(){return hp}),n.d(e,"\u0275SWITCH_ELEMENT_REF_FACTORY__POST_R3__",function(){return gu}),n.d(e,"\u0275SWITCH_TEMPLATE_REF_FACTORY__POST_R3__",function(){return bl}),n.d(e,"\u0275SWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__",function(){return sh}),n.d(e,"\u0275SWITCH_RENDERER2_FACTORY__POST_R3__",function(){return Su}),n.d(e,"\u0275getModuleFactory__POST_R3__",function(){return id}),n.d(e,"\u0275publishGlobalUtil",function(){return Ks}),n.d(e,"\u0275publishDefaultGlobalUtils",function(){return Ws}),n.d(e,"\u0275SWITCH_INJECTOR_FACTORY__POST_R3__",function(){return go}),n.d(e,"\u0275registerModuleFactory",function(){return nd}),n.d(e,"\u0275EMPTY_ARRAY",function(){return Zg}),n.d(e,"\u0275EMPTY_MAP",function(){return Xg}),n.d(e,"\u0275and",function(){return Jg}),n.d(e,"\u0275ccf",function(){return yb}),n.d(e,"\u0275cmf",function(){return Ny}),n.d(e,"\u0275crt",function(){return vg}),n.d(e,"\u0275did",function(){return Vb}),n.d(e,"\u0275eld",function(){return Qg}),n.d(e,"\u0275elementEventFullName",function(){return Rg}),n.d(e,"\u0275getComponentViewDefinitionFactory",function(){return vb}),n.d(e,"\u0275inlineInterpolate",function(){return Kg}),n.d(e,"\u0275interpolate",function(){return Wg}),n.d(e,"\u0275mod",function(){return cb}),n.d(e,"\u0275mpd",function(){return ub}),n.d(e,"\u0275ncd",function(){return dm}),n.d(e,"\u0275nov",function(){return Rb}),n.d(e,"\u0275pid",function(){return Hb}),n.d(e,"\u0275prd",function(){return Bb}),n.d(e,"\u0275pad",function(){return hm}),n.d(e,"\u0275pod",function(){return gm}),n.d(e,"\u0275ppd",function(){return pm}),n.d(e,"\u0275qud",function(){return sm}),n.d(e,"\u0275ted",function(){return mm}),n.d(e,"\u0275unv",function(){return bg}),n.d(e,"\u0275vid",function(){return _m});var a=n("mrSG"),r=n("pugT"),i=n("K9Ia"),s=n("6blF"),o=n("p0ib"),u=n("S1nX");function c(t){for(var e in t)if(t[e]===c)return e;throw Error("Could not find renamed property on target object.")}function l(t,e){for(var n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}var d=c({ngComponentDef:c}),f=c({ngDirectiveDef:c}),p=c({ngInjectableDef:c}),h=c({ngInjectorDef:c}),g=c({ngPipeDef:c}),b=c({ngModuleDef:c}),m=c({ngBaseDef:c}),y=c({__NG_ELEMENT_ID__:c});function v(t){return{providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function _(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function x(t){return t&&t.hasOwnProperty(p)?t[p]:null}function T(t){return t&&t.hasOwnProperty(h)?t[h]:null}var w=function(){function t(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.ngInjectableDef=void 0!==e?v({providedIn:e.providedIn||"root",factory:e.factory}):void 0}return t.prototype.toString=function(){return"InjectionToken "+this._desc},t}(),S="__annotations__",O="__parameters__",I="__prop__metadata__";function C(t,e,n,r,i){var s=k(e);function o(){for(var t,e=[],n=0;n=qt?n:n[St]}function ae(t){return 0!=(4&t.flags)}function re(t){return 1==(1&t.flags)}function ie(t){return null!==t.template}function se(t){return Array.isArray(t)&&t.length===Yt}function oe(t){return 0!=(128&t[_t])}function ue(t){for(var e=Array.isArray(t)?t:de(t);e&&!(128&e[_t]);)e=e[xt];return e}function ce(t){return ue(t)[kt]}function le(t){return t[Vt]}function de(t){var e=le(t);return e?Array.isArray(e)?e:e.lView:null}function fe(t){return t!==Wt}function pe(t){return 32767&t}function he(t){return t>>16}function ge(t,e){for(var n=he(t),a=e;n>0;)a=a[Mt],n--;return a}var be=("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(V);function me(t,e){for(var n=0;n0;)e=e[Mt],t--;return e}(t,sn))[kt]}function yn(t){var e=Ue[vt];rn(Ue)?Ue[_t]&=-2:(Ge(Ue,e.viewHooks,e.viewCheckHooks,on),Ue[_t]&=-11,Ue[_t]|=32,Ue[It]=e.bindingStartIndex),bn(t,null)}var vn=!0;function _n(t){var e=vn;return vn=t,e}var xn=255,Tn=0;function wn(t,e){var n=On(t,e);if(-1!==n)return n;var a=e[vt];a.firstTemplatePass&&(t.injectorIndex=e.length,Sn(a.data,t),Sn(e,null),Sn(a.blueprint,null));var r=In(t,e),i=pe(r),s=ge(r,e),o=t.injectorIndex;if(fe(r))for(var u=s[vt].data,c=0;c<8;c++)e[o+c]=s[i+c]|u[i+c];return e[o+Bt]=r,o}function Sn(t,e){t.push(0,0,0,0,0,0,0,0,e)}function On(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null==e[t.injectorIndex+Bt]?-1:t.injectorIndex}function In(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;for(var n=e[Ot],a=1;n&&-1===n.injectorIndex;)n=(e=e[Mt])?e[Ot]:null,a++;return n?n.injectorIndex|a<<16:-1}function Cn(t,e,n){!function(t,e,n){var a="string"!=typeof n?n[y]:n.charCodeAt(0)||0;null==a&&(a=n[y]=Tn++);var r=a&xn,i=1<>16,l=r?o+c:t.directiveEnd,d=a?o:o+c;d=u&&f.type===n)return d}if(r){var p=s[u];if(p&&ie(p)&&p.type===n)return u}return null}function En(t,e,n,a){var r,i=e[n];if(null!=(r=i)&&"object"==typeof r&&Object.getPrototypeOf(r)==$t){var s=i;if(s.resolving)throw new Error("Circular dep for "+Zt(t[n]));var o=_n(s.canSeeViewProviders);s.resolving=!0;var u=void 0;s.injectImpl&&(u=Re(s.injectImpl));var c=Qe(),l=Xe();en(a,e);try{i=e[n]=s.factory(null,t,e,a)}finally{s.injectImpl&&Re(u),_n(o),s.resolving=!1,en(c,l)}}return i}function Ln(t,e,n){var a=64&t,r=32&t;return!!((128&t?a?r?n[e+7]:n[e+6]:r?n[e+5]:n[e+4]:a?r?n[e+3]:n[e+2]:r?n[e+1]:n[e])&1<=0){var h;Yn(h=Jt(a[p]),u=zn(a,p,h)),n=u;break}}}return n||null}function zn(t,e,n){return{lView:t,nodeIndex:e,native:n,component:void 0,directives:void 0,localRefs:void 0}}function Gn(t){var e,n=le(t);if(Array.isArray(n)){var a=Bn(n,t);(r=zn(n,a,(e=ne(a,n))[St])).component=t,Yn(t,r),Yn(r.native,r)}else{var r;e=ne((r=n).nodeIndex,r.lView)}return e}function Yn(t,e){t[Vt]=e}function Vn(t,e){for(var n=t[vt].firstChild;n;){if(te(n,t)===e)return n.index;n=Hn(n)}return-1}function Hn(t){if(t.child)return t.child;if(t.next)return t.next;for(;t.parent&&!t.parent.next;)t=t.parent;return t.parent&&t.parent.next}function Bn(t,e){var n=t[vt].components;if(n)for(var a=0;a=0)&&null})}}return r.sort(ia),r}function ia(t,e){return t.name==e.name?0:t.name-1?e[xt][n]:null}return e[xt][t.parent.index]}function ka(t,e){var n=Ca(t,e);return n?n[Gt]:null}var Na=[];function Ra(t,e,n,a,r){for(var i=t[vt].node,s=-1,o=t,u=i.child;u;){var c=null;if(3===u.type){Aa(e,n,a,te(u,o),r);var l=o[u.index];se(l)&&Aa(e,n,a,l[zt],r)}else if(0===u.type){var d=o[u.index];Aa(e,n,a,d[zt],r),a&&(d[Gt]=a),d[Ft].length&&(c=(o=d[Ft][0])[vt].node,r=d[zt])}else if(1===u.type){var f=ye(o),p=f[Ot].projection[u.projection];Na[++s]=u,Na[++s]=o,p&&(c=(o=f[xt])[vt].data[p.index])}else c=u.child;if(null===c)for(null===u.next&&2&u.flags&&(o=Na[s--],u=Na[s--]),c=u.next;!c;){if(null===(u=u.parent||o[vt].node)||u===i)return null;0===u.type&&(r=(o=o[xt])[u.index][zt]),c=2===u.type&&o[Tt]?(o=o[Tt])[vt].node:u.next}u=c}}function Aa(t,e,n,a,r){0===t?wa(e)?e.insertBefore(n,a,r):n.insertBefore(a,r,!0):1===t?wa(e)?e.removeChild(n,a):n.removeChild(a):2===t&&e.destroyNode(a)}function Da(t,e){return wa(e)?e.createText(Zt(t)):e.createTextNode(Zt(t))}function Ea(t,e,n){var a=ka(t[vt].node,t);a&&Ra(t,e?0:1,t[At],a,n)}function La(t,e,n,a,r){var i=e[Ft];a>0&&(i[a-1][Tt]=t),a-1&&(t[Lt]=r,t[xt]=n),t[wt]&&t[wt].insertView(a),t[_t]|=16}function Pa(t,e,n){var a=t[Ft],r=a[e];return e>0&&(a[e-1][Tt]=r[Tt]),a.splice(e,1),n||Ea(r,!1),r[wt]&&r[wt].removeView(),r[Lt]=-1,r[xt]=null,r[_t]&=-17,r}function Ma(t,e,n){var a=t[Ft][n];Pa(t,n,!!e.detached),ja(a)}function qa(t){var e=t[vt].childIndex;return-1===e?null:t[e]}function ja(t){var e=t[At];wa(e)&&e.destroyNode&&Ra(t,2,e,null),function(t){if(-1===t[vt].childIndex)return za(t);for(var e=qa(t);e;){var n=null;if(e.length>=qt?e[vt].childIndex>-1&&(n=qa(e)):e[Ft].length&&(n=e[Ft][0]),null==n){for(;e&&!e[Tt]&&e!==t;)za(e),e=Fa(e,t);za(e||t),n=e&&e[Tt]}e=n}}(t),t[_t]|=64}function Fa(t,e){var n;return t.length>=qt&&(n=t[Ot])&&2===n.type?Ca(n,t):t[xt]===e?null:t[xt]}function za(t){if(t.length>=qt){var e=t;!function(t){var e,n=t[vt];null!=n&&null!=(e=n.destroyHooks)&&Ye(t,e)}(e),(r=(a=e)[vt]&&a[vt].pipeDestroyHooks)&&Ye(a,r),function(t){var e=t[vt].cleanup;if(null!=e){for(var n=t[Ct],a=0;a=0?n[s]():n[-s].unsubscribe(),a+=2}else"number"==typeof e[a]?(0,n[e[a]])():e[a].call(n[e[a+1]]);t[Ct]=null}}(e);var n=e[Ot];n&&3===n.type&&wa(e[At])&&e[At].destroy()}var a,r}function Ga(t,e){if(Ya(t,e)){if(oe(e))return Ha(e[At],te(t,e));var n=e[Ot],a=t.parent;return null!=a&&4===a.type&&(t=Ua(a)),null==t.parent&&2===n.type?ka(n,e):Oa(t,e)}return null}function Ya(t,e){var n,a=t,r=t.parent;return t.parent&&(4===t.parent.type?r=(a=Ua(t)).parent:5===t.parent.type&&(r=(a=Ia(a)).parent)),null===r&&(r=e[Ot]),r&&2===r.type?null!=(n=Ca(r,e))&&null!=n[Gt]:null==a.parent||!(3!==a.parent.type||1&a.parent.flags)}function Va(t,e,n,a){wa(t)?t.insertBefore(e,n,a):e.insertBefore(n,a,!0)}function Ha(t,e){return wa(t)?t.parentNode(e):e.parentNode}function Ba(t,e,n){if(void 0===t&&(t=null),null!==t&&Ya(e,n)){var a=n[At],r=Oa(e,n),i=e.parent||n[Ot];if(2===i.type){var s=Ca(i,n),o=s[Ft],u=o.indexOf(n);Va(a,s[Gt],t,Wa(u,o,s[zt]))}else 4===i.type?Va(a,Ga(e,n),t,r):5===i.type?Va(a,r,t,te(e.parent,n)):wa(a)?a.appendChild(r,t):r.appendChild(t);return!0}return!1}function Ua(t){for(;null!=t.parent&&4===t.parent.type;)t=t.parent;return t}function Wa(t,e,n){if(t+1-1&&h>l?"":c[h+1],8&u&&(i=(a=g).length,o=(s=a.indexOf(r=b))+r.length,-1===s||s>0&&" "!==a[s-1]||o=9?e+0:e;n?t[a]|=1:t[a]&=-2}function Tr(t,e){return 1==(1&t[e>=9?e+0:e])}function wr(t,e){return 2==(2&t[e>=9?e+0:e])}function Sr(t,e){return 4==(4&t[e>=9?e+0:e])}function Or(t,e,n){return 63&t|e<<6|n<<20}function Ir(t,e){var n=Cr(e);return(2&e?t[3]:t[2])[n]}function Cr(t){return t>>6&16383}function kr(t){var e=t>>20&16383;return e>=9?e:-1}function Nr(t){return kr(t[0])}function Rr(t,e,n){t[e+1]=n}function Ar(t,e,n){t[e+2]=n}function Dr(t,e,n){var a=t[8];if(e){if(!a||0===n)return!0}else if(!a)return!1;return a[n]!==e}function Er(t,e,n){var a=t[8]||fr(t);return n>0?a[n]=e:(a.splice(n=a[0],0,e,null),a[0]+=2),n}function Lr(t,e,n,a){var r=function(t,e){return n<<16|t}(a);t[e+3]=r}function Pr(t,e){return t[e+3]>>16&65535}function Mr(t,e){var n=Pr(t,e);if(n){var a=t[8];if(a)return a[n]}return null}function qr(t,e,n){t[0===e?e:e+0]=n}function jr(t,e){return t[0===e?e:e+0]}function Fr(t,e){return t[e+2]}function zr(t,e){return t[e+1]}function Gr(t){return 16&t[0]}function Yr(t,e){xr(t,0,e)}function Vr(t,e){e?t[0]|=8:t[0]&=-9}function Hr(t,e,n){for(var a=(n||0)+1;a=0&&qr(t,c,Or(l=jr(t,c),Cr(l),n));var l,d=kr(u);d>=0&&qr(t,d,Or(l=jr(t,d),Cr(l),e)),Ar(t,e,Fr(t,n)),Rr(t,e,zr(t,n)),qr(t,e,jr(t,n)),Lr(t,e,Pr(t,n),0),Ar(t,n,a),Rr(t,n,r),qr(t,n,i),Lr(t,n,s,0)}function Ur(t,e,n,a,r,i,s,o){var u=e0){var i=Cr(jr(t,r));qr(t,r,Or((Tr(t,r)?1:0)|(wr(t,r)?2:0)|(Sr(t,r)?4:0),i,a))}}}(t)}function Wr(t,e){return e?!!t:null!==t}function Kr(t,e,n,a){var r,i=a&&a(e)?4:0;return n?(i|=2,r=ti(t[3],e)):r=ti(t[2],e),Or(i,r=r>0?r+1:0,0)}function $r(t,e,n){return!(2&t)&&e&&n&&4&t?e.toString()!==n.toString():e!==n}var Zr=function(){function t(t,e,n){this._element=e,this._type=n,this._values={},this._dirty=!1,this._factory=t}return t.prototype.setValue=function(t,e){this._values[t]!==e&&(this._values[t]=e,this._dirty=!0)},t.prototype.buildPlayer=function(t,e){if(this._dirty){var n=this._factory.fn(this._element,this._type,this._values,e,t||null);return this._values={},this._dirty=!1,n}},t}();function Xr(t,e){return 65535&t[e+3]}function Jr(t,e){var n=Qr(t[1],e);return n>0?n/4:0}function Qr(t,e){for(var n=0;nr)for(var s=0===e,o=n.data,u=r;u=0)return-1;a=s/4,r[s+1]=i,r[s+3]=n||null}return a}(t,e,r);if(-1!==s){var o=t[4],u=o[1],c=o[0],l=4*c,d=9+l,f=d+4*u,p=f+l,h=o.length;o.push(a?a.length:0,n?n.length:0);var g=0,b=[];if(a&&a.length)for(var m=0;m=f,A=N>=(R?p:d),D=jr(t,N),E=Cr(D),L=kr(D);qr(t,N,Or(D,E,L+=R?A?4*b.length:0:4*k+4*(A?b.length:0)))}for(var P=0;P<4*b.length;P++)t.splice(p,0,null),t.splice(d,0,null),d++,f++,p+=2;for(var M=0;M<4*v.length;M++)t.splice(f,0,null),t.push(null),f++,p++;for(var q=t[3],j=t[2],F=0;F=b.length,G=z?F-b.length:F,Y=z?v[G]:b[G],V=void 0,H=void 0;z?(V=p+4*(u+G),H=d+4*(u+G)):(V=f+4*(c+G),H=9+4*(c+G));var B=z?q:j,U=ti(B,Y);-1===U?(U=B.length+1,B.push(Y,!z&&null)):U+=1;var W=Kr(t,Y,z,r||null);qr(t,H,Or(W,U,V)),Rr(t,H,Y),Ar(t,H,null),Lr(t,H,0,s),qr(t,V,Or(W,U,H)),Rr(t,V,Y),Ar(t,V,null),Lr(t,V,0,s)}o[1]=u+v.length,o[0]=c+b.length,qr(t,0,Or(0,0,f)|(i?16:0))}}}(r.stylingTemplate,a||null,t,e,n,pr(r))}function Fi(t,e){var n=Qe();n.stylingTemplate||(n.stylingTemplate=hr(e)),function(t,e,n){var a=t[1];if(-1==Qr(a,n)){a.push(n,-1,!1,null);for(var r=null,i=null,s=-1,o=0;o0&&ps(ce(n),2)}function Gi(t,e,n,a,r){var i=null;null!==n&&(i=a?Zt(n)+a:n),yr(ur(t+qt,Xe()),e,i,!1,r)}function Yi(t,e,n,a){var r=n instanceof rr?n:!!n;yr(ur(t+qt,Xe()),e,r,!0,a)}function Vi(t,e,n,a){if(null!=a)return function(t,e,n,a){throw new Error("unimplemented. Should not be needed by ViewEngine compatibility")}();var r=Xe(),i=ee(t,r),s=ur(t+qt,r);if(pr(i)&&e!==ha){var o=ai(s);Mi(r,i.inputs.class,(o.length?o+" ":"")+e)}else!function(t,e,n,a){n=n||null;var r=Jr(t,null),i=t[5],s=e instanceof rr?new Zr(e,i,1):null,o=n instanceof rr?new Zr(n,i,2):null,u=s?e.value:e,c=o?n.value:n,l=Gr(t)||u===ha||u===t[6],d=c===ha||c===t[7];if(!l||!d){t[6]=u,t[7]=c;var f=it,p=!1,h=!1,g=s?1:0;Dr(t,s,1)&&(Er(t,s,1),h=!0);var b=o?3:0;Dr(t,o,3)&&(Er(t,o,3),h=!0),l||("string"==typeof u?(f=u.split(/\s+/),p=!0):f=u?Object.keys(u):it);for(var m=u||rt,y=c?Object.keys(c):it,v=c||rt,_=y.length,x=!1,T=Nr(t),w=0,S=y.length+f.length;T=_)&&!d||M&&!l){var O=M?w-_:w,I=M?f[O]:y[O],C=M?!!p||m[I]:v[I],k=M?g:b;if((q=zr(t,T))===I){var N=Fr(t,T),R=jr(t,T);if(Lr(t,T,k,r),$r(R,N,C)){Ar(t,T,C),h=h||!!k;var A=Ir(t,R);(null!=N||$r(R,A,C))&&(xr(t,T,!0),x=!0)}}else{var D=Hr(t,I,T);if(D>0){var E=Fr(t,D),L=jr(t,D);Br(t,T,D),$r(L,E,C)&&(A=Ir(t,L),Ar(t,T,C),(null!=E||$r(L,A,C))&&(xr(t,T,!0),h=h||!!k,x=!0))}else h=h||!!k,Ur(t,T,M,I,Kr(t,I,M,ei(t,r)),C,r,k),x=!0}}T+=4,w++}for(;T=_)&&!d||M&&!l){O=M?w-_:w;var q=M?f[O]:y[O],j=(N=M?!!p||m[q]:v[q],R=1|Kr(t,q,M,P),k=M?g:b,t.length);t.push(R,q,N,0),Lr(t,j,k,r),x=!0}w++}x&&(Yr(t,!0),ni(t,r,!0)),h&&Vr(t,!0)}}(s,e,n)}function Hi(t,e){var n=Xe(),a=Da(e,n[At]),r=oi(t,3,a,null,null);an(!1),Ba(a,r,n)}function Bi(t,e){if(e!==ha){var n=Xe(),a=Qt(t,n),r=n[At];wa(r)?r.setValue(a,Zt(e)):a.textContent=Zt(e)}}function Ui(t,e,n){var a=-(e.index-qt),r=t.data.length-(65535&e.providerIndexes);(t.expandoInstructions||(t.expandoInstructions=[])).push(a,r,n)}function Wi(t,e,n,a){var r=Qe();Ki(t,r,e,n),r&&r.attrs&&function(t,e,a,i){var s=r.initialInputs;(void 0===s||t>=s.length)&&(s=function(t,e,n){var a=n.initialInputs||(n.initialInputs=[]);a[t]=null;for(var r=n.attrs,i=0;i=i.length||null==i[t])&&(i[t]=Oi(t,null,e,n,r.directiveRegistry,r.pipeRegistry,null)),i[t]}(t,e,n,i),null,4),s[wt]&&(o[wt]=s[wt].createView()),ui(t,o),bn(o,o[vt].node)),s&&(rn(o)&&La(o,s,a,s[jt],-1),s[jt]++),rn(o)?3:2}function os(){var t=Xe(),e=t[Ot];rn(t)&&(ii(t),t[_t]&=-2),ii(t),yn(t[xt]),tn(e),an(!1)}function us(t,e){var n=ye(Xe())[Ot];if(!n.projection)for(var a=n.projection=new Array(t?t.length+1:1).fill(null),r=a.slice(),i=n.child;null!==i;){var s=t?nr(i,t,e):0,o=i.next;r[s]?r[s].next=i:(a[s]=i,i.next=null),r[s]=i,i=o}}var cs=[];function ls(t,e,n){void 0===e&&(e=0);var a=Xe(),r=oi(t,1,null,null,n||null);null===r.projection&&(r.projection=e),an(!1);for(var i=ye(a),s=i[Ot].projection[e],o=i[xt],u=-1;s;){if(1===s.type){var c=ye(o),l=c[Ot].projection[s.projection];if(l){cs[++u]=s,cs[++u]=o,s=l,o=c[xt];continue}}else s.flags|=2,$a(s,r,a,o);null===s.next&&o!==i[xt]&&(o=cs[u--],s=cs[u--]),s=s.next}}function ds(t,e,n){var a=t[vt],r=dn();return t[Et]?t[Et][Tt]=n:r&&(a.childIndex=e),t[Et]=n,n}function fs(t){for(;t&&!(128&t[_t]);)t[_t]|=8,t=t[xt];t[_t]|=8,ps(t[kt],1)}function ps(t,e){var n,a=0===t.flags;t.flags|=e,a&&t.clean==ri&&(t.clean=new Promise(function(t){return n=t}),t.scheduler(function(){if(1&t.flags&&(t.flags&=-2,hs(t)),2&t.flags){t.flags&=-3;var e=t.playerHandler;e&&e.flushPlayers()}t.clean=ri,n(null)}))}function hs(t){for(var e=0;e=2&&a[r-2]===e.hostBindings?a[r-1]=a[r-1]+n:a.push(e.hostBindings,n)}(n,We,t),function(t,e,n){for(var a=0;a=a.data.length&&(a.data[r]=null),n[r]=e}function Ds(t){return Xt(sn,t)}function Es(t){return Xe()[Pt][t]}function Ls(t){return Xt(Xe(),t)}function Ps(t,e){return void 0===e&&(e=Ce.Default),t=J(t),Nn(Qe(),Xe(),t,e)}function Ms(t){return kn(Qe(),t)}function qs(t,e){var n=Xe(),a=n[vt],r=(n[Pt]||(n[Pt]=[])).push(t);if(dn()){var i=a.contentQueries||(a.contentQueries=[]);e!==(a.contentQueries.length?a.contentQueries[a.contentQueries.length-2]:-1)&&i.push(e,r-1)}}var js=ri;function Fs(t){return t?(void 0===t.inputs&&(t.inputs=qi(t,0)),t.inputs):null}function zs(){return Xe()}function Gs(t){return t[Ct]||(t[Ct]=[])}function Ys(t){return t[vt].cleanup||(t[vt].cleanup=[])}function Vs(t,e){var n=Fn(t);if(n){var a=n.native,r=n.lView,i=function(t,e){if(!(e=e||Fn(a)))return null;var n=ur(e.nodeIndex,e.lView);return dr(n)||fr(n)}(0,n),s=Zn(r);lr(i,s,a,e,0,t),ps(s,2)}}function Hs(t){var e=Fn(t);if(!e)return[];var n=ur(e.nodeIndex,e.lView),a=n?dr(n):null;return a?function(t){for(var e=[],n=t[0],a=2;a ");else if("object"==typeof e){var r=[];for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];r.push(i+":"+("string"==typeof s?JSON.stringify(s):$(s)))}a="{"+r.join(", ")+"}"}return"StaticInjectorError"+(n?"("+n+")":"")+"["+a+"]: "+t.replace(wo,"\n ")}function ko(t,e){return new Error(Co(t,e))}var No=new w("The presence of this token marks an injector as being the root injector."),Ro={},Ao={},Do=[],Eo=void 0;function Lo(){return void 0===Eo&&(Eo=new po),Eo}function Po(t,e,n){return void 0===e&&(e=null),void 0===n&&(n=null),e=e||Lo(),new Mo(t,n,e)}var Mo=function(){function t(t,e,n){var a=this;this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this.destroyed=!1;var r=[];zo([t],function(t){return a.processInjectorType(t,[],r)}),e&&zo(e,function(n){return a.processProvider(n,t,e)}),this.records.set(fo,Fo(void 0,this)),this.isRootInjector=this.records.has(No),this.injectorDefTypes.forEach(function(t){return a.get(t)})}return t.prototype.destroy=function(){this.assertNotDestroyed(),this.destroyed=!0;try{this.onDestroy.forEach(function(t){return t.ngOnDestroy()})}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}},t.prototype.get=function(t,e,n){void 0===e&&(e=lo),void 0===n&&(n=Ce.Default),this.assertNotDestroyed();var a,r=Ne(this);try{if(!(n&Ce.SkipSelf)){var i=this.records.get(t);if(void 0===i){var s=("function"==typeof(a=t)||"object"==typeof a&&a instanceof w)&&x(t);s&&this.injectableDefInScope(s)&&(i=Fo(qo(t),Ro),this.records.set(t,i))}if(void 0!==i)return this.hydrate(t,i)}return(n&Ce.Self?Lo():this.parent).get(t,e)}finally{Ne(r)}},t.prototype.assertNotDestroyed=function(){if(this.destroyed)throw new Error("Injector has already been destroyed.")},t.prototype.processInjectorType=function(t,e,n){var a=this;if(t=J(t)){var r=T(t),i=null==r&&t.ngModule||void 0,s=void 0===i?t:i,o=-1!==n.indexOf(s),u=void 0!==i&&t.providers||Do;if(void 0!==i&&(r=T(i)),null!=r){if(this.injectorDefTypes.add(s),this.records.set(s,Fo(r.factory,Ro)),null!=r.imports&&!o){n.push(s);try{zo(r.imports,function(t){return a.processInjectorType(t,e,n)})}finally{}}var c=r.providers;if(null!=c&&!o){var l=t;zo(c,function(t){return a.processProvider(t,l,c)})}var d=t.ngModule;zo(u,function(t){return a.processProvider(t,d,u)})}}},t.prototype.processProvider=function(t,e,n){var a=Yo(t=J(t))?t:J(t&&t.provide),r=function(t,e,n){var a=jo(t,e,n);return Go(t)?Fo(void 0,t.useValue):Fo(a,Ro)}(t,e,n);if(Yo(t)||!0!==t.multi){var i=this.records.get(a);if(i&&void 0!==i.multi)throw new Error("Mixed multi-provider for "+$(a))}else{var s=this.records.get(a);if(s){if(void 0===s.multi)throw new Error("Mixed multi-provider for "+a+".")}else(s=Fo(void 0,Ro,!0)).factory=function(){return Le(s.multi)},this.records.set(a,s);a=t,s.multi.push(t)}this.records.set(a,r)},t.prototype.hydrate=function(t,e){if(e.value===Ao)throw new Error("Cannot instantiate cyclic dependency! "+$(t));var n;return e.value===Ro&&(e.value=Ao,e.value=e.factory()),"object"==typeof e.value&&e.value&&"object"==typeof(n=e.value)&&null!=n&&n.ngOnDestroy&&"function"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value},t.prototype.injectableDefInScope=function(t){return!!t.providedIn&&("string"==typeof t.providedIn?"any"===t.providedIn||"root"===t.providedIn&&this.isRootInjector:this.injectorDefTypes.has(t.providedIn))},t}();function qo(t){var e=x(t);if(null===e){var n=T(t);if(null!==n)return n.factory;if(t instanceof w)throw new Error("Token "+$(t)+" is missing an ngInjectableDef definition.");if(t instanceof Function){var a=t.length;if(a>0){var r=new Array(a).fill("?");throw new Error("Can't resolve all parameters for "+$(t)+": ("+r.join(", ")+").")}return function(){return new t}}throw new Error("unreachable")}return e.factory}function jo(t,e,n){var r,i=void 0;if(Yo(t))return qo(J(t));if(Go(t))i=function(){return J(t.useValue)};else if((r=t)&&r.useExisting)i=function(){return De(J(t.useExisting))};else if(t&&t.useFactory)i=function(){return t.useFactory.apply(t,Object(a.__spread)(Le(t.deps||[])))};else{var s=J(t&&(t.useClass||t.provide));if(!s){var o="";throw e&&n&&(o=" - only instances of Provider and Type are allowed, got: ["+n.map(function(e){return e==t?"?"+t+"?":"..."}).join(", ")+"]"),new Error("Invalid provider for the NgModule '"+$(e)+"'"+o)}if(!t.deps)return qo(s);i=function(){return new(s.bind.apply(s,Object(a.__spread)([void 0],Le(t.deps))))}}return i}function Fo(t,e,n){return void 0===n&&(n=!1),{factory:t,value:e,multi:n?[]:void 0}}function zo(t,e){t.forEach(function(t){return Array.isArray(t)?zo(t,e):e(t)})}function Go(t){return t&&"object"==typeof t&&xo in t}function Yo(t){return"function"==typeof t}function Vo(t,e,n,a,r){if(t=J(t),Array.isArray(t))for(var i=0;i>16;if(Yo(t)||!t.multi){var p=new Kt(u,r,Ps),h=Bo(o,e,r?l:l+f,d);-1==h?(Cn(wn(c,s),s,o),e.push(o),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=65536),n.push(p),s.push(p)):(n[h]=p,s[h]=p)}else{var g=Bo(o,e,l+f,d),b=Bo(o,e,l,l+f),m=b>=0&&n[b];r&&!m||!r&&!(g>=0&&n[g])?(Cn(wn(c,s),s,o),p=function(t,e,n,a,r){var i=new Kt(t,n,Ps);return i.multi=[],i.index=e,i.componentProviders=0,Ho(i,r,a&&!n),i}(r?Wo:Uo,n.length,r,a,u),!r&&m&&(n[b].providerFactory=p),e.push(o),c.directiveStart++,c.directiveEnd++,r&&(c.providerIndexes+=65536),n.push(p),s.push(p)):Ho(n[r?b:g],u,!r&&a),!r&&a&&m&&n[b].componentProviders++}}}function Ho(t,e,n){t.multi.push(e),n&&t.componentProviders++}function Bo(t,e,n,a){for(var r=n;r-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}ja(this._lView)},t.prototype.onDestroy=function(t){var e,n;n=t,Gs(e=this._lView).push(n),e[vt].firstTemplatePass&&Ys(e).push(e[Ct].length-1,null)},t.prototype.markForCheck=function(){fs(this._lView)},t.prototype.detach=function(){this._lView[_t]&=-17},t.prototype.reattach=function(){this._lView[_t]|=16},t.prototype.detectChanges=function(){bs(this._lView,this.context)},t.prototype.checkNoChanges=function(){!function(t){cn(!0);try{gs(t)}finally{cn(!1)}}(this.context)},t.prototype.attachToViewContainerRef=function(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t},t.prototype.detachFromAppRef=function(){this._appRef=null},t.prototype.attachToAppRef=function(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t},t.prototype._lookUpContext=function(){return this._context=this._lView[xt][this._componentIndex]},t}(),lu=function(t){function e(e){var n=t.call(this,e,null,-1)||this;return n._view=e,n}return Object(a.__extends)(e,t),e.prototype.detectChanges=function(){ms(this._view)},e.prototype.checkNoChanges=function(){!function(t){cn(!0);try{ms(t)}finally{cn(!1)}}(this._view)},Object.defineProperty(e.prototype,"context",{get:function(){return null},enumerable:!0,configurable:!0}),e}(cu);function du(t,e,n){return Qo||(Qo=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e}(t)),new Qo(te(e,n))}function fu(t,e,n,r){if(tu||(tu=function(t){function e(e,n,a,r,i,s){var o=t.call(this)||this;return o._declarationParentView=e,o.elementRef=n,o._tView=a,o._renderer=r,o._queries=i,o._injectorIndex=s,o}return Object(a.__extends)(e,t),e.prototype.createEmbeddedView=function(t,e,n,a,r){var i=function(t,e,n,a,r,i){var s=nn(),o=Qe();an(!0),tn(null);var u=si(n,t,e,4);return u[Mt]=n,r&&(u[wt]=r.createView()),ui(-1,u),t.firstTemplatePass&&(t.node.injectorIndex=i),an(s),tn(o),u}(this._tView,t,this._declarationParentView,0,this._queries,this._injectorIndex);e&&La(i,e,a,r,n.index),li(i,this._tView,t);var s=new cu(i,t,-1);return s._tViewNode=i[Ot],s},e}(t)),0===n.type){var i=r[n.index];return new tu(r,du(e,n,r),n.tViews,Xe()[At],i[wt],n.injectorIndex)}return null}function pu(t,e,n){if(re(t)){var a=t.directiveStart,r=ne(t.index,e);return new cu(r,n,a)}if(3===t.type){var i=ye(e);return new cu(i,i[kt],-1)}return null}var hu=function(){function t(t){this.nativeElement=t}return t.__NG_ELEMENT_ID__=function(){return bu(t)},t}(),gu=function(t){return du(t,Qe(),Xe())},bu=oo,mu=function(){return function(t,e,n,a,r,i){this.id=t,this.templateUrl=e,this.slotCount=n,this.encapsulation=a,this.styles=r,this.animations=i}}(),yu=function(){return function(){}}(),vu=function(){return function(){}}(),_u=function(){return function(){}}(),xu=function(){return function(){}}(),Tu=function(t){return t[t.Important=1]="Important",t[t.DashCase=2]="DashCase",t}({}),wu=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return Ou()},t}(),Su=function(){return function(t){var e=Xe()[At];if(wa(e))return e;throw new Error("Cannot inject Renderer2 when the application uses Renderer3!")}()},Ou=oo,Iu=function(t){return t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL",t}({}),Cu=function(){return function(){}}(),ku=function(){return function(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}(),Nu=new ku("7.2.6"),Ru=function(t){function e(e){var n=t.call(this)||this;return n.ngModule=e,n}return Object(a.__extends)(e,t),e.prototype.resolveComponentFactory=function(t){var e=gt(t);return new Pu(e,this.ngModule)},e}(ru);function Au(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}var Du=new w("ROOT_CONTEXT_TOKEN",{providedIn:"root",factory:function(){return Js(De(Eu))}}),Eu=new w("SCHEDULER_TOKEN",{providedIn:"root",factory:function(){return be}}),Lu={},Pu=function(t){function e(e,n){var a=t.call(this)||this;return a.componentDef=e,a.ngModule=n,a.componentType=e.type,a.selector=e.selectors[0][0],a.ngContentSelectors=[],a}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"inputs",{get:function(){return Au(this.componentDef.inputs)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){return Au(this.componentDef.outputs)},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,n,a){var r=void 0===n,i=(a=a||this.ngModule)?function(t,e){return{get:function(n,a){var r=t.get(n,Lu);return r!==Lu||a===Lu?r:e.get(n,a)}}}(t,a.injector):t,s=i.get(xu,Sa),o=i.get(Cu,null),u=r?Ti(this.selector,s.createRenderer(null,this.componentDef)):Ci(s,n),c=this.componentDef.onPush?136:132,l=r?Js():i.get(Du),d=s.createRenderer(u,this.componentDef);n&&u&&(wa(d)?d.setAttribute(u,"ng-version",Nu.full):u.setAttribute("ng-version",Nu.full));var f,p,h=si(null,Oi(-1,null,1,0,null,null,null),l,c,s,d,o,i),g=bn(h,null);try{s.begin&&s.begin();var b=Zs(u,this.componentDef,h,s,d);if(p=ee(0,h),e)for(var m=0,y=h[vt],v=p.projection=[],_=0;_',!this.inertBodyElement.querySelector||this.inertBodyElement.querySelector("svg")?(this.inertBodyElement.innerHTML='

',this.getInertBodyElement=this.inertBodyElement.querySelector&&this.inertBodyElement.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(t){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}return t.prototype.getInertBodyElement_XHR=function(t){t=""+t+"";try{t=encodeURI(t)}catch(a){return null}var e=new XMLHttpRequest;e.responseType="document",e.open("GET","data:text/html;charset=utf-8,"+t,!1),e.send(void 0);var n=e.response.body;return n.removeChild(n.firstChild),n},t.prototype.getInertBodyElement_DOMParser=function(t){t=""+t+"";try{var e=(new window.DOMParser).parseFromString(t,"text/html").body;return e.removeChild(e.firstChild),e}catch(n){return null}},t.prototype.getInertBodyElement_InertDocument=function(t){var e=this.inertDocument.createElement("template");return"content"in e?(e.innerHTML=t,e):(this.inertBodyElement.innerHTML=t,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(this.inertBodyElement),this.inertBodyElement)},t.prototype.stripCustomNsAttrs=function(t){for(var e=t.attributes,n=e.length-1;0"),!0},t.prototype.endElement=function(t){var e=t.nodeName.toLowerCase();Qu.hasOwnProperty(e)&&!$u.hasOwnProperty(e)&&(this.buf.push(""))},t.prototype.chars=function(t){this.buf.push(sc(t))},t.prototype.checkClobberedElement=function(t,e){if(e&&(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error("Failed to sanitize html because the element is clobbered: "+t.outerHTML);return e},t}(),rc=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,ic=/([^\#-~ |!])/g;function sc(t){return t.replace(/&/g,"&").replace(rc,function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"}).replace(ic,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}function oc(t,e){var n=null;try{Ku=Ku||new Gu(t);var a=e?String(e):"";n=Ku.getInertBodyElement(a);var r=5,i=a;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,a=i,i=n.innerHTML,n=Ku.getInertBodyElement(a)}while(a!==i);var s=new ac,o=s.sanitizeChildren(uc(n)||n);return Fu()&&s.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"),o}finally{if(n)for(var u=uc(n)||n;u.firstChild;)u.removeChild(u.firstChild)}}function uc(t){return"content"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}var cc={marker:"element"},lc={marker:"comment"},dc="\ufffd",fc=/^\s*(\ufffd\d+:?\d*\ufffd)\s*,\s*(select|plural)\s*,/,pc=/\ufffd\/?\*(\d+:\d+)\ufffd/gi,hc=/\ufffd(\/?[#*]\d+):?\d*\ufffd/gi,gc=/\ufffd(\d+):?\d*\ufffd/gi,bc=/({\s*\ufffd\d+:?\d*\ufffd\s*,\s*\S{6}\s*,[\s\S]*})/gi,mc=/\[(\ufffd.+?\ufffd?)\]/g,yc=/({\s*)(VAR_(PLURAL|SELECT)(_\d+)?)(\s*,)/g,vc=/\ufffdI18N_EXP_(ICU(_\d+)?)\ufffd/g;function _c(t){if(!t)return[];var e,n=0,a=[],r=[],i=/[{}]/g;for(i.lastIndex=0;e=i.exec(t);){var s=e.index;if("}"==e[0]){if(a.pop(),0==a.length){var o=t.substring(n,s);fc.test(o)?r.push(xc(o)):o&&r.push(o),n=s+1}}else{if(0==a.length){var u=t.substring(n,s);r.push(u),n=s+1}a.push("{")}}var c=t.substring(n);return""!=c&&r.push(c),r}function xc(t){for(var e=[],n=[],a=1,r=0,i=_c(t=t.replace(fc,function(t,e,n){return a="select"===n?0:1,r=parseInt(e.substr(1),10),""})),s=0;s0&&s!==o&&l.push(s.index<<3|0);for(var d=[],f=[],p=function(t,e){if("number"!=typeof e)return Tc(t);var n=t.indexOf(":"+e+dc)+2+e.toString().length,a=t.search(new RegExp(dc+"\\/\\*\\d+:"+e+dc));return Tc(t.substring(n,a))}(n,a).split(hc),h=0;h>>17,d=void 0;s=Rc(i,d=l===t?a[Ot]:ee(l,a),s),d.next=null;break;case 0:var f=c>>>3;o.push(f),s=i,(i=ee(f,a))&&(tn(i),3===i.type&&an(!0));break;case 5:s=i=ee(c>>>3,a),tn(i),an(!1);break;case 4:Ri(c>>>3,e[++u],e[++u]);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}else switch(c){case lc:var p=e[++u],h=r.createComment(p);s=i,i=oi(n++,5,h,null,null),Yn(h,a),i.activeCaseIndex=null,an(!1);break;case cc:var g=e[++u];s=i,i=oi(n++,3,r.createElement(g),g,null);break;default:throw new Error('Unable to determine the type of mutate operation for "'+c+'"')}}return an(!1),o}function Lc(t,e){var n=ee(t,e);Ka(n,Qt(t,e)||null,e),n.detached=!0;var a=Ls(t);if(se(a)){var r=a;0!==n.type&&Ka(n,r[zt]||null,e),r[Gt]=null}}function Pc(t,e,n){Nc(t,e,n),Dc()}function Mc(t,e){var n=Xe()[vt];n.firstTemplatePass&&null===n.data[t+qt]&&function(t,e,n){for(var a=Qe().index-qt,r=[],i=0;i>>2;switch(3&p){case 1:Ri(h,e[++f],d,e[++f]);break;case 0:Bi(h,d);break;case 2:var g=e[++f],b=n[g],m=ee(h,i);if(null!==m.activeCaseIndex)for(var y=b.remove[m.activeCaseIndex],v=0;v>>3,i);break;case 6:var x=ee(y[v+1]>>>3,i).activeCaseIndex;null!==x&&me(n[_>>>3].remove[x],y)}}var T=Yc(b,d);m.activeCaseIndex=-1!==T?T:null,Ec(-1,b.create[T],b.expandoStartIndex,i),o=!0;break;case 3:b=n[g=e[++f]],m=ee(h,i),t(b.update[m.activeCaseIndex],n,a,r,i,o)}}}u+=l}}(a,r,e[It]-jc-1,qc,e),qc=0,jc=0}}var Gc=function(t){return t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other",t}({});function Yc(t,e){var n=t.cases.indexOf(e);if(-1===n)switch(t.type){case 1:var a=function(t,n){switch(function(t,e){"string"==typeof e&&(e=parseInt(e,10));var n=e,a=n.toString().replace(/^[^.]*\.?/,""),r=Math.floor(Math.abs(n)),i=a.length,s=parseInt(a,10),o=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(t.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?Gc.One:Gc.Other;case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?Gc.One:Gc.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===r||1===n?Gc.One:Gc.Other;case"ar":return 0===n?Gc.Zero:1===n?Gc.One:2===n?Gc.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?Gc.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?Gc.Many:Gc.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===r&&0===i?Gc.One:Gc.Other;case"be":return n%10==1&&n%100!=11?Gc.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?Gc.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?Gc.Many:Gc.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?Gc.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?Gc.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?Gc.Few:0!==n&&n%1e6==0?Gc.Many:Gc.Other;case"bs":case"hr":case"sr":return 0===i&&r%10==1&&r%100!=11||s%10==1&&s%100!=11?Gc.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)||s%10===Math.floor(s%10)&&s%10>=2&&s%10<=4&&!(s%100>=12&&s%100<=14)?Gc.Few:Gc.Other;case"cs":case"sk":return 1===r&&0===i?Gc.One:r===Math.floor(r)&&r>=2&&r<=4&&0===i?Gc.Few:0!==i?Gc.Many:Gc.Other;case"cy":return 0===n?Gc.Zero:1===n?Gc.One:2===n?Gc.Two:3===n?Gc.Few:6===n?Gc.Many:Gc.Other;case"da":return 1===n||0!==o&&(0===r||1===r)?Gc.One:Gc.Other;case"dsb":case"hsb":return 0===i&&r%100==1||s%100==1?Gc.One:0===i&&r%100==2||s%100==2?Gc.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||s%100===Math.floor(s%100)&&s%100>=3&&s%100<=4?Gc.Few:Gc.Other;case"ff":case"fr":case"hy":case"kab":return 0===r||1===r?Gc.One:Gc.Other;case"fil":return 0===i&&(1===r||2===r||3===r)||0===i&&r%10!=4&&r%10!=6&&r%10!=9||0!==i&&s%10!=4&&s%10!=6&&s%10!=9?Gc.One:Gc.Other;case"ga":return 1===n?Gc.One:2===n?Gc.Two:n===Math.floor(n)&&n>=3&&n<=6?Gc.Few:n===Math.floor(n)&&n>=7&&n<=10?Gc.Many:Gc.Other;case"gd":return 1===n||11===n?Gc.One:2===n||12===n?Gc.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?Gc.Few:Gc.Other;case"gv":return 0===i&&r%10==1?Gc.One:0===i&&r%10==2?Gc.Two:0!==i||r%100!=0&&r%100!=20&&r%100!=40&&r%100!=60&&r%100!=80?0!==i?Gc.Many:Gc.Other:Gc.Few;case"he":return 1===r&&0===i?Gc.One:2===r&&0===i?Gc.Two:0!==i||n>=0&&n<=10||n%10!=0?Gc.Other:Gc.Many;case"is":return 0===o&&r%10==1&&r%100!=11||0!==o?Gc.One:Gc.Other;case"ksh":return 0===n?Gc.Zero:1===n?Gc.One:Gc.Other;case"kw":case"naq":case"se":case"smn":return 1===n?Gc.One:2===n?Gc.Two:Gc.Other;case"lag":return 0===n?Gc.Zero:0!==r&&1!==r||0===n?Gc.Other:Gc.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?Gc.Few:0!==s?Gc.Many:Gc.Other:Gc.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===i&&s%100===Math.floor(s%100)&&s%100>=11&&s%100<=19?Gc.Zero:n%10==1&&n%100!=11||2===i&&s%10==1&&s%100!=11||2!==i&&s%10==1?Gc.One:Gc.Other;case"mk":return 0===i&&r%10==1||s%10==1?Gc.One:Gc.Other;case"mt":return 1===n?Gc.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?Gc.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?Gc.Many:Gc.Other;case"pl":return 1===r&&0===i?Gc.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?Gc.Few:0===i&&1!==r&&r%10===Math.floor(r%10)&&r%10>=0&&r%10<=1||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=12&&r%100<=14?Gc.Many:Gc.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?Gc.One:Gc.Other;case"ro":return 1===r&&0===i?Gc.One:0!==i||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?Gc.Few:Gc.Other;case"ru":case"uk":return 0===i&&r%10==1&&r%100!=11?Gc.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?Gc.Few:0===i&&r%10==0||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=11&&r%100<=14?Gc.Many:Gc.Other;case"shi":return 0===r||1===n?Gc.One:n===Math.floor(n)&&n>=2&&n<=10?Gc.Few:Gc.Other;case"si":return 0===n||1===n||0===r&&1===s?Gc.One:Gc.Other;case"sl":return 0===i&&r%100==1?Gc.One:0===i&&r%100==2?Gc.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||0!==i?Gc.Few:Gc.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?Gc.One:Gc.Other;default:return Gc.Other}}("en-US",e)){case Gc.Zero:return"zero";case Gc.One:return"one";case Gc.Two:return"two";case Gc.Few:return"few";case Gc.Many:return"many";default:return"other"}}();-1===(n=t.cases.indexOf(a))&&"other"!==a&&(n=t.cases.indexOf("other"));break;case 0:n=t.cases.indexOf("other")}return n}function Vc(t,e,n,r){for(var i=[],s=[],o=[],u=[],c=[],l=0;l=0;n--){var a=e[n];if(t===a.name)return a}throw new Error("The pipe '"+t+"' could not be found!")}(e,a.pipeRegistry),a.data[r]=n,n.onDestroy&&(a.pipeDestroyHooks||(a.pipeDestroyHooks=[])).push(r,n.onDestroy)):n=a.data[r];var i=n.factory(null);return As(t,i),i}function ol(t,e,n){var a=Ls(t);return pl(fl(t)?Xc(e,a.transform,n,a):a.transform(n))}function ul(t,e,n,a){var r=Ls(t);return pl(fl(t)?Jc(e,r.transform,n,a,r):r.transform(n,a))}function cl(t,e,n,a,r){var i=Ls(t);return pl(fl(t)?Qc(e,i.transform,n,a,r,i):i.transform(n,a,r))}function ll(t,e,n,a,r,i){var s=Ls(t);return pl(fl(t)?tl(e,s.transform,n,a,r,i,s):s.transform(n,a,r,i))}function dl(t,e,n){var a=Ls(t);return pl(fl(t)?il(e,a.transform,n,a):a.transform.apply(a,n))}function fl(t){return Xe()[vt].data[t+qt].pure}function pl(t){return ca.isWrapped(t)&&(t=ca.unwrap(t),Xe()[hn()]=ha),t}var hl=function(t){function e(e){void 0===e&&(e=!1);var n=t.call(this)||this;return n.__isAsync=e,n}return Object(a.__extends)(e,t),e.prototype.emit=function(e){t.prototype.next.call(this,e)},e.prototype.subscribe=function(e,n,a){var i,s=function(t){return null},o=function(){return null};e&&"object"==typeof e?(i=this.__isAsync?function(t){setTimeout(function(){return e.next(t)})}:function(t){e.next(t)},e.error&&(s=this.__isAsync?function(t){setTimeout(function(){return e.error(t)})}:function(t){e.error(t)}),e.complete&&(o=this.__isAsync?function(){setTimeout(function(){return e.complete()})}:function(){e.complete()})):(i=this.__isAsync?function(t){setTimeout(function(){return e(t)})}:function(t){e(t)},n&&(s=this.__isAsync?function(t){setTimeout(function(){return n(t)})}:function(t){n(t)}),a&&(o=this.__isAsync?function(){setTimeout(function(){return a()})}:function(){a()}));var u=t.prototype.subscribe.call(this,i,s,o);return e instanceof r.a&&e.add(u),u},e}(i.a),gl=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return ml(t,hu)},t}(),bl=function(t,e){return fu(t,e,Qe(),Xe())},ml=oo,yl=function(){function t(t,e,n){this.parent=t,this.shallow=e,this.deep=n}return t.prototype.track=function(t,e,n,a){n?this.deep=Rl(this.deep,t,e,null!=a?a:null):this.shallow=Rl(this.shallow,t,e,null!=a?a:null)},t.prototype.clone=function(){return new t(this,null,this.deep)},t.prototype.container=function(){var e=vl(this.shallow),n=vl(this.deep);return e||n?new t(this,e,n):null},t.prototype.createView=function(){var e=_l(this.shallow),n=_l(this.deep);return e||n?new t(this,e,n):null},t.prototype.insertView=function(t){xl(t,this.shallow),xl(t,this.deep)},t.prototype.addNode=function(t){return Cl(this.deep,t),ae(t)?(Cl(this.shallow,t),t.parent&&ae(t.parent)&&Cl(this.parent.shallow,t),this.parent):(function(t){return null===t.parent||ae(t.parent)}(t)&&Cl(this.shallow,t),this)},t.prototype.removeView=function(){Tl(this.shallow),Tl(this.deep)},t}();function vl(t){for(var e=null;t;){var n=[];t.values.push(n),e={next:e,list:t.list,predicate:t.predicate,values:n,containerValues:null},t=t.next}return e}function _l(t){for(var e=null;t;)e={next:e,list:t.list,predicate:t.predicate,values:[],containerValues:t.values},t=t.next;return e}function xl(t,e){for(;e;)e.containerValues.splice(t,0,e.values),e=e.next}function Tl(t){for(;t;){var e=t.containerValues,n=e.indexOf(t.values);e.splice(n,1)[0].length&&t.list.setDirty(),t=t.next}}function wl(t,e){var n=t.localNames;if(n)for(var a=0;a-1?En(e[vt].data,e,a,t):function(t,e){return 3===t.type||4===t.type?du(hu,t,e):0===t.type?fu(gl,hu,t,e):null}(t,e)}function Cl(t,e){for(var n=Xe();t;){var a=t.predicate,r=a.type;if(r){var i=null;r===gl?i=Ol(r,e,n,a.read):null!==(u=Dn(e,n,r,!1,!1))&&(i=Il(e,n,a.read,u)),null!==i&&kl(t,i)}else for(var s=a.selector,o=0;o0?(t=a.concat(t.slice(n+1)),n=0):n++:(e.push(a),n++)}return e}(t),this.dirty=!1},t.prototype.notifyOnChanges=function(){this.changes.emit(this)},t.prototype.setDirty=function(){this.dirty=!0},t.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},t}();function Dl(t,e,n,a){var r,i,s,o=new Al;return(r=yl,i=Xe(),s=i[wt],He&&He!==i[Ot]&&!ae(He)&&(s&&(s=i[wt]=s.clone()),He.flags|=4),s||(i[wt]=new r(null,null,null))).track(o,e,n,a),function(t,e,n){var a=Gs(t);a.push(e),t[vt].firstTemplatePass&&Ys(t).push(n,a.length-1)}(Xe(),o,o.destroy),null!=t&&As(t,o),o}function El(t){return!!t.dirty&&(t.reset(t._valuesTree),t.notifyOnChanges(),!0)}function Ll(t,e){return fu(gl,hu,t,e)}var Pl="__SANITIZER_TRUSTED_BRAND__";function Ml(t,e){return t instanceof String&&t[Pl]===e}function ql(t){return Yl(t,"Html")}function jl(t){return Yl(t,"Style")}function Fl(t){return Yl(t,"Script")}function zl(t){return Yl(t,"Url")}function Gl(t){return Yl(t,"ResourceUrl")}function Yl(t,e){var n=new String(t);return n[Pl]=e,n}var Vl=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),Hl=/^url\(([^)]+)\)$/;function Bl(t){if(!(t=String(t).trim()))return"";var e=t.match(Hl);return e&&Hu(e[1])===e[1]||t.match(Vl)&&function(t){for(var e=!0,n=!0,a=0;a=0;t--){var e=xd[t],n=e.moduleType,a=e.ngModule;a.declarations&&a.declarations.every(wd)&&(xd.splice(t,1),Cd(n,a))}}finally{Td=!1}}}(),void 0!==t.ngSelectorScope){var o=Nd(t.ngSelectorScope);kd(n,o)}}return n},configurable:!1})}function Ld(t,e){var n=null;Object.defineProperty(t,f,{get:function(){if(null===n){var a=Md(t,e);n=ve().compileDirective(Ql,"ng://"+(t&&t.name)+"/ngDirectiveDef.js",a)}return n},configurable:!1})}function Pd(t){return Object.getPrototypeOf(t.prototype)===Object.prototype}function Md(t,e){var n=md().propMetadata(t);return{name:t.name,type:t,typeArgumentCount:0,selector:e.selector,deps:yd(t),host:e.host||rt,propMetadata:n,inputs:e.inputs||it,outputs:e.outputs||it,queries:qd(t,n,jd),lifecycle:{usesOnChanges:void 0!==t.prototype.ngOnChanges},typeSourceSpan:null,usesInheritance:!Pd(t),exportAs:e.exportAs||null,providers:e.providers||null}}function qd(t,e,n){var a=[],r=function(r){e.hasOwnProperty(r)&&e[r].forEach(function(e){if(n(e)){if(!e.selector)throw new Error("Can't construct a query for the property \""+r+'" of "'+Zt(t)+"\" since the query selector wasn't defined.");a.push(function(t,e){return{propertyName:r,predicate:(n=e.selector,"string"==typeof n?n.split(",").map(function(t){return t.trim()}):J(n)),descendants:e.descendants,first:e.first,read:e.read?e.read:null};var n}(0,e))}})};for(var i in e)r(i);return a}function jd(t){var e=t.ngMetadataName;return"ContentChild"===e||"ContentChildren"===e}function Fd(t){var e=t.ngMetadataName;return"ViewChild"===e||"ViewChildren"===e}function zd(t,e){var n=null;Object.defineProperty(t,g,{get:function(){return null===n&&(n=ve().compilePipe(Ql,"ng://"+Zt(t)+"/ngPipeDef.js",{type:t,name:t.name,deps:yd(t),pipeName:e.name,pure:void 0===e.pure||e.pure})),n},configurable:!1})}var Gd=C("Directive",function(t){return void 0===t&&(t={}),t},void 0,void 0,function(t,e){return Qd(t,e)}),Yd=C("Component",function(t){return void 0===t&&(t={}),Object(a.__assign)({changeDetection:j.Default},t)},Gd,void 0,function(t,e){return Jd(t,e)}),Vd=C("Pipe",function(t){return Object(a.__assign)({pure:!0},t)},void 0,void 0,function(t,e){return tf(t,e)}),Hd=function(t){return function(e,n){for(var a=[],r=2;r1?" ("+function(t){for(var e=[],n=0;n-1)return e.push(t[n]),e;e.push(t[n])}return e}(t.slice().reverse()).map(function(t){return $(t.token)}).join(" -> ")+")":""}function If(t,e,n,a){var r=[e],i=n(r),s=a?function(t,e){var n=i+" caused by: "+(e instanceof Error?e.message:e),a=Error(n);return a[vf]=e,a}(0,a):Error(i);return s.addKey=Cf,s.keys=r,s.injectors=[t],s.constructResolvingMessage=n,s[vf]=a,s}function Cf(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage(this.keys)}function kf(t,e){for(var n=[],a=0,r=e.length;a=this._providers.length)throw function(t){return Error("Index "+t+" is out-of-bounds.")}(t);return this._providers[t]},t.prototype._new=function(t){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw If(this,t.key,function(t){return"Cannot instantiate cyclic dependency!"+Of(t)});return this._instantiateProvider(t)},t.prototype._getMaxNumberOfObjects=function(){return this.objs.length},t.prototype._instantiateProvider=function(t){if(t.multiProvider){for(var e=new Array(t.resolvedFactories.length),n=0;n0&&(r=setTimeout(function(){a._callbacks=a._callbacks.filter(function(t){return t.timeoutId!==r}),t(a._didWork,a.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:r,updateCb:n})},t.prototype.whenStable=function(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()},t.prototype.getPendingRequestCount=function(){return this._pendingCount},t.prototype.findProviders=function(t,e,n){return[]},t}(),jp=function(){function t(){this._applications=new Map,Gp.addToWindow(this)}return t.prototype.registerApplication=function(t,e){this._applications.set(t,e)},t.prototype.unregisterApplication=function(t){this._applications.delete(t)},t.prototype.unregisterAllApplications=function(){this._applications.clear()},t.prototype.getTestability=function(t){return this._applications.get(t)||null},t.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},t.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},t.prototype.findTestabilityInTree=function(t,e){return void 0===e&&(e=!0),Gp.findTestabilityInTree(this,t,e)},Object(a.__decorate)([Object(a.__metadata)("design:paramtypes",[])],t)}();function Fp(t){Gp=t}var zp,Gp=new(function(){function t(){}return t.prototype.addToWindow=function(t){},t.prototype.findTestabilityInTree=function(t,e,n){return null},t}());function Yp(t,e,n){return Promise.resolve(new Kc(n))}var Vp=new w("AllowMultipleToken"),Hp=function(){return function(t,e){this.name=t,this.token=e}}();function Bp(t){if(zp&&!zp.destroyed&&!zp.injector.get(Vp,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");zp=t.get(Zp);var e=t.get(Qf,null);return e&&e.forEach(function(t){return t()}),zp}function Up(t,e,n){void 0===n&&(n=[]);var a="Platform: "+e,r=new w(a);return function(e){void 0===e&&(e=[]);var i=$p();if(!i||i.injector.get(Vp,!1))if(t)t(n.concat(e).concat({provide:r,useValue:!0}));else{var s=n.concat(e).concat({provide:r,useValue:!0});Bp(ho.create({providers:s,name:a}))}return Wp(r)}}function Wp(t){var e=$p();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}function Kp(){zp&&!zp.destroyed&&zp.destroy()}function $p(){return zp&&!zp.destroyed?zp:null}var Zp=function(){function t(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return t.prototype.bootstrapModuleFactory=function(t,e){var n,a=this,r="noop"===(n=e?e.ngZone:void 0)?new Mp:("zone.js"===n?void 0:n)||new Rp({enableLongStackTrace:Fu()}),i=[{provide:Rp,useValue:r}];return r.run(function(){var e=ho.create({providers:i,parent:a.injector,name:t.moduleType.name}),n=t.create(e),s=n.injector.get(Sf,null);if(!s)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return n.onDestroy(function(){return Qp(a._modules,n)}),r.runOutsideAngular(function(){return r.onError.subscribe({next:function(t){s.handleError(t)}})}),function(t,e,r){try{var i=((s=n.injector.get(Kf)).runInitializers(),s.donePromise.then(function(){return a._moduleDoBootstrap(n),n}));return Bf(i)?i.catch(function(n){throw e.runOutsideAngular(function(){return t.handleError(n)}),n}):i}catch(o){throw e.runOutsideAngular(function(){return t.handleError(o)}),o}var s}(s,r)})},t.prototype.bootstrapModule=function(t,e){var n=this;void 0===e&&(e=[]);var a=Xp({},e);return function(t,e,n){return t.get(yp).createCompiler([e]).compileModuleAsync(n)}(this.injector,a,t).then(function(t){return n.bootstrapModuleFactory(t,a)})},t.prototype._moduleDoBootstrap=function(t){var e=t.injector.get(Jp);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(function(t){return e.bootstrap(t)});else{if(!t.instance.ngDoBootstrap)throw new Error("The module "+$(t.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');t.instance.ngDoBootstrap(e)}this._modules.push(t)},t.prototype.onDestroy=function(t){this._destroyListeners.push(t)},Object.defineProperty(t.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),t.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(t){return t.destroy()}),this._destroyListeners.forEach(function(t){return t()}),this._destroyed=!0},Object.defineProperty(t.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),t}();function Xp(t,e){return Array.isArray(e)?e.reduce(Xp,t):Object(a.__assign)({},t,e)}var Jp=function(){function t(t,e,n,a,r,i){var c=this;this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=a,this._componentFactoryResolver=r,this._initStatus=i,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Fu(),this._zone.onMicrotaskEmpty.subscribe({next:function(){c._zone.run(function(){c.tick()})}});var l=new s.a(function(t){c._stable=c._zone.isStable&&!c._zone.hasPendingMacrotasks&&!c._zone.hasPendingMicrotasks,c._zone.runOutsideAngular(function(){t.next(c._stable),t.complete()})}),d=new s.a(function(t){var e;c._zone.runOutsideAngular(function(){e=c._zone.onStable.subscribe(function(){Rp.assertNotInAngularZone(),W(function(){c._stable||c._zone.hasPendingMacrotasks||c._zone.hasPendingMicrotasks||(c._stable=!0,t.next(!0))})})});var n=c._zone.onUnstable.subscribe(function(){Rp.assertInAngularZone(),c._stable&&(c._stable=!1,c._zone.runOutsideAngular(function(){t.next(!1)}))});return function(){e.unsubscribe(),n.unsubscribe()}});this.isStable=Object(o.a)(l,d.pipe(Object(u.a)()))}var e;return e=t,t.prototype.bootstrap=function(t,e){var n,a=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");n=t instanceof Xo?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);var r=n instanceof su?null:this._injector.get(ou),i=n.create(ho.NULL,[],e||n.selector,r);i.onDestroy(function(){a._unloadComponent(i)});var s=i.injector.get(qp,null);return s&&i.injector.get(jp).registerApplication(i.location.nativeElement,s),this._loadComponent(i),Fu()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),i},t.prototype.tick=function(){var t=this;if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var n=e._tickScope();try{this._runningTick=!0,this._views.forEach(function(t){return t.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(t){return t.checkNoChanges()})}catch(a){this._zone.runOutsideAngular(function(){return t._exceptionHandler.handleError(a)})}finally{this._runningTick=!1,Cp(n)}},t.prototype.attachView=function(t){var e=t;this._views.push(e),e.attachToAppRef(this)},t.prototype.detachView=function(t){var e=t;Qp(this._views,e),e.detachFromAppRef()},t.prototype._loadComponent=function(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(ep,[]).concat(this._bootstrapListeners).forEach(function(e){return e(t)})},t.prototype._unloadComponent=function(t){this.detachView(t.hostView),Qp(this.components,t)},t.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(t){return t.destroy()})},Object.defineProperty(t.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),t._tickScope=Ip("ApplicationRef#tick()"),t}();function Qp(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}var th=function(){function t(){this.dirty=!0,this._results=[],this.changes=new hl,this.length=0}return t.prototype.map=function(t){return this._results.map(t)},t.prototype.filter=function(t){return this._results.filter(t)},t.prototype.find=function(t){return this._results.find(t)},t.prototype.reduce=function(t,e){return this._results.reduce(t,e)},t.prototype.forEach=function(t){this._results.forEach(t)},t.prototype.some=function(t){return this._results.some(t)},t.prototype.toArray=function(){return this._results.slice()},t.prototype[U()]=function(){return this._results[U()]()},t.prototype.toString=function(){return this._results.toString()},t.prototype.reset=function(t){this._results=function t(e){return e.reduce(function(e,n){var a=Array.isArray(n)?t(n):n;return e.concat(a)},[])}(t),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]},t.prototype.notifyOnChanges=function(){this.changes.emit(this)},t.prototype.setDirty=function(){this.dirty=!0},t.prototype.destroy=function(){this.changes.complete(),this.changes.unsubscribe()},t}(),eh=function(){return function(){}}(),nh={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},ah=function(){function t(t,e){this._compiler=t,this._config=e||nh}return t.prototype.load=function(t){return this._compiler instanceof bp?this.loadFactory(t):this.loadAndCompile(t)},t.prototype.loadAndCompile=function(t){var e=this,r=Object(a.__read)(t.split("#"),2),i=r[0],s=r[1];return void 0===s&&(s="default"),n("crnd")(i).then(function(t){return t[s]}).then(function(t){return rh(t,i,s)}).then(function(t){return e._compiler.compileModuleAsync(t)})},t.prototype.loadFactory=function(t){var e=Object(a.__read)(t.split("#"),2),r=e[0],i=e[1],s="NgFactory";return void 0===i&&(i="default",s=""),n("crnd")(this._config.factoryPathPrefix+r+this._config.factoryPathSuffix).then(function(t){return t[i+s]}).then(function(t){return rh(t,r,i)})},t}();function rh(t,e,n){if(!t)throw new Error("Cannot find '"+n+"' in '"+e+"'");return t}var ih=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return oh(t,hu)},t}(),sh=function(t,e){return function(t,e,n,r){var i;eu||(eu=function(t){function n(e,n,a){var r=t.call(this)||this;return r._lContainer=e,r._hostTNode=n,r._hostView=a,r._viewRefs=[],r}return Object(a.__extends)(n,t),Object.defineProperty(n.prototype,"element",{get:function(){return du(e,this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"injector",{get:function(){return new Mn(this._hostTNode,this._hostView)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"parentInjector",{get:function(){var t=In(this._hostTNode,this._hostView),e=ge(t,this._hostView),n=function(t,e,n){if(n.parent&&-1!==n.parent.injectorIndex){for(var a=n.parent.injectorIndex,r=n.parent;null!=r.parent&&a==r.injectorIndex;)r=r.parent;return r}for(var i=he(t),s=e,o=e[Ot];i>1;)o=(s=s[Mt])[Ot],i--;return o}(t,this._hostView,this._hostTNode);return fe(t)&&null!=n?new Mn(n,e):new Mn(null,this._hostView)},enumerable:!0,configurable:!0}),n.prototype.clear=function(){for(;this._lContainer[Ft].length;)this.remove(0)},n.prototype.get=function(t){return this._viewRefs[t]||null},Object.defineProperty(n.prototype,"length",{get:function(){return this._lContainer[Ft].length},enumerable:!0,configurable:!0}),n.prototype.createEmbeddedView=function(t,e,n){var a=this._adjustIndex(n),r=t.createEmbeddedView(e||{},this._lContainer,this._hostTNode,this._hostView,a);return r.attachToViewContainerRef(this),this._viewRefs.splice(a,0,r),r},n.prototype.createComponent=function(t,e,n,a,r){var i=n||this.parentInjector;!r&&null==t.ngModule&&i&&(r=i.get(ou,null));var s=t.create(i,a,void 0,r);return this.insert(s.hostView,e),s},n.prototype.insert=function(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n=t._lView,a=this._adjustIndex(e);return La(n,this._lContainer,this._hostView,a,this._hostTNode.index),Ea(n,!0,Wa(a,this._lContainer[Ft],this._lContainer[zt])),t.attachToViewContainerRef(this),this._viewRefs.splice(a,0,t),t},n.prototype.move=function(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n=this.indexOf(t);return this.detach(n),this.insert(t,this._adjustIndex(e)),t},n.prototype.indexOf=function(t){return this._viewRefs.indexOf(t)},n.prototype.remove=function(t){var e=this._adjustIndex(t,-1);Ma(this._lContainer,this._hostTNode,e),this._viewRefs.splice(e,1)},n.prototype.detach=function(t){var e=this._adjustIndex(t,-1),n=Pa(this._lContainer,e,!!this._hostTNode.detached);return null!=this._viewRefs.splice(e,1)[0]?new cu(n,n[kt],n[Lt]):null},n.prototype._adjustIndex=function(t,e){return void 0===e&&(e=0),null==t?this._lContainer[Ft].length+e:t},n}(t));var s=r[n.index];if(se(s))(i=s)[jt]=-1;else{var o=r[At].createComment("");if(oe(r)){var u=r[At],c=te(n,r);Va(u,Ha(u,c),o,function(t,e){return wa(t)?t.nextSibling(e):e.nextSibling}(u,c))}else Ba(o,n,r);r[n.index]=i=ts(s,n,r,o,!0),ds(r,n.index,i)}return new eu(i,n,r)}(t,e,Qe(),Xe())},oh=oo,uh=function(){function t(){}return t.__NG_ELEMENT_ID__=function(){return lh()},t}(),ch=function(){return pu(Qe(),Xe(),null)},lh=function(){for(var t=[],e=0;e-1}(a)||"root"===r.providedIn&&a._def.isRoot))){var l=t._providers.length;return t._def.providersByKey[e.tokenKey]={flags:5120,value:o.factory,deps:[],index:l,token:e.token},t._providers[l]=rb,t._providers[l]=db(t,t._def.providersByKey[e.tokenKey])}return 4&e.flags?n:t._parent.get(e.token,n)}finally{Ne(i)}}function db(t,e){var n;switch(201347067&e.flags){case 512:n=function(t,e,n){var r=n.length;switch(r){case 0:return new e;case 1:return new e(lb(t,n[0]));case 2:return new e(lb(t,n[0]),lb(t,n[1]));case 3:return new e(lb(t,n[0]),lb(t,n[1]),lb(t,n[2]));default:for(var i=new Array(r),s=0;s=n.length)&&(e=n.length-1),e<0)return null;var a=n[e];return a.viewContainerParent=null,bb(n,e),cg.dirtyParentQueries(a),hb(a),a}function pb(t,e,n){var a=e?Ng(e,e.def.lastRenderRootNode):t.renderElement,r=n.renderer.parentNode(a),i=n.renderer.nextSibling(a);Fg(n,2,r,i,void 0)}function hb(t){Fg(t,3,null,null,void 0)}function gb(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function bb(t,e){e>=t.length-1?t.pop():t.splice(e,1)}var mb=new Object;function yb(t,e,n,a,r,i){return new _b(t,e,n,a,r,i)}function vb(t){return t.viewDefFactory}var _b=function(t){function e(e,n,a,r,i,s){var o=t.call(this)||this;return o.selector=e,o.componentType=n,o._inputs=r,o._outputs=i,o.ngContentSelectors=s,o.viewDefFactory=a,o}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"inputs",{get:function(){var t=[],e=this._inputs;for(var n in e)t.push({propName:n,templateName:e[n]});return t},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"outputs",{get:function(){var t=[];for(var e in this._outputs)t.push({propName:e,templateName:this._outputs[e]});return t},enumerable:!0,configurable:!0}),e.prototype.create=function(t,e,n,a){if(!a)throw new Error("ngModule should be provided");var r=jg(this.viewDefFactory),i=r.nodes[0].element.componentProvider.nodeIndex,s=cg.createRootView(t,e||[],n,r,a,mb),o=ig(s,i).instance;return n&&s.renderer.setAttribute(rg(s,0).renderElement,"ng-version",Nu.full),new xb(s,new Ob(s),o)},e}(Xo),xb=function(t){function e(e,n,a){var r=t.call(this)||this;return r._view=e,r._viewRef=n,r._component=a,r._elDef=r._view.def.nodes[0],r.hostView=n,r.changeDetectorRef=n,r.instance=a,r}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"location",{get:function(){return new hu(rg(this._view,this._elDef.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"injector",{get:function(){return new Nb(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._viewRef.destroy()},e.prototype.onDestroy=function(t){this._viewRef.onDestroy(t)},e}(Zo);function Tb(t,e,n){return new wb(t,e,n)}var wb=function(){function t(t,e,n){this._view=t,this._elDef=e,this._data=n,this._embeddedViews=[]}return Object.defineProperty(t.prototype,"element",{get:function(){return new hu(this._data.renderElement)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"injector",{get:function(){return new Nb(this._view,this._elDef)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parentInjector",{get:function(){for(var t=this._view,e=this._elDef.parent;!e&&t;)e=kg(t),t=t.parent;return t?new Nb(t,e):new Nb(this._view,null)},enumerable:!0,configurable:!0}),t.prototype.clear=function(){for(var t=this._embeddedViews.length-1;t>=0;t--){var e=fb(this._data,t);cg.destroyView(e)}},t.prototype.get=function(t){var e=this._embeddedViews[t];if(e){var n=new Ob(e);return n.attachToViewContainerRef(this),n}return null},Object.defineProperty(t.prototype,"length",{get:function(){return this._embeddedViews.length},enumerable:!0,configurable:!0}),t.prototype.createEmbeddedView=function(t,e,n){var a=t.createEmbeddedView(e||{});return this.insert(a,n),a},t.prototype.createComponent=function(t,e,n,a,r){var i=n||this.parentInjector;r||t instanceof su||(r=i.get(ou));var s=t.create(i,a,void 0,r);return this.insert(s.hostView,e),s},t.prototype.insert=function(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");var n,a,r,i,s=t;return i=(n=this._data).viewContainer._embeddedViews,null==(a=e)&&(a=i.length),(r=s._view).viewContainerParent=this._view,gb(i,a,r),function(t,e){var n=Cg(e);if(n&&n!==t&&!(16&e.state)){e.state|=16;var a=n.template._projectedViews;a||(a=n.template._projectedViews=[]),a.push(e),function(t,n){if(!(4&n.flags)){e.parent.def.nodeFlags|=4,n.flags|=4;for(var a=n.parent;a;)a.childFlags|=4,a=a.parent}}(0,e.parentNodeDef)}}(n,r),cg.dirtyParentQueries(r),pb(n,a>0?i[a-1]:null,r),s.attachToViewContainerRef(this),t},t.prototype.move=function(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");var n,a,r,i,s,o=this._embeddedViews.indexOf(t._view);return r=e,s=(i=(n=this._data).viewContainer._embeddedViews)[a=o],bb(i,a),null==r&&(r=i.length),gb(i,r,s),cg.dirtyParentQueries(s),hb(s),pb(n,r>0?i[r-1]:null,s),t},t.prototype.indexOf=function(t){return this._embeddedViews.indexOf(t._view)},t.prototype.remove=function(t){var e=fb(this._data,t);e&&cg.destroyView(e)},t.prototype.detach=function(t){var e=fb(this._data,t);return e?new Ob(e):null},t}();function Sb(t){return new Ob(t)}var Ob=function(){function t(t){this._view=t,this._viewContainerRef=null,this._appRef=null}return Object.defineProperty(t.prototype,"rootNodes",{get:function(){return Fg(this._view,0,void 0,void 0,t=[]),t;var t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"destroyed",{get:function(){return 0!=(128&this._view.state)},enumerable:!0,configurable:!0}),t.prototype.markForCheck=function(){Sg(this._view)},t.prototype.detach=function(){this._view.state&=-5},t.prototype.detectChanges=function(){var t=this._view.root.rendererFactory;t.begin&&t.begin();try{cg.checkAndUpdateView(this._view)}finally{t.end&&t.end()}},t.prototype.checkNoChanges=function(){cg.checkNoChangesView(this._view)},t.prototype.reattach=function(){this._view.state|=4},t.prototype.onDestroy=function(t){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(t)},t.prototype.destroy=function(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),cg.destroyView(this._view)},t.prototype.detachFromAppRef=function(){this._appRef=null,hb(this._view),cg.dirtyParentQueries(this._view)},t.prototype.attachToAppRef=function(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t},t.prototype.attachToViewContainerRef=function(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t},t}();function Ib(t,e){return new Cb(t,e)}var Cb=function(t){function e(e,n){var a=t.call(this)||this;return a._parentView=e,a._def=n,a}return Object(a.__extends)(e,t),e.prototype.createEmbeddedView=function(t){return new Ob(cg.createEmbeddedView(this._parentView,this._def,this._def.element.template,t))},Object.defineProperty(e.prototype,"elementRef",{get:function(){return new hu(rg(this._parentView,this._def.nodeIndex).renderElement)},enumerable:!0,configurable:!0}),e}(gl);function kb(t,e){return new Nb(t,e)}var Nb=function(){function t(t,e){this.view=t,this.elDef=e}return t.prototype.get=function(t,e){return void 0===e&&(e=ho.THROW_IF_NOT_FOUND),cg.resolveDep(this.view,this.elDef,!!this.elDef&&0!=(33554432&this.elDef.flags),{flags:0,token:t,tokenKey:gg(t)},e)},t}();function Rb(t,e){var n=t.def.nodes[e];if(1&n.flags){var a=rg(t,n.nodeIndex);return n.element.template?a.template:a.renderElement}if(2&n.flags)return ag(t,n.nodeIndex).renderText;if(20240&n.flags)return ig(t,n.nodeIndex).instance;throw new Error("Illegal state: read nodeValue for node index "+e)}function Ab(t){return new Db(t.renderer)}var Db=function(){function t(t){this.delegate=t}return t.prototype.selectRootElement=function(t){return this.delegate.selectRootElement(t)},t.prototype.createElement=function(t,e){var n=Object(a.__read)(Bg(e),2),r=this.delegate.createElement(n[1],n[0]);return t&&this.delegate.appendChild(t,r),r},t.prototype.createViewRoot=function(t){return t},t.prototype.createTemplateAnchor=function(t){var e=this.delegate.createComment("");return t&&this.delegate.appendChild(t,e),e},t.prototype.createText=function(t,e){var n=this.delegate.createText(e);return t&&this.delegate.appendChild(t,n),n},t.prototype.projectNodes=function(t,e){for(var n=0;n0,e.provider.value,e.provider.deps);if(e.outputs.length)for(var a=0;a0,r=e.provider;switch(201347067&e.flags){case 512:return Jb(t,e.parent,n,r.value,r.deps);case 1024:return function(t,e,n,r,i){var s=i.length;switch(s){case 0:return r();case 1:return r(tm(t,e,n,i[0]));case 2:return r(tm(t,e,n,i[0]),tm(t,e,n,i[1]));case 3:return r(tm(t,e,n,i[0]),tm(t,e,n,i[1]),tm(t,e,n,i[2]));default:for(var o=Array(s),u=0;u0)c=g,xm(g)||(l=g);else for(;c&&h===c.nodeIndex+c.childCount;){var y=c.parent;y&&(y.childFlags|=c.childFlags,y.childMatchedQueries|=c.childMatchedQueries),l=(c=y)&&xm(c)?c.renderParent:c}}return{factory:null,nodeFlags:s,rootNodeFlags:o,nodeMatchedQueries:u,flags:t,nodes:e,updateDirectives:n||pg,updateRenderer:a||pg,handleEvent:function(t,n,a,r){return e[n].element.handleEvent(t,a,r)},bindingCount:r,outputCount:i,lastRenderRootNode:p}}function xm(t){return 0!=(1&t.flags)&&null===t.element.name}function Tm(t,e,n){var a=e.element&&e.element.template;if(a){if(!a.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(a.lastRenderRootNode&&16777216&a.lastRenderRootNode.flags)throw new Error("Illegal State: Last root node of a template can't have embedded views, at index "+e.nodeIndex+"!")}if(20224&e.flags&&0==(1&(t?t.flags:0)))throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index "+e.nodeIndex+"!");if(e.query){if(67108864&e.flags&&(!t||0==(16384&t.flags)))throw new Error("Illegal State: Content Query nodes need to be children of directives, at index "+e.nodeIndex+"!");if(134217728&e.flags&&t)throw new Error("Illegal State: View Query nodes have to be top level nodes, at index "+e.nodeIndex+"!")}if(e.childCount){var r=t?t.nodeIndex+t.childCount:n-1;if(e.nodeIndex<=r&&e.nodeIndex+e.childCount>r)throw new Error("Illegal State: childCount of node leads outside of parent, at index "+e.nodeIndex+"!")}}function wm(t,e,n,a){var r=Im(t.root,t.renderer,t,e,n);return Cm(r,t.component,a),km(r),r}function Sm(t,e,n){var a=Im(t,t.renderer,null,null,e);return Cm(a,n,n),km(a),a}function Om(t,e,n,a){var r,i=e.element.componentRendererType;return r=i?t.root.rendererFactory.createRenderer(a,i):t.root.renderer,Im(t.root,r,t,e.element.componentProvider,n)}function Im(t,e,n,a,r){var i=new Array(r.nodes.length),s=r.outputCount?new Array(r.outputCount):null;return{def:r,parent:n,viewContainerParent:null,parentNodeDef:a,context:null,component:null,nodes:i,state:13,root:t,renderer:e,oldValues:new Array(r.bindingCount),disposables:s,initIndex:-1}}function Cm(t,e,n){t.component=e,t.context=n}function km(t){var e;Ag(t)&&(e=rg(t.parent,t.parentNodeDef.parent.nodeIndex).renderElement);for(var n=t.def,a=t.nodes,r=0;r0&&ab(t,e,0,n)&&(p=!0),f>1&&ab(t,e,1,a)&&(p=!0),f>2&&ab(t,e,2,r)&&(p=!0),f>3&&ab(t,e,3,i)&&(p=!0),f>4&&ab(t,e,4,s)&&(p=!0),f>5&&ab(t,e,5,o)&&(p=!0),f>6&&ab(t,e,6,u)&&(p=!0),f>7&&ab(t,e,7,c)&&(p=!0),f>8&&ab(t,e,8,l)&&(p=!0),f>9&&ab(t,e,9,d)&&(p=!0),p}(t,e,n,a,r,i,s,o,u,c,l,d);case 2:return function(t,e,n,a,r,i,s,o,u,c,l,d){var f=!1,p=e.bindings,h=p.length;if(h>0&&Tg(t,e,0,n)&&(f=!0),h>1&&Tg(t,e,1,a)&&(f=!0),h>2&&Tg(t,e,2,r)&&(f=!0),h>3&&Tg(t,e,3,i)&&(f=!0),h>4&&Tg(t,e,4,s)&&(f=!0),h>5&&Tg(t,e,5,o)&&(f=!0),h>6&&Tg(t,e,6,u)&&(f=!0),h>7&&Tg(t,e,7,c)&&(f=!0),h>8&&Tg(t,e,8,l)&&(f=!0),h>9&&Tg(t,e,9,d)&&(f=!0),f){var g=e.text.prefix;h>0&&(g+=vm(n,p[0])),h>1&&(g+=vm(a,p[1])),h>2&&(g+=vm(r,p[2])),h>3&&(g+=vm(i,p[3])),h>4&&(g+=vm(s,p[4])),h>5&&(g+=vm(o,p[5])),h>6&&(g+=vm(u,p[6])),h>7&&(g+=vm(c,p[7])),h>8&&(g+=vm(l,p[8])),h>9&&(g+=vm(d,p[9]));var b=ag(t,e.nodeIndex).renderText;t.renderer.setValue(b,g)}return f}(t,e,n,a,r,i,s,o,u,c,l,d);case 16384:return function(t,e,n,a,r,i,s,o,u,c,l,d){var f=ig(t,e.nodeIndex),p=f.instance,h=!1,g=void 0,b=e.bindings.length;return b>0&&xg(t,e,0,n)&&(h=!0,g=nm(t,f,e,0,n,g)),b>1&&xg(t,e,1,a)&&(h=!0,g=nm(t,f,e,1,a,g)),b>2&&xg(t,e,2,r)&&(h=!0,g=nm(t,f,e,2,r,g)),b>3&&xg(t,e,3,i)&&(h=!0,g=nm(t,f,e,3,i,g)),b>4&&xg(t,e,4,s)&&(h=!0,g=nm(t,f,e,4,s,g)),b>5&&xg(t,e,5,o)&&(h=!0,g=nm(t,f,e,5,o,g)),b>6&&xg(t,e,6,u)&&(h=!0,g=nm(t,f,e,6,u,g)),b>7&&xg(t,e,7,c)&&(h=!0,g=nm(t,f,e,7,c,g)),b>8&&xg(t,e,8,l)&&(h=!0,g=nm(t,f,e,8,l,g)),b>9&&xg(t,e,9,d)&&(h=!0,g=nm(t,f,e,9,d,g)),g&&p.ngOnChanges(g),65536&e.flags&&ng(t,256,e.nodeIndex)&&p.ngOnInit(),262144&e.flags&&p.ngDoCheck(),h}(t,e,n,a,r,i,s,o,u,c,l,d);case 32:case 64:case 128:return function(t,e,n,a,r,i,s,o,u,c,l,d){var f=e.bindings,p=!1,h=f.length;if(h>0&&Tg(t,e,0,n)&&(p=!0),h>1&&Tg(t,e,1,a)&&(p=!0),h>2&&Tg(t,e,2,r)&&(p=!0),h>3&&Tg(t,e,3,i)&&(p=!0),h>4&&Tg(t,e,4,s)&&(p=!0),h>5&&Tg(t,e,5,o)&&(p=!0),h>6&&Tg(t,e,6,u)&&(p=!0),h>7&&Tg(t,e,7,c)&&(p=!0),h>8&&Tg(t,e,8,l)&&(p=!0),h>9&&Tg(t,e,9,d)&&(p=!0),p){var g=sg(t,e.nodeIndex),b=void 0;switch(201347067&e.flags){case 32:b=new Array(f.length),h>0&&(b[0]=n),h>1&&(b[1]=a),h>2&&(b[2]=r),h>3&&(b[3]=i),h>4&&(b[4]=s),h>5&&(b[5]=o),h>6&&(b[6]=u),h>7&&(b[7]=c),h>8&&(b[8]=l),h>9&&(b[9]=d);break;case 64:b={},h>0&&(b[f[0].name]=n),h>1&&(b[f[1].name]=a),h>2&&(b[f[2].name]=r),h>3&&(b[f[3].name]=i),h>4&&(b[f[4].name]=s),h>5&&(b[f[5].name]=o),h>6&&(b[f[6].name]=u),h>7&&(b[f[7].name]=c),h>8&&(b[f[8].name]=l),h>9&&(b[f[9].name]=d);break;case 128:var m=n;switch(h){case 1:b=m.transform(n);break;case 2:b=m.transform(a);break;case 3:b=m.transform(a,r);break;case 4:b=m.transform(a,r,i);break;case 5:b=m.transform(a,r,i,s);break;case 6:b=m.transform(a,r,i,s,o);break;case 7:b=m.transform(a,r,i,s,o,u);break;case 8:b=m.transform(a,r,i,s,o,u,c);break;case 9:b=m.transform(a,r,i,s,o,u,c,l);break;case 10:b=m.transform(a,r,i,s,o,u,c,l,d)}}g.value=b}return p}(t,e,n,a,r,i,s,o,u,c,l,d);default:throw"unreachable"}}(t,e,r,i,s,o,u,c,l,d,f,p):function(t,e,n){switch(201347067&e.flags){case 1:return function(t,e,n){for(var a=!1,r=0;r0&&wg(t,e,0,n),f>1&&wg(t,e,1,a),f>2&&wg(t,e,2,r),f>3&&wg(t,e,3,i),f>4&&wg(t,e,4,s),f>5&&wg(t,e,5,o),f>6&&wg(t,e,6,u),f>7&&wg(t,e,7,c),f>8&&wg(t,e,8,l),f>9&&wg(t,e,9,d)}(t,e,a,r,i,s,o,u,c,l,d,f):function(t,e,n){for(var a=0;a0){var i=new Set(t.modules);Xm.forEach(function(e,a){if(i.has(x(a).providedIn)){var r={token:a,flags:e.flags|(n?4096:0),deps:Pg(e.deps),value:e.value,index:t.providers.length};t.providers.push(r),t.providersByKey[gg(a)]=r}})}}(t=t.factory(function(){return pg})),t):t}(a))}var Zm=new Map,Xm=new Map,Jm=new Map;function Qm(t){var e;Zm.set(t.token,t),"function"==typeof t.token&&(e=x(t.token))&&"function"==typeof e.providedIn&&Xm.set(t.token,t)}function ty(t,e){var n=jg(vb(e)),a=jg(n.nodes[0].element.componentView);Jm.set(t,a)}function ey(){Zm.clear(),Xm.clear(),Jm.clear()}function ny(t){if(0===Zm.size)return t;var e=function(t){for(var e=[],n=null,a=0;a12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}})}()},DNAf:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){return function(t,e){this.customValidations={},this.i18n=e,this.empty=this.i18n("No items selected."),this.selectionLimit={tooltip:this.i18n("Deselect item to select again"),text:this.i18n("Selection limit reached")},this.filter=this.i18n("Filter tags"),this.add=this.i18n("Add badge"),this.noOptions=this.i18n("There are no items available."),a.merge(this,t)}}()},DQlY:function(t,e,n){"use strict";n.d(e,"a",function(){return o}),n.d(e,"b",function(){return f}),n.d(e,"c",function(){return d}),n.d(e,"d",function(){return l}),n.d(e,"e",function(){return p}),n.d(e,"f",function(){return u});var a=n("CcnG"),r=n("rpEJ"),i=n("lqqz"),s=n("NJnL"),o=function(){return function(){this.hide=Function,this.setClass=Function}}(),u=function(){return function(){}}(),c={backdrop:!0,keyboard:!0,focus:!0,show:!1,ignoreBackdropClick:!1,class:"",animated:!0,initialState:{}},l=function(){function t(t,e,n){this._element=e,this._renderer=n,this.isShown=!1,this.isModalHiding=!1,this.config=Object.assign({},t)}return t.prototype.ngOnInit=function(){var t=this;this.isAnimated&&this._renderer.addClass(this._element.nativeElement,"fade"),this._renderer.setStyle(this._element.nativeElement,"display","block"),setTimeout(function(){t.isShown=!0,t._renderer.addClass(t._element.nativeElement,Object(r.d)()?"in":"show")},this.isAnimated?150:0),document&&document.body&&(1===this.bsModalService.getModalsCount()&&(this.bsModalService.checkScrollbar(),this.bsModalService.setScrollbar()),this._renderer.addClass(document.body,"modal-open")),this._element.nativeElement&&this._element.nativeElement.focus()},t.prototype.onClick=function(t){this.config.ignoreBackdropClick||"static"===this.config.backdrop||t.target!==this._element.nativeElement||(this.bsModalService.setDismissReason("backdrop-click"),this.hide())},t.prototype.onEsc=function(t){this.isShown&&(27!==t.keyCode&&"Escape"!==t.key||t.preventDefault(),this.config.keyboard&&this.level===this.bsModalService.getModalsCount()&&(this.bsModalService.setDismissReason("esc"),this.hide()))},t.prototype.ngOnDestroy=function(){this.isShown&&this.hide()},t.prototype.hide=function(){var t=this;!this.isModalHiding&&this.isShown&&(this.isModalHiding=!0,this._renderer.removeClass(this._element.nativeElement,Object(r.d)()?"in":"show"),setTimeout(function(){t.isShown=!1,document&&document.body&&1===t.bsModalService.getModalsCount()&&t._renderer.removeClass(document.body,"modal-open"),t.bsModalService.hide(t.level),t.isModalHiding=!1},this.isAnimated?300:0))},t}(),d=function(){function t(t,e){this._isShown=!1,this.element=t,this.renderer=e}return Object.defineProperty(t.prototype,"isAnimated",{get:function(){return this._isAnimated},set:function(t){this._isAnimated=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isShown",{get:function(){return this._isShown},set:function(t){this._isShown=t,t?this.renderer.addClass(this.element.nativeElement,"in"):this.renderer.removeClass(this.element.nativeElement,"in"),Object(r.d)()||(t?this.renderer.addClass(this.element.nativeElement,"show"):this.renderer.removeClass(this.element.nativeElement,"show"))},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.isAnimated&&(this.renderer.addClass(this.element.nativeElement,"fade"),r.b.reflow(this.element.nativeElement)),this.isShown=!0},t}(),f=function(){function t(t,e){this.clf=e,this.config=c,this.onShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this.isBodyOverflowing=!1,this.originalBodyPadding=0,this.scrollbarWidth=0,this.modalsCount=0,this.lastDismissReason="",this.loaders=[],this._backdropLoader=this.clf.createLoader(null,null,null),this._renderer=t.createRenderer(null,null)}return t.prototype.show=function(t,e){return this.modalsCount++,this._createLoaders(),this.config=Object.assign({},c,e),this._showBackdrop(),this.lastDismissReason=null,this._showModal(t)},t.prototype.hide=function(t){var e=this;1===this.modalsCount&&(this._hideBackdrop(),this.resetScrollbar()),this.modalsCount=this.modalsCount>=1?this.modalsCount-1:0,setTimeout(function(){e._hideModal(t),e.removeLoaders(t)},this.config.animated?150:0)},t.prototype._showBackdrop=function(){var t=this.config.backdrop||"static"===this.config.backdrop,e=!this.backdropRef||!this.backdropRef.instance.isShown;1===this.modalsCount&&(this.removeBackdrop(),t&&e&&(this._backdropLoader.attach(d).to("body").show({isAnimated:this.config.animated}),this.backdropRef=this._backdropLoader._componentRef))},t.prototype._hideBackdrop=function(){var t=this;this.backdropRef&&(this.backdropRef.instance.isShown=!1,setTimeout(function(){return t.removeBackdrop()},this.config.animated?150:0))},t.prototype._showModal=function(t){var e=this.loaders[this.loaders.length-1],n=new o,a=e.provide({provide:u,useValue:this.config}).provide({provide:o,useValue:n}).attach(l).to("body").show({content:t,isAnimated:this.config.animated,initialState:this.config.initialState,bsModalService:this});return a.instance.level=this.getModalsCount(),n.hide=function(){a.instance.hide()},n.content=e.getInnerComponent()||null,n.setClass=function(t){a.instance.config.class=t},n},t.prototype._hideModal=function(t){var e=this.loaders[t-1];e&&e.hide()},t.prototype.getModalsCount=function(){return this.modalsCount},t.prototype.setDismissReason=function(t){this.lastDismissReason=t},t.prototype.removeBackdrop=function(){this._backdropLoader.hide(),this.backdropRef=null},t.prototype.checkScrollbar=function(){this.isBodyOverflowing=document.body.clientWidth100&&(this.percent-=t-100)},t}(),o=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[r]}},t}()},Dkky:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}()},Dmvi:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},DoHr:function(t,e,n){!function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};t.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(t,n){switch(n){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'\u0131nc\u0131";var a=t%10;return t+(e[a]||e[t%100-a]||e[t>=100?100:null])}},week:{dow:1,doy:7}})}(n("wd/R"))},DtyJ:function(t,e,n){"use strict";n.r(e);var a=n("6blF"),r=n("KhEm"),i=n("IxPp"),s=n("xTla"),o=n("K9Ia"),u=n("26FU"),c=n("S5bw"),l=n("svcd"),d=n("KQya"),f=n("T1DM"),p=n("zo3G"),h=n("tHPV"),g=n("mrSG"),b=n("h9Dq"),m=function(t){function e(e,n){void 0===e&&(e=y),void 0===n&&(n=Number.POSITIVE_INFINITY);var a=t.call(this,e,function(){return a.frame})||this;return a.maxFrames=n,a.frame=0,a.index=-1,a}return g.__extends(e,t),e.prototype.flush=function(){for(var t,e,n=this.actions,a=this.maxFrames;(e=n[0])&&e.delay<=a&&(n.shift(),this.frame=e.delay,!(t=e.execute(e.state,e.delay))););if(t){for(;e=n.shift();)e.unsubscribe();throw t}},e.frameTimeFactor=10,e}(n("CS9Q").a),y=function(t){function e(e,n,a){void 0===a&&(a=e.index+=1);var r=t.call(this,e,n)||this;return r.scheduler=e,r.work=n,r.index=a,r.active=!0,r.index=e.index=a,r}return g.__extends(e,t),e.prototype.schedule=function(n,a){if(void 0===a&&(a=0),!this.id)return t.prototype.schedule.call(this,n,a);this.active=!1;var r=new e(this.scheduler,this.work);return this.add(r),r.schedule(n,a)},e.prototype.requestAsyncId=function(t,n,a){void 0===a&&(a=0),this.delay=t.frame+a;var r=t.actions;return r.push(this),r.sort(e.sortActions),!0},e.prototype.recycleAsyncId=function(t,e,n){void 0===n&&(n=0)},e.prototype._execute=function(e,n){if(!0===this.active)return t.prototype._execute.call(this,e,n)},e.sortActions=function(t,e){return t.delay===e.delay?t.index===e.index?0:t.index>e.index?1:-1:t.delay>e.delay?1:-1},e}(b.a),v=n("siIJ"),_=n("pugT"),x=n("FFOo"),T=n("60iU"),w=n("y3By"),S=n("+umK"),O=n("mChF"),I=n("zrt+"),C=n("b7mW"),k=n("3fWJ"),N=n("8g8A"),R=n("awvh"),A=n("3U0i"),D=n("67Y/"),E=n("1fDf"),L=n("isby"),P=n("nkY7");function M(t,e,n){if(e){if(!Object(P.a)(e))return function(){for(var a=[],r=0;r=e){a.complete();break}if(a.next(i++),a.closed)break}})}function gt(t){var e=t.start,n=t.index,a=t.subscriber;n>=t.count?a.complete():(a.next(e),a.closed||(t.index=n+1,t.start=e+1,this.schedule(t)))}var bt=n("XlPw"),mt=n("gI3B");function yt(t,e){return new a.a(function(n){var a,r;try{a=t()}catch(s){return void n.error(s)}try{r=e(a)}catch(s){return void n.error(s)}var i=(r?Object(K.a)(r):U.a).subscribe(n);return function(){i.unsubscribe(),a&&a.unsubscribe()}})}var vt=n("909l"),_t=n("i4X3"),xt=n("iLxQ");n.d(e,"Observable",function(){return a.a}),n.d(e,"ConnectableObservable",function(){return r.a}),n.d(e,"GroupedObservable",function(){return i.a}),n.d(e,"observable",function(){return s.a}),n.d(e,"Subject",function(){return o.a}),n.d(e,"BehaviorSubject",function(){return u.a}),n.d(e,"ReplaySubject",function(){return c.a}),n.d(e,"AsyncSubject",function(){return l.a}),n.d(e,"asapScheduler",function(){return d.a}),n.d(e,"asyncScheduler",function(){return f.a}),n.d(e,"queueScheduler",function(){return p.a}),n.d(e,"animationFrameScheduler",function(){return h.a}),n.d(e,"VirtualTimeScheduler",function(){return m}),n.d(e,"VirtualAction",function(){return y}),n.d(e,"Scheduler",function(){return v.a}),n.d(e,"Subscription",function(){return _.a}),n.d(e,"Subscriber",function(){return x.a}),n.d(e,"Notification",function(){return T.a}),n.d(e,"NotificationKind",function(){return T.b}),n.d(e,"pipe",function(){return w.a}),n.d(e,"noop",function(){return S.a}),n.d(e,"identity",function(){return O.a}),n.d(e,"isObservable",function(){return I.a}),n.d(e,"ArgumentOutOfRangeError",function(){return C.a}),n.d(e,"EmptyError",function(){return k.a}),n.d(e,"ObjectUnsubscribedError",function(){return N.a}),n.d(e,"UnsubscriptionError",function(){return R.a}),n.d(e,"TimeoutError",function(){return A.a}),n.d(e,"bindCallback",function(){return M}),n.d(e,"bindNodeCallback",function(){return F}),n.d(e,"combineLatest",function(){return V.b}),n.d(e,"concat",function(){return H.a}),n.d(e,"defer",function(){return B.a}),n.d(e,"empty",function(){return U.b}),n.d(e,"forkJoin",function(){return W.a}),n.d(e,"from",function(){return K.a}),n.d(e,"fromEvent",function(){return $.a}),n.d(e,"fromEventPattern",function(){return X}),n.d(e,"generate",function(){return J}),n.d(e,"iif",function(){return tt}),n.d(e,"interval",function(){return et.a}),n.d(e,"merge",function(){return nt.a}),n.d(e,"never",function(){return rt}),n.d(e,"of",function(){return it.a}),n.d(e,"onErrorResumeNext",function(){return st}),n.d(e,"pairs",function(){return ot}),n.d(e,"partition",function(){return ft}),n.d(e,"race",function(){return pt.a}),n.d(e,"range",function(){return ht}),n.d(e,"throwError",function(){return bt.a}),n.d(e,"timer",function(){return mt.a}),n.d(e,"using",function(){return yt}),n.d(e,"zip",function(){return vt.b}),n.d(e,"scheduled",function(){return _t.a}),n.d(e,"EMPTY",function(){return U.a}),n.d(e,"NEVER",function(){return at}),n.d(e,"config",function(){return xt.a})},Dwqy:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("wd/R"),r=function(){function t(){}return t.prototype.transform=function(t){return t?a(1e3*t).fromNow():"unknown"},t}()},DxQv:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},Dysq:function(t,e){t.exports='\n \n \n \n Toggle navigation\n \u5207\u63db\u5c0e\u89bd\n \n \n Dashboard\n \u5100\u8868\u677f\n \n \n Cluster\n \u53e2\u96c6\n \n \n Hosts\n \u4e3b\u6a5f\n \n \n Monitors\n \u76e3\u63a7\u7a0b\u5f0f\n \n \n OSDs\n OSD\n \n \n Configuration\n \u7d44\u614b\n \n \n CRUSH map\n CRUSH \u5730\u5716\n \n \n Manager modules\n \u7ba1\u7406\u54e1\u6a21\u7d44\n \n \n Logs\n \u8a18\u9304\n \n \n Alerts\n \u8b66\u793a\n \n \n Silences\n Silences\n \n \n Pools\n \u6c60\n \n \n Block\n \u5340\u584a\n \n \n Images\n \u5f71\u50cf\n \n \n Mirroring\n \u93e1\u50cf\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n \u6a94\u6848\u7cfb\u7d71\n \n \n Object Gateway\n \u7269\u4ef6\u9598\u9053\n \n \n Daemons\n \u7cbe\u9748\n \n \n Users\n \u4f7f\u7528\u8005\n \n \n Buckets\n \u6876\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Retrieving data\n for\n \n \n . Please wait...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Displaying previously cached data\n \n for \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n \n \n Back\n \u8fd4\u56de\n \n \n Select a Language\n \u9078\u53d6\u8a9e\u8a00\n \n \n Loading panel data...\n \u6b63\u5728\u8f09\u5165\u9762\u677f\u8cc7\u6599...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528\u76e3\u63a7\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Grafana \u5100\u8868\u677f\u4e0d\u5b58\u5728\u3002\u5982\u9700\u4e86\u89e3\n \u5982\u4f55\u5411 Grafana\xa0\u65b0\u589e\u5100\u8868\u677f\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Grafana Time Picker\n Grafana \u6642\u9593\u9078\u64c7\u5668\n \n \n Reset Settings\n \u91cd\u8a2d\u8a2d\u5b9a\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \u7121\u6cd5\u8f09\u5165\u8cc7\u6599\u3002\n \n \n selected\n \u9078\u53d6\u7684\u6578\u76ee\n X selected\n \n \n found\n \u627e\u5230\u7684\u6578\u76ee\n X found\n \n \n total\n \u7e3d\u8a08\n X total\n \n \n Edit\n \u7de8\u8f2f\n \n \n Name\n \u540d\u7a31\n \n \n Description\n \u63cf\u8ff0\n \n \n Long description\n \u8a73\u7d30\u63cf\u8ff0\n \n \n Default\n \u9810\u8a2d\u503c\n \n \n Daemon default\n \u7cbe\u9748\u9810\u8a2d\u503c\n \n \n Services\n \u670d\u52d9\n \n \n Values\n \u503c\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u9ad8\uff01\u8a72\u503c\u4e0d\u5f97\u5927\u65bc \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u4f4e\uff01\u8a72\u503c\u4e0d\u5f97\u5c0f\u65bc \n \u3002\n \n \n \n Save\n \u5132\u5b58\n \n \n CRUSH map viewer\n CRUSH \u5730\u5716\u6aa2\u8996\u5668\n \n \n Hosts List\n \u4e3b\u6a5f\u6e05\u55ae\n \n \n Overall Performance\n \u6574\u9ad4\u6548\u80fd\n \n \n No entries found\n \u627e\u4e0d\u5230\u9805\u76ee\n \n \n Cluster Logs\n \u53e2\u96c6\u8a18\u9304\n \n \n Audit Logs\n \u7a3d\u6838\u8a18\u9304\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u6b63\u5728\u8f09\u5165\u7d44\u614b...\n \n \n The configuration could not be loaded.\n \u7121\u6cd5\u8f09\u5165\u7d44\u614b\u3002\n \n \n Edit Manager module\n \u7de8\u8f2f\u7ba1\u7406\u54e1\u6a21\u7d44\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \u8f38\u5165\u7684\u503c\u4e0d\u662f\u6709\u6548\u7684 UUID\uff0c\u4f8b\u5982 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u662f\u6709\u6548\u7684 IP \u4f4d\u5740\u3002\n \n \n This field is required.\n \u6b64\u6b04\u4f4d\u70ba\u5fc5\u586b\u6b04\u4f4d\u3002\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u9ad8\uff01\u8a72\u503c\u5fc5\u9808\u5c0f\u65bc\u6216\u7b49\u65bc \n \u3002\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u4f4e\uff01\u8a72\u503c\u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc \n \u3002\n \n \n \n The entered value needs to be a number.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u70ba\u6578\u5b57\u3002\n \n \n The entered value needs to be a number or decimal.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u70ba\u6578\u5b57\u6216\u5c0f\u6578\u3002\n \n \n Update\n \u66f4\u65b0\n \n \n Status\n \u72c0\u614b\n \n \n Cluster ID\n \u53e2\u96c6 ID\n \n \n monmap modified\n monmap \u4fee\u6539\u6642\u9593\n \n \n monmap epoch\n monmap \u7248\u672c\u7de8\u865f\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n required con\n \n \n required mon\n required mon\n \n \n In Quorum\n \u4ef2\u88c1\u6210\u54e1\n \n \n Not In Quorum\n \u975e\u4ef2\u88c1\u6210\u54e1\n \n \n Cancel\n \u53d6\u6d88\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \u78ba\u5b9a\u8981\n \u9078\u53d6\u7684\n \u55ce\uff1f\n \n \n \n Yes, I am sure.\n \u662f\u7684\uff0c\u6211\u78ba\u5b9a\u3002\n \n \n Cluster-wide OSD Flags\n \u53e2\u96c6\u7bc4\u570d\u7684 OSD \u65d7\u6a19\n \n \n Submit\n \u63d0\u4ea4\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \u9032\u968e...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD \u5fa9\u539f\u512a\u5148\u7a0b\u5ea6\n \n \n Priority\n \u512a\u5148\u7a0b\u5ea6\n \n \n Customize priority values\n \u81ea\u8a02\u512a\u5148\u7a0b\u5ea6\u503c\n \n \n This field is required!\n \u6b64\u6b04\u4f4d\u70ba\u5fc5\u586b\u6b04\u4f4d\uff01\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u9ad8\uff01\u8a72\u503c\u4e0d\u5f97\u5927\u65bc \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8f38\u5165\u7684\u503c\u592a\u4f4e\uff01\u8a72\u503c\u4e0d\u5f97\u5c0f\u65bc \n \u3002\n \n \n \n Reweight OSD\n \u91cd\u65b0\u8a2d\u5b9a OSD \u7684\u6b0a\u6578\n \n \n The value needs to be between 0 and 1.\n \u8a72\u503c\u5fc5\u9808\u4ecb\u65bc 0 \u81f3 1 \u4e4b\u9593\u3002\n \n \n Reweight\n \u91cd\u65b0\u8a2d\u5b9a\u6b0a\u6578\n \n \n OSDs \n Scrub\n \n OSD \n \u6574\u7406\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5c64} }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n \u5373\u5c07\u5c0d OSD\n \n \n \n \u5957\u7528\n \u6574\u7406\u3002 \n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5c64} }\n \n \n OSDs List\n OSD \u6e05\u55ae\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \u82e5\u7e7c\u7e8c\uff0c\n OSD\n \n \n \u5c07\u88ab\u6a19\u793a\u70ba\n \n \n \u3002\n \n \n \n The OSD is not safe to destroy!\n OSD \u4e0d\u5b89\u5168\uff0c\u7121\u6cd5\u640d\u6bc0\uff01\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \u82e5\u7e7c\u7e8c\uff0c\n OSD\n \n \n \u5c07\u88ab\n \n \n \u3002\n \n \n \n Details\n \u8a73\u7d30\u8cc7\u6599\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \u503c\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \u95dc\u9589\n \n \n Delete\n \u522a\u9664\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \u72c0\u614b\n \n \n Statistics\n \u7d71\u8a08\u8cc7\u6599\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528 NFS Ganesha \u7ba1\u7406\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Clients\n \u7528\u6236\u7aef\n \n \n Any client can access\n \u4efb\u4f55\u7528\u6236\u7aef\u5747\u53ef\u5b58\u53d6\n \n \n Addresses\n \u4f4d\u5740\n \n \n Required field\n \u5fc5\u586b\u6b04\u4f4d\n \n \n Must contain one or more comma-separated values\n \u5fc5\u9808\u5305\u542b\u4e00\u6216\u591a\u500b\u9017\u865f\u5206\u9694\u503c\n \n \n For example:\n \u4f8b\u5982\ufe30\n \n \n Access Type\n \u5b58\u53d6\u985e\u578b\n \n \n Squash\n Squash\n \n \n Add clients\n \u65b0\u589e\u7528\u6236\u7aef\n \n \n Loading...\n \u6b63\u5728\u8f09\u5165...\n \n \n -- No cluster available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u53e2\u96c6 --\n \n \n -- Select the cluster --\n -- \u9078\u53d6\u53e2\u96c6 --\n \n \n Add daemon\n \u65b0\u589e\u7cbe\u9748\n \n \n Storage Backend\n \u5132\u5b58\u5f8c\u7aef\n \n \n -- No data pools available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u8cc7\u6599\u6c60 --\n \n \n -- Select the storage backend --\n -- \u9078\u53d6\u5132\u5b58\u5f8c\u7aef --\n \n \n Object Gateway User\n \u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005\n \n \n -- No users available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u4f7f\u7528\u8005 --\n \n \n -- Select the object gateway user --\n -- \u9078\u53d6\u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005 --\n \n \n CephFS User ID\n CephFS \u4f7f\u7528\u8005 ID\n \n \n -- No clients available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u7528\u6236\u7aef --\n \n \n -- Select the cephx client --\n -- \u9078\u53d6 cephx \u7528\u6236\u7aef --\n \n \n CephFS Name\n CephFS \u540d\u7a31\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \u5b89\u5168\u6a19\u7c64\n \n \n Enable security label\n \u555f\u7528\u5b89\u5168\u6a19\u7c64\n \n \n CephFS Path\n CephFS \u8def\u5f91\n \n \n Path need to start with a \'/\' and can be followed by a word\n \u8def\u5f91\u5fc5\u9808\u4ee5\u300c/\u300d\u958b\u982d\uff0c\u5f8c\u9762\u53ef\u63a5\u55ae\u8a5e\n \n \n New directory will be created\n \u5c07\u5efa\u7acb\u65b0\u76ee\u9304\n \n \n Path\n \u8def\u5f91\n \n \n Path can only be a single \'/\' or a word\n \u8def\u5f91\u53ea\u80fd\u4ee5\u55ae\u4e00\u300c/\u300d\u6216\u55ae\u8a5e\u958b\u982d\n \n \n New bucket will be created\n \u5c07\u5efa\u7acb\u65b0\u6876\n \n \n NFS Protocol\n NFS \u901a\u8a0a\u5354\u5b9a\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \u6a19\u8a18\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \u639b\u63a5\u7684\u5099\u7528\u5b58\u53d6 (\u4e0d\u5f97\u5305\u542b\u524d\u7f6e /)\u3002\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \u7528\u6236\u7aef\u4e0d\u80fd\u639b\u63a5\u5b50\u76ee\u9304 (\u5373\u5982\u679c\u6a19\u8a18\u70ba foo\uff0c\u5247\u7528\u6236\u7aef\u7121\u6cd5\u639b\u63a5 foo/baz)\u3002\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \u900f\u904e\u4f7f\u7528\u4e0d\u540c\u6a19\u8a18\u9078\u9805\uff0c\u53ef\u5c07\u540c\u4e00\u8def\u5f91\u8f38\u51fa\u591a\u6b21\u3002\n \n \n Pseudo\n \u865b\u64ec\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \u6b64 \n NFS v4\n \u8f38\u51fa\u5728\n \u865b\u64ec\u6a94\u6848\u7cfb\u7d71\n \u4e2d\n \u6240\u4f54\u7528\u7684\u4f4d\u7f6e (\u5fc5\u9808\u552f\u4e00)\u3002\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \u900f\u904e\u4f7f\u7528\u4e0d\u540c\u865b\u64ec\u9078\u9805\uff0c\u53ef\u5c07\u540c\u4e00\u8def\u5f91\u8f38\u51fa\u591a\u6b21\u3002\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u5b58\u53d6\u985e\u578b --\n \n \n -- Select the access type --\n -- \u9078\u53d6\u5b58\u53d6\u985e\u578b --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \u6c92\u6709\u53ef\u7528\u7684 squash --\n \n \n --Select what kind of user id squashing is performed --\n -- \u9078\u53d6\u57f7\u884c\u54ea\u7a2e\u985e\u578b\u7684\u4f7f\u7528\u8005 ID \u533f\u540d\u5b58\u53d6 --\n \n \n Transport Protocol\n \u50b3\u8f38\u901a\u8a0a\u5354\u5b9a\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n \u6b61\u8fce\u4f7f\u7528 Ceph\uff01\n The welcome message on the login page\n \n \n Username is required\n \u9700\u8981\u6307\u5b9a\u4f7f\u7528\u8005\u540d\u7a31\n \n \n Password is required\n \u9700\u8981\u6307\u5b9a\u5bc6\u78bc\n \n \n Login\n \u767b\u5165\n \n \n Sorry, the user does not exist in Ceph.\n \u62b1\u6b49\uff0c\u8a72\u4f7f\u7528\u8005\u4e0d\u5b58\u5728\u65bc Ceph \u4e2d\u3002\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \u8fd4\u56de\n \u767b\u5165\u9801\u9762\n \u3002 \u7576\u60a8\u91cd\u8a66\u767b\u5165\u6642\uff0c\u60a8\u5c07\u5f9e\u8eab\u5206\u63d0\u4f9b\u8005\u767b\u51fa\u3002\n \n \n \n Forbidden\n \u5df2\u7981\u6b62\n \n \n Sorry, you are not allowed to see what you were looking for.\n \u62b1\u6b49\uff0c\u60a8\u7121\u6b0a\u67e5\u770b\u60a8\u8981\u5c0b\u627e\u7684\u5167\u5bb9\u3002\n \n \n Sorry, we could not find what you were looking for\n \u62b1\u6b49\uff0c\u6211\u5011\u627e\u4e0d\u5230\u60a8\u8981\u5c0b\u627e\u7684\u5167\u5bb9\u3002\n \n \n Remove all\n \u5168\u90e8\u79fb\u9664\n \n \n Recent Notifications\n \u6700\u8fd1\u7684\u901a\u77e5\n \n \n There are no background tasks.\n \u6c92\u6709\u80cc\u666f\u4efb\u52d9\u3002\n \n \n Background Tasks\n \u80cc\u666f\u4efb\u52d9\n \n \n Help\n \u8aaa\u660e\n \n \n Documentation\n \u6587\u4ef6\n \n \n API\n API\n \n \n About\n \u95dc\u65bc\n \n \n Dashboard Settings\n \u5100\u8868\u677f\u8a2d\u5b9a\n \n \n User management\n \u4f7f\u7528\u8005\u7ba1\u7406\n \n \n Logged in user\n \u767b\u5165\u7684\u4f7f\u7528\u8005\n \n \n Signed in as\n \n \n \n \n \u4ee5\n \n \n \n \u8eab\u5206\u767b\u5165\n \n \n \n Sign out\n \u767b\u51fa\n \n \n Name...\n \u540d\u7a31...\n \n \n The chosen name is already in use.\n \u6240\u9078\u7684\u540d\u7a31\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Description...\n \u63cf\u8ff0...\n \n \n Permissions\n \u8a31\u53ef\u6b0a\n \n \n Roles\n \u89d2\u8272\n \n \n Username\n \u4f7f\u7528\u8005\u540d\u7a31\n \n \n Password\n \u5bc6\u78bc\n \n \n Confirm password\n \u78ba\u8a8d\u5bc6\u78bc\n \n \n Password confirmation doesn\'t match the password.\n \u78ba\u8a8d\u7684\u5bc6\u78bc\u8207\u4e4b\u524d\u8f38\u5165\u7684\u5bc6\u78bc\u4e0d\u7b26\u3002\n \n \n Full name\n \u5168\u540d\n \n \n Email\n \u96fb\u5b50\u90f5\u4ef6\n \n \n Invalid email.\n \u96fb\u5b50\u90f5\u4ef6\u7121\u6548\u3002\n \n \n You are about to remove "user read / update" permissions from your own user.\n \u60a8\u6b63\u8981\u70ba\u60a8\u81ea\u5df1\u7684\u4f7f\u7528\u8005\u79fb\u9664\u300c\u4f7f\u7528\u8005\u8b80\u53d6/\u5beb\u5165\u300d\u8a31\u53ef\u6b0a\u3002\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \u82e5\u7e7c\u7e8c\uff0c\u60a8\u5c07\u518d\u4e5f\u7121\u6cd5\u70ba\u4efb\u4f55\u4f7f\u7528\u8005\u65b0\u589e\u6216\u79fb\u9664\u89d2\u8272\u3002\n \n \n Are you sure you want to continue?\n \u78ba\u5b9a\u8981\u7e7c\u7e8c\u55ce\uff1f\n \n \n Performance counters not available\n \u6c92\u6709\u53ef\u7528\u7684\u6548\u80fd\u8a08\u6578\u5668\n \n \n Attributes (OSD map)\n \u5c6c\u6027 (OSD \u5730\u5716)\n \n \n Metadata not available\n \u7121\u6cd5\u4f7f\u7528\u4e2d\u7e7c\u8cc7\u6599\n \n \n Metadata\n \u4e2d\u7e7c\u8cc7\u6599\n \n \n Performance counter\n \u6548\u80fd\u8a08\u6578\u5668\n \n \n Histogram not available: \n \n \n \u7121\u6cd5\u4f7f\u7528\u9577\u689d\u5716\ufe30\n \n \n \n \n Writes\n \u5beb\u5165\n \n \n Reads\n \u8b80\u53d6\n \n \n Histogram\n \u9577\u689d\u5716\n \n \n Performance Details\n \u6548\u80fd\u8a73\u7d30\u8cc7\u6599\n \n \n Current values\n \u76ee\u524d\u7684\u503c\n \n \n Type\n \u985e\u578b\n \n \n Min\n \u6700\u5c0f\u503c\n \n \n Max\n \u6700\u5927\u503c\n \n \n Flags\n \u65d7\u6a19\n \n \n Source\n \u4f86\u6e90\n \n \n Level\n \u5c64\u7d1a\n \n \n Can be updated at runtime (editable)\n \u53ef\u5728\u57f7\u884c\u6642\u671f\u66f4\u65b0 (\u53ef\u7de8\u8f2f)\n \n \n Tags\n \u6a19\u8a18\n \n \n Enum values\n \u5217\u8209\u503c\n \n \n See also\n \u53e6\u8acb\u53c3\u95b1\n \n \n Cluster Status\n \u53e2\u96c6\u72c0\u614b\n \n \n Manager Daemons\n \u7ba1\u7406\u54e1\u7cbe\u9748\n \n \n Object Gateways\n \u7269\u4ef6\u9598\u9053\n \n \n Metadata Servers\n \u4e2d\u7e7c\u8cc7\u6599\u4f3a\u670d\u5668\n \n \n iSCSI Gateways\n iSCSI \u9598\u9053\n \n \n Client IOPS\n \u7528\u6236\u7aef IOPS\n \n \n Client Throughput\n \u7528\u6236\u7aef\u8f38\u9001\u91cf\n \n \n Client Read/Write\n \u7528\u6236\u7aef\u8b80\u53d6/\u5beb\u5165\n \n \n Recovery Throughput\n \u5fa9\u539f\u8f38\u9001\u91cf\n \n \n Scrub\n \u6574\u7406\n \n \n Performance\n \u6548\u80fd\n \n \n Raw Capacity\n \u539f\u59cb\u5bb9\u91cf\n \n \n Objects\n \u7269\u4ef6\n \n \n PGs per OSD\n \u6bcf\u500b OSD \u7684 PG \u6578\n \n \n PG Status\n PG \u72c0\u614b\n \n \n Capacity\n \u5bb9\u91cf\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \u5982\u9700\u8a73\u7d30\u8cc7\u6599\uff0c\u8acb\u53c3\u95b1\n \u8a18\u9304\n \u3002\n \n \n \n Ranks\n \u968e\u5c64\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \u7528\u6236\u7aef\ufe30\n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \u5c07\u5f71\u50cf\u79fb\u81f3\u5783\u573e\u6876\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \u82e5\u8981\u5c07 \n \n /\n \n \u79fb\u81f3\u5783\u573e\u6876\uff0c\n \u8acb\u6309\u4e00\u4e0b\n \u79fb\u52d5\u5f71\u50cf\n \u3002\u6216\u8005\uff0c\u60a8\u53ef\u4ee5\u9078\u53d6\u4e00\u500b\u904e\u671f\u65e5\u3002\n \n \n \n Protection expires at\n \u4fdd\u8b77\u7684\u904e\u671f\u65e5\u70ba\n \n \n NOT PROTECTED\n \u7121\u4fdd\u8b77\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \u65e5\u671f\u683c\u5f0f\u932f\u8aa4\u3002\u8acb\u4f7f\u7528\u300cYYYY-MM-DD HH:mm:ss\u300d\u3002\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \u4fdd\u8b77\u5df2\u904e\u671f\u3002\u8acb\u9078\u53d6\u4e00\u500b\u672a\u4f86\u7684\u65e5\u671f\u6216\u4fdd\u7559\u7a7a\u767d\u3002\n \n \n Move Image\n \u79fb\u52d5\u5f71\u50cf\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \u7d9c\u89bd\n \n \n Targets\n \u76ee\u6a19\n \n \n Discovery Authentication\n \u63a2\u67e5\u9a57\u8b49\n \n \n User\n \u4f7f\u7528\u8005\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u4f7f\u7528\u8005\u540d\u7a31\u7684\u9577\u5ea6\u5fc5\u9808\u4ecb\u65bc 8 \u81f3 64 \u500b\u5b57\u5143\u4e4b\u9593\uff0c\u4e26\u4e14\u53ea\u80fd\u5305\u542b\u4ee5\u4e0b\n \u5b57\u5143\ufe30\u5b57\u6bcd\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u6216\u300c:\u300d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \u96d9\u5411\u9a57\u8b49\u4f7f\u7528\u8005\n \n \n Mutual Password\n \u96d9\u5411\u9a57\u8b49\u5bc6\u78bc\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528 iSCSI \u76ee\u6a19\u7ba1\u7406\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Available information:\n \u53ef\u7528\u8cc7\u8a0a\ufe30\n \n \n iSCSI Targets not available\n \u7121\u6cd5\u4f7f\u7528 iSCSI \u76ee\u6a19\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \u50c5\u9069\u7528\u65bc\u5df2\u555f\u7528 \n fast-diff\n \u7684 RBD \u5f71\u50cf\n \n \n \n Pool\n \u6c60\n \n \n Data Pool\n \u8cc7\u6599\u6c60\n \n \n Created\n \u5df2\u5efa\u7acb\n \n \n Size\n \u5927\u5c0f\n \n \n Object size\n \u7269\u4ef6\u5927\u5c0f\n \n \n Features\n \u529f\u80fd\n \n \n Provisioned\n \u5df2\u4f48\u5efa\n \n \n N/A\n \u7121\n \n \n Total provisioned\n \u7e3d\u4f48\u5efa\u6578\n \n \n Striping unit\n \u5206\u5272\u55ae\u4f4d\n \n \n Striping count\n \u5206\u5272\u8a08\u6578\n \n \n Parent\n \u7236\n \n \n Block name prefix\n \u5340\u584a\u540d\u7a31\u5b57\u9996\n \n \n Order\n \u9806\u5e8f\n \n \n Snapshots\n \u5feb\u7167\n \n \n Image\n \u5f71\u50cf\n \n \n This setting overrides the global value\n \u6b64\u8a2d\u5b9a\u6703\u8986\u5beb\u5168\u57df\u503c\n \n \n Global\n \u5168\u57df\n \n \n This is the global value. No value for this option has been set for this image.\n \u6b64\u503c\u70ba\u5168\u57df\u503c\u3002\u672a\u70ba\u6b64\u5f71\u50cf\u8a2d\u5b9a\u6b64\u9078\u9805\u7684\u503c\u3002\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u4e0d\u5141\u8a31\u4f7f\u7528\u300c/\u300d\u548c\u300c@\u300d\u3002\n \n \n -- No rbd pools available --\n -- \u6c92\u6709\u53ef\u7528\u7684 RBD \u6c60 --\n \n \n -- Select a pool --\n -- \u9078\u53d6\u6c60 --\n \n \n Use a dedicated data pool\n \u4f7f\u7528\u5c08\u5c6c\u7684\u8cc7\u6599\u6c60\n \n \n Data pool\n \u8cc7\u6599\u6c60\n \n \n Dedicated pool that stores the object-data of the RBD.\n \u5c08\u7528\u65bc\u5132\u5b58 RBD \u7684\u7269\u4ef6\u8cc7\u6599\u7684\u6c60\n \n \n e.g., 10GiB\n \u4f8b\u5982 10 GiB\n \n \n You have to increase the size.\n \u60a8\u5fc5\u9808\u589e\u52a0\u5927\u5c0f\u3002\n \n \n Advanced\n \u9032\u968e\n \n \n Striping\n \u5206\u5272\n \n \n Stripe unit\n \u5206\u5272\u55ae\u4f4d\n \n \n -- Select stripe unit --\n -- \u9078\u53d6\u5206\u5272\u55ae\u4f4d --\n \n \n This field is required because stripe count is defined!\n \u7531\u65bc\u5df2\u5b9a\u7fa9\u5206\u5272\u8a08\u6578\uff0c\u56e0\u6b64\u5fc5\u9808\u586b\u5beb\u6b64\u6b04\u4f4d\uff01\n \n \n Stripe unit is greater than object size.\n \u5206\u5272\u55ae\u4f4d\u5927\u65bc\u7269\u4ef6\u5927\u5c0f\u3002\n \n \n Stripe count\n \u5206\u5272\u8a08\u6578\n \n \n This field is required because stripe unit is defined!\n \u7531\u65bc\u5df2\u5b9a\u7fa9\u5206\u5272\u55ae\u4f4d\uff0c\u56e0\u6b64\u5fc5\u9808\u586b\u5beb\u6b64\u6b04\u4f4d\uff01\n \n \n Stripe count must be greater than 0.\n \u5206\u5272\u8a08\u6578\u5fc5\u9808\u5927\u65bc 0\u3002\n \n \n \n RBD Snapshot\n \n \n RBD \u5feb\u7167\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {\u91cd\u65b0\u547d\u540d} other {\u5efa\u7acb} }\n \n \n \n Snapshot\n \n \n \u5feb\u7167\n \n \n \n PROTECTED\n \u53d7\u4fdd\u8b77\n \n \n UNPROTECTED\n \u672a\u53d7\u4fdd\u8b77\n \n \n You are about to rollback\n \u60a8\u6b63\u8981\u5fa9\u539f\n \n \n Purge Trash\n \u6e05\u9664\u5783\u573e\u6876\n \n \n To purge, select one or All images and click\n \u82e5\u8981\u6e05\u9664\uff0c\u8acb\u9078\u53d6\u4e00\u500b\u6216\u5168\u90e8\u5f71\u50cf\uff0c\u7136\u5f8c\u6309\u4e00\u4e0b\n \n \n Pool:\n \u6c60\ufe30\n \n \n Pool name...\n \u6c60\u540d\u7a31...\n \n \n All\n \u5168\u90e8\n \n \n Restore Image\n \u56de\u5b58\u5f71\u50cf\n \n \n To restore\n \u82e5\u8981\u56de\u5b58\n \n \n type the image\'s new name and click\n \u9375\u5165\u5f71\u50cf\u7684\u65b0\u540d\u7a31\u5e76\u6309\u4e00\u4e0b\n \n \n New Name\n \u65b0\u540d\u7a31\n \n \n Expired at\n \u904e\u671f\u65e5\u70ba\n \n \n Protected until\n \u4fdd\u8b77\u904e\u671f\u65e5\u70ba\n \n \n This image is protected until \n .\n \n \u6b64\u5f71\u50cf\u7684\u4fdd\u8b77\u904e\u671f\u65e5\u70ba \n \u3002\n \n \n \n Trash\n \u5783\u573e\u6876\n \n \n iSCSI Topology\n iSCSI \u62d3\u64b2\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \u901a\u5e38\u4e0d\u9700\u8981\u8b8a\u66f4\u9019\u4e9b\u53c3\u6578\u7684\u9810\u8a2d\u503c\u3002\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \u8a2d\u5b9a\n \n \n Backstore\n \u652f\u63f4\u5132\u5b58\n \n \n Confirm\n \u78ba\u8a8d\n \n \n Advanced Settings\n \u9032\u968e\u8a2d\u5b9a\n \n \n Target IQN\n \u76ee\u6a19 IQN\n \n \n IQN has wrong pattern.\n IQN \u6a21\u5f0f\u932f\u8aa4\u3002\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN \u6a21\u5f0f\u61c9\u5982\u4e0b\u6240\u793a\ufe30\u300ciqn.$year-$month.$reversedAddress:$definedName\u300d\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \u4f8b\u5982\uff1aiqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \u66f4\u591a\u8cc7\u8a0a\n \n \n This target has modified advanced settings.\n \u6b64\u76ee\u6a19\u7684\u9032\u968e\u8a2d\u5b9a\u5b58\u5728\u4fee\u6539\u3002\n \n \n Portals\n \u5165\u53e3\u7db2\u7ad9\n \n \n At least \n gateways are required.\n \n \u81f3\u5c11\u9700\u8981 \n \u500b\u7269\u4ef6\u9598\u9053\u3002\n \n \n \n Add portal\n \u65b0\u589e\u5165\u53e3\u7db2\u7ad9\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \u6b64\u5f71\u50cf\u7684\u8a2d\u5b9a\u5b58\u5728\u4fee\u6539\u3002\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \u65b0\u589e\u5f71\u50cf\n \n \n ACL authentication\n ACL \u9a57\u8b49\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \u555f\u52d5\u5668\n \n \n Initiator\n \u555f\u52d5\u5668\n \n \n Client IQN\n \u7528\u6236\u7aef IQN\n \n \n Initiator IQN needs to be unique.\n \u555f\u52d5\u5668 IQN \u5fc5\u9808\u552f\u4e00\u3002\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u4f7f\u7528\u8005\u540d\u7a31\u7684\u9577\u5ea6\u5fc5\u9808\u4ecb\u65bc 8 \u81f3 64 \u500b\u5b57\u5143\u4e4b\u9593\uff0c\u4e26\u4e14\u53ea\u80fd\u5305\u542b\u4ee5\u4e0b\n \u5b57\u5143\ufe30\u5b57\u6bcd\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u6216\u300c:\u300d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \u555f\u52d5\u5668\u5c6c\u65bc\u7fa4\u7d44\u3002\u5f71\u50cf\u9808\u5728\u7fa4\u7d44\u4e2d\u9032\u884c\u8a2d\u5b9a\u3002 \n \n \n No items added.\n \u672a\u65b0\u589e\u9805\u76ee\u3002\n \n \n Add initiator\n \u65b0\u589e\u555f\u52d5\u5668\n \n \n Groups\n \u7fa4\u7d44\n \n \n Group\n \u7fa4\u7d44\n \n \n Add group\n \u65b0\u589e\u7fa4\u7d44\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD \u7d44\u614b\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \u79fb\u9664\u672c\u5730\u7d44\u614b\u503c\u3002\u5c07\u7e7c\u627f\u4e26\u4f7f\u7528\u7236\u7d44\u614b\u503c\u3002\n \n \n The mininum value is 0\n \u6700\u5c0f\u503c\u70ba 0\n \n \n Issues\n \u554f\u984c\n \n \n Syncing\n \u6b63\u5728\u540c\u6b65\n \n \n Ready\n \u6e96\u5099\u5c31\u7dd2\n \n \n Edit pool mirror mode\n \u7de8\u8f2f\u6c60\u93e1\u50cf\u6a21\u5f0f\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \u82e5\u8981\u7de8\u8f2f\u6c60 \n \n \n \xa0\n \u7684\u93e1\u50cf\u6a21\u5f0f\uff0c\u8acb\u5f9e\u6e05\u55ae\u4e2d\u9078\u53d6\u4e00\u500b\u65b0\u6a21\u5f0f\uff0c\u7136\u5f8c\u6309\u4e00\u4e0b\xa0\n \u66f4\u65b0\n \u3002\n \n \n \n Mode\n \u6a21\u5f0f\n \n \n Peer clusters must be removed prior to disabling mirror.\n \u5728\u505c\u7528\u93e1\u50cf\u4e4b\u524d\uff0c\u5fc5\u9808\u5148\u79fb\u9664\u5c0d\u7b49\u53e2\u96c6\u3002\n \n \n \n \n pool mirror peer\n \n \n \n \u6c60\u93e1\u50cf\u5c0d\u7b49\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {\u7de8\u8f2f} other {\u65b0\u589e} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \u6c60\n \n \n \u7684\n \u93e1\u50cf\u5c0d\u7b49\u5c6c\u6027\uff0c\u7136\u5f8c\u6309\u4e00\u4e0b\n \u63d0\u4ea4\n \u3002\n \n \n \n Cluster Name\n \u53e2\u96c6\u540d\u7a31\n \n \n The cluster name is not valid.\n \u53e2\u96c6\u540d\u7a31\u7121\u6548\u3002\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n CephX ID \u7121\u6548\u3002\n \n \n Monitor Addresses\n \u76e3\u63a7\u7a0b\u5f0f\u4f4d\u5740\n \n \n Comma-delimited addresses...\n \u9017\u865f\u5206\u9694\u7684\u4f4d\u5740...\n \n \n The monitory address is not valid.\n \u76e3\u63a7\u7a0b\u5f0f\u4f4d\u5740\u7121\u6548\u3002\n \n \n CephX Key\n CephX \u91d1\u9470\n \n \n Base64-encoded key...\n Base64 \u7de8\u78bc\u7684\u91d1\u9470...\n \n \n CephX key must be base64 encoded.\n CephX \u91d1\u9470\u5fc5\u9808\u70ba Base64 \u7de8\u78bc\u7684\u91d1\u9470\u3002\n \n \n Pools List\n \u6c60\u6e05\u55ae\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \u540d\u7a31\u53ea\u80fd\u7531\u82f1\u6578\u5b57\u5143\u3001\u7834\u6298\u865f\u548c\u5e95\u7dda\u7d44\u6210\u3002\n \n \n The chosen erasure code profile name is already in use.\n \u6240\u9078\u7684\u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\u540d\u7a31\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Plugin\n \u5916\u639b\u7a0b\u5f0f\n \n \n Data chunks (k)\n \u8cc7\u6599\u5340\u584a (k)\n \n \n Must be equal to or greater than 2.\n \u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc 2\u3002\n \n \n Coding chunks (m)\n \u7de8\u78bc\u5340\u584a (m)\n \n \n Must be equal to or greater than 1.\n \u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc 1\u3002\n \n \n Durability estimator (c)\n \u6301\u4e45\u6027\u4f30\u503c (c)\n \n \n Locality (l)\n \u672c\u5730\u6027 (l)\n \n \n Crush failure domain\n CRUSH \u6545\u969c\u7db2\u57df\n \n \n Crush Locality\n CRUSH \u672c\u5730\u6027\n \n \n None\n \u7121\n \n \n Technique\n \u6280\u8853\n \n \n Packetsize\n \u5c01\u5305\u5927\u5c0f\n \n \n Crush root\n CRUSH \u6839\n \n \n Crush device class\n CRUSH \u88dd\u7f6e\u985e\u5225\n \n \n any\n \u4efb\u4f55\n \n \n Directory\n \u76ee\u9304\n \n \n The chosen Ceph pool name is already in use.\n \u6240\u9078\u7684 Ceph \u6c60\u540d\u7a31\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Pool type\n \u6c60\u985e\u578b\n \n \n -- Select a pool type --\n -- \u9078\u53d6\u6c60\u985e\u578b --\n \n \n Placement groups\n \u653e\u7f6e\u7fa4\u7d44\n \n \n At least one placement group is needed!\n \u81f3\u5c11\u9700\u8981\u4e00\u500b\u653e\u7f6e\u7fa4\u7d44\uff01\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \u60a8\u7684\u53e2\u96c6\u7121\u6cd5\u8655\u7406\u9019\u9ebc\u591a\u7684 PG\u3002\u8acb\u91cd\u65b0\u8a08\u7b97\u6240\u9700\u7684 PG \u6578\u91cf\u3002\n \n \n Calculation help\n \u8a08\u7b97\u8aaa\u660e\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \u5df2\u70ba\u60a8\u8a08\u7b97\u76ee\u524d\u7684 PG \u8a2d\u5b9a\uff0c\u60a8\n \u61c9\u5728\u63d0\u4ea4\u524d\u78ba\u5b9a\u9019\u4e9b\u503c\u7b26\u5408\u60a8\u7684\u9700\u6c42\u3002\n \n \n Crush ruleset\n CRUSH \u898f\u5247\u96c6\n \n \n -- Select a crush rule --\n -- \u9078\u53d6 CRUSH \u898f\u5247 --\n \n \n Crush rule\n CRUSH \u898f\u5247\n \n \n Crush steps\n CRUSH \u6b65\u9a5f\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \u7121\u6cd5\u5728\u76ee\u524d\u7684\u53e2\u96c6\u4e2d\u4f7f\u7528\u6b64\u898f\u5247\uff0c\u56e0\u70ba\u53e2\u96c6\u7684\n OSD \u6578\u91cf\u904e\u5c11\uff0c\u7121\u6cd5\u6eff\u8db3\u898f\u5247\u6240\u9700\u7684\u6700\u4f4e OSD \u6578\u91cf\u3002\n \n \n Replicated size\n \u8907\u88fd\u5927\u5c0f\n \n \n Minimum: \n \n \n \u6700\u4f4e\ufe30\n \n \n \n \n Maximum: \n \n \n \u6700\u9ad8\ufe30\n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \u6307\u5b9a\u7684\u5927\u5c0f\u8d85\u51fa\u4e86\u7bc4\u570d\u3002\u4ecb\u65bc\n \u81f3 \n \u4e4b\u9593\u7684\u503c\u624d\u6709\u6548\u3002\n \n \n \n Erasure code profile\n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\n \n \n -- No erasure code profile available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94 --\n \n \n -- Select an erasure code profile --\n -- \u9078\u53d6\u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94 --\n \n \n EC Overwrites\n EC \u8986\u5beb\n \n \n Applications\n \u61c9\u7528\u7a0b\u5f0f\n \n \n Compression\n \u58d3\u7e2e\n \n \n Algorithm\n \u6f14\u7b97\u6cd5\n \n \n -- No erasure compression algorithm available --\n -- \u6c92\u6709\u53ef\u7528\u7684\u7cfe\u522a\u58d3\u7e2e\u6f14\u7b97\u6cd5 --\n \n \n Minimum blob size\n Blob \u6700\u5c0f\u5927\u5c0f\n \n \n e.g., 128KiB\n \u4f8b\u5982 128 KiB\n \n \n Value should be greater than 0\n \u503c\u61c9\u5927\u65bc 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Blob \u6700\u5927\u5927\u5c0f\n \n \n e.g., 512KiB\n \u4f8b\u5982 512 KiB\n \n \n Value should be greater than the minimum blob size\n \u503c\u61c9\u5927\u65bc blob \u6700\u5c0f\u5927\u5c0f\n \n \n Ratio\n \u6bd4\u7387\n \n \n Compression ratio\n \u58d3\u7e2e\u7387\n \n \n Value should be between 0.0 and 1.0\n \u503c\u61c9\u4ecb\u65bc 0.0 \u81f3 1.0 \u4e4b\u9593\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \u7121\u6cd5\u5efa\u7acb\u540d\u7a31\u4e2d\u5305\u542b\u300c/\u300d\u7684 RBD \u6c60\u3002\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \u8acb\u8b8a\u66f4\u540d\u7a31\u6216\u5c07\u300crbd\u300d\u5f9e\u61c9\u7528\u7a0b\u5f0f\u6e05\u55ae\u4e2d\u79fb\u9664\u3002\n \n \n Cache Tiers Details\n \u5feb\u53d6\u5c64\u8a73\u7d30\u8cc7\u6599\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \u5982\u9700\u4e86\u89e3\u5982\u4f55\u8a2d\u5b9a\u548c\u555f\u7528\u7269\u4ef6\u9598\u9053\u7ba1\u7406\u529f\u80fd\uff0c\n \u8acb\u53c3\u95b1\n \u6587\u4ef6\n \u3002\n \n \n \n Daemons List\n \u7cbe\u9748\u6e05\u55ae\n \n \n Performance Counters\n \u6548\u80fd\u8a08\u6578\u5668\n \n \n Loading bucket data...\n \u6b63\u5728\u8f09\u5165\u6876\u8cc7\u6599...\n \n \n The bucket data could not be loaded.\n \u7121\u6cd5\u8f09\u5165\u6876\u8cc7\u6599\u3002\n \n \n Id\n ID\n \n \n The value is not valid.\n \u8a72\u503c\u7121\u6548\u3002\n \n \n Owner\n \u64c1\u6709\u8005\n \n \n -- Select a user --\n -- \u9078\u53d6\u4f7f\u7528\u8005 --\n \n \n ID\n ID\n \n \n Index type\n \u7d22\u5f15\u985e\u578b\n \n \n Placement rule\n \u653e\u7f6e\u898f\u5247\n \n \n Marker\n \u6a19\u8a18\n \n \n Maximum marker\n \u6700\u5927\u6a19\u8a18\u6578\n \n \n Version\n \u7248\u672c\n \n \n Master version\n \u4e3b\u7248\u672c\n \n \n Modification time\n \u4fee\u6539\u6642\u9593\n \n \n Zonegroup\n \u5340\u57df\u7fa4\u7d44\n \n \n Bucket quota\n \u6876\u5b9a\u984d\n \n \n Enabled\n \u5df2\u555f\u7528\n \n \n Maximum size\n \u6700\u5927\u5927\u5c0f\n \n \n Unlimited\n \u7121\u9650\u5236\n \n \n Maximum objects\n \u6700\u5927\u7269\u4ef6\u6578\n \n \n -- Select a username --\n -- \u9078\u53d6\u4f7f\u7528\u8005\u540d\u7a31 --\n \n \n Auto-generate key\n \u81ea\u52d5\u7522\u751f\u91d1\u9470\n \n \n Access key\n \u5b58\u53d6\u91d1\u9470\n \n \n Secret key\n \u6a5f\u5bc6\u91d1\u9470\n \n \n Email address\n \u96fb\u5b50\u90f5\u4ef6\u5730\u5740\n \n \n Suspended\n \u5df2\u66ab\u505c\n \n \n System\n \u7cfb\u7d71\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {\u5426} 1 {\u662f} }\n \n \n Maximum buckets\n \u6700\u5927\u6876\u6578\n \n \n Subusers\n \u5b50\u4f7f\u7528\u8005\n \n \n Capabilities\n \u529f\u80fd\n \n \n User quota\n \u4f7f\u7528\u8005\u5b9a\u984d\n \n \n Show\n \u986f\u793a\n \n \n Keys\n \u91d1\u9470\n \n \n -- Select a type --\n -- \u9078\u53d6\u985e\u578b --\n \n \n Permission\n \u8a31\u53ef\u6b0a\n \n \n -- Select a permission --\n -- \u9078\u53d6\u8a31\u53ef\u6b0a --\n \n \n Subuser\n \u5b50\u4f7f\u7528\u8005\n \n \n The chosen subuser ID is already in use.\n \u6240\u9078\u7684\u5b50\u4f7f\u7528\u8005 ID \u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n read, write\n \u8b80\u53d6\u3001\u5beb\u5165\n \n \n full\n \u5b8c\u6574\n \n \n Swift key\n Swift \u91d1\u9470\n \n \n Auto-generate secret\n \u81ea\u52d5\u7522\u751f\u6a5f\u5bc6\u91d1\u9470\n \n \n Loading user data...\n \u6b63\u5728\u8f09\u5165\u4f7f\u7528\u8005\u8cc7\u6599...\n \n \n The user data could not be loaded.\n \u7121\u6cd5\u8f09\u5165\u4f7f\u7528\u8005\u8cc7\u6599\u3002\n \n \n The chosen user ID is already in use.\n \u6240\u9078\u7684\u4f7f\u7528\u8005 ID \u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n This is not a valid email address.\n \u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u7121\u6548\u3002\n \n \n The chosen email address is already in use.\n \u6240\u9078\u7684\u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n Max. buckets\n \u6700\u5927\u6876\u6578\n \n \n The entered value must be >= 0.\n \u8f38\u5165\u7684\u503c\u5fc5\u9808\u5927\u65bc\u6216\u7b49\u65bc 0\u3002\n \n \n S3 key\n S3 \u91d1\u9470\n \n \n There are no subusers.\n \u6c92\u6709\u5b50\u4f7f\u7528\u8005\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \u6c92\u6709\u91d1\u9470\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n \u6c92\u6709\u529f\u80fd\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \u5927\u5c0f\u4e0d\u9650\n \n \n Max. size\n \u6700\u5927\u5927\u5c0f\n \n \n Unlimited objects\n \u7269\u4ef6\u6578\u4e0d\u9650\n \n \n Max. objects\n \u6700\u5927\u7269\u4ef6\u6578\n \n \n Current\n \u76ee\u524d\n \n \n Updated discovery authentication\n \u5df2\u66f4\u65b0\u63a2\u67e5\u9a57\u8b49\n \n \n There are no portals available.\n \u6c92\u6709\u53ef\u7528\u7684\u5165\u53e3\u7db2\u7ad9\u3002\n \n \n There are no images available.\n \u6c92\u6709\u53ef\u7528\u7684\u5f71\u50cf\u3002\n \n \n There are no images available. Please make sure you add an image to the target.\n \u6c92\u6709\u53ef\u7528\u7684\u5f71\u50cf\u3002\u8acb\u78ba\u5b9a\u70ba\u76ee\u6a19\u65b0\u589e\u4e00\u500b\u5f71\u50cf\u3002\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \u6c92\u6709\u53ef\u7528\u7684\u555f\u52d5\u5668\u3002\u8acb\u78ba\u5b9a\u70ba\u76ee\u6a19\u65b0\u589e\u4e00\u500b\u555f\u52d5\u5668\u3002\n \n \n target\n target\n \n \n Target\n \u76ee\u6a19\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \u72c0\u614b\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \u8b80\u53d6\u4f4d\u5143\u7d44\u6578\n \n \n Write Bytes\n \u5beb\u5165\u4f4d\u5143\u7d44\u6578\n \n \n Read Ops\n \u8b80\u53d6\u64cd\u4f5c\u6578\n \n \n Write Ops\n \u5beb\u5165\u64cd\u4f5c\u6578\n \n \n A/O Since\n \u4f7f\u7528\u4e2d/\u6700\u4f73\u5316\u958b\u59cb\u6642\u9593\n \n \n Instance\n \u4f8b\u9805\n \n \n Hostname\n \u4e3b\u6a5f\u540d\u7a31\n \n \n Issue\n \u554f\u984c\n \n \n Progress\n \u9032\u5ea6\n \n \n Disabled\n \u5df2\u505c\u7528\n \n \n Edit Mode\n \u7de8\u8f2f\u6a21\u5f0f\n \n \n Add Peer\n \u65b0\u589e\u5c0d\u7b49\n \n \n Edit Peer\n \u7de8\u8f2f\u5c0d\u7b49\n \n \n Delete Peer\n \u522a\u9664\u5c0d\u7b49\n \n \n Leader\n Leader\n \n \n # Local\n \u672c\u5730\u6578\u91cf\n \n \n # Remote\n \u9060\u7aef\u6578\u91cf\n \n \n mirror peer\n \u93e1\u50cf\u5c0d\u7b49\n \n \n Key\n \u91d1\u9470\n \n \n RBD\n RBD\n \n \n Deep flatten\n \u6df1\u5c64\u58d3\u5e73\n \n \n Layering\n \u5206\u5c64\n \n \n Exclusive lock\n \u7368\u4f54\u9396\u5b9a\n \n \n Object map (requires exclusive-lock)\n \u7269\u4ef6\u5c0d\u61c9 (\u9700\u8981\u7368\u4f54\u9396\u5b9a)\n \n \n Journaling (requires exclusive-lock)\n \u8a18\u9304 (\u9700\u8981\u7368\u4f54\u9396\u5b9a)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD \u5feb\u7167\u5fa9\u539f\n \n \n Rollback\n \u5fa9\u539f\n \n \n RBD snapshot\n RBD \u5feb\u7167\n \n \n Deleted At\n \u522a\u9664\u4f4d\u7f6e\n \n \n id\n ID\n \n \n type\n \u985e\u578b\n \n \n state\n \u72c0\u614b\n \n \n version\n \u7248\u672c\n \n \n Host\n \u4e3b\u6a5f\n \n \n root\n \u6839\n \n \n Rank\n \u968e\u5c64\n \n \n Daemon\n \u7cbe\u9748\n \n \n Activity\n \u6d3b\u52d5\n \n \n Dentries\n Dentry\n \n \n Inodes\n Inode\n \n \n Usage\n \u4f7f\u7528\u7387\n \n \n Standby daemons\n \u5f85\u547d\u7cbe\u9748\n \n \n The value can be updated at runtime.\n \u8a72\u503c\u53ef\u5728\u57f7\u884c\u6642\u671f\u66f4\u65b0\u3002\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \u7cbe\u9748/\u7528\u6236\u7aef\u4e0d\u6703\u5f9e\u76e3\u63a7\u7a0b\u5f0f\u7d44\u614b\u8cc7\u6599\u5eab\n \u63d0\u53d6\u6b64\u503c\u3002\u6211\u5011\u4e0d\u5141\u8a31\u900f\u904e\u300cceph config set ...\u300d\n \u8a2d\u5b9a\u6b64\u9078\u9805\u3002\u61c9\u900f\u904e ceph.conf \u6216\u4f7f\u7528\u6307\u4ee4\u884c\n \u9032\u884c\u8a2d\u5b9a\u3002\n \n \n Option takes effect only during daemon startup.\n \u8a72\u9078\u9805\u50c5\u5728\u7cbe\u9748\u555f\u52d5\u671f\u9593\u751f\u6548\u3002\n \n \n Option only affects cluster creation.\n \u8a72\u9078\u9805\u50c5\u5f71\u97ff\u53e2\u96c6\u5efa\u7acb\u3002\n \n \n Option only affects daemon creation.\n \u8a72\u9078\u9805\u50c5\u5f71\u97ff\u7cbe\u9748\u5efa\u7acb\u3002\n \n \n Updated config option \n \n \n \u5df2\u66f4\u65b0\u7d44\u614b\u9078\u9805\n \n \n \n \n Service\n \u670d\u52d9\n \n \n Current value\n \u76ee\u524d\u7684\u503c\n \n \n Editable\n \u53ef\u7de8\u8f2f\n \n \n Updated options for module "\n ".\n \n \u5df2\u66f4\u65b0\u6a21\u7d44\u300c\n \u300d\u7684\u9078\u9805\u3002\n \n \n \n Enable\n \u555f\u7528\n \n \n Disable\n \u505c\u7528\n \n \n Reconnecting, please wait ...\n \u6b63\u5728\u91cd\u65b0\u9023\u63a5\uff0c\u8acb\u7a0d\u5019...\n \n \n Public Address\n \u516c\u7528\u4f4d\u5740\n \n \n Open Sessions\n \u958b\u555f\u7684\u5de5\u4f5c\u968e\u6bb5\n \n \n No In\n \u7981\u6b62\u6a19\u793a\u70ba In\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \u4e4b\u524d\u6a19\u793a\u70ba out \u7684 OSD \u5728\u555f\u52d5\u6642\u5c07\u4e0d\u6703\u91cd\u65b0\u6a19\u793a\u70ba in\n \n \n No Out\n \u7981\u6b62\u6a19\u793a\u70ba Out\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD \u5728\u8a2d\u5b9a\u7684\u9593\u9694\u904e\u5f8c\u5c07\u4e0d\u6703\u81ea\u52d5\u6a19\u793a\u70ba out\n \n \n No Up\n \u7981\u6b62\u6a19\u793a\u70ba Up\n \n \n OSDs are not allowed to start\n \u4e0d\u5141\u8a31 OSD \u555f\u52d5\n \n \n No Down\n \u7981\u6b62\u6a19\u793a\u70ba Down\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n \u5c07\u6703\u5ffd\u7565 OSD \u6545\u969c\u5831\u544a\uff0c\u5982\u6b64\u76e3\u63a7\u7a0b\u5f0f\u4fbf\u4e0d\u6703\u5c07 OSD \u6a19\u793a\u70ba down\n \n \n Pause\n \u66ab\u505c\n \n \n Pauses reads and writes\n \u66ab\u505c\u8b80\u53d6\u548c\u5beb\u5165\n \n \n No Scrub\n \u7981\u6b62\u6574\u7406\n \n \n Scrubbing is disabled\n \u6574\u7406\u5df2\u505c\u7528\n \n \n No Deep Scrub\n \u7981\u6b62\u6df1\u5c64\u6574\u7406\n \n \n Deep Scrubbing is disabled\n \u6df1\u5c64\u6574\u7406\u5df2\u505c\u7528\n \n \n No Backfill\n \u7981\u6b62\u56de\u586b\n \n \n Backfilling of PGs is suspended\n PG \u56de\u586b\u5df2\u66ab\u505c\n \n \n No Recover\n \u7981\u6b62\u5fa9\u539f\n \n \n Recovery of PGs is suspended\n PG \u5fa9\u539f\u5df2\u66ab\u505c\n \n \n Bitwise Sort\n \u6309\u4f4d\u5143\u6392\u5e8f\n \n \n Use bitwise sort\n \u4f7f\u7528\u6309\u4f4d\u5143\u6392\u5e8f\n \n \n Purged Snapdirs\n \u5df2\u6e05\u9664 Snapdir\n \n \n OSDs have converted snapsets\n OSD \u5df2\u8f49\u63db snapset\n \n \n Recovery Deletes\n \u5fa9\u539f\u522a\u9664\n \n \n Deletes performed during recovery instead of peering\n \u5728\u5fa9\u539f\u671f\u9593\uff0c\u800c\u975e\u5728\u5efa\u7acb\u4e92\u806f\u6642\u57f7\u884c\u522a\u9664\n \n \n PG Log Hard Limit\n PG \u8a18\u9304\u786c\u9650\u5236\n \n \n Puts a hard limit on pg log length\n \u70ba pg \u8a18\u9304\u9577\u5ea6\u8a2d\u5b9a\u786c\u9650\u5236\n \n \n Updated OSD Flags\n \u5df2\u66f4\u65b0 OSD \u65d7\u6a19\n \n \n out\n out\n \n \n in\n in\n \n \n down\n down\n \n \n Mark\n \u6a19\u793a\n \n \n OSD lost\n OSD \u907a\u5931\n \n \n marked lost\n \u5df2\u6a19\u793a\u70ba\u907a\u5931\n \n \n Purge\n \u6e05\u9664\n \n \n OSD\n OSD\n \n \n purged\n \u5df2\u6e05\u9664\n \n \n destroy\n \u640d\u6bc0\n \n \n destroyed\n \u5df2\u640d\u6bc0\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG\n \n \n Read bytes\n \u8b80\u53d6\u4f4d\u5143\u7d44\u6578\n \n \n Writes bytes\n \u5beb\u5165\u4f4d\u5143\u7d44\u6578\n \n \n Read ops\n \u8b80\u53d6\u64cd\u4f5c\u6578\n \n \n Write ops\n \u5beb\u5165\u64cd\u4f5c\u6578\n \n \n Mark OSD \n \n \n \u5c07 OSD \u6a19\u793a\u70ba \n \n \n \n \n Mark \n \n \n \u6a19\u793a\u70ba \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \u6700\u5927\u56de\u586b\u6578\n \n \n Recovery Max Active\n \u8655\u65bc\u4f7f\u7528\u4e2d\u72c0\u614b\u7684\u6700\u5927\u5fa9\u539f\u64cd\u4f5c\u6578\n \n \n Recovery Max Single Start\n \u55ae\u6b21\u555f\u52d5\u7684\u6700\u5927\u5fa9\u539f\u64cd\u4f5c\u6578\n \n \n Recovery Sleep\n \u5fa9\u539f\u64cd\u4f5c\u9593\u9694\u7761\u7720\u6642\u9593\n \n \n Custom\n \u81ea\u8a02\n \n \n Updated OSD recovery speed priority "\n "\n \n \u5df2\u66f4\u65b0 OSD \u5fa9\u539f\u901f\u5ea6\u512a\u5148\u7a0b\u5ea6\u300c\n \u300d\n \n \n \n \n was initialized in the following OSD: \n \n \n \u4ee5\u4e0b OSD \u5df2\u555f\u59cb\u5316\n \u64cd\u4f5c\ufe30\n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \u5de5\u4f5c\n \n \n Severity\n \u56b4\u91cd\u6027\n \n \n Started\n \u5df2\u555f\u52d5\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \u5df2\u66f4\u65b0\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \u5df2\u4f7f\u7528\n \n \n Avail.\n \u53ef\u7528\n \n \n Clean\n \u4e7e\u6de8\n \n \n Working\n \u5de5\u4f5c\u4e2d\n \n \n Warning\n \u8b66\u544a\n \n \n Unknown\n \u672a\u77e5\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \u555f\u7528\u4e2d\n \n \n no filesystems\n \u7121\u6a94\u6848\u7cfb\u7d71\n \n \n active\n \u4f7f\u7528\u4e2d\n \n \n standby\n \u5f85\u547d\n \n \n n/a\n \u7121\n \n \n active daemon\n \u4f7f\u7528\u4e2d\u7684\u7cbe\u9748\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n \u672a\u8a2d\u5b9a NFS Ganesha \u670d\u52d9\u3002\n \n \n Transport\n \u50b3\u8f38\n \n \n CephFS User\n CephFS \u4f7f\u7528\u8005\n \n \n CephFS Filesystem\n CephFS \u6a94\u6848\u7cfb\u7d71\n \n \n (inherited from global config)\n (\u7e7c\u627f\u81ea\u5168\u57df\u7d44\u614b)\n \n \n inherited from global config\n \u7e7c\u627f\u81ea\u5168\u57df\u7d44\u614b\n \n \n -- Select what kind of user id squashing is performed --\n -- \u9078\u53d6\u57f7\u884c\u54ea\u7a2e\u985e\u578b\u7684\u4f7f\u7528\u8005 ID \u533f\u540d\u5b58\u53d6 --\n \n \n There are no daemons available.\n \u6c92\u6709\u53ef\u7528\u7684\u7cbe\u9748\u3002\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \u5feb\u53d6\u6a21\u5f0f\n \n \n Min Evict Age\n \u9010\u51fa\u524d\u81f3\u5c11\u53ef\u7559\u5b58\u7684\u6642\u9593\n \n \n Min Flush Age\n \u885d\u6d17\u524d\u81f3\u5c11\u53ef\u7559\u5b58\u7684\u6642\u9593\n \n \n Target Max Bytes\n \u76ee\u6a19\u6700\u5927\u4f4d\u5143\u7d44\u6578\n \n \n Target Max Objects\n \u76ee\u6a19\u6700\u5927\u7269\u4ef6\u6578\n \n \n No applications added\n \u672a\u65b0\u589e\u61c9\u7528\u7a0b\u5f0f\n \n \n Applications limit reached\n \u5df2\u9054\u5230\u61c9\u7528\u7a0b\u5f0f\u4e0a\u9650\n \n \n A pool can only have up to four applications definitions.\n \u4e00\u500b\u6c60\u6700\u591a\u53ea\u80fd\u56db\u500b\u61c9\u7528\u7a0b\u5f0f\u5b9a\u7fa9\u3002\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \u5141\u8a31\u7684\u5b57\u5143\u70ba\u300c_a-zA-Z0-9\u300d\n \n \n Maximum length is 128 characters\n \u6700\u5927\u9577\u5ea6\u70ba 128 \u500b\u5b57\u5143\n \n \n Filter or add applications\n \u904e\u6ffe\u6216\u65b0\u589e\u61c9\u7528\u7a0b\u5f0f\n \n \n Add application\n \u65b0\u589e\u61c9\u7528\u7a0b\u5f0f\n \n \n pool\n pool\n \n \n erasure code profile\n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\n \n \n Replica Size\n \u8907\u672c\u5927\u5c0f\n \n \n Last Change\n \u4e0a\u6b21\u8b8a\u66f4\u6642\u9593\n \n \n Erasure Coded Profile\n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\n \n \n Crush Ruleset\n CRUSH \u898f\u5247\u96c6\n \n \n Write bytes\n \u5beb\u5165\u4f4d\u5143\u7d44\u6578\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \u6876\n \n \n Updated Object Gateway bucket "\n "\n \n \u5df2\u66f4\u65b0\u7269\u4ef6\u9598\u9053\u6876\u300c\n \u300d\n \n \n \n Created Object Gateway bucket "\n "\n \n \u5df2\u5efa\u7acb\u7269\u4ef6\u9598\u9053\u6876\u300c\n \u300d\n \n \n \n buckets\n \u6876\n \n \n capability\n capability\n \n \n user\n \u4f7f\u7528\u8005\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \u5df2\u66f4\u65b0\u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Created Object Gateway user "\n "\n \n \u5df2\u5efa\u7acb\u7269\u4ef6\u9598\u9053\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n users\n \u4f7f\u7528\u8005\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \u7bc4\u570d\n \n \n Read\n \u8b80\u53d6\n \n \n Create\n \u5efa\u7acb\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \u5df2\u5efa\u7acb\u89d2\u8272\u300c\n \u300d\n \n \n \n Updated role \'\n \'\n \n \u5df2\u66f4\u65b0\u89d2\u8272\u300c\n \u300d\n \n \n \n System Role\n \u7cfb\u7d71\u89d2\u8272\n \n \n Deleted role \'\n \'\n \n \u5df2\u522a\u9664\u89d2\u8272\u300c\n \u300d\n \n \n \n Created user "\n "\n \n \u5df2\u5efa\u7acb\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Update user\n \u66f4\u65b0\u4f7f\u7528\u8005\n \n \n Continue\n \u7e7c\u7e8c\n \n \n You were automatically logged out because your roles have been changed.\n \u60a8\u5df2\u88ab\u81ea\u52d5\u767b\u51fa\uff0c\u56e0\u70ba\u60a8\u7684\u89d2\u8272\u767c\u751f\u4e86\u8b8a\u66f4\u3002\n \n \n Updated user "\n "\n \n \u5df2\u66f4\u65b0\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Deleted user "\n "\n \n \u5df2\u522a\u9664\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n Failed to delete user "\n "\n \n \u7121\u6cd5\u522a\u9664\u4f7f\u7528\u8005\u300c\n \u300d\n \n \n \n You are currently logged in as "\n ".\n \n \u60a8\u76ee\u524d\u6b63\u4ee5\u300c\n \u300d\u8eab\u5206\u767b\u5165\u3002\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \u5404\u7269\u4ef6\u90fd\u88ab\u5206\u5272\u6210\u8cc7\u6599\u5340\u584a\u90e8\u5206\uff0c\u5206\u5225\u5132\u5b58\u65bc\u4e0d\u540c\u7684 OSD\u3002\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \u904b\u7b97\u5404\u7269\u4ef6\u7684\u7de8\u78bc\u5340\u584a\u5e76\u5c07\u5b83\u5011\u5132\u5b58\u5230\u4e0d\u540c\u7684 OSD\u3002\n \u7de8\u78bc\u5340\u584a\u7684\u6578\u91cf\u7b49\u540c\u65bc\u5728\u4e0d\u907a\u5931\u8cc7\u6599\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u505c\u6a5f\u7684 OSD \u6578\u91cf\u3002\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Jerasure \u5916\u639b\u7a0b\u5f0f\u662f\u6700\u4e00\u822c\u3001\u6700\u9748\u6d3b\u7684\u5916\u639b\u7a0b\u5f0f\uff0c\n \u4e5f\u662f Ceph \u7cfe\u522a\u78bc\u6c60\u7684\u9810\u8a2d\u5916\u639b\u7a0b\u5f0f\u3002\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Reed_sol_van \u65b9\u6cd5\u66f4\u9748\u6d3b\ufe30\u5b83\u8db3\u4ee5\u8a2d\u5b9a k\n \u548c m\u3002Cauchy_good \u65b9\u6cd5\u66f4\u5feb\uff0c\u4f46\u60a8\u9700\u8981\u5c0f\u5fc3\u9078\u53d6\u5c01\u5305\u5927\u5c0f\u3002\n \u6240\u6709 reed_sol_r6_op\u3001liberation\u3001blaum_roth\u3001liber8tion \u90fd\n \u7b49\u540c\u65bc RAID6\uff0c\u5b83\u5011\u53ea\u80fd\u8a2d\u5b9a\u70ba m=2\u3002\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \u5c07\u4ee5\u4f4d\u5143\u7d44\u5927\u5c0f\u7684\u5c01\u5305\u70ba\u55ae\u4f4d\u9032\u884c\u7de8\u78bc\u3002\n \u9078\u53d6\u5408\u9069\u7684\u5c01\u5305\u5927\u5c0f\u5f88\u96e3\u3002\n Jerasure \u6587\u4ef6\u5305\u542b\u6709\u95dc\u6b64\u4e3b\u984c\u7684\u8a73\u7d30\u8cc7\u8a0a\u3002\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n \u4f7f\u7528 jerasure \u5916\u639b\u7a0b\u5f0f\u6642\uff0c\u82e5\u7cfe\u522a\u78bc\u7269\u4ef6\u5132\u5b58\u65bc\n \u591a\u500b OSD \u4e0a\uff0c\u5247\u5fa9\u539f\u4e00\u500b\u907a\u5931\u7684 OSD \u6642\u9700\u8981\u8b80\u53d6\u6240\u6709\u5176\u4ed6 OSD\u3002\n \u4f8b\u5982\uff0c\u82e5 jerasure \u8a2d\u5b9a\u70ba k=8 \u4e14 m=4\uff0c\u5247\u907a\u5931\u4e00\u500b OSD \u5f8c\u9700\u8b80\u53d6\n \u5176\u4ed6\u5341\u4e00\u500b OSD \u624d\u80fd\u4fee\u5fa9\u3002\n\n lrc \u7cfe\u522a\u78bc\u5916\u639b\u7a0b\u5f0f\u6703\u5efa\u7acb\u672c\u5730\u540c\u4f4d\u5340\u584a\uff0c\u56e0\u6b64\u53ea\u9700\u8f03\u5c11\u7684 OSD \u5373\n \u53ef\u5fa9\u539f\u3002\u4f8b\u5982\uff0c\u82e5 lrc \u8a2d\u5b9a\u70ba k=8\u3001m=4 \u4e14 l=4\uff0c\u5b83\u5c07\u70ba\u6bcf\u56db\u500b OSD\n \u5efa\u7acb\u984d\u5916\u7684\u540c\u4f4d\u5340\u584a\u3002\u9019\u6a23\uff0c\u7576\u4e00\u500b OSD \u907a\u5931\u6642\uff0c\u5b83\u53ea\u9700\u56db\u500b OSD\n \u5373\u53ef\u5fa9\u539f\uff0c\u800c\u4e0d\u9700\u8981\u5341\u4e00\u500b\u3002\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \u5c07\u7de8\u78bc\u5340\u584a\u548c\u8cc7\u6599\u5340\u584a\u5206\u7d44\u70ba\u5927\u5c0f\u70ba locality \u7684\u96c6\u5408\u3002\u4f8b\u5982\uff0c\n k=4 \u4e14 m=2 \u6642\uff0c\u82e5 locality=3\uff0c\u5247\u6703\u5efa\u7acb 2 \u500b\u5927\u5c0f\u70ba 3 \u7684\u7d44\u3002\u9019\u6a23\uff0c\u5404\u7d44\u90fd\u80fd\n \u81ea\u884c\u5fa9\u539f\uff0c\u800c\u7121\u9700\u5f9e\u53e6\u4e00\u7d44\u8b80\u53d6\u5340\u584a\u3002\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n \u7531 l \u5b9a\u7fa9\u7684\u5340\u584a\u96c6\u5c07\u6309\u54ea\u7a2e CRUSH \u6876\u985e\u578b\u5132\u5b58\u3002\n \u4f8b\u5982\uff0c\u82e5\u8a2d\u5b9a\u70ba\u6a5f\u67b6\uff0c\u5247\u5404\u7d44 l \u5340\u584a\u5c07\u6703\u88ab\u653e\u7f6e\u5230\u4e0d\u540c\u7684\n \u6a5f\u67b6\u4e2d\u3002\u8a72\u503c\u7528\u65bc\u5efa\u7acb\u985e\u4f3c step choose rack \u7684 CRUSH\n \u898f\u5247\u6b65\u9a5f\u3002\u82e5\u672a\u8a2d\u5b9a\uff0c\u5247\u4e0d\u6703\u9032\u884c\u6b64\u985e\u5206\u7d44\u3002\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa \u5916\u639b\u7a0b\u5f0f\u5c01\u5305\u4e86 ISA \u7a0b\u5f0f\u5eab\u3002\u5b83\u53ea\u80fd\u5728 Intel \u8655\u7406\u5668\u4e0a\u57f7\u884c\u3002\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA \u5916\u639b\u7a0b\u5f0f\u5305\u542b\u5169\u7a2e Reed Solomon \u683c\u5f0f\u3002\n \u82e5\u8a2d\u5b9a\u70ba reed_sol_van\uff0c\u5247\u70ba Vandermonde\u3002\u82e5\u8a2d\u5b9a\u70ba cauchy\uff0c\u5247\u70ba Cauchy\u3002\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec \u5916\u639b\u7a0b\u5f0f\u5c01\u5305\u4e86\u591a\u500b SHEC \u7a0b\u5f0f\u5eab\u3002\n \u8207 Reed Solomon \u4ee3\u78bc\u76f8\u6bd4\uff0c\u5b83\u80fd\u66f4\u6709\u6548\u5730\u5fa9\u539f\u8cc7\u6599\u3002\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \u540c\u4f4d\u5340\u584a\u7684\u6578\u91cf\uff0c\u5b83\u5011\u5728\u5404\u81ea\u7684\u8a08\u7b97\u7bc4\u570d\u5167\u5305\u542b\u4e86\n \u5404\u8cc7\u6599\u5340\u584a\u3002\u8a72\u6578\u503c\u88ab\u7528\u505a\u6301\u4e45\u6027\u4f30\u503c\u3002\u4f8b\u5982\uff0c\u82e5 c=2\uff0c\n \u5247\u5728\u4e0d\u907a\u5931\u8cc7\u6599\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u6709 2 \u500b OSD \u505c\u6a5f\u3002\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n CRUSH \u898f\u5247\u7684\u7b2c\u4e00\u6b65\u6240\u6307\u5411\u7684 CRUSH \u6876\u540d\u7a31\u3002\n \u4f8b\u5982 step take default\u3002\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \u78ba\u5b9a\u5169\u500b\u5340\u584a\u4e0d\u6703\u5b58\u5728\u65bc\u540c\u4e00\u6545\u969c\u7db2\u57df\u7684\u6876\u4e2d\u3002\n \u4f8b\u5982\uff0c\u82e5\u6545\u969c\u7db2\u57df\u70ba\u4e3b\u6a5f\uff0c\u5247\u4e0d\u6703\u6709\u5169\u500b\u5340\u584a\u5132\u5b58\u65bc\u540c\u4e00\u4e3b\u6a5f\u4e2d\u3002\n \u8a72\u503c\u7528\u65bc\u5efa\u7acb\u985e\u4f3c step chooseleaf host \u7684 CRUSH \u898f\u5247\u6b65\u9a5f\u3002\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n \u4f7f\u7528 CRUSH \u5730\u5716\u4e2d\u7684 crush \u88dd\u7f6e\u985e\u5225\u540d\u7a31\uff0c\n \u5c07\u653e\u7f6e\u9650\u5236\u65bc\u7279\u5b9a\u985e\u5225\u7684\u88dd\u7f6e (\u4f8b\u5982 ssd \u6216 hdd)\u3002\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \u8a2d\u5b9a\u7cfe\u522a\u78bc\u5916\u639b\u7a0b\u5f0f\u6240\u5728\u76ee\u9304\u3002\n \n \n Allows all operations\n \u5141\u8a31\u6240\u6709\u64cd\u4f5c\n \n \n Allows only operations that do not modify the server\n \u50c5\u5141\u8a31\u4e0d\u4fee\u6539\u4f3a\u670d\u5668\u7684\u64cd\u4f5c\n \n \n Does not allow read or write operations, but allows any other operation\n \u4e0d\u5141\u8a31\u8b80\u53d6\u6216\u5beb\u5165\u64cd\u4f5c\uff0c\u4f46\u662f\u5141\u8a31\u4efb\u4f55\u5176\u4ed6\u64cd\u4f5c\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \u4e0d\u5141\u8a31\u8b80\u53d6\u3001\u5beb\u5165\u6216\u4efb\u4f55\u53ef\u80fd\u4fee\u6539\u6a94\u6848\u5c6c\u6027\u6216\u76ee\u9304\u5167\u5bb9\u7684\u64cd\u4f5c\n \n \n Allows no access at all\n \u5b8c\u5168\u7981\u6b62\u5b58\u53d6\n \n \n -- Select the priority --\n -- \u9078\u53d6\u512a\u5148\u7a0b\u5ea6 --\n \n \n Low\n \u4f4e\n \n \n High\n \u9ad8\n \n \n Last 5 minutes\n \u904e\u53bb 5 \u5206\u9418\n \n \n Last 15 minutes\n \u904e\u53bb 15 \u5206\u9418\n \n \n Last 30 minutes\n \u904e\u53bb 30 \u5206\u9418\n \n \n Last 1 hour (Default)\n \u904e\u53bb 1 \u5c0f\u6642 (\u9810\u8a2d\u503c)\n \n \n Last 3 hours\n \u904e\u53bb 3 \u5c0f\u6642\n \n \n Last 6 hours\n \u904e\u53bb 6 \u5c0f\u6642\n \n \n Last 12 hours\n \u904e\u53bb 12 \u5c0f\u6642\n \n \n Last 24 hours\n \u904e\u53bb 24 \u5c0f\u6642\n \n \n Yesterday\n \u6628\u5929\n \n \n Today\n \u4eca\u5929\n \n \n Today so far\n \u4eca\u5929\u5230\u76ee\u524d\u70ba\u6b62\n \n \n Day before yesterday\n \u524d\u5929\n \n \n Last 2 days\n \u904e\u53bb 2 \u5929\n \n \n This day last week\n \u4e0a\u9031\u7684\u4eca\u5929\n \n \n Previous week\n \u4e0a\u9031\n \n \n This week\n \u672c\u9031\n \n \n This week so far\n \u672c\u9031\u76ee\u524d\u70ba\u6b62\n \n \n Last 7 days\n \u904e\u53bb 7 \u5929\n \n \n Previous month\n \u4e0a\u500b\u6708\n \n \n This month\n \u672c\u6708\n \n \n This month so far\n \u672c\u6708\u76ee\u524d\u70ba\u6b62\n \n \n Last 30 days\n \u904e\u53bb 30 \u5929\n \n \n Last 90 days\n \u904e\u53bb 90 \u5929\n \n \n Last 6 months\n \u904e\u53bb 6 \u500b\u6708\n \n \n Last 1 year\n \u904e\u53bb 1 \u5e74\n \n \n Previous year\n \u53bb\u5e74\n \n \n This year\n \u4eca\u5e74\n \n \n This year so far\n \u4eca\u5e74\u76ee\u524d\u70ba\u6b62\n \n \n Last 2 years\n \u904e\u53bb 2 \u5e74\n \n \n Last 5 years\n \u904e\u53bb 5 \u5e74\n \n \n Information\n \u8cc7\u8a0a\n \n \n No items selected.\n \u672a\u9078\u53d6\u9805\u76ee\u3002\n \n \n Deselect item to select again\n \u53d6\u6d88\u9078\u53d6\u9805\u76ee\u4ee5\u518d\u6b21\u9078\u53d6\n \n \n Selection limit reached\n \u5df2\u9054\u5230\u9078\u53d6\u4e0a\u9650\n \n \n Filter tags\n \u904e\u6ffe\u6a19\u8a18\n \n \n Add badge\n \u65b0\u589e\u5fbd\u7ae0\n \n \n There are no items available.\n \u6c92\u6709\u53ef\u7528\u7684\u9805\u76ee\u3002\n \n \n Add\n \u65b0\u589e\n \n \n Remove\n Remove\n \n \n Clone\n \u514b\u9686\n \n \n Copy\n \u8907\u88fd\n \n \n Deep Scrub\n \u6df1\u5c64\u6574\u7406\n \n \n Destroy\n \u640d\u6bc0\n \n \n Flatten\n \u58d3\u5e73\n \n \n Mark Down\n \u6a19\u793a\u70ba Down\n \n \n Mark In\n \u6a19\u793a\u70ba In\n \n \n Mark Lost\n \u6a19\u793a\u70ba\u907a\u5931\n \n \n Mark Out\n \u6a19\u793a\u70ba Out\n \n \n Protect\n \u4fdd\u8b77\n \n \n Rename\n \u91cd\u65b0\u547d\u540d\n \n \n Restore\n \u9084\u539f\n \n \n Move to Trash\n \u79fb\u81f3\u5783\u573e\u6876\n \n \n Unprotect\n \u53d6\u6d88\u4fdd\u8b77\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \u5df2\u522a\u9664\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \u5df2\u514b\u9686\n \n \n Copied\n \u5df2\u8907\u88fd\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \u662f\n \n \n No\n \u5426\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \u670d\u52d9\u54c1\u8cea\n \n \n BPS Limit\n BPS \u4e0a\u9650\n \n \n The desired limit of IO bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u4f4d\u5143\u7d44\u6578\u4e0a\u9650\u3002\n \n \n IOPS Limit\n IOPS \u4e0a\u9650\n \n \n The desired limit of IO operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u64cd\u4f5c\u6b21\u6578\u4e0a\u9650\u3002\n \n \n Read BPS Limit\n \u8b80\u53d6 BPS \u4e0a\u9650\n \n \n The desired limit of read bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5167\u8b80\u53d6\u7684\u4f4d\u5143\u7d44\u6578\u4e0a\u9650\u3002\n \n \n Read IOPS Limit\n \u8b80\u53d6 IOPS \u4e0a\u9650\n \n \n The desired limit of read operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u8b80\u53d6\u64cd\u4f5c\u6b21\u6578\u4e0a\u9650\u3002\n \n \n Write BPS Limit\n \u5beb\u5165 BPS \u4e0a\u9650\n \n \n The desired limit of write bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5167\u5beb\u5165\u7684\u4f4d\u5143\u7d44\u6578\u4e0a\u9650\u3002\n \n \n Write IOPS Limit\n \u5beb\u5165 IOPS \u4e0a\u9650\n \n \n The desired limit of write operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5beb\u5165\u64cd\u4f5c\u6b21\u6578\u4e0a\u9650\u3002\n \n \n BPS Burst\n BPS \u9ad8\u8f09\n \n \n The desired burst limit of IO bytes.\n \u6307\u5b9a\u7684 IO \u4f4d\u5143\u7d44\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n IOPS Burst\n IOPS \u9ad8\u8f09\n \n \n The desired burst limit of IO operations.\n \u6307\u5b9a\u7684 IO \u64cd\u4f5c\u6b21\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Read BPS Burst\n \u8b80\u53d6 BPS \u9ad8\u8f09\n \n \n The desired burst limit of read bytes.\n \u6307\u5b9a\u7684\u8b80\u53d6\u7684\u4f4d\u5143\u7d44\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Read IOPS Burst\n \u8b80\u53d6 IOPS \u9ad8\u8f09\n \n \n The desired burst limit of read operations.\n \u6307\u5b9a\u7684\u8b80\u53d6\u64cd\u4f5c\u6b21\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Write BPS Burst\n \u5beb\u5165 BPS \u9ad8\u8f09\n \n \n The desired burst limit of write bytes.\n \u6307\u5b9a\u7684\u5beb\u5165\u7684\u4f4d\u5143\u7d44\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Write IOPS Burst\n \u5beb\u5165 IOPS \u9ad8\u8f09\n \n \n The desired burst limit of write operations.\n \u6307\u5b9a\u7684\u5beb\u5165\u64cd\u4f5c\u6b21\u6578\u9ad8\u8f09\u4e0a\u9650\u3002\n \n \n Failed to \n \n \n \n \u7121\u6cd5\n \n \n \n \n \n Executing\n \u6b63\u5728\u57f7\u884c\n \n \n execute\n \u57f7\u884c\n \n \n Executed\n \u5df2\u57f7\u884c\n \n \n unknown task\n \u672a\u77e5\u4efb\u52d9\n \n \n Creating\n \u6b63\u5728\u5efa\u7acb\n \n \n create\n \u5efa\u7acb\n \n \n Updating\n \u6b63\u5728\u66f4\u65b0\n \n \n update\n \u66f4\u65b0\n \n \n Deleting\n \u6b63\u5728\u522a\u9664\n \n \n delete\n \u522a\u9664\n \n \n RBD \'\n \'\n \n RBD\u300c\n \u300d\n \n \n \n RBD snapshot \'\n \'\n \n RBD \u5feb\u7167\u300c\n \u300d\n \n \n \n mirror mode for pool \'\n \'\n \n \u6c60\u300c\n \u300d\u7684\u93e1\u50cf\u6a21\u5f0f\n \n \n \n mirror peer for pool \'\n \'\n \n \u6c60\u300c\n \u300d\u7684\u93e1\u50cf\u5c0d\u7b49\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n \n contains snapshots.\n \n \n \u5305\u542b\u5feb\u7167\u3002\n \n \n \n Cloning\n \u6b63\u5728\u514b\u9686\n \n \n clone\n \u514b\u9686\n \n \n Snapshot of \n must be protected.\n \n \u5fc5\u9808\u4fdd\u8b77 \n \u7684\u5feb\u7167\u3002\n \n \n \n Copying\n \u6b63\u5728\u8907\u88fd\n \n \n copy\n \u8907\u88fd\n \n \n Flattening\n \u6b63\u5728\u58d3\u5e73\n \n \n flatten\n \u58d3\u5e73\n \n \n Flattened\n \u5df2\u58d3\u5e73\n \n \n Name is already used by \n .\n \n \u540d\u7a31\u5df2\u88ab \n \u4f7f\u7528\u3002\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \u7121\u6cd5\u4fdd\u8b77 \n \uff0c\u56e0\u70ba\u5176\u5305\u542b\u5b50\u5f71\u50cf\u3002\n \n \n \n Cannot delete \n because it\'s protected.\n \n \u7121\u6cd5\u522a\u9664 \n \uff0c\u56e0\u70ba\u5176\u8655\u65bc\u4fdd\u8b77\u72c0\u614b\u3002\n \n \n \n Rolling back\n \u6b63\u5728\u5fa9\u539f\n \n \n rollback\n \u5fa9\u539f\n \n \n Rolled back\n \u5df2\u5fa9\u539f\n \n \n Moving\n \u6b63\u5728\u79fb\u52d5\n \n \n move\n \u79fb\u52d5\n \n \n Moved\n \u5df2\u79fb\u52d5\n \n \n image \'\n \' to trash\n \n \u5f71\u50cf\u300c\n \u300d\u5230\u5783\u573e\u6876\n \n \n \n Could not find image.\n \u627e\u4e0d\u5230\u5f71\u50cf\u3002\n \n \n Restoring\n \u6b63\u5728\u9084\u539f\n \n \n restore\n \u9084\u539f\n \n \n Restored\n \u5df2\u9084\u539f\n \n \n image \'\n \' into \'\n \'\n \n \u5f71\u50cf\u300c\n \u300d(\u5230\u300c\n \u300d)\n \n \n \n Image name \'\n \' is already in use.\n \n \u5f71\u50cf\u540d\u7a31\u300c\n \u300d\u5df2\u5728\u4f7f\u7528\u4e2d\u3002\n \n \n \n image \'\n \'\n \n \u5f71\u50cf\u300c\n \u300d\n \n \n \n Purging\n \u6b63\u5728\u6e05\u9664\n \n \n purge\n \u6e05\u9664\n \n \n Purged\n \u5df2\u6e05\u9664\n \n \n all pools\n \u6240\u6709\u6c60\n \n \n images from \n \n \n \u5f71\u50cf (\u5f9e \n )\n \n \n \n Cannot disable mirroring because it contains a peer.\n \u7121\u6cd5\u505c\u7528\u93e1\u50cf\uff0c\u56e0\u70ba\u5176\u5305\u542b\u5c0d\u7b49\u3002\n \n \n pool \'\n \'\n \n \u6c60\u300c\n \u300d\n \n \n \n erasure code profile \'\n \'\n \n \u7cfe\u522a\u78bc\u8a2d\u5b9a\u6a94\u300c\n \u300d\n \n \n \n target \'\n \'\n \n \u76ee\u6a19\u300c\n \u300d\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},Dzi0:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}()},"E+lV":function(t,e,n){!function(t){"use strict";var e={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"\u0434\u0430\u043d",dd:e.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:e.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},E2fk:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return"[INF]"===t?"info":"[WRN]"===t?"warn":"[ERR]"===t?"err":""},t}()},EEJc:function(t,e,n){"use strict";var a=n("CcnG"),r=n("ajRT");n.d(e,"b",function(){return i}),n.d(e,"c",function(){return s}),n.d(e,"a",function(){return u});var i=a["\u0275crt"]({encapsulation:0,styles:[[".modal-header[_ngcontent-%COMP%]{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:5px 5px 0 0} .modal-footer{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:0 0 5px 5px} .modal-body{max-height:70vh;overflow-y:auto;overflow-x:hidden}"]],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275eld"](3,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a},null,null)),(t()(),a["\u0275eld"](4,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\xd7"])),a["\u0275ncd"](null,1)],null,null)}function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-modal",[],null,null,null,s,i)),a["\u0275did"](1,49152,null,0,r.a,[],null,null)],null,null)}var u=a["\u0275ccf"]("cd-modal",r.a,o,{modalRef:"modalRef"},{hide:"hide"},[".modal-title",".modal-content"])},EOgW:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(t){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===t},meridiem:function(t,e,n){return t<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}()},ES0t:function(t,e,n){"use strict";n.d(e,"a",function(){return l});var a=n("CcnG"),r=n("OZfm"),i=n("Ip0R"),s=a["\u0275crt"]({encapsulation:0,styles:[".bs3.popover-top[_nghost-%COMP%] {\n margin-bottom: 10px;\n }\n .bs3.popover.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n margin-left: -2px;\n }\n .bs3.popover.top[_nghost-%COMP%] {\n margin-bottom: 10px;\n }\n .popover.bottom[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n margin-left: -4px;\n }\n .bs3.bs-popover-left[_nghost-%COMP%] {\n margin-right: .5rem;\n }\n .bs3.bs-popover-right[_nghost-%COMP%] .arrow[_ngcontent-%COMP%], .bs3.bs-popover-left[_nghost-%COMP%] .arrow[_ngcontent-%COMP%]{\n margin: .3rem 0;\n }"],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"h3",[["class","popover-title popover-header"]],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.component.title)})}function u(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","popover-arrow arrow"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,o)),a["\u0275did"](2,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](3,0,null,null,1,"div",[["class","popover-content popover-body"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],function(t,e){t(e,2,0,e.component.title)},null)}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"popover-container",[["role","tooltip"],["style","display:block;"]],[[8,"className",0],[2,"show",null],[2,"bs3",null]],null,null,u,s)),a["\u0275did"](1,49152,null,0,r.b,[r.a],null,null)],null,function(t,e){t(e,0,0,"popover in popover-"+a["\u0275nov"](e,1).placement+" bs-popover-"+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).containerClass,!a["\u0275nov"](e,1).isBs3,a["\u0275nov"](e,1).isBs3)})}var l=a["\u0275ccf"]("popover-container",r.b,c,{placement:"placement",title:"title"},{},["*"])},EgGo:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("Ip0R"),r=n("sne2"),i=function(){function t(t){this.base=t}return t.concatURLSegments=function(t){return t.reduce(a.Location.joinWithSlash)},t.buildURL=function(e){for(var n=[],a=1;a-1&&(c=l),s.parent=a[c],s.row.level=s.parent.row.level+1,s.parent.children.push(s)}var d=[];return a[0].flatten(function(){d=d.concat([this.row])},!0),d}return t};var r=function(){function t(t){void 0===t&&(t=null),t||(t={level:-1,treeStatus:"expanded"}),this.row=t,this.parent=null,this.children=[]}return t.prototype.flatten=function(t,e){if("expanded"===this.row.treeStatus)for(var n=0,a=this.children.length;n0&&this.table.fetchData.subscribe(function(){t.fetchData.emit()}),this.useData()},t.prototype.ngOnChanges=function(){this.useData()},t.prototype.useData=function(){var t=this;if(this.data){var e=this.makePairs(this.data);this.hideKeys&&(e=e.filter(function(e){return!t.hideKeys.includes(e.key)})),this.tableData=e}},t.prototype.makePairs=function(t){var e=this,n=[];if(t){if(r.isArray(t))n=this.makePairsFromArray(t);else{if(!r.isObject(t))throw new Error("Wrong data format");n=this.makePairsFromObject(t)}return n=n.map(function(t){return t.value=e.convertValue(t.value),t}).filter(function(t){return null!==t.value}),r.sortBy(this.renderObjects?this.insertFlattenObjects(n):n,"key")}},t.prototype.makePairsFromArray=function(t){var e=this,n=[],a=t[0];if(r.isArray(a)){if(2!==a.length)throw new Error("Array contains too many elements ("+a.length+"). Needs to be of type [string, any][]");n=t.map(function(t){return{key:t[0],value:t[1]}})}else r.isObject(a)&&(n=r.has(a,"key")&&r.has(a,"value")?t.slice():t.reduce(function(t,n){return t.concat(e.makePairsFromObject(n))},n));return n},t.prototype.makePairsFromObject=function(t){return Object.keys(t).map(function(e){return{key:e,value:t[e]}})},t.prototype.insertFlattenObjects=function(t){var e=this;return r.flattenDeep(t.map(function(t){var n=t.value,a=r.isObject(n);return!a||r.isEmpty(n)?(a&&(t.value=""),t):e.splitItemIntoItems(t)}))},t.prototype.splitItemIntoItems=function(t){var e=this;return this.makePairs(t.value).map(function(n){return e.appendParentKey&&(n.key=t.key+" "+n.key),n})},t.prototype.convertValue=function(t){if(r.isArray(t)){if(r.isEmpty(t)&&this.hideEmpty)return null;t=t.map(function(t){return r.isObject(t)?JSON.stringify(t):t}).join(", ")}else if(r.isObject(t)){if(this.hideEmpty&&r.isEmpty(t)||!this.renderObjects)return null}else if(r.isString(t)){if(""===t&&this.hideEmpty)return null;this.isDate(t)&&(t=this.datePipe.transform(t)||t)}return t},t.prototype.isDate=function(t){var e="\\d{2}[ -:.TZ]";return t.match(new RegExp("^\\d{4}[ -:.TZ]"+e+e+e+e+e+"\\d*Z?$"))},t}())},FYBg:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=(n("JZ5S"),n("QG5k")),i=n("TCh0");e.NodeMenuComponent=function(){function t(t,e){this.renderer=t,this.nodeMenuService=e,this.menuItemSelected=new a.EventEmitter,this.availableMenuItems=[{name:"New tag",action:r.NodeMenuItemAction.NewTag,cssClass:"new-tag"},{name:"New folder",action:r.NodeMenuItemAction.NewFolder,cssClass:"new-folder"},{name:"Rename",action:r.NodeMenuItemAction.Rename,cssClass:"rename"},{name:"Remove",action:r.NodeMenuItemAction.Remove,cssClass:"remove"}],this.disposersForGlobalListeners=[]}return t.prototype.ngOnInit=function(){this.availableMenuItems=this.menuItems||this.availableMenuItems,this.disposersForGlobalListeners.push(this.renderer.listen("document","keyup",this.closeMenu.bind(this))),this.disposersForGlobalListeners.push(this.renderer.listen("document","mousedown",this.closeMenu.bind(this)))},t.prototype.ngOnDestroy=function(){this.disposersForGlobalListeners.forEach(function(t){return t()})},t.prototype.onMenuItemSelected=function(t,e){i.isLeftButtonClicked(t)&&(this.menuItemSelected.emit({nodeMenuItemAction:e.action,nodeMenuItemSelected:e.name}),this.nodeMenuService.fireMenuEvent(t.target,r.NodeMenuAction.Close))},t.prototype.closeMenu=function(t){var e=t instanceof MouseEvent,n=this.menuContainer.nativeElement!==t.target&&this.menuContainer.nativeElement.contains(t.target);(e&&!n||i.isEscapePressed(t))&&this.nodeMenuService.fireMenuEvent(t.target,r.NodeMenuAction.Close)},t.decorators=[{type:a.Component,args:[{selector:"node-menu",template:'\n

\n
    \n
  • \n
    \n {{menuItem.name}}\n
  • \n
\n
\n '}]}],t.propDecorators={menuItemSelected:[{type:a.Output}],menuItems:[{type:a.Input}],menuContainer:[{type:a.ViewChild,args:["menuContainer"]}]},t}()},Fgil:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("aXbf");var a=function(){function t(t){this.formatter=t}return t.prototype.transform=function(t){return this.formatter.format_number(t,1024,["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"])},t}()},Fjl2:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DatatableGroupHeaderTemplateDirective=function(){return a([r.Directive({selector:"[ngx-datatable-group-header-template]"})],function(t){this.template=t})}()},Fxb1:function(t,e,n){"use strict";var a=n("+tJ4"),r=n("DKTb"),i=n("En8+"),s=n("xTla"),o=n("2ePl"),u=n("/WYv"),c=n("McSo");n.d(e,"a",function(){return l});var l=function(t){if(t&&"function"==typeof t[s.a])return l=t,function(t){var e=l[s.a]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)};if(Object(o.a)(t))return Object(a.a)(t);if(Object(u.a)(t))return n=t,function(t){return n.then(function(e){t.closed||(t.next(e),t.complete())},function(e){return t.error(e)}).then(null,r.a),t};if(t&&"function"==typeof t[i.a])return e=t,function(t){for(var n=e[i.a]();;){var a=n.next();if(a.done){t.complete();break}if(t.next(a.value),t.closed)break}return"function"==typeof n.return&&t.add(function(){n.return&&n.return()}),t};var e,n,l,d=Object(c.a)(t)?"an invalid object":"'"+t+"'";throw new TypeError("You provided "+d+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.")}},G0Q6:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),t.exports=function(t){function e(t,e){return i.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:r.Line,dataElementType:r.Point,update:function(t){var n,a,r,s=this,o=s.getMeta(),u=o.dataset,c=o.data||[],l=s.chart.options,d=l.elements.line,f=s.getScaleForId(o.yAxisID),p=s.getDataset(),h=e(p,l);for(h&&(r=u.custom||{},void 0!==p.tension&&void 0===p.lineTension&&(p.lineTension=p.tension),u._scale=f,u._datasetIndex=s.index,u._children=c,u._model={spanGaps:p.spanGaps?p.spanGaps:l.spanGaps,tension:r.tension?r.tension:i.valueOrDefault(p.lineTension,d.tension),backgroundColor:r.backgroundColor?r.backgroundColor:p.backgroundColor||d.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:p.borderWidth||d.borderWidth,borderColor:r.borderColor?r.borderColor:p.borderColor||d.borderColor,borderCapStyle:r.borderCapStyle?r.borderCapStyle:p.borderCapStyle||d.borderCapStyle,borderDash:r.borderDash?r.borderDash:p.borderDash||d.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:p.borderDashOffset||d.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:p.borderJoinStyle||d.borderJoinStyle,fill:r.fill?r.fill:void 0!==p.fill?p.fill:d.fill,steppedLine:r.steppedLine?r.steppedLine:i.valueOrDefault(p.steppedLine,d.stepped),cubicInterpolationMode:r.cubicInterpolationMode?r.cubicInterpolationMode:i.valueOrDefault(p.cubicInterpolationMode,d.cubicInterpolationMode)},u.pivot()),n=0,a=c.length;n=0;)e+=this.treeArray[t],t=(t&t+1)-1;return e},t.prototype.queryBetween=function(t,e){return this.query(e)-this.query(t-1)},t.prototype.calcRowIndex=function(t){if(!this.treeArray.length)return 0;for(var e=-1,n=this.treeArray.length,a=Math.pow(2,n.toString(2).length-1);0!==a;a>>=1){var r=e+a;r=this.treeArray[r]&&(t-=this.treeArray[r],e=r)}return e+1},t}()},GgAd:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){this.decimals=0,this.isBinary=!0}return t.prototype.ngOnChanges=function(){this.usedPercentage=this.total>0?this.used/this.total*100:0,this.freePercentage=100-this.usedPercentage},t}()},Gi3i:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("FFOo"),i=n("T1DM");function s(t,e){return void 0===e&&(e=i.a),function(n){return n.lift(new o(t,e))}}var o=function(){function t(t,e){this.dueTime=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.dueTime,this.scheduler))},t}(),u=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.dueTime=n,r.scheduler=a,r.debouncedSubscription=null,r.lastValue=null,r.hasValue=!1,r}return a.__extends(e,t),e.prototype._next=function(t){this.clearDebounce(),this.lastValue=t,this.hasValue=!0,this.add(this.debouncedSubscription=this.scheduler.schedule(c,this.dueTime,this))},e.prototype._complete=function(){this.debouncedNext(),this.destination.complete()},e.prototype.debouncedNext=function(){if(this.clearDebounce(),this.hasValue){var t=this.lastValue;this.lastValue=null,this.hasValue=!1,this.destination.next(t)}},e.prototype.clearDebounce=function(){var t=this.debouncedSubscription;null!==t&&(this.remove(t),t.unsubscribe(),this.debouncedSubscription=null)},e}(r.a);function c(t){t.debouncedNext()}},H8ED:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===n?e?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":t+" "+(a=+t,r={ss:e?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:e?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:e?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}n("wd/R").defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:e,mm:e,h:e,hh:e,d:"\u0434\u0437\u0435\u043d\u044c",dd:e,M:"\u043c\u0435\u0441\u044f\u0446",MM:e,y:"\u0433\u043e\u0434",yy:e},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(t)},meridiem:function(t,e,n){return t<4?"\u043d\u043e\u0447\u044b":t<12?"\u0440\u0430\u043d\u0456\u0446\u044b":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!=2&&t%10!=3||t%100==12||t%100==13?t+"-\u044b":t+"-\u0456";case"D":return t+"-\u0433\u0430";default:return t}},week:{dow:1,doy:7}})}()},"HHO+":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=(n("58b6"),n("58b6")),i=n("xZld"),s=n("lJMN"),o=(n("JZ5S"),n("QG5k")),u=n("1PfE"),c=(n("Tff5"),n("TCh0")),l=n("kQXf");e.TreeInternalComponent=function(){function t(t,e,n){this.nodeMenuService=t,this.treeService=e,this.nodeElementRef=n,this.isSelected=!1,this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1,this.isReadOnly=!1,this.subscriptions=[]}return t.prototype.ngAfterViewInit=function(){this.tree.checked&&!this.tree.firstCheckedFired&&(this.tree.firstCheckedFired=!0,this.treeService.fireNodeChecked(this.tree))},t.prototype.ngOnInit=function(){var t=this,e=l.get(this.tree,"node.id","");e&&(this.controller=new s.TreeController(this),this.treeService.setController(e,this.controller)),this.settings=this.settings||new r.Ng2TreeSettings,this.isReadOnly=!l.get(this.settings,"enableCheckboxes",!0),this.tree.isRoot()&&!1===this.settings.rootIsVisible&&this.tree.disableCollapseOnInit(),this.subscriptions.push(this.nodeMenuService.hideMenuStream(this.nodeElementRef).subscribe(function(){t.isRightMenuVisible=!1,t.isLeftMenuVisible=!1})),this.subscriptions.push(this.treeService.unselectStream(this.tree).subscribe(function(){return t.isSelected=!1})),this.subscriptions.push(this.treeService.draggedStream(this.tree,this.nodeElementRef).subscribe(function(e){t.tree.hasSibling(e.captured.tree)?t.swapWithSibling(e.captured.tree,t.tree):t.tree.isBranch()?t.moveNodeToThisTreeAndRemoveFromPreviousOne(e,t.tree):t.moveNodeToParentTreeAndRemoveFromPreviousOne(e,t.tree)})),this.subscriptions.push(this.treeService.nodeChecked$.merge(this.treeService.nodeUnchecked$).filter(function(e){return t.eventContainsId(e)&&t.tree.hasChild(e.node)}).subscribe(function(e){return t.updateCheckboxState()}))},t.prototype.ngOnChanges=function(t){this.controller=new s.TreeController(this)},t.prototype.ngOnDestroy=function(){l.get(this.tree,"node.id","")&&this.treeService.deleteController(this.tree.node.id),this.subscriptions.forEach(function(t){return t&&t.unsubscribe()})},t.prototype.swapWithSibling=function(t,e){e.swapWithSibling(t),this.treeService.fireNodeMoved(t,t.parent)},t.prototype.moveNodeToThisTreeAndRemoveFromPreviousOne=function(t,e){this.treeService.fireNodeRemoved(t.captured.tree);var n=e.addChild(t.captured.tree);this.treeService.fireNodeMoved(n,t.captured.tree.parent)},t.prototype.moveNodeToParentTreeAndRemoveFromPreviousOne=function(t,e){this.treeService.fireNodeRemoved(t.captured.tree);var n=e.addSibling(t.captured.tree,e.positionInParent);this.treeService.fireNodeMoved(n,t.captured.tree.parent)},t.prototype.onNodeSelected=function(t){this.tree.selectionAllowed&&c.isLeftButtonClicked(t)&&(this.isSelected=!0,this.treeService.fireNodeSelected(this.tree))},t.prototype.onNodeUnselected=function(t){this.tree.selectionAllowed&&c.isLeftButtonClicked(t)&&(this.isSelected=!1,this.treeService.fireNodeUnselected(this.tree))},t.prototype.showRightMenu=function(t){this.tree.hasRightMenu()&&(c.isRightButtonClicked(t)&&(this.isRightMenuVisible=!this.isRightMenuVisible,this.nodeMenuService.hideMenuForAllNodesExcept(this.nodeElementRef)),t.preventDefault())},t.prototype.showLeftMenu=function(t){this.tree.hasLeftMenu()&&c.isLeftButtonClicked(t)&&(this.isLeftMenuVisible=!this.isLeftMenuVisible,this.nodeMenuService.hideMenuForAllNodesExcept(this.nodeElementRef),this.isLeftMenuVisible&&t.preventDefault())},t.prototype.onMenuItemSelected=function(t){switch(t.nodeMenuItemAction){case o.NodeMenuItemAction.NewTag:case o.NodeMenuItemAction.NewFolder:this.onNewSelected(t);break;case o.NodeMenuItemAction.Rename:this.onRenameSelected();break;case o.NodeMenuItemAction.Remove:this.onRemoveSelected();break;case o.NodeMenuItemAction.Custom:this.onCustomSelected(),this.treeService.fireMenuItemSelected(this.tree,t.nodeMenuItemSelected);break;default:throw new Error("Chosen menu item doesn't exist")}},t.prototype.onNewSelected=function(t){this.tree.createNode(t.nodeMenuItemAction===o.NodeMenuItemAction.NewFolder),this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1},t.prototype.onRenameSelected=function(){this.tree.markAsBeingRenamed(),this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1},t.prototype.onRemoveSelected=function(){this.treeService.deleteController(l.get(this.tree,"node.id","")),this.treeService.fireNodeRemoved(this.tree)},t.prototype.onCustomSelected=function(){this.isRightMenuVisible=!1,this.isLeftMenuVisible=!1},t.prototype.onSwitchFoldingType=function(){this.tree.switchFoldingType(),this.treeService.fireNodeSwitchFoldingType(this.tree)},t.prototype.applyNewValue=function(t){if((t.action===u.NodeEditableEventAction.Cancel||this.tree.isNew())&&i.Tree.isValueEmpty(t.value))return this.treeService.fireNodeRemoved(this.tree);if(this.tree.isNew()&&(this.tree.value=t.value,this.treeService.fireNodeCreated(this.tree)),this.tree.isBeingRenamed()){var e=this.tree.value;this.tree.value=t.value,this.treeService.fireNodeRenamed(e,this.tree)}this.tree.markAsModified()},t.prototype.shouldShowInputForTreeValue=function(){return this.tree.isNew()||this.tree.isBeingRenamed()},t.prototype.isRootHidden=function(){return this.tree.isRoot()&&!this.settings.rootIsVisible},t.prototype.hasCustomMenu=function(){return this.tree.hasCustomMenu()},t.prototype.switchNodeCheckStatus=function(){this.tree.checked?this.onNodeUnchecked():this.onNodeChecked()},t.prototype.onNodeChecked=function(){this.checkboxElementRef&&(this.checkboxElementRef.nativeElement.indeterminate=!1,this.treeService.fireNodeChecked(this.tree),this.executeOnChildController(function(t){return t.check()}),this.tree.checked=!0)},t.prototype.onNodeUnchecked=function(){this.checkboxElementRef&&(this.checkboxElementRef.nativeElement.indeterminate=!1,this.treeService.fireNodeUnchecked(this.tree),this.executeOnChildController(function(t){return t.uncheck()}),this.tree.checked=!1)},t.prototype.executeOnChildController=function(t){var e=this;this.tree.hasLoadedChildern()&&this.tree.children.forEach(function(n){var a=e.treeService.getController(n.id);l.isNil(a)||t(a)})},t.prototype.updateCheckboxState=function(){var t=this;setTimeout(function(){var e=t.tree.checkedChildrenAmount();0===e?(t.checkboxElementRef.nativeElement.indeterminate=!1,t.tree.checked=!1,t.treeService.fireNodeUnchecked(t.tree)):e===t.tree.loadedChildrenAmount()?(t.checkboxElementRef.nativeElement.indeterminate=!1,t.tree.checked=!0,t.treeService.fireNodeChecked(t.tree)):(t.tree.checked=!1,t.checkboxElementRef.nativeElement.indeterminate=!0,t.treeService.fireNodeIndetermined(t.tree))})},t.prototype.eventContainsId=function(t){return!!t.node.id||(console.warn('"Node with checkbox" feature requires a unique id assigned to every node, please consider to add it.'),!1)},t.decorators=[{type:a.Component,args:[{selector:"tree-internal",template:'\n
    \n
  • \n
    \n\n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n
    \n\n \n\n
    \n
    \n \n \n
    \n\n \n \n\n \n \n\n
    \n \n
    \n \n \n \n
  • \n
\n '}]}],t.propDecorators={tree:[{type:a.Input}],settings:[{type:a.Input}],template:[{type:a.Input}],checkboxElementRef:[{type:a.ViewChild,args:["checkbox"]}]},t}()},HJBe:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t){return void 0===t&&(t=null),function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.defaultValue=t}return t.prototype.call=function(t,e){return e.subscribe(new o(t,this.defaultValue))},t}(),o=function(t){function e(e,n){var a=t.call(this,e)||this;return a.defaultValue=n,a.isEmpty=!0,a}return a.__extends(e,t),e.prototype._next=function(t){this.isEmpty=!1,this.destination.next(t)},e.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},e}(r.a)},HP3h:function(t,e,n){!function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},a={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},r=function(t){return function(e,r,i,s){var o=n(e),u=a[t][n(e)];return 2===o&&(u=u[r?0:1]),u.replace(/%d/i,e)}},i=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];t.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(n("wd/R"))},HV4d:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.id=function(){return("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)}},Hg4g:function(t,e){t.exports={acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}}},I2ZF:function(t,e){for(var n=[],a=0;a<256;++a)n[a]=(a+256).toString(16).substr(1);t.exports=function(t,e){var a=e||0;return[n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],"-",n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]],n[t[a++]]].join("")}},IBtZ:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(t){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(t)?t.replace(/\u10d8$/,"\u10e8\u10d8"):t+"\u10e8\u10d8"},past:function(t){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(t)?t.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(t)?t.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(t){return 0===t?t:1===t?t+"-\u10da\u10d8":t<20||t<=100&&t%20==0||t%100==0?"\u10db\u10d4-"+t:t+"-\u10d4"},week:{dow:1,doy:7}})}()},ILDN:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.double="double"}(e.ClickType||(e.ClickType={}))},IPm6:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("5tze"),o=(n("qwkt"),n("SfHT"));e.DataTableBodyComponent=function(){function t(t){var e=this;this.cd=t,this.selected=[],this.scroll=new i.EventEmitter,this.page=new i.EventEmitter,this.activate=new i.EventEmitter,this.select=new i.EventEmitter,this.detailToggle=new i.EventEmitter,this.rowContextmenu=new i.EventEmitter(!1),this.treeAction=new i.EventEmitter,this.rowHeightsCache=new s.RowHeightCache,this.temp=[],this.offsetY=0,this.indexes={},this.rowIndexes=new Map,this.rowExpansions=new Map,this.getDetailRowHeight=function(t,n){if(!e.rowDetail)return 0;var a=e.rowDetail.rowHeight;return"function"==typeof a?a(t,n):a},this.rowTrackingFn=(function(t,e){var n=this.getRowIndex(e);return this.trackByProp?n+"-"+this.trackByProp:n}).bind(this)}return Object.defineProperty(t.prototype,"pageSize",{get:function(){return this._pageSize},set:function(t){this._pageSize=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,this.rowExpansions.clear(),this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=s.columnsByPin(t);this.columnGroupWidths=s.columnGroupWidths(e,t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowCount},set:function(t){this._rowCount=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyHeight",{get:function(){return this._bodyHeight},set:function(t){this._bodyHeight=this.scrollbarV?t+"px":"auto",this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectEnabled",{get:function(){return!!this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollHeight",{get:function(){if(this.scrollbarV&&this.virtualization&&this.rowCount)return this.rowHeightsCache.query(this.rowCount-1)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.rowDetail&&(this.listener=this.rowDetail.toggle.subscribe(function(e){var n=e.type,a=e.value;"row"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()})),this.groupHeader&&(this.listener=this.groupHeader.toggle.subscribe(function(e){var n=e.type,a=e.value;"group"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()}))},t.prototype.ngOnDestroy=function(){this.rowDetail&&this.listener.unsubscribe(),this.groupHeader&&this.listener.unsubscribe()},t.prototype.updateOffsetY=function(t){this.scroller&&(this.scrollbarV&&this.virtualization&&t?t=this.rowHeightsCache.query(this.pageSize*t-1):this.scrollbarV&&!this.virtualization&&(t=0),this.scroller.setOffset(t||0))},t.prototype.onBodyScroll=function(t){var e=t.scrollYPos,n=t.scrollXPos;this.offsetY===e&&this.offsetX===n||this.scroll.emit({offsetY:e,offsetX:n}),this.offsetY=e,this.offsetX=n,this.updateIndexes(),this.updatePage(t.direction),this.updateRows()},t.prototype.updatePage=function(t){var e=this.indexes.first/this.pageSize;"up"===t?e=Math.ceil(e):"down"===t&&(e=Math.floor(e)),void 0===t||isNaN(e)||this.page.emit({offset:e})},t.prototype.updateRows=function(){var t=this.indexes,e=t.last,n=t.first,a=0,r=[];if(this.rowIndexes.clear(),this.groupedRows)for(;n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',changeDetection:i.ChangeDetectionStrategy.OnPush,host:{class:"datatable-body"}})],t)}()},IUTb:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("6blF"),r=n("+tJ4"),i=n("JF+6");function s(t,e){return e?Object(i.a)(t,e):new a.a(Object(r.a)(t))}},IZUe:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){function t(t){this.elementRef=t}return t.prototype.ngAfterViewInit=function(){var t=this.elementRef.nativeElement;a.isFunction(t.focus)&&t.focus()},t}()},Ip0R:function(t,e,n){"use strict";n.r(e),n.d(e,"\u0275angular_packages_common_common_e",function(){return Xt}),n.d(e,"\u0275angular_packages_common_common_d",function(){return B}),n.d(e,"\u0275angular_packages_common_common_a",function(){return Nt}),n.d(e,"\u0275angular_packages_common_common_b",function(){return Et}),n.d(e,"\u0275angular_packages_common_common_g",function(){return xe}),n.d(e,"\u0275angular_packages_common_common_f",function(){return Ve}),n.d(e,"\u0275registerLocaleData",function(){return b}),n.d(e,"registerLocaleData",function(){return b}),n.d(e,"formatDate",function(){return et}),n.d(e,"formatCurrency",function(){return St}),n.d(e,"formatNumber",function(){return It}),n.d(e,"formatPercent",function(){return Ot}),n.d(e,"NgLocaleLocalization",function(){return Dt}),n.d(e,"NgLocalization",function(){return Rt}),n.d(e,"Plural",function(){return v}),n.d(e,"NumberFormatStyle",function(){return y}),n.d(e,"FormStyle",function(){return _}),n.d(e,"TranslationWidth",function(){return x}),n.d(e,"FormatWidth",function(){return T}),n.d(e,"NumberSymbol",function(){return w}),n.d(e,"WeekDay",function(){return S}),n.d(e,"getNumberOfCurrencyDigits",function(){return K}),n.d(e,"getCurrencySymbol",function(){return U}),n.d(e,"getLocaleDayPeriods",function(){return I}),n.d(e,"getLocaleDayNames",function(){return C}),n.d(e,"getLocaleMonthNames",function(){return k}),n.d(e,"getLocaleId",function(){return O}),n.d(e,"getLocaleEraNames",function(){return N}),n.d(e,"getLocaleWeekEndRange",function(){return A}),n.d(e,"getLocaleFirstDayOfWeek",function(){return R}),n.d(e,"getLocaleDateFormat",function(){return D}),n.d(e,"getLocaleDateTimeFormat",function(){return L}),n.d(e,"getLocaleExtraDayPeriodRules",function(){return G}),n.d(e,"getLocaleExtraDayPeriods",function(){return Y}),n.d(e,"getLocalePluralCase",function(){return F}),n.d(e,"getLocaleTimeFormat",function(){return E}),n.d(e,"getLocaleNumberSymbol",function(){return P}),n.d(e,"getLocaleNumberFormat",function(){return M}),n.d(e,"getLocaleCurrencyName",function(){return j}),n.d(e,"getLocaleCurrencySymbol",function(){return q}),n.d(e,"\u0275parseCookieValue",function(){return Lt}),n.d(e,"CommonModule",function(){return He}),n.d(e,"DeprecatedI18NPipesModule",function(){return Be}),n.d(e,"NgClass",function(){return Pt}),n.d(e,"NgForOf",function(){return jt}),n.d(e,"NgForOfContext",function(){return qt}),n.d(e,"NgIf",function(){return zt}),n.d(e,"NgIfContext",function(){return Gt}),n.d(e,"NgPlural",function(){return Wt}),n.d(e,"NgPluralCase",function(){return Kt}),n.d(e,"NgStyle",function(){return $t}),n.d(e,"NgSwitch",function(){return Ht}),n.d(e,"NgSwitchCase",function(){return Bt}),n.d(e,"NgSwitchDefault",function(){return Ut}),n.d(e,"NgTemplateOutlet",function(){return Zt}),n.d(e,"NgComponentOutlet",function(){return Mt}),n.d(e,"DOCUMENT",function(){return Ue}),n.d(e,"AsyncPipe",function(){return Oe}),n.d(e,"DatePipe",function(){return Re}),n.d(e,"I18nPluralPipe",function(){return De}),n.d(e,"I18nSelectPipe",function(){return Ee}),n.d(e,"JsonPipe",function(){return Le}),n.d(e,"LowerCasePipe",function(){return Ie}),n.d(e,"CurrencyPipe",function(){return Fe}),n.d(e,"DecimalPipe",function(){return qe}),n.d(e,"PercentPipe",function(){return je}),n.d(e,"SlicePipe",function(){return Ye}),n.d(e,"UpperCasePipe",function(){return Ne}),n.d(e,"TitleCasePipe",function(){return ke}),n.d(e,"KeyValuePipe",function(){return Pe}),n.d(e,"DeprecatedDatePipe",function(){return ge}),n.d(e,"DeprecatedCurrencyPipe",function(){return _e}),n.d(e,"DeprecatedDecimalPipe",function(){return ye}),n.d(e,"DeprecatedPercentPipe",function(){return ve}),n.d(e,"\u0275PLATFORM_BROWSER_ID",function(){return We}),n.d(e,"\u0275PLATFORM_SERVER_ID",function(){return Ke}),n.d(e,"\u0275PLATFORM_WORKER_APP_ID",function(){return $e}),n.d(e,"\u0275PLATFORM_WORKER_UI_ID",function(){return Ze}),n.d(e,"isPlatformBrowser",function(){return Xe}),n.d(e,"isPlatformServer",function(){return Je}),n.d(e,"isPlatformWorkerApp",function(){return Qe}),n.d(e,"isPlatformWorkerUi",function(){return tn}),n.d(e,"VERSION",function(){return en}),n.d(e,"ViewportScroller",function(){return nn}),n.d(e,"\u0275NullViewportScroller",function(){return rn}),n.d(e,"PlatformLocation",function(){return i}),n.d(e,"LOCATION_INITIALIZED",function(){return s}),n.d(e,"LocationStrategy",function(){return o}),n.d(e,"APP_BASE_HREF",function(){return u}),n.d(e,"HashLocationStrategy",function(){return d}),n.d(e,"PathLocationStrategy",function(){return f}),n.d(e,"Location",function(){return c});var a=n("CcnG"),r=n("mrSG"),i=function(){return function(){}}(),s=new a.InjectionToken("Location Initialized"),o=function(){return function(){}}(),u=new a.InjectionToken("appBaseHref"),c=function(){function t(t){var n=this;this._subject=new a.EventEmitter,this._platformStrategy=t;var r=this._platformStrategy.getBaseHref();this._baseHref=e.stripTrailingSlash(l(r)),this._platformStrategy.onPopState(function(t){n._subject.emit({url:n.path(!0),pop:!0,state:t.state,type:t.type})})}var e;return e=t,t.prototype.path=function(t){return void 0===t&&(t=!1),this.normalize(this._platformStrategy.path(t))},t.prototype.isCurrentPathEqualTo=function(t,n){return void 0===n&&(n=""),this.path()==this.normalize(t+e.normalizeQueryParams(n))},t.prototype.normalize=function(t){return e.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,l(t)))},t.prototype.prepareExternalUrl=function(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)},t.prototype.go=function(t,e,n){void 0===e&&(e=""),void 0===n&&(n=null),this._platformStrategy.pushState(n,"",t,e)},t.prototype.replaceState=function(t,e,n){void 0===e&&(e=""),void 0===n&&(n=null),this._platformStrategy.replaceState(n,"",t,e)},t.prototype.forward=function(){this._platformStrategy.forward()},t.prototype.back=function(){this._platformStrategy.back()},t.prototype.subscribe=function(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})},t.normalizeQueryParams=function(t){return t&&"?"!==t[0]?"?"+t:t},t.joinWithSlash=function(t,e){if(0==t.length)return e;if(0==e.length)return t;var n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e},t.stripTrailingSlash=function(t){var e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)},t}();function l(t){return t.replace(/\/index.html$/,"")}var d=function(t){function e(e,n){var a=t.call(this)||this;return a._platformLocation=e,a._baseHref="",null!=n&&(a._baseHref=n),a}return Object(r.__extends)(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e},e.prototype.prepareExternalUrl=function(t){var e=c.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e},e.prototype.pushState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(t,e,r)},e.prototype.replaceState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,r)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(o),f=function(t){function e(e,n){var a=t.call(this)||this;if(a._platformLocation=e,null==n&&(n=a._platformLocation.getBaseHrefFromDOM()),null==n)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");return a._baseHref=n,a}return Object(r.__extends)(e,t),e.prototype.onPopState=function(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)},e.prototype.getBaseHref=function(){return this._baseHref},e.prototype.prepareExternalUrl=function(t){return c.joinWithSlash(this._baseHref,t)},e.prototype.path=function(t){void 0===t&&(t=!1);var e=this._platformLocation.pathname+c.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?""+e+n:e},e.prototype.pushState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));this._platformLocation.pushState(t,e,r)},e.prototype.replaceState=function(t,e,n,a){var r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));this._platformLocation.replaceState(t,e,r)},e.prototype.forward=function(){this._platformLocation.forward()},e.prototype.back=function(){this._platformLocation.back()},e}(o),p=void 0,h=["en",[["a","p"],["AM","PM"],p],[["AM","PM"],p,p],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],p,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],p,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",p,"{1} 'at' {0}",p],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"$","US Dollar",{},function(t){var e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}],g={};function b(t,e,n){"string"!=typeof e&&(n=e,e=t[0]),e=e.toLowerCase().replace(/_/g,"-"),g[e]=t,n&&(g[e][19]=n)}var m={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,0],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"\u09f3"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"\u0440.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN\xa5","\xa5"],COP:[void 0,"$",0],CRC:[void 0,"\u20a1",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"K\u010d",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E\xa3"],ESP:[void 0,"\u20a7",0],EUR:["\u20ac"],FJD:[void 0,"$"],FKP:[void 0,"\xa3"],GBP:["\xa3"],GEL:[void 0,"\u20be"],GIP:[void 0,"\xa3"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",0],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",0],ILS:["\u20aa"],INR:["\u20b9"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["\xa5",void 0,0],KHR:[void 0,"\u17db"],KMF:[void 0,"CF",0],KPW:[void 0,"\u20a9",0],KRW:["\u20a9",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"\u20b8"],LAK:[void 0,"\u20ad",0],LBP:[void 0,"L\xa3",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"\u20ae",0],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",0],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"\u20a6"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"\u20b1"],PKR:[void 0,"Rs",0],PLN:[void 0,"z\u0142"],PYG:[void 0,"\u20b2",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"\u20bd"],RUR:[void 0,"\u0440."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"\xa3"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"\xa3"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"\xa3",0],THB:[void 0,"\u0e3f"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"\u20ba"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,0],UAH:[void 0,"\u20b4"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UZS:[void 0,void 0,0],VEF:[void 0,"Bs"],VND:["\u20ab",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]},y=function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t}({}),v=function(t){return t[t.Zero=0]="Zero",t[t.One=1]="One",t[t.Two=2]="Two",t[t.Few=3]="Few",t[t.Many=4]="Many",t[t.Other=5]="Other",t}({}),_=function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t}({}),x=function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t}({}),T=function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t}({}),w=function(t){return t[t.Decimal=0]="Decimal",t[t.Group=1]="Group",t[t.List=2]="List",t[t.PercentSign=3]="PercentSign",t[t.PlusSign=4]="PlusSign",t[t.MinusSign=5]="MinusSign",t[t.Exponential=6]="Exponential",t[t.SuperscriptingExponent=7]="SuperscriptingExponent",t[t.PerMille=8]="PerMille",t[t[1/0]=9]="Infinity",t[t.NaN=10]="NaN",t[t.TimeSeparator=11]="TimeSeparator",t[t.CurrencyDecimal=12]="CurrencyDecimal",t[t.CurrencyGroup=13]="CurrencyGroup",t}({}),S=function(t){return t[t.Sunday=0]="Sunday",t[t.Monday=1]="Monday",t[t.Tuesday=2]="Tuesday",t[t.Wednesday=3]="Wednesday",t[t.Thursday=4]="Thursday",t[t.Friday=5]="Friday",t[t.Saturday=6]="Saturday",t}({});function O(t){return B(t)[0]}function I(t,e,n){var a=B(t),r=V([a[1],a[2]],e);return V(r,n)}function C(t,e,n){var a=B(t),r=V([a[3],a[4]],e);return V(r,n)}function k(t,e,n){var a=B(t),r=V([a[5],a[6]],e);return V(r,n)}function N(t,e){return V(B(t)[7],e)}function R(t){return B(t)[8]}function A(t){return B(t)[9]}function D(t,e){return V(B(t)[10],e)}function E(t,e){return V(B(t)[11],e)}function L(t,e){return V(B(t)[12],e)}function P(t,e){var n=B(t),a=n[13][e];if(void 0===a){if(e===w.CurrencyDecimal)return n[13][w.Decimal];if(e===w.CurrencyGroup)return n[13][w.Group]}return a}function M(t,e){return B(t)[14][e]}function q(t){return B(t)[15]||null}function j(t){return B(t)[16]||null}function F(t){return B(t)[18]}function z(t){if(!t[19])throw new Error('Missing extra locale data for the locale "'+t[0]+'". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.')}function G(t){var e=B(t);return z(e),(e[19][2]||[]).map(function(t){return"string"==typeof t?H(t):[H(t[0]),H(t[1])]})}function Y(t,e,n){var a=B(t);z(a);var r=V([a[19][0],a[19][1]],e)||[];return V(r,n)||[]}function V(t,e){for(var n=e;n>-1;n--)if(void 0!==t[n])return t[n];throw new Error("Locale data API: locale data undefined")}function H(t){var e=Object(r.__read)(t.split(":"),2);return{hours:+e[0],minutes:+e[1]}}function B(t){var e=t.toLowerCase().replace(/_/g,"-"),n=g[e];if(n)return n;var a=e.split("-")[0];if(n=g[a])return n;if("en"===a)return h;throw new Error('Missing locale data for the locale "'+t+'".')}function U(t,e,n){void 0===n&&(n="en");var a=function(t){return B(t)[17]}(n)[t]||m[t]||[],r=a[1];return"narrow"===e&&"string"==typeof r?r:a[0]||t}var W=2;function K(t){var e,n=m[t];return n&&(e=n[2]),"number"==typeof e?e:W}var $=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Z={},X=/((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/,J=function(t){return t[t.Short=0]="Short",t[t.ShortGMT=1]="ShortGMT",t[t.Long=2]="Long",t[t.Extended=3]="Extended",t}({}),Q=function(t){return t[t.FullYear=0]="FullYear",t[t.Month=1]="Month",t[t.Date=2]="Date",t[t.Hours=3]="Hours",t[t.Minutes=4]="Minutes",t[t.Seconds=5]="Seconds",t[t.FractionalSeconds=6]="FractionalSeconds",t[t.Day=7]="Day",t}({}),tt=function(t){return t[t.DayPeriods=0]="DayPeriods",t[t.Days=1]="Days",t[t.Months=2]="Months",t[t.Eras=3]="Eras",t}({});function et(t,e,n,a){var i=function(t){if(pt(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){t=t.trim();var e,n=parseFloat(t);if(!isNaN(t-n))return new Date(n);if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var a=Object(r.__read)(t.split("-").map(function(t){return+t}),3);return new Date(a[0],a[1]-1,a[2])}if(e=t.match($))return ft(e)}var i=new Date(t);if(!pt(i))throw new Error('Unable to convert "'+t+'" into a date');return i}(t);e=function t(e,n){var a=O(e);if(Z[a]=Z[a]||{},Z[a][n])return Z[a][n];var r="";switch(n){case"shortDate":r=D(e,T.Short);break;case"mediumDate":r=D(e,T.Medium);break;case"longDate":r=D(e,T.Long);break;case"fullDate":r=D(e,T.Full);break;case"shortTime":r=E(e,T.Short);break;case"mediumTime":r=E(e,T.Medium);break;case"longTime":r=E(e,T.Long);break;case"fullTime":r=E(e,T.Full);break;case"short":var i=t(e,"shortTime"),s=t(e,"shortDate");r=nt(L(e,T.Short),[i,s]);break;case"medium":var o=t(e,"mediumTime"),u=t(e,"mediumDate");r=nt(L(e,T.Medium),[o,u]);break;case"long":var c=t(e,"longTime"),l=t(e,"longDate");r=nt(L(e,T.Long),[c,l]);break;case"full":var d=t(e,"fullTime"),f=t(e,"fullDate");r=nt(L(e,T.Full),[d,f])}return r&&(Z[a][n]=r),r}(n,e)||e;for(var s,o=[];e;){if(!(s=X.exec(e))){o.push(e);break}var u=(o=o.concat(s.slice(1))).pop();if(!u)break;e=u}var c=i.getTimezoneOffset();a&&(c=dt(a,c),i=function(t,e,n){var a=t.getTimezoneOffset();return function(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t}(t,-1*(dt(e,a)-a))}(i,a));var l="";return o.forEach(function(t){var e=function(t){if(lt[t])return lt[t];var e;switch(t){case"G":case"GG":case"GGG":e=it(tt.Eras,x.Abbreviated);break;case"GGGG":e=it(tt.Eras,x.Wide);break;case"GGGGG":e=it(tt.Eras,x.Narrow);break;case"y":e=rt(Q.FullYear,1,0,!1,!0);break;case"yy":e=rt(Q.FullYear,2,0,!0,!0);break;case"yyy":e=rt(Q.FullYear,3,0,!1,!0);break;case"yyyy":e=rt(Q.FullYear,4,0,!1,!0);break;case"M":case"L":e=rt(Q.Month,1,1);break;case"MM":case"LL":e=rt(Q.Month,2,1);break;case"MMM":e=it(tt.Months,x.Abbreviated);break;case"MMMM":e=it(tt.Months,x.Wide);break;case"MMMMM":e=it(tt.Months,x.Narrow);break;case"LLL":e=it(tt.Months,x.Abbreviated,_.Standalone);break;case"LLLL":e=it(tt.Months,x.Wide,_.Standalone);break;case"LLLLL":e=it(tt.Months,x.Narrow,_.Standalone);break;case"w":e=ct(1);break;case"ww":e=ct(2);break;case"W":e=ct(1,!0);break;case"d":e=rt(Q.Date,1);break;case"dd":e=rt(Q.Date,2);break;case"E":case"EE":case"EEE":e=it(tt.Days,x.Abbreviated);break;case"EEEE":e=it(tt.Days,x.Wide);break;case"EEEEE":e=it(tt.Days,x.Narrow);break;case"EEEEEE":e=it(tt.Days,x.Short);break;case"a":case"aa":case"aaa":e=it(tt.DayPeriods,x.Abbreviated);break;case"aaaa":e=it(tt.DayPeriods,x.Wide);break;case"aaaaa":e=it(tt.DayPeriods,x.Narrow);break;case"b":case"bb":case"bbb":e=it(tt.DayPeriods,x.Abbreviated,_.Standalone,!0);break;case"bbbb":e=it(tt.DayPeriods,x.Wide,_.Standalone,!0);break;case"bbbbb":e=it(tt.DayPeriods,x.Narrow,_.Standalone,!0);break;case"B":case"BB":case"BBB":e=it(tt.DayPeriods,x.Abbreviated,_.Format,!0);break;case"BBBB":e=it(tt.DayPeriods,x.Wide,_.Format,!0);break;case"BBBBB":e=it(tt.DayPeriods,x.Narrow,_.Format,!0);break;case"h":e=rt(Q.Hours,1,-12);break;case"hh":e=rt(Q.Hours,2,-12);break;case"H":e=rt(Q.Hours,1);break;case"HH":e=rt(Q.Hours,2);break;case"m":e=rt(Q.Minutes,1);break;case"mm":e=rt(Q.Minutes,2);break;case"s":e=rt(Q.Seconds,1);break;case"ss":e=rt(Q.Seconds,2);break;case"S":e=rt(Q.FractionalSeconds,1);break;case"SS":e=rt(Q.FractionalSeconds,2);break;case"SSS":e=rt(Q.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=st(J.Short);break;case"ZZZZZ":e=st(J.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=st(J.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=st(J.Long);break;default:return null}return lt[t]=e,e}(t);l+=e?e(i,n,c):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function nt(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,function(t,n){return null!=e&&n in e?e[n]:t})),t}function at(t,e,n,a,r){void 0===n&&(n="-");var i="";(t<0||r&&t<=0)&&(r?t=1-t:(t=-t,i=n));for(var s=String(t);s.length0||u>-n)&&(u+=n),t===Q.Hours)0===u&&-12===n&&(u=12);else if(t===Q.FractionalSeconds)return o=e,at(u,3).substr(0,o);var c=P(s,w.MinusSign);return at(u,e,c,a,r)}}function it(t,e,n,a){return void 0===n&&(n=_.Format),void 0===a&&(a=!1),function(r,i){return function(t,e,n,a,r,i){switch(n){case tt.Months:return k(e,r,a)[t.getMonth()];case tt.Days:return C(e,r,a)[t.getDay()];case tt.DayPeriods:var s=t.getHours(),o=t.getMinutes();if(i){var u,c=G(e),l=Y(e,r,a);if(c.forEach(function(t,e){if(Array.isArray(t)){var n=t[0],a=t[1],r=a.hours;s>=n.hours&&o>=n.minutes&&(s0?Math.floor(r/60):Math.ceil(r/60);switch(t){case J.Short:return(r>=0?"+":"")+at(s,2,i)+at(Math.abs(r%60),2,i);case J.ShortGMT:return"GMT"+(r>=0?"+":"")+at(s,1,i);case J.Long:return"GMT"+(r>=0?"+":"")+at(s,2,i)+":"+at(Math.abs(r%60),2,i);case J.Extended:return 0===a?"Z":(r>=0?"+":"")+at(s,2,i)+":"+at(Math.abs(r%60),2,i);default:throw new Error('Unknown zone width "'+t+'"')}}}var ot=0,ut=4;function ct(t,e){return void 0===e&&(e=!1),function(n,a){var r,i,s,o;if(e){var u=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,c=n.getDate();r=1+Math.floor((c+u)/7)}else{var l=(s=n.getFullYear(),o=new Date(s,ot,1).getDay(),new Date(s,0,1+(o<=ut?ut:ut+7)-o)),d=(i=n,new Date(i.getFullYear(),i.getMonth(),i.getDate()+(ut-i.getDay()))).getTime()-l.getTime();r=1+Math.round(d/6048e5)}return at(r,t,P(a,w.MinusSign))}}var lt={};function dt(t,e){t=t.replace(/:/g,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function ft(t){var e=new Date(0),n=0,a=0,r=t[8]?e.setUTCFullYear:e.setFullYear,i=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),a=Number(t[9]+t[11])),r.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));var s=Number(t[4]||0)-n,o=Number(t[5]||0)-a,u=Number(t[6]||0),c=Math.round(1e3*parseFloat("0."+(t[7]||0)));return i.call(e,s,o,u,c),e}function pt(t){return t instanceof Date&&!isNaN(t.valueOf())}var ht=/^(\d+)?\.((\d+)(-(\d+))?)?$/,gt=22,bt=".",mt="0",yt=";",vt=",",_t="#",xt="\xa4",Tt="%";function wt(t,e,n,a,r,i,s){void 0===s&&(s=!1);var o="",u=!1;if(isFinite(t)){var c=function(e){var n,a,r,i,s,o=Math.abs(t)+"",u=0;for((a=o.indexOf(bt))>-1&&(o=o.replace(bt,"")),(r=o.search(/e/i))>0?(a<0&&(a=r),a+=+o.slice(r+1),o=o.substring(0,r)):a<0&&(a=o.length),r=0;o.charAt(r)===mt;r++);if(r===(s=o.length))n=[0],a=1;else{for(s--;o.charAt(s)===mt;)s--;for(a-=r,n=[],i=0;r<=s;r++,i++)n[i]=Number(o.charAt(r))}return a>gt&&(n=n.splice(0,gt-1),u=a-1,a=1),{digits:n,exponent:u,integerLen:a}}();s&&(c=function(t){if(0===t.digits[0])return t;var e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(c));var l=e.minInt,d=e.minFrac,f=e.maxFrac;if(i){var p=i.match(ht);if(null===p)throw new Error(i+" is not a valid digit info");var h=p[1],g=p[3],b=p[5];null!=h&&(l=kt(h)),null!=g&&(d=kt(g)),null!=b?f=kt(b):null!=g&&d>f&&(f=d)}!function(t,e,n){if(e>n)throw new Error("The minimum number of digits after fraction ("+e+") is higher than the maximum ("+n+").");var a=t.digits,r=a.length-t.integerLen,i=Math.min(Math.max(e,r),n),s=i+t.integerLen,o=a[s];if(s>0){a.splice(Math.max(t.integerLen,s));for(var u=s;u=5)if(s-1<0){for(var l=0;l>s;l--)a.unshift(0),t.integerLen++;a.unshift(1),t.integerLen++}else a[s-1]++;for(;r=f?a.pop():d=!1),e>=10?1:0},0);p&&(a.unshift(p),t.integerLen++)}(c,d,f);var m=c.digits,y=c.integerLen,v=c.exponent,_=[];for(u=m.every(function(t){return!t});y0?_=m.splice(y,m.length):(_=m,m=[0]);var x=[];for(m.length>=e.lgSize&&x.unshift(m.splice(-e.lgSize,m.length).join(""));m.length>e.gSize;)x.unshift(m.splice(-e.gSize,m.length).join(""));m.length&&x.unshift(m.join("")),o=x.join(P(n,a)),_.length&&(o+=P(n,r)+_.join("")),v&&(o+=P(n,w.Exponential)+"+"+v)}else o=P(n,w.Infinity);return t<0&&!u?e.negPre+o+e.negSuf:e.posPre+o+e.posSuf}function St(t,e,n,a,r){var i=Ct(M(e,y.Currency),P(e,w.MinusSign));return i.minFrac=K(a),i.maxFrac=i.minFrac,wt(t,i,e,w.CurrencyGroup,w.CurrencyDecimal,r).replace(xt,n).replace(xt,"")}function Ot(t,e,n){return wt(t,Ct(M(e,y.Percent),P(e,w.MinusSign)),e,w.Group,w.Decimal,n,!0).replace(new RegExp(Tt,"g"),P(e,w.PercentSign))}function It(t,e,n){return wt(t,Ct(M(e,y.Decimal),P(e,w.MinusSign)),e,w.Group,w.Decimal,n)}function Ct(t,e){void 0===e&&(e="-");var n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},a=t.split(yt),r=a[0],i=a[1],s=-1!==r.indexOf(bt)?r.split(bt):[r.substring(0,r.lastIndexOf(mt)+1),r.substring(r.lastIndexOf(mt)+1)],o=s[0],u=s[1]||"";n.posPre=o.substr(0,o.indexOf(_t));for(var c=0;c-1)return r;if(r=n.getPluralCategory(t,a),e.indexOf(r)>-1)return r;if(e.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+t+'"')}var Dt=function(t){function e(e,n){var a=t.call(this)||this;return a.locale=e,a.deprecatedPluralFn=n,a}return Object(r.__extends)(e,t),e.prototype.getPluralCategory=function(t,e){switch(this.deprecatedPluralFn?this.deprecatedPluralFn(e||this.locale,t):F(e||this.locale)(t)){case v.Zero:return"zero";case v.One:return"one";case v.Two:return"two";case v.Few:return"few";case v.Many:return"many";default:return"other"}},e}(Rt);function Et(t,e){"string"==typeof e&&(e=parseInt(e,10));var n=e,a=n.toString().replace(/^[^.]*\.?/,""),r=Math.floor(Math.abs(n)),i=a.length,s=parseInt(a,10),o=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(t.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?v.One:v.Other;case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?v.One:v.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===r||1===n?v.One:v.Other;case"ar":return 0===n?v.Zero:1===n?v.One:2===n?v.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?v.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?v.Many:v.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===r&&0===i?v.One:v.Other;case"be":return n%10==1&&n%100!=11?v.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?v.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?v.Many:v.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?v.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?v.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?v.Few:0!==n&&n%1e6==0?v.Many:v.Other;case"bs":case"hr":case"sr":return 0===i&&r%10==1&&r%100!=11||s%10==1&&s%100!=11?v.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)||s%10===Math.floor(s%10)&&s%10>=2&&s%10<=4&&!(s%100>=12&&s%100<=14)?v.Few:v.Other;case"cs":case"sk":return 1===r&&0===i?v.One:r===Math.floor(r)&&r>=2&&r<=4&&0===i?v.Few:0!==i?v.Many:v.Other;case"cy":return 0===n?v.Zero:1===n?v.One:2===n?v.Two:3===n?v.Few:6===n?v.Many:v.Other;case"da":return 1===n||0!==o&&(0===r||1===r)?v.One:v.Other;case"dsb":case"hsb":return 0===i&&r%100==1||s%100==1?v.One:0===i&&r%100==2||s%100==2?v.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||s%100===Math.floor(s%100)&&s%100>=3&&s%100<=4?v.Few:v.Other;case"ff":case"fr":case"hy":case"kab":return 0===r||1===r?v.One:v.Other;case"fil":return 0===i&&(1===r||2===r||3===r)||0===i&&r%10!=4&&r%10!=6&&r%10!=9||0!==i&&s%10!=4&&s%10!=6&&s%10!=9?v.One:v.Other;case"ga":return 1===n?v.One:2===n?v.Two:n===Math.floor(n)&&n>=3&&n<=6?v.Few:n===Math.floor(n)&&n>=7&&n<=10?v.Many:v.Other;case"gd":return 1===n||11===n?v.One:2===n||12===n?v.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?v.Few:v.Other;case"gv":return 0===i&&r%10==1?v.One:0===i&&r%10==2?v.Two:0!==i||r%100!=0&&r%100!=20&&r%100!=40&&r%100!=60&&r%100!=80?0!==i?v.Many:v.Other:v.Few;case"he":return 1===r&&0===i?v.One:2===r&&0===i?v.Two:0!==i||n>=0&&n<=10||n%10!=0?v.Other:v.Many;case"is":return 0===o&&r%10==1&&r%100!=11||0!==o?v.One:v.Other;case"ksh":return 0===n?v.Zero:1===n?v.One:v.Other;case"kw":case"naq":case"se":case"smn":return 1===n?v.One:2===n?v.Two:v.Other;case"lag":return 0===n?v.Zero:0!==r&&1!==r||0===n?v.Other:v.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?v.Few:0!==s?v.Many:v.Other:v.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===i&&s%100===Math.floor(s%100)&&s%100>=11&&s%100<=19?v.Zero:n%10==1&&n%100!=11||2===i&&s%10==1&&s%100!=11||2!==i&&s%10==1?v.One:v.Other;case"mk":return 0===i&&r%10==1||s%10==1?v.One:v.Other;case"mt":return 1===n?v.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?v.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?v.Many:v.Other;case"pl":return 1===r&&0===i?v.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?v.Few:0===i&&1!==r&&r%10===Math.floor(r%10)&&r%10>=0&&r%10<=1||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=12&&r%100<=14?v.Many:v.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?v.One:v.Other;case"ro":return 1===r&&0===i?v.One:0!==i||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?v.Few:v.Other;case"ru":case"uk":return 0===i&&r%10==1&&r%100!=11?v.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?v.Few:0===i&&r%10==0||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=11&&r%100<=14?v.Many:v.Other;case"shi":return 0===r||1===n?v.One:n===Math.floor(n)&&n>=2&&n<=10?v.Few:v.Other;case"si":return 0===n||1===n||0===r&&1===s?v.One:v.Other;case"sl":return 0===i&&r%100==1?v.One:0===i&&r%100==2?v.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||0!==i?v.Few:v.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?v.One:v.Other;default:return v.Other}}function Lt(t,e){var n,a;e=encodeURIComponent(e);try{for(var i=Object(r.__values)(t.split(";")),s=i.next();!s.done;s=i.next()){var o=s.value,u=o.indexOf("="),c=Object(r.__read)(-1==u?[o,""]:[o.slice(0,u),o.slice(u+1)],2),l=c[1];if(c[0].trim()===e)return decodeURIComponent(l)}}catch(d){n={error:d}}finally{try{s&&!s.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}return null}var Pt=function(){function t(t,e,n,a){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=a,this._initialClasses=[]}return Object.defineProperty(t.prototype,"klass",{set:function(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClass",{set:function(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(Object(a["\u0275isListLikeIterable"])(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._iterableDiffer){var t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){var e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}},t.prototype._applyKeyValueChanges=function(t){var e=this;t.forEachAddedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachChangedItem(function(t){return e._toggleClass(t.key,t.currentValue)}),t.forEachRemovedItem(function(t){t.previousValue&&e._toggleClass(t.key,!1)})},t.prototype._applyIterableChanges=function(t){var e=this;t.forEachAddedItem(function(t){if("string"!=typeof t.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+Object(a["\u0275stringify"])(t.item));e._toggleClass(t.item,!0)}),t.forEachRemovedItem(function(t){return e._toggleClass(t.item,!1)})},t.prototype._applyClasses=function(t){var e=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return e._toggleClass(t,!0)}):Object.keys(t).forEach(function(n){return e._toggleClass(n,!!t[n])}))},t.prototype._removeClasses=function(t){var e=this;t&&(Array.isArray(t)||t instanceof Set?t.forEach(function(t){return e._toggleClass(t,!1)}):Object.keys(t).forEach(function(t){return e._toggleClass(t,!1)}))},t.prototype._toggleClass=function(t,e){var n=this;(t=t.trim())&&t.split(/\s+/g).forEach(function(t){e?n._renderer.addClass(n._ngEl.nativeElement,t):n._renderer.removeClass(n._ngEl.nativeElement,t)})},t}(),Mt=function(){function t(t){this._viewContainerRef=t,this._componentRef=null,this._moduleRef=null}return t.prototype.ngOnChanges=function(t){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){var e=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(t.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){var n=e.get(a.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(n.injector)}else this._moduleRef=null;var r=(this._moduleRef?this._moduleRef.componentFactoryResolver:e.get(a.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(r,this._viewContainerRef.length,e,this.ngComponentOutletContent)}},t.prototype.ngOnDestroy=function(){this._moduleRef&&this._moduleRef.destroy()},t}(),qt=function(){function t(t,e,n,a){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=a}return Object.defineProperty(t.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"even",{get:function(){return this.index%2==0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),t}(),jt=function(){function t(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOfDirty=!0,this._differ=null}return Object.defineProperty(t.prototype,"ngForOf",{set:function(t){this._ngForOf=t,this._ngForOfDirty=!0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(t){Object(a.isDevMode)()&&null!=t&&"function"!=typeof t&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(t)+". See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngForTemplate",{set:function(t){t&&(this._template=t)},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){if(this._ngForOfDirty){this._ngForOfDirty=!1;var t=this._ngForOf;if(!this._differ&&t)try{this._differ=this._differs.find(t).create(this.ngForTrackBy)}catch(a){throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+((e=t).name||typeof e)+"'. NgFor only supports binding to Iterables such as Arrays.")}}var e;if(this._differ){var n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}},t.prototype._applyChanges=function(t){var e=this,n=[];t.forEachOperation(function(t,a,r){if(null==t.previousIndex){var i=e._viewContainer.createEmbeddedView(e._template,new qt(null,e._ngForOf,-1,-1),r),s=new Ft(t,i);n.push(s)}else null==r?e._viewContainer.remove(a):(i=e._viewContainer.get(a),e._viewContainer.move(i,r),s=new Ft(t,i),n.push(s))});for(var a=0;a1?"short":"narrow":"long",n}function de(t){return t.reduce(function(t,e){return Object(r.__assign)({},t,e)},{})}function fe(t){return function(e,n){return se(e,n,t)}}var pe=new Map,he=function(){function t(){}return t.format=function(t,e,n){return function(t,e,n){var a=ee[t];if(a)return a(e,n);var r=t,i=pe.get(r);if(!i){i=[];var s=void 0;te.exec(t);for(var o=t;o;)(s=te.exec(o))?o=(i=i.concat(s.slice(1))).pop():(i.push(o),o=null);pe.set(r,i)}return i.reduce(function(t,a){var r=ne[a];return t+(r?r(e,n):function(t){return"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}(a))},"")}(n,t,e)},t}(),ge=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n){if(void 0===n&&(n="mediumDate"),null==t||""===t||t!=t)return null;var a;if("string"==typeof t&&(t=t.trim()),be(t))a=t;else if(isNaN(t-parseFloat(t)))if("string"==typeof t&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){var i=Object(r.__read)(t.split("-").map(function(t){return parseInt(t,10)}),3);a=new Date(i[0],i[1]-1,i[2])}else a=new Date(t);else a=new Date(parseFloat(t));if(!be(a)){var s=void 0;if("string"!=typeof t||!(s=t.match($)))throw Jt(e,t);a=ft(s)}return he.format(a,this._locale,e._ALIASES[n]||n)},t._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},t}();function be(t){return t instanceof Date&&!isNaN(t.valueOf())}function me(t,e,n,a,r,i,s){if(void 0===i&&(i=null),void 0===s&&(s=!1),null==n)return null;if("number"!=typeof(n="string"!=typeof n||isNaN(+n-parseFloat(n))?n:+n))throw Jt(t,n);var o,u,c;if(a!==y.Currency&&(o=1,u=0,c=3),r){var l=r.match(ht);if(null===l)throw new Error(r+" is not a valid digit info for number pipes");null!=l[1]&&(o=kt(l[1])),null!=l[3]&&(u=kt(l[3])),null!=l[5]&&(c=kt(l[5]))}return Qt.format(n,e,a,{minimumIntegerDigits:o,minimumFractionDigits:u,maximumFractionDigits:c,currency:i,currencyAsSymbol:s})}var ye=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n){return me(e,this._locale,t,y.Decimal,n)},t}(),ve=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n){return me(e,this._locale,t,y.Percent,n)},t}(),_e=function(){function t(t){this._locale=t}var e;return e=t,t.prototype.transform=function(t,n,a,r){return void 0===n&&(n="USD"),void 0===a&&(a=!1),me(e,this._locale,t,y.Currency,r,n,a)},t}(),xe=[ye,ve,_e,ge],Te=function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.subscribe({next:e,error:function(t){throw t}})},t.prototype.dispose=function(t){t.unsubscribe()},t.prototype.onDestroy=function(t){t.unsubscribe()},t}(),we=new(function(){function t(){}return t.prototype.createSubscription=function(t,e){return t.then(e,function(t){throw t})},t.prototype.dispose=function(t){},t.prototype.onDestroy=function(t){},t}()),Se=new Te,Oe=function(){function t(t){this._ref=t,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}var e;return e=t,t.prototype.ngOnDestroy=function(){this._subscription&&this._dispose()},t.prototype.transform=function(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,a.WrappedValue.wrap(this._latestValue)):(t&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue)},t.prototype._subscribe=function(t){var e=this;this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,function(n){return e._updateLatestValue(t,n)})},t.prototype._selectStrategy=function(t){if(Object(a["\u0275isPromise"])(t))return we;if(Object(a["\u0275isObservable"])(t))return Se;throw Jt(e,t)},t.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},t.prototype._updateLatestValue=function(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())},t}(),Ie=function(){function t(){}var e;return e=t,t.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw Jt(e,t);return t.toLowerCase()},t}(),Ce=/(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])\S*/g,ke=function(){function t(){}var e;return e=t,t.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw Jt(e,t);return t.replace(Ce,function(t){return t[0].toUpperCase()+t.substr(1).toLowerCase()})},t}(),Ne=function(){function t(){}var e;return e=t,t.prototype.transform=function(t){if(!t)return t;if("string"!=typeof t)throw Jt(e,t);return t.toUpperCase()},t}(),Re=function(){function t(t){this.locale=t}var e;return e=t,t.prototype.transform=function(t,n,a,r){if(void 0===n&&(n="mediumDate"),null==t||""===t||t!=t)return null;try{return et(t,n,r||this.locale,a)}catch(i){throw Jt(e,i.message)}},t}(),Ae=/#/g,De=function(){function t(t){this._localization=t}var e;return e=t,t.prototype.transform=function(t,n,a){if(null==t)return"";if("object"!=typeof n||null===n)throw Jt(e,n);return n[At(t,Object.keys(n),this._localization,a)].replace(Ae,t.toString())},t}(),Ee=function(){function t(){}var e;return e=t,t.prototype.transform=function(t,n){if(null==t)return"";if("object"!=typeof n||"string"!=typeof t)throw Jt(e,n);return n.hasOwnProperty(t)?n[t]:n.hasOwnProperty("other")?n.other:""},t}(),Le=function(){function t(){}return t.prototype.transform=function(t){return JSON.stringify(t,null,2)},t}(),Pe=function(){function t(t){this.differs=t,this.keyValues=[]}return t.prototype.transform=function(t,e){var n=this;if(void 0===e&&(e=Me),!t||!(t instanceof Map)&&"object"!=typeof t)return null;this.differ||(this.differ=this.differs.find(t).create());var a=this.differ.diff(t);return a&&(this.keyValues=[],a.forEachItem(function(t){n.keyValues.push({key:t.key,value:t.currentValue})}),this.keyValues.sort(e)),this.keyValues},t}();function Me(t,e){var n=t.key,a=e.key;if(n===a)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(null===n)return 1;if(null===a)return-1;if("string"==typeof n&&"string"==typeof a)return nn.length-1&&(a=n.length-1);for(var r=a,i=0,s=0;i0&&(i++,"\n"!==n[--a]||++s!==e););for(i=0,s=0;i]"+t.after+'")':""},t.prototype.toString=function(){var t=this.span.details?", "+this.span.details:"";return""+this.msg+this.contextualMessage()+": "+this.span.start+t},t}(),I=function(t){function e(e,n){return t.call(this,e,n)||this}return Object(a.__extends)(e,t),e}(O);function C(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}var k=new(function(){return function(t,e){this.start=t,this.end=e}}())("{{","}}"),N=0,R=9,A=10,D=11,E=12,L=13,P=32,M=34,q=36,j=39,F=43,z=45,G=47,Y=59,V=61,H=62,B=48,U=57,W=65,K=70,$=90,Z=95,X=97,J=102,Q=110,tt=114,et=116,nt=118,at=122,rt=123,it=160;function st(t){return t>=R&&t<=P||t===it}function ot(t){return B<=t&&t<=U}function ut(t){return t>=X&&t<=at||t>=W&&t<=$}var ct=function(){var t={RAW_TEXT:0,ESCAPABLE_RAW_TEXT:1,PARSABLE_DATA:2};return t[t.RAW_TEXT]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA]="PARSABLE_DATA",t}();function lt(t){if(":"!==t[0])return[null,t];var e=t.indexOf(":",1);if(-1===e)throw new Error('Unsupported format "'+t+'" expecting ":namespace:name"');return[t.slice(1,e),t.slice(e+1)]}function dt(t){return null===t?null:lt(t)[0]}function ft(t,e){return t?":"+t+":"+e:e}var pt={Aacute:"\xc1",aacute:"\xe1",Acirc:"\xc2",acirc:"\xe2",acute:"\xb4",AElig:"\xc6",aelig:"\xe6",Agrave:"\xc0",agrave:"\xe0",alefsym:"\u2135",Alpha:"\u0391",alpha:"\u03b1",amp:"&",and:"\u2227",ang:"\u2220",apos:"'",Aring:"\xc5",aring:"\xe5",asymp:"\u2248",Atilde:"\xc3",atilde:"\xe3",Auml:"\xc4",auml:"\xe4",bdquo:"\u201e",Beta:"\u0392",beta:"\u03b2",brvbar:"\xa6",bull:"\u2022",cap:"\u2229",Ccedil:"\xc7",ccedil:"\xe7",cedil:"\xb8",cent:"\xa2",Chi:"\u03a7",chi:"\u03c7",circ:"\u02c6",clubs:"\u2663",cong:"\u2245",copy:"\xa9",crarr:"\u21b5",cup:"\u222a",curren:"\xa4",dagger:"\u2020",Dagger:"\u2021",darr:"\u2193",dArr:"\u21d3",deg:"\xb0",Delta:"\u0394",delta:"\u03b4",diams:"\u2666",divide:"\xf7",Eacute:"\xc9",eacute:"\xe9",Ecirc:"\xca",ecirc:"\xea",Egrave:"\xc8",egrave:"\xe8",empty:"\u2205",emsp:"\u2003",ensp:"\u2002",Epsilon:"\u0395",epsilon:"\u03b5",equiv:"\u2261",Eta:"\u0397",eta:"\u03b7",ETH:"\xd0",eth:"\xf0",Euml:"\xcb",euml:"\xeb",euro:"\u20ac",exist:"\u2203",fnof:"\u0192",forall:"\u2200",frac12:"\xbd",frac14:"\xbc",frac34:"\xbe",frasl:"\u2044",Gamma:"\u0393",gamma:"\u03b3",ge:"\u2265",gt:">",harr:"\u2194",hArr:"\u21d4",hearts:"\u2665",hellip:"\u2026",Iacute:"\xcd",iacute:"\xed",Icirc:"\xce",icirc:"\xee",iexcl:"\xa1",Igrave:"\xcc",igrave:"\xec",image:"\u2111",infin:"\u221e",int:"\u222b",Iota:"\u0399",iota:"\u03b9",iquest:"\xbf",isin:"\u2208",Iuml:"\xcf",iuml:"\xef",Kappa:"\u039a",kappa:"\u03ba",Lambda:"\u039b",lambda:"\u03bb",lang:"\u27e8",laquo:"\xab",larr:"\u2190",lArr:"\u21d0",lceil:"\u2308",ldquo:"\u201c",le:"\u2264",lfloor:"\u230a",lowast:"\u2217",loz:"\u25ca",lrm:"\u200e",lsaquo:"\u2039",lsquo:"\u2018",lt:"<",macr:"\xaf",mdash:"\u2014",micro:"\xb5",middot:"\xb7",minus:"\u2212",Mu:"\u039c",mu:"\u03bc",nabla:"\u2207",nbsp:"\xa0",ndash:"\u2013",ne:"\u2260",ni:"\u220b",not:"\xac",notin:"\u2209",nsub:"\u2284",Ntilde:"\xd1",ntilde:"\xf1",Nu:"\u039d",nu:"\u03bd",Oacute:"\xd3",oacute:"\xf3",Ocirc:"\xd4",ocirc:"\xf4",OElig:"\u0152",oelig:"\u0153",Ograve:"\xd2",ograve:"\xf2",oline:"\u203e",Omega:"\u03a9",omega:"\u03c9",Omicron:"\u039f",omicron:"\u03bf",oplus:"\u2295",or:"\u2228",ordf:"\xaa",ordm:"\xba",Oslash:"\xd8",oslash:"\xf8",Otilde:"\xd5",otilde:"\xf5",otimes:"\u2297",Ouml:"\xd6",ouml:"\xf6",para:"\xb6",permil:"\u2030",perp:"\u22a5",Phi:"\u03a6",phi:"\u03c6",Pi:"\u03a0",pi:"\u03c0",piv:"\u03d6",plusmn:"\xb1",pound:"\xa3",prime:"\u2032",Prime:"\u2033",prod:"\u220f",prop:"\u221d",Psi:"\u03a8",psi:"\u03c8",quot:'"',radic:"\u221a",rang:"\u27e9",raquo:"\xbb",rarr:"\u2192",rArr:"\u21d2",rceil:"\u2309",rdquo:"\u201d",real:"\u211c",reg:"\xae",rfloor:"\u230b",Rho:"\u03a1",rho:"\u03c1",rlm:"\u200f",rsaquo:"\u203a",rsquo:"\u2019",sbquo:"\u201a",Scaron:"\u0160",scaron:"\u0161",sdot:"\u22c5",sect:"\xa7",shy:"\xad",Sigma:"\u03a3",sigma:"\u03c3",sigmaf:"\u03c2",sim:"\u223c",spades:"\u2660",sub:"\u2282",sube:"\u2286",sum:"\u2211",sup:"\u2283",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",supe:"\u2287",szlig:"\xdf",Tau:"\u03a4",tau:"\u03c4",there4:"\u2234",Theta:"\u0398",theta:"\u03b8",thetasym:"\u03d1",thinsp:"\u2009",THORN:"\xde",thorn:"\xfe",tilde:"\u02dc",times:"\xd7",trade:"\u2122",Uacute:"\xda",uacute:"\xfa",uarr:"\u2191",uArr:"\u21d1",Ucirc:"\xdb",ucirc:"\xfb",Ugrave:"\xd9",ugrave:"\xf9",uml:"\xa8",upsih:"\u03d2",Upsilon:"\u03a5",upsilon:"\u03c5",Uuml:"\xdc",uuml:"\xfc",weierp:"\u2118",Xi:"\u039e",xi:"\u03be",Yacute:"\xdd",yacute:"\xfd",yen:"\xa5",yuml:"\xff",Yuml:"\u0178",Zeta:"\u0396",zeta:"\u03b6",zwj:"\u200d",zwnj:"\u200c",ngsp:"\ue500"},ht=function(){var t={TAG_OPEN_START:0,TAG_OPEN_END:1,TAG_OPEN_END_VOID:2,TAG_CLOSE:3,TEXT:4,ESCAPABLE_RAW_TEXT:5,RAW_TEXT:6,COMMENT_START:7,COMMENT_END:8,CDATA_START:9,CDATA_END:10,ATTR_NAME:11,ATTR_VALUE:12,DOC_TYPE:13,EXPANSION_FORM_START:14,EXPANSION_CASE_VALUE:15,EXPANSION_CASE_EXP_START:16,EXPANSION_CASE_EXP_END:17,EXPANSION_FORM_END:18,EOF:19};return t[t.TAG_OPEN_START]="TAG_OPEN_START",t[t.TAG_OPEN_END]="TAG_OPEN_END",t[t.TAG_OPEN_END_VOID]="TAG_OPEN_END_VOID",t[t.TAG_CLOSE]="TAG_CLOSE",t[t.TEXT]="TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.RAW_TEXT]="RAW_TEXT",t[t.COMMENT_START]="COMMENT_START",t[t.COMMENT_END]="COMMENT_END",t[t.CDATA_START]="CDATA_START",t[t.CDATA_END]="CDATA_END",t[t.ATTR_NAME]="ATTR_NAME",t[t.ATTR_VALUE]="ATTR_VALUE",t[t.DOC_TYPE]="DOC_TYPE",t[t.EXPANSION_FORM_START]="EXPANSION_FORM_START",t[t.EXPANSION_CASE_VALUE]="EXPANSION_CASE_VALUE",t[t.EXPANSION_CASE_EXP_START]="EXPANSION_CASE_EXP_START",t[t.EXPANSION_CASE_EXP_END]="EXPANSION_CASE_EXP_END",t[t.EXPANSION_FORM_END]="EXPANSION_FORM_END",t[t.EOF]="EOF",t}(),gt=function(){return function(t,e,n){this.type=t,this.parts=e,this.sourceSpan=n}}(),bt=function(t){function e(e,n,a){var r=t.call(this,a,e)||this;return r.tokenType=n,r}return Object(a.__extends)(e,t),e}(O),mt=function(){return function(t,e){this.tokens=t,this.errors=e}}(),yt=/\r\n?/g;function vt(t){return'Unexpected character "'+(t===N?"EOF":String.fromCharCode(t))+'"'}function _t(t){return'Unknown entity "'+t+'" - use the "&#;" or "&#x;" syntax'}var xt=function(){return function(t){this.error=t}}(),Tt=function(){function t(t,e,n,a){void 0===a&&(a=k),this._file=t,this._getTagDefinition=e,this._tokenizeIcu=n,this._interpolationConfig=a,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=t.content,this._length=t.content.length,this._advance()}return t.prototype._processCarriageReturns=function(t){return t.replace(yt,"\n")},t.prototype.tokenize=function(){for(;this._peek!==N;){var t=this._getLocation();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(t):this._attemptCharCode(z)?this._consumeComment(t):this._consumeDocType(t):this._attemptCharCode(G)?this._consumeTagClose(t):this._consumeTagOpen(t):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(e){if(!(e instanceof xt))throw e;this.errors.push(e.error)}}return this._beginToken(ht.EOF),this._endToken([]),new mt(function(t){for(var e=[],n=void 0,a=0;a=this._length)throw this._createError(vt(N),this._getSpan());this._peek===A?(this._line++,this._column=0):this._peek!==A&&this._peek!==L&&this._column++,this._index++,this._peek=this._index>=this._length?N:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?N:this._input.charCodeAt(this._index+1)},t.prototype._attemptCharCode=function(t){return this._peek===t&&(this._advance(),!0)},t.prototype._attemptCharCodeCaseInsensitive=function(t){return e=t,kt(this._peek)===kt(e)&&(this._advance(),!0);var e},t.prototype._requireCharCode=function(t){var e=this._getLocation();if(!this._attemptCharCode(t))throw this._createError(vt(this._peek),this._getSpan(e,e))},t.prototype._attemptStr=function(t){var e=t.length;if(this._index+e>this._length)return!1;for(var n=this._savePosition(),a=0;aa.offset&&i.push(this._input.substring(a.offset,this._index));this._peek!==e;)i.push(this._readChar(t));return this._endToken([this._processCarriageReturns(i.join(""))],a)},t.prototype._consumeComment=function(t){var e=this;this._beginToken(ht.COMMENT_START,t),this._requireCharCode(z),this._endToken([]);var n=this._consumeRawText(!1,z,function(){return e._attemptStr("->")});this._beginToken(ht.COMMENT_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeCdata=function(t){var e=this;this._beginToken(ht.CDATA_START,t),this._requireStr("CDATA["),this._endToken([]);var n=this._consumeRawText(!1,93,function(){return e._attemptStr("]>")});this._beginToken(ht.CDATA_END,n.sourceSpan.end),this._endToken([])},t.prototype._consumeDocType=function(t){this._beginToken(ht.DOC_TYPE,t),this._attemptUntilChar(H),this._advance(),this._endToken([this._input.substring(t.offset+2,this._index-1)])},t.prototype._consumePrefixAndName=function(){for(var t,e,n=this._index,a=null;58!==this._peek&&!(((t=this._peek)U));)this._advance();return 58===this._peek?(this._advance(),a=this._input.substring(n,this._index-1),e=this._index):e=n,this._requireCharCodeUntilFn(St,this._index===e?1:0),[a,this._input.substring(e,this._index)]},t.prototype._consumeTagOpen=function(t){var e,n,a=this._savePosition();try{if(!ut(this._peek))throw this._createError(vt(this._peek),this._getSpan());var r=this._index;for(this._consumeTagOpenStart(t),n=(e=this._input.substring(r,this._index)).toLowerCase(),this._attemptCharCodeUntilFn(wt);this._peek!==G&&this._peek!==H;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(wt),this._attemptCharCode(V)&&(this._attemptCharCodeUntilFn(wt),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(wt);this._consumeTagOpenEnd()}catch(s){if(s instanceof xt)return this._restorePosition(a),this._beginToken(ht.TEXT,t),void this._endToken(["<"]);throw s}var i=this._getTagDefinition(e).contentType;i===ct.RAW_TEXT?this._consumeRawTextWithTagClose(n,!1):i===ct.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,!0)},t.prototype._consumeRawTextWithTagClose=function(t,e){var n=this,a=this._consumeRawText(e,60,function(){return!!n._attemptCharCode(G)&&(n._attemptCharCodeUntilFn(wt),!!n._attemptStrCaseInsensitive(t)&&(n._attemptCharCodeUntilFn(wt),n._attemptCharCode(H)))});this._beginToken(ht.TAG_CLOSE,a.sourceSpan.end),this._endToken([null,t])},t.prototype._consumeTagOpenStart=function(t){this._beginToken(ht.TAG_OPEN_START,t);var e=this._consumePrefixAndName();this._endToken(e)},t.prototype._consumeAttributeName=function(){this._beginToken(ht.ATTR_NAME);var t=this._consumePrefixAndName();this._endToken(t)},t.prototype._consumeAttributeValue=function(){var t;if(this._beginToken(ht.ATTR_VALUE),this._peek===j||this._peek===M){var e=this._peek;this._advance();for(var n=[];this._peek!==e;)n.push(this._readChar(!0));t=n.join(""),this._advance()}else{var a=this._index;this._requireCharCodeUntilFn(St,1),t=this._input.substring(a,this._index)}this._endToken([this._processCarriageReturns(t)])},t.prototype._consumeTagOpenEnd=function(){var t=this._attemptCharCode(G)?ht.TAG_OPEN_END_VOID:ht.TAG_OPEN_END;this._beginToken(t),this._requireCharCode(H),this._endToken([])},t.prototype._consumeTagClose=function(t){this._beginToken(ht.TAG_CLOSE,t),this._attemptCharCodeUntilFn(wt);var e=this._consumePrefixAndName();this._attemptCharCodeUntilFn(wt),this._requireCharCode(H),this._endToken(e)},t.prototype._consumeExpansionFormStart=function(){this._beginToken(ht.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(rt),this._endToken([]),this._expansionCaseStack.push(ht.EXPANSION_FORM_START),this._beginToken(ht.RAW_TEXT,this._getLocation());var t=this._readUntil(44);this._endToken([t],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(wt),this._beginToken(ht.RAW_TEXT,this._getLocation());var e=this._readUntil(44);this._endToken([e],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(wt)},t.prototype._consumeExpansionCaseStart=function(){this._beginToken(ht.EXPANSION_CASE_VALUE,this._getLocation());var t=this._readUntil(rt).trim();this._endToken([t],this._getLocation()),this._attemptCharCodeUntilFn(wt),this._beginToken(ht.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(rt),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(wt),this._expansionCaseStack.push(ht.EXPANSION_CASE_EXP_START)},t.prototype._consumeExpansionCaseEnd=function(){this._beginToken(ht.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(125),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(wt),this._expansionCaseStack.pop()},t.prototype._consumeExpansionFormEnd=function(){this._beginToken(ht.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()},t.prototype._consumeText=function(){var t=this._getLocation();this._beginToken(ht.TEXT,t);var e=[];do{this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(e.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(e.push(this._interpolationConfig.end),this._inInterpolation=!1):e.push(this._readChar(!0))}while(!this._isTextEnd());this._endToken([this._processCarriageReturns(e.join(""))])},t.prototype._isTextEnd=function(){if(60===this._peek||this._peek===N)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(Ct(this._input,this._index,this._interpolationConfig))return!0;if(125===this._peek&&this._isInExpansionCase())return!0}return!1},t.prototype._savePosition=function(){return[this._peek,this._index,this._column,this._line,this.tokens.length]},t.prototype._readUntil=function(t){var e=this._index;return this._attemptUntilChar(t),this._input.substring(e,this._index)},t.prototype._restorePosition=function(t){this._peek=t[0],this._index=t[1],this._column=t[2],this._line=t[3];var e=t[4];e0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ht.EXPANSION_CASE_EXP_START},t.prototype._isInExpansionForm=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===ht.EXPANSION_FORM_START},t}();function wt(t){return!st(t)||t===N}function St(t){return st(t)||t===H||t===G||t===j||t===M||t===V}function Ot(t){return t===Y||t===N||!function(t){return t>=X&&t<=J||t>=W&&t<=K||ot(t)}(t)}function It(t){return t===Y||t===N||!ut(t)}function Ct(t,e,n){var a=!!n&&t.indexOf(n.start,e)===e;return t.charCodeAt(e)===rt&&!a}function kt(t){return t>=X&&t<=at?t-X+W:t}var Nt=function(t){function e(e,n,a){var r=t.call(this,n,a)||this;return r.elementName=e,r}return Object(a.__extends)(e,t),e.create=function(t,n,a){return new e(t,n,a)},e}(O),Rt=function(){return function(t,e){this.rootNodes=t,this.errors=e}}(),At=function(){function t(t){this.getTagDefinition=t}return t.prototype.parse=function(t,e,n,a){void 0===n&&(n=!1),void 0===a&&(a=k);var r=function(t,e,n,a,r){return void 0===a&&(a=!1),void 0===r&&(r=k),new Tt(new T(t,e),n,a,r).tokenize()}(t,e,this.getTagDefinition,n,a),i=new Dt(r.tokens,this.getTagDefinition).build();return new Rt(i.rootNodes,r.errors.concat(i.errors))},t}(),Dt=function(){function t(t,e){this.tokens=t,this.getTagDefinition=e,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}return t.prototype.build=function(){for(;this._peek.type!==ht.EOF;)this._peek.type===ht.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===ht.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===ht.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===ht.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===ht.TEXT||this._peek.type===ht.RAW_TEXT||this._peek.type===ht.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===ht.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new Rt(this._rootNodes,this._errors)},t.prototype._advance=function(){var t=this._peek;return this._index0)return this._errors=this._errors.concat(i.errors),null;var s=new w(e.sourceSpan.start,r.sourceSpan.end),o=new w(n.sourceSpan.start,r.sourceSpan.end);return new u(e.parts[0],i.rootNodes,s,e.sourceSpan,o)},t.prototype._collectExpansionExpTokens=function(t){for(var e=[],n=[ht.EXPANSION_CASE_EXP_START];;){if(this._peek.type!==ht.EXPANSION_FORM_START&&this._peek.type!==ht.EXPANSION_CASE_EXP_START||n.push(this._peek.type),this._peek.type===ht.EXPANSION_CASE_EXP_END){if(!Et(n,ht.EXPANSION_CASE_EXP_START))return this._errors.push(Nt.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(n.pop(),0===n.length)return e}if(this._peek.type===ht.EXPANSION_FORM_END){if(!Et(n,ht.EXPANSION_FORM_START))return this._errors.push(Nt.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;n.pop()}if(this._peek.type===ht.EOF)return this._errors.push(Nt.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;e.push(this._advance())}},t.prototype._consumeText=function(t){var e=t.parts[0];if(e.length>0&&"\n"===e[0]){var n=this._getParentElement();null!==n&&0===n.children.length&&this.getTagDefinition(n.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new s(e,t.sourceSpan))},t.prototype._closeVoidElement=function(){var t=this._getParentElement();t&&this.getTagDefinition(t.name).isVoid&&this._elementStack.pop()},t.prototype._consumeStartTag=function(t){for(var e=t.parts[0],n=t.parts[1],a=[];this._peek.type===ht.ATTR_NAME;)a.push(this._consumeAttr(this._advance()));var r=this._getElementFullName(e,n,this._getParentElement()),i=!1;if(this._peek.type===ht.TAG_OPEN_END_VOID){this._advance(),i=!0;var s=this.getTagDefinition(r);s.canSelfClose||null!==dt(r)||s.isVoid||this._errors.push(Nt.create(r,t.sourceSpan,'Only void and foreign elements can be self closed "'+t.parts[1]+'"'))}else this._peek.type===ht.TAG_OPEN_END&&(this._advance(),i=!1);var o=new w(t.sourceSpan.start,this._peek.sourceSpan.start),u=new l(r,a,[],o,o,void 0);this._pushElement(u),i&&(this._popElement(r),u.endSourceSpan=o)},t.prototype._pushElement=function(t){var e=this._getParentElement();e&&this.getTagDefinition(e.name).isClosedByChild(t.name)&&this._elementStack.pop();var n=this.getTagDefinition(t.name),a=this._getParentElementSkippingContainers(),r=a.parent,i=a.container;if(r&&n.requireExtraParent(r.name)){var s=new l(n.parentToAdd,[],[],t.sourceSpan,t.startSourceSpan,t.endSourceSpan);this._insertBeforeContainer(r,i,s)}this._addToParent(t),this._elementStack.push(t)},t.prototype._consumeEndTag=function(t){var e=this._getElementFullName(t.parts[0],t.parts[1],this._getParentElement());this._getParentElement()&&(this._getParentElement().endSourceSpan=t.sourceSpan),this.getTagDefinition(e).isVoid?this._errors.push(Nt.create(e,t.sourceSpan,'Void elements do not have end tags "'+t.parts[1]+'"')):this._popElement(e)||this._errors.push(Nt.create(e,t.sourceSpan,'Unexpected closing tag "'+e+'". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags'))},t.prototype._popElement=function(t){for(var e=this._elementStack.length-1;e>=0;e--){var n=this._elementStack[e];if(n.name===t)return this._elementStack.splice(e,this._elementStack.length-e),!0;if(!this.getTagDefinition(n.name).closedByParent)return!1}return!1},t.prototype._consumeAttr=function(t){var e=ft(t.parts[0],t.parts[1]),n=t.sourceSpan.end,a="",r=void 0;if(this._peek.type===ht.ATTR_VALUE){var i=this._advance();a=i.parts[0],n=i.sourceSpan.end,r=i.sourceSpan}return new c(e,a,new w(t.sourceSpan.start,n),r)},t.prototype._getParentElement=function(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null},t.prototype._getParentElementSkippingContainers=function(){for(var t=null,e=this._elementStack.length-1;e>=0;e--){if("ng-container"!==lt(this._elementStack[e].name)[1])return{parent:this._elementStack[e],container:t};t=this._elementStack[e]}return{parent:null,container:t}},t.prototype._addToParent=function(t){var e=this._getParentElement();null!==e?e.children.push(t):this._rootNodes.push(t)},t.prototype._insertBeforeContainer=function(t,e,n){if(e){if(t){var a=t.children.indexOf(e);t.children[a]=n}else this._rootNodes.push(n);n.children.push(e),this._elementStack.splice(this._elementStack.indexOf(e),0,n)}else this._addToParent(n),this._elementStack.push(n)},t.prototype._getElementFullName=function(t,e,n){return null===t&&null===(t=this.getTagDefinition(e).implicitNamespacePrefix)&&null!==n&&(t=dt(n.name)),ft(t,e)},t}();function Et(t,e){return t.length>0&&t[t.length-1]===e}var Lt=new(function(){function t(){this.closedByParent=!1,this.contentType=ct.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}return t.prototype.requireExtraParent=function(t){return!1},t.prototype.isClosedByChild=function(t){return!1},t}());function Pt(t){return Lt}var Mt=function(){function t(t){var e=void 0===t?{}:t,n=e.closedByChildren,a=e.requiredParents,r=e.implicitNamespacePrefix,i=e.contentType,s=void 0===i?ct.PARSABLE_DATA:i,o=e.closedByParent,u=void 0!==o&&o,c=e.isVoid,l=void 0!==c&&c,d=e.ignoreFirstLf,f=void 0!==d&&d,p=this;this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,n&&n.length>0&&n.forEach(function(t){return p.closedByChildren[t]=!0}),this.isVoid=l,this.closedByParent=u||l,a&&a.length>0&&(this.requiredParents={},this.parentToAdd=a[0],a.forEach(function(t){return p.requiredParents[t]=!0})),this.implicitNamespacePrefix=r||null,this.contentType=s,this.ignoreFirstLf=f}return t.prototype.requireExtraParent=function(t){if(!this.requiredParents)return!1;if(!t)return!0;var e=t.toLowerCase();return!("template"===e||"ng-template"===t)&&!0!==this.requiredParents[e]},t.prototype.isClosedByChild=function(t){return this.isVoid||t.toLowerCase()in this.closedByChildren},t}(),qt={base:new Mt({isVoid:!0}),meta:new Mt({isVoid:!0}),area:new Mt({isVoid:!0}),embed:new Mt({isVoid:!0}),link:new Mt({isVoid:!0}),img:new Mt({isVoid:!0}),input:new Mt({isVoid:!0}),param:new Mt({isVoid:!0}),hr:new Mt({isVoid:!0}),br:new Mt({isVoid:!0}),source:new Mt({isVoid:!0}),track:new Mt({isVoid:!0}),wbr:new Mt({isVoid:!0}),p:new Mt({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new Mt({closedByChildren:["tbody","tfoot"]}),tbody:new Mt({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new Mt({closedByChildren:["tbody"],closedByParent:!0}),tr:new Mt({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new Mt({closedByChildren:["td","th"],closedByParent:!0}),th:new Mt({closedByChildren:["td","th"],closedByParent:!0}),col:new Mt({requiredParents:["colgroup"],isVoid:!0}),svg:new Mt({implicitNamespacePrefix:"svg"}),math:new Mt({implicitNamespacePrefix:"math"}),li:new Mt({closedByChildren:["li"],closedByParent:!0}),dt:new Mt({closedByChildren:["dt","dd"]}),dd:new Mt({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new Mt({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new Mt({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new Mt({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new Mt({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new Mt({closedByChildren:["optgroup"],closedByParent:!0}),option:new Mt({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new Mt({ignoreFirstLf:!0}),listing:new Mt({ignoreFirstLf:!0}),style:new Mt({contentType:ct.RAW_TEXT}),script:new Mt({contentType:ct.RAW_TEXT}),title:new Mt({contentType:ct.ESCAPABLE_RAW_TEXT}),textarea:new Mt({contentType:ct.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},jt=new Mt;function Ft(t){return qt[t.toLowerCase()]||jt}var zt=function(t){function e(e,n){var a=t.call(this)||this;return a.mapName=n,a.internalToPublic={},a.publicToNextId={},a.publicToInternal={},e.nodes.forEach(function(t){return t.visit(a)}),a}return Object(a.__extends)(e,t),e.prototype.toPublicName=function(t){return this.internalToPublic.hasOwnProperty(t)?this.internalToPublic[t]:null},e.prototype.toInternalName=function(t){return this.publicToInternal.hasOwnProperty(t)?this.publicToInternal[t]:null},e.prototype.visitText=function(t,e){return null},e.prototype.visitTagPlaceholder=function(e,n){this.visitPlaceholderName(e.startName),t.prototype.visitTagPlaceholder.call(this,e,n),this.visitPlaceholderName(e.closeName)},e.prototype.visitPlaceholder=function(t,e){this.visitPlaceholderName(t.name)},e.prototype.visitIcuPlaceholder=function(t,e){this.visitPlaceholderName(t.name)},e.prototype.visitPlaceholderName=function(t){if(t&&!this.internalToPublic.hasOwnProperty(t)){var e=this.mapName(t);if(this.publicToInternal.hasOwnProperty(e)){var n=this.publicToNextId[e];this.publicToNextId[e]=n+1,e=e+"_"+n}else this.publicToNextId[e]=1;this.internalToPublic[t]=e,this.publicToInternal[e]=t}},e}(_),Gt=new r.I18nSelectPipe,Yt=function(){function t(t,e){this.params=e,this.i18nPluralPipe=new r.I18nPluralPipe(new r.NgLocaleLocalization(t))}return t.prototype.visitElement=function(t,e){return Ft(t.name).isVoid?"<"+t.name+this.serializeNodes(t.attrs," ")+"/>":"<"+t.name+this.serializeNodes(t.attrs," ")+">"+this.serializeNodes(t.children)+""},t.prototype.visitAttribute=function(t,e){return t.name+'="'+t.value+'"'},t.prototype.visitText=function(t,e){return t.value},t.prototype.visitComment=function(t,e){return"\x3c!--"+t.value+"--\x3e"},t.prototype.visitExpansion=function(t,e){var n=this,a={};switch(t.cases.forEach(function(t){return a[t.value]=n.serializeNodes(t.expression)}),t.type){case"select":return Gt.transform(this.params[t.switchValue]||"",a);case"plural":return this.i18nPluralPipe.transform(this.params[t.switchValue],a)}throw new Error('Unknown expansion type "'+t.type+'"')},t.prototype.visitExpansionCase=function(t,e){return" "+t.value+" {"+this.serializeNodes(t.expression)+"}"},t.prototype.serializeNodes=function(t,e){var n=this;return void 0===e&&(e=""),0===t.length?"":e+t.map(function(t){return t.visit(n,null)}).join(e)},t}();function Vt(t){return t.id||function(t){var e,n,r=oe(t),i=function(t,e){for(var n=Array(t.length+3>>>2),a=0;a>5]|=128<<24-s%32,i[15+(s+64>>9<<4)]=s;for(var h=0;h>>4).toString(16)+(15&a).toString(16)}return e.toLowerCase()}(re([c,l,d,f,p]))}((e=t.nodes,e.map(function(t){return t.visit(Bt,null)})).join("")+"["+t.meaning+"]");var e}var Ht=function(){function t(){}return t.prototype.visitText=function(t,e){return t.value},t.prototype.visitContainer=function(t,e){var n=this;return"["+t.children.map(function(t){return t.visit(n)}).join(", ")+"]"},t.prototype.visitIcu=function(t,e){var n=this,a=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+t.expression+", "+t.type+", "+a.join(", ")+"}"},t.prototype.visitTagPlaceholder=function(t,e){var n=this;return t.isVoid?'':''+t.children.map(function(t){return t.visit(n)}).join(", ")+''},t.prototype.visitPlaceholder=function(t,e){return t.value?''+t.value+"":''},t.prototype.visitIcuPlaceholder=function(t,e){return''+t.value.visit(this)+""},t}(),Bt=new Ht,Ut=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.visitIcu=function(t,e){var n=this,a=Object.keys(t.cases).map(function(e){return e+" {"+t.cases[e].visit(n)+"}"});return"{"+t.type+", "+a.join(", ")+"}"},e}(Ht);function Wt(t,e,n,a){return t<20?[e&n|~e&a,1518500249]:t<40?[e^n^a,1859775393]:t<60?[e&n|e&a|n&a,2400959708]:[e^n^a,3395469782]}function Kt(t){var e=oe(t),n=Object(a.__read)([$t(e,0),$t(e,102072)],2),r=n[0],i=n[1];return 0!==r||0!==i&&1!==i||(r^=319790063,i^=-1801410264),[r,i]}function $t(t,e){var n,r,i=Object(a.__read)([2654435769,2654435769],2),s=i[0],o=i[1],u=t.length;for(n=0;n+12<=u;n+=12)s=Jt(s,ae(t,n,Xt.Little)),o=Jt(o,ae(t,n+4,Xt.Little)),e=Jt(e,ae(t,n+8,Xt.Little)),s=(r=Object(a.__read)(Zt([s,o,e]),3))[0],o=r[1],e=r[2];return s=Jt(s,ae(t,n,Xt.Little)),o=Jt(o,ae(t,n+4,Xt.Little)),e=Jt(e,u),Zt([s,o,e=Jt(e,ae(t,n+8,Xt.Little)<<8)])[2]}function Zt(t){var e=Object(a.__read)(t,3),n=e[0],r=e[1],i=e[2];return n=te(n,r),n=te(n,i),n^=i>>>13,r=te(r,i),r=te(r,n),r^=n<<8,i=te(i,n),i=te(i,r),i^=r>>>13,n=te(n,r),n=te(n,i),n^=i>>>12,r=te(r,i),r=te(r,n),r^=n<<16,i=te(i,n),i=te(i,r),i^=r>>>5,n=te(n,r),n=te(n,i),n^=i>>>3,r=te(r,i),r=te(r,n),r^=n<<10,i=te(i,n),i=te(i,r),[n,r,i^=r>>>15]}var Xt=function(){var t={Little:0,Big:1};return t[t.Little]="Little",t[t.Big]="Big",t}();function Jt(t,e){return Qt(t,e)[1]}function Qt(t,e){var n=(65535&t)+(65535&e),a=(t>>>16)+(e>>>16)+(n>>>16);return[a>>>16,a<<16|65535&n]}function te(t,e){var n=(65535&t)-(65535&e);return(t>>16)-(e>>16)+(n>>16)<<16|65535&n}function ee(t,e){return t<>>32-e}function ne(t,e){return e>=t.length?0:255&t.charCodeAt(e)}function ae(t,e,n){var a=0;if(n===Xt.Big)for(var r=0;r<4;r++)a+=ne(t,e+r)<<24-8*r;else for(r=0;r<4;r++)a+=ne(t,e+r)<<8*r;return a}function re(t){return t.reduce(function(t,e){return t+function(t){for(var e="",n=0;n<4;n++)e+=String.fromCharCode(t>>>8*(3-n)&255);return e}(e)},"")}function ie(t,e){for(var n="",a=Math.max(t.length,e.length),r=0,i=0;r=10?(i=1,n+=s-10):(i=0,n+=s)}return n}function se(t,e){for(var n="",a=e;0!==t;t>>>=1)1&t&&(n=ie(n,a)),a=ie(a,a);return n}function oe(t){for(var e="",n=0;n=55296&&a<=56319&&t.length>n+1){var r=t.charCodeAt(n+1);r>=56320&&r<=57343&&(n++,a=(a-55296<<10)+r-56320+65536)}a<=127?e+=String.fromCharCode(a):a<=2047?e+=String.fromCharCode(a>>6&31|192,63&a|128):a<=65535?e+=String.fromCharCode(a>>12|224,a>>6&63|128,63&a|128):a<=2097151&&(e+=String.fromCharCode(a>>18&7|240,a>>12&63|128,a>>6&63|128,63&a|128))}return e}function ue(t){var e=(new le).parse(t),n=e.msgIdToHtml,r=e.errors,i={},s=new de;if(Object.keys(n).forEach(function(t){var e=s.convert(n[t]),o=e.i18nNodes,u=e.errors;r.push.apply(r,Object(a.__spread)(u)),i[t]=o}),r.length)throw new Error("xliff parse errors:\n"+r.join("\n"));return i}var ce=Vt,le=function(){function t(){}return t.prototype.parse=function(t){this._unitMlString=null,this._msgIdToHtml={};var e=new At(Pt).parse(t,"",!1);return this._errors=e.errors,f(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}},t.prototype.visitElement=function(t,e){switch(t.name){case"trans-unit":this._unitMlString=null;var n=t.attrs.find(function(t){return"id"===t.name});if(n){var a=n.value;this._msgIdToHtml.hasOwnProperty(a)?this._addError(t,"Duplicated translations for msg "+a):(f(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[a]=this._unitMlString:this._addError(t,"Message "+a+" misses a translation"))}else this._addError(t,' misses the "id" attribute');break;case"source":break;case"target":var r=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=r;break;case"file":f(this,t.children,null);break;default:f(this,t.children,null)}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),de=function(){function t(){}return t.prototype.convert=function(t){var e=new At(Pt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:f(this,e.rootNodes),errors:this._errors}},t.prototype.visitText=function(t,e){return new h(t.value,t.sourceSpan)},t.prototype.visitElement=function(t,e){if("x"===t.name){var n=t.attrs.find(function(t){return"id"===t.name});if(n)return new y("",n.value,t.sourceSpan);this._addError(t,' misses the "id" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitExpansion=function(t,e){var n={};return f(this,t.cases).forEach(function(e){n[e.value]=new g(e.nodes,t.sourceSpan)}),new b(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:f(this,t.expression)}},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}();function fe(t){var e=(new he).parse(t),n=e.msgIdToHtml,r=e.errors,i={},s=new ge;if(Object.keys(n).forEach(function(t){var e=s.convert(n[t]),o=e.i18nNodes,u=e.errors;r.push.apply(r,Object(a.__spread)(u)),i[t]=o}),r.length)throw new Error("xliff2 parse errors:\n"+r.join("\n"));return i}var pe=function(t){if(t.id)return t.id;var e=new Ut;return function(t,e){var n,r=Object(a.__read)(Kt(t),2),i=r[0],s=r[1];if(e){var o=Object(a.__read)(Kt(e),2),u=o[0],c=o[1];i=(n=Object(a.__read)(function(t,e){var n=Object(a.__read)(t,2),r=n[0],i=n[1],s=Object(a.__read)(e,2),o=s[0],u=s[1],c=Object(a.__read)(Qt(i,u),2),l=c[0],d=c[1];return[Jt(Jt(r,o),l),d]}(function(t,e){var n=Object(a.__read)(t,2),r=n[0],i=n[1];return[r<<1|i>>>31,i<<1|r>>>31]}([i,s]),[u,c]),2))[0],s=n[1]}return function(t){for(var e="",n="1",a=t.length-1;a>=0;a--)e=ie(e,se(ne(t,a),n)),n=se(256,n);return e.split("").reverse().join("")}(re([2147483647&i,s]))}(t.nodes.map(function(t){return t.visit(e,null)}).join(""),t.meaning)},he=function(){function t(){}return t.prototype.parse=function(t){this._unitMlString=null,this._msgIdToHtml={};var e=new At(Pt).parse(t,"",!1);return this._errors=e.errors,f(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}},t.prototype.visitElement=function(t,e){switch(t.name){case"unit":this._unitMlString=null;var n=t.attrs.find(function(t){return"id"===t.name});if(n){var a=n.value;this._msgIdToHtml.hasOwnProperty(a)?this._addError(t,"Duplicated translations for msg "+a):(f(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[a]=this._unitMlString:this._addError(t,"Message "+a+" misses a translation"))}else this._addError(t,' misses the "id" attribute');break;case"source":break;case"target":var r=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=r;break;case"xliff":var i=t.attrs.find(function(t){return"version"===t.name});if(i){var s=i.value;"2.0"!==s?this._addError(t,"The XLIFF file version "+s+" is not compatible with XLIFF 2.0 serializer"):f(this,t.children,null)}break;default:f(this,t.children,null)}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),ge=function(){function t(){}return t.prototype.convert=function(t){var e=new At(Pt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:[].concat.apply([],Object(a.__spread)(f(this,e.rootNodes))),errors:this._errors}},t.prototype.visitText=function(t,e){return new h(t.value,t.sourceSpan)},t.prototype.visitElement=function(t,e){var n=this;switch(t.name){case"ph":var r=t.attrs.find(function(t){return"equiv"===t.name});if(r)return[new y("",r.value,t.sourceSpan)];this._addError(t,' misses the "equiv" attribute');break;case"pc":var i=t.attrs.find(function(t){return"equivStart"===t.name}),s=t.attrs.find(function(t){return"equivEnd"===t.name});if(i){if(s){var o=i.value,u=s.value,c=[];return c.concat.apply(c,Object(a.__spread)([new y("",o,t.sourceSpan)],t.children.map(function(t){return t.visit(n,null)}),[new y("",u,t.sourceSpan)]))}this._addError(t,' misses the "equivEnd" attribute')}else this._addError(t,' misses the "equivStart" attribute');break;default:this._addError(t,"Unexpected tag")}return null},t.prototype.visitExpansion=function(t,e){var n={};return f(this,t.cases).forEach(function(e){n[e.value]=new g(e.nodes,t.sourceSpan)}),new b(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:[].concat.apply([],Object(a.__spread)(f(this,t.expression)))}},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}();function be(t){return t.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}function me(t){var e=(new _e).parse(t),n=e.msgIdToHtml,a=e.errors;if(a.length)throw new Error("xtb parse errors:\n"+a.join("\n"));var r={},i=new xe;return Object.keys(n).forEach(function(t){var e,a;e=r,a=t,Object.defineProperty(e,a,{configurable:!0,enumerable:!0,get:function(){var r=function(){var e=i.convert(n[t]),a=e.i18nNodes,r=e.errors;if(r.length)throw new Error("xtb parse errors:\n"+r.join("\n"));return a}();return Object.defineProperty(e,a,{enumerable:!0,value:r}),r},set:function(t){throw new Error("Could not overwrite an XTB translation")}})}),r}var ye=Vt,ve=function(t){return new zt(t,be)},_e=function(){function t(){}return t.prototype.parse=function(t){this._bundleDepth=0,this._msgIdToHtml={};var e=new At(Pt).parse(t,"",!1);return this._errors=e.errors,f(this,e.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}},t.prototype.visitElement=function(t,e){switch(t.name){case"translationbundle":this._bundleDepth++,this._bundleDepth>1&&this._addError(t," elements can not be nested"),f(this,t.children,null),this._bundleDepth--;break;case"translation":var n=t.attrs.find(function(t){return"id"===t.name});if(n){var a=n.value;if(this._msgIdToHtml.hasOwnProperty(a))this._addError(t,"Duplicated translations for msg "+a);else{var r=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._msgIdToHtml[a]=r}}else this._addError(t,' misses the "id" attribute');break;default:this._addError(t,"Unexpected tag")}},t.prototype.visitAttribute=function(t,e){},t.prototype.visitText=function(t,e){},t.prototype.visitComment=function(t,e){},t.prototype.visitExpansion=function(t,e){},t.prototype.visitExpansionCase=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),xe=function(){function t(){}return t.prototype.convert=function(t){var e=new At(Pt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:f(this,e.rootNodes),errors:this._errors}},t.prototype.visitText=function(t,e){return new h(t.value,t.sourceSpan)},t.prototype.visitExpansion=function(t,e){var n={};return f(this,t.cases).forEach(function(e){n[e.value]=new g(e.nodes,t.sourceSpan)}),new b(t.switchValue,t.type,n,t.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){return{value:t.value,nodes:f(this,t.expression)}},t.prototype.visitElement=function(t,e){if("ph"===t.name){var n=t.attrs.find(function(t){return"name"===t.name});if(n)return new y("",n.value,t.sourceSpan);this._addError(t,' misses the "name" attribute')}else this._addError(t,"Unexpected tag");return null},t.prototype.visitComment=function(t,e){},t.prototype.visitAttribute=function(t,e){},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),Te=function(){return function(t,e,n,a){this.input=e,this.errLocation=n,this.ctxLocation=a,this.message="Parser Error: "+t+" "+n+" ["+e+"] in "+a}}(),we=function(){return function(t,e){this.start=t,this.end=e}}(),Se=function(){function t(t){this.span=t}return t.prototype.visit=function(t,e){return void 0===e&&(e=null),null},t.prototype.toString=function(){return"AST"},t}(),Oe=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.prefix=n,i.uninterpretedExpression=a,i.location=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitQuote(this,e)},e.prototype.toString=function(){return"Quote"},e}(Se),Ie=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){void 0===e&&(e=null)},e}(Se),Ce=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitImplicitReceiver(this,e)},e}(Se),ke=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expressions=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitChain(this,e)},e}(Se),Ne=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.condition=n,i.trueExp=a,i.falseExp=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitConditional(this,e)},e}(Se),Re=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.receiver=n,r.name=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyRead(this,e)},e}(Se),Ae=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.receiver=n,i.name=a,i.value=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPropertyWrite(this,e)},e}(Se),De=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.receiver=n,r.name=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafePropertyRead(this,e)},e}(Se),Ee=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.obj=n,r.key=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedRead(this,e)},e}(Se),Le=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.obj=n,i.key=a,i.value=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitKeyedWrite(this,e)},e}(Se),Pe=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.exp=n,i.name=a,i.args=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPipe(this,e)},e}(Se),Me=function(t){function e(e,n){var a=t.call(this,e)||this;return a.value=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralPrimitive(this,e)},e}(Se),qe=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expressions=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralArray(this,e)},e}(Se),je=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.keys=n,r.values=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitLiteralMap(this,e)},e}(Se),Fe=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.strings=n,r.expressions=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitInterpolation(this,e)},e}(Se),ze=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.operation=n,i.left=a,i.right=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitBinary(this,e)},e}(Se),Ge=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expression=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitPrefixNot(this,e)},e}(Se),Ye=function(t){function e(e,n){var a=t.call(this,e)||this;return a.expression=n,a}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitNonNullAssert(this,e)},e}(Se),Ve=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.receiver=n,i.name=a,i.args=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitMethodCall(this,e)},e}(Se),He=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.receiver=n,i.name=a,i.args=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitSafeMethodCall(this,e)},e}(Se),Be=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.target=n,r.args=a,r}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),t.visitFunctionCall(this,e)},e}(Se),Ue=function(t){function e(e,n,a,r){var i=t.call(this,new we(0,null==n?0:n.length))||this;return i.ast=e,i.source=n,i.location=a,i.errors=r,i}return Object(a.__extends)(e,t),e.prototype.visit=function(t,e){return void 0===e&&(e=null),this.ast.visit(t,e)},e.prototype.toString=function(){return this.source+" in "+this.location},e}(Se),We=function(){return function(t,e,n,a,r){this.span=t,this.key=e,this.keyIsVar=n,this.name=a,this.expression=r}}(),Ke=function(){var t={Character:0,Identifier:1,Keyword:2,String:3,Operator:4,Number:5,Error:6};return t[t.Character]="Character",t[t.Identifier]="Identifier",t[t.Keyword]="Keyword",t[t.String]="String",t[t.Operator]="Operator",t[t.Number]="Number",t[t.Error]="Error",t}(),$e=["var","let","as","null","undefined","true","false","if","else","this"],Ze=function(){function t(){}return t.prototype.tokenize=function(t){for(var e=new en(t),n=[],a=e.scanToken();null!=a;)n.push(a),a=e.scanToken();return n},t}(),Xe=function(){function t(t,e,n,a){this.index=t,this.type=e,this.numValue=n,this.strValue=a}return t.prototype.isCharacter=function(t){return this.type===Ke.Character&&this.numValue===t},t.prototype.isNumber=function(){return this.type===Ke.Number},t.prototype.isString=function(){return this.type===Ke.String},t.prototype.isOperator=function(t){return this.type===Ke.Operator&&this.strValue===t},t.prototype.isIdentifier=function(){return this.type===Ke.Identifier},t.prototype.isKeyword=function(){return this.type===Ke.Keyword},t.prototype.isKeywordLet=function(){return this.type===Ke.Keyword&&"let"===this.strValue},t.prototype.isKeywordAs=function(){return this.type===Ke.Keyword&&"as"===this.strValue},t.prototype.isKeywordNull=function(){return this.type===Ke.Keyword&&"null"===this.strValue},t.prototype.isKeywordUndefined=function(){return this.type===Ke.Keyword&&"undefined"===this.strValue},t.prototype.isKeywordTrue=function(){return this.type===Ke.Keyword&&"true"===this.strValue},t.prototype.isKeywordFalse=function(){return this.type===Ke.Keyword&&"false"===this.strValue},t.prototype.isKeywordThis=function(){return this.type===Ke.Keyword&&"this"===this.strValue},t.prototype.isError=function(){return this.type===Ke.Error},t.prototype.toNumber=function(){return this.type===Ke.Number?this.numValue:-1},t.prototype.toString=function(){switch(this.type){case Ke.Character:case Ke.Identifier:case Ke.Keyword:case Ke.Operator:case Ke.String:case Ke.Error:return this.strValue;case Ke.Number:return this.numValue.toString();default:return null}},t}();function Je(t,e){return new Xe(t,Ke.Character,e,String.fromCharCode(e))}function Qe(t,e){return new Xe(t,Ke.Operator,0,e)}var tn=new Xe(-1,Ke.Character,0,""),en=function(){function t(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}return t.prototype.advance=function(){this.peek=++this.index>=this.length?N:this.input.charCodeAt(this.index)},t.prototype.scanToken=function(){for(var t=this.input,e=this.length,n=this.peek,a=this.index;n<=P;){if(++a>=e){n=N;break}n=t.charCodeAt(a)}if(this.peek=n,this.index=a,a>=e)return null;if(nn(n))return this.scanIdentifier();if(ot(n))return this.scanNumber(a);var r=a;switch(n){case 46:return this.advance(),ot(this.peek)?this.scanNumber(r):Je(r,46);case 40:case 41:case rt:case 125:case 91:case 93:case 44:case 58:case Y:return this.scanCharacter(r,n);case j:case M:return this.scanString();case 35:case F:case z:case 42:case G:case 37:case 94:return this.scanOperator(r,String.fromCharCode(n));case 63:return this.scanComplexOperator(r,"?",46,".");case 60:case H:return this.scanComplexOperator(r,String.fromCharCode(n),V,"=");case 33:case V:return this.scanComplexOperator(r,String.fromCharCode(n),V,"=",V,"=");case 38:return this.scanComplexOperator(r,"&",38,"&");case 124:return this.scanComplexOperator(r,"|",124,"|");case it:for(;st(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character ["+String.fromCharCode(n)+"]",0)},t.prototype.scanCharacter=function(t,e){return this.advance(),Je(t,e)},t.prototype.scanOperator=function(t,e){return this.advance(),Qe(t,e)},t.prototype.scanComplexOperator=function(t,e,n,a,r,i){this.advance();var s=e;return this.peek===n&&(this.advance(),s+=a),null!=r&&this.peek===r&&(this.advance(),s+=i),Qe(t,s)},t.prototype.scanIdentifier=function(){var t=this.index;for(this.advance();an(this.peek);)this.advance();var e=this.input.substring(t,this.index);return $e.indexOf(e)>-1?new Xe(t,Ke.Keyword,0,e):new Xe(t,Ke.Identifier,0,e)},t.prototype.scanNumber=function(t){var e,n=this.index===t;for(this.advance();;){if(ot(this.peek));else if(46===this.peek)n=!1;else{if(101!==(e=this.peek)&&69!==e)break;if(this.advance(),rn(this.peek)&&this.advance(),!ot(this.peek))return this.error("Invalid exponent",-1);n=!1}this.advance()}var a=this.input.substring(t,this.index),r=n?function(t){var e=parseInt(t,10);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}(a):parseFloat(a);return new Xe(t,Ke.Number,r,"")},t.prototype.scanString=function(){var t=this.index,e=this.peek;this.advance();for(var n="",a=this.index,r=this.input;this.peek!==e;)if(92===this.peek){n+=r.substring(a,this.index),this.advance();var i=void 0;if(this.peek=this.peek,117===this.peek){var s=r.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(s))return this.error("Invalid unicode escape [\\u"+s+"]",0);i=parseInt(s,16);for(var o=0;o<5;o++)this.advance()}else i=sn(this.peek),this.advance();n+=String.fromCharCode(i),a=this.index}else{if(this.peek===N)return this.error("Unterminated quote",0);this.advance()}var u=r.substring(a,this.index);return this.advance(),new Xe(t,Ke.String,0,n+u)},t.prototype.error=function(t,e){var n=this.index+e;return function(t,e){return new Xe(n,Ke.Error,0,e)}(0,"Lexer Error: "+t+" at column "+n+" in expression ["+this.input+"]")},t}();function nn(t){return X<=t&&t<=at||W<=t&&t<=$||t===Z||t===q}function an(t){return ut(t)||ot(t)||t===Z||t===q}function rn(t){return t===z||t===F}function sn(t){switch(t){case Q:return A;case J:return E;case tt:return L;case et:return R;case nt:return D;default:return t}}var on=function(){return function(t,e,n){this.strings=t,this.expressions=e,this.offsets=n}}(),un=function(){return function(t,e,n){this.templateBindings=t,this.warnings=e,this.errors=n}}();function cn(t){var e=C(t.start)+"([\\s\\S]*?)"+C(t.end);return new RegExp(e,"g")}var ln=function(){function t(t){this._lexer=t,this.errors=[]}return t.prototype.parseAction=function(t,e,n){void 0===n&&(n=k),this._checkNoInterpolation(t,e,n);var a=this._stripComments(t),r=this._lexer.tokenize(this._stripComments(t)),i=new dn(t,e,r,a.length,!0,this.errors,t.length-a.length).parseChain();return new Ue(i,t,e,this.errors)},t.prototype.parseBinding=function(t,e,n){void 0===n&&(n=k);var a=this._parseBindingAst(t,e,n);return new Ue(a,t,e,this.errors)},t.prototype.parseSimpleBinding=function(t,e,n){void 0===n&&(n=k);var a=this._parseBindingAst(t,e,n),r=fn.check(a);return r.length>0&&this._reportError("Host binding expression cannot contain "+r.join(" "),t,e),new Ue(a,t,e,this.errors)},t.prototype._reportError=function(t,e,n,a){this.errors.push(new Te(t,e,n,a))},t.prototype._parseBindingAst=function(t,e,n){var a=this._parseQuote(t,e);if(null!=a)return a;this._checkNoInterpolation(t,e,n);var r=this._stripComments(t),i=this._lexer.tokenize(r);return new dn(t,e,i,r.length,!1,this.errors,t.length-r.length).parseChain()},t.prototype._parseQuote=function(t,e){if(null===t)return null;var n=t.indexOf(":");if(-1===n)return null;var a=t.substring(0,n).trim();if(!function(t){if(0===a.length)return!1;var e=new en(a);if(!nn(e.peek))return!1;for(e.advance();e.peek!==N;){if(!an(e.peek))return!1;e.advance()}return!0}())return null;var r=t.substring(n+1);return new Oe(new we(0,t.length),a,r,e)},t.prototype.parseTemplateBindings=function(t,e,n){var r=this._lexer.tokenize(e);if(t){var i=this._lexer.tokenize(t).map(function(t){return t.index=0,t});r.unshift.apply(r,Object(a.__spread)(i))}return new dn(e,n,r,e.length,!1,this.errors,0).parseTemplateBindings()},t.prototype.parseInterpolation=function(t,e,n){void 0===n&&(n=k);var a=this.splitInterpolation(t,e,n);if(null===a)return null;for(var r=[],i=0;i0?(u+=n.start.length,s.push(l),o.push(u),u+=l.length+n.end.length):(this._reportError("Blank expressions are not allowed in interpolated strings",t,"at column "+this._findInterpolationErrorColumn(r,c,n)+" in",e),s.push("$implict"),o.push(u))}return new on(i,s,o)},t.prototype.wrapLiteralPrimitive=function(t,e){return new Ue(new Me(new we(0,null===t?0:t.length),t),t,e,this.errors)},t.prototype._stripComments=function(t){var e=this._commentStart(t);return null!=e?t.substring(0,e).trim():t},t.prototype._commentStart=function(t){for(var e,n=null,a=0;a1&&this._reportError("Got interpolation ("+n.start+n.end+") where expression was expected",t,"at column "+this._findInterpolationErrorColumn(r,1,n)+" in",e)},t.prototype._findInterpolationErrorColumn=function(t,e,n){for(var a="",r=0;r":case"<=":case">=":this.advance();var n=this.parseAdditive();t=new ze(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parseAdditive=function(){for(var t=this.parseMultiplicative();this.next.type===Ke.Operator;){var e=this.next.strValue;switch(e){case"+":case"-":this.advance();var n=this.parseMultiplicative();t=new ze(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parseMultiplicative=function(){for(var t=this.parsePrefix();this.next.type===Ke.Operator;){var e=this.next.strValue;switch(e){case"*":case"%":case"/":this.advance();var n=this.parsePrefix();t=new ze(this.span(t.span.start),e,t,n);continue}break}return t},t.prototype.parsePrefix=function(){if(this.next.type===Ke.Operator){var t=this.inputIndex,e=this.next.strValue,n=void 0;switch(e){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),n=this.parsePrefix(),new ze(this.span(t),e,new Me(new we(t,t),0),n);case"!":return this.advance(),n=this.parsePrefix(),new Ge(this.span(t),n)}}return this.parseCallChain()},t.prototype.parseCallChain=function(){for(var t=this.parsePrimary();;)if(this.optionalCharacter(46))t=this.parseAccessMemberOrMethodCall(t,!1);else if(this.optionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,!0);else if(this.optionalCharacter(91)){this.rbracketsExpected++;var e=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(93),this.optionalOperator("=")){var n=this.parseConditional();t=new Le(this.span(t.span.start),t,e,n)}else t=new Ee(this.span(t.span.start),t,e)}else if(this.optionalCharacter(40)){this.rparensExpected++;var a=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(41),t=new Be(this.span(t.span.start),t,a)}else{if(!this.optionalOperator("!"))return t;t=new Ye(this.span(t.span.start),t)}},t.prototype.parsePrimary=function(){var t=this.inputIndex;if(this.optionalCharacter(40)){this.rparensExpected++;var e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),e}if(this.next.isKeywordNull())return this.advance(),new Me(this.span(t),null);if(this.next.isKeywordUndefined())return this.advance(),new Me(this.span(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new Me(this.span(t),!0);if(this.next.isKeywordFalse())return this.advance(),new Me(this.span(t),!1);if(this.next.isKeywordThis())return this.advance(),new Ce(this.span(t));if(this.optionalCharacter(91)){this.rbracketsExpected++;var n=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new qe(this.span(t),n)}if(this.next.isCharacter(rt))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Ce(this.span(t)),!1);if(this.next.isNumber()){var a=this.next.toNumber();return this.advance(),new Me(this.span(t),a)}if(this.next.isString()){var r=this.next.toString();return this.advance(),new Me(this.span(t),r)}return this.index>=this.tokens.length?(this.error("Unexpected end of expression: "+this.input),new Ie(this.span(t))):(this.error("Unexpected token "+this.next),new Ie(this.span(t)))},t.prototype.parseExpressionList=function(t){var e=[];if(!this.next.isCharacter(t))do{e.push(this.parsePipe())}while(this.optionalCharacter(44));return e},t.prototype.parseLiteralMap=function(){var t=[],e=[],n=this.inputIndex;if(this.expectCharacter(rt),!this.optionalCharacter(125)){this.rbracesExpected++;do{var a=this.next.isString(),r=this.expectIdentifierOrKeywordOrString();t.push({key:r,quoted:a}),this.expectCharacter(58),e.push(this.parsePipe())}while(this.optionalCharacter(44));this.rbracesExpected--,this.expectCharacter(125)}return new je(this.span(n),t,e)},t.prototype.parseAccessMemberOrMethodCall=function(t,e){void 0===e&&(e=!1);var n=t.span.start,a=this.expectIdentifierOrKeyword();if(this.optionalCharacter(40)){this.rparensExpected++;var r=this.parseCallArguments();this.expectCharacter(41),this.rparensExpected--;var i=this.span(n);return e?new He(i,t,a,r):new Ve(i,t,a,r)}if(e)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new Ie(this.span(n))):new De(this.span(n),t,a);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new Ie(this.span(n));var s=this.parseConditional();return new Ae(this.span(n),t,a,s)}return new Re(this.span(n),t,a)},t.prototype.parseCallArguments=function(){if(this.next.isCharacter(41))return[];var t=[];do{t.push(this.parsePipe())}while(this.optionalCharacter(44));return t},t.prototype.expectTemplateBindingKey=function(){var t="",e=!1;do{t+=this.expectIdentifierOrKeywordOrString(),(e=this.optionalOperator("-"))&&(t+="-")}while(e);return t.toString()},t.prototype.parseTemplateBindings=function(){for(var t=[],e=null;this.index":">")},t.prototype._hashClosingTag=function(t){return this._hashTag("/"+t,{},!1)},t.prototype._generateUniqueName=function(t){if(!this._placeHolderNameCounts.hasOwnProperty(t))return this._placeHolderNameCounts[t]=1,t;var e=this._placeHolderNameCounts[t];return this._placeHolderNameCounts[t]=e+1,t+"_"+e},t}(),gn=new ln(new Ze),bn=function(){function t(t,e){this._expressionParser=t,this._interpolationConfig=e}return t.prototype.toI18nMessage=function(t,e,n,a){this._isIcu=1===t.length&&t[0]instanceof o,this._icuDepth=0,this._placeholderRegistry=new hn,this._placeholderToContent={},this._placeholderToMessage={};var r=f(this,t,{});return new p(r,this._placeholderToContent,this._placeholderToMessage,e,n,a)},t.prototype.visitElement=function(t,e){var n=f(this,t.children),a={};t.attrs.forEach(function(t){a[t.name]=t.value});var r=Ft(t.name).isVoid,i=this._placeholderRegistry.getStartTagPlaceholderName(t.name,a,r);this._placeholderToContent[i]=t.sourceSpan?t.sourceSpan.toString():"";var s="";return r||(s=this._placeholderRegistry.getCloseTagPlaceholderName(t.name),this._placeholderToContent[s]=""),new m(t.name,a,i,s,n,r,t.sourceSpan)},t.prototype.visitAttribute=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitText=function(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)},t.prototype.visitComment=function(t,e){return null},t.prototype.visitExpansion=function(e,n){var a=this;this._icuDepth++;var r={},i=new b(e.switchValue,e.type,r,e.sourceSpan);if(e.cases.forEach(function(t){r[t.value]=new g(t.expression.map(function(t){return t.visit(a,{})}),t.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0){var s=this._placeholderRegistry.getUniquePlaceholder("VAR_"+e.type);return i.expressionPlaceholder=s,this._placeholderToContent[s]=e.switchValue,i}var o=this._placeholderRegistry.getPlaceholderName("ICU",e.sourceSpan.toString()),u=new t(this._expressionParser,this._interpolationConfig);return this._placeholderToMessage[o]=u.toI18nMessage([e],"","",""),new v(i,o,e.sourceSpan)},t.prototype.visitExpansionCase=function(t,e){throw new Error("Unreachable code")},t.prototype._visitTextWithInterpolation=function(t,e){var n=this._expressionParser.splitInterpolation(t,e.start.toString(),this._interpolationConfig);if(!n)return new h(t,e);for(var a=[],r=new g(a,e),i=this._interpolationConfig,s=i.start,o=i.end,u=0;u":"<"+a+" "+r+">"+t.children.map(function(t){return t.visit(n)}).join("")+""},t.prototype.visitIcuPlaceholder=function(t,e){return this.convertToText(this._srcMsg.placeholderToMessage[t.name])},t.prototype.convertToText=function(t){var e,n=this,a=this._digest(t),r=this._mapperFactory?this._mapperFactory(t):null;this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=t,this._i18nNodesByMsgId.hasOwnProperty(a)?(e=this._i18nNodesByMsgId[a],this._mapper=function(t){return r?r.toInternalName(t):t}):(this._missingTranslationStrategy===i.MissingTranslationStrategy.Error?this._addError(t.nodes[0],'Missing translation for message "'+a+'"'):this._console&&this._missingTranslationStrategy===i.MissingTranslationStrategy.Warning&&this._console.warn('Missing translation for message "'+a+'"'),e=t.nodes,this._mapper=function(t){return t});var s=e.map(function(t){return t.visit(n)}).join(""),o=this._contextStack.pop();return this._srcMsg=o.msg,this._mapper=o.mapper,s},t.prototype.convertToValue=function(t){var e=t.replace(this._interpolationConfig.start,"").replace(this._interpolationConfig.end,"");return-1!==this._paramKeys.indexOf(e)?this._params[e]:t},t.prototype._addError=function(t,e){this._errors.push(new I(t.sourceSpan,e))},t}(),Tn=function(){var t={Extract:0,Merge:1};return t[t.Extract]="Extract",t[t.Merge]="Merge",t}(),wn=function(){function t(t){void 0===t&&(t=[]),this._implicitTags=t,this.blockChildren=[]}return t.prototype.extract=function(t,e){return this.init(Tn.Extract,e),t.visit(this,null),this.inI18nBlock&&this._reportError(t,"Unclosed block"),new vn(this.messages,this.errors)},t.prototype.merge=function(t,e,n,a,r){void 0===r&&(r={}),this.init(Tn.Merge,n,a),this.translations=e,this.metadata=r;var i=t.visit(this,null);return this.inI18nBlock&&this._reportError(t,"Unclosed block"),new Rt(i.children,this.errors)},t.prototype.visitExpansionCase=function(t,e){var n=f(this,t.expression,e);if(this.mode===Tn.Merge)return new u(t.value,n,t.sourceSpan,t.valueSourceSpan,t.expSourceSpan)},t.prototype.visitExpansion=function(t,e){this.mayBeAddBlockChildren(t);var n=this.inIcu;this.inIcu||(this.isInTranslatableSection&&this.addMessage([t]),this.inIcu=!0);var a=f(this,t.cases,e);return this.mode===Tn.Merge&&(t=new o(t.switchValue,t.type,a,t.sourceSpan,t.switchValueSourceSpan)),this.inIcu=n,t},t.prototype.visitComment=function(t,e){},t.prototype.visitText=function(t,e){return this.isInTranslatableSection&&this.mayBeAddBlockChildren(t),t},t.prototype.visitElement=function(t,e){var n=this;this.mayBeAddBlockChildren(t),this.depth++;var a=this.inI18nNode,r=this.inImplicitNode,i=[],s=void 0,o=t.attrs.find(function(t){return"i18n"===t.name})||null,u=this._implicitTags.some(function(e){return t.name===e})&&!this.inIcu&&!this.isInTranslatableSection,c=!r&&u;if(this.inImplicitNode=r||u,this.isInTranslatableSection||this.inIcu)(o||c)&&this._reportError(t,"Could not mark an element as translatable inside a translatable section"),this.mode===Tn.Extract&&f(this,t.children);else{if(o||c){this.inI18nNode=!0;var d=this.addMessage(t.children,this.metadata);s=this.translateMessage(t,d)}if(this.mode===Tn.Extract){var p=o||c;p&&this.openTranslatableSection(t),f(this,t.children),p&&this._closeTranslatableSection(t,t.children)}}return this.mode===Tn.Merge&&(s||t.children).forEach(function(t){var a=t.visit(n,e);a&&!n.isInTranslatableSection&&(i=i.concat(a))}),this.depth--,this.inI18nNode=a,this.inImplicitNode=r,this.mode===Tn.Merge?new l(t.name,[],i,t.sourceSpan,t.startSourceSpan,t.endSourceSpan):null},t.prototype.visitAttribute=function(t,e){throw new Error("unreachable code")},t.prototype.init=function(t,e,n){void 0===n&&(n={}),this.mode=t,this.inI18nBlock=!1,this.inI18nNode=!1,this.depth=0,this.inIcu=!1,this.msgCountAtSectionStart=void 0,this.errors=[],this.messages=[],this.inImplicitNode=!1,this.createI18nMessage=function(t){var e=new bn(gn,t);return function(t,n,a,r){return e.toI18nMessage(t,n,a,r)}}(e),this.params=n},t.prototype.addMessage=function(t,e){var n=void 0===e?{}:e,a=n.meaning,r=n.description,i=n.id;if(0===t.length||1===t.length&&t[0]instanceof c&&!t[0].value)return null;var s=this.createI18nMessage(t,void 0===a?"":a,void 0===r?"":r,void 0===i?"":i);return this.messages.push(s),s},t.prototype.translateMessage=function(t,e){if(e&&this.mode===Tn.Merge){var n=this.translations.get(e,this.params);if(n)return n;this._reportError(t,'Translation unavailable for message id="'+this.translations.digest(e)+'"')}return[]},t.prototype.mayBeAddBlockChildren=function(t){this.inI18nBlock&&!this.inIcu&&this.depth===this.blockStartDepth&&this.blockChildren.push(t)},t.prototype.openTranslatableSection=function(t){this.isInTranslatableSection?this._reportError(t,"Unexpected section start"):this.msgCountAtSectionStart=this.messages.length},Object.defineProperty(t.prototype,"isInTranslatableSection",{get:function(){return void 0!==this.msgCountAtSectionStart},enumerable:!0,configurable:!0}),t.prototype._closeTranslatableSection=function(t,e){if(this.isInTranslatableSection){var n=this.msgCountAtSectionStart;if(1===e.reduce(function(t,e){return t+(e instanceof d?0:1)},0))for(var a=this.messages.length-1;a>=n;a--){var r=this.messages[a].nodes;if(!(1===r.length&&r[0]instanceof h)){this.messages.splice(a,1);break}}this.msgCountAtSectionStart=void 0}else this._reportError(t,"Unexpected section end")},t.prototype._reportError=function(t,e){this.errors.push(new I(t.sourceSpan,e))},t}(),Sn=new i.InjectionToken("MissingTranslationStrategy"),On=function(){return function(t,e,n,a){var r,s;void 0===a&&(a=i.MissingTranslationStrategy.Warning);var o=function(t){return null};switch(t=(t||"xlf").toLowerCase()){case"xtb":r=me,s=ye,o=ve;break;case"xliff2":case"xlf2":r=fe,s=pe;break;case"xliff":case"xlf":r=ue,s=ce;break;default:throw new Error("Unknown translations format "+t)}var u=new yn,c=_n.load(e,"i18n",s,o,r,a);return function(t,e){void 0===e&&(e={});var a="string"==typeof t?t:t.value,r={};"object"==typeof t&&(r.id=t.id,r.meaning=t.meaning,r.description=t.description);var i=u.parse(a,"",!0);if(i.errors.length)throw i.errors;return function(t,e,n){return t.map(function(t){return t.visit(new Yt(e,n),null)})}(u.mergeTranslations(i.rootNodes,c,e,r,["wrapper"]).rootNodes,n,e).join("")}}}()},JvlW:function(t,e,n){!function(t){"use strict";var e={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function n(t,e,n,a){return e?r(n)[0]:a?r(n)[1]:r(n)[2]}function a(t){return t%10==0||t>10&&t<20}function r(t){return e[t].split("_")}function i(t,e,i,s){var o=t+" ";return 1===t?o+n(0,e,i[0],s):e?o+(a(t)?r(i)[1]:r(i)[0]):s?o+r(i)[1]:o+(a(t)?r(i)[1]:r(i)[2])}t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:function(t,e,n,a){return e?"kelios sekund\u0117s":a?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"},ss:i,m:n,mm:i,h:n,hh:i,d:n,dd:i,M:n,MM:i,y:n,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}})}(n("wd/R"))},JxMD:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("xdbM");n("dgut"),n("Fgil"),n.d(e,"a",function(){return s}),n.d(e,"b",function(){return o});var s=a["\u0275crt"]({encapsulation:0,styles:[["canvas[_ngcontent-%COMP%]{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;-webkit-transition:.1s;transition:all .1s ease;pointer-events:none;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif!important;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{-webkit-transform:translate(-10%,0);transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{-webkit-transform:translate(-90%,0);transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:' ';position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent} .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:static!important}"]],data:{}});function o(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{chartCanvasRef:0}),a["\u0275qud"](402653184,2,{chartTooltipRef:0}),(t()(),a["\u0275eld"](2,0,null,null,5,"div",[["class","chart-container"]],null,null,null,null,null)),a["\u0275did"](3,278528,null,0,r.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),(t()(),a["\u0275eld"](4,0,[[1,0],["sparkCanvas",1]],null,1,"canvas",[["baseChart",""]],null,null,null,null,null)),a["\u0275did"](5,737280,null,0,i.BaseChartDirective,[a.ElementRef],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),a["\u0275eld"](6,0,[[2,0],["sparkTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,0,"table",[],null,null,null,null,null))],function(t,e){var n=e.component;t(e,3,0,n.style),t(e,5,0,n.datasets,n.labels,n.options,"line",n.colors)},null)}},"K/tc":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(t){return/^nm$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"vm":"VM":n?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}()},K2E3:function(t,e,n){"use strict";var a=n("6ww4"),r=n("RDha"),i=function(t){r.extend(this,t),this.initialize.apply(this,arguments)};r.extend(i.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=r.clone(t._model)),t._start={},t},transition:function(t){var e=this,n=e._model,r=e._start,i=e._view;return n&&1!==t?(i||(i=e._view={}),r||(r=e._start={}),function(t,e,n,r){var i,s,o,u,c,l,d,f,p,h=Object.keys(n);for(i=0,s=h.length;i0||(e.forEach(function(e){delete t[e]}),delete t._chartjs)}}t.DatasetController=function(t,e){this.initialize(t,e)},a.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),a=this.getDataset().data||[],r=n.data;for(t=0,e=a.length;tn&&this.insertElements(n,a-n)},insertElements:function(t,e){for(var n=0;n0?t.prototype.requestAsyncId.call(this,e,n,a):(e.actions.push(this),e.scheduled||(e.scheduled=(s=e.flush.bind(e,null),o=r++,i[o]=s,Promise.resolve().then(function(){return function(t){var e=i[t];e&&e()}(o)}),o)));var s,o},e.prototype.recycleAsyncId=function(e,n,a){if(void 0===a&&(a=0),null!==a&&a>0||null===a&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,a);0===e.actions.length&&(delete i[n],e.scheduled=void 0)},e}(n("h9Dq").a),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,a=-1,r=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++a=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},KVJa:function(t,e,n){"use strict";var a=n("CcnG");n("Z21x"),n("Ip0R"),n("sne2"),n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i});var r=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function i(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](-1,null,["\xa0\n"])),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-sm btn-default tc_backButton"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.back()&&a),a},null,null)),(t()(),a["\u0275ted"](2,null,[" ","\n"]))],null,function(t,e){t(e,2,0,e.component.name)})}},KhEm:function(t,e,n){"use strict";n.d(e,"a",function(){return u}),n.d(e,"b",function(){return l});var a=n("mrSG"),r=n("K9Ia"),i=n("6blF"),s=(n("FFOo"),n("pugT")),o=n("yGWI"),u=function(t){function e(e,n){var a=t.call(this)||this;return a.source=e,a.subjectFactory=n,a._refCount=0,a._isComplete=!1,a}return a.__extends(e,t),e.prototype._subscribe=function(t){return this.getSubject().subscribe(t)},e.prototype.getSubject=function(){var t=this._subject;return t&&!t.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var t=this._connection;return t||(this._isComplete=!1,(t=this._connection=new s.a).add(this.source.subscribe(new d(this.getSubject(),this))),t.closed&&(this._connection=null,t=s.a.EMPTY)),t},e.prototype.refCount=function(){return Object(o.a)()(this)},e}(i.a),c=u.prototype,l={operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:c._subscribe},_isComplete:{value:c._isComplete,writable:!0},getSubject:{value:c.getSubject},connect:{value:c.connect},refCount:{value:c.refCount}},d=function(t){function e(e,n){var a=t.call(this,e)||this;return a.connectable=n,a}return a.__extends(e,t),e.prototype._error=function(e){this._unsubscribe(),t.prototype._error.call(this,e)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var t=this.connectable;if(t){this.connectable=null;var e=t._connection;t._refCount=0,t._subject=null,t._connection=null,e&&e.unsubscribe()}},e}(r.b)},"L/V9":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random()},L5sC:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DataTableColumnCellTreeToggle=function(){return a([r.Directive({selector:"[ngx-datatable-tree-toggle]"})],function(t){this.template=t})}()},LceX:function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return i}),n.d(e,"d",function(){return s}),n.d(e,"e",function(){return o}),n.d(e,"f",function(){return u}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return l});var a=n("sne2"),r=(n("eTJe"),n("n/D3"),n("V3my"),n("ZEkX"),function(){return function(){}}()),i={breadcrumbs:"Users"},s={breadcrumbs:a.a.CREATE},o={breadcrumbs:a.a.EDIT},u={breadcrumbs:"Roles"},c={breadcrumbs:a.a.CREATE},l={breadcrumbs:a.a.EDIT},d=function(){return function(){}}()},Loxo:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}()},LvDl:function(t,e,n){(function(t){var a;(function(){var r,i=200,s="Expected a function",o="__lodash_placeholder__",u=1,c=2,l=4,d=1,f=2,p=1,h=2,g=4,b=8,m=16,y=32,v=64,_=128,x=256,T=512,w=800,S=16,O=1/0,I=9007199254740991,C=1.7976931348623157e308,k=NaN,N=4294967295,R=N-1,A=N>>>1,D=[["ary",_],["bind",p],["bindKey",h],["curry",b],["curryRight",m],["flip",T],["partial",y],["partialRight",v],["rearg",x]],E="[object Arguments]",L="[object Array]",P="[object AsyncFunction]",M="[object Boolean]",q="[object Date]",j="[object DOMException]",F="[object Error]",z="[object Function]",G="[object GeneratorFunction]",Y="[object Map]",V="[object Number]",H="[object Null]",B="[object Object]",U="[object Proxy]",W="[object RegExp]",K="[object Set]",$="[object String]",Z="[object Symbol]",X="[object Undefined]",J="[object WeakMap]",Q="[object ArrayBuffer]",tt="[object DataView]",et="[object Float32Array]",nt="[object Float64Array]",at="[object Int8Array]",rt="[object Int16Array]",it="[object Int32Array]",st="[object Uint8Array]",ot="[object Uint8ClampedArray]",ut="[object Uint16Array]",ct="[object Uint32Array]",lt=/\b__p \+= '';/g,dt=/\b(__p \+=) '' \+/g,ft=/(__e\(.*?\)|\b__t\)) \+\n'';/g,pt=/&(?:amp|lt|gt|quot|#39);/g,ht=/[&<>"']/g,gt=RegExp(pt.source),bt=RegExp(ht.source),mt=/<%-([\s\S]+?)%>/g,yt=/<%([\s\S]+?)%>/g,vt=/<%=([\s\S]+?)%>/g,_t=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xt=/^\w*$/,Tt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,wt=/[\\^$.*+?()[\]{}|]/g,St=RegExp(wt.source),Ot=/^\s+|\s+$/g,It=/^\s+/,Ct=/\s+$/,kt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Nt=/\{\n\/\* \[wrapped with (.+)\] \*/,Rt=/,? & /,At=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Dt=/\\(\\)?/g,Et=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Lt=/\w*$/,Pt=/^[-+]0x[0-9a-f]+$/i,Mt=/^0b[01]+$/i,qt=/^\[object .+?Constructor\]$/,jt=/^0o[0-7]+$/i,Ft=/^(?:0|[1-9]\d*)$/,zt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Gt=/($^)/,Yt=/['\n\r\u2028\u2029\\]/g,Vt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ht="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Bt="["+Ht+"]",Ut="["+Vt+"]",Wt="\\d+",Kt="[a-z\\xdf-\\xf6\\xf8-\\xff]",$t="[^\\ud800-\\udfff"+Ht+Wt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",Zt="\\ud83c[\\udffb-\\udfff]",Xt="[^\\ud800-\\udfff]",Jt="(?:\\ud83c[\\udde6-\\uddff]){2}",Qt="[\\ud800-\\udbff][\\udc00-\\udfff]",te="[A-Z\\xc0-\\xd6\\xd8-\\xde]",ee="(?:"+Kt+"|"+$t+")",ne="(?:"+te+"|"+$t+")",ae="(?:"+Ut+"|"+Zt+")?",re="[\\ufe0e\\ufe0f]?"+ae+"(?:\\u200d(?:"+[Xt,Jt,Qt].join("|")+")[\\ufe0e\\ufe0f]?"+ae+")*",ie="(?:"+["[\\u2700-\\u27bf]",Jt,Qt].join("|")+")"+re,se="(?:"+[Xt+Ut+"?",Ut,Jt,Qt,"[\\ud800-\\udfff]"].join("|")+")",oe=RegExp("['\u2019]","g"),ue=RegExp(Ut,"g"),ce=RegExp(Zt+"(?="+Zt+")|"+se+re,"g"),le=RegExp([te+"?"+Kt+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?="+[Bt,te,"$"].join("|")+")",ne+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?="+[Bt,te+ee,"$"].join("|")+")",te+"?"+ee+"+(?:['\u2019](?:d|ll|m|re|s|t|ve))?",te+"+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Wt,ie].join("|"),"g"),de=RegExp("[\\u200d\\ud800-\\udfff"+Vt+"\\ufe0e\\ufe0f]"),fe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,pe=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],he=-1,ge={};ge[et]=ge[nt]=ge[at]=ge[rt]=ge[it]=ge[st]=ge[ot]=ge[ut]=ge[ct]=!0,ge[E]=ge[L]=ge[Q]=ge[M]=ge[tt]=ge[q]=ge[F]=ge[z]=ge[Y]=ge[V]=ge[B]=ge[W]=ge[K]=ge[$]=ge[J]=!1;var be={};be[E]=be[L]=be[Q]=be[tt]=be[M]=be[q]=be[et]=be[nt]=be[at]=be[rt]=be[it]=be[Y]=be[V]=be[B]=be[W]=be[K]=be[$]=be[Z]=be[st]=be[ot]=be[ut]=be[ct]=!0,be[F]=be[z]=be[J]=!1;var me={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ye=parseFloat,ve=parseInt,_e="object"==typeof global&&global&&global.Object===Object&&global,xe="object"==typeof self&&self&&self.Object===Object&&self,Te=_e||xe||Function("return this")(),we=e&&!e.nodeType&&e,Se=we&&"object"==typeof t&&t&&!t.nodeType&&t,Oe=Se&&Se.exports===we,Ie=Oe&&_e.process,Ce=function(){try{return Se&&Se.require&&Se.require("util").types||Ie&&Ie.binding&&Ie.binding("util")}catch(t){}}(),ke=Ce&&Ce.isArrayBuffer,Ne=Ce&&Ce.isDate,Re=Ce&&Ce.isMap,Ae=Ce&&Ce.isRegExp,De=Ce&&Ce.isSet,Ee=Ce&&Ce.isTypedArray;function Le(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function Pe(t,e,n,a){for(var r=-1,i=null==t?0:t.length;++r-1}function ze(t,e,n){for(var a=-1,r=null==t?0:t.length;++a-1;);return n}function cn(t,e){for(var n=t.length;n--&&$e(e,t[n],0)>-1;);return n}var ln=tn({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),dn=tn({"&":"&","<":"<",">":">",'"':""","'":"'"});function fn(t){return"\\"+me[t]}function pn(t){return de.test(t)}function hn(t){var e=-1,n=Array(t.size);return t.forEach(function(t,a){n[++e]=[a,t]}),n}function gn(t,e){return function(n){return t(e(n))}}function bn(t,e){for(var n=-1,a=t.length,r=0,i=[];++n",""":'"',"'":"'"}),Tn=function t(e){var n,a=(e=null==e?Te:Tn.defaults(Te.Object(),e,Tn.pick(Te,pe))).Array,Vt=e.Date,Ht=e.Error,Bt=e.Function,Ut=e.Math,Wt=e.Object,Kt=e.RegExp,$t=e.String,Zt=e.TypeError,Xt=a.prototype,Jt=Wt.prototype,Qt=e["__core-js_shared__"],te=Bt.prototype.toString,ee=Jt.hasOwnProperty,ne=0,ae=(n=/[^.]+$/.exec(Qt&&Qt.keys&&Qt.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",re=Jt.toString,ie=te.call(Wt),se=Te._,ce=Kt("^"+te.call(ee).replace(wt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),de=Oe?e.Buffer:r,me=e.Symbol,_e=e.Uint8Array,xe=de?de.allocUnsafe:r,we=gn(Wt.getPrototypeOf,Wt),Se=Wt.create,Ie=Jt.propertyIsEnumerable,Ce=Xt.splice,Ue=me?me.isConcatSpreadable:r,tn=me?me.iterator:r,wn=me?me.toStringTag:r,Sn=function(){try{var t=Ti(Wt,"defineProperty");return t({},"",{}),t}catch(e){}}(),On=e.clearTimeout!==Te.clearTimeout&&e.clearTimeout,In=Vt&&Vt.now!==Te.Date.now&&Vt.now,Cn=e.setTimeout!==Te.setTimeout&&e.setTimeout,kn=Ut.ceil,Nn=Ut.floor,Rn=Wt.getOwnPropertySymbols,An=de?de.isBuffer:r,Dn=e.isFinite,En=Xt.join,Ln=gn(Wt.keys,Wt),Pn=Ut.max,Mn=Ut.min,qn=Vt.now,jn=e.parseInt,Fn=Ut.random,zn=Xt.reverse,Gn=Ti(e,"DataView"),Yn=Ti(e,"Map"),Vn=Ti(e,"Promise"),Hn=Ti(e,"Set"),Bn=Ti(e,"WeakMap"),Un=Ti(Wt,"create"),Wn=Bn&&new Bn,Kn={},$n=Ki(Gn),Zn=Ki(Yn),Xn=Ki(Vn),Jn=Ki(Hn),Qn=Ki(Bn),ta=me?me.prototype:r,ea=ta?ta.valueOf:r,na=ta?ta.toString:r;function aa(t){if(fo(t)&&!to(t)&&!(t instanceof oa)){if(t instanceof sa)return t;if(ee.call(t,"__wrapped__"))return $i(t)}return new sa(t)}var ra=function(){function t(){}return function(e){if(!lo(e))return{};if(Se)return Se(e);t.prototype=e;var n=new t;return t.prototype=r,n}}();function ia(){}function sa(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=r}function oa(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=N,this.__views__=[]}function ua(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function wa(t,e,n,a,i,s){var o,d=e&u,f=e&c,p=e&l;if(n&&(o=i?n(t,a,i,s):n(t)),o!==r)return o;if(!lo(t))return t;var h=to(t);if(h){if(o=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&ee.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!d)return zr(t,o)}else{var g=Oi(t),b=g==z||g==G;if(ro(t))return Lr(t,d);if(g==B||g==E||b&&!i){if(o=f||b?{}:Ci(t),!d)return f?function(t,e){return Gr(t,Si(t),e)}(t,function(e,n){return e&&Gr(t,Vo(t),e)}(o)):function(t,e){return Gr(t,wi(t),e)}(t,va(o,t))}else{if(!be[g])return i?t:{};o=function(t,e,n){var a,r,i=t.constructor;switch(e){case Q:return Pr(t);case M:case q:return new i(+t);case tt:return function(t,e){var n=e?Pr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case et:case nt:case at:case rt:case it:case st:case ot:case ut:case ct:return Mr(t,n);case Y:return new i;case V:case $:return new i(t);case W:return(r=new(a=t).constructor(a.source,Lt.exec(a))).lastIndex=a.lastIndex,r;case K:return new i;case Z:return ea?Wt(ea.call(t)):{}}}(t,g,d)}}s||(s=new fa);var m=s.get(t);if(m)return m;s.set(t,o),mo(t)?t.forEach(function(a){o.add(wa(a,e,n,a,t,s))}):po(t)&&t.forEach(function(a,r){o.set(r,wa(a,e,n,r,t,s))});var y=h?r:(p?f?gi:hi:f?Vo:Yo)(t);return Me(y||t,function(a,r){y&&(a=t[r=a]),ba(o,r,wa(a,e,n,r,t,s))}),o}function Sa(t,e,n){var a=n.length;if(null==t)return!a;for(t=Wt(t);a--;){var i=n[a],s=t[i];if(s===r&&!(i in t)||!(0,e[i])(s))return!1}return!0}function Oa(t,e,n){if("function"!=typeof t)throw new Zt(s);return Gi(function(){t.apply(r,n)},e)}function Ia(t,e,n,a){var r=-1,s=Fe,o=!0,u=t.length,c=[],l=e.length;if(!u)return c;n&&(e=Ge(e,rn(n))),a?(s=ze,o=!1):e.length>=i&&(s=on,o=!1,e=new da(e));t:for(;++r-1},ca.prototype.set=function(t,e){var n=this.__data__,a=ma(n,t);return a<0?(++this.size,n.push([t,e])):n[a][1]=e,this},la.prototype.clear=function(){this.size=0,this.__data__={hash:new ua,map:new(Yn||ca),string:new ua}},la.prototype.delete=function(t){var e=_i(this,t).delete(t);return this.size-=e?1:0,e},la.prototype.get=function(t){return _i(this,t).get(t)},la.prototype.has=function(t){return _i(this,t).has(t)},la.prototype.set=function(t,e){var n=_i(this,t),a=n.size;return n.set(t,e),this.size+=n.size==a?0:1,this},da.prototype.add=da.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},da.prototype.has=function(t){return this.__data__.has(t)},fa.prototype.clear=function(){this.__data__=new ca,this.size=0},fa.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},fa.prototype.get=function(t){return this.__data__.get(t)},fa.prototype.has=function(t){return this.__data__.has(t)},fa.prototype.set=function(t,e){var n=this.__data__;if(n instanceof ca){var a=n.__data__;if(!Yn||a.length0&&n(o)?e>1?Da(o,e-1,n,a,r):Ye(r,o):a||(r[r.length]=o)}return r}var Ea=Br(),La=Br(!0);function Pa(t,e){return t&&Ea(t,e,Yo)}function Ma(t,e){return t&&La(t,e,Yo)}function qa(t,e){return je(e,function(e){return oo(t[e])})}function ja(t,e){for(var n=0,a=(e=Rr(e,t)).length;null!=t&&ne}function Ya(t,e){return null!=t&&ee.call(t,e)}function Va(t,e){return null!=t&&e in Wt(t)}function Ha(t,e,n){for(var i=n?ze:Fe,s=t[0].length,o=t.length,u=o,c=a(o),l=1/0,d=[];u--;){var f=t[u];u&&e&&(f=Ge(f,rn(e))),l=Mn(f.length,l),c[u]=!n&&(e||s>=120&&f.length>=120)?new da(u&&f):r}f=t[0];var p=-1,h=c[0];t:for(;++p=o?u:u*("desc"==n[a]?-1:1)}return t.index-e.index}(t,e,n)});a--;)t[a]=t[a].value;return t}(Qa(t,function(t,n,r){return{criteria:Ge(e,function(e){return e(t)}),index:++a,value:t}}))}function ir(t,e,n){for(var a=-1,r=e.length,i={};++a-1;)o!==t&&Ce.call(o,u,1),Ce.call(t,u,1);return t}function or(t,e){for(var n=t?e.length:0,a=n-1;n--;){var r=e[n];if(n==a||r!==i){var i=r;Ni(r)?Ce.call(t,r,1):Tr(t,r)}}return t}function ur(t,e){return t+Nn(Fn()*(e-t+1))}function cr(t,e){var n="";if(!t||e<1||e>I)return n;do{e%2&&(n+=t),(e=Nn(e/2))&&(t+=t)}while(e);return n}function lr(t,e){return Yi(qi(t,e,hu),t+"")}function dr(t,e,n,a){if(!lo(t))return t;for(var i=-1,s=(e=Rr(e,t)).length,o=s-1,u=t;null!=u&&++ii?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=a(i);++r>>1,s=t[i];null!==s&&!vo(s)&&(n?s<=e:s=i){var l=e?null:si(t);if(l)return mn(l);o=!1,r=on,c=new da}else c=e?[]:u;t:for(;++a=a?t:hr(t,e,n)}var Er=On||function(t){return Te.clearTimeout(t)};function Lr(t,e){if(e)return t.slice();var n=t.length,a=xe?xe(n):new t.constructor(n);return t.copy(a),a}function Pr(t){var e=new t.constructor(t.byteLength);return new _e(e).set(new _e(t)),e}function Mr(t,e){var n=e?Pr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function qr(t,e){if(t!==e){var n=t!==r,a=null===t,i=t==t,s=vo(t),o=e!==r,u=null===e,c=e==e,l=vo(e);if(!u&&!l&&!s&&t>e||s&&o&&c&&!u&&!l||a&&o&&c||!n&&c||!i)return 1;if(!a&&!s&&!l&&t1?n[i-1]:r,o=i>2?n[2]:r;for(s=t.length>3&&"function"==typeof s?(i--,s):r,o&&Ri(n[0],n[1],o)&&(s=i<3?r:s,i=1),e=Wt(e);++a-1?i[s?e[o]:o]:r}}function Zr(t){return pi(function(e){var n=e.length,a=n,i=sa.prototype.thru;for(t&&e.reverse();a--;){var o=e[a];if("function"!=typeof o)throw new Zt(s);if(i&&!u&&"wrapper"==mi(o))var u=new sa([],!0)}for(a=u?a:n;++a1&&b.reverse(),f&&lu))return!1;var l=s.get(t);if(l&&s.get(e))return l==e;var p=-1,h=!0,g=n&f?new da:r;for(s.set(t,e),s.set(e,t);++p-1&&t%1==0&&t1?"& ":"")+e[a],e=e.join(n>2?", ":" "),t.replace(kt,"{\n/* [wrapped with "+e+"] */\n")}(a,function(t,e){return Me(D,function(n){var a="_."+n[0];e&n[1]&&!Fe(t,a)&&t.push(a)}),t.sort()}(function(t){var e=t.match(Nt);return e?e[1].split(Rt):[]}(a),n)))}function Hi(t){var e=0,n=0;return function(){var a=qn(),i=S-(a-n);if(n=a,i>0){if(++e>=w)return arguments[0]}else e=0;return t.apply(r,arguments)}}function Bi(t,e){var n=-1,a=t.length,i=a-1;for(e=e===r?a:e;++n1?t[e-1]:r;return n="function"==typeof n?(t.pop(),n):r,gs(t,n)});function Ts(t){var e=aa(t);return e.__chain__=!0,e}function ws(t,e){return e(t)}var Ss=pi(function(t){var e=t.length,n=e?t[0]:0,a=this.__wrapped__,i=function(e){return xa(e,t)};return!(e>1||this.__actions__.length)&&a instanceof oa&&Ni(n)?((a=a.slice(n,+n+(e?1:0))).__actions__.push({func:ws,args:[i],thisArg:r}),new sa(a,this.__chain__).thru(function(t){return e&&!t.length&&t.push(r),t})):this.thru(i)}),Os=Yr(function(t,e,n){ee.call(t,n)?++t[n]:_a(t,n,1)}),Is=$r(Qi),Cs=$r(ts);function ks(t,e){return(to(t)?Me:Ca)(t,vi(e,3))}function Ns(t,e){return(to(t)?function(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}:ka)(t,vi(e,3))}var Rs=Yr(function(t,e,n){ee.call(t,n)?t[n].push(e):_a(t,n,[e])}),As=lr(function(t,e,n){var r=-1,i="function"==typeof e,s=no(t)?a(t.length):[];return Ca(t,function(t){s[++r]=i?Le(e,t,n):Ba(t,e,n)}),s}),Ds=Yr(function(t,e,n){_a(t,n,e)});function Es(t,e){return(to(t)?Ge:Qa)(t,vi(e,3))}var Ls=Yr(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]}),Ps=lr(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Ri(t,e[0],e[1])?e=[]:n>2&&Ri(e[0],e[1],e[2])&&(e=[e[0]]),rr(t,Da(e,1),[])}),Ms=In||function(){return Te.Date.now()};function qs(t,e,n){return e=n?r:e,ui(t,_,r,r,r,r,e=t&&null==e?t.length:e)}function js(t,e){var n;if("function"!=typeof e)throw new Zt(s);return t=Oo(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=r),n}}var Fs=lr(function(t,e,n){var a=p;if(n.length){var r=bn(n,yi(Fs));a|=y}return ui(t,a,e,n,r)}),zs=lr(function(t,e,n){var a=p|h;if(n.length){var r=bn(n,yi(zs));a|=y}return ui(e,a,t,n,r)});function Gs(t,e,n){var a,i,o,u,c,l,d=0,f=!1,p=!1,h=!0;if("function"!=typeof t)throw new Zt(s);function g(e){var n=a,s=i;return a=i=r,d=e,u=t.apply(s,n)}function b(t){var n=t-l;return l===r||n>=e||n<0||p&&t-d>=o}function m(){var t=Ms();if(b(t))return y(t);c=Gi(m,function(t){var n=e-(t-l);return p?Mn(n,o-(t-d)):n}(t))}function y(t){return c=r,h&&a?g(t):(a=i=r,u)}function v(){var t=Ms(),n=b(t);if(a=arguments,i=this,l=t,n){if(c===r)return function(t){return d=t,c=Gi(m,e),f?g(t):u}(l);if(p)return Er(c),c=Gi(m,e),g(l)}return c===r&&(c=Gi(m,e)),u}return e=Co(e)||0,lo(n)&&(f=!!n.leading,o=(p="maxWait"in n)?Pn(Co(n.maxWait)||0,e):o,h="trailing"in n?!!n.trailing:h),v.cancel=function(){c!==r&&Er(c),d=0,a=l=i=c=r},v.flush=function(){return c===r?u:y(Ms())},v}var Ys=lr(function(t,e){return Oa(t,1,e)}),Vs=lr(function(t,e,n){return Oa(t,Co(e)||0,n)});function Hs(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Zt(s);var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],i=n.cache;if(i.has(r))return i.get(r);var s=t.apply(this,a);return n.cache=i.set(r,s)||i,s};return n.cache=new(Hs.Cache||la),n}function Bs(t){if("function"!=typeof t)throw new Zt(s);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Hs.Cache=la;var Us=Ar(function(t,e){var n=(e=1==e.length&&to(e[0])?Ge(e[0],rn(vi())):Ge(Da(e,1),rn(vi()))).length;return lr(function(a){for(var r=-1,i=Mn(a.length,n);++r=e}),Qs=Ua(function(){return arguments}())?Ua:function(t){return fo(t)&&ee.call(t,"callee")&&!Ie.call(t,"callee")},to=a.isArray,eo=ke?rn(ke):function(t){return fo(t)&&za(t)==Q};function no(t){return null!=t&&co(t.length)&&!oo(t)}function ao(t){return fo(t)&&no(t)}var ro=An||Cu,io=Ne?rn(Ne):function(t){return fo(t)&&za(t)==q};function so(t){if(!fo(t))return!1;var e=za(t);return e==F||e==j||"string"==typeof t.message&&"string"==typeof t.name&&!go(t)}function oo(t){if(!lo(t))return!1;var e=za(t);return e==z||e==G||e==P||e==U}function uo(t){return"number"==typeof t&&t==Oo(t)}function co(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=I}function lo(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function fo(t){return null!=t&&"object"==typeof t}var po=Re?rn(Re):function(t){return fo(t)&&Oi(t)==Y};function ho(t){return"number"==typeof t||fo(t)&&za(t)==V}function go(t){if(!fo(t)||za(t)!=B)return!1;var e=we(t);if(null===e)return!0;var n=ee.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&te.call(n)==ie}var bo=Ae?rn(Ae):function(t){return fo(t)&&za(t)==W},mo=De?rn(De):function(t){return fo(t)&&Oi(t)==K};function yo(t){return"string"==typeof t||!to(t)&&fo(t)&&za(t)==$}function vo(t){return"symbol"==typeof t||fo(t)&&za(t)==Z}var _o=Ee?rn(Ee):function(t){return fo(t)&&co(t.length)&&!!ge[za(t)]},xo=ai(Ja),To=ai(function(t,e){return t<=e});function wo(t){if(!t)return[];if(no(t))return yo(t)?_n(t):zr(t);if(tn&&t[tn])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[tn]());var e=Oi(t);return(e==Y?hn:e==K?mn:Xo)(t)}function So(t){return t?(t=Co(t))===O||t===-O?(t<0?-1:1)*C:t==t?t:0:0===t?t:0}function Oo(t){var e=So(t),n=e%1;return e==e?n?e-n:e:0}function Io(t){return t?Ta(Oo(t),0,N):0}function Co(t){if("number"==typeof t)return t;if(vo(t))return k;if(lo(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=lo(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Ot,"");var n=Mt.test(t);return n||jt.test(t)?ve(t.slice(2),n?2:8):Pt.test(t)?k:+t}function ko(t){return Gr(t,Vo(t))}function No(t){return null==t?"":_r(t)}var Ro=Vr(function(t,e){if(Li(e)||no(e))Gr(e,Yo(e),t);else for(var n in e)ee.call(e,n)&&ba(t,n,e[n])}),Ao=Vr(function(t,e){Gr(e,Vo(e),t)}),Do=Vr(function(t,e,n,a){Gr(e,Vo(e),t,a)}),Eo=Vr(function(t,e,n,a){Gr(e,Yo(e),t,a)}),Lo=pi(xa),Po=lr(function(t,e){t=Wt(t);var n=-1,a=e.length,i=a>2?e[2]:r;for(i&&Ri(e[0],e[1],i)&&(a=1);++n1),e}),Gr(t,gi(t),n),a&&(n=wa(n,u|c|l,di));for(var r=e.length;r--;)Tr(n,e[r]);return n}),Wo=pi(function(t,e){return null==t?{}:function(t,e){return ir(t,e,function(e,n){return jo(t,n)})}(t,e)});function Ko(t,e){if(null==t)return{};var n=Ge(gi(t),function(t){return[t]});return e=vi(e),ir(t,n,function(t,n){return e(t,n[0])})}var $o=oi(Yo),Zo=oi(Vo);function Xo(t){return null==t?[]:sn(t,Yo(t))}var Jo=Wr(function(t,e,n){return e=e.toLowerCase(),t+(n?Qo(e):e)});function Qo(t){return ou(No(t).toLowerCase())}function tu(t){return(t=No(t))&&t.replace(zt,ln).replace(ue,"")}var eu=Wr(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),nu=Wr(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),au=Ur("toLowerCase"),ru=Wr(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}),iu=Wr(function(t,e,n){return t+(n?" ":"")+ou(e)}),su=Wr(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),ou=Ur("toUpperCase");function uu(t,e,n){return t=No(t),(e=n?r:e)===r?function(t){return fe.test(t)}(t)?function(t){return t.match(le)||[]}(t):function(t){return t.match(At)||[]}(t):t.match(e)||[]}var cu=lr(function(t,e){try{return Le(t,r,e)}catch(n){return so(n)?n:new Ht(n)}}),lu=pi(function(t,e){return Me(e,function(e){e=Wi(e),_a(t,e,Fs(t[e],t))}),t});function du(t){return function(){return t}}var fu=Zr(),pu=Zr(!0);function hu(t){return t}function gu(t){return Za("function"==typeof t?t:wa(t,u))}var bu=lr(function(t,e){return function(n){return Ba(n,t,e)}}),mu=lr(function(t,e){return function(n){return Ba(t,n,e)}});function yu(t,e,n){var a=Yo(e),r=qa(e,a);null!=n||lo(e)&&(r.length||!a.length)||(n=e,e=t,t=this,r=qa(e,Yo(e)));var i=!(lo(n)&&"chain"in n&&!n.chain),s=oo(t);return Me(r,function(n){var a=e[n];t[n]=a,s&&(t.prototype[n]=function(){var e=this.__chain__;if(i||e){var n=t(this.__wrapped__);return(n.__actions__=zr(this.__actions__)).push({func:a,args:arguments,thisArg:t}),n.__chain__=e,n}return a.apply(t,Ye([this.value()],arguments))})}),t}function vu(){}var _u=ti(Ge),xu=ti(qe),Tu=ti(Be);function wu(t){return Ai(t)?Qe(Wi(t)):function(t){return function(e){return ja(e,t)}}(t)}var Su=ni(),Ou=ni(!0);function Iu(){return[]}function Cu(){return!1}var ku,Nu=Qr(function(t,e){return t+e},0),Ru=ii("ceil"),Au=Qr(function(t,e){return t/e},1),Du=ii("floor"),Eu=Qr(function(t,e){return t*e},1),Lu=ii("round"),Pu=Qr(function(t,e){return t-e},0);return aa.after=function(t,e){if("function"!=typeof e)throw new Zt(s);return t=Oo(t),function(){if(--t<1)return e.apply(this,arguments)}},aa.ary=qs,aa.assign=Ro,aa.assignIn=Ao,aa.assignInWith=Do,aa.assignWith=Eo,aa.at=Lo,aa.before=js,aa.bind=Fs,aa.bindAll=lu,aa.bindKey=zs,aa.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return to(t)?t:[t]},aa.chain=Ts,aa.chunk=function(t,e,n){e=(n?Ri(t,e,n):e===r)?1:Pn(Oo(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var s=0,o=0,u=a(kn(i/e));si?0:i+n),(a=a===r||a>i?i:Oo(a))<0&&(a+=i),a=n>a?0:Io(a);n>>0)?(t=No(t))&&("string"==typeof e||null!=e&&!bo(e))&&!(e=_r(e))&&pn(t)?Dr(_n(t),0,n):t.split(e,n):[]},aa.spread=function(t,e){if("function"!=typeof t)throw new Zt(s);return e=null==e?0:Pn(Oo(e),0),lr(function(n){var a=n[e],r=Dr(n,0,e);return a&&Ye(r,a),Le(t,this,r)})},aa.tail=function(t){var e=null==t?0:t.length;return e?hr(t,1,e):[]},aa.take=function(t,e,n){return t&&t.length?hr(t,0,(e=n||e===r?1:Oo(e))<0?0:e):[]},aa.takeRight=function(t,e,n){var a=null==t?0:t.length;return a?hr(t,(e=a-(e=n||e===r?1:Oo(e)))<0?0:e,a):[]},aa.takeRightWhile=function(t,e){return t&&t.length?Sr(t,vi(e,3),!1,!0):[]},aa.takeWhile=function(t,e){return t&&t.length?Sr(t,vi(e,3)):[]},aa.tap=function(t,e){return e(t),t},aa.throttle=function(t,e,n){var a=!0,r=!0;if("function"!=typeof t)throw new Zt(s);return lo(n)&&(a="leading"in n?!!n.leading:a,r="trailing"in n?!!n.trailing:r),Gs(t,e,{leading:a,maxWait:e,trailing:r})},aa.thru=ws,aa.toArray=wo,aa.toPairs=$o,aa.toPairsIn=Zo,aa.toPath=function(t){return to(t)?Ge(t,Wi):vo(t)?[t]:zr(Ui(No(t)))},aa.toPlainObject=ko,aa.transform=function(t,e,n){var a=to(t),r=a||ro(t)||_o(t);if(e=vi(e,4),null==n){var i=t&&t.constructor;n=r?a?new i:[]:lo(t)&&oo(i)?ra(we(t)):{}}return(r?Me:Pa)(t,function(t,a,r){return e(n,t,a,r)}),n},aa.unary=function(t){return qs(t,1)},aa.union=ds,aa.unionBy=fs,aa.unionWith=ps,aa.uniq=function(t){return t&&t.length?xr(t):[]},aa.uniqBy=function(t,e){return t&&t.length?xr(t,vi(e,2)):[]},aa.uniqWith=function(t,e){return e="function"==typeof e?e:r,t&&t.length?xr(t,r,e):[]},aa.unset=function(t,e){return null==t||Tr(t,e)},aa.unzip=hs,aa.unzipWith=gs,aa.update=function(t,e,n){return null==t?t:wr(t,e,Nr(n))},aa.updateWith=function(t,e,n,a){return a="function"==typeof a?a:r,null==t?t:wr(t,e,Nr(n),a)},aa.values=Xo,aa.valuesIn=function(t){return null==t?[]:sn(t,Vo(t))},aa.without=bs,aa.words=uu,aa.wrap=function(t,e){return Ws(Nr(e),t)},aa.xor=ms,aa.xorBy=ys,aa.xorWith=vs,aa.zip=_s,aa.zipObject=function(t,e){return Cr(t||[],e||[],ba)},aa.zipObjectDeep=function(t,e){return Cr(t||[],e||[],dr)},aa.zipWith=xs,aa.entries=$o,aa.entriesIn=Zo,aa.extend=Ao,aa.extendWith=Do,yu(aa,aa),aa.add=Nu,aa.attempt=cu,aa.camelCase=Jo,aa.capitalize=Qo,aa.ceil=Ru,aa.clamp=function(t,e,n){return n===r&&(n=e,e=r),n!==r&&(n=(n=Co(n))==n?n:0),e!==r&&(e=(e=Co(e))==e?e:0),Ta(Co(t),e,n)},aa.clone=function(t){return wa(t,l)},aa.cloneDeep=function(t){return wa(t,u|l)},aa.cloneDeepWith=function(t,e){return wa(t,u|l,e="function"==typeof e?e:r)},aa.cloneWith=function(t,e){return wa(t,l,e="function"==typeof e?e:r)},aa.conformsTo=function(t,e){return null==e||Sa(t,e,Yo(e))},aa.deburr=tu,aa.defaultTo=function(t,e){return null==t||t!=t?e:t},aa.divide=Au,aa.endsWith=function(t,e,n){t=No(t),e=_r(e);var a=t.length,i=n=n===r?a:Ta(Oo(n),0,a);return(n-=e.length)>=0&&t.slice(n,i)==e},aa.eq=Zs,aa.escape=function(t){return(t=No(t))&&bt.test(t)?t.replace(ht,dn):t},aa.escapeRegExp=function(t){return(t=No(t))&&St.test(t)?t.replace(wt,"\\$&"):t},aa.every=function(t,e,n){var a=to(t)?qe:Na;return n&&Ri(t,e,n)&&(e=r),a(t,vi(e,3))},aa.find=Is,aa.findIndex=Qi,aa.findKey=function(t,e){return We(t,vi(e,3),Pa)},aa.findLast=Cs,aa.findLastIndex=ts,aa.findLastKey=function(t,e){return We(t,vi(e,3),Ma)},aa.floor=Du,aa.forEach=ks,aa.forEachRight=Ns,aa.forIn=function(t,e){return null==t?t:Ea(t,vi(e,3),Vo)},aa.forInRight=function(t,e){return null==t?t:La(t,vi(e,3),Vo)},aa.forOwn=function(t,e){return t&&Pa(t,vi(e,3))},aa.forOwnRight=function(t,e){return t&&Ma(t,vi(e,3))},aa.get=qo,aa.gt=Xs,aa.gte=Js,aa.has=function(t,e){return null!=t&&Ii(t,e,Ya)},aa.hasIn=jo,aa.head=ns,aa.identity=hu,aa.includes=function(t,e,n,a){t=no(t)?t:Xo(t),n=n&&!a?Oo(n):0;var r=t.length;return n<0&&(n=Pn(r+n,0)),yo(t)?n<=r&&t.indexOf(e,n)>-1:!!r&&$e(t,e,n)>-1},aa.indexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=null==n?0:Oo(n);return r<0&&(r=Pn(a+r,0)),$e(t,e,r)},aa.inRange=function(t,e,n){return e=So(e),n===r?(n=e,e=0):n=So(n),function(t,e,n){return t>=Mn(e,n)&&t=-I&&t<=I},aa.isSet=mo,aa.isString=yo,aa.isSymbol=vo,aa.isTypedArray=_o,aa.isUndefined=function(t){return t===r},aa.isWeakMap=function(t){return fo(t)&&Oi(t)==J},aa.isWeakSet=function(t){return fo(t)&&"[object WeakSet]"==za(t)},aa.join=function(t,e){return null==t?"":En.call(t,e)},aa.kebabCase=eu,aa.last=ss,aa.lastIndexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var i=a;return n!==r&&(i=(i=Oo(n))<0?Pn(a+i,0):Mn(i,a-1)),e==e?function(t,e,n){for(var a=n+1;a--;)if(t[a]===e)return a;return a}(t,e,i):Ke(t,Xe,i,!0)},aa.lowerCase=nu,aa.lowerFirst=au,aa.lt=xo,aa.lte=To,aa.max=function(t){return t&&t.length?Ra(t,hu,Ga):r},aa.maxBy=function(t,e){return t&&t.length?Ra(t,vi(e,2),Ga):r},aa.mean=function(t){return Je(t,hu)},aa.meanBy=function(t,e){return Je(t,vi(e,2))},aa.min=function(t){return t&&t.length?Ra(t,hu,Ja):r},aa.minBy=function(t,e){return t&&t.length?Ra(t,vi(e,2),Ja):r},aa.stubArray=Iu,aa.stubFalse=Cu,aa.stubObject=function(){return{}},aa.stubString=function(){return""},aa.stubTrue=function(){return!0},aa.multiply=Eu,aa.nth=function(t,e){return t&&t.length?ar(t,Oo(e)):r},aa.noConflict=function(){return Te._===this&&(Te._=se),this},aa.noop=vu,aa.now=Ms,aa.pad=function(t,e,n){t=No(t);var a=(e=Oo(e))?vn(t):0;if(!e||a>=e)return t;var r=(e-a)/2;return ei(Nn(r),n)+t+ei(kn(r),n)},aa.padEnd=function(t,e,n){t=No(t);var a=(e=Oo(e))?vn(t):0;return e&&ae){var a=t;t=e,e=a}if(n||t%1||e%1){var i=Fn();return Mn(t+i*(e-t+ye("1e-"+((i+"").length-1))),e)}return ur(t,e)},aa.reduce=function(t,e,n){var a=to(t)?Ve:en,r=arguments.length<3;return a(t,vi(e,4),n,r,Ca)},aa.reduceRight=function(t,e,n){var a=to(t)?He:en,r=arguments.length<3;return a(t,vi(e,4),n,r,ka)},aa.repeat=function(t,e,n){return e=(n?Ri(t,e,n):e===r)?1:Oo(e),cr(No(t),e)},aa.replace=function(){var t=arguments,e=No(t[0]);return t.length<3?e:e.replace(t[1],t[2])},aa.result=function(t,e,n){var a=-1,i=(e=Rr(e,t)).length;for(i||(i=1,t=r);++aI)return[];var n=N,a=Mn(t,N);e=vi(e),t-=N;for(var r=an(a,e);++n=s)return t;var u=n-vn(a);if(u<1)return a;var c=o?Dr(o,0,u).join(""):t.slice(0,u);if(i===r)return c+a;if(o&&(u+=c.length-u),bo(i)){if(t.slice(u).search(i)){var l,d=c;for(i.global||(i=Kt(i.source,No(Lt.exec(i))+"g")),i.lastIndex=0;l=i.exec(d);)var f=l.index;c=c.slice(0,f===r?u:f)}}else if(t.indexOf(_r(i),u)!=u){var p=c.lastIndexOf(i);p>-1&&(c=c.slice(0,p))}return c+a},aa.unescape=function(t){return(t=No(t))&>.test(t)?t.replace(pt,xn):t},aa.uniqueId=function(t){var e=++ne;return No(t)+e},aa.upperCase=su,aa.upperFirst=ou,aa.each=ks,aa.eachRight=Ns,aa.first=ns,yu(aa,(ku={},Pa(aa,function(t,e){ee.call(aa.prototype,e)||(ku[e]=t)}),ku),{chain:!1}),aa.VERSION="4.17.14",Me(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){aa[t].placeholder=aa}),Me(["drop","take"],function(t,e){oa.prototype[t]=function(n){n=n===r?1:Pn(Oo(n),0);var a=this.__filtered__&&!e?new oa(this):this.clone();return a.__filtered__?a.__takeCount__=Mn(n,a.__takeCount__):a.__views__.push({size:Mn(n,N),type:t+(a.__dir__<0?"Right":"")}),a},oa.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),Me(["filter","map","takeWhile"],function(t,e){var n=e+1,a=1==n||3==n;oa.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:vi(t,3),type:n}),e.__filtered__=e.__filtered__||a,e}}),Me(["head","last"],function(t,e){var n="take"+(e?"Right":"");oa.prototype[t]=function(){return this[n](1).value()[0]}}),Me(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");oa.prototype[t]=function(){return this.__filtered__?new oa(this):this[n](1)}}),oa.prototype.compact=function(){return this.filter(hu)},oa.prototype.find=function(t){return this.filter(t).head()},oa.prototype.findLast=function(t){return this.reverse().find(t)},oa.prototype.invokeMap=lr(function(t,e){return"function"==typeof t?new oa(this):this.map(function(n){return Ba(n,t,e)})}),oa.prototype.reject=function(t){return this.filter(Bs(vi(t)))},oa.prototype.slice=function(t,e){t=Oo(t);var n=this;return n.__filtered__&&(t>0||e<0)?new oa(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==r&&(n=(e=Oo(e))<0?n.dropRight(-e):n.take(e-t)),n)},oa.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},oa.prototype.toArray=function(){return this.take(N)},Pa(oa.prototype,function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),a=/^(?:head|last)$/.test(e),i=aa[a?"take"+("last"==e?"Right":""):e],s=a||/^find/.test(e);i&&(aa.prototype[e]=function(){var e=this.__wrapped__,o=a?[1]:arguments,u=e instanceof oa,c=o[0],l=u||to(e),d=function(t){var e=i.apply(aa,Ye([t],o));return a&&f?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(u=l=!1);var f=this.__chain__,p=s&&!f,h=u&&!this.__actions__.length;if(!s&&l){e=h?e:new oa(this);var g=t.apply(e,o);return g.__actions__.push({func:ws,args:[d],thisArg:r}),new sa(g,f)}return p&&h?t.apply(this,o):(g=this.thru(d),p?a?g.value()[0]:g.value():g)})}),Me(["pop","push","shift","sort","splice","unshift"],function(t){var e=Xt[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",a=/^(?:pop|shift)$/.test(t);aa.prototype[t]=function(){var t=arguments;if(a&&!this.__chain__){var r=this.value();return e.apply(to(r)?r:[],t)}return this[n](function(n){return e.apply(to(n)?n:[],t)})}}),Pa(oa.prototype,function(t,e){var n=aa[e];if(n){var a=n.name+"";ee.call(Kn,a)||(Kn[a]=[]),Kn[a].push({name:e,func:n})}}),Kn[Xr(r,h).name]=[{name:"wrapper",func:r}],oa.prototype.clone=function(){var t=new oa(this.__wrapped__);return t.__actions__=zr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=zr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=zr(this.__views__),t},oa.prototype.reverse=function(){if(this.__filtered__){var t=new oa(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},oa.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=to(t),a=e<0,r=n?t.length:0,i=function(t,e,n){for(var a=-1,r=n.length;++a=this.__values__.length;return{done:t,value:t?r:this.__values__[this.__index__++]}},aa.prototype.plant=function(t){for(var e,n=this;n instanceof ia;){var a=$i(n);a.__index__=0,a.__values__=r,e?i.__wrapped__=a:e=a;var i=a;n=n.__wrapped__}return i.__wrapped__=t,e},aa.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof oa){var e=t;return this.__actions__.length&&(e=new oa(this)),(e=e.reverse()).__actions__.push({func:ws,args:[ls],thisArg:r}),new sa(e,this.__chain__)}return this.thru(ls)},aa.prototype.toJSON=aa.prototype.valueOf=aa.prototype.value=function(){return Or(this.__wrapped__,this.__actions__)},aa.prototype.first=aa.prototype.head,tn&&(aa.prototype[tn]=function(){return this}),aa}();Te._=Tn,(a=(function(){return Tn}).call(e,n,e,t))===r||(t.exports=a)}).call(this)}).call(this,n("YuTi")(t))},Lwhh:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DataTableColumnHeaderDirective=function(){return a([r.Directive({selector:"[ngx-datatable-header-template]"})],function(t){this.template=t})}()},"M/6F":function(t,e,n){"use strict";var a=n("CcnG"),r=n("IZUe"),i=n("MdoF"),s=n("lTVp"),o=n("Ip0R");n("NDi4"),n.d(e,"a",function(){return u}),n.d(e,"b",function(){return l});var u=a["\u0275crt"]({encapsulation:0,styles:[[".error-panel-alert-icon[_ngcontent-%COMP%]{vertical-align:top;padding-right:15px}.error-panel-alert-title[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,2,"button",[["autofocus",""],["class","btn btn-sm btn-default tc_backButton"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.backAction.emit()&&a),a},null,null)),a["\u0275did"](2,4210688,null,0,r.a,[a.ElementRef],null,null),(t()(),a["\u0275ted"](-1,null,["Back"]))],null,null)}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,11,"alert",[["type","danger"]],null,null,null,i.c,i.b)),a["\u0275did"](1,114688,null,0,s.a,[s.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["\u0275eld"](2,0,null,0,9,"table",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"td",[["class","error-panel-alert-icon"],["rowspan","2"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-3x fa-times-circle alert-danger"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,1,"td",[["class","error-panel-alert-title"]],null,null,null,null,null)),(t()(),a["\u0275ted"](8,null,[" "," "])),(t()(),a["\u0275eld"](9,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](10,0,null,null,1,"td",[["class","error-panel-alert-text"]],null,null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](13,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"danger"),t(e,13,0,n.backAction.observers.length>0)},function(t,e){t(e,8,0,e.component.title)})}},M9eX:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("DtyJ"),o=(n("czA5"),n("ahDk"));e.ResizeableDirective=function(){function t(t,e){this.renderer=e,this.resizeEnabled=!0,this.resize=new i.EventEmitter,this.resizing=!1,this.element=t.nativeElement}return t.prototype.ngAfterViewInit=function(){var t=this.renderer,e=t.createElement("span");t.addClass(e,this.resizeEnabled?"resize-handle":"resize-handle--not-resizable"),t.appendChild(this.element,e)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this._destroySubscription(),this.resize.emit(this.element.clientWidth))},t.prototype.onMousedown=function(t){var e=this,n=t.target.classList.contains("resize-handle"),a=this.element.clientWidth,r=t.screenX;if(n){t.stopPropagation(),this.resizing=!0;var i=s.fromEvent(document,"mouseup");this.subscription=i.subscribe(function(t){return e.onMouseup()});var u=s.fromEvent(document,"mousemove").pipe(o.takeUntil(i)).subscribe(function(t){return e.move(t,a,r)});this.subscription.add(u)}},t.prototype.move=function(t,e,n){var a=e+(t.screenX-n);(!this.minWidth||a>=this.minWidth)&&(!this.maxWidth||a<=this.maxWidth)&&(this.element.style.width=a+"px")},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeEnabled",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"resize",void 0),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMousedown",null),a([i.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}})],t)}()},MGBS:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.destination.next(e)},e.prototype.notifyError=function(t,e){this.destination.error(t)},e.prototype.notifyComplete=function(t){this.destination.complete()},e}(n("FFOo").a)},MaEZ:function(t,e){t.exports='\n \n \n \n Toggle navigation\n Zobraz./skr\xfdt navigaci\n \n \n Dashboard\n P\u0159ehled\n \n \n Cluster\n Klastr\n \n \n Hosts\n Stroje\n \n \n Monitors\n Monitory\n \n \n OSDs\n OSD\n \n \n Configuration\n Nastaven\xed\n \n \n CRUSH map\n CRUSH mapa\n \n \n Manager modules\n Moduly spr\xe1vy\n \n \n Logs\n Z\xe1znamy ud\xe1lost\xed\n \n \n Alerts\n V\xfdstrahy\n \n \n Silences\n Silences\n \n \n Pools\n Fondy\n \n \n Block\n Blok\n \n \n Images\n Obrazy\n \n \n Mirroring\n Zrcadlen\xed\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Souborov\xe9 syst\xe9my\n \n \n Object Gateway\n Objektov\xe1 br\xe1na\n \n \n Daemons\n Procesy slu\u017eeb\n \n \n Users\n U\u017eivatel\xe9\n \n \n Buckets\n N\xe1doby\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Z\xedsk\xe1vaj\xed se data\n pro\n \n \n . \u010cekejte\u2026\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Zobrazuj\xed se data\n z mezipam\u011bti\n pro \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Neda\u0159\xed se na\u010d\xedst dat \n pro\n \n \n .\n Zkontrolujte zdrav\xed klastru.\n \n \n \n Back\n Zp\u011bt\n \n \n Select a Language\n Vyberte jazyk\n \n \n Loading panel data...\n Na\u010d\xedt\xe1n\xed \xfadaj\u016f panelu\u2026\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Nahl\xe9dn\u011bte do\n dokumentace\n , kde naleznete jak\n nastavit a zapnout funkci monitorov\xe1n\xed.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Grafana p\u0159ehled neexistuje. Pod\xedvejte se do\n dokumentace\n jak\n p\u0159idat p\u0159ehledy do Grafany.\n \n \n \n Grafana Time Picker\n Grafana Time Picker\n \n \n Reset Settings\n Resetovat nastaven\xed\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Data se nepoda\u0159ilo na\u010d\xedst\n \n \n selected\n vybr\xe1no\n X selected\n \n \n found\n nalezeno\n X found\n \n \n total\n celkem\n X total\n \n \n Edit\n Upravit\n \n \n Name\n N\xe1zev\n \n \n Description\n Popis\n \n \n Long description\n Podrobn\u011bj\u0161\xed popis\n \n \n Default\n V\xfdchoz\xed\n \n \n Daemon default\n V\xfdchoz\xed pro proces slu\u017eby\n \n \n Services\n Slu\u017eby\n \n \n Values\n Hodnoty\n \n \n The entered value is too high! It must not be greater than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 vysok\xe1! Nem\u016f\u017ee b\xfdt vy\u0161\u0161\xed ne\u017e \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 n\xedzk\xe1! Nem\u016f\u017ee b\xfdt ni\u017e\u0161\xed ne\u017e \n .\n \n \n \n Save\n Ulo\u017eit\n \n \n CRUSH map viewer\n prohl\xed\u017ee\u010d CRUSH mapy\n \n \n Hosts List\n Seznam stroj\u016f\n \n \n Overall Performance\n Celkov\xe1 v\xfdkonnost\n \n \n No entries found\n Nenalezeny \u017e\xe1dn\xe9 polo\u017eky\n \n \n Cluster Logs\n Z\xe1znamy ud\xe1lost\xed v klastra\n \n \n Audit Logs\n Auditn\xed z\xe1znamy ud\xe1lost\xed\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Na\u010d\xedt\xe1n\xed nastaven\xed\u2026\n \n \n The configuration could not be loaded.\n Toto nastaven\xed se nepoda\u0159ilo na\u010d\xedst.\n \n \n Edit Manager module\n Upravit modul spr\xe1vy\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Zadan\xe1 hodnota nen\xed platn\xe9 UUID, nap\u0159.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Je t\u0159eba, aby zadan\xe1 hodnota byla platnou IP adresou.\n \n \n This field is required.\n Tuto kolonku je t\u0159eba vyplnit.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n The entered value is too high! It must be lower or equal to \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n The entered value is too low! It must be greater or equal to \n .\n \n \n \n The entered value needs to be a number.\n Je t\u0159eba, aby zadan\xe1 hodnota byla \u010d\xedslo.\n \n \n The entered value needs to be a number or decimal.\n Je t\u0159eba, aby zadan\xe1 hodnota byla \u010d\xedslo nebo des\xedtkov\xe9.\n \n \n Update\n Aktualizovat\n \n \n Status\n Stav\n \n \n Cluster ID\n Identif. kastru\n \n \n monmap modified\n mapa monitor\u016f zm\u011bn\u011bna\n \n \n monmap epoch\n monmap epocha\n \n \n quorum con\n kv\xf3rum spojen\xed\n \n \n quorum mon\n kv\xf3rum monitor\n \n \n required con\n vy\u017eadov\xe1no spojen\xed\n \n \n required mon\n vy\u017eadov\xe1no monitor\u016f\n \n \n In Quorum\n V kv\xf3ru\n \n \n Not In Quorum\n Nen\xed v kv\xf3ru\n \n \n Cancel\n Storno\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Opravdu chcete ozna\u010den\xe9 \n \n ?\n \n \n \n Yes, I am sure.\n Ano, opravdu to chci.\n \n \n Cluster-wide OSD Flags\n P\u0159\xedznaky OSD pro cel\xfd klastr\n \n \n Submit\n Odeslat\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Pokro\u010dil\xe9\u2026\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorita obnoven\xed OSD\n \n \n Priority\n Priorita\n \n \n Customize priority values\n P\u0159izp\u016fsobit hodnoty priority\n \n \n This field is required!\n Tuto kolonku je t\u0159eba vyplnit!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 vysok\xe1, je t\u0159eba, aby nebyla vy\u0161\u0161\xed ne\u017e \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Zadan\xe1 hodnota je p\u0159\xedli\u0161 n\xedzk\xe1! Je t\u0159eba, aby byla ni\u017e\u0161\xed ne\u017e \n .\n \n \n \n Reweight OSD\n Znovu vyv\xe1\u017eit OSD\n \n \n The value needs to be between 0 and 1.\n Je t\u0159eba, aby hodnota byla mezi 0 a 1.\n \n \n Reweight\n Znovu vyv\xe1\u017eit\n \n \n OSDs \n Scrub\n \n OSD \n kontrola\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, vybrat, 1 {Deep } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Chyst\xe1te se pou\u017e\xedt kontrolu na\n scrub to\n OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, vybrat, 1 {deep } }\n \n \n OSDs List\n Seznam OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n Pokud budete pokra\u010dovat, \n OSD \n \n \n \n \n bude ozna\u010deno\n \n \n \n The OSD is not safe to destroy!\n OSD nen\xed mo\u017en\xe9 bezpe\u010dn\u011b zlikvidovat!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n Pokud budete pokra\u010dovat,\n OSD \n \n bude \n \n \n .\n \n \n \n Details\n Podrobnosti\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Hodnota\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Zav\u0159\xedt\n \n \n Delete\n Smazat\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Zdrav\xed\n \n \n Statistics\n Statistiky\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Ohledn\u011b nastaven\xed a zapnut\xed funkce spr\xe1vy NFS Ganesha nahl\xe9dn\u011bte do \n dokumentace\n \n \n \n \n Clients\n Klienti\n \n \n Any client can access\n P\u0159istupovat m\u016f\u017ee libovoln\xfd klient\n \n \n Addresses\n Adresy\n \n \n Required field\n Vy\u017eadovan\xe1 kolonka\n \n \n Must contain one or more comma-separated values\n Je t\u0159eba, aby obsahovalo jednu nebo v\xedce \u010d\xe1rkou odd\u011blovan\xfdch hodnot\n \n \n For example:\n Nap\u0159\xedklad:\n \n \n Access Type\n Typ p\u0159\xedstupu\n \n \n Squash\n Squash\n \n \n Add clients\n P\u0159idat klienty\n \n \n Loading...\n Na\u010d\xedt\xe1n\xed\u2026\n \n \n -- No cluster available --\n -- \u017d\xe1dn\xfd klastr k dispozici --\n \n \n -- Select the cluster --\n -- Vyberte klastr --\n \n \n Add daemon\n P\u0159idat proces slu\u017eby\n \n \n Storage Backend\n Podp\u016frn\xe1 vrstva \xfalo\u017ei\u0161t\u011b\n \n \n -- No data pools available --\n -- \u017d\xe1dn\xe9 fondy k dispozici --\n \n \n -- Select the storage backend --\n -- Vyberte podp\u016frnou vrstvu \xfalo\u017ei\u0161t\u011b --\n \n \n Object Gateway User\n U\u017eivatel objektov\xe9 br\xe1ny\n \n \n -- No users available --\n -- \u017d\xe1dn\xed u\u017eivatel\xe9 k dispozici --\n \n \n -- Select the object gateway user --\n -- Vyberte u\u017eivatele br\xe1ny objekt\u016f --\n \n \n CephFS User ID\n Identif. u\u017eivatele CephFS\n \n \n -- No clients available --\n -- \u017d\xe1dn\xed klienti k dispozici --\n \n \n -- Select the cephx client --\n -- Vyberte cephx klienta --\n \n \n CephFS Name\n N\xe1zev CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Security Label\n \n \n Enable security label\n Enable security label\n \n \n CephFS Path\n Popis um\xedst\u011bn\xed CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n Je t\u0159eba, aby popis um\xedst\u011bn\xed za\u010d\xednal na \u201e/\u201c, za kter\xfdm n\xe1sleduje slovo\n \n \n New directory will be created\n Bude vytvo\u0159ena nov\xe1 slo\u017eka\n \n \n Path\n Popis um\xedst\u011bn\xed\n \n \n Path can only be a single \'/\' or a word\n Popis um\xedst\u011bn\xed m\u016f\u017ee b\xfdt pouze jedin\xe9 \u201e/\u201c nebo slovo\n \n \n New bucket will be created\n Bude vytvo\u0159ena nov\xe1 n\xe1doba\n \n \n NFS Protocol\n NFS protokol\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \u0161t\xedtek\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternativn\xed p\u0159\xedstup pro \n NFS v3\n p\u0159ipojen\xed (nem\u016f\u017ee za\u010d\xednat na /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n By using different Tag options, the same Path may be exported multiple times.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n By using different Pseudo options, the same Path may be exported multiple times.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u017d\xe1dn\xfd typ p\u0159\xedstupu k dispozici --\n \n \n -- Select the access type --\n -- Vyberte typ p\u0159\xedstupu --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- No squash available --\n \n \n --Select what kind of user id squashing is performed --\n --Select what kind of user id squashing is performed --\n \n \n Transport Protocol\n Transportn\xed protokol\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n V\xedtejte v Ceph!\n The welcome message on the login page\n \n \n Username is required\n Je t\u0159eba vyplnit u\u017eivatelsk\xe9 jm\xe9no\n \n \n Password is required\n Je t\u0159eba vyplnit heslo\n \n \n Login\n P\u0159ihl\xe1sit\n \n \n Sorry, the user does not exist in Ceph.\n Je n\xe1m l\xedto, u\u017eivatel v Ceph neexistuje.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Vr\xe1tit se na \n P\u0159ihla\u0161ovac\xed str\xe1nku\n . Budete odhl\xe1\u0161eni od poskytovatele identity kdy\u017e se pokus\xedte znovu p\u0159ihl\xe1sit.\n \n \n \n Forbidden\n Odep\u0159eno\n \n \n Sorry, you are not allowed to see what you were looking for.\n Omlouv\xe1me se, ale nem\xe1te opr\xe1vn\u011bn\xed zobrazit to, po \u010dem se poohl\xed\u017e\xedte.\n \n \n Sorry, we could not find what you were looking for\n Omlouv\xe1me se, nepoda\u0159ilo se naj\xedt to, po \u010dem se poohl\xed\u017e\xedte\n \n \n Remove all\n Odebrat v\u0161e\n \n \n Recent Notifications\n Ned\xe1vn\xe1 ozn\xe1men\xed\n \n \n There are no background tasks.\n Nejsou zde \u017e\xe1dn\xe9 \xfalohy na pozad\xed.\n \n \n Background Tasks\n \xdalohy na pozad\xed\n \n \n Help\n N\xe1pov\u011bda\n \n \n Documentation\n Dokumentace\n \n \n API\n Aplika\u010dn\xed program. rozhran\xed\n \n \n About\n O aplikaci\n \n \n Dashboard Settings\n Nastaven\xed p\u0159ehledu\n \n \n User management\n Spr\xe1va u\u017eivatel\u016f\n \n \n Logged in user\n P\u0159ihl\xe1\u0161en\xfd u\u017eivatel\n \n \n Signed in as\n \n \n \n \n P\u0159ihl\xe1\u0161eni jako\n \n \n \n \n \n \n Sign out\n Odhl\xe1sit\n \n \n Name...\n N\xe1zev\u2026\n \n \n The chosen name is already in use.\n Zvolen\xfd n\xe1zev u\u017e je pou\u017e\xedv\xe1n.\n \n \n Description...\n Popis\u2026\n \n \n Permissions\n Opr\xe1vn\u011bn\xed\n \n \n Roles\n Role\n \n \n Username\n U\u017eivatelsk\xe9 jm\xe9no\n \n \n Password\n Heslo\n \n \n Confirm password\n Potvrzen\xed zad\xe1n\xed hesla\n \n \n Password confirmation doesn\'t match the password.\n Zad\xe1n\xed hesla se neshoduj\xed.\n \n \n Full name\n Cel\xe9 jm\xe9no\n \n \n Email\n E-mail\n \n \n Invalid email.\n Neplatn\xfd e-mail.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Chyst\xe1te se odebrat opr\xe1vn\u011bn\xed \u201eu\u017eivatel \u010d\xedst/aktualizovat\u201c sv\xe9mu vlastn\xedmu \xfa\u010dtu.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Pokud budete pokra\u010dovat, nebudete nad\xe1le schopn\xed p\u0159id\xe1vat nebo nebo odeb\xedrat role \u017e\xe1dn\xe9mu z u\u017eivatel\u016f.\n \n \n Are you sure you want to continue?\n Opravdu chcete pokra\u010dovat?\n \n \n Performance counters not available\n V\xfdkonnostn\xed \u010d\xedta\u010de nejsou k dispozici\n \n \n Attributes (OSD map)\n Atributy (OSD mapa)\n \n \n Metadata not available\n Metadata nejsou k dispozici\n \n \n Metadata\n Metadata\n \n \n Performance counter\n V\xfdkonnostn\xed \u010d\xedta\u010d\n \n \n Histogram not available: \n \n \n Histogram nen\xed k dispozici: \n \n \n \n \n Writes\n Z\xe1pisy\n \n \n Reads\n \u010cten\xed\n \n \n Histogram\n Histogram\n \n \n Performance Details\n Podrobnosti o v\xfdkonnosti\n \n \n Current values\n St\xe1vaj\xedc\xed hodnoty\n \n \n Type\n Typ\n \n \n Min\n Min\n \n \n Max\n Max\n \n \n Flags\n P\u0159\xedznaky\n \n \n Source\n Zdroj\n \n \n Level\n \xdarove\u0148\n \n \n Can be updated at runtime (editable)\n Je mo\u017en\xe9 aktualizovat za provozu (upraviteln\xe9)\n \n \n Tags\n \u0160t\xedtky\n \n \n Enum values\n Vy\u010d\xedslit hodnoty\n \n \n See also\n Viz tak\xe9\n \n \n Cluster Status\n Stav klastru\n \n \n Manager Daemons\n Procesy slu\u017eby spr\xe1vy\n \n \n Object Gateways\n Objektov\xe9 br\xe1ny\n \n \n Metadata Servers\n Metadata servery\n \n \n iSCSI Gateways\n iSCSI br\xe1ny\n \n \n Client IOPS\n vst/v\xfdst. klienta\n \n \n Client Throughput\n Propustnost klienta\n \n \n Client Read/Write\n \u010cten\xed/z\xe1pis klienta\n \n \n Recovery Throughput\n Propustnost zotaven\xed\n \n \n Scrub\n Kontrola\n \n \n Performance\n V\xfdkonnost\n \n \n Raw Capacity\n Hol\xe1 kapacita\n \n \n Objects\n Objekty\n \n \n PGs per OSD\n Skupin um\xedst\u011bn\xed na OSD\n \n \n PG Status\n Stav skupiny um\xedst\u011bn\xed\n \n \n Capacity\n Kapacita\n \n \n \n \n See \n Logs\n for more details.\n \n Dal\u0161\xed podrobnosti \n \n naleznete v \n z\xe1znamech ud\xe1lost\xed\n .\n \n \n \n Ranks\n Hodnocen\xed\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Klienti: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n P\u0159esunout obraz do ko\u0161e\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Pro p\u0159esunut\xed \n \n /\n \n do ko\u0161e,\n klikn\u011bte na \n P\u0159esunout obraz\n . Voliteln\u011b je mo\u017en\xe9 zvolit datum skon\u010den\xed platnosti.\n \n \n \n Protection expires at\n Platnost ochrany skon\u010d\xed v\n \n \n NOT PROTECTED\n NECHR\xc1N\u011aNO\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Chybn\xfd form\xe1t data. Pou\u017eijte \u201eRRRR-MM-DD HH:mm:ss\u201c.\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Platnost ochrany u\u017e skon\u010dila. Zvolte budouc\xed datum nebo nevypl\u0148ujte.\n \n \n Move Image\n P\u0159esunout obraz\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n P\u0159ehled\n \n \n Targets\n C\xedle\n \n \n Discovery Authentication\n Ov\u011b\u0159ov\xe1n\xed pro objevov\xe1n\xed\n \n \n User\n U\u017eivatele\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n U\u017eivatel pro vz\xe1jemn\xe9 ov\u011b\u0159en\xed\n \n \n Mutual Password\n Heslo pro vz\xe1jemn\xe9 ov\u011b\u0159en\xed\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Pod\xedvejte se do \n dokumentace\n \n jak nastavit a zapnout funkci spr\xe1vy iSCSI c\xedl\u016f.\n \n \n \n Available information:\n Informace k dispozici:\n \n \n iSCSI Targets not available\n iSCSI c\xedl nen\xed k dispozici\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n K dispozici pouze pro RBD obrazy se zapnut\xfdm \n fast-diff\n \n \n \n \n Pool\n Fond\n \n \n Data Pool\n Datov\xfd fond\n \n \n Created\n Vytvo\u0159eno\n \n \n Size\n Velikost\n \n \n Object size\n Velikost objektu\n \n \n Features\n Funkce\n \n \n Provisioned\n Poskytov\xe1no\n \n \n N/A\n N/A\n \n \n Total provisioned\n Celkem poskytov\xe1no\n \n \n Striping unit\n Prou\u017ekovac\xed jednotka\n \n \n Striping count\n Po\u010det prou\u017ekov\xe1n\xed\n \n \n Parent\n Nad\u0159azen\xe9\n \n \n Block name prefix\n P\u0159edpona n\xe1zvu bloku\n \n \n Order\n Po\u0159ad\xed\n \n \n Snapshots\n Zachycen\xe9 stavy\n \n \n Image\n Obraz\n \n \n This setting overrides the global value\n Toto nastaven\xed p\u0159ebije glob\xe1ln\xed hodnotu\n \n \n Global\n Glob\xe1ln\xed\n \n \n This is the global value. No value for this option has been set for this image.\n Toto je glob\xe1ln\xed hodnota. Pro tento obraz nebyla u t\xe9to volby nastavena \u017e\xe1dn\xe1 hodnota.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u201e/\u201c a \u201e@\u201c nejsou dovoleny.\n \n \n -- No rbd pools available --\n -- \u017d\xe1dn\xe9 rbd fondy k dispozici --\n \n \n -- Select a pool --\n -- Vybrat fond --\n \n \n Use a dedicated data pool\n Pou\u017e\xedt vyhrazen\xfd datov\xfd fond\n \n \n Data pool\n Datov\xfd fond\n \n \n Dedicated pool that stores the object-data of the RBD.\n Vyhrazen\xfd fond kter\xfd uchov\xe1v\xe1 objektov\xe1 data RBD.\n \n \n e.g., 10GiB\n nap\u0159. 10 GiB\n \n \n You have to increase the size.\n Je t\u0159eba zv\u011bt\u0161it.\n \n \n Advanced\n Pokro\u010dil\xe9\n \n \n Striping\n Prou\u017ekov\xe1n\xed\n \n \n Stripe unit\n Jednotka prou\u017eku\n \n \n -- Select stripe unit --\n -- Vybrat jednotku prou\u017eku --\n \n \n This field is required because stripe count is defined!\n Tuto kolonku je t\u0159eba vyplnit, proto\u017ee je definov\xe1n po\u010det prou\u017ek\u016f!\n \n \n Stripe unit is greater than object size.\n Jednotka prou\u017eku je vy\u0161\u0161\xed ne\u017e velikost objektu.\n \n \n Stripe count\n Po\u010det prou\u017ek\u016f\n \n \n This field is required because stripe unit is defined!\n Tuto kolonku je t\u0159eba vyplnit, proto\u017ee je definov\xe1na jednotka prou\u017eku!\n \n \n Stripe count must be greater than 0.\n Je t\u0159eba, aby po\u010det prou\u017ek\u016f byl v\u011bt\u0161\xed ne\u017e nula.\n \n \n \n RBD Snapshot\n \n \n RBD zachycen\xfd stav\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, vybrat, skute\u010dn\xe9 {Rename} ostatn\xed {Create} }\n \n \n \n Snapshot\n \n \n zachycen\xfd stav\n \n \n \n PROTECTED\n CHR\xc1N\u011aNO\n \n \n UNPROTECTED\n NECHR\xc1N\u011aNO\n \n \n You are about to rollback\n Chyst\xe1te se vr\xe1tit zp\u011bt\n \n \n Purge Trash\n Vysypat ko\u0161\n \n \n To purge, select one or All images and click\n Pro vy\u010di\u0161t\u011bn\xed, vyberte jeden nebo v\u0161echny obrazy a klikn\u011bte na\n \n \n Pool:\n Fond:\n \n \n Pool name...\n N\xe1zev fondu\u2026\n \n \n All\n V\u0161e\n \n \n Restore Image\n Obnovit obraz\n \n \n To restore\n Pro obnoven\xed\n \n \n type the image\'s new name and click\n zadejte nov\xfd n\xe1zev pro obraz a klikn\u011bte na\n \n \n New Name\n Nov\xfd n\xe1zev\n \n \n Expired at\n Platnost skon\u010dila v\n \n \n Protected until\n Chr\xe1n\u011bno do\n \n \n This image is protected until \n .\n \n Tento obraz je chr\xe1n\u011bn do\n .\n \n \n \n Trash\n Ko\u0161\n \n \n iSCSI Topology\n Topologie iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n M\u011bnit tyto parametry z jejich v\xfdchoz\xedch hodnot obvykle nen\xed pot\u0159eba.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Nastaven\xed\n \n \n Backstore\n Backstore\n \n \n Confirm\n Potvrdit\n \n \n Advanced Settings\n Pokro\u010dil\xe1 nastaven\xed\n \n \n Target IQN\n IQN c\xedle\n \n \n IQN has wrong pattern.\n IQN nem\xe1 spr\xe1vn\xfd form\xe1t.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN m\xe1 n\xe1sleduj\xedc\xed formu z\xe1pisu \u201eiqn.$rok-$m\u011bs\xedc.$adresaObr\xe1cen\u011b:$ur\u010den\xfdN\xe1zev\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Nap\u0159\xedklad: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Dal\u0161\xed informace\n \n \n This target has modified advanced settings.\n Tento c\xedl m\xe1 zm\u011bn\u011bn\xe1 pokro\u010dil\xe1 nastaven\xed.\n \n \n Portals\n Port\xe1ly\n \n \n At least \n gateways are required.\n \n Je t\u0159eba alespo\u0148 \n bran.\n \n \n \n Add portal\n P\u0159idat port\xe1l\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Tento obraz m\xe1 zm\u011bn\u011bn\xe1 nastaven\xed.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n P\u0159idat obraz\n \n \n ACL authentication\n ACL ov\u011b\u0159ov\xe1n\xed\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Inici\xe1tory\n \n \n Initiator\n Inici\xe1tor\n \n \n Client IQN\n IQN klienta\n \n \n Initiator IQN needs to be unique.\n Je t\u0159eba, aby se IQN inici\xe1toru neopakovalo.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Je t\u0159eba, aby u\u017eivatelsk\xe1 jm\xe9na m\u011bla d\xe9lku 8 a\u017e 64 znak\u016f a\n mohou obsahovat pouze p\xedsmena a znaky \u201e.\u201c, \u201e@\u201c, \u201e-\u201c, \u201e_\u201c nebo \u201e:\u201c.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Inici\xe1tor spad\xe1 do skupiny. Obrazy budou nastaveny ve skupin\u011b.\n \n \n No items added.\n Nep\u0159id\xe1ny \u017e\xe1dn\xe9 polo\u017eky.\n \n \n Add initiator\n P\u0159idat inici\xe1tor\n \n \n Groups\n Skupiny\n \n \n Group\n Skupina\n \n \n Add group\n P\u0159idat skupinu\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Nastaven\xed RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Odebrat hodnotu m\xedstn\xedmu nastaven\xed. Nam\xedsto n\xed bude pou\u017eita hodnota nad\u0159azen\xe9ho nastaven\xed.\n \n \n The mininum value is 0\n Minim\xe1ln\xed hodnota je 0\n \n \n Issues\n probl\xe9my\n \n \n Syncing\n Synchronizuje se\n \n \n Ready\n P\u0159ipraveno\n \n \n Edit pool mirror mode\n Upravit re\u017eim zrcadlen\xed fondu\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Pro \xfapravu re\u017eimu zrcadlen\xed pro fond\xa0\n \n \n , vyberte ze seznamu nov\xfd re\u017eim a klikn\u011bte na\xa0\n Aktualizovat\n .\n \n \n \n Mode\n Re\u017eim\n \n \n Peer clusters must be removed prior to disabling mirror.\n P\u0159ed vypnut\xedm zrcadlen\xed je t\u0159eba odebrat klastry-prot\u011bj\u0161ky.\n \n \n \n \n pool mirror peer\n \n \n \n prot\u011bj\u0161ek zrcadlen\xed fondu\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n atributy\n prot\u011bj\u0161ku zrcadlen\xed pro fond \n \n \n a klikn\u011bte na \n Odeslat\n .\n \n \n \n Cluster Name\n N\xe1zev klastru\n \n \n The cluster name is not valid.\n N\xe1zev klastru nen\xed platn\xfd\n \n \n CephX ID\n CephX identif.\n \n \n CephX ID...\n CephX identif. \u2026\n \n \n The CephX ID is not valid.\n CephX identif. nen\xed platn\xfd.\n \n \n Monitor Addresses\n Adresy monitor\u016f\n \n \n Comma-delimited addresses...\n \u010c\xe1rkou odd\u011blovan\xe9 adresy\u2026\n \n \n The monitory address is not valid.\n Adresa monitoru nen\xed platn\xe1.\n \n \n CephX Key\n CephX kl\xed\u010d\n \n \n Base64-encoded key...\n Kl\xed\u010d v base64 k\xf3dov\xe1n\xed\u2026\n \n \n CephX key must be base64 encoded.\n Je t\u0159eba, aby CephX kl\xed\u010d byl v k\xf3dov\xe1n\xed base64.\n \n \n Pools List\n Seznam fond\u016f\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n N\xe1zev m\u016f\u017ee b\xfdt tvo\u0159en pouze p\xedsmeny a \u010d\xedslicemi, d\xe1le je\u0161t\u011b spojovn\xedky a podtr\u017e\xedtky.\n \n \n The chosen erasure code profile name is already in use.\n Zvolen\xfd n\xe1zev pro profil mazac\xedho k\xf3du je u\u017e pou\u017e\xedv\xe1n.\n \n \n Plugin\n Z\xe1suvn\xfd modul\n \n \n Data chunks (k)\n Shluky dat (k)\n \n \n Must be equal to or greater than 2.\n Je t\u0159eba, aby bylo 2 a v\xedce.\n \n \n Coding chunks (m)\n Shluky k\xf3dov\xe1n\xed (m)\n \n \n Must be equal to or greater than 1.\n Je t\u0159eba, aby bylo 1 a v\xedce.\n \n \n Durability estimator (c)\n Odhadov\xe1n\xed odolnosti (c)\n \n \n Locality (l)\n Um\xedst\u011bn\xed (l)\n \n \n Crush failure domain\n Dom\xe9na selh\xe1n\xed crush\n \n \n Crush Locality\n Lokalita crush\n \n \n None\n \u017d\xe1dn\xe9\n \n \n Technique\n Technika\n \n \n Packetsize\n Velikostpaketu\n \n \n Crush root\n Ko\u0159en crush\n \n \n Crush device class\n T\u0159\xedda crush za\u0159\xedzen\xed\n \n \n any\n libovoln\xe9\n \n \n Directory\n Slo\u017eka\n \n \n The chosen Ceph pool name is already in use.\n Zvolen\xfd n\xe1zev pro Ceph fond je u\u017e pou\u017e\xedv\xe1n.\n \n \n Pool type\n Typ fondul\n \n \n -- Select a pool type --\n -- Vybrat typ fondu --\n \n \n Placement groups\n Skupiny um\xedst\u011bn\xed\n \n \n At least one placement group is needed!\n Je t\u0159eba alespo\u0148 jedn\xe9 skupiny um\xedst\u011bn\xed!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n V\xe1\u0161 klastr nem\u016f\u017ee obslou\u017eit tolik skupin um\xedst\u011bn\xed. P\u0159epo\u010d\xedtejte pot\u0159ebn\xe9 mno\u017estv\xed skupin um\xedst\u011bn\xed.\n \n \n Calculation help\n N\xe1pov\u011bda k v\xfdpo\u010dtu\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \n \n Crush ruleset\n Sada pravidel crush\n \n \n -- Select a crush rule --\n -- Vybrat crush pravidlo --\n \n \n Crush rule\n Crush pravidlo\n \n \n Crush steps\n Crush kroky\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Pravidlo nem\u016f\u017ee b\xfdt uplatn\u011bno na st\xe1vaj\xedc\xed klastr proto\u017ee m\xe1\n p\u0159\xedli\u0161 m\xe1lo OSD aby splnil minimum OSD vy\u017eadovan\xfdch t\xedmto pravidlem.\n \n \n Replicated size\n Replikovan\xe1 velikost\n \n \n Minimum: \n \n \n Nejm\xe9n\u011b: \n \n \n \n \n Maximum: \n \n \n Nejv\xedce: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Zadan\xe1 velikost je mimo rozsah. Platn\xe9 hodnoty jsou od \n do \n .\n \n \n \n Erasure code profile\n Profil mazac\xedho k\xf3du\n \n \n -- No erasure code profile available --\n -- \u017d\xe1dn\xfd profil mazac\xedho k\xf3du --\n \n \n -- Select an erasure code profile --\n -- Vyberte profil mazac\xedho k\xf3du --\n \n \n EC Overwrites\n EC p\u0159ebit\xed\n \n \n Applications\n Aplikace\n \n \n Compression\n Komprese\n \n \n Algorithm\n Algoritmus\n \n \n -- No erasure compression algorithm available --\n -- \u017d\xe1dn\xfd algoritmus komprese maz\xe1n\xed --\n \n \n Minimum blob size\n Minim\xe1ln\xed velikost blobu\n \n \n e.g., 128KiB\n nap\u0159. 128 KiB\n \n \n Value should be greater than 0\n Hodnota by m\u011bla b\xfdt vy\u0161\u0161\xed ne\u017e nula\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Nejvy\u0161\u0161\xed velikost blobu\n \n \n e.g., 512KiB\n nap\u0159. 512 KiB\n \n \n Value should be greater than the minimum blob size\n Hodnota by m\u011bla b\xfdt vy\u0161\u0161\xed ne\u017e nejni\u017e\u0161\xed velikost blobu\n \n \n Ratio\n Pom\u011br\n \n \n Compression ratio\n Kompresn\xed pom\u011br\n \n \n Value should be between 0.0 and 1.0\n Hodnota by m\u011bla b\xfdt z rozmez\xed 0.0 a\u017e 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Nen\xed mo\u017en\xe9 vytvo\u0159it RBD fond, kter\xfd m\xe1 v n\xe1zvu \u201e/\u201c.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Zm\u011b\u0148te n\xe1zev nebo ze seznamu pou\u017eit\xed odeberte \u201erbd\u201c\n \n \n Cache Tiers Details\n Podrobnosti o stupn\xedch mezipam\u011bti\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Pod\xedvejte se do \n dokumentace\n \n jak nastavit a zapnout funkci spr\xe1vy br\xe1ny objekt\u016f.\n \n \n \n Daemons List\n Seznam proces\u016f slu\u017eeb\n \n \n Performance Counters\n V\xfdkonnostn\xed \u010d\xedta\u010de\n \n \n Loading bucket data...\n Na\u010d\xedt\xe1n\xed dat n\xe1doby\u2026\n \n \n The bucket data could not be loaded.\n Data n\xe1doby se nepoda\u0159ilo na\u010d\xedst.\n \n \n Id\n Identif.\n \n \n The value is not valid.\n Hodnota nen\xed platn\xe1.\n \n \n Owner\n Vlastn\xedk\n \n \n -- Select a user --\n -- Vybrat u\u017eivatele --\n \n \n ID\n Identif.\n \n \n Index type\n Typ rejst\u0159\xedku\n \n \n Placement rule\n Pravidlo um\xedst\u011bn\xed\n \n \n Marker\n Ozna\u010dova\u010d\n \n \n Maximum marker\n Nejvy\u0161\u0161\xed ozna\u010dova\u010d\n \n \n Version\n Verze\n \n \n Master version\n Hlavn\xed verze\n \n \n Modification time\n Okam\u017eik \xfapravy\n \n \n Zonegroup\n Skupinaz\xf3ny\n \n \n Bucket quota\n Kv\xf3ta n\xe1doby\n \n \n Enabled\n Zapnuto\n \n \n Maximum size\n Nejvy\u0161\u0161\xed velikost\n \n \n Unlimited\n Neomezeno\n \n \n Maximum objects\n Nejv\xfd\u0161e objekt\u016f\n \n \n -- Select a username --\n -- Vybrat u\u017eivatelsk\xe9 jm\xe9no --\n \n \n Auto-generate key\n Automaticky vytvo\u0159it kl\xed\u010d\n \n \n Access key\n P\u0159\xedstupov\xfd kl\xed\u010d\n \n \n Secret key\n Tajn\xfd kl\xed\u010d\n \n \n Email address\n E-mailov\xe1 adresa\n \n \n Suspended\n Pozastaveno\n \n \n System\n Syst\xe9m\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n \n \n Maximum buckets\n Nejv\xfd\u0161e n\xe1dob\n \n \n Subusers\n D\xedl\u010d\xed u\u017eivatel\xe9\n \n \n Capabilities\n Schopnosti\n \n \n User quota\n Kv\xf3ta u\u017eivatele\n \n \n Show\n Zobrazit\n \n \n Keys\n Kl\xed\u010de\n \n \n -- Select a type --\n -- Vybrat typ --\n \n \n Permission\n Opr\xe1vn\u011bn\xed\n \n \n -- Select a permission --\n -- Vybrat opr\xe1vn\u011bn\xed --\n \n \n Subuser\n D\xedl\u010d\xed u\u017eivatel\n \n \n The chosen subuser ID is already in use.\n Zvolen\xfd identifik\xe1tor d\xedl\u010d\xedho u\u017eivatele u\u017e je pou\u017e\xedv\xe1n.\n \n \n read, write\n \u010d\xedst, zapisovat\n \n \n full\n pln\xe9\n \n \n Swift key\n Swift kl\xed\u010d\n \n \n Auto-generate secret\n Automaticky vytvo\u0159it tajemstv\xed\n \n \n Loading user data...\n Na\u010d\xedt\xe1n\xed \xfadaj\u016f u\u017eivatele\u2026\n \n \n The user data could not be loaded.\n \xdadaje u\u017eivatele se nepoda\u0159ilo na\u010d\xedst.\n \n \n The chosen user ID is already in use.\n Zvolen\xfd identif. u\u017eivatele u\u017e je pou\u017e\xedv\xe1n.\n \n \n This is not a valid email address.\n Toto nen\xed platn\xe1 e-mailov\xe1 adresa.\n \n \n The chosen email address is already in use.\n Zvolen\xe1 e-mailov\xe1 adresa u\u017e je pou\u017e\xedv\xe1na.\n \n \n Max. buckets\n Nejv\xfd\u0161e n\xe1dob\n \n \n The entered value must be >= 0.\n Je t\u0159eba, aby zadan\xe1 hodnota byla 0 a vy\u0161\u0161\xed.\n \n \n S3 key\n S3 kl\xed\u010d\n \n \n There are no subusers.\n Nejsou zde \u017e\xe1dn\xed d\xedl\u010d\xed u\u017eivatel\xe9.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Nejsou zde \u017e\xe1dn\xe9 kl\xed\u010de.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Nejsou zde \u017e\xe1dn\xe9 schopnosti.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Neomezen\xe1 velikost\n \n \n Max. size\n Nejvy\u0161\u0161\xed velikost\n \n \n Unlimited objects\n Neomezen\xe9 objekty\n \n \n Max. objects\n Nejv\xfd\u0161e objekt\u016f\n \n \n Current\n St\xe1vaj\xedc\xed\n \n \n Updated discovery authentication\n Aktualizov\xe1no ov\u011b\u0159ov\xe1n\xed pro objevov\xe1n\xed\n \n \n There are no portals available.\n Nejsou k dispozici \u017e\xe1dn\xe9 port\xe1ly.\n \n \n There are no images available.\n Nejsou k dispozici \u017e\xe1dn\xe9 obrazy.\n \n \n There are no images available. Please make sure you add an image to the target.\n Nejsou k dispozici \u017e\xe1dn\xe9 obrazy. Ov\u011b\u0159te, \u017ee jste c\xedli p\u0159idali obraz.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Nejsou k dispozici \u017e\xe1dn\xe9 inici\xe1tory. Ov\u011b\u0159te, \u017ee jste c\xedli p\u0159idali inici\xe1tor.\n \n \n target\n target\n \n \n Target\n C\xedl\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Stav\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bajt\u016f \u010dten\xed\n \n \n Write Bytes\n Bajt\u016f z\xe1pis\n \n \n Read Ops\n Operac\xed/s \u010dten\xed\n \n \n Write Ops\n Operac\xed/s z\xe1pis\n \n \n A/O Since\n A/O od\n \n \n Instance\n Instance\n \n \n Hostname\n N\xe1zev stroje\n \n \n Issue\n Probl\xe9m\n \n \n Progress\n Ukazatel postupu\n \n \n Disabled\n Vypnuto\n \n \n Edit Mode\n Upravit re\u017eim\n \n \n Add Peer\n P\u0159idat prot\u011bj\u0161ek\n \n \n Edit Peer\n Upravit prot\u011bj\u0161ek\n \n \n Delete Peer\n Smazat prot\u011bj\u0161ek\n \n \n Leader\n Vedouc\xed\n \n \n # Local\n Po\u010det m\xedstn\xedch\n \n \n # Remote\n Po\u010det vzd\xe1len\xfdch\n \n \n mirror peer\n zrcadlit prot\u011bj\u0161ek\n \n \n Key\n Kl\xed\u010d\n \n \n RBD\n RBD\n \n \n Deep flatten\n Hlubok\xe9 zplo\u0161t\u011bn\xed\n \n \n Layering\n Vrstven\xed\n \n \n Exclusive lock\n V\xfdhradn\xed z\xe1mek\n \n \n Object map (requires exclusive-lock)\n Mapa objekt\u016f (vy\u017eaduje v\xfdhradn\xed z\xe1mek)\n \n \n Journaling (requires exclusive-lock)\n \u017durn\xe1lov\xe1n\xed (vy\u017eaduje v\xfdhradn\xed z\xe1mek)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Vr\xe1cen\xed zachycen\xe9ho stavu RBD zp\u011bt\n \n \n Rollback\n Vr\xe1cen\xed zp\u011bt\n \n \n RBD snapshot\n Zachycen\xfd stav RBD\n \n \n Deleted At\n Smaz\xe1no v\n \n \n id\n identif.\n \n \n type\n typ\n \n \n state\n stav\n \n \n version\n verze\n \n \n Host\n Stroj\n \n \n root\n ko\u0159en\n \n \n Rank\n Hodnocen\xed\n \n \n Daemon\n Proces slu\u017eby\n \n \n Activity\n Aktivita\n \n \n Dentries\n Struktury slo\u017eek\n \n \n Inodes\n I-uzl\u016f\n \n \n Usage\n Vyu\u017eit\xed\n \n \n Standby daemons\n Procesy slu\u017eeb v pohotovosti\n \n \n The value can be updated at runtime.\n Hodnotu je mo\u017en\xe9 aktualizovat za chodu.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Procesy slu\u017eeb / klienti nez\xedsk\xe1vaj\xed tuto hodnotu\n z datab\xe1ze nastaven\xed monitoru. Nen\xed umo\u017en\u011bno nastavit tuto volbu\n prost\u0159ednictv\xedm \u201eceph config set \u2026\'. Tato volba by m\u011bla b\xfdt nastavena\n z p\u0159\xedkazov\xe9ho \u0159\xe1dku.\n \n \n Option takes effect only during daemon startup.\n Volba se uplatn\xed pouze p\u0159i spou\u0161t\u011bn\xed procesu slu\u017eby.\n \n \n Option only affects cluster creation.\n Volba ovlivn\xed pouze vytv\xe1\u0159en\xed klastru.\n \n \n Option only affects daemon creation.\n Volba ovlivn\xed pouze vytvo\u0159en\xed procesu slu\u017eby.\n \n \n Updated config option \n \n \n Aktualizov\xe1na volba nastaven\xed \n \n \n \n \n Service\n Slu\u017eba\n \n \n Current value\n St\xe1vaj\xedc\xed hodnota\n \n \n Editable\n Upraviteln\xe9\n \n \n Updated options for module "\n ".\n \n Aktualizov\xe1na volba pro modul \u201e\n \u201c\n \n \n \n Enable\n Zapnout\n \n \n Disable\n Vypnout\n \n \n Reconnecting, please wait ...\n Op\u011btovn\xe9 p\u0159ipojov\xe1n\xed, \u010dekejte\u2026\n \n \n Public Address\n Ve\u0159ejn\xe1 adresa\n \n \n Open Sessions\n Otev\u0159en\xe9 relace\n \n \n No In\n Po\u010det do\n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSD kter\xe9 byly d\u0159\xedve odzna\u010deny nebudou ozna\u010deny nazp\u011bt kdy\u017e spust\xed\n \n \n No Out\n Po\u010det ven\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD nebudou automaticky odzna\u010deny po nastaven\xe9m intervalu\n \n \n No Up\n Po\u010det aktivn\xedch\n \n \n OSDs are not allowed to start\n OSD nen\xed dovoleno spu\u0161t\u011bn\xed\n \n \n No Down\n Po\u010det neaktivn\xedch\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Hl\xe1\u0161en\xed o selh\xe1n\xed OSD jsou ignorov\xe1ny, jako nap\u0159\xedklad \u017ee monitory OSD neozna\u010d\xed jako nedostupn\xe9\n \n \n Pause\n Pozastavit\n \n \n Pauses reads and writes\n Pozastavit \u010dten\xed a z\xe1pisy\n \n \n No Scrub\n \u017d\xe1dn\xe1 kontrola\n \n \n Scrubbing is disabled\n Kontrola je vypnut\xe1\n \n \n No Deep Scrub\n \u017d\xe1dn\xe1 hloubkov\xe1 kontrola\n \n \n Deep Scrubbing is disabled\n Hloubkov\xe1 kontrola je vypnut\xe1\n \n \n No Backfill\n \u017d\xe1dn\xe9 zasyp\xe1v\xe1n\xed\n \n \n Backfilling of PGs is suspended\n Zasyp\xe1v\xe1n\xed skupin um\xedst\u011bn\xed je pozastaveno\n \n \n No Recover\n \u017d\xe1dn\xe9 obnoven\xed\n \n \n Recovery of PGs is suspended\n Obnovov\xe1n\xed skupin um\xedst\u011bn\xed je pozastaveno\n \n \n Bitwise Sort\n Bitov\xe9 t\u0159\xedd\u011bn\xed\n \n \n Use bitwise sort\n T\u0159\xeddit podle bit\u016f\n \n \n Purged Snapdirs\n Vy\u010di\u0161t\u011bn\xe9 slo\u017eky zachycen\xfdch stav\u016f\n \n \n OSDs have converted snapsets\n OSD maj\xed p\u0159eveden\xe9 sady zachycen\xfdch stav\u016f\n \n \n Recovery Deletes\n Smaz\xe1no p\u0159i zotavov\xe1n\xed\n \n \n Deletes performed during recovery instead of peering\n Maz\xe1n\xed proveden\xe1 p\u0159i obnovov\xe1n\xed nam\xedsto peeringu\n \n \n PG Log Hard Limit\n Nep\u0159ekro\u010diteln\xfd limit z\xe1znamu ud\xe1lost\xed PG\n \n \n Puts a hard limit on pg log length\n Zapne nep\u0159ekro\u010diteln\xfd limit na d\xe9lku z\xe1znamu ud\xe1lost\xed v pg\n \n \n Updated OSD Flags\n Aktualizov\xe1ny OSD p\u0159\xedznaky\n \n \n out\n ven\n \n \n in\n dovnit\u0159\n \n \n down\n nedostupn\xe9\n \n \n Mark\n Zna\u010dka\n \n \n OSD lost\n OSD ztraceno\n \n \n marked lost\n ozna\u010deno jako ztracen\xe9\n \n \n Purge\n Vy\u010distit\n \n \n OSD\n OSD\n \n \n purged\n vy\u010di\u0161t\u011bno\n \n \n destroy\n zlikvidovat\n \n \n destroyed\n zlikvidov\xe1no\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n skupiny um\xedst\u011bn\xed\n \n \n Read bytes\n P\u0159e\u010dteno bajt\u016f\n \n \n Writes bytes\n Zaps\xe1no bajt\u016f\n \n \n Read ops\n Operac\xed/s \u010dten\xed\n \n \n Write ops\n Operac\xed/s z\xe1pis\n \n \n Mark OSD \n \n \n Ozna\u010dit OSD \n \n \n \n \n Mark \n \n \n Ozna\u010dit \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Max Backfills\n \n \n Recovery Max Active\n Recovery Max Active\n \n \n Recovery Max Single Start\n Recovery Max Single Start\n \n \n Recovery Sleep\n Recovery Sleep\n \n \n Custom\n U\u017eivatelsky ur\u010den\xe9\n \n \n Updated OSD recovery speed priority "\n "\n \n Aktualizov\xe1na rychlost zotaven\xed OSD \u201e\n \u201c\n \n \n \n \n was initialized in the following OSD: \n \n \n \n bylo inicializov\xe1no v n\xe1sleduj\xedc\xedm OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \xdaloha\n \n \n Severity\n Z\xe1va\u017enost\n \n \n Started\n Zah\xe1jeno\n \n \n URL\n URL adresa\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Aktualizov\xe1no\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Pou\u017eito\n \n \n Avail.\n K dispozici\n \n \n Clean\n \u010cist\xe9\n \n \n Working\n Pracuj\xedc\xed\n \n \n Warning\n Varov\xe1n\xed\n \n \n Unknown\n Nezn\xe1m\xe9\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n aktivn\xed\n \n \n no filesystems\n \u017e\xe1dn\xe9 souborov\xe9 syst\xe9my\n \n \n active\n aktivn\xed\n \n \n standby\n v pohotovosti\n \n \n n/a\n n/a\n \n \n active daemon\n aktivn\xed proces slu\u017eby\n \n \n quorum\n kv\xf3rum\n \n \n The NFS Ganesha service is not configured.\n Slu\u017eba NFS Ganesha nen\xed nastavena.\n \n \n Transport\n Transport\n \n \n CephFS User\n CephFS u\u017eivatel\n \n \n CephFS Filesystem\n Souborov\xfd syst\xe9m CephFS\n \n \n (inherited from global config)\n (p\u0159evzato z glob\xe1ln\xedho nastaven\xed)\n \n \n inherited from global config\n p\u0159evzato z glob\xe1ln\xedho nastaven\xed\n \n \n -- Select what kind of user id squashing is performed --\n -- Select what kind of user id squashing is performed --\n \n \n There are no daemons available.\n Nejsou k dispozici \u017e\xe1dn\xe9 procesy slu\u017eeb.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Re\u017eim mezipam\u011bti\n \n \n Min Evict Age\n Min Evict Age\n \n \n Min Flush Age\n Min Flush Age\n \n \n Target Max Bytes\n Nejv\xfd\u0161e bajt\u016f c\xedle\n \n \n Target Max Objects\n Nejv\xfd\u0161e objekt\u016f c\xedle\n \n \n No applications added\n Nebyla p\u0159id\xe1na \u017e\xe1dn\xe1 aplikace\n \n \n Applications limit reached\n Dosa\u017een limit aplikac\xed\n \n \n A pool can only have up to four applications definitions.\n Fond m\u016f\u017ee m\xedt nejv\xfd\u0161e \u010dty\u0159i definice aplikac\xed.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Pou\u017eiteln\xe9 znaky \u201e_a-zA-Z0-9\u201c\n \n \n Maximum length is 128 characters\n Nejvy\u0161\u0161\xed d\xe9lka je 128 znak\u016f\n \n \n Filter or add applications\n Filtrovat nebo p\u0159idat aplikace\n \n \n Add application\n P\u0159idat aplikaci\n \n \n pool\n pool\n \n \n erasure code profile\n profil mazac\xedho k\xf3du\n \n \n Replica Size\n Velikost repliky\n \n \n Last Change\n Nejnov\u011bj\u0161\xed zm\u011bna\n \n \n Erasure Coded Profile\n Maz\xe1n\xedm k\xf3dovan\xfd profil\n \n \n Crush Ruleset\n Sada crush pravidel\n \n \n Write bytes\n Zaps\xe1no bajt\u016f\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n n\xe1doba\n \n \n Updated Object Gateway bucket "\n "\n \n Aktualizov\xe1na n\xe1doba objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n Created Object Gateway bucket "\n "\n \n Vytvo\u0159ena n\xe1doba objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n buckets\n n\xe1doby\n \n \n capability\n capability\n \n \n user\n u\u017eivatel\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Aktualizov\xe1n u\u017eivatel objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n Created Object Gateway user "\n "\n \n Vytvo\u0159en u\u017eivatel objektov\xe9 br\xe1ny \u201e\n \u201c\n \n \n \n users\n u\u017eivatel\xe9\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Rozsah\n \n \n Read\n \u010cten\xed\n \n \n Create\n Vytvo\u0159it\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Vytvo\u0159ena role \u201e\n \u201c\n \n \n \n Updated role \'\n \'\n \n Aktualizov\xe1na role \u201e\n \u201c\n \n \n \n System Role\n Syst\xe9mov\xe1 role\n \n \n Deleted role \'\n \'\n \n Smaz\xe1na role \u201e\n \u201c\n \n \n \n Created user "\n "\n \n Vytvo\u0159en u\u017eivatel \u201e\n \u201c\n \n \n \n Update user\n Aktualizovat u\u017eivatele\n \n \n Continue\n Pokra\u010dovat\n \n \n You were automatically logged out because your roles have been changed.\n Byli jste automaticky odhl\xe1\u0161eni proto\u017ee va\u0161e role byly zm\u011bn\u011bny.\n \n \n Updated user "\n "\n \n Aktualizov\xe1n u\u017eivatel \u201e\n \u201c\n \n \n \n Deleted user "\n "\n \n Smaz\xe1n u\u017eivatel \u201e\n \u201c\n \n \n \n Failed to delete user "\n "\n \n Nepoda\u0159ilo se smazat u\u017eivatele \u201e\n \u201c\n \n \n \n You are currently logged in as "\n ".\n \n Nyn\xed jste p\u0159ihl\xe1\u0161en\xed jako \u201e\n \u201c.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Ka\u017ed\xfd objekt je rozd\u011blen v \u010d\xe1stech shluk\u016f dat, ka\u017ed\xe9 ulo\u017een\xe9 na jin\xe9m OSD.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Po\u010d\xedtat k\xf3dovac\xed shluky pro ka\u017ed\xfd objekt a ukl\xe1dat je na r\u016fzn\xfdch OSD.\n Po\u010det k\xf3dovac\xedch shluk\u016f je tak\xe9 po\u010det OSD, kter\xe9 mohou vypadnou, ani\u017e dojde ke ztr\xe1t\u011b dat.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Z\xe1suvn\xfd modul jerasure je nejobecn\u011bj\u0161\xed a nejp\u0159izp\u016fsobiv\u011bj\u0161\xed,\n je tak\xe9 v\xfdchoz\xed pro Ceph fondy k\xf3dovan\xe9 maz\xe1n\xedm.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Z\xe1suvn\xfd modul isa obaluje knihovnu ISA. Funguje pouze na procesorech Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n N\xe1zev crush n\xe1doby slou\u017e\xedc\xed jako prvn\xed krok CRUSH pravidla.\n Nap\u0159\xedklad krok vz\xedt v\xfdchoz\xed.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Omezit um\xedst\u011bn\xed na za\u0159\xedzen\xed ur\u010dit\xe9 t\u0159\xeddy\n (nap\u0159., ssd nebo hdd), pomoc\xed n\xe1zvu crush t\u0159\xeddy za\u0159\xedzen\xed v CRUSH map\u011b.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Nastavit slo\u017eku ze kter\xe9 na\u010d\xedtat z\xe1suvn\xfd modul mazac\xedho k\xf3du.\n \n \n Allows all operations\n Umo\u017enit v\u0161echny operace\n \n \n Allows only operations that do not modify the server\n Umo\u017enit pouze operace kter\xe9 neuprav\xed server\n \n \n Does not allow read or write operations, but allows any other operation\n Neumo\u017e\u0148uje operace \u010dten\xed \u010di z\xe1pisu, ale umo\u017e\u0148uje ostatn\xed\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Neumo\u017e\u0148uje \u010dten\xed, z\xe1pis nebo jinou operaci kter\xe1 upravuje atributy souboru nebo obsah slo\u017eky\n \n \n Allows no access at all\n Neumo\u017enit v\u016fbec \u017e\xe1dn\xfd p\u0159\xedstup\n \n \n -- Select the priority --\n -- Vyberte prioritu --\n \n \n Low\n N\xedzk\xe1\n \n \n High\n Vysok\xe1\n \n \n Last 5 minutes\n Uplynul\xfdch 5 minut\n \n \n Last 15 minutes\n Uplynul\xfdch 15 minut\n \n \n Last 30 minutes\n Uplynul\xfdch 30 minut\n \n \n Last 1 hour (Default)\n Uplynul\xe1 1 hodina (v\xfdchoz\xed)\n \n \n Last 3 hours\n Uplynul\xe9 3 hodiny\n \n \n Last 6 hours\n Uplynul\xfdch 6 hodin\n \n \n Last 12 hours\n Uplynul\xfdch 12 hodin\n \n \n Last 24 hours\n Uplynul\xfdch 24 hodin\n \n \n Yesterday\n V\u010dera\n \n \n Today\n Dnes\n \n \n Today so far\n Dnes doposud\n \n \n Day before yesterday\n V\u010derej\u0161ek\n \n \n Last 2 days\n Uplynul\xe9 2 dny\n \n \n This day last week\n Tento den minul\xfd t\xfdden\n \n \n Previous week\n P\u0159edchoz\xed t\xfdden\n \n \n This week\n Tento t\xfdden\n \n \n This week so far\n Tento t\xfdden doposud\n \n \n Last 7 days\n Uplynul\xfdch 7 dn\u016f\n \n \n Previous month\n P\u0159edchoz\xed m\u011bs\xedc\n \n \n This month\n Tento m\u011bs\xedc\n \n \n This month so far\n Tento m\u011bs\xedc doposud\n \n \n Last 30 days\n Uplynul\xfdch 30 dn\u016f\n \n \n Last 90 days\n Uplynul\xfdch 90 dn\u016f\n \n \n Last 6 months\n Uplynul\xfdch 6 m\u011bs\xedc\u016f\n \n \n Last 1 year\n Uplynul\xfd 1 rok\n \n \n Previous year\n P\u0159edchoz\xed rok\n \n \n This year\n Tento rok\n \n \n This year so far\n Tento rok doposud\n \n \n Last 2 years\n Uplynul\xe9 2 roky\n \n \n Last 5 years\n Uplynul\xfdch 5 let\n \n \n Information\n Informace\n \n \n No items selected.\n Nevybr\xe1ny \u017e\xe1dn\xe9 polo\u017eky.\n \n \n Deselect item to select again\n Aby polo\u017eku bylo mo\u017en\xe9 znovu vybrat, je t\u0159eba nejprve zru\u0161it jej\xed v\xfdb\u011br\n \n \n Selection limit reached\n Dosa\u017een limit v\xfdb\u011bru\n \n \n Filter tags\n Filtrovat \u0161t\xedtky\n \n \n Add badge\n P\u0159idat odznak\n \n \n There are no items available.\n Nejsou k dispozici \u017e\xe1dn\xe9 polo\u017eky.\n \n \n Add\n P\u0159idat\n \n \n Remove\n Remove\n \n \n Clone\n Klonovat\n \n \n Copy\n Kop\xedrovat\n \n \n Deep Scrub\n Hloubkov\xe1 kontrola\n \n \n Destroy\n Zlikvidovat\n \n \n Flatten\n Zplo\u0161tit\n \n \n Mark Down\n Ozna\u010dit\n \n \n Mark In\n Ozna\u010dit\n \n \n Mark Lost\n Ozna\u010dit ztracen\xe9\n \n \n Mark Out\n Odzna\u010dit\n \n \n Protect\n Ochr\xe1nit\n \n \n Rename\n P\u0159ejmenovat\n \n \n Restore\n Obnovit\n \n \n Move to Trash\n P\u0159esunout do ko\u0161e\n \n \n Unprotect\n Zru\u0161it ochranu\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Smaz\xe1no\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Naklonov\xe1no\n \n \n Copied\n Zkop\xedrov\xe1no\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Ano\n \n \n No\n Ne\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Kvalita slu\u017eby\n \n \n BPS Limit\n BPS Limit\n \n \n The desired limit of IO bytes per second.\n Po\u017eadovan\xfd limit vst./v\xfdstup. bajt\u016f za sekundu.\n \n \n IOPS Limit\n IOPS Limit\n \n \n The desired limit of IO operations per second.\n Po\u017eadovan\xfd limit vst./v\xfdstup. operac\xed za sekundu.\n \n \n Read BPS Limit\n Read BPS Limit\n \n \n The desired limit of read bytes per second.\n Po\u017eadovan\xfd limit \u010dten\xed bajt\u016f za sekundu.\n \n \n Read IOPS Limit\n Read IOPS Limit\n \n \n The desired limit of read operations per second.\n Po\u017eadovan\xfd limit operac\xed \u010dten\xed za sekundu.\n \n \n Write BPS Limit\n Write BPS Limit\n \n \n The desired limit of write bytes per second.\n Po\u017eadovan\xfd limit z\xe1pisu bajt\u016f za sekundu.\n \n \n Write IOPS Limit\n Write IOPS Limit\n \n \n The desired limit of write operations per second.\n Po\u017eadovan\xfd limit operac\xed \u010dten\xed za sekundu.\n \n \n BPS Burst\n BPS d\xe1vka\n \n \n The desired burst limit of IO bytes.\n The desired burst limit of IO bytes.\n \n \n IOPS Burst\n IOPS Burst\n \n \n The desired burst limit of IO operations.\n Po\u017eadovan\xfd limit d\xe1vky vst./v\xfdstup. operac\xed.\n \n \n Read BPS Burst\n Read BPS Burst\n \n \n The desired burst limit of read bytes.\n Po\u017eadovan\xfd limit d\xe1vky bajt\u016f \u010dten\xed.\n \n \n Read IOPS Burst\n Read IOPS Burst\n \n \n The desired burst limit of read operations.\n Po\u017eadovan\xfd limit d\xe1vky \u010dten\xed bajt\u016f.\n \n \n Write BPS Burst\n Write BPS Burst\n \n \n The desired burst limit of write bytes.\n Po\u017eadovan\xfd limit bajt\u016f d\xe1vky z\xe1pisu.\n \n \n Write IOPS Burst\n Write IOPS Burst\n \n \n The desired burst limit of write operations.\n Po\u017eadovan\xfd limit d\xe1vky operace z\xe1pisu.\n \n \n Failed to \n \n \n \n Nepoda\u0159ilo se \n \n \n \n \n \n Executing\n Vykon\xe1v\xe1 se\n \n \n execute\n vykonat\n \n \n Executed\n Vykon\xe1no\n \n \n unknown task\n nezn\xe1m\xfd \xfakol\n \n \n Creating\n Vytv\xe1\u0159\xed se\n \n \n create\n vytvo\u0159it\n \n \n Updating\n Aktualizuje se\n \n \n update\n aktualizovat\n \n \n Deleting\n Ma\u017ee se\n \n \n delete\n smazat\n \n \n RBD \'\n \'\n \n RBD \u201e\n \u201c\n \n \n \n RBD snapshot \'\n \'\n \n RBD zachycen\xfd stav \u201e\n \u201c\n \n \n \n mirror mode for pool \'\n \'\n \n re\u017eim zrcadlen\xed pro fond \u201e\n \u201c\n \n \n \n mirror peer for pool \'\n \'\n \n prot\u011bj\u0161ek zrcadlen\xed pro fond \u201e\n \u201c\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n \n .\n \n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n \n .\n \n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n \n .\n \n \n \n \n contains snapshots.\n \n \n obsahuje zachycen\xe9 stavy.\n \n \n \n Cloning\n Klonuje se\n \n \n clone\n klonovat\n \n \n Snapshot of \n must be protected.\n \n Je t\u0159eba, aby zachycen\xfd stav \n byl chr\xe1n\u011bn\xfd.\n \n \n \n Copying\n Kop\xedruje se\n \n \n copy\n zkop\xedrovat\n \n \n Flattening\n Zplo\u0161t\u011bn\xed\n \n \n flatten\n zplo\u0161tit\n \n \n Flattened\n Zplo\u0161t\u011bno\n \n \n Name is already used by \n .\n \n N\xe1zev u\u017e je pou\u017e\xedv\xe1n pro \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Nen\xed mo\u017en\xe9 zru\u0161it ochranu \n , proto\u017ee obsahuje pod\u0159\xedzen\xe9 obrazy.\n \n \n \n Cannot delete \n because it\'s protected.\n \n \n nen\xed mo\u017en\xe9 smazat, proto\u017ee je chr\xe1n\u011bn\xe9.\n \n \n \n Rolling back\n Bere se zp\u011bt\n \n \n rollback\n vz\xedt zp\u011bt\n \n \n Rolled back\n Vzato zp\u011bt\n \n \n Moving\n P\u0159esouv\xe1 se\n \n \n move\n p\u0159esunout\n \n \n Moved\n P\u0159esunuto\n \n \n image \'\n \' to trash\n \n obraz \u201e\n \u201c do ko\u0161e\n \n \n \n Could not find image.\n Obraz se neda\u0159\xed naj\xedt.\n \n \n Restoring\n Obnovuje se\n \n \n restore\n obnovit\n \n \n Restored\n Obnoveno\n \n \n image \'\n \' into \'\n \'\n \n obraz \u201e\n \u201c do \u201e\n \u201c\n \n \n \n Image name \'\n \' is already in use.\n \n N\xe1zev \u201e\n \u201c u\u017e je pou\u017e\xedv\xe1n pro jin\xfd obraz.\n \n \n \n image \'\n \'\n \n obraz \u201e\n \u201c\n \n \n \n Purging\n \u010cist\xed se\n \n \n purge\n vy\u010distit\n \n \n Purged\n Vy\u010di\u0161t\u011bno\n \n \n all pools\n v\u0161echny fondy\n \n \n images from \n \n \n obrazy z \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Zrcadlen\xed nelze vypnout proto\u017ee obsahuje prot\u011bj\u0161ek.\n \n \n pool \'\n \'\n \n fond \u201e\n \u201c\n \n \n \n erasure code profile \'\n \'\n \n profil mazac\xedho k\xf3du \u201e\n \u201c\n \n \n \n target \'\n \'\n \n c\xedl \u201e\n \u201c\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},McSo:function(t,e,n){"use strict";function a(t){return null!==t&&"object"==typeof t}n.d(e,"a",function(){return a})},MdoF:function(t,e,n){"use strict";n.d(e,"b",function(){return s}),n.d(e,"c",function(){return c}),n.d(e,"a",function(){return d});var a=n("CcnG"),r=n("lTVp"),i=n("Ip0R"),s=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"button",[["aria-label","Close"],["class","close"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\xd7"])),(t()(),a["\u0275eld"](3,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Close"]))],null,null)}function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["role","alert"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,o)),a["\u0275did"](3,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275ncd"](null,0)],function(t,e){var n=e.component;t(e,1,0,"alert alert-"+n.type,n.classes),t(e,3,0,n.dismissible)},null)}function c(t){return a["\u0275vid"](2,[(t()(),a["\u0275and"](16777216,null,null,1,null,u)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.isOpen)},null)}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"alert",[],null,null,null,c,s)),a["\u0275did"](1,114688,null,0,r.a,[r.b,a.ChangeDetectorRef],null,null)],function(t,e){t(e,1,0)},null)}var d=a["\u0275ccf"]("alert,bs-alert",r.a,l,{type:"type",dismissible:"dismissible",dismissOnTimeout:"dismissOnTimeout",isOpen:"isOpen"},{onClose:"onClose",onClosed:"onClosed"},["*"])},Mfce:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG");n("czA5"),e.DataTableRowWrapperComponent=function(){function t(t,e){this.cd=t,this.differs=e,this.rowContextmenu=new i.EventEmitter(!1),this.groupContext={group:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this.rowContext={row:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this._expanded=!1,this.rowDiffer=e.find({}).create()}return Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.rowContext.rowIndex=t,this.groupContext.rowIndex=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.groupContext.expanded=t,this.rowContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.row)&&(this.rowContext.row=this.row,this.groupContext.group=this.row,this.cd.markForCheck())},t.prototype.onContextmenu=function(t){this.rowContextmenu.emit({event:t,row:this.row})},t.prototype.getGroupHeaderStyle=function(){var t={};return t.transform="translate3d("+this.offsetX+"px, 0px, 0px)",t["backface-visibility"]="hidden",t.width=this.innerWidth,t},a([i.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"detailRowHeight",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([i.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([i.Component({selector:"datatable-row-wrapper",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n
\n \n \n \n \n \n \n ',host:{class:"datatable-row-wrapper"}})],t)}()},MgB7:function(t,e,n){"use strict";function a(t,e,n){var a,r,i;n=n||{};var s=null,o=0;function u(){o=!1===n.leading?0:+new Date,s=null,i=t.apply(a,r)}return function(){var c=+new Date;o||!1!==n.leading||(o=c);var l=e-(c-o);return a=this,r=arguments,l<=0?(clearTimeout(s),s=null,o=c,i=t.apply(a,r)):s||!1===n.trailing||(s=setTimeout(u,l)),i}}Object.defineProperty(e,"__esModule",{value:!0}),e.throttle=a,e.throttleable=function(t,e){return function(n,r,i){return{configurable:!0,enumerable:i.enumerable,get:function(){return Object.defineProperty(this,r,{configurable:!0,enumerable:i.enumerable,value:a(i.value,t,e)}),this[r]}}}}},MuvH:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("CcnG"),r=n("t/Na"),i=n("pL04"),s=function(){function t(t){this.http=t}return t.prototype.getConfigData=function(){return this.http.get("api/cluster_conf/")},t.prototype.get=function(t){return this.http.get("api/cluster_conf/"+t)},t.prototype.filter=function(t){return this.http.get("api/cluster_conf/filter?names="+t.join(","))},t.prototype.create=function(t){return this.http.post("api/cluster_conf/",t)},t.prototype.delete=function(t,e){return this.http.delete("api/cluster_conf/"+t+"?section="+e)},t.prototype.bulkCreate=function(t){return this.http.put("api/cluster_conf/",t)},t.ngInjectableDef=a.defineInjectable({factory:function(){return new t(a.inject(r.c))},token:t,providedIn:i.a}),t}()},MwfX:function(t,e,n){"use strict";n.d(e,"a",function(){return d}),n.d(e,"b",function(){return f});var a=n("mrSG"),r=n("zo3G"),i=n("26FU"),s=n("6blF"),o=n("mZXl"),u=n("dC0D"),c=n("67Y/"),l=n("ad02"),d=function(t){function e(e,n,a){var i=t.call(this,e)||this;return n.pipe(Object(o.b)(r.a)).pipe(Object(u.a)(function(t,e){return e?a(t,e):t},e)).subscribe(function(t){return i.next(t)}),i}return Object(a.__extends)(e,t),e}(i.a),f=function(t){function e(e,n,a){var r=t.call(this)||this;return r._dispatcher=e,r._reducer=n,r.source=a,r}return Object(a.__extends)(e,t),e.prototype.select=function(t){return this.source.pipe(Object(c.a)(t)).pipe(Object(l.a)())},e.prototype.lift=function(t){var n=new e(this._dispatcher,this._reducer,this);return n.operator=t,n},e.prototype.dispatch=function(t){this._dispatcher.next(t)},e.prototype.next=function(t){this._dispatcher.next(t)},e.prototype.error=function(t){this._dispatcher.error(t)},e.prototype.complete=function(){},e}(s.a)},Mxhz:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("CcnG"),r=n("t/Na"),i=n("pL04"),s=function(){function t(t){this.http=t}return t.prototype.list=function(){return this.http.get("api/user")},t.prototype.delete=function(t){return this.http.delete("api/user/"+t)},t.prototype.get=function(t){return this.http.get("api/user/"+t)},t.prototype.create=function(t){return this.http.post("api/user",t)},t.prototype.update=function(t){return this.http.put("api/user/"+t.username,t)},t.ngInjectableDef=a.defineInjectable({factory:function(){return new t(a.inject(r.c))},token:t,providedIn:i.a}),t}()},NDi4:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("CcnG"),r=function(){return function(){this.title="Error",this.backAction=new a.EventEmitter}}()},NEZu:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(t,e,n,a){this.customColors={backgroundColor:void 0,borderColor:void 0},this.checkOffset=!1,this.chartEl=t.nativeElement,this.getStyleLeft=n,this.getStyleTop=a,this.tooltipEl=e.nativeElement}return t.prototype.customTooltips=function(t){var e=this;if(0!==t.opacity){if(this.tooltipEl.classList.remove("above","below","no-transform"),this.tooltipEl.classList.add(t.yAlign?t.yAlign:"no-transform"),t.body){var n=t.title||[],a=t.body.map(function(t){return t.lines}),r="";n.forEach(function(t){r+=""+e.getTitle(t)+""}),r+="",a.forEach(function(n,a){var i=t.labelColors[a],s="background:"+(e.customColors.backgroundColor||i.backgroundColor);s+="; border-color:"+(e.customColors.borderColor||i.borderColor),r+=''+e.getBody(n)+""}),r+="",this.tooltipEl.querySelector("table").innerHTML=r}var i=this.chartEl.offsetTop,s=this.chartEl.offsetLeft;if(this.checkOffset){var o=t.width/2;this.tooltipEl.classList.remove("transform-left"),this.tooltipEl.classList.remove("transform-right"),t.caretX-o<0?this.tooltipEl.classList.add("transform-left"):t.caretX+o>this.chartEl.width&&this.tooltipEl.classList.add("transform-right")}this.tooltipEl.style.left=this.getStyleLeft(t,s),this.tooltipEl.style.top=this.getStyleTop(t,i),this.tooltipEl.style.opacity=1,this.tooltipEl.style.fontFamily=t._fontFamily,this.tooltipEl.style.fontSize=t.fontSize,this.tooltipEl.style.fontStyle=t._fontStyle,this.tooltipEl.style.padding=t.yPadding+"px "+t.xPadding+"px"}else this.tooltipEl.style.opacity=0},t.prototype.getBody=function(t){return t},t.prototype.getTitle=function(t){return t},t}()},NJnL:function(t,e,n){"use strict";n.d(e,"a",function(){return G});var a=n("mrSG"),r=n("CcnG"),i=n("Ip0R"),s=n("K9Ia"),o=n("p0ib"),u=n("bne5"),c=n("F/XL"),l=n("tHPV");function d(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function f(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function p(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=d(t),n=e.overflowX,a=e.overflowY;return/(auto|scroll|overlay)/.test(String(e.overflow)+String(a)+String(n))?t:p(f(t))}var h="undefined"!=typeof window&&"undefined"!=typeof document,g=h&&!(!window.MSInputMethodContext||!document.documentMode),b=h&&!(!window.MSInputMethodContext||!/MSIE 10/.test(navigator.userAgent));function m(t){return 11===t?g:10===t?b:g||b}function y(t){if(!t)return document.documentElement;for(var e,n=m(10)?document.body:null,a=t.offsetParent||null;a===n&&t.nextElementSibling&&e!==t.nextElementSibling;)a=(e=t.nextElementSibling).offsetParent;var r=a&&a.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(a.nodeName)&&"static"===d(a,"position")?y(a):a:e?e.ownerDocument.documentElement:document.documentElement}function v(t){return null!==t.parentNode?v(t.parentNode):t}function _(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,a=n?t:e,r=n?e:t,i=document.createRange();i.setStart(a,0),i.setEnd(r,0);var s,o,u=i.commonAncestorContainer;if(t!==u&&e!==u||a.contains(r))return"BODY"===(o=(s=u).nodeName)||"HTML"!==o&&y(s.firstElementChild)!==s?y(u):u;var c=v(t);return c.host?_(c.host,e):_(t,v(e).host)}function x(t,e){var n="x"===e?"Left":"Top",a="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"])+parseFloat(t["border"+a+"Width"])}function T(t,e,n,a){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],m(10)?parseInt(n["offset"+t],10)+parseInt(a["margin"+("Height"===t?"Top":"Left")],10)+parseInt(a["margin"+("Height"===t?"Bottom":"Right")],10):0)}function w(t){var e=t.body,n=t.documentElement,a=m(10)&&getComputedStyle(n);return{height:T("Height",e,n,a),width:T("Width",e,n,a)}}function S(t,e){void 0===e&&(e="top");var n="top"===e?"scrollTop":"scrollLeft",a=t.nodeName;return"BODY"===a||"HTML"===a?(t.ownerDocument.scrollingElement||t.ownerDocument.documentElement)[n]:t[n]}function O(t){return Object(a.__assign)({},t,{right:t.left+t.width,bottom:t.top+t.height})}function I(t){var e={};try{if(m(10)){e=t.getBoundingClientRect();var n=S(t,"top"),a=S(t,"left");e.top+=n,e.left+=a,e.bottom+=n,e.right+=a}else e=t.getBoundingClientRect()}catch(c){return}var r={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},i="HTML"===t.nodeName?w(t.ownerDocument):{},s=t.offsetWidth-(i.width||t.clientWidth||r.right-r.left),o=t.offsetHeight-(i.height||t.clientHeight||r.bottom-r.top);if(s||o){var u=d(t);s-=x(u,"x"),o-=x(u,"y"),r.width-=s,r.height-=o}return O(r)}function C(t,e,n){void 0===n&&(n=!1);var a=m(10),r="HTML"===e.nodeName,i=I(t),s=I(e),o=p(t),u=d(e),c=parseFloat(u.borderTopWidth),l=parseFloat(u.borderLeftWidth);n&&r&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var f=O({top:i.top-s.top-c,left:i.left-s.left-l,width:i.width,height:i.height});if(f.marginTop=0,f.marginLeft=0,!a&&r){var h=parseFloat(u.marginTop),g=parseFloat(u.marginLeft);f.top-=c-h,f.bottom-=c-h,f.left-=l-g,f.right-=l-g,f.marginTop=h,f.marginLeft=g}return(a&&!n?e.contains(o):e===o&&"BODY"!==o.nodeName)&&(f=function(t,e,n){void 0===n&&(n=!1);var a=S(e,"top"),r=S(e,"left"),i=n?-1:1;return t.top+=a*i,t.bottom+=a*i,t.left+=r*i,t.right+=r*i,t}(f,e)),f}function k(t){if(!t||!t.parentElement||m())return document.documentElement;for(var e=t.parentElement;e&&"none"===d(e,"transform");)e=e.parentElement;return e||document.documentElement}function N(t,e,n,a,r){void 0===n&&(n=0),void 0===r&&(r=!1);var i={top:0,left:0},s=r?k(t):_(t,e);if("viewport"===a)i=function(t,e){void 0===e&&(e=!1);var n=s.ownerDocument.documentElement,a=C(s,n),r=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),o=e?0:S(n),u=e?0:S(n,"left");return O({top:o-Number(a.top)+Number(a.marginTop),left:u-Number(a.left)+Number(a.marginLeft),width:r,height:i})}(0,r);else{var o=void 0;"scrollParent"===a?"BODY"===(o=p(f(e))).nodeName&&(o=t.ownerDocument.documentElement):o="window"===a?t.ownerDocument.documentElement:a;var u=C(o,s,r);if("HTML"!==o.nodeName||function t(e){var n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===d(e,"position")||t(f(e)))}(s))i=u;else{var c=w(t.ownerDocument),l=c.height,h=c.width;i.top+=u.top-u.marginTop,i.bottom=Number(l)+Number(u.top),i.left+=u.left-u.marginLeft,i.right=Number(h)+Number(u.left)}}return i.left+=n,i.top+=n,i.right-=n,i.bottom-=n,i}function R(t,e,n,r,i,s,o){if(void 0===i&&(i=["top","bottom","right","left"]),void 0===s&&(s="viewport"),void 0===o&&(o=0),-1===t.indexOf("auto"))return t;var u=N(n,r,o,s),c={top:{width:u.width,height:e.top-u.top},right:{width:u.right-e.right,height:u.height},bottom:{width:u.width,height:u.bottom-e.bottom},left:{width:e.left-u.left,height:u.height}},l=Object.keys(c).map(function(t){return Object(a.__assign)({key:t},c[t],{area:(e=c[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),d=l.filter(function(t){return t.width>=n.clientWidth&&t.height>=n.clientHeight}),f=(d=d.filter(function(t){return i.some(function(e){return e===t.key})})).length>0?d[0].key:l[0].key,p=t.split(" ")[1];return n.className=n.className.replace(/bs-tooltip-auto/g,"bs-tooltip-"+f),f+(p?"-"+p:"")}function A(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),a=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:Number(t.offsetWidth)+a,height:Number(t.offsetHeight)+n}}function D(t,e,n){return void 0===n&&(n=null),C(e,n?k(t):_(t,e),n)}function E(t,e,n){var a,r=n.split(" ")[0],i=A(t),s={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(r),u=o?"top":"left",c=o?"left":"top",l=o?"height":"width",d=o?"width":"height";return s[u]=e[u]+e[l]/2-i[l]/2,s[c]=r===c?e[c]-i[d]:e[(a={left:"right",right:"left",bottom:"top",top:"bottom"},c.replace(/left|right|bottom|top/g,function(t){return a[t]}))],s}function L(t,e){return t&&t.modifiers&&t.modifiers[e]&&t.modifiers[e].enabled}function P(t,e,n){Object.keys(e).forEach(function(a){var r,i="";-1!==["width","height","top","right","bottom","left"].indexOf(a)&&""!==(r=e[a])&&!isNaN(parseFloat(r))&&isFinite(r)&&(i="px"),n?n.setStyle(t,a,""+String(e[a])+i):t.style[a]=String(e[a])+i})}function M(t){var e,n=t.offsets.target,a=t.instance.target.querySelector(".arrow");if(!a)return t;var r=-1!==["left","right"].indexOf(t.placement),i=r?"height":"width",s=r?"Top":"Left",o=s.toLowerCase(),u=r?"left":"top",c=r?"bottom":"right",l=A(a)[i];t.offsets.host[c]-ln[c]&&(n[o]+=Number(t.offsets.host[o])+Number(l)-Number(n[c])),n=O(n);var f=Number(t.offsets.host[o])+Number(t.offsets.host[i]/2-l/2),p=d(t.instance.target),h=parseFloat(p["margin"+s]),g=parseFloat(p["border"+s+"Width"]),b=f-n[o]-h-g;return b=Math.max(Math.min(n[i]-l,b),0),t.offsets.arrow=((e={})[o]=Math.round(b),e[u]="",e),t.instance.arrow=a,t}function q(t){if(t.offsets.target=O(t.offsets.target),!L(t.options,"flip"))return t.offsets.target=Object(a.__assign)({},t.offsets.target,E(t.instance.target,t.offsets.host,t.placement)),t;var e=N(t.instance.target,t.instance.host,0,"viewport",!1),n=t.placement.split(" ")[0],r=t.placement.split(" ")[1]||"",i=R("auto",t.offsets.host,t.instance.target,t.instance.host,t.options.allowedPositions),s=[n,i];return s.forEach(function(i,o){if(n!==i||s.length===o+1)return t;var u="left"===(n=t.placement.split(" ")[0])&&Math.floor(t.offsets.target.right)>Math.floor(t.offsets.host.left)||"right"===n&&Math.floor(t.offsets.target.left)Math.floor(t.offsets.host.top)||"bottom"===n&&Math.floor(t.offsets.target.top)Math.floor(e.right),d=Math.floor(t.offsets.target.top)Math.floor(e.bottom),p="left"===n&&c||"right"===n&&l||"top"===n&&d||"bottom"===n&&f,h=-1!==["top","bottom"].indexOf(n),g=h&&"left"===r&&c||h&&"right"===r&&l||!h&&"left"===r&&d||!h&&"right"===r&&f;(u||p||g)&&((u||p)&&(n=s[o+1]),g&&(r=function(t){return"right"===t?"left":"left"===t?"right":t}(r)),t.placement=n+(r?" "+r:""),t.offsets.target=Object(a.__assign)({},t.offsets.target,E(t.instance.target,t.offsets.host,t.placement)))}),t}function j(t){if(!L(t.options,"preventOverflow"))return t;var e=t.instance.target.style,n=e.top,r=e.left,i=e.transform;e.top="",e.left="",e.transform="";var s=N(t.instance.target,t.instance.host,0,"scrollParent",!1);e.top=n,e.left=r,e.transform=i;var o,u={primary:function(e){var n,a=t.offsets.target[e];return t.offsets.target[e]s[e]&&(r=Math.min(t.offsets.target[a],s[e]-("right"===e?t.offsets.target.width:t.offsets.target.height))),(n={})[a]=r,n}};return["left","right","top","bottom"].forEach(function(e){o=-1!==["left","top"].indexOf(e)?"primary":"secondary",t.offsets.target=Object(a.__assign)({},t.offsets.target,u[o](e))}),t}function F(t){var e,n,r=t.placement,i=r.split(" ")[0],s=r.split(" ")[1];if(s){var o=t.offsets,u=o.host,c=o.target,l=-1!==["bottom","top"].indexOf(i),d=l?"left":"top",f=l?"width":"height",p={start:(e={},e[d]=u[d],e),end:(n={},n[d]=u[d]+u[f]-c[f],n)};t.offsets.target=Object(a.__assign)({},c,p[s])}return t}var z=new(function(){function t(){}return t.prototype.position=function(t,e,n){return void 0===n&&(n=!0),this.offset(t,e,!1)},t.prototype.offset=function(t,e,n){return void 0===n&&(n=!0),D(e,t)},t.prototype.positionElements=function(t,e,n,a,r){return[q,F,j,M].reduce(function(t,e){return e(t)},function(t,e,n,a){var r=D(t,e);n.match(/^(auto)*\s*(left|right|top|bottom)*$/)||n.match(/^(left|right|top|bottom)*\s*(start|end)*$/)||(n="auto");var i=!!n.match(/auto/g),s=n.match(/auto\s(left|right|top|bottom)/)?n.split(" ")[1]||"auto":n;return{options:a,instance:{target:t,host:e,arrow:null},offsets:{target:E(t,r,s),host:r,arrow:null},positionFixed:!1,placement:s=R(s,r,t,e,a?a.allowedPositions:void 0),placementAuto:i}}(e,t,n,r))},t}()),G=function(){function t(t,e){var n=this;this.update$$=new s.a,this.positionElements=new Map,this.isDisabled=!1,Object(i.isPlatformBrowser)(e)&&(this.triggerEvent$=Object(o.a)(Object(u.a)(window,"scroll"),Object(u.a)(window,"resize"),Object(c.a)(0,l.a),this.update$$),this.triggerEvent$.subscribe(function(){n.isDisabled||n.positionElements.forEach(function(e){var a,r,i,s,o,u,c,l;a=Y(e.target),r=Y(e.element),i=e.attachment,s=e.appendToBody,o=n.options,u=t.createRenderer(null,null),P(r,{"will-change":"transform",top:"0px",left:"0px",transform:"translate3d("+(l=function(t){return{width:t.offsets.target.width,height:t.offsets.target.height,left:Math.floor(t.offsets.target.left),top:Math.round(t.offsets.target.top),bottom:Math.round(t.offsets.target.bottom),right:Math.floor(t.offsets.target.right)}}(c=z.positionElements(a,r,i,s,o))).left+"px, "+l.top+"px, 0px)"},u),c.instance.arrow&&P(c.instance.arrow,c.offsets.arrow,u),function(t,e){var n=t.instance.target,a=n.className;t.placementAuto&&(-1!==(a=(a=(a=a.replace(/bs-popover-auto/g,"bs-popover-"+t.placement)).replace(/bs-tooltip-auto/g,"bs-tooltip-"+t.placement)).replace(/\sauto/g," "+t.placement)).indexOf("popover")&&-1===a.indexOf("popover-auto")&&(a+=" popover-auto"),-1!==a.indexOf("tooltip")&&-1===a.indexOf("tooltip-auto")&&(a+=" tooltip-auto")),a=a.replace(/left|right|top|bottom/g,""+t.placement.split(" ")[0]),e?e.setAttribute(n,"class",a):n.className=a}(c,u)})}))}return t.prototype.position=function(t){this.addPositionElement(t)},Object.defineProperty(t.prototype,"event$",{get:function(){return this.triggerEvent$},enumerable:!0,configurable:!0}),t.prototype.disable=function(){this.isDisabled=!0},t.prototype.enable=function(){this.isDisabled=!1},t.prototype.addPositionElement=function(t){this.positionElements.set(Y(t.element),t)},t.prototype.calcPosition=function(){this.update$$.next()},t.prototype.deletePositionElement=function(t){this.positionElements.delete(Y(t))},t.prototype.setOptions=function(t){this.options=t},t}();function Y(t){return"string"==typeof t?document.querySelector(t):t instanceof r.ElementRef?t.nativeElement:t}},NUGo:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("ZYCi"),s=n("xtZt"),o=n("lqqz");n("S7zO"),n.d(e,"a",function(){return u}),n.d(e,"b",function(){return g});var u=a["\u0275crt"]({encapsulation:0,styles:[[".dropdown-menu[_ngcontent-%COMP%] > .disabled[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{pointer-events:auto;cursor:default!important}"]],data:{}});function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,6,"button",[["class","btn btn-sm btn-primary"],["type","button"]],null,[[null,"click"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==a["\u0275nov"](t,4).onClick()&&r),"click"===e&&(r=!1!==i.useClickAction(t.context.ngIf)&&r),r},null,null)),a["\u0275did"](2,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](3,{disabled:0}),a["\u0275did"](4,16384,null,0,i.m,[i.l,i.a,[8,null],a.Renderer2,a.ElementRef],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["\u0275eld"](5,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](7,null,["",""]))],function(t,e){var n=e.component,a=t(e,3,0,n.disableSelectionAction(e.context.ngIf));t(e,2,0,"btn btn-sm btn-primary",a),t(e,4,0,e.context.ngIf.preserveFragment?"":null,n.useRouterLink(e.context.ngIf))},function(t,e){t(e,5,0,a["\u0275inlineInterpolate"](1,"fa fa-fw ",e.context.ngIf.icon,"")),t(e,7,0,e.context.ngIf.name)})}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.component.onlyDropDown)})}function d(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"span",[["class","sr-only"]],null,null,null,null,null))],null,null)}function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,6,"button",[["class","btn btn-sm btn-primary dropdown-toggle dropdown-toggle-split"],["dropdownToggle",""],["type","button"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick()&&r),r},null,null)),a["\u0275did"](1,147456,null,0,s.g,[a.ChangeDetectorRef,s.c,a.ElementRef,a.Renderer2,s.f],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,l)),a["\u0275did"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](4,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,d)),a["\u0275did"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.onlyDropDown),t(e,6,0,!n.onlyDropDown)},function(t,e){t(e,0,0,!0,a["\u0275nov"](e,1).isDisabled,a["\u0275nov"](e,1).isOpen)})}function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,8,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,7,"li",[["data-toggle","tooltip"],["role","menuitem"]],[[8,"title",0]],null,null,null,null)),a["\u0275did"](2,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](3,{disabled:0}),(t()(),a["\u0275eld"](4,0,null,null,4,"a",[["class","dropdown-item"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==a["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),"click"===e&&(r=!1!==i.useClickAction(t.context.$implicit)&&r),r},null,null)),a["\u0275did"](5,671744,null,0,i.o,[i.l,i.a,r.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](8,null,["",""]))],function(t,e){var n=e.component,r=a["\u0275inlineInterpolate"](1,"",n.toClassName(e.context.$implicit.name),""),i=t(e,3,0,n.disableSelectionAction(e.context.$implicit));t(e,2,0,r,i),t(e,5,0,e.context.$implicit.preserveFragment?"":null,n.useRouterLink(e.context.$implicit))},function(t,e){t(e,1,0,a["\u0275inlineInterpolate"](1,"",e.component.useDisableDesc(e.context.$implicit),"")),t(e,4,0,a["\u0275nov"](e,5).target,a["\u0275nov"](e,5).href),t(e,6,0,a["\u0275inlineInterpolate"](1,"fa fa-fw ",e.context.$implicit.icon,"")),t(e,8,0,e.context.$implicit.name)})}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"ul",[["class","dropdown-menu"],["role","menu"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](2,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.dropDownActions)},null)}function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,16777216,null,null,8,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["\u0275prd"](512,null,s.f,s.f,[]),a["\u0275did"](2,212992,null,0,s.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,o.a,s.a,s.f],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,f)),a["\u0275did"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,h)),a["\u0275did"](8,16384,null,0,s.d,[s.f,a.ViewContainerRef,a.TemplateRef],null,null)],function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.getCurrentButton()),t(e,6,0,n.showDropDownActions())},function(t,e){t(e,0,0,a["\u0275nov"](e,2).dropup,a["\u0275nov"](e,2).isOpen,a["\u0275nov"](e,2).isOpen&&a["\u0275nov"](e,2).isBs4)})}},Nia1:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("3/HP")),a(n("FLvf")),a(n("2V7f")),a(n("fktO")),a(n("QHrR")),a(n("i3PA"))},O5R2:function(t,e,n){"use strict";n.r(e);var a=n("6blF"),r=n("VnD/");a.a.prototype.filter=function(t,e){return Object(r.a)(t,e)(this)}},ODdm:function(t,e,n){"use strict";t.exports=function(t){t.Bar=function(e,n){return n.type="bar",new t(e,n)}}},OIYi:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}()},OLbh:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("gIcY"),r=function(){function t(t){this.modalRef=t,this.boundCancel=this.cancel.bind(this),this.confirmationForm=new a.k({})}return t.prototype.ngOnInit=function(){this.bodyContext=this.bodyContext||{},this.bodyContext.$implicit=this.bodyData},t.prototype.cancel=function(){this.modalRef.hide(),this.onCancel&&this.onCancel()},t.prototype.stopLoadingSpinner=function(){this.confirmationForm.setErrors({cdSubmitButton:!0})},t}()},"OWV/":function(t,e){t.exports='\n \n \n \n Toggle navigation\n Alternar navega\xe7\xe3o\n \n \n Dashboard\n Painel de controle\n \n \n Cluster\n Cluster\n \n \n Hosts\n Hosts\n \n \n Monitors\n Monitores\n \n \n OSDs\n OSDs\n \n \n Configuration\n Configura\xe7\xe3o\n \n \n CRUSH map\n Mapa CRUSH\n \n \n Manager modules\n M\xf3dulos do gerenciador\n \n \n Logs\n Registros\n \n \n Alerts\n Alertas\n \n \n Silences\n Silences\n \n \n Pools\n Pools\n \n \n Block\n Bloco\n \n \n Images\n Imagens\n \n \n Mirroring\n Espelhamento\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Sistemas de arquivos\n \n \n Object Gateway\n Gateway de Objetos\n \n \n Daemons\n Daemons\n \n \n Users\n Usu\xe1rios\n \n \n Buckets\n Compartimentos\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Recuperando dados\n de\n \n \n . Aguarde...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Exibindo dados armazenados em cache anteriormente\n \n para \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n N\xe3o foi poss\xedvel carregar os dados\n de\n \n \n .\n Verifique a sa\xfade do cluster.\n \n \n \n Back\n Voltar\n \n \n Select a Language\n Selecionar Idioma\n \n \n Loading panel data...\n Carregando dados do painel...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Consulte a\n documenta\xe7\xe3o\n sobre como\n configurar e habilitar a funcionalidade de monitoramento.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n O Painel de Controle do Grafana n\xe3o existe. Consulte a\n documenta\xe7\xe3o\n sobre como\n adicionar pain\xe9is de controle ao Grafana.\n \n \n \n Grafana Time Picker\n Seletor de Hor\xe1rio do Grafana\n \n \n Reset Settings\n Redefinir Configura\xe7\xf5es\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Falha ao carregar dados.\n \n \n selected\n selecionado(s)\n X selected\n \n \n found\n encontrado(s)\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Editar\n \n \n Name\n Nome\n \n \n Description\n Descri\xe7\xe3o\n \n \n Long description\n Descri\xe7\xe3o extensa\n \n \n Default\n Padr\xe3o\n \n \n Daemon default\n Padr\xe3o do daemon\n \n \n Services\n Servi\xe7os\n \n \n Values\n Valores\n \n \n The entered value is too high! It must not be greater than \n .\n \n O valor inserido \xe9 muito alto! Ele n\xe3o pode ser maior do que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n O valor inserido \xe9 muito baixo! Ele n\xe3o deve ser menor do que \n .\n \n \n \n Save\n Salvar\n \n \n CRUSH map viewer\n Visualizador de mapa CRUSH\n \n \n Hosts List\n Lista de Hosts\n \n \n Overall Performance\n Desempenho Geral\n \n \n No entries found\n Nenhuma entrada encontrada\n \n \n Cluster Logs\n Registros do Cluster\n \n \n Audit Logs\n Registros de Auditoria\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Carregando configura\xe7\xe3o...\n \n \n The configuration could not be loaded.\n N\xe3o foi poss\xedvel carregar a configura\xe7\xe3o.\n \n \n Edit Manager module\n Editar m\xf3dulo do gerenciador\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n O valor inserido n\xe3o \xe9 um UUID v\xe1lido. Ex.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n O valor inserido precisa ser um endere\xe7o IP v\xe1lido.\n \n \n This field is required.\n Este campo \xe9 obrigat\xf3rio.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n O valor inserido \xe9 muito alto! Ele deve ser menor ou igual a \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n O valor inserido \xe9 muito baixo! Ele deve ser maior ou igual a \n .\n \n \n \n The entered value needs to be a number.\n O valor inserido precisa ser um n\xfamero.\n \n \n The entered value needs to be a number or decimal.\n O valor inserido precisa ser um n\xfamero ou decimal.\n \n \n Update\n Atualizar\n \n \n Status\n Status\n \n \n Cluster ID\n ID do Cluster\n \n \n monmap modified\n monmap modificado\n \n \n monmap epoch\n \xe9poca de monmap\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n con obrigat\xf3rio\n \n \n required mon\n mon obrigat\xf3rio\n \n \n In Quorum\n No Quorum\n \n \n Not In Quorum\n N\xe3o est\xe1 no Quorum\n \n \n Cancel\n Cancelar\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Deseja realmente \n o(a) \n selecionado(a)?\n \n \n \n Yes, I am sure.\n Sim, desejo.\n \n \n Cluster-wide OSD Flags\n Flags OSD de todo o Cluster\n \n \n Submit\n Enviar\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avan\xe7ado...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Prioridade de Recupera\xe7\xe3o de OSD\n \n \n Priority\n Prioridade\n \n \n Customize priority values\n Personalizar valores de prioridade\n \n \n This field is required!\n Este campo \xe9 obrigat\xf3rio!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n O valor inserido \xe9 muito alto! Ele n\xe3o pode ser maior do que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n O valor inserido \xe9 muito baixo! Ele n\xe3o deve ser menor do que \n .\n \n \n \n Reweight OSD\n Reponderar OSD\n \n \n The value needs to be between 0 and 1.\n O valor precisa ser entre 0 e 1.\n \n \n Reweight\n Reponderar\n \n \n OSDs \n Scrub\n \n Remo\xe7\xe3o de OSDs \n \n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Profundo } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Voc\xea est\xe1 prestes a aplicar uma \n remo\xe7\xe3o ao\n OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {profundo} }\n \n \n OSDs List\n Lista de OSDs\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n OSD \n \n ser\xe1 marcado como\n \n \n se voc\xea continuar.\n \n \n \n The OSD is not safe to destroy!\n N\xe3o \xe9 seguro destruir o OSD!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n OSD \n \n ser\xe1\n \n \n se voc\xea continuar.\n \n \n \n Details\n Detalhes\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valor\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Fechar\n \n \n Delete\n Excluir\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Sa\xfade\n \n \n Statistics\n Estat\xedsticas\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Consulte a \n documenta\xe7\xe3o\n \n sobre como configurar e habilitar a funcionalidade de gerenciamento do NFS Ganesha.\n \n \n \n Clients\n Clientes\n \n \n Any client can access\n Qualquer cliente pode acessar\n \n \n Addresses\n Endere\xe7os\n \n \n Required field\n Campo obrigat\xf3rio\n \n \n Must contain one or more comma-separated values\n Deve conter um ou mais valores separados por v\xedrgula\n \n \n For example:\n Por exemplo:\n \n \n Access Type\n Tipo de Acesso\n \n \n Squash\n Executar Squash\n \n \n Add clients\n Adicionar clientes\n \n \n Loading...\n Carregando...\n \n \n -- No cluster available --\n -- N\xe3o h\xe1 clusters dispon\xedveis --\n \n \n -- Select the cluster --\n -- Selecionar cluster --\n \n \n Add daemon\n Adicionar daemon\n \n \n Storage Backend\n Backend de Armazenamento\n \n \n -- No data pools available --\n -- N\xe3o h\xe1 pools de dados dispon\xedveis --\n \n \n -- Select the storage backend --\n -- Selecionar backend de armazenamento --\n \n \n Object Gateway User\n Usu\xe1rio do Gateway de Objetos\n \n \n -- No users available --\n -- N\xe3o h\xe1 usu\xe1rios dispon\xedveis --\n \n \n -- Select the object gateway user --\n -- Selecionar usu\xe1rio do gateway de objetos --\n \n \n CephFS User ID\n ID de Usu\xe1rio do CephFS\n \n \n -- No clients available --\n -- N\xe3o h\xe1 clientes dispon\xedveis --\n \n \n -- Select the cephx client --\n -- Selecionar cliente do cephx --\n \n \n CephFS Name\n Nome do CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n R\xf3tulo de Seguran\xe7a\n \n \n Enable security label\n Habilitar r\xf3tulo de seguran\xe7a\n \n \n CephFS Path\n Caminho do CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n O caminho precisa come\xe7ar com \'/\' e pode ser seguido de uma palavra\n \n \n New directory will be created\n Novo diret\xf3rio ser\xe1 criado\n \n \n Path\n Caminho\n \n \n Path can only be a single \'/\' or a word\n O caminho pode ser apenas uma \'/\' ou uma palavra\n \n \n New bucket will be created\n Novo compartimento ser\xe1 criado\n \n \n NFS Protocol\n Protocolo NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Acesso alternativo \xe0s montagens do \n NFS v3\n (n\xe3o deve ter / \xe0 esquerda).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Clientes n\xe3o podem montar subdiret\xf3rios (ou seja, se Tag = foo, o cliente n\xe3o poder\xe1 montar foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Ao usar op\xe7\xf5es diferentes de Tag, o mesmo Caminho pode ser exportado v\xe1rias vezes.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n A posi\xe7\xe3o que esta exporta\xe7\xe3o de \n NFS v4\n ocupa\n no \n Pseudo FS\n (deve ser exclusiva).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Ao usar op\xe7\xf5es diferentes de Pseudo, o mesmo Caminho pode ser exportado v\xe1rias vezes.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- N\xe3o h\xe1 tipos de acesso dispon\xedveis --\n \n \n -- Select the access type --\n -- Selecionar tipo de acesso --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- N\xe3o h\xe1 squashes dispon\xedveis --\n \n \n --Select what kind of user id squashing is performed --\n --Selecionar que tipo de squash de ID de usu\xe1rio ser\xe1 executado --\n \n \n Transport Protocol\n Protocolo de Transporte\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Bem-vindo ao Ceph!\n The welcome message on the login page\n \n \n Username is required\n Nome de usu\xe1rio \xe9 obrigat\xf3rio\n \n \n Password is required\n Senha \xe9 obrigat\xf3ria\n \n \n Login\n Login\n \n \n Sorry, the user does not exist in Ceph.\n O usu\xe1rio n\xe3o existe no Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Retorne \xe0 \n P\xe1gina de Login\n . Seu logout ser\xe1 efetuado do Provedor de Identidade quando voc\xea repetir o login.\n \n \n \n Forbidden\n Proibido\n \n \n Sorry, you are not allowed to see what you were looking for.\n Voc\xea n\xe3o tem permiss\xe3o para ver o que est\xe1 procurando.\n \n \n Sorry, we could not find what you were looking for\n N\xe3o foi poss\xedvel localizar o que voc\xea est\xe1 procurando\n \n \n Remove all\n Remover tudo\n \n \n Recent Notifications\n Notifica\xe7\xf5es Recentes\n \n \n There are no background tasks.\n N\xe3o h\xe1 tarefas em segundo plano.\n \n \n Background Tasks\n Tarefas em Segundo Plano\n \n \n Help\n Ajuda\n \n \n Documentation\n Documenta\xe7\xe3o\n \n \n API\n API\n \n \n About\n Sobre\n \n \n Dashboard Settings\n Configura\xe7\xf5es do Painel de Controle\n \n \n User management\n Gerenciamento de usu\xe1rios\n \n \n Logged in user\n Usu\xe1rio que efetuou login\n \n \n Signed in as\n \n \n \n \n Efetuar login como\n \n \n \n \n \n \n Sign out\n Efetuar logout\n \n \n Name...\n Nome...\n \n \n The chosen name is already in use.\n O nome escolhido j\xe1 est\xe1 em uso.\n \n \n Description...\n Descri\xe7\xe3o...\n \n \n Permissions\n Permiss\xf5es\n \n \n Roles\n Fun\xe7\xf5es\n \n \n Username\n Nome de usu\xe1rio\n \n \n Password\n Senha\n \n \n Confirm password\n Confirmar senha\n \n \n Password confirmation doesn\'t match the password.\n A confirma\xe7\xe3o de senha n\xe3o corresponde \xe0 senha.\n \n \n Full name\n Nome completo\n \n \n Email\n E-mail\n \n \n Invalid email.\n E-mail inv\xe1lido.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Voc\xea est\xe1 prestes a remover as permiss\xf5es de "leitura/atualiza\xe7\xe3o de usu\xe1rio" do seu pr\xf3prio usu\xe1rio.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Se voc\xea continuar, n\xe3o poder\xe1 mais adicionar ou remover fun\xe7\xf5es de nenhum usu\xe1rio.\n \n \n Are you sure you want to continue?\n Deseja realmente continuar?\n \n \n Performance counters not available\n Contadores de desempenho n\xe3o dispon\xedveis\n \n \n Attributes (OSD map)\n Atributos (mapa OSD)\n \n \n Metadata not available\n Metadados n\xe3o dispon\xedveis\n \n \n Metadata\n Metadados\n \n \n Performance counter\n Contador de desempenho\n \n \n Histogram not available: \n \n \n Histograma n\xe3o dispon\xedvel: \n \n \n \n \n Writes\n Grava\xe7\xf5es\n \n \n Reads\n Leituras\n \n \n Histogram\n Histograma\n \n \n Performance Details\n Detalhes de Desempenho\n \n \n Current values\n Valores atuais\n \n \n Type\n Tipo\n \n \n Min\n M\xedn.\n \n \n Max\n M\xe1x.\n \n \n Flags\n Flags\n \n \n Source\n Origem\n \n \n Level\n N\xedvel\n \n \n Can be updated at runtime (editable)\n Pode ser atualizado em tempo de execu\xe7\xe3o (edit\xe1vel)\n \n \n Tags\n Tags\n \n \n Enum values\n Valores de enum\n \n \n See also\n Consulte tamb\xe9m\n \n \n Cluster Status\n Status do Cluster\n \n \n Manager Daemons\n Daemons do Gerenciador\n \n \n Object Gateways\n Gateways de Objetos\n \n \n Metadata Servers\n Servidores de Metadados\n \n \n iSCSI Gateways\n Gateways iSCSI\n \n \n Client IOPS\n IOPS do Cliente\n \n \n Client Throughput\n Throughput do Cliente\n \n \n Client Read/Write\n Leitura/Grava\xe7\xe3o do Cliente\n \n \n Recovery Throughput\n Throughput de Recupera\xe7\xe3o\n \n \n Scrub\n Remo\xe7\xe3o\n \n \n Performance\n Desempenho\n \n \n Raw Capacity\n Capacidade Bruta\n \n \n Objects\n Objetos\n \n \n PGs per OSD\n PGs por OSD\n \n \n PG Status\n Status do PG\n \n \n Capacity\n Capacidade\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Consulte os \n Registros\n para obter mais detalhes.\n \n \n \n Ranks\n Posi\xe7\xf5es\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clientes: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Mover imagem para o lixo\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Para mover \n \n /\n \n para o lixo,\n clique em \n Mover Imagem\n . Se preferir, escolha uma data de vencimento.\n \n \n \n Protection expires at\n Vencimento da prote\xe7\xe3o em\n \n \n NOT PROTECTED\n N\xc3O PROTEGIDO\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Formato de data incorreto. Use "AAAA-MM-DD HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n A prote\xe7\xe3o j\xe1 venceu. Escolha uma data no futuro ou deixe-a vazia.\n \n \n Move Image\n Mover Imagem\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Vis\xe3o geral\n \n \n Targets\n Destinos\n \n \n Discovery Authentication\n Autentica\xe7\xe3o de Descoberta\n \n \n User\n Usu\xe1rio\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Os nomes de usu\xe1rio devem ter entre 8 e 64 caracteres e\n apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Usu\xe1rio M\xfatuo\n \n \n Mutual Password\n Senha M\xfatua\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Consulte a \n documenta\xe7\xe3o\n \n sobre como configurar e habilitar a funcionalidade de gerenciamento de Destinos iSCSI.\n \n \n \n Available information:\n Informa\xe7\xf5es dispon\xedveis:\n \n \n iSCSI Targets not available\n Destinos iSCSI n\xe3o dispon\xedveis\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Dispon\xedvel apenas para imagens RBD com \n diff r\xe1pido\n habilitado\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Pool de Dados\n \n \n Created\n Criado\n \n \n Size\n Tamanho\n \n \n Object size\n Tamanho do objeto\n \n \n Features\n Recursos\n \n \n Provisioned\n Aprovisionado\n \n \n N/A\n N/A\n \n \n Total provisioned\n Total aprovisionado\n \n \n Striping unit\n Unidade de distribui\xe7\xe3o\n \n \n Striping count\n Total de distribui\xe7\xf5es\n \n \n Parent\n Pai\n \n \n Block name prefix\n Prefixo do nome do bloco\n \n \n Order\n Ordem\n \n \n Snapshots\n Instant\xe2neos\n \n \n Image\n Imagem\n \n \n This setting overrides the global value\n Esta configura\xe7\xe3o substitui o valor global\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Este \xe9 o valor global. Nenhum valor para esta op\xe7\xe3o foi definido para esta imagem.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' e \'@\' n\xe3o s\xe3o permitidos.\n \n \n -- No rbd pools available --\n -- N\xe3o h\xe1 pools de RBD dispon\xedveis --\n \n \n -- Select a pool --\n -- Selecionar pool --\n \n \n Use a dedicated data pool\n Usar pool de dados dedicado\n \n \n Data pool\n Pool de dados\n \n \n Dedicated pool that stores the object-data of the RBD.\n Pool dedicado que armazena os dados de objetos do RBD.\n \n \n e.g., 10GiB\n ex. 10 GiB\n \n \n You have to increase the size.\n Voc\xea precisa aumentar o tamanho.\n \n \n Advanced\n Avan\xe7ado\n \n \n Striping\n Distribui\xe7\xe3o\n \n \n Stripe unit\n Unidade de distribui\xe7\xe3o\n \n \n -- Select stripe unit --\n -- Selecionar unidade de distribui\xe7\xe3o --\n \n \n This field is required because stripe count is defined!\n Este campo \xe9 obrigat\xf3rio porque o total de distribui\xe7\xf5es foi definido!\n \n \n Stripe unit is greater than object size.\n A unidade de distribui\xe7\xe3o \xe9 maior do que o tamanho do objeto.\n \n \n Stripe count\n Total de distribui\xe7\xf5es\n \n \n This field is required because stripe unit is defined!\n Este campo \xe9 obrigat\xf3rio porque a unidade de distribui\xe7\xe3o foi definida!\n \n \n Stripe count must be greater than 0.\n O total de distribui\xe7\xf5es deve ser maior do que 0.\n \n \n \n RBD Snapshot\n \n \n Instant\xe2neo do RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Renomear} other {Criar} }\n \n \n \n Snapshot\n \n \n Instant\xe2neo\n \n \n \n PROTECTED\n PROTEGIDO\n \n \n UNPROTECTED\n N\xc3O PROTEGIDO\n \n \n You are about to rollback\n Voc\xea est\xe1 prestes a fazer rollback\n \n \n Purge Trash\n Purgar Lixo\n \n \n To purge, select one or All images and click\n Para purgar, selecione uma ou Todas as imagens e clique em\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Nome do pool...\n \n \n All\n Tudo\n \n \n Restore Image\n Restaurar Imagem\n \n \n To restore\n Para restaurar\n \n \n type the image\'s new name and click\n digite o novo nome da imagem e clique em\n \n \n New Name\n Novo Nome\n \n \n Expired at\n Venceu em\n \n \n Protected until\n Protegido at\xe9\n \n \n This image is protected until \n .\n \n Esta imagem est\xe1 protegida at\xe9 \n .\n \n \n \n Trash\n Lixo\n \n \n iSCSI Topology\n Topologia iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n N\xe3o costuma ser necess\xe1rio mudar o valor padr\xe3o destes par\xe2metros.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Configura\xe7\xf5es\n \n \n Backstore\n Backstore\n \n \n Confirm\n Confirmar\n \n \n Advanced Settings\n Configura\xe7\xf5es Avan\xe7adas\n \n \n Target IQN\n IQN de Destino\n \n \n IQN has wrong pattern.\n IQN tem padr\xe3o incorreto.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Um IQN tem a seguinte nota\xe7\xe3o \'iqn.$year-$month.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Por exemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Mais informa\xe7\xf5es\n \n \n This target has modified advanced settings.\n Este destino tem configura\xe7\xf5es avan\xe7adas modificadas.\n \n \n Portals\n Portais\n \n \n At least \n gateways are required.\n \n Pelo menos \n gateways s\xe3o necess\xe1rios.\n \n \n \n Add portal\n Adicionar portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Esta imagem tem configura\xe7\xf5es modificadas.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Adicionar imagem\n \n \n ACL authentication\n Autentica\xe7\xe3o ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Iniciadores\n \n \n Initiator\n Iniciador\n \n \n Client IQN\n IQN do Cliente\n \n \n Initiator IQN needs to be unique.\n O IQN do Iniciador precisa ser exclusivo.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Os nomes de usu\xe1rio devem ter entre 8 e 64 caracteres e\n apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n O iniciador pertence a um grupo. As imagens ser\xe3o configuradas no grupo.\n \n \n No items added.\n Nenhum item adicionado.\n \n \n Add initiator\n Adicionar iniciador\n \n \n Groups\n Grupos\n \n \n Group\n Grupo\n \n \n Add group\n Adicionar grupo\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configura\xe7\xe3o de RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Remova o valor de configura\xe7\xe3o local. No lugar dele, o valor de configura\xe7\xe3o pai ser\xe1 herdado e usado.\n \n \n The mininum value is 0\n O valor m\xednimo \xe9 0\n \n \n Issues\n Problemas\n \n \n Syncing\n Sincronizando\n \n \n Ready\n Pronto\n \n \n Edit pool mirror mode\n Editar modo de espelho do pool\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Para editar o modo de espelho do pool\xa0\n \n \n , selecione o novo modo na lista e clique em\xa0\n Atualizar\n .\n \n \n \n Mode\n Modo\n \n \n Peer clusters must be removed prior to disabling mirror.\n Clusters de peer devem ser removidos antes de desabilitar o espelho.\n \n \n \n \n pool mirror peer\n \n \n \n peer de espelho do pool\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Editar} other {Adicionar} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n os atributos\n de peer de espelho do pool \n \n \n e clique em \n Enviar\n .\n \n \n \n Cluster Name\n Nome do Cluster\n \n \n The cluster name is not valid.\n O nome do cluster n\xe3o \xe9 v\xe1lido.\n \n \n CephX ID\n ID do CephX\n \n \n CephX ID...\n ID do CephX...\n \n \n The CephX ID is not valid.\n O ID do CephX n\xe3o \xe9 v\xe1lido.\n \n \n Monitor Addresses\n Endere\xe7os do Monitor\n \n \n Comma-delimited addresses...\n Endere\xe7os delimitados por v\xedrgula...\n \n \n The monitory address is not valid.\n O endere\xe7o de monitoria n\xe3o \xe9 v\xe1lido.\n \n \n CephX Key\n Chave do CephX\n \n \n Base64-encoded key...\n Chave codificada com base64...\n \n \n CephX key must be base64 encoded.\n A chave do CephX deve ser codificada com base64.\n \n \n Pools List\n Lista de Pools\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n O nome pode conter apenas caracteres alfanum\xe9ricos, tra\xe7os e sublinhados.\n \n \n The chosen erasure code profile name is already in use.\n O nome do perfil de c\xf3digo de elimina\xe7\xe3o escolhido j\xe1 est\xe1 em uso.\n \n \n Plugin\n Plug-in\n \n \n Data chunks (k)\n Pacotes de dados (k)\n \n \n Must be equal to or greater than 2.\n Deve ser igual ou maior do que 2.\n \n \n Coding chunks (m)\n Pacotes de codifica\xe7\xe3o (m)\n \n \n Must be equal to or greater than 1.\n Deve ser igual ou maior do que 1.\n \n \n Durability estimator (c)\n Estimador de durabilidade (c)\n \n \n Locality (l)\n Localidade (l)\n \n \n Crush failure domain\n Dom\xednio de falha do Crush\n \n \n Crush Locality\n Localidade do Crush\n \n \n None\n Nenhum\n \n \n Technique\n T\xe9cnica\n \n \n Packetsize\n Tamanho do pacote\n \n \n Crush root\n Raiz do Crush\n \n \n Crush device class\n Classe do dispositivo do Crush\n \n \n any\n qualquer\n \n \n Directory\n Diret\xf3rio\n \n \n The chosen Ceph pool name is already in use.\n O nome do pool do Ceph escolhido j\xe1 est\xe1 em uso.\n \n \n Pool type\n Tipo de pool\n \n \n -- Select a pool type --\n -- Selecionar tipo de pool --\n \n \n Placement groups\n Grupos de posicionamento\n \n \n At least one placement group is needed!\n Pelo menos um grupo de posicionamento \xe9 necess\xe1rio!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Seu cluster n\xe3o pode processar tantos PGs. Recalcule a quantidade de PG necess\xe1ria.\n \n \n Calculation help\n Ajuda no c\xe1lculo\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n As configura\xe7\xf5es de PGs atuais foram calculadas para voc\xea. Verifique\n se os valores atendem \xe0s suas necessidades antes de enviar.\n \n \n Crush ruleset\n Conjunto de regras do Crush\n \n \n -- Select a crush rule --\n -- Selecionar regra de crush --\n \n \n Crush rule\n Regra de Crush\n \n \n Crush steps\n Etapas do Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Imposs\xedvel usar a regra no cluster atual porque ela tem\n poucos OSDs para atender ao OSD m\xednimo necess\xe1rio para esta regra.\n \n \n Replicated size\n Tamanho replicado\n \n \n Minimum: \n \n \n M\xednimo: \n \n \n \n \n Maximum: \n \n \n M\xe1ximo: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n O tamanho especificado est\xe1 fora da faixa. Um valor de\n a \n \xe9 v\xe1lido.\n \n \n \n Erasure code profile\n Perfil do c\xf3digo de elimina\xe7\xe3o\n \n \n -- No erasure code profile available --\n -- N\xe3o h\xe1 perfis de c\xf3digo de elimina\xe7\xe3o dispon\xedveis --\n \n \n -- Select an erasure code profile --\n -- Selecionar perfil do c\xf3digo de elimina\xe7\xe3o --\n \n \n EC Overwrites\n Sobregrava\xe7\xf5es de EC\n \n \n Applications\n Aplicativos\n \n \n Compression\n Compacta\xe7\xe3o\n \n \n Algorithm\n Algoritmo\n \n \n -- No erasure compression algorithm available --\n -- N\xe3o h\xe1 algoritmos de compacta\xe7\xe3o de elimina\xe7\xe3o dispon\xedveis --\n \n \n Minimum blob size\n Tamanho m\xednimo do blob\n \n \n e.g., 128KiB\n ex. 128 KiB\n \n \n Value should be greater than 0\n O valor deve ser maior do que 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Tamanho m\xe1ximo do blob\n \n \n e.g., 512KiB\n ex. 512 KiB\n \n \n Value should be greater than the minimum blob size\n O valor deve ser maior do que o tamanho m\xednimo do blob\n \n \n Ratio\n Taxa\n \n \n Compression ratio\n Taxa de compacta\xe7\xe3o\n \n \n Value should be between 0.0 and 1.0\n O valor deve ser entre 0.0 e 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Imposs\xedvel criar um pool de RBD com \'/\' no nome.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Altere o nome ou remova o \'rbd\' da lista de aplicativos.\n \n \n Cache Tiers Details\n Detalhes das Camadas do Cache\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Consulte a \n documenta\xe7\xe3o\n \n sobre como configurar e habilitar a funcionalidade de gerenciamento do Gateway de Objetos.\n \n \n \n Daemons List\n Lista de Daemons\n \n \n Performance Counters\n Contadores de Desempenho\n \n \n Loading bucket data...\n Carregando dados do compartimento...\n \n \n The bucket data could not be loaded.\n N\xe3o foi poss\xedvel carregar os dados do compartimento.\n \n \n Id\n ID\n \n \n The value is not valid.\n O valor n\xe3o \xe9 v\xe1lido.\n \n \n Owner\n Propriet\xe1rio\n \n \n -- Select a user --\n -- Selecionar usu\xe1rio --\n \n \n ID\n ID\n \n \n Index type\n Tipo de \xedndice\n \n \n Placement rule\n Regra de posicionamento\n \n \n Marker\n Marcador\n \n \n Maximum marker\n Marcador m\xe1ximo\n \n \n Version\n Vers\xe3o\n \n \n Master version\n Vers\xe3o master\n \n \n Modification time\n Hor\xe1rio da modifica\xe7\xe3o\n \n \n Zonegroup\n Grupo de zonas\n \n \n Bucket quota\n Cota do compartimento\n \n \n Enabled\n Habilitado\n \n \n Maximum size\n Tamanho m\xe1ximo\n \n \n Unlimited\n Ilimitado\n \n \n Maximum objects\n M\xe1ximo de objetos\n \n \n -- Select a username --\n -- Selecionar nome de usu\xe1rio --\n \n \n Auto-generate key\n Gerar chave automaticamente\n \n \n Access key\n Chave de acesso\n \n \n Secret key\n Chave secreta\n \n \n Email address\n Endere\xe7o de e-mail\n \n \n Suspended\n Suspenso\n \n \n System\n Sistema\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {N\xe3o} 1 {Sim} }\n \n \n Maximum buckets\n M\xe1ximo de compartimentos\n \n \n Subusers\n Subusu\xe1rios\n \n \n Capabilities\n Recursos\n \n \n User quota\n Cota do usu\xe1rio\n \n \n Show\n Mostrar\n \n \n Keys\n Chaves\n \n \n -- Select a type --\n -- Selecionar tipo --\n \n \n Permission\n Permiss\xe3o\n \n \n -- Select a permission --\n -- Selecionar permiss\xe3o --\n \n \n Subuser\n Subusu\xe1rio\n \n \n The chosen subuser ID is already in use.\n O ID de subusu\xe1rio escolhido j\xe1 est\xe1 em uso.\n \n \n read, write\n leitura, grava\xe7\xe3o\n \n \n full\n completo\n \n \n Swift key\n Chave Swift\n \n \n Auto-generate secret\n Gerar segredo automaticamente\n \n \n Loading user data...\n Carregando dados do usu\xe1rio...\n \n \n The user data could not be loaded.\n N\xe3o foi poss\xedvel carregar os dados do usu\xe1rio.\n \n \n The chosen user ID is already in use.\n O ID de usu\xe1rio escolhido j\xe1 est\xe1 em uso.\n \n \n This is not a valid email address.\n Este n\xe3o \xe9 um endere\xe7o de e-mail v\xe1lido.\n \n \n The chosen email address is already in use.\n O endere\xe7o de e-mail escolhido j\xe1 est\xe1 em uso.\n \n \n Max. buckets\n M\xe1x. de compartimentos\n \n \n The entered value must be >= 0.\n O valor inserido deve ser >= 0.\n \n \n S3 key\n Chave S3\n \n \n There are no subusers.\n N\xe3o h\xe1 subusu\xe1rios.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n N\xe3o h\xe1 chaves.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n N\xe3o h\xe1 recursos.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Tamanho ilimitado\n \n \n Max. size\n Tamanho m\xe1x.\n \n \n Unlimited objects\n Objetos ilimitados\n \n \n Max. objects\n M\xe1x. de objetos\n \n \n Current\n Atual\n \n \n Updated discovery authentication\n Autentica\xe7\xe3o de descoberta atualizada\n \n \n There are no portals available.\n N\xe3o h\xe1 portais dispon\xedveis.\n \n \n There are no images available.\n N\xe3o h\xe1 imagens dispon\xedveis.\n \n \n There are no images available. Please make sure you add an image to the target.\n N\xe3o h\xe1 imagens dispon\xedveis. Adicione uma imagem ao destino.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n N\xe3o h\xe1 iniciadores dispon\xedveis. Adicione um iniciador ao destino.\n \n \n target\n target\n \n \n Target\n Destino\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Estado\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bytes de Leitura\n \n \n Write Bytes\n Bytes de Grava\xe7\xe3o\n \n \n Read Ops\n Op. de Leitura\n \n \n Write Ops\n Op. de Grava\xe7\xe3o\n \n \n A/O Since\n A/O Desde\n \n \n Instance\n Inst\xe2ncia\n \n \n Hostname\n Nome de host\n \n \n Issue\n Problema\n \n \n Progress\n Andamento\n \n \n Disabled\n Desabilitado\n \n \n Edit Mode\n Modo de Edi\xe7\xe3o\n \n \n Add Peer\n Adicionar Peer\n \n \n Edit Peer\n Editar Peer\n \n \n Delete Peer\n Excluir Peer\n \n \n Leader\n Leader\n \n \n # Local\n N\xba Local\n \n \n # Remote\n N\xba Remoto\n \n \n mirror peer\n espelhar peer\n \n \n Key\n Chave\n \n \n RBD\n RBD\n \n \n Deep flatten\n Nivelamento profundo\n \n \n Layering\n Disposi\xe7\xe3o em camadas\n \n \n Exclusive lock\n Bloqueio exclusivo\n \n \n Object map (requires exclusive-lock)\n Mapa de objetos (requer bloqueio exclusivo)\n \n \n Journaling (requires exclusive-lock)\n Registro em di\xe1rio (requer bloqueio exclusivo)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Rollback de instant\xe2neo do RBD\n \n \n Rollback\n Fazer Rollback\n \n \n RBD snapshot\n Instant\xe2neo do RBD\n \n \n Deleted At\n Exclu\xeddo \xe0(s)\n \n \n id\n ID\n \n \n type\n tipo\n \n \n state\n estado\n \n \n version\n vers\xe3o\n \n \n Host\n Host\n \n \n root\n raiz\n \n \n Rank\n Posi\xe7\xe3o\n \n \n Daemon\n Daemon\n \n \n Activity\n Atividade\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodes\n \n \n Usage\n Uso\n \n \n Standby daemons\n Daemons de standby\n \n \n The value can be updated at runtime.\n \xc9 poss\xedvel atualizar o valor em temo de execu\xe7\xe3o.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Daemons/clientes n\xe3o extraem este valor do\n banco de dados de configura\xe7\xe3o do monitor. A configura\xe7\xe3o desta op\xe7\xe3o n\xe3o \xe9 permitida por meio de \'ceph config\n set ...\'. Essa op\xe7\xe3o deve ser configurada por meio do ceph.conf ou da\n linha de comando.\n \n \n Option takes effect only during daemon startup.\n A op\xe7\xe3o entra em vigor apenas durante a inicializa\xe7\xe3o do daemon.\n \n \n Option only affects cluster creation.\n A op\xe7\xe3o afeta apenas a cria\xe7\xe3o do cluster.\n \n \n Option only affects daemon creation.\n A op\xe7\xe3o afeta apenas a cria\xe7\xe3o do daemon.\n \n \n Updated config option \n \n \n Op\xe7\xe3o de configura\xe7\xe3o \n atualizada\n \n \n \n Service\n Servi\xe7o\n \n \n Current value\n Valor atual\n \n \n Editable\n Edit\xe1vel\n \n \n Updated options for module "\n ".\n \n Op\xe7\xf5es atualizadas para o m\xf3dulo &quot;\n &quot;.\n \n \n \n Enable\n Habilitar\n \n \n Disable\n Desabilitar\n \n \n Reconnecting, please wait ...\n Reconectando, aguarde...\n \n \n Public Address\n Endere\xe7o P\xfablico\n \n \n Open Sessions\n Sess\xf5es Abertas\n \n \n No In\n N\xe3o Entrada\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Os OSDs que j\xe1 foram marcados como sa\xedda n\xe3o ser\xe3o remarcados como entrada ao serem iniciados\n \n \n No Out\n N\xe3o Sa\xedda\n \n \n OSDs will not automatically be marked out after the configured interval\n Os OSDs n\xe3o ser\xe3o automaticamente marcados como sa\xedda ap\xf3s o intervalo configurado\n \n \n No Up\n N\xe3o Ativo\n \n \n OSDs are not allowed to start\n Os OSDs n\xe3o podem ser iniciados\n \n \n No Down\n N\xe3o Inativo\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Os relat\xf3rios de falha de OSD est\xe3o sendo ignorados, portanto, os monitores n\xe3o marcar\xe3o os OSDs como inativos\n \n \n Pause\n Pausar\n \n \n Pauses reads and writes\n Pausa leituras e grava\xe7\xf5es\n \n \n No Scrub\n Sem Remo\xe7\xe3o\n \n \n Scrubbing is disabled\n Remo\xe7\xe3o desabilitada\n \n \n No Deep Scrub\n Sem Remo\xe7\xe3o Profunda\n \n \n Deep Scrubbing is disabled\n Remo\xe7\xe3o Profunda desabilitada\n \n \n No Backfill\n Sem Provisionamento\n \n \n Backfilling of PGs is suspended\n Provisionamento de PGs suspenso\n \n \n No Recover\n Sem Recupera\xe7\xe3o\n \n \n Recovery of PGs is suspended\n Recupera\xe7\xe3o de PGs suspensa\n \n \n Bitwise Sort\n Classifica\xe7\xe3o Bit a Bit\n \n \n Use bitwise sort\n Usar classifica\xe7\xe3o bit a bit\n \n \n Purged Snapdirs\n Snapdirs Purgados\n \n \n OSDs have converted snapsets\n OSDs converteram snapsets\n \n \n Recovery Deletes\n Exclus\xf5es de Recupera\xe7\xe3o\n \n \n Deletes performed during recovery instead of peering\n Exclus\xf5es realizadas durante a recupera\xe7\xe3o, e n\xe3o o emparelhamento\n \n \n PG Log Hard Limit\n Limite F\xedsico do Registro de PG\n \n \n Puts a hard limit on pg log length\n Atribui um limite f\xedsico ao tamanho do registro de PG\n \n \n Updated OSD Flags\n Flags OSD Atualizadas\n \n \n out\n sa\xedda\n \n \n in\n entrada\n \n \n down\n inativo\n \n \n Mark\n Marcar\n \n \n OSD lost\n OSD perdido\n \n \n marked lost\n marcado como perdido\n \n \n Purge\n Purgar\n \n \n OSD\n OSD\n \n \n purged\n purgado\n \n \n destroy\n destruir\n \n \n destroyed\n destru\xeddo\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PGs\n \n \n Read bytes\n Bytes de leitura\n \n \n Writes bytes\n Bytes de grava\xe7\xe3o\n \n \n Read ops\n Op. de leitura\n \n \n Write ops\n Op. de grava\xe7\xe3o\n \n \n Mark OSD \n \n \n Marcar OSD como \n \n \n \n \n Mark \n \n \n Marcar como \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n M\xe1x. de Provisionamentos\n \n \n Recovery Max Active\n M\xe1x. Recupera\xe7\xe3o Ativo\n \n \n Recovery Max Single Start\n M\xe1x. Recupera\xe7\xe3o Inicializa\xe7\xe3o \xdanica\n \n \n Recovery Sleep\n Suspens\xe3o de Recupera\xe7\xe3o\n \n \n Custom\n Personalizado\n \n \n Updated OSD recovery speed priority "\n "\n \n Prioridade de velocidade de recupera\xe7\xe3o de OSD &quot;\n &quot atualizada;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n foi inicializado no seguinte OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Tarefa\n \n \n Severity\n Gravidade\n \n \n Started\n Iniciado\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Atualizado\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Usado\n \n \n Avail.\n Disp.\n \n \n Clean\n Limpar\n \n \n Working\n Em funcionamento\n \n \n Warning\n Aviso\n \n \n Unknown\n Desconhecido\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n ativo\n \n \n no filesystems\n sem sistemas de arquivos\n \n \n active\n ativo\n \n \n standby\n standby\n \n \n n/a\n n/a\n \n \n active daemon\n daemon ativo\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n O servi\xe7o NFS Ganesha n\xe3o est\xe1 configurado.\n \n \n Transport\n Transporte\n \n \n CephFS User\n Usu\xe1rio do CephFS\n \n \n CephFS Filesystem\n Sistema de Arquivos do CephFS\n \n \n (inherited from global config)\n (herdado da configura\xe7\xe3o global)\n \n \n inherited from global config\n herdado da configura\xe7\xe3o global\n \n \n -- Select what kind of user id squashing is performed --\n -- Selecionar que tipo de squash de ID de usu\xe1rio ser\xe1 executado --\n \n \n There are no daemons available.\n N\xe3o h\xe1 daemons dispon\xedveis.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Modo de Cache\n \n \n Min Evict Age\n Tempo M\xedn. Expuls\xe3o\n \n \n Min Flush Age\n Tempo M\xedn. Descarregamento\n \n \n Target Max Bytes\n M\xe1x. de Bytes de Destino\n \n \n Target Max Objects\n M\xe1x. de Objetos de Destino\n \n \n No applications added\n Nenhum aplicativo adicionado\n \n \n Applications limit reached\n Limite de aplicativos atingido\n \n \n A pool can only have up to four applications definitions.\n Um pool apenas pode ter at\xe9 quatro defini\xe7\xf5es de aplicativos.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caracteres permitidos: \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Tamanho m\xe1ximo de 128 caracteres\n \n \n Filter or add applications\n Filtrar ou adicionar aplicativos\n \n \n Add application\n Adicionar aplicativo\n \n \n pool\n pool\n \n \n erasure code profile\n perfil de c\xf3digo de elimina\xe7\xe3o\n \n \n Replica Size\n Tamanho da R\xe9plica\n \n \n Last Change\n \xdaltima Altera\xe7\xe3o\n \n \n Erasure Coded Profile\n Perfil Codificado para Elimina\xe7\xe3o\n \n \n Crush Ruleset\n Conjunto de Regras do Crush\n \n \n Write bytes\n Bytes de grava\xe7\xe3o\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n compartimento\n \n \n Updated Object Gateway bucket "\n "\n \n Compartimento do Gateway de Objetos &quot;\n &quot; atualizado\n \n \n \n Created Object Gateway bucket "\n "\n \n Compartimento do Gateway de Objetos &quot;\n &quot; criado\n \n \n \n buckets\n compartimentos\n \n \n capability\n capability\n \n \n user\n usu\xe1rio\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Usu\xe1rio do Gateway de Objetos &quot;\n &quot; atualizado\n \n \n \n Created Object Gateway user "\n "\n \n Usu\xe1rio do Gateway de Objetos &quot;\n &quot; criado\n \n \n \n users\n usu\xe1rios\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Escopo\n \n \n Read\n Leitura\n \n \n Create\n Criar\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Fun\xe7\xe3o \'\n \' criada\n \n \n \n Updated role \'\n \'\n \n Fun\xe7\xe3o \'\n \' atualizada\n \n \n \n System Role\n Fun\xe7\xe3o do Sistema\n \n \n Deleted role \'\n \'\n \n Fun\xe7\xe3o \'\n \' exclu\xedda\n \n \n \n Created user "\n "\n \n Usu\xe1rio &quot;\n &quot; criado\n \n \n \n Update user\n Atualizar usu\xe1rio\n \n \n Continue\n Continuar\n \n \n You were automatically logged out because your roles have been changed.\n Voc\xea foi automaticamente desconectado porque suas fun\xe7\xf5es foram alteradas.\n \n \n Updated user "\n "\n \n Usu\xe1rio &quot;\n &quot; atualizado\n \n \n \n Deleted user "\n "\n \n Usu\xe1rio &quot;\n &quot; exclu\xeddo\n \n \n \n Failed to delete user "\n "\n \n Falha ao excluir o usu\xe1rio &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n No momento, voc\xea est\xe1 conectado como &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Cada objeto \xe9 dividido em partes de pacotes de dados, cada uma armazenada em um OSD diferente.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calcule os pacotes de codifica\xe7\xe3o de cada objeto e armazene-os em diferentes OSDs.\n O n\xfamero de pacotes de codifica\xe7\xe3o \xe9 tamb\xe9m o n\xfamero de OSDs que podem ficar inativos sem perda de dados.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n O plug-in jerasure \xe9 o mais gen\xe9rico e flex\xedvel,\n al\xe9m de ser o padr\xe3o para pools codificados para elimina\xe7\xe3o do Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n A t\xe9cnica mais flex\xedvel \xe9 reed_sol_van: ela \xe9 suficiente para definir k\n e m. A t\xe9cnica cauchy_good pode ser mais r\xe1pida, mas voc\xea precisa escolher o tamanho do pacote\n com cuidado. Todos os reed_sol_r6_op, liberation, blaum_roth e liber8tion s\xe3o equivalentes ao RAID6\n no sentido de que s\xf3 podem ser configurados com m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n A codifica\xe7\xe3o ser\xe1 feita em pacotes de tamanho de bytes um de cada vez.\n A escolha do tamanho do pacote certo \xe9 dif\xedcil.\n A documenta\xe7\xe3o do jerasure cont\xe9m informa\xe7\xf5es completas sobre este t\xf3pico.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Com o plug-in jerasure, quando um objeto codificado para elimina\xe7\xe3o \xe9 armazenado em\n v\xe1rios OSDs, a recupera\xe7\xe3o ap\xf3s a perda de um OSD requer a leitura de todos os outros.\n Por exemplo, se o jerasure for configurado com k=8 e m=4, a perda de um OSD exigir\xe1 a leitura\n dos outros onze para fazer o reparo.\n\n O plug-in de c\xf3digo de elimina\xe7\xe3o lrc cria pacotes locais de paridade para conseguir recuperar usando\n menos OSDs. Por exemplo, se o lrc for configurado com k=8, m=4 e l=4, ele criar\xe1\n um pacote de paridade adicional para cada quatro OSDs. Quando um \xfanico OSD \xe9 perdido, ele pode ser\n recuperado apenas com quatro OSDs, em vez de onze.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Agrupe os pacotes de codifica\xe7\xe3o e dados em conjuntos de localidades com tamanho. Por exemplo,\n no caso de k=4 e m=2, quando locality=3, dois grupos de tr\xeas s\xe3o criados. Cada conjunto pode\n ser recuperado sem a leitura dos pacotes do outro conjunto.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n O tipo do compartimento de crush em que cada conjunto de pacotes definido\n por l ser\xe1 armazenado. Por exemplo, se isso for definido como rack, cada grupo de pacotes l ser\xe1\n colocado em um rack diferente. Isso \xe9 usado para criar uma etapa da regra CRUSH, como a etapa de escolha do\n rack. Se isso n\xe3o for definido, esse tipo de agrupamento n\xe3o ser\xe1 feito.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n O plug-in isa encapsula a biblioteca ISA. Ele apenas \xe9 executado em processadores Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n O plug-in ISA vem em dois formatos de Reed Solomon.\n Se reed_sol_van for definido, ele ser\xe1 Vandermonde, se cauchy for definido, ele ser\xe1 Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n O plug-in shec encapsula a biblioteca m\xfaltipla SHEC.\n Ele permite ao ceph recuperar dados com mais efici\xeancia do que os c\xf3digos de Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n O n\xfamero de pacotes de paridade, em que cada um inclui cada pacote de dados em sua\n faixa de c\xe1lculo. O n\xfamero \xe9 usado como estimador de durabilidade. Por exemplo, se c=2,\n 2 OSDs podem ficar inativos sem perda de dados.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n O nome do compartimento de crush usado para a primeira etapa da regra CRUSH.\n Por exemplo, a etapa assumir o padr\xe3o.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Verifique se n\xe3o h\xe1 dois pacotes em um compartimento com o mesmo dom\xednio de\n falha. Por exemplo, se o dom\xednio de falha for um host, n\xe3o armazene dois pacotes no mesmo\n host. Isso \xe9 usado para criar uma etapa da regra CRUSH, como a etapa de escolha do host folha.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Restrinja o posicionamento a dispositivos de uma classe espec\xedfica\n (ex. ssd ou hdd), usando nomes de classe de dispositivo crush no mapa CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Defina o nome do diret\xf3rio do qual o plug-in de c\xf3digo de elimina\xe7\xe3o \xe9 carregado.\n \n \n Allows all operations\n Permite todas as opera\xe7\xf5es\n \n \n Allows only operations that do not modify the server\n Permite apenas as opera\xe7\xf5es que n\xe3o modificam o servidor\n \n \n Does not allow read or write operations, but allows any other operation\n N\xe3o permite opera\xe7\xf5es de leitura ou grava\xe7\xe3o, mas permite qualquer outra opera\xe7\xe3o\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n N\xe3o permite leitura, grava\xe7\xe3o ou qualquer opera\xe7\xe3o que modifica os atributos do arquivo ou o conte\xfado do diret\xf3rio\n \n \n Allows no access at all\n N\xe3o permite nenhum tipo de acesso\n \n \n -- Select the priority --\n -- Selecionar prioridade --\n \n \n Low\n Baixa\n \n \n High\n Alta\n \n \n Last 5 minutes\n \xdaltimos 5 minutos\n \n \n Last 15 minutes\n \xdaltimos 15 minutos\n \n \n Last 30 minutes\n \xdaltimos 30 minutos\n \n \n Last 1 hour (Default)\n \xdaltima 1 hora (Padr\xe3o)\n \n \n Last 3 hours\n \xdaltimas 3 horas\n \n \n Last 6 hours\n \xdaltimas 6 horas\n \n \n Last 12 hours\n \xdaltimas 12 horas\n \n \n Last 24 hours\n \xdaltimas 24 horas\n \n \n Yesterday\n Ontem\n \n \n Today\n Hoje\n \n \n Today so far\n At\xe9 agora hoje\n \n \n Day before yesterday\n Antes de ontem\n \n \n Last 2 days\n \xdaltimos 2 dias\n \n \n This day last week\n Este dia na semana passada\n \n \n Previous week\n Semana anterior\n \n \n This week\n Esta semana\n \n \n This week so far\n At\xe9 agora nesta semana\n \n \n Last 7 days\n \xdaltimos 7 dias\n \n \n Previous month\n M\xeas anterior\n \n \n This month\n Este m\xeas\n \n \n This month so far\n At\xe9 agora neste m\xeas\n \n \n Last 30 days\n \xdaltimos 30 dias\n \n \n Last 90 days\n \xdaltimos 90 dias\n \n \n Last 6 months\n \xdaltimos 6 meses\n \n \n Last 1 year\n \xdaltimo ano\n \n \n Previous year\n Ano anterior\n \n \n This year\n Este ano\n \n \n This year so far\n At\xe9 agora neste ano\n \n \n Last 2 years\n \xdaltimos 2 anos\n \n \n Last 5 years\n \xdaltimos 5 anos\n \n \n Information\n Informa\xe7\xf5es\n \n \n No items selected.\n Nenhum item selecionado.\n \n \n Deselect item to select again\n Desmarcar item para selecionar novamente\n \n \n Selection limit reached\n Limite de sele\xe7\xe3o atingido\n \n \n Filter tags\n Tags de filtro\n \n \n Add badge\n Adicionar selo\n \n \n There are no items available.\n N\xe3o h\xe1 itens dispon\xedveis.\n \n \n Add\n Adicionar\n \n \n Remove\n Remove\n \n \n Clone\n Clonar\n \n \n Copy\n Copiar\n \n \n Deep Scrub\n Remo\xe7\xe3o Profunda\n \n \n Destroy\n Destruir\n \n \n Flatten\n Nivelar\n \n \n Mark Down\n Marcar como Inativo\n \n \n Mark In\n Marcar como Entrada\n \n \n Mark Lost\n Marcar como Perdido\n \n \n Mark Out\n Marcar como Sa\xedda\n \n \n Protect\n Proteger\n \n \n Rename\n Renomear\n \n \n Restore\n Restaurar\n \n \n Move to Trash\n Mover para Lixo\n \n \n Unprotect\n Cancelar prote\xe7\xe3o\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Exclu\xeddo\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clonado\n \n \n Copied\n Copiado\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Sim\n \n \n No\n N\xe3o\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Qualidade do Servi\xe7o\n \n \n BPS Limit\n Limite de BPS\n \n \n The desired limit of IO bytes per second.\n O limite de bytes por segundo de E/S desejado.\n \n \n IOPS Limit\n Limite de IOPS\n \n \n The desired limit of IO operations per second.\n O limite de opera\xe7\xf5es por segundo de E/S desejado.\n \n \n Read BPS Limit\n Limite de BPS de Leitura\n \n \n The desired limit of read bytes per second.\n O limite de bytes por segundo de leitura desejado.\n \n \n Read IOPS Limit\n Limite de IOPS de Leitura\n \n \n The desired limit of read operations per second.\n O limite de opera\xe7\xf5es por segundo de leitura desejado.\n \n \n Write BPS Limit\n Limite de BPS de Grava\xe7\xe3o\n \n \n The desired limit of write bytes per second.\n O limite de bytes por segundo de grava\xe7\xe3o desejado.\n \n \n Write IOPS Limit\n Limite de IOPS de Grava\xe7\xe3o\n \n \n The desired limit of write operations per second.\n O limite de opera\xe7\xf5es por segundo de grava\xe7\xe3o desejado.\n \n \n BPS Burst\n Intermit\xeancia de BPS\n \n \n The desired burst limit of IO bytes.\n O limite de bytes de E/S de intermit\xeancia desejado.\n \n \n IOPS Burst\n Intermit\xeancia de IOPS\n \n \n The desired burst limit of IO operations.\n O limite de opera\xe7\xf5es de E/S de intermit\xeancia desejado.\n \n \n Read BPS Burst\n Intermit\xeancia de BPS de Leitura\n \n \n The desired burst limit of read bytes.\n O limite de bytes de leitura de intermit\xeancia desejado.\n \n \n Read IOPS Burst\n Intermit\xeancia de IOPS de Leitura\n \n \n The desired burst limit of read operations.\n O limite de opera\xe7\xf5es de leitura de intermit\xeancia desejado.\n \n \n Write BPS Burst\n Intermit\xeancia de BPS de Grava\xe7\xe3o\n \n \n The desired burst limit of write bytes.\n O limite de bytes de grava\xe7\xe3o de intermit\xeancia desejado.\n \n \n Write IOPS Burst\n Intermit\xeancia de IOPS de Grava\xe7\xe3o\n \n \n The desired burst limit of write operations.\n O limite de opera\xe7\xf5es de grava\xe7\xe3o de intermit\xeancia desejado.\n \n \n Failed to \n \n \n \n Falha ao \n \n \n \n \n \n Executing\n Executando\n \n \n execute\n executar\n \n \n Executed\n Executado\n \n \n unknown task\n tarefa desconhecida\n \n \n Creating\n Criando\n \n \n create\n criar\n \n \n Updating\n Atualizando\n \n \n update\n atualizar\n \n \n Deleting\n Excluindo\n \n \n delete\n excluir\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Instant\xe2neo do RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n modo de espelho para o pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n espelhar peer para o pool \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n \n contains snapshots.\n \n \n cont\xe9m instant\xe2neos.\n \n \n \n Cloning\n Clonando\n \n \n clone\n clonar\n \n \n Snapshot of \n must be protected.\n \n O instant\xe2neo de \n deve ser protegido.\n \n \n \n Copying\n Copiando\n \n \n copy\n copiar\n \n \n Flattening\n Nivelando\n \n \n flatten\n nivelar\n \n \n Flattened\n Nivelado\n \n \n Name is already used by \n .\n \n Nome j\xe1 foi usado por \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Imposs\xedvel cancelar a prote\xe7\xe3o de \n porque h\xe1 imagens filho.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Imposs\xedvel excluir \n porque est\xe1 protegido.\n \n \n \n Rolling back\n Fazendo rollback\n \n \n rollback\n rollback\n \n \n Rolled back\n Rollback feito\n \n \n Moving\n Movendo\n \n \n move\n mover\n \n \n Moved\n Movido\n \n \n image \'\n \' to trash\n \n imagem \'\n \' para jogar no lixo\n \n \n \n Could not find image.\n Imagem n\xe3o encontrada.\n \n \n Restoring\n Restaurando\n \n \n restore\n restaurar\n \n \n Restored\n Restaurado\n \n \n image \'\n \' into \'\n \'\n \n imagem \'\n \' para \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Nome da imagem \'\n \' j\xe1 est\xe1 em uso.\n \n \n \n image \'\n \'\n \n imagem \'\n \'\n \n \n \n Purging\n Purgando\n \n \n purge\n purgar\n \n \n Purged\n Purgado\n \n \n all pools\n todos os pools\n \n \n images from \n \n \n imagens de \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Imposs\xedvel desabilitar espelhamento porque ele cont\xe9m um peer.\n \n \n pool \'\n \'\n \n pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n perfil de c\xf3digo de elimina\xe7\xe3o \'\n \'\n \n \n \n target \'\n \'\n \n destino \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},OXbD:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),s=a.global.defaultColor;function o(t){var e=this._view;return!!e&&Math.abs(t-e.x)=t.left&&1.01*t.right>=n.x&&n.y>=t.top&&1.01*t.bottom>=n.y)&&(r.strokeStyle=e.borderColor||s,r.lineWidth=i.valueOrDefault(e.borderWidth,a.global.elements.point.borderWidth),r.fillStyle=e.backgroundColor||s,i.canvas.drawPoint(r,o,c,l,d,u))}})},OZfm:function(t,e,n){"use strict";n.d(e,"a",function(){return s}),n.d(e,"b",function(){return o}),n.d(e,"c",function(){return u}),n.d(e,"d",function(){return c});var a=n("lqqz"),r=n("rpEJ"),i=n("NJnL"),s=function(){return function(){this.adaptivePosition=!0,this.placement="top",this.triggers="click",this.outsideClick=!1}}(),o=function(){function t(t){Object.assign(this,t)}return Object.defineProperty(t.prototype,"isBs3",{get:function(){return Object(r.d)()},enumerable:!0,configurable:!0}),t}(),u=function(){function t(t,e,n,a,r,i){this._positionService=i,this.outsideClick=!1,this.containerClass="",this._isInited=!1,this._popover=r.createLoader(e,a,n).provide({provide:s,useValue:t}),Object.assign(this,t),this.onShown=this._popover.onShown,this.onHidden=this._popover.onHidden,"undefined"!=typeof window&&e.nativeElement.addEventListener("click",function(){try{e.nativeElement.focus()}catch(t){return}})}return Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._popover.isShown},set:function(t){t?this.show():this.hide()},enumerable:!0,configurable:!0}),t.prototype.show=function(){!this._popover.isShown&&this.popover&&(this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}}),this._popover.attach(o).to(this.container).position({attachment:this.placement}).show({content:this.popover,context:this.popoverContext,placement:this.placement,title:this.popoverTitle,containerClass:this.containerClass}),this.adaptivePosition||(this._positionService.calcPosition(),this._positionService.deletePositionElement(this._popover._componentRef.location)),this.isOpen=!0)},t.prototype.hide=function(){this.isOpen&&(this._popover.hide(),this.isOpen=!1)},t.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},t.prototype.ngOnInit=function(){var t=this;this._isInited||(this._isInited=!0,this._popover.listen({triggers:this.triggers,outsideClick:this.outsideClick,show:function(){return t.show()}}))},t.prototype.ngOnDestroy=function(){this._popover.dispose()},t}(),c=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[s,a.a,i.a]}},t}()},Oaa7:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},Ob0Z:function(t,e,n){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function a(t,e,n,a){var r="";if(e)switch(n){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":r="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":r="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":r="%d \u0924\u093e\u0938";break;case"d":r="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":r="%d \u0926\u093f\u0935\u0938";break;case"M":r="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":r="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u0947"}else switch(n){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":r="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":r="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":r="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":r="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":r="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":r="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":r="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return r.replace(/%d/i,t)}t.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===e?t<4?t:t+12:"\u0938\u0915\u093e\u0933\u0940"===e?t:"\u0926\u0941\u092a\u093e\u0930\u0940"===e?t>=10?t:t+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0930\u093e\u0924\u094d\u0930\u0940":t<10?"\u0938\u0915\u093e\u0933\u0940":t<17?"\u0926\u0941\u092a\u093e\u0930\u0940":t<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(n("wd/R"))},OjkT:function(t,e,n){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},n={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};t.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924\u093f"===e?t<4?t:t+12:"\u092c\u093f\u0939\u093e\u0928"===e?t:"\u0926\u093f\u0909\u0901\u0938\u094b"===e?t>=10?t:t+12:"\u0938\u093e\u0901\u091d"===e?t+12:void 0},meridiem:function(t,e,n){return t<3?"\u0930\u093e\u0924\u093f":t<12?"\u092c\u093f\u0939\u093e\u0928":t<16?"\u0926\u093f\u0909\u0901\u0938\u094b":t<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(n("wd/R"))},Oxv6:function(t,e,n){!function(t){"use strict";var e={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};t.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0448\u0430\u0431"===e?t<4?t:t+12:"\u0441\u0443\u0431\u04b3"===e?t:"\u0440\u04ef\u0437"===e?t>=11?t:t+12:"\u0431\u0435\u0433\u043e\u04b3"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0448\u0430\u0431":t<11?"\u0441\u0443\u0431\u04b3":t<16?"\u0440\u04ef\u0437":t<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},P6uZ:function(t,e,n){"use strict";n.d(e,"a",function(){return c});var a=n("3fWJ"),r=n("VnD/"),i=n("t9fZ"),s=n("HJBe"),o=n("tNVB"),u=n("mChF");function c(t,e){var n=arguments.length>=2;return function(c){return c.pipe(t?Object(r.a)(function(e,n){return t(e,n,c)}):u.a,Object(i.a)(1),n?Object(s.a)(e):Object(o.a)(function(){return new a.a}))}}},P8lu:function(t,e,n){"use strict";n.d(e,"a",function(){return h});var a=n("mrSG"),r=n("t/Na"),i=n("LvDl"),s=n("VNr4"),o=n("F/XL"),u=n("psW0"),c=n("aGNc"),l=n("9Z1F"),d=n("xTzq"),f=n("CcnG"),p=n("pL04"),h=function(){function t(t){this.http=t,this.url="api/rgw/user"}return t.prototype.list=function(){var t=this;return this.enumerate().pipe(Object(u.a)(function(e){return e.length>0?Object(s.a)(e.map(function(e){return t.get(e)})):Object(o.a)([])}))},t.prototype.enumerate=function(){return this.http.get(this.url)},t.prototype.enumerateEmail=function(){return this.http.get(this.url+"/get_emails")},t.prototype.get=function(t){return this.http.get(this.url+"/"+t)},t.prototype.getQuota=function(t){return this.http.get(this.url+"/"+t+"/quota")},t.prototype.create=function(t){var e=new r.h;return i.keys(t).forEach(function(n){e=e.append(n,t[n])}),this.http.post(this.url,null,{params:e})},t.prototype.update=function(t,e){var n=new r.h;return i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.put(this.url+"/"+t,null,{params:n})},t.prototype.updateQuota=function(t,e){var n=new r.h;return i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.put(this.url+"/"+t+"/quota",null,{params:n})},t.prototype.delete=function(t){return this.http.delete(this.url+"/"+t)},t.prototype.createSubuser=function(t,e){var n=new r.h;return i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.post(this.url+"/"+t+"/subuser",null,{params:n})},t.prototype.deleteSubuser=function(t,e){return this.http.delete(this.url+"/"+t+"/subuser/"+e)},t.prototype.addCapability=function(t,e,n){var a=new r.h;return a=(a=a.append("type",e)).append("perm",n),this.http.post(this.url+"/"+t+"/capability",null,{params:a})},t.prototype.deleteCapability=function(t,e,n){var a=new r.h;return a=(a=a.append("type",e)).append("perm",n),this.http.delete(this.url+"/"+t+"/capability",{params:a})},t.prototype.addS3Key=function(t,e){var n=new r.h;return n=n.append("key_type","s3"),i.keys(e).forEach(function(t){n=n.append(t,e[t])}),this.http.post(this.url+"/"+t+"/key",null,{params:n})},t.prototype.deleteS3Key=function(t,e){var n=new r.h;return n=(n=n.append("key_type","s3")).append("access_key",e),this.http.delete(this.url+"/"+t+"/key",{params:n})},t.prototype.exists=function(t){return this.get(t).pipe(Object(c.a)(!0),Object(l.a)(function(t){return i.isFunction(t.preventDefault)&&t.preventDefault(),Object(o.a)(!1)}))},t.prototype.emailExists=function(t){return t=decodeURIComponent(t),this.enumerateEmail().pipe(Object(u.a)(function(e){var n=i.indexOf(e,t);return Object(o.a)(-1!==n)}))},t.ngInjectableDef=f.defineInjectable({factory:function(){return new t(f.inject(r.c))},token:t,providedIn:p.a}),t=a.__decorate([d.a,a.__metadata("design:paramtypes",[r.c])],t)}()},PA2r:function(t,e,n){!function(t){"use strict";var e="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),n="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),a=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],r=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function i(t){return t>1&&t<5&&1!=~~(t/10)}function s(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return e||a?r+(i(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(i(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(i(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(i(t)?"dny":"dn\xed"):r+"dny";case"M":return e||a?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return e||a?r+(i(t)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):r+"m\u011bs\xedci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(i(t)?"roky":"let"):r+"lety"}}t.defineLocale("cs",{months:e,monthsShort:n,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:s,ss:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},PCNd:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},"PEr+":function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("EEJc"),s=n("ajRT"),o=n("gIcY"),u=n("IZUe"),c=n("ANnk"),l=n("f/UV"),d=n("aexS"),f=n("gp3X"),p=n("sb0X"),h=n("KVJa"),g=n("Z21x"),b=n("sne2"),m=n("0+/T"),y=n("DQlY");n.d(e,"a",function(){return A});var v=a["\u0275crt"]({encapsulation:0,styles:[[".modal-body[_ngcontent-%COMP%] .question[_ngcontent-%COMP%]{margin-top:1em}.modal-body[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-weight:700}.modal-body[_ngcontent-%COMP%] .question[_ngcontent-%COMP%] .checkbox[_ngcontent-%COMP%]{padding-top:7px}"]],data:{}});function _(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function x(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function T(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"p",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["Are you sure that you want to "," "])),a["\u0275ppd"](2,1),(t()(),a["\u0275eld"](3,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](4,null,["",""])),(t()(),a["\u0275ted"](-1,null,["?"]))],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r),t(e,4,0,n.itemNames[0])})}function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["Are you sure that you want to "," the selected items?"])),a["\u0275ppd"](2,1),(t()(),a["\u0275eld"](3,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,w)),a["\u0275did"](5,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.itemNames)},function(t,e){var n=e.component,r=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r)})}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,T)),a["\u0275did"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["manyNames",2]],null,0,null,S))],function(t,e){t(e,2,0,1===e.component.itemNames.length,a["\u0275nov"](e,3))},null)}function I(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["Are you sure that you want to "," the selected ","?"])),a["\u0275ppd"](2,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,1,0,t(e,2,0,a["\u0275nov"](e.parent,0),n.actionDescription));t(e,1,0,r,n.itemDescription)})}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function k(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](0,null,[" "," ","\n"])),a["\u0275ppd"](1,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent,1),n.actionDescription));t(e,0,0,r,n.itemDescription)})}function N(t){return a["\u0275vid"](0,[a["\u0275pid"](0,r.LowerCasePipe,[]),a["\u0275pid"](0,r.TitleCasePipe,[]),a["\u0275qud"](402653184,1,{submitButton:0}),(t()(),a["\u0275eld"](3,0,null,null,38,"cd-modal",[],null,null,null,i.c,i.b)),a["\u0275did"](4,49152,[["modal",4]],0,s.a,[],{modalRef:[0,"modalRef"]},null),(t()(),a["\u0275eld"](5,0,null,0,2,null,null,null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,_)),a["\u0275did"](7,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](8,0,null,1,33,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](9,0,null,null,32,"form",[["name","deletionForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["\u0275nov"](t,11).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["\u0275nov"](t,11).onReset()&&r),r},null,null)),a["\u0275did"](10,16384,null,0,o.D,[],null,null),a["\u0275did"](11,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["\u0275prd"](2048,null,o.d,null,[o.l]),a["\u0275did"](13,16384,null,0,o.s,[[4,o.d]],null,null),(t()(),a["\u0275eld"](14,0,null,null,20,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,x)),a["\u0275did"](16,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](17,0,null,null,17,"div",[["class","question"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,O)),a["\u0275did"](19,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["noNames",2]],null,0,null,I)),(t()(),a["\u0275eld"](21,0,null,null,13,"div",[["class","form-group"]],null,null,null,null,null)),a["\u0275did"](22,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](23,{"has-error":0}),(t()(),a["\u0275eld"](24,0,null,null,10,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),a["\u0275eld"](25,0,null,null,7,"input",[["autofocus",""],["formControlName","confirmation"],["id","confirmation"],["name","confirmation"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["\u0275nov"](t,26).onChange(n.target.checked)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,26).onTouched()&&r),r},null,null)),a["\u0275did"](26,16384,null,0,o.c,[a.Renderer2,a.ElementRef],null,null),a["\u0275prd"](1024,null,o.p,function(t){return[t]},[o.c]),a["\u0275did"](28,671744,null,0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.F]],{name:[0,"name"]},null),a["\u0275prd"](2048,null,o.q,null,[o.j]),a["\u0275did"](30,16384,null,0,o.r,[[4,o.q]],null,null),a["\u0275did"](31,4210688,null,0,u.a,[a.ElementRef],null,null),a["\u0275did"](32,4210688,null,0,c.a,[[2,l.a],d.a,a.ElementRef],null,null),(t()(),a["\u0275eld"](33,0,null,null,1,"label",[["for","confirmation"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Yes, I am sure."])),(t()(),a["\u0275eld"](35,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["\u0275eld"](36,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.callSubmitAction()&&a),a},f.b,f.a)),a["\u0275did"](37,114688,[[1,4],["submitButton",4]],0,p.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["\u0275and"](16777216,null,0,1,null,C)),a["\u0275did"](39,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](40,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),a["\u0275did"](41,49152,null,0,g.a,[r.Location,b.b],{name:[0,"name"],back:[1,"back"]},null),(t()(),a["\u0275and"](0,[["deletionHeading",2]],null,0,null,k))],function(t,e){var n=e.component;t(e,4,0,n.modalRef),t(e,7,0,a["\u0275nov"](e,42)),t(e,11,0,n.deletionForm),t(e,16,0,n.bodyContext,n.bodyTemplate),t(e,19,0,n.itemNames,a["\u0275nov"](e,20));var r=t(e,23,0,n.deletionForm.showError("confirmation",a["\u0275nov"](e,11)));t(e,22,0,"form-group",r),t(e,28,0,"confirmation"),t(e,37,0,n.deletionForm),t(e,39,0,a["\u0275nov"](e,42)),t(e,41,0,"Cancel",n.modalRef.hide)},function(t,e){t(e,9,0,a["\u0275nov"](e,13).ngClassUntouched,a["\u0275nov"](e,13).ngClassTouched,a["\u0275nov"](e,13).ngClassPristine,a["\u0275nov"](e,13).ngClassDirty,a["\u0275nov"](e,13).ngClassValid,a["\u0275nov"](e,13).ngClassInvalid,a["\u0275nov"](e,13).ngClassPending),t(e,25,0,a["\u0275nov"](e,30).ngClassUntouched,a["\u0275nov"](e,30).ngClassTouched,a["\u0275nov"](e,30).ngClassPristine,a["\u0275nov"](e,30).ngClassDirty,a["\u0275nov"](e,30).ngClassValid,a["\u0275nov"](e,30).ngClassInvalid,a["\u0275nov"](e,30).ngClassPending)})}function R(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-deletion-modal",[],null,null,null,N,v)),a["\u0275did"](1,114688,null,0,m.a,[y.a],null,null)],function(t,e){t(e,1,0)},null)}var A=a["\u0275ccf"]("cd-deletion-modal",m.a,R,{},{},[])},PNOi:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.ProgressBarComponent=function(){return a([r.Component({selector:"datatable-progress",template:'\n
\n
\n
\n
\n
\n ',changeDetection:r.ChangeDetectionStrategy.OnPush})],function(){})}()},PeUW:function(t,e,n){!function(t){"use strict";var e={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},n={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};t.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(t){return t+"\u0bb5\u0ba4\u0bc1"},preparse:function(t){return t.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(t,e,n){return t<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":t<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":t<10?" \u0b95\u0bbe\u0bb2\u0bc8":t<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":t<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":t<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(t,e){return 12===t&&(t=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===e?t<2?t:t+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===e||"\u0b95\u0bbe\u0bb2\u0bc8"===e?t:"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===e&&t>=10?t:t+12},week:{dow:0,doy:6}})}(n("wd/R"))},Phjn:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("psW0");function r(t,e){return Object(a.a)(t,e,1)}},PpIw:function(t,e,n){!function(t){"use strict";var e={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},n={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};t.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(t){return t.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===e?t<4?t:t+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===e?t:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===e?t>=10?t:t+12:"\u0cb8\u0c82\u0c9c\u0cc6"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":t<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":t<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":t<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(t){return t+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(n("wd/R"))},Q3dv:function(t,e){t.exports='\n \n \n \n Toggle navigation\n \ub124\ube44\uac8c\uc774\uc158 \uc804\ud658\n \n \n Dashboard\n \ud604\ud669\ud310\n \n \n Cluster\n \ud074\ub7ec\uc2a4\ud130\n \n \n Hosts\n \ud638\uc2a4\ud2b8\ub4e4\n \n \n Monitors\n \ubaa8\ub2c8\ud130\ub4e4\n \n \n OSDs\n OSD\ub4e4\n \n \n Configuration\n \uc124\uc815\n \n \n CRUSH map\n \ud06c\ub7ec\uc26c\ub9f5\n \n \n Manager modules\n \uba54\ub2c8\uc800 \ubaa8\ub4c8\ub4e4\n \n \n Logs\n \ub85c\uadf8\ub4e4\n \n \n Alerts\n \uacbd\uace0\ub4e4\n \n \n Silences\n Silences\n \n \n Pools\n \ud480\ub4e4\n \n \n Block\n \ube14\ub7ed\n \n \n Images\n \uc774\ubbf8\uc9c0\ub4e4\n \n \n Mirroring\n \ubbf8\ub7ec\ub9c1\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n \ud30c\uc77c\uc2dc\uc2a4\ud15c\ub4e4\n \n \n Object Gateway\n \uc624\ube0c\uc81d\ud2b8\uac8c\uc774\ud2b8\uc6e8\uc774\n \n \n Daemons\n \ub370\ubaac\ub4e4\n \n \n Users\n \uc0ac\uc6a9\uc790\n \n \n Buckets\n \ubc84\ud0b7\ub4e4\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Retrieving data\n for\n \n \n . Please wait...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Displaying previously cached data\n \n for \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n \n \n Back\n \ub4a4\ub85c\n \n \n Select a Language\n \uc5b8\uc5b4\uc120\ud0dd\n \n \n Loading panel data...\n \ud328\ub110 \ub370\uc774\ud0c0 \ub85c\ub529 \uc911...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n \n \n Grafana Time Picker\n \uadf8\ub77c\ud30c\ub098 \ud0c0\uc784 \ud53d\ucee4\n \n \n Reset Settings\n \uc124\uc815 \ucd08\uae30\ud654\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \ub370\uc774\ud0c0 \ub85c\ub529 \uc2e4\ud3d0\n \n \n selected\n \uc120\ud0dd\ub41c\n X selected\n \n \n found\n \ubc1c\uacac\ub41c\n X found\n \n \n total\n \uc804\uccb4\n X total\n \n \n Edit\n \ud3b8\uc9d1\n \n \n Name\n \uc774\ub984\n \n \n Description\n \uc124\uba85\n \n \n Long description\n \uc790\uc138\ud55c \uc124\uba85\n \n \n Default\n \uae30\ubcf8\uac12\n \n \n Daemon default\n \ub370\ubaa8 \uae30\ubcf8\uac12\n \n \n Services\n \uc11c\ube44\uc2a4\ub4e4\n \n \n Values\n \uac12\ub4e4\n \n \n The entered value is too high! It must not be greater than \n .\n \n \uc785\ub825\uac12\uc774 \ub108\ubb34 \ud07d\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \uc791\uc2b5\ub2c8\ub2e4.! \uadf8\uac83\uc740 \n \uc791\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n Save\n \uc800\uc7a5\ud558\uae30\n \n \n CRUSH map viewer\n \ud06c\ub7ec\uc26c\ub9f5 \ubcf4\uae30\n \n \n Hosts List\n \ud638\uc2a4\ud2b8 \ubaa9\ub85d\ub4e4\n \n \n Overall Performance\n \ud1b5\ud569 \uc131\ub2a5\uce58\n \n \n No entries found\n \ud56d\ubaa9\ub4e4\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc74c\n \n \n Cluster Logs\n \ud074\ub7ec\uc2a4\ud130 \ub85c\uadf8\ub4e4\n \n \n Audit Logs\n \uac10\uc0ac \ub85c\uadf8\ub4e4\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \uc124\uc815 \ub85c\ub529 \uc911\n \n \n The configuration could not be loaded.\n \uc124\uc815\uc744 \ub85c\ub4dc\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Edit Manager module\n \uad00\ub9ac\ubaa8\ub4c8 \ud3b8\uc9d1\ud558\uae30\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \uc785\ub825\ub41c \uac12\uc774 \uc720\ud6a8\ud55c UUID\uac00 \uc544\ub2d9\ub2c8\ub2e4, \uc608.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n \uc785\ub825\ub41c \uac12\uc740 \uc720\ud6a8\ud55c IP\uc8fc\uc18c \uc5ec\uc57c \ud569\ub2c8\ub2e4.\n \n \n This field is required.\n \uc774 \ud544\ub4dc\ub294 \ud544\uc218\uc801\uc785\ub2c8\ub2e4.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \uc785\ub825\uac12\uc774 \ub108\ubb34 \ud07d\ub2c8\ub2e4! \uadf8\uac83\uc740 \ubc18\ub4dc\uc2dc \n \uc791\uac70\ub098 \uac19\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \uc791\uc2b5\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \ud06c\uac70\ub098 \uac19\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n The entered value needs to be a number.\n \uc785\ub825\ub41c \uac12\uc740 \uc801\uc5b4\ub3c4 \ud558\ub098\uc758 \uc22b\uc790\ub97c \ud544\uc694\ub85c \ud569\ub2c8\ub2e4.\n \n \n The entered value needs to be a number or decimal.\n \uc785\ub825 \ub41c \uac12\uc740 \uc22b\uc790 \ub610\ub294 \uc2ed\uc9c4\uc218\uc5ec\uc57c \ud569\ub2c8\ub2e4.\n \n \n Update\n \uac31\uc2e0\n \n \n Status\n \uc0c1\ud0dc\n \n \n Cluster ID\n \ud074\ub7ec\uc2a4\ud130 ID\n \n \n monmap modified\n \ubaac\ub9f5 \ubcc0\uacbd\uc2dc\uac04\n \n \n monmap epoch\n \ubaac\ub9f5 \ubcc0\uacbd\ubc88\ud638\n \n \n quorum con\n \uc815\uc871\uc218 \uc77c\uce58\ubc88\ud638\n \n \n quorum mon\n \uc815\uc871\uc218 \ubaa8\ub2c8\ud130\uc0c1\ud0dc\n \n \n required con\n \uc694\uad6c\ub418\ub294 \uc77c\uce58\ubc88\ud638\n \n \n required mon\n \uc694\uad6c\ub418\ub294 \ubaa8\ub2c8\ud130\uc0c1\ud0dc\n \n \n In Quorum\n \uc815\uc871\uc218\uc5d0 \ud3ec\ud568\n \n \n Not In Quorum\n \uc815\uc871\uc218 \ubbf8\ud3ec\ud568\n \n \n Cancel\n \ucde8\uc18c\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \uc120\ud0dd\ub41c \n \ub85c \n \uc744 \ud558\ub294 \uac83\uc774 \ud655\uc2e4\ud569\ub2c8\uae4c?\n \n \n \n Yes, I am sure.\n \uc608, \ud655\uc2e4\ud569\ub2c8\ub2e4.\n \n \n Cluster-wide OSD Flags\n \ud074\ub7ec\uc2a4\ud130-\uc218\uc900\uc758 OSD \ud50c\ub808\uadf8\ub4e4\n \n \n Submit\n \uc81c\ucd9c\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \uc790\uc138\ud55c \uc635\uc158...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD \ubcf5\uad6c \uc6b0\uc120\uc21c\uc704\n \n \n Priority\n \uc6b0\uc120\uc21c\uc704\n \n \n Customize priority values\n \uc6b0\uc120 \uc21c\uc704 \uac12 \ub9de\ucda4 \uc124\uc815\n \n \n This field is required!\n \uc774 \ud544\ub4dc\ub294 \uc694\uad6c\ub429\ub2c8\ub2e4!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \ud07d\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \ud06c\uc9c0 \uc54a\uc544\uc57c \ud569\ub2c8\ub2e4..\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \uc785\ub825\ub41c \uac12\uc774 \ub108\ubb34 \uc791\uc2b5\ub2c8\ub2e4! \uadf8\uac83\uc740 \n \ubcf4\ub2e4 \uc791\uc544\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n Reweight OSD\n OSD \uc7ac-\uc870\uc815\n \n \n The value needs to be between 0 and 1.\n \uac12\uc740 0\uacfc 1\uc0ac\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n Reweight\n \uc7ac-\uc870\uc815\n \n \n OSDs \n Scrub\n \n OSD\ub4e4 \n \uccad\uc18c\ud558\uae30\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, \uc120\ud0dd, 1 {\uae4a\uc774 } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n OSD \n \n \n \uc744 \uccad\uc18c\ud558\uae30 \uc704\ud574, \ub2f9\uc2e0\uc740 \n \uc744 \uc801\uc6a9\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, \uc120\ud0dd, 1 {\uae4a\uc774 } }\n \n \n OSDs List\n OSD \ubaa9\ub85d\ub4e4\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \uacc4\uc18d\uc9c4\ud589\ud558\uba74 \n OSD \n \n \ub294 \n \n \n \ub85c \ud45c\uc2dc\ub429\ub2c8\ub2e4.\n \n \n \n The OSD is not safe to destroy!\n OSD\ub294 \ud30c\uad34\ud558\uae30\uc5d0 \uc548\uc804\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \uacc4\uc18d\uc9c4\ud589\ud558\uba74 \n OSD \n \n \ub294\n \n \n \uac00 \ub420 \uac83\uc785\ub2c8\ub2e4.\n \n \n \n Details\n \uc138\ubd80\uc124\uba85\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \uac12\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \ub2eb\uae30\n \n \n Delete\n \uc0ad\uc81c\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \uac74\uac15\uc0c1\ud0dc\n \n \n Statistics\n \ud1b5\uacc4\ub4e4\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n \n \n Clients\n \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\n \n \n Any client can access\n \ubaa8\ub4e0 \ud074\ub77c\uc774\uc5b8\ud2b8 \uc811\uadfc\uac00\ub2a5\n \n \n Addresses\n \uc8fc\uc18c\ub4e4\n \n \n Required field\n \ud544\uc218 \uc785\ub825\ub780\n \n \n Must contain one or more comma-separated values\n \ubc18\ub4dc\uc2dc \ud558\ub098 \uc774\uc0c1\uc758 \uc27c\ud45c\ub85c \uad6c\ubd84 \ub41c \uac12\uc744 \ud3ec\ud568\ud574\uc57c \ud568\n \n \n For example:\n \uc608\ub97c\ub4e4\uba74:\n \n \n Access Type\n \uc811\uadfc\ud615\ud0dc\n \n \n Squash\n Squash\n \n \n Add clients\n \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4 \ucd94\uac00\n \n \n Loading...\n \ub85c\ub529\uc911...\n \n \n -- No cluster available --\n -- \uc0ac\uc6a9\uac00\ub2a5 \ud074\ub7ec\uc2a4\ud130 \uc5c6\uc74c --\n \n \n -- Select the cluster --\n -- \ud074\ub7ec\uc2a4\ud130 \uc120\ud0dd --\n \n \n Add daemon\n \ub370\ubaac \ucd94\uac00\ud558\uae30\n \n \n Storage Backend\n \uc2a4\ud1a0\ub9ac\uc9c0 \ubc31\uc5d4\ub4dc\n \n \n -- No data pools available --\n -- \uc774\uc6a9\uac00\ub2a5\ud55c \ub370\uc774\ud0c0\ud480 \uc5c6\uc74c --\n \n \n -- Select the storage backend --\n -- \uc2a4\ud1a0\ub9ac\uc9c0 \ubc31\uc5d4\ub4dc \uc120\ud0dd --\n \n \n Object Gateway User\n \uac1d\uccb4 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790\n \n \n -- No users available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc0ac\uc6a9\uc790\ub4e4 \uc5c6\uc74c --\n \n \n -- Select the object gateway user --\n -- \uac1d\uccb4 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790 \uc120\ud0dd --\n \n \n CephFS User ID\n CephFS \uc0ac\uc6a9\uc790 ID\n \n \n -- No clients available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c \ud074\ub77c\uc774\uc5b8\ud2b8 \uc5c6\uc74c --\n \n \n -- Select the cephx client --\n -- cephx \ud074\ub77c\uc774\uc5b8\ud2b8 \uc120\ud0dd --\n \n \n CephFS Name\n CephFS \uc774\ub984\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \ubcf4\uc548 \ub808\uc774\ube14\n \n \n Enable security label\n \ubcf4\uc548 \ub808\uc774\ube14 \uc0ac\uc6a9\n \n \n CephFS Path\n CephFS \uacbd\ub85c\n \n \n Path need to start with a \'/\' and can be followed by a word\n \uacbd\ub85c\ub294 \'/\'\ub85c \uc2dc\uc791\ud574\uc57c\ud558\uba70 \uadf8 \ub4a4\uc5d0 \ub2e8\uc5b4\uac00 \uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4\n \n \n New directory will be created\n \uc0c8\ub85c\uc6b4 \ub514\ub809\ud1a0\ub9ac\uac00 \ub9cc\ub4e4\uc5b4 \uc9c8 \uac83\uc785\ub2c8\ub2e4\n \n \n Path\n \uacbd\ub85c\n \n \n Path can only be a single \'/\' or a word\n \uacbd\ub85c\ub294 \ud558\ub098\uc758 \'/\' \ub610\ub294 \ud558\ub098\uc758 \ub2e8\uc5b4 \uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4\n \n \n New bucket will be created\n \uc0c8\ub85c\uc6b4 \ubc84\ud0b7\uc774 \ub9cc\ub4e4\uc5b4 \uc9c8 \uac83\uc785\ub2c8\ub2e4\n \n \n NFS Protocol\n NFS \ud504\ub85c\ud1a0\ucf5c\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \ud0dc\ud06c\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \ub9c8\uc6b4\ud2b8\ub4e4\uc744 \uc704\ud55c \ub300\uccb4 \uc811\uadfc (/\uac00 \uc55e\uc5d0 \uc640\uc57c \ud568).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\ub97c \ub9c8\uc6b4\ud2b8 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4 (\uc989, Tag = foo \uc778 \uacbd\uc6b0 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 foo / baz\ub97c \ub9c8\uc6b4\ud2b8\ud558\uc9c0 \ubabb\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \ub2e4\ub978 \ud0dc\uadf8 \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 \uac19\uc740 \uacbd\ub85c\ub97c \uc5ec\ub7ec \ubc88 \ub0b4\ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \ub2e4\ub978 Pseudo \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 \ub3d9\uc77c\ud55c \uacbd\ub85c\ub97c \uc5ec\ub7ec \ubc88 \ub0b4\ubcf4\ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc811\uadfc\ud615\ud0dc \uc5c6\uc74c --\n \n \n -- Select the access type --\n -- \uc811\uadfc\ud615\ud0dc \uc120\ud0dd --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c squash \uc5c6\uc74c --\n \n \n --Select what kind of user id squashing is performed --\n -- \uc5b4\ub5a4 \uc885\ub958\uc758 \uc0ac\uc6a9\uc790 ID \uc2a4\ucffc\uc2dc\uac00 \uc218\ud589\ub418\ub294\uc9c0 \uc120\ud0dd\ud558\uc138\uc694 --\n \n \n Transport Protocol\n \uc804\uc1a1\ud504\ub85c\ud1a0\ucf5c\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Ceph \uc0ac\uc6a9\uc744 \ud658\uc601\ud569\ub2c8\ub2e4.\n The welcome message on the login page\n \n \n Username is required\n \uc0ac\uc6a9\uc790\uc774\ub984\uc774 \ud544\uc694\ud569\ub2c8\ub2e4\n \n \n Password is required\n \uc554\ud638\uac00 \ud544\uc694\ud569\ub2c8\ub2e4\n \n \n Login\n \ub85c\uadf8\uc778\n \n \n Sorry, the user does not exist in Ceph.\n \ubbf8\uc548\ud569\ub2c8\ub2e4. \uc0ac\uc6a9\uc790\uac00 Ceph\ub0b4\uc5d0 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \n \n Forbidden\n \uae08\uc9c0\ub428\n \n \n Sorry, you are not allowed to see what you were looking for.\n \ubbf8\uc548\ud569\ub2c8\ub2e4. \ub2f9\uc2e0\uc774 \uc694\uccad\ud560 \uac83\uc744 \uc5f4\ub78c\ud558\ub294 \uac83\uc774 \ud5c8\ub77d\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Sorry, we could not find what you were looking for\n \ubbf8\uc548\ud569\ub2c8\ub2e4. \ub2f9\uc2e0\uc774 \uc694\uccad\ud560 \uac83\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Remove all\n \ubaa8\ub4e0 \uac83 \uc81c\uac70\n \n \n Recent Notifications\n \ucd5c\uadfc \uc54c\ub9bc\ub4e4\n \n \n There are no background tasks.\n \ubc31\uadf8\ub77c\uc6b4\ub4dc \uc791\uc5c5\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Background Tasks\n \ubc31\uadf8\ub77c\uc6b4\ub4dc \uc791\uc5c5\ub4e4\n \n \n Help\n \ub3c4\uc6c0\ub9d0\n \n \n Documentation\n \ubb38\uc11c\n \n \n API\n API\n \n \n About\n \ub300\ud558\uc5ec\n \n \n Dashboard Settings\n \ub300\uc26c\ubcf4\ub4dc \uc124\uc815\n \n \n User management\n \uc0ac\uc6a9\uc790 \uad00\ub9ac\n \n \n Logged in user\n \ub85c\uadf8\uc778\ub41c \uc0ac\uc6a9\uc790\n \n \n Signed in as\n \n \n \n \n \n \n \n \n\ub85c\uc368 \uc2b9\uc778\ub428\n \n \n \n Sign out\n \ub85c\uadf8\uc544\uc6c3\n \n \n Name...\n \uc774\ub984...\n \n \n The chosen name is already in use.\n \uc120\ud0dd\ud55c \uc774\ub984\uc774 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n Description...\n \uc138\ubd80\uc124\uba85...\n \n \n Permissions\n \uad8c\ud55c\ub4e4\n \n \n Roles\n \uc5ed\ud560\ub4e4\n \n \n Username\n \uc0ac\uc6a9\uc790\uba85\n \n \n Password\n \uc554\ud638\n \n \n Confirm password\n \uc554\ud638 \ud655\uc778\n \n \n Password confirmation doesn\'t match the password.\n \uc554\ud638 \ud655\uc778\uc774 \uc554\ud638\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Full name\n \uc804\uccb4 \uc774\ub984\n \n \n Email\n \uc804\uc790\uc6b0\ud3b8\n \n \n Invalid email.\n \uc720\ud6a8\ud558\uc9c0\uc54a\ub294 \uc804\uc790\uc6b0\ud3b8.\n \n \n You are about to remove "user read / update" permissions from your own user.\n \ub2f9\uc2e0\uc758 \uc0ac\uc6a9\uc790\ub85c\ubd80\ud130 "\uc0ac\uc6a9\uc790 \uc77d\uae30 / \uc5c5\ub370\uc774\ud2b8"\uad8c\ud55c\uc744 \uc81c\uac70\ud558\ub824\uace0\ud569\ub2c8\ub2e4.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \uacc4\uc18d\ud558\uba74 \ubaa8\ub4e0 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc5ed\ud560\uc744 \ucd94\uac00\ud558\uac70\ub098 \uc81c\uac70 \ud560 \uc218 \uc5c6\uac8c\ub429\ub2c8\ub2e4.\n \n \n Are you sure you want to continue?\n \uacc4\uc18d \uc9c4\ud589\ud558\uae30\ub97c \uc6d0\ud558\uc2ed\ub2c8\uae4c?\n \n \n Performance counters not available\n \uc131\ub2a5 \uce74\uc6b4\ud130\ub4e4\uc744 \uc0ac\uc6a9 \ud560 \uc218 \uc5c6\uc74c\n \n \n Attributes (OSD map)\n \uc18d\uc131\ub4e4 (OSD \ub9f5)\n \n \n Metadata not available\n \uba54\ud0c0\ub370\uc774\ud0c0 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c\n \n \n Metadata\n \uba54\ud0c0\ub370\uc774\ud0c0\n \n \n Performance counter\n \uc131\ub2a5 \uce74\uc6b4\ud130\n \n \n Histogram not available: \n \n \n \ud788\uc2a4\ud1a0\uadf8\ub7a8\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc74c: \n \n \n \n \n Writes\n \uc4f0\uae30\n \n \n Reads\n \uc77d\uae30\n \n \n Histogram\n \ud788\uc2a4\ud1a0\uadf8\ub7a8\n \n \n Performance Details\n \uc131\ub2a5 \uc138\ubd80\uc815\ubcf4\ub4e4\n \n \n Current values\n \ud604\uc7ac \uac12\ub4e4\n \n \n Type\n \ud615\ud0dc\n \n \n Min\n \ucd5c\uc18c\n \n \n Max\n \ucd5c\ub300\n \n \n Flags\n \ud50c\ub808\uadf8\ub4e4\n \n \n Source\n \uc18c\uc2a4\n \n \n Level\n \uc218\uc900\n \n \n Can be updated at runtime (editable)\n \uc218\ud589\uc2dc\uac04\uc5d0 \uac31\uc2e0\uac00\ub2a5\ud568(\ud3b8\uc9d1\uac00\ub2a5)\n \n \n Tags\n \ud14c\ud06c\ub4e4\n \n \n Enum values\n \uc5f4\uac70\ud615 \uac12\ub4e4\n \n \n See also\n \ucd94\uac00\ub85c \ub354\ubcf4\uae30\n \n \n Cluster Status\n \ud074\ub7ec\uc2a4\ud130 \uc0c1\ud0dc\n \n \n Manager Daemons\n \uad00\ub9ac\uc790 \ub370\ubaac\ub4e4\n \n \n Object Gateways\n \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774\ub4e4\n \n \n Metadata Servers\n \uba54\ud0c0\ub370\uc774\ud0c0 \uc11c\ubc84\ub4e4\n \n \n iSCSI Gateways\n iSCSI \uac8c\uc774\ud2b8\uc6e8\uc774\ub4e4\n \n \n Client IOPS\n \ud074\ub77c\uc774\uc5b8\ud2b8 IOPS\n \n \n Client Throughput\n \ud074\ub77c\uc774\uc5b8\ud2b8 \ucc98\ub9ac\ub7c9\n \n \n Client Read/Write\n \ud074\ub77c\uc774\uc5b8\ud2b8 \uc77d\uae30/\uc4f0\uae30\n \n \n Recovery Throughput\n \ubcf5\uad6c \ucc98\ub9ac\ub7c9\n \n \n Scrub\n \uc138\uc815\uc791\uc5c5\n \n \n Performance\n \uc131\ub2a5\n \n \n Raw Capacity\n \uc6d0\uc2dc\uc6a9\ub7c9\n \n \n Objects\n \uc624\ube0c\uc81d\ud2b8\ub4e4\n \n \n PGs per OSD\n OSD\ub2f9 PG\ub4e4\n \n \n PG Status\n PG \uc0c1\ud0dc\ub4e4\n \n \n Capacity\n \uc6a9\ub7c9\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \ub354 \uc790\uc138\ud55c \ub0b4\uc6a9\uc744 \uc704\ud574 \n \ub85c\uadf8\n \ubcf4\uc2ed\uc2dc\uc624.\n \n \n \n Ranks\n \uc21c\uc704\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \uc774\ubbf8\uc9c0\ub97c \ud734\uc9c0\ud1b5\uc5d0 \uc774\ub3d9\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \ud734\uc9c0\ud1b5\uc73c\ub85c \n \n /\n \n \uc62e\uae30\uae30 \uc704\ud574, \n \uc120\ud0dd, \n \uc774\ubbf8\uc9c0 \uc62e\uae30\uc138\uc694. \uc120\ud0dd\uc801\uc73c\ub85c, \ud3d0\uae30\ub0a0\uc9dc\ub97c \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n \n Protection expires at\n \ubcf4\ud638\uac00 \ub9cc\ub8cc\ub418\ub294 \n \n \n NOT PROTECTED\n \ubcf4\ud638\ub418\uc9c0 \uc54a\uc74c\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \ub0a0\uc9dc \ud615\uc2dd \uc624\ub958. "YYYY-MM-DD HH:mm:ss" \ud615\uc2dd\uc73c\ub85c \uc9c0\uc815\ud558\uc138\uc694.\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \ubcf4\ud638\uae30\uac04\uc774 \uc774\ubbf8 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub354 \ubbf8\ub798\uc758 \ub0a0\uc9dc\ub97c \uc120\ud0dd\ud558\uac70\ub098 \uacf5\ub780\uc73c\ub85c \ub0a8\uaca8\ub450\uc138\uc694.\n \n \n Move Image\n \uc774\ubbf8\uc9c0 \uc62e\uae30\uae30\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \uac1c\uad00\n \n \n Targets\n \ud0c0\uac9f\ub4e4\n \n \n Discovery Authentication\n \uc778\uc99d \ud0d0\uc0c9\n \n \n User\n \uc0ac\uc6a9\uc790\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \uc0ac\uc6a9\uc790\uc774\ub984\uc740 8~64\uc790\uae4c\uc9c0 \uae38\uc774\uc758 \ubb38\uc790\ub4e4\uc744 \uac00\uc838\uc57c \ud558\uba70 \uadf8\ub9ac\uace0, \uc624\uc9c1 , \'.\', \'@\', \'-\', \'_\', \':\' \ub4f1\uc758 \ud2b9\uc218 \ubb38\uc790\ub4e4\ub9cc\uc744 \ud3ec\ud568\uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \uacf5\ub3d9 \uc0ac\uc6a9\uc790\n \n \n Mutual Password\n \uacf5\ud1b5 \uc554\ud638\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n iSCSI \ud0c0\uac9f\ub4e4 \uad00\ub9ac \uae30\ub2a5\ub4e4\uc744 \uc124\uc815\ud558\uace0 \ucf1c\uae30\uc704\ud574\uc11c \n \ubb38\uc11c\n \ubd80\ubd84\uc744 \ucc38\uc870\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n \n \n \n Available information:\n \uc774\uc6a9\uac00\ub2a5\ud55c \uc815\ubcf4:\n \n \n iSCSI Targets not available\n iSCSI \ud0c0\uac9f\uc774 \uc774\uc6a9 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \uc624\uc9c1 \n fast-diff\n \uc124\uc815\ub41c RBD \uc774\ubbf8\uc9c0\ub4e4\uacfc \ud568\uaed8 \uc0ac\uc6a9\uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n \n Pool\n \ud480\n \n \n Data Pool\n \ub370\uc774\ud0c0 \ud480\n \n \n Created\n \uc0dd\uc131\ub41c\n \n \n Size\n \ud06c\uae30\n \n \n Object size\n \uac1d\uccb4\ud06c\uae30\n \n \n Features\n \ud2b9\uc9d5\ub4e4\n \n \n Provisioned\n \uc900\ube44\ub41c\n \n \n N/A\n \uc774\uc6a9\ubd88\uac00\n \n \n Total provisioned\n \uc900\ube44\ub41c \ucd1d\uacc4\n \n \n Striping unit\n \uc2a4\ud2b8\ub77c\uc774\ud551 \ub2e8\uc704\n \n \n Striping count\n \uc2a4\ud2b8\ub77c\uc774\ud551 \ud69f\uc218\n \n \n Parent\n \uc0c1\uc704\n \n \n Block name prefix\n \ube14\ub85d \uc774\ub984 \uc811\ub450\uc0ac\n \n \n Order\n \uc21c\uc11c\n \n \n Snapshots\n \uc2a4\ub0c5\uc0bf\n \n \n Image\n \uc774\ubbf8\uc9c0\n \n \n This setting overrides the global value\n \uc774 \uc124\uc815\uc740 \uc804\uc5ed \uac12\uc744 \ub36e\uc5b4\uc501\ub2c8\ub2e4.\n \n \n Global\n \uae00\ub85c\ubc8c\n \n \n This is the global value. No value for this option has been set for this image.\n \uc774\uac83\uc740 \uc804\uc5ed \uac12\uc785\ub2c8\ub2e4. \uc774 \uc774\ubbf8\uc9c0\uc5d0 \ub300\ud574 \uc774 \uc635\uc158\uc758 \uac12\uc774 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' \uc640 \'@\' \ubb38\uc790\ub294 \uc0ac\uc6a9\ubd88\uac00\uc785\ub2c8\ub2e4.\n \n \n -- No rbd pools available --\n -- \uc774\uc6a9\uac00\ub2a5\ud55c rbd\ud480 \uc5c6\uc74c --\n \n \n -- Select a pool --\n -- \ud480 \uc120\ud0dd --\n \n \n Use a dedicated data pool\n \uc804\uc6a9 \ub370\uc774\ud0c0 \ud480\ub4e4\uc744 \uc0ac\uc6a9\ud558\uc138\uc694\n \n \n Data pool\n \ub370\uc774\ud0c0 \ud480\n \n \n Dedicated pool that stores the object-data of the RBD.\n RBD\uc758 \uac1d\uccb4-\ub370\uc774\ud0c0\ub97c \uc800\uc7a5\ud558\uace0 \uc788\ub294 \uc804\uc6a9 \ud480\n \n \n e.g., 10GiB\n \uc608., 100 GiB\n \n \n You have to increase the size.\n \uc0ac\uc774\uc988\ub97c \uc99d\uac00\uc2dc\ucf1c\uc57c \ud569\ub2c8\ub2e4.\n \n \n Advanced\n \uc790\uc138\ud55c\n \n \n Striping\n \ubd84\uc0b0\uc800\uc7a5\n \n \n Stripe unit\n \ubd84\uc0b0\uc800\uc7a5\ub2e8\uc704\n \n \n -- Select stripe unit --\n -- \ubd84\uc0b0\uc800\uc7a5\ub2e8\uc704 \uc120\ud0dd --\n \n \n This field is required because stripe count is defined!\n \ubd84\uc0b0\uc800\uc7a5 \uac1c\uc218\uac00 \uc815\uc758\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \uc774 \ud544\ub4dc\ub294 \ud544\uc218\uc785\ub2c8\ub2e4!\n \n \n Stripe unit is greater than object size.\n \ubd84\uc0b0\uc800\uc7a5\ub2e8\uc704\ub294 \uac1d\uccb4\ud06c\uae30\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n Stripe count\n \ubd84\uc0b0\uc800\uc7a5 \uac2f\uc218\n \n \n This field is required because stripe unit is defined!\n \ubd84\uc0b0\uc800\uc7a5 \ub2e8\uc704\uac00 \uc815\uc758\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \uc774 \ud544\ub4dc\ub294 \ud544\uc218\uc785\ub2c8\ub2e4!\n \n \n Stripe count must be greater than 0.\n \ubd84\uc0b0\uc800\uc7a5 \uac2f\uc218\ub294 \ubc18\ub4dc\uc2dc 0\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n RBD Snapshot\n \n \n RBD \uc2a4\ub0c5\uc0f7\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Rename} other {Create} }\n \n \n \n Snapshot\n \n \n \uc2a4\ub0c5\uc0f7\n \n \n \n PROTECTED\n \ubcf4\ud638\ub428\n \n \n UNPROTECTED\n \ubcf4\ud638\uc548\ub428\n \n \n You are about to rollback\n \ub864\ubc31\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.\n \n \n Purge Trash\n \ud734\uc9c0\ud1b5 \ube44\uc6b0\uae30\n \n \n To purge, select one or All images and click\n \ube44\uc6b0\uae30 \uc704\ud574, \ud558\ub098 \ub610\ub294 \ubaa8\ub4e0 \uc774\ubbf8\uc9c0\ub4e4\uc744 \uc120\ud0dd\ud558\uace0 \ud074\ub9ad\ud558\uc138\uc694.\n \n \n Pool:\n \ud480:\n \n \n Pool name...\n \ud480 \uc774\ub984:\n \n \n All\n \ubaa8\ub4e0\n \n \n Restore Image\n \uc774\ubbf8\uc9c0 \ubcf5\uad6c\ud558\uae30\n \n \n To restore\n \ubcf5\uad6c\ub97c \uc704\ud574\n \n \n type the image\'s new name and click\n \uc774\ubbf8\uc9c0\ub4e4\uc758 \uc0c8\ub85c\uc6b4 \uc774\ub984\uc744 \uc785\ub825\ud558\uace0 \ud074\ub9ad\ud558\uc138\uc694\n \n \n New Name\n \uc0c8\ub85c\uc6b4 \uc774\ub984\n \n \n Expired at\n \ud3d0\uae30\ub420\n \n \n Protected until\n \uae4c\uc9c0 \ubcf4\ud638\ub428\n \n \n This image is protected until \n .\n \n \uc774 \uc774\ubbf8\uc9c0\ub294 \n \uae4c\uc9c0 \ubcf4\ud638\ub429\ub2c8\ub2e4.\n \n \n \n Trash\n \ud734\uc9c0\ud1b5\n \n \n iSCSI Topology\n iSCSI \ud1a0\ud3f4\ub85c\uc9c0\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \uae30\ubcf8\uc124\uc815 \uac12\ub4e4\ub85c \ubd80\ud130 \uc778\uc790\ub97c \ubcc0\uacbd\ud558\ub294 \uac83\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \ud544\uc694\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \uc124\uc815\ub4e4\n \n \n Backstore\n \ubc31\uc2a4\ud1a0\uc5b4\n \n \n Confirm\n \ud655\uc778\n \n \n Advanced Settings\n \uace0\uae09\uc124\uc815\ub4e4\n \n \n Target IQN\n \ud0c0\uac9f IQN\n \n \n IQN has wrong pattern.\n IQN\uc774 \uc798\ubabb\ub41c \ud328\ud134\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN\uc740 \ub2e4\uc74c\uacfc \uac19\uc740 \uc9c0\uc815\uaddc\uce59\uc774 \uc788\uc2b5\ub2c8\ub2e4.\n\'iqn.$\ub144-$\ub2ec.$\ub4a4\uc9d1\uc5b4\uc9c4\uc8fc\uc18c:$\uc815\uc758\ub41c\uc774\ub984\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Key\n\uc608\ub97c\ub4e4\uba74: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \ucd94\uac00 \uc815\ubcf4\n \n \n This target has modified advanced settings.\n \uc774 \ud0c0\uac9f\uc740 \uace0\uae09\uc124\uc815\ub4e4\uc744 \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4.\n \n \n Portals\n \ud3ec\ud138\n \n \n At least \n gateways are required.\n \n \uc801\uc5b4\ub3c4 \n \uac8c\uc774\ud2b8\uc6e8\uc774\ub4e4\uc744 \ud544\uc694\ub85c \ud569\ub2c8\ub2e4.\n \n \n \n Add portal\n \ud3ec\ud138 \ucd94\uac00\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \uc774 \uc774\ubbf8\uc9c0\ub294 \uc124\uc815\ub4e4\uc744 \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4. \n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \uc774\ubbf8\uc9c0 \ucd94\uac00\n \n \n ACL authentication\n ACL \uc778\uc99d\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \uac1c\uc2dc\uc790\ub4e4\n \n \n Initiator\n \uac1c\uc2dc\uc790\ub4e4\n \n \n Client IQN\n \ud074\ub77c\uc774\uc5b8\ud2b8 IQN\n \n \n Initiator IQN needs to be unique.\n \uac1c\uc2dc\uc790 IQN\uc740 \uc720\uc77c\ud574\uc57c \ud569\ub2c8\ub2e4.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \uc0ac\uc6a9\uc790\uc774\ub984\uc740 8~64\uc790\uae4c\uc9c0 \uae38\uc774\uc758 \ubb38\uc790\ub4e4\uc744 \uac00\uc838\uc57c \ud558\uba70 \uadf8\ub9ac\uace0, \uc624\uc9c1 , \'.\', \'@\', \'-\', \'_\', \':\' \ub4f1\uc758 \ud2b9\uc218 \ubb38\uc790\ub4e4\ub9cc \ud3ec\ud568\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \uac1c\uc2dc\uc790\ub294 \ud558\ub098\uc758 \uadf8\ub8f9\uc5d0 \uc18d\ud574\uc57c \ud558\uace0, \uc774\ubbf8\uc9c0\ub294 \uadf8\ub8f9\uc548\uc5d0\uc11c \uc124\uc815\ud569\ub2c8\ub2e4.\n \n \n No items added.\n \ucd94\uac00\ub41c \uc544\uc774\ud15c\ub4e4\uc774 \uc5c6\uc74c\n \n \n Add initiator\n \uac8c\uc2dc\uc790 \ucd94\uac00\n \n \n Groups\n \uadf8\ub8f9\ub4e4\n \n \n Group\n \uadf8\ub8f9\n \n \n Add group\n \uadf8\ub8f9\ucd94\uac00\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD \uc124\uc815\ub4e4\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \ub85c\uceec \uad6c\uc131 \uac12\uc744 \uc81c\uac70\ud558\uc2ed\uc2dc\uc624. \uc0c1\uc704 \uad6c\uc131 \uac12\uc740 \uacc4\uc2b9\ub418\uace0 \ub300\uc2e0 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.\n \n \n The mininum value is 0\n \ucd5c\uc18c\uac12\uc740 0\uc785\ub2c8\ub2e4.\n \n \n Issues\n \uc774\uc288\ub4e4\n \n \n Syncing\n \ub3d9\uae30\ud654\uc911\n \n \n Ready\n \uc900\ube44\ub428\n \n \n Edit pool mirror mode\n \ud480 \ubbf8\ub7ec\ubaa8\ub4dc\ub97c \ud3b8\uc9d1\ud558\uae30\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \ud480\uc744 \uc704\ud55c \ubbf8\ub7ec\ubaa8\ub4dc\ub97c \ud3b8\uc9d1\ud558\uae30 \uc704\ud574\xa0\n \n \n , \uadf8 \ubaa9\ub85d\uc73c\ub85c \ubd80\ud130 \uc0c8\ub85c\uc6b4 \ubaa8\ub4dc\ub97c \uc120\ud0dd\ud558\uace0, \ud074\ub9ad\n \uac31\uc2e0\n .\n \n \n \n Mode\n \uc591\uc2dd\n \n \n Peer clusters must be removed prior to disabling mirror.\n \uc0c1\ub300\ubc29 \ud074\ub7ec\uc2a4\ud130\ub4e4\uc740 \ubbf8\ub7ec\ub97c \ub2e8\uc808\ud558\uae30 \uc804\uc5d0 \ubc18\ub4dc\uc2dc \uc81c\uac70\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n \n pool mirror peer\n \n \n \n \ud480 \ubbf8\ub7ec \uc0c1\ub300\ubc29\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \ud480 \n \n \n \ud480\uc744 \uc704\ud558\uc5ec \uc0c1\ub300\ubc29 \uc18d\uc131 \ubbf8\ub7ec\ud558\uace0,\n \uc120\ud0dd \n \uc81c\ucd9c \n .\n \n \n \n Cluster Name\n \ud074\ub7ec\uc2a4\ud130 \uc774\ub984\n \n \n The cluster name is not valid.\n \ud074\ub7ec\uc2a4\ud130 \uc774\ub984\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n CephX ID\n CephX \uc544\uc774\ub514\n \n \n CephX ID...\n CephX \uc544\uc774\ub514...\n \n \n The CephX ID is not valid.\n CephX \uc544\uc774\ub514\uac00 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Monitor Addresses\n \ubaa8\ub2c8\ud130 \uc8fc\uc18c\ub4e4\n \n \n Comma-delimited addresses...\n \ucf64\ub9c8\ub85c \ubd84\ub9ac\ub41c \uc8fc\uc18c\ub4e4...\n \n \n The monitory address is not valid.\n \ubaa8\ub2c8\ud130 \uc8fc\uc18c\uac00 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n CephX Key\n CephX \ud0a4\n \n \n Base64-encoded key...\n Base64\ub85c \uc778\ucf54\ub529 \ub41c \ud0a4 ...\n \n \n CephX key must be base64 encoded.\n CephX \ud0a4\ub294 \ubc18\ub4dc\uc2dc base64\ub85c \uc778\ucf54\ub4dc \ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n Pools List\n \ud480 \ubaa9\ub85d\ub4e4\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \uc774\ub984\uc740 \uc601\uc22b\uc790, \ub300\uc2dc \ubc0f \ubc11\uc904\ub85c\ub9cc \uad6c\uc131 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The chosen erasure code profile name is already in use.\n \uc120\ud0dd\ud55c Erasure Code \ud504\ub85c\ud30c\uc77c \uc774\ub984\uc774 \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.\n \n \n Plugin\n \ud50c\ub7ec\uadf8\uc778\n \n \n Data chunks (k)\n \ub370\uc774\ud130 \ub369\uc5b4\ub9ac\ub4e4 (k)\n \n \n Must be equal to or greater than 2.\n \ubc18\ub4dc\uc2dc 2\ubcf4\ub2e4 \ud06c\uac70\ub098 \uac19\uc544\uc57c\ud569\ub2c8\ub2e4.\n \n \n Coding chunks (m)\n \ucf54\ub529 \ub369\uc5b4\ub9ac\ub4e4 (m)\n \n \n Must be equal to or greater than 1.\n \ubc18\ub4dc\uc2dc 1\ubcf4\ub2e4 \ud06c\uac70\ub098 \uac19\uc544\uc57c\ud569\ub2c8\ub2e4.\n \n \n Durability estimator (c)\n \ub0b4\uad6c\uc131 \ud3c9\uac00(c)\n \n \n Locality (l)\n \uc9c0\uc5ed (l)\n \n \n Crush failure domain\n \ud06c\ub7ec\uc26c \uc2e4\ud328 \ub3c4\uba54\uc778\n \n \n Crush Locality\n \ud06c\ub7ec\uc26c \uc9c0\uc5ed\n \n \n None\n \uc5c6\uc74c\n \n \n Technique\n \uae30\uc220\n \n \n Packetsize\n \ud328\ud0b7\ud06c\uae30\n \n \n Crush root\n \ud06c\ub7ec\uc26c\ub8e8\ud2b8\n \n \n Crush device class\n \ud06c\ub7ec\uc26c \uc7a5\uce58 \ud074\ub798\uc2a4\n \n \n any\n \ubaa8\ub4e0\n \n \n Directory\n \ub514\ub809\ud1a0\ub9ac\n \n \n The chosen Ceph pool name is already in use.\n \uc120\ud0dd\ud55c Ceph \ud480\uc774\ub984\uc774 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n Pool type\n \ud480 \ud615\ud0dc\n \n \n -- Select a pool type --\n -- \ud480 \ud615\ud0dc \uc120\ud0dd --\n \n \n Placement groups\n \uac8c\uc7ac\uc704\uce58 \uadf8\ub8f9\n \n \n At least one placement group is needed!\n \uc801\uc5b4\ub3c4 \ud558\ub098\uc758 \uac8c\uc7ac\uc704\uce58 \uadf8\ub8f9\uc774 \ud544\uc694\ud568!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \ud074\ub7ec\uc2a4\ud130\ub294 \uc774 \ub9ce\uc740 PG\ub4e4\ub97c \ucc98\ub9ac \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ud544\uc694\ud55c PG \uc591\uc744 \ub2e4\uc2dc \uacc4\uc0b0\ud558\uc2ed\uc2dc\uc624.\n \n \n Calculation help\n \uacc4\uc0b0 \ub3c4\uc6c0\ub9d0\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \ud604\uc7ac\uc758 PG\ub4e4 \uc124\uc815\ub4e4\uc774 \ub2f9\uc2e0\uc744 \uc704\ud574 \uacc4\uc0b0\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n\ub2f9\uc2e0\uc740 \uc81c\ucd9c\ud558\uae30 \uc804\uc5d0 \ub2f9\uc2e0\uc758 \uc694\uad6c\uc5d0 \uc801\ud569\ud55c \uac12\uc778\uc9c0\ub97c \ud655\uc778\ud574\uc57c \ud569\ub2c8\ub2e4.\n \n \n Crush ruleset\n \ud06c\ub7ec\uc26c \ub8f0\uc14b\n \n \n -- Select a crush rule --\n -- \ud06c\ub7ec\uc26c \ub8f0 \uc120\ud0dd --\n \n \n Crush rule\n \ud06c\ub7ec\uc26c \ub8f0\n \n \n Crush steps\n \ud06c\ub7ec\uc26c \ub2e8\uacc4\ub4e4\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \uc774 \ub8f0\uc5d0 \uc758\ud558\uc5ec \ucd5c\uc18c\ub85c \ud544\uc694\ub85c \ud558\ub294 OSD\ubcf4\ub2e4 \uc801\uc740 OSD\ub97c \uac00\uc9c0\uace0 \uc788\uae30\ub54c\ubb38\uc5d0 \uc774 \ub8f0\uc740 \ud604\uc7ac\uc758 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c\ub294 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Replicated size\n \ubcf5\uc81c\ub418\ub294 \ud06c\uae30\n \n \n Minimum: \n \n \n \ucd5c\uc18c: \n \n \n \n \n Maximum: \n \n \n \ucd5c\ub300: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \uc9c0\uc815\ub41c \ud06c\uae30\ub294 \ubc94\uc704\ub97c \ubc97\uc5b4\ub0ac\uc2b5\ub2c8\ub2e4.\n \uc5d0\uc11c \n \uc0ac\uc774\uc758 \uac12\uc774 \uc720\ud6a8\ud569\ub2c8\ub2e4.\n \n \n \n Erasure code profile\n Erasure Code \ud504\ub85c\ud30c\uc77c\n \n \n -- No erasure code profile available --\n -- \uc0ac\uc6a9\uac00\ub2a5\ud55c Erasure Code \ud504\ub85c\ud30c\uc77c \uc5c6\uc74c --\n \n \n -- Select an erasure code profile --\n -- \ud55c\uac1c\uc758 Erasure Code \ud504\ub85c\ud30c\uc77c \uc120\ud0dd --\n \n \n EC Overwrites\n EC \ub36e\uc5b4\uc4f0\uae30\n \n \n Applications\n \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8\ub4e4\n \n \n Compression\n \uc555\ucd95\n \n \n Algorithm\n \uc54c\uace0\ub9ac\uc998\n \n \n -- No erasure compression algorithm available --\n -- \uc774\uc6a9\uac00\ub2a5\ud55c Erasure \uc555\ucd95\uc54c\uace0\ub9ac\uc998 \uc5c6\uc74c --\n \n \n Minimum blob size\n \ucd5c\uc18c blob \ud06c\uae30\n \n \n e.g., 128KiB\n \uc608) 128KiB\n \n \n Value should be greater than 0\n \uac12\uc740 0\ubcf4\ub2e4 \ucee4\uc57c\ud569\ub2c8\ub2e4\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n \ucd5c\ub300 blob \ud06c\uae30\n \n \n e.g., 512KiB\n \uc608) 512KiB\n \n \n Value should be greater than the minimum blob size\n \uac12\uc740 \ucd5c\uc18c blob \ud06c\uae30\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4\n \n \n Ratio\n \ube44\uc728\n \n \n Compression ratio\n \uc555\ucd95\uc728\n \n \n Value should be between 0.0 and 1.0\n \uac12\uc740 0.0\uacfc 1.0 \uc0ac\uc774 \uc5ec\uc57c \ud569\ub2c8\ub2e4.\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \uc774\ub984\uc5d0 \'/\'\uac00 \ud3ec\ud568 \ub41c RBD \ud480\uc744 \uc0dd\uc131 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \uc774\ub984\uc744 \ubcc0\uacbd\ud558\uac70\ub098 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8 \ubaa9\ub85d\uc5d0\uc11c \'rbd\'\ub97c \uc81c\uac70\ud558\uc2ed\uc2dc\uc624.\n \n \n Cache Tiers Details\n \ucf00\uc26c \uacc4\uce35\ub4e4 \uc0c1\uc138\uc124\uba85\ub4e4\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \uad00\ub9ac\uae30\ub2a5\ub4e4\uc744 \uc5b4\ub5bb\uac8c \uc124\uc815\ud558\uace0 \ucf1c\ub294\uc9c0\uc5d0 \ub300\ud574 \n\ubb38\uc11c\n \uc0c1\uc758 \n \ubd80\ubd84\uc744 \ucc38\uc870\ud558\uae30 \ubc14\ub78d\ub2c8\ub2e4.\n \n \n \n Daemons List\n \ub370\ubaac \ubaa9\ub85d\ub4e4\n \n \n Performance Counters\n \uc131\ub2a5 \uce74\uc6b4\ud130\n \n \n Loading bucket data...\n \ubc84\ud0b7\ub370\uc774\ud0c0 \uc801\uc7ac \uc911\n \n \n The bucket data could not be loaded.\n \ubc84\ud0b7 \ub370\uc774\ud0c0\ub97c \uc801\uc7ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Id\n \uc544\uc774\ub514\n \n \n The value is not valid.\n \uac12\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Owner\n \uc18c\uc720\uc790\n \n \n -- Select a user --\n -- \uc0ac\uc6a9\uc790 \uc120\ud0dd --\n \n \n ID\n \uc544\uc774\ub514\n \n \n Index type\n \uc0c9\uc778\ud615\uc2dd\n \n \n Placement rule\n \uc704\uce58\uaddc\uce59\n \n \n Marker\n \ud45c\uc2dc\n \n \n Maximum marker\n \ucd5c\ub300 \ub9c8\ucee4\n \n \n Version\n \ubc84\uc83c\n \n \n Master version\n \ub9c8\uc2a4\ud130 \ubc84\uc83c\n \n \n Modification time\n \uc218\uc815\ub41c \uc2dc\uac04\n \n \n Zonegroup\n \uc81c\ub85c\uadf8\ub8f9\n \n \n Bucket quota\n \ubc84\ud0b7 \ud560\ub2f9\ub7c9\n \n \n Enabled\n \uc774\uc6a9\uac00\ub2a5\n \n \n Maximum size\n \ucd5c\ub300 \ud06c\uae30\n \n \n Unlimited\n \ubb34\uc81c\ud55c\n \n \n Maximum objects\n \ucd5c\ub300 \uac1d\uccb4\ub4e4\n \n \n -- Select a username --\n -- \uc0ac\uc6a9\uc790\uba85 \uc120\ud0dd --\n \n \n Auto-generate key\n \uc790\ub3d9\uc0dd\uc131\ub41c \ud0a4\n \n \n Access key\n \uc811\uadfc \ud0a4\n \n \n Secret key\n \ube44\ubc00 \ud0a4\n \n \n Email address\n \uc804\uc790\uc6b0\ud3b8 \uc8fc\uc18c\n \n \n Suspended\n \uc720\uc608\ub418\ub2e4.\n \n \n System\n \uc2dc\uc2a4\ud15c\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, \uc120\ud0dd, 0 {\uc544\ub2c8\uc624} 1 {\uc608} }\n \n \n Maximum buckets\n \ucd5c\ub300 \ubc84\ud0b7\ub4e4\n \n \n Subusers\n \ubcf4\uc870\uc0ac\uc6a9\uc790\ub4e4\n \n \n Capabilities\n \ub2a5\ub825\uce58\ub4e4\n \n \n User quota\n \uc0ac\uc6a9\uc790 \ud560\ub2f9\ub7c9\n \n \n Show\n \ubcf4\uae30\n \n \n Keys\n \ud0a4\ub4e4\n \n \n -- Select a type --\n -- \ud615\ud0dc \uc120\ud0dd --\n \n \n Permission\n \uad8c\ud55c\n \n \n -- Select a permission --\n -- \uad8c\ud55c \uc120\ud0dd --\n \n \n Subuser\n \ubcf4\uc870\uc0ac\uc6a9\uc790\n \n \n The chosen subuser ID is already in use.\n \uc120\ud0dd\ud55c \ubcf4\uc870\uc0ac\uc6a9\uc790 \uc544\uc774\ub514\uac00 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n read, write\n \uc77d\uae30, \uc4f0\uae30\n \n \n full\n \uac00\ub4dd\ucc2c\n \n \n Swift key\n \uc2a4\uc704\ud504\ud2b8 \ud0a4\n \n \n Auto-generate secret\n \uc790\ub3d9\uc0dd\uc120\ub41c \ube44\ubc00\n \n \n Loading user data...\n \uc0ac\uc6a9\uc790 \ub370\uc774\ud0c0 \uc801\uc7ac \uc911...\n \n \n The user data could not be loaded.\n \uc0ac\uc6a9\uc790 \ub370\uc774\ud0c0\ub97c \uc801\uc7ac\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n The chosen user ID is already in use.\n \uc120\ud0dd\ub41c \uc0ac\uc6a9\uc790 \uc544\uc774\ub514\uac00 \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.\n \n \n This is not a valid email address.\n \uc774\uac83\uc740 \uc720\ud6a8\ud55c \uc804\uc790\uc6b0\ud3b8 \uc8fc\uc18c\uac00 \uc544\ub2d9\ub2c8\ub2e4.\n \n \n The chosen email address is already in use.\n \uc120\ud0dd\ud55c \uc804\uc790\uc6b0\ud3b8 \uc8fc\uc18c\uac00 \uc774\ubbf8 \uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.\n \n \n Max. buckets\n \ucd5c\ub300 \ubc84\ud0b7\ub4e4\n \n \n The entered value must be >= 0.\n \uc785\ub825\ub41c \uac12\uc740 \ubc18\ub4dc\uc2dc 0\ubcf4\ub2e4 \ucee4\uc57c \ud569\ub2c8\ub2e4.\n \n \n S3 key\n S3 \ud0a4\n \n \n There are no subusers.\n \ubcf4\uc870\uc0ac\uc6a9\uc790\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \ud0a4\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n \uc2a4\uc704\ud504\ud2b8\n \n \n There are no capabilities.\n \ub2a5\ub825\uce58\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \ubb34\uc81c\ud55c \ud06c\uae30\n \n \n Max. size\n \ucd5c\ub300 \ud06c\uae30\n \n \n Unlimited objects\n \ubb34\uc81c\ud55c \uac1d\uccb4\ub4e4\n \n \n Max. objects\n \ucd5c\ub300 \uac1d\uccb4\ub4e4\n \n \n Current\n \ud604\uc7ac\n \n \n Updated discovery authentication\n \uc5c5\ub370\uc774\ud2b8\ub41c \uac80\uc0c9 \uc778\uc99d\n \n \n There are no portals available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \ud3ec\ud0c8\ub4e4\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n There are no images available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc774\ubbf8\uc9c0\ub4e4\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n There are no images available. Please make sure you add an image to the target.\n \uc0ac\uc6a9\ud560 \uc218\uc788\ub294 \uc774\ubbf8\uc9c0\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uc0c1\uc5d0 \uc774\ubbf8\uc9c0\ub97c \ucd94\uac00\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \uc0ac\uc6a9\ud560 \uc218\uc788\ub294 \uac1c\uc2dc\uc790\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub300\uc0c1\uc5d0 \uac1c\uc2dc\uc790\ub97c \ucd94\uac00\ud588\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624.\n \n \n target\n target\n \n \n Target\n \ud0c0\uac9f\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \uc0c1\ud0dc\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \uc77d\uc740 \ubc14\uc774\ud2b8\ub4e4\n \n \n Write Bytes\n \uc4f0\uae30 \ubc14\uc774\ud2b8\ub4e4\n \n \n Read Ops\n \uc77d\uae30 Ops\n \n \n Write Ops\n \uc4f0\uae30 Ops\n \n \n A/O Since\n A/O \uc774\ub798\ub85c\n \n \n Instance\n \uc778\uc2a4\ud0c4\uc2a4\n \n \n Hostname\n \ud638\uc2a4\ud2b8\uc774\ub984\n \n \n Issue\n \uc774\uc288\n \n \n Progress\n \uc9c4\ud589\uc911\n \n \n Disabled\n \uc124\uc815\ud574\uc81c\ub428\n \n \n Edit Mode\n \ud3b8\uc9d1\ubaa8\ub4dc\n \n \n Add Peer\n \uc0c1\ub300\ubc29 \ucd94\uac00\n \n \n Edit Peer\n \uc0c1\ub300\ubc29 \ud3b8\uc9d1\n \n \n Delete Peer\n \uc0c1\ub300\ubc29 \uc0ad\uc81c\n \n \n Leader\n \ub9ac\ub354\n \n \n # Local\n # \ub85c\uceec\n \n \n # Remote\n # \uc6d0\uaca9\n \n \n mirror peer\n \uc0c1\ub300\ubc29 \ubbf8\ub7ec\n \n \n Key\n \ud0a4\n \n \n RBD\n RBD\n \n \n Deep flatten\n \ub525 \ud328\ud134\n \n \n Layering\n \uacc4\uce35\ud654\n \n \n Exclusive lock\n \ubc30\ud0c0\uc801\uc778 \ub77d\n \n \n Object map (requires exclusive-lock)\n \uc624\ud504\uc81d\ud2b8-\ub9f5(\ubc30\ud0c0\uc801\uc778-\ub77d\uc744 \uc694\uad6c\ud55c\ub2e4)\n \n \n Journaling (requires exclusive-lock)\n \uc800\ub110\ub9c1(\ubc30\ud0c1\uc801\uc778-\ub77d\uc744 \uc694\uad6c\ud569\ub2c8\ub2e4.)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD \uc2a4\ub0c5\uc0f7 \ub864\ubc31\n \n \n Rollback\n \ub864\ubc31\n \n \n RBD snapshot\n RBD \uc2a4\ub0c5\uc0f7\n \n \n Deleted At\n \uc0ad\uc81c\ub420 \n \n \n id\n \uc544\uc774\ub514\n \n \n type\n \ud615\ud0dc\n \n \n state\n \uc0c1\ud0dc\n \n \n version\n \ubc84\uc83c\n \n \n Host\n \ud638\uc2a4\ud2b8\n \n \n root\n \ub8e8\ud2b8\n \n \n Rank\n \uc21c\uc704\n \n \n Daemon\n \ub370\ubaac\n \n \n Activity\n \ud65c\ub3d9\n \n \n Dentries\n \ub374\ud2b8\ub9ac\ub4e4\n \n \n Inodes\n \uc544\uc774\ub178\ub4dc\ub4e4\n \n \n Usage\n \uc0ac\uc6a9\ub7c9\n \n \n Standby daemons\n \ub300\uae30 \ub370\ubaac\ub4e4\n \n \n The value can be updated at runtime.\n \uc774 \uac12\uc740 \ub7f0\ud0c0\uc784\uc5d0 \uc5c5\ub370\uc774\ud2b8 \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \ub370\ubaac\ub4e4 / \ud074\ub77c\uc774\uc5b8\ud2b8\ub4e4\uc740 \ubaa8\ub2c8\ud130 \uad6c\uc131 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c\uc774 \uac12\uc744 \uac00\uc838 \uc624\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \'ceph config set ...\'\uc744 \ud1b5\ud574\uc774 \uc635\uc158\uc744 \uc124\uc815\ud558\ub294 \uac83\uc740 \ud5c8\ub77d\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc774 \uc635\uc158\uc740 ceph.conf \ub610\ub294 \uba85\ub839 \uc904\uc744 \ud1b5\ud574 \uad6c\uc131\ud574\uc57c\ud569\ub2c8\ub2e4.\n \n \n Option takes effect only during daemon startup.\n \uc635\uc158\uc740 \ub370\ubaac \uc2dc\uc791 \uc911\uc5d0 \ub9cc \uc801\uc6a9\ub429\ub2c8\ub2e4.\n \n \n Option only affects cluster creation.\n \uc635\uc158\uc740 \ud074\ub7ec\uc2a4\ud130 \uc0dd\uc131\ud560 \ub54c \ub9cc \uc601\ud5a5\uc744 \uc90d\ub2c8\ub2e4.\n \n \n Option only affects daemon creation.\n \uc635\uc158\uc740 \ub370\ubaac \uc0dd\uc131\ud560 \ub54c\ub9cc \uc601\ud5a5\uc744\uc90d\ub2c8\ub2e4.\n \n \n Updated config option \n \n \n \uac31\uc2e0\ub41c \uc124\uc815 \uc635\uc158 \n \n \n \n \n Service\n \uc11c\ube44\uc2a4\n \n \n Current value\n \ud604\uc7ac\uac12\n \n \n Editable\n \ud3b8\uc9d1\uac00\ub2a5\n \n \n Updated options for module "\n ".\n \n \ubaa8\ub4c8\uc744 \uc704\ud574 \uac31\uc2e0\ub41c \uc635\uc158\ub4e4 &quot;\n &quot;.\n \n \n \n Enable\n \uc0ac\uc6a9\uac00\ub2a5\n \n \n Disable\n \uc0ac\uc6a9\ubd88\uac00\n \n \n Reconnecting, please wait ...\n \uc7ac-\uc811\uc18d \uc911, \uae30\ub2e4\ub824 \uc8fc\uc138\uc694...\n \n \n Public Address\n \uacf5\uac1c \uc8fc\uc18c\n \n \n Open Sessions\n \uc5f4\ub9b0 \uc138\uc158\ub4e4\n \n \n No In\n \ub4e4\uc5b4\uc62c \uc218 \uc5c6\ub294\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \uc774\uc804\uc5d0 \ub9c8\ud06c \uc544\uc6c3 \ub41c OSD\ub294 \uc2dc\uc791\uc2dc \ub2e4\uc2dc \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n No Out\n \ub098\uac08 \uc218 \uc5c6\ub294\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD\ub4e4\uc740 \uad6c\uc131\ub41c \uac04\uaca9 \ud6c4\uc5d0\ub294 \uc790\ub3d9\uc73c\ub85c \ud45c\uc2dc\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n No Up\n \uc0b4\uc544\ub098\uc9c0 \uc54a\ub294\n \n \n OSDs are not allowed to start\n OSD\ub294 \uc2dc\uc791\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n No Down\n \uc8fd\uc77c \uc218 \uc5c6\ub294\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n \ubaa8\ub2c8\ud130\uac00 OSD\ub4e4\uc758 \ub2e4\uc6b4\uc744 \ud45c\uc2dc\ud558\uc9c0 \uc54a\ub3c4\ub85d OSD \uc7a5\uc560 \ubcf4\uace0\uc11c\uac00 \ubb34\uc2dc\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Pause\n \uba48\ucd9c\n \n \n Pauses reads and writes\n \uc77d\uae30\uc640 \uc4f0\uae30\ub97c \uba48\ucda4\n \n \n No Scrub\n \uc2a4\ud06c\ub7ec\ube59 \uc54a\ub428\n \n \n Scrubbing is disabled\n \uc2a4\ud06c\ub7ec\ube59\uc774 \ube44\ud65c\uc131\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n No Deep Scrub\n \ub525 \uc2a4\ud06c\ub7fd \uc548\ub428\n \n \n Deep Scrubbing is disabled\n \ub525 \uc2a4\ud06c\ub7ec\ube59\uc774 \ube44\ud65c\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n No Backfill\n \ubc31\ud544 \uc5c6\uc74c\n \n \n Backfilling of PGs is suspended\n PG\ub4e4\uc758 \ubc31\ud544\uc774 \uc77c\uc2dc\uc911\uc9c0 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n No Recover\n \ubcf5\uad6c \uc54a\ub428\n \n \n Recovery of PGs is suspended\n PG\ub4e4\uc758 \ubcf5\uad6c\uac00 \uc77c\uc2dc\uc911\uc9c0 \ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n Bitwise Sort\n \ube44\ud2b8\ub2e8\uc704 \uc815\ub82c\n \n \n Use bitwise sort\n \ube44\ud2b8\ub2e8\uc704 \uc815\ub82c\uc744 \uc0ac\uc6a9\ud558\uc138\uc694\n \n \n Purged Snapdirs\n \uc644\uc804\uc0ad\uc81c\ub41c \uc2a4\ub0c5\ub514\ub809\ud1a0\ub9ac\ub4e4\n \n \n OSDs have converted snapsets\n OSD\ub4e4\uc774 \ubcc0\ud654\ub41c \uc2a4\ub0c5\uc14b\uc744 \uac00\uc9c0\uace0 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Recovery Deletes\n \uc0ad\uc81c\ub41c \ubcf5\uad6c\ub4e4\n \n \n Deletes performed during recovery instead of peering\n \ud53c\uc5b4\ub9c1 \ub300\uc2e0 \ubcf5\uad6c \uc911\uc5d0 \uc218\ud589\ub41c \uc0ad\uc81c\ubb3c\ub4e4\n \n \n PG Log Hard Limit\n PG \ub85c\uadf8 \ud558\ub4dc \ud55c\uacc4\n \n \n Puts a hard limit on pg log length\n pg \ub85c\uadf8 \uae38\uc774\uc5d0 \ud558\ub4dc \ud55c\uacc4\ub97c \ub123\uc73c\uc138\uc694\n \n \n Updated OSD Flags\n \uac31\uc2e0\ub41c OSD \ud50c\ub798\uadf8\ub4e4\n \n \n out\n \uc544\uc6c3\n \n \n in\n \uc778\n \n \n down\n \ub2e4\uc6b4\n \n \n Mark\n \ud45c\uc2dc\n \n \n OSD lost\n OSD \uc190\uc2e4\n \n \n marked lost\n \uc190\uc2e4 \ud45c\uc2dc\n \n \n Purge\n \uc644\uc804\uc81c\uac70\n \n \n OSD\n OSD\n \n \n purged\n \uc644\uc804\uc81c\uac70\ub41c\n \n \n destroy\n \ud30c\uad34\ub428\n \n \n destroyed\n \ud30c\uad34\ub41c\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n \ud30c\uad34\ub428\n \n \n Read bytes\n \uc77d\uc740 \ubc14\uc774\ud2b8\ub4e4\n \n \n Writes bytes\n \uc4f0\uae30\ub41c \ubc14\uc774\ud2b8\ub4e4\n \n \n Read ops\n \uc77d\uae30 ops\n \n \n Write ops\n \uc4f0\uae30 ops\n \n \n Mark OSD \n \n \n \ud45c\uc2dc\ub41c OSD \n \n \n \n \n Mark \n \n \n \ud45c\uc2dc\ub41c \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \ucd5c\ub300 \ubc31\ud544\ub4e4\n \n \n Recovery Max Active\n \ucd5c\ub300 \ud65c\uc131\ud654\ub97c \ubcf5\uad6c\ud558\uae30\n \n \n Recovery Max Single Start\n \ucd5c\ub300 \ub2e8\uc77c \uc2dc\uc791\uc744 \ubcf5\uad6c\ud558\uae30\n \n \n Recovery Sleep\n \uc7a0\uc790\uae30\ub97c \ubcf5\uad6c\ud558\uae30\n \n \n Custom\n \ucee4\uc2a4\ud140\n \n \n Updated OSD recovery speed priority "\n "\n \n \uac31\uc2e0\ub41c OSD \ubcf5\uad6c \uc18d\ub3c4 \uc6b0\uc120\uc21c\uc704 &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n \uc740 \ub2e4\uc74c\uc758 OSD\ub4e4 \uc548\uc5d0 \ucd08\uae30\ud654\ub428: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \uc77c\n \n \n Severity\n \uc2ec\uac01\ub3c4\n \n \n Started\n \uc2dc\uc791\ub41c\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \uac31\uc2e0\ub41c\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \uc0ac\uc6a9\ub41c\n \n \n Avail.\n \uc774\uc6a9\uac00\ub2a5:\n \n \n Clean\n \uae68\ub057\ud55c\n \n \n Working\n \uc815\uc0c1\ub3d9\uc791\uc911\n \n \n Warning\n \uacbd\uace0\n \n \n Unknown\n \uc54c\ub824\uc9c0\uc9c0 \uc54a\uc740\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \uc815\uc0c1\n \n \n no filesystems\n \ud30c\uc77c\uc2dc\uc2a4\ud15c\ub4e4 \uc5c6\uc74c\n \n \n active\n \ud65c\uc131\ud654\ub41c\n \n \n standby\n \ub300\uae30\uc911\uc778\n \n \n n/a\n \uc774\uc6a9\ubd88\uac00\n \n \n active daemon\n \ud65c\uc131\ud654\ub41c \ub370\ubaac\ub4e4\n \n \n quorum\n \uc815\uc871\uc218\n \n \n The NFS Ganesha service is not configured.\n NFS Ganesha \uc11c\ube44\uc2a4\uac00 \uc124\uc815\ub418\uc9c0 \uc54a\uc74c\n \n \n Transport\n \uc804\uc1a1\n \n \n CephFS User\n CephFS \uc0ac\uc6a9\uc790\n \n \n CephFS Filesystem\n CephFS \ud30c\uc77c\uc2dc\uc2a4\ud15c\n \n \n (inherited from global config)\n (\uc804\uc5ed \uad6c\uc131\uc5d0\uc11c \uc0c1\uc18d)\n \n \n inherited from global config\n \uc804\uc5ed \uad6c\uc131\uc5d0\uc11c \uc0c1\uc18d\n \n \n -- Select what kind of user id squashing is performed --\n - \uc5b4\ub5a4 \uc885\ub958\uc758 \uc0ac\uc6a9\uc790 ID \uc2a4\ucffc\uc2dc\uac00 \uc218\ud589\ub418\ub294\uc9c0 \uc120\ud0dd -\n \n \n There are no daemons available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \ub370\ubaac\uc774 \uc5c6\uc74d\ub2c8\ub2e4.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \uce90\uc26c\ubaa8\ub4dc\n \n \n Min Evict Age\n \ucd5c\uc18c \ud1f4\uac70 \uc5f0\ub839\n \n \n Min Flush Age\n \ucd5c\uc18c \ud50c\ub7ec\uc2dc \uc5f0\ub839\n \n \n Target Max Bytes\n \ubaa9\ud45c \ucd5c\ub300 \ubc14\uc774\ud2b8\ub4e4\n \n \n Target Max Objects\n \ubaa9\ud45c \ucd5c\ub300 \uc624\ube0c\uc81d\ud2b8\ub4e4\n \n \n No applications added\n \ucd94\uac00\ub41c \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \uc5c6\uc74c\n \n \n Applications limit reached\n \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ud55c\uacc4\uc5d0 \ub3c4\ub2ec\ud568\n \n \n A pool can only have up to four applications definitions.\n \ud558\ub098\uc758 \ud480\uc740 \uc624\uc9c1 \ub124\uac1c\uc758 \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \uc815\uc758\ub4e4\uc744 \uac00\uc9c8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \'_a-zA-Z0-9\' \ubb38\uc790\ub4e4\ub9cc \ud5c8\ub77d\ub428\n \n \n Maximum length is 128 characters\n \ucd5c\ub300 \uae38\uc774\ub294 128\uae00\uc790\uc774\ub2e4.\n \n \n Filter or add applications\n \ud544\ud130 \ub610\ub294 \ucd94\uac00\ub41c \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8\ub4e4\n \n \n Add application\n \uc751\uc6a9\ud504\ub85c\uadf8\ub7a8 \ucd94\uac00\n \n \n pool\n pool\n \n \n erasure code profile\n Erasure \ucf54\ub4dc \ud504\ub85c\ud30c\uc77c\n \n \n Replica Size\n \ubcf5\uc81c \ud06c\uae30\n \n \n Last Change\n \ub9c8\uc9c0\ub9c9 \ubcc0\uacbd\n \n \n Erasure Coded Profile\n Erasure \ucf54\ub4dc\ud654\ub41c \ud504\ub85c\ud30c\uc77c\n \n \n Crush Ruleset\n \ud06c\ub7ec\uc26c \ub8f0\uc14b\n \n \n Write bytes\n \uc4f0\uc5ec\uc9c4 \ubc14\uc774\ud2b8\ub4e4\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \ubc84\ud0b7\n \n \n Updated Object Gateway bucket "\n "\n \n \uac31\uc2e0\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc5b4 \ubc84\ud0b7 &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n \uc0dd\uc131\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \ubc84\ud0b7 &quot;\n &quot;\n \n \n \n buckets\n \ubc84\ud0b7\ub4e4\n \n \n capability\n capability\n \n \n user\n \uc0ac\uc6a9\uc790\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \uac31\uc2e0\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n \uc0dd\uc131\ub41c \uc624\ube0c\uc81d\ud2b8 \uac8c\uc774\ud2b8\uc6e8\uc774 \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n users\n \uc0ac\uc6a9\uc790\ub4e4\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \ubc94\uc704\n \n \n Read\n \uc77d\uae30\n \n \n Create\n \ub9cc\ub4e4\uae30\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \uc0dd\uc131\ub41c \ub864 \'\n \'\n \n \n \n Updated role \'\n \'\n \n \uac31\uc2e0\ub41c \ub864 \'\n \'\n \n \n \n System Role\n \uc2dc\uc2a4\ud15c \ub864\n \n \n Deleted role \'\n \'\n \n \uc0ad\uc81c\ub41c \ub864 \'\n \'\n \n \n \n Created user "\n "\n \n \uc0dd\uc131\ub41c \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Update user\n \uac31\uc2e0\ub41c \uc0ac\uc6a9\uc790\n \n \n Continue\n \uacc4\uc18d\n \n \n You were automatically logged out because your roles have been changed.\n \ub2f9\uc2e0\uc758 \ub864\ub4e4\uc774 \ubcc0\uacbd\ub418\uc5b4 \ub2f9\uc2e0\uc740 \uc790\ub3d9\uc801\uc73c\ub85c \ub85c\uadf8\uc544\uc6c3\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n Updated user "\n "\n \n \uac31\uc2e0\ub41c \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n \uc0ad\uc81c\ub41c \uc0ac\uc6a9\uc790 &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n \uc0ac\uc6a9\uc790 \uc0ad\uc81c\uac00 \uc2e4\ud3d0\ub41c &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n \ub2f9\uc2e0\uc740 \ud604\uc7ac &quot;\n &quot; \ub85c \ub85c\uadf8\uc778\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \uac01\uac01\uc758 \uc624\ube0c\uc81d\ud2b8\ub4e4\uc740 \ub370\uc774\ud0c0-\uccad\ud06c \ubd80\ubd84\ub4e4\ub85c \ubd84\ub9ac\ub418\uc5b4, \uac01\uae30 \ub2e4\ub978 OSD\uc5d0 \ubcf4\uad00\ub429\ub2c8\ub2e4.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \uac01 \uc624\ube0c\uc81d\ud2b8\ub4e4\uc5d0 \ub300\ud55c \ucf54\ub529 \uccad\ud06c\ub97c \uacc4\uc0b0\ud558\uace0 \uc11c\ub85c \ub2e4\ub978 OSD\uc5d0 \uc800\uc7a5\ud569\ub2c8\ub2e4. \n\ucf54\ub529\ub41c \uccad\ud06c\uc758 \uc218\ub294 \ub370\uc774\ud130 \uc190\uc2e4\uc5c6\uc774 \uc791\ub3d9\uc911\uc9c0 \ub418\uc5b4 \uc9c8 \uc218\uc788\ub294 OSD\uc758 \uc22b\uc790\uc774\uae30\ub3c4\ud569\ub2c8\ub2e4.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Jerasure \ud50c\ub7ec\uadf8\uc778\uc740 \uac00\uc7a5 \uc77c\ubc18\uc801\uc774\uace0 \uc720\uc5f0\ud55c \ud50c\ub7ec\uadf8\uc778\uc73c\ub85c,\n\ub610\ud55c Ceph erasure \ucf54\ub4dc \ud480\uc758 \uae30\ubcf8\uac12\uc774\uae30\ub3c4\ud569\ub2c8\ub2e4.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n \ubcf4\ub2e4 \uc720\uc5f0\ud55c \uae30\uc220\uc740 reed_sol_van\uc785\ub2c8\ub2e4 : k\uc640 m\uc744 \uc124\uc815\ud558\uba74 \ucda9\ubd84\ud569\ub2c8\ub2e4. \ncauchy_good \uae30\uc220\uc740 \ube60\ub97c \uc218 \uc788\uc9c0\ub9cc \ud328\ud0b7\ud06c\uae30\ub97c \uc8fc\uc758\uae4a\uac8c \uc120\ud0dd\ud574\uc57c\ud569\ub2c8\ub2e4. \nreed_sol_r6_op, liberation, blaum_roth, liber8tion\uc740 \ubaa8\ub450 m = 2\ub85c\ub9cc \uad6c\uc131 \ud560 \uc218 \uc788\ub2e4\ub294 \uc810\uc5d0\uc11c RAID-6\uc5d0 \ud574\ub2f9\ud569\ub2c8\ub2e4.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \uc778\ucf54\ub529\uc740 \ud55c\ubc88\uc5d0 \ubc14\uc774\ud2b8\ub4e4 \ud06c\uae30\uc758 \ud328\ud0b7\uc5d0 \ub300\ud574 \uc218\ud589\ub429\ub2c8\ub2e4. \uc62c\ubc14\ub978 \ud328\ud0b7 \ud06c\uae30\ub97c \uc120\ud0dd\ud558\ub294 \uac83\uc740 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. jerasure \ubb38\uc11c\uc5d0\ub294\uc774 \uc8fc\uc81c\uc5d0 \ub300\ud55c \uad11\ubc94\uc704\ud55c \uc815\ubcf4\uac00 \ub4e4\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n jerasure \ud50c\ub7ec\uadf8\uc778\uc744 \uc0ac\uc6a9\ud558\uba74 \uc0ad\uc81c \ub41c \ucf54\ub529 \ub41c \uac1d\uccb4\uac00 \uc5ec\ub7ec OSD\uc5d0 \uc800\uc7a5 \ub420 \ub54c \ud558\ub098\uc758 OSD\uac00 \uc190\uc2e4\ub418\ub294 \uac83\uc744 \ubcf5\uad6c\ud558\ub824\uba74 \ub2e4\ub978 \ubaa8\ub4e0 OSD\ub97c \uc77d\uc5b4\uc57c\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 jerasure\uac00 k = 8 \ubc0f m = 4\ub85c \uad6c\uc131\ub418\uc5b4\uc788\ub294 \uacbd\uc6b0 \ud558\ub098\uc758 OSD\ub97c \uc783\uc5b4 \ubc84\ub9ac\uba74 11 \uba85\uc758 \ub2e4\ub978 \uc0ac\ub78c\ub4e4\uc774 \uc218\ub9ac\ud574\uc57c\ud569\ub2c8\ub2e4.\nlrc erasure code plugin\uc740 \uc801\uc740 \uc591\uc758 OSD\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubcf5\uad6c \ud560 \uc218 \uc788\ub3c4\ub85d \ub85c\uceec \ud328\ub9ac\ud2f0 \uccad\ud06c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, lrc\uac00 k = 8, m = 4 \ubc0f l = 4\ub85c \uad6c\uc131\ub41c \uacbd\uc6b0 4 \uac1c\uc758 OSD\ub9c8\ub2e4 \ucd94\uac00 \ud328\ub9ac\ud2f0 \ub369\uc5b4\ub9ac\uac00 \uc0dd\uc131\ub429\ub2c8\ub2e4. \ub2e8\uc77c OSD\uac00 \uc190\uc2e4\ub418\uba74 11 \uac1c \ub300\uc2e0 4 \uac1c\uc758 OSD\ub9cc\uc73c\ub85c \ubcf5\uad6c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \ucf54\ub529 \ubc0f \ub370\uc774\ud130 \uccad\ud06c\ub97c \ud06c\uae30 \uc9c0\uc5ed \uc9d1\ud569\uc73c\ub85c \uadf8\ub8f9\ud654\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, k = 4 \ubc0f m = 2\uc5d0 \ub300\ud574, \uc9c0\uc5ed\uc131 = 3 \uc77c \ub54c \ub450 \uac1c\uc758 \uc138 \uadf8\ub8f9\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4. \uac01 \uc138\ud2b8\ub294 \ub2e4\ub978 \uc138\ud2b8\uc758 \uccad\ud06c\ub97c \uc77d\uc9c0 \uc54a\uace0\ub3c4 \ubcf5\uad6c \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n l\ub85c \uc815\uc758 \ub41c \uac01 \uccad\ud06c \uc9d1\ud569\uc774 \uc800\uc7a5\ub418\ub294 \ud06c\ub7ec\uc2dc \ubc84\ud0b7\uc758 \uc720\ud615\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub799\uc73c\ub85c \uc124\uc815\ud558\uba74 l \uac1c\uc758 \uccad\ud06c \uadf8\ub8f9\uc774 \uac01\uac01 \ub2e4\ub978 \ub799\uc5d0 \ubc30\uce58\ub429\ub2c8\ub2e4. \n\ub799 \uc120\ud0dd \ub2e8\uacc4\uc640 \uac19\uc740 CRUSH \uaddc\uce59 \ub2e8\uacc4\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc124\uc815\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc73c\uba74, \uadf8\ub7ec\ud55c \uadf8\ub8f9\ud654\uac00 \uc218\ud589\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa \ud50c\ub7ec\uadf8\uc778\uc740 ISA \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucea1\uc290\ud654\ud569\ub2c8\ub2e4. \uc778\ud154 \ud504\ub85c\uc138\uc11c\uc5d0\uc11c\ub9cc \uc2e4\ud589\ub429\ub2c8\ub2e4.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA \ud50c\ub7ec\uadf8\uc778\uc740 \ub450 \uac1c\uc758 \ub9ac\ub4dc \uc194\ub85c\ubaac \ud615\uc2dd\uc73c\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4.\nreed_sol_van\uc774 \uc124\uc815\ub418\uba74 Vandermonde, cauchy\uac00 \uc124\uc815\ub418\uba74 Cauchy\uc785\ub2c8\ub2e4.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec plugin\uc740 \ub2e4\uc911 SHEC \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ucea1\uc290\ud654\ud569\ub2c8\ub2e4.\n\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0 ceph\uac00 \ub9ac\ub4dc \uc194\ub85c\ubaac \ucf54\ub4dc\ubcf4\ub2e4 \ub354 \ud6a8\uc728\uc801\uc73c\ub85c \ub370\uc774\ud130\ub97c \ubcf5\uad6c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \uac01 \ub370\uc774\ud130 \uccad\ud06c\uac00 \uacc4\uc0b0 \ubc94\uc704\uc5d0 \ud3ec\ud568\ub418\ub294 \ud328\ub9ac\ud2f0 \uccad\ud06c\uc758 \uc218\uc785\ub2c8\ub2e4. \uc774 \uc218\uce58\ub294 \ub0b4\uad6c\uc131 \uce21\uc815\uae30\ub85c \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, c = 2 \uc778 \uacbd\uc6b0 2 \uac1c\uc758 OSD\uac00 \ub370\uc774\ud130 \uc190\uc2e4\uc5c6\uc774 \uc911\ub2e8 \ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n CRUSH \uaddc\uce59\uc758 \uccab \ubc88\uc9f8 \ub2e8\uacc4\uc5d0 \uc0ac\uc6a9 \ub41c \ud06c\ub7ec\uc2dc \ubc84\ud0b7\uc758 \uc774\ub984\uc785\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 step\uc740 \uae30\ubcf8\uac12\uc744 \ucde8\ud569\ub2c8\ub2e4.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \ub3d9\uc77c\ud55c \uc2e4\ud328 \ub3c4\uba54\uc778\uc744 \uac00\uc9c4 \uc591\ub3d9\uc774\uc5d0 \ub450 \uac1c\uc758 \uccad\ud06c\uac00 \uc5c6\ub294\uc9c0 \ud655\uc778\ud558\uc2ed\uc2dc\uc624. \uc608\ub97c \ub4e4\uc5b4 \uc2e4\ud328 \ub3c4\uba54\uc778\uc774 \ud638\uc2a4\ud2b8 \uc778 \uacbd\uc6b0 \ub450 \uac1c\uc758 \uccad\ud06c\uac00 \ub3d9\uc77c\ud55c \ud638\uc2a4\ud2b8\uc5d0 \uc800\uc7a5\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uc774 \ub2e8\uacc4\ub294 \ub9ac\ud504 \ud638\uc2a4\ud2b8\ub97c \uc120\ud0dd\ud558\ub294 \ub2e8\uacc4\uc640 \uac19\uc740 CRUSH \uaddc\uce59 \ub2e8\uacc4\ub97c \ub9cc\ub4dc\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n CRUSH\uc9c0\ub3c4\uc5d0\uc11c \ud06c\ub798\uc2dc \uc7a5\uce58 \ud074\ub798\uc2a4 \uc774\ub984\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud2b9\uc815 \ud074\ub798\uc2a4 (\uc608 : ssd \ub610\ub294 hdd)\uc758 \uc7a5\uce58\ub85c \ubc30\uce58\ub97c \uc81c\ud55c\ud569\ub2c8\ub2e4.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \uc0ad\uc81c \ucf54\ub4dc \ud50c\ub7ec\uadf8\uc778\uc774\ub85c\ub4dc\ub418\ub294 \ub514\ub809\ud1a0\ub9ac \uc774\ub984\uc744 \uc124\uc815\ud558\uc2ed\uc2dc\uc624.\n \n \n Allows all operations\n \ubaa8\ub4e0 \uc791\uc5c5\ub4e4 \ud5c8\uc6a9\n \n \n Allows only operations that do not modify the server\n \uc624\uc9c1 \uc11c\ubc84\ub97c \uc218\uc815\ud558\uc9c0 \uc54a\ub294 \uc791\uc5c5\ub4e4\ub9cc \uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Does not allow read or write operations, but allows any other operation\n \uc77d\uae30\uc640 \uc4f0\uae30 \uc791\uc5c5\uc740 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc9c0\ub9cc, \uadf8\uc678 \ubaa8\ub4e0 \uc791\uc5c5\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \ud30c\uc77c\uc758 \uc18d\uc131\uacfc \ub514\ub809\ud1a0\ub9ac \ub0b4\uc6a9\uc744 \ubcc0\uacbd\ud558\ub294 \uc77d\uae30, \uc4f0\uae30 \ub610\ub294 \uc5b4\ub5a0\ud55c \uc791\uc5c5\uc740 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n Allows no access at all\n \uc804\ud600 \uc5b4\ub5a0\ud55c \uc811\uadfc\ub3c4 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\n \n \n -- Select the priority --\n -- \uc6b0\uc120\uc21c\uc704 \uc120\ud0dd --\n \n \n Low\n \ub0ae\uc74c\n \n \n High\n \ub192\uc74c\n \n \n Last 5 minutes\n \ub9c8\uc9c0\ub9c9 5\ubd84\n \n \n Last 15 minutes\n \uc9c0\ub09c 15\ubd84\n \n \n Last 30 minutes\n \uc9c0\ub09c 30\ubd84\n \n \n Last 1 hour (Default)\n \uc9c0\ub09c 1\uc2dc\uac04(\uae30\ubcf8)\n \n \n Last 3 hours\n \uc9c0\ub09c 3\uc2dc\uac04\n \n \n Last 6 hours\n \uc9c0\ub09c 6\uc2dc\uac04\n \n \n Last 12 hours\n \uc9c0\ub09c 12\uc2dc\uac04\n \n \n Last 24 hours\n \uc9c0\ub09c 24\uc2dc\uac04\n \n \n Yesterday\n \uc5b4\uc81c\n \n \n Today\n \uc624\ub298\n \n \n Today so far\n \uc624\ub298 \uc9c0\uae08\uae4c\uc9c0\n \n \n Day before yesterday\n \uadf8\uc800\uaed8\n \n \n Last 2 days\n \uc9c0\ub09c 2\uc77c\n \n \n This day last week\n \uc774\ubc88 \uc8fc \ub9c8\uc9c0\ub9c9\ub0a0\n \n \n Previous week\n \uc804\uc8fc\n \n \n This week\n \uc774\ubc88\uc8fc\n \n \n This week so far\n \uc774\ubc88\uc8fc \uc9c0\uae08\uae4c\uc9c0\n \n \n Last 7 days\n \uc9c0\ub09c 7\uc77c\n \n \n Previous month\n \uc9c0\ub09c \ub2ec\n \n \n This month\n \uc774\ubc88 \ub2ec\n \n \n This month so far\n \uc774\ubc88 \ub2ec \uc9c0\uae08\uae4c\uc9c0\n \n \n Last 30 days\n \uc9c0\ub09c 30\uc77c\n \n \n Last 90 days\n \uc9c0\ub09c 90\uc77c\n \n \n Last 6 months\n \uc9c0\ub09c 6\uac1c\uc6d4\n \n \n Last 1 year\n \uc9c0\ub09c 1\ub144\n \n \n Previous year\n \uc804\ub144\ub3c4\n \n \n This year\n \uae08\ub144\ub3c4\n \n \n This year so far\n \uae08\ub144 \uc9c0\uae08\uae4c\uc9c0\n \n \n Last 2 years\n \uc9c0\ub09c 2\ub144\n \n \n Last 5 years\n \uc9c0\ub09c 5\ub144\n \n \n Information\n \uc815\ubcf4\n \n \n No items selected.\n \uc120\ud0dd\ub41c \uc544\uc774\ud15c \uc5c6\uc74c\n \n \n Deselect item to select again\n \ub2e4\uc2dc \uc120\ud0dd\ud558\uae30 \uc704\ud574 \uc544\uc774\ud15c \uc120\ud0dd\uc744 \ucde8\uc18c\n \n \n Selection limit reached\n \uc120\ud0dd \ud55c\uacc4\uc5d0 \ub3c4\ub2ec\ud568\n \n \n Filter tags\n \ud544\ud130 \ud14c\uadf8\ub4e4\n \n \n Add badge\n \ubca0\ucc0c \ucd94\uac00\n \n \n There are no items available.\n \uc0ac\uc6a9\uac00\ub2a5\ud55c \uc544\uc774\ud15c \uc5c6\uc74c\n \n \n Add\n \ucd94\uac00\n \n \n Remove\n Remove\n \n \n Clone\n \ubcf5\uc81c\n \n \n Copy\n \ubcf5\uc0ac\n \n \n Deep Scrub\n \ub525 \uc2a4\ud06c\ub7fd\n \n \n Destroy\n \ud30c\uad34\ub428\n \n \n Flatten\n \ub2e8\uc870\ub85c\uc6c0\n \n \n Mark Down\n \ub2e4\uc6b4 \ud45c\uc2dc\n \n \n Mark In\n \uc778 \ud45c\uc2dc\n \n \n Mark Lost\n \uc190\uc2e4 \ud45c\uc2dc\n \n \n Mark Out\n \uc544\uc6c3 \ud45c\uc2dc\n \n \n Protect\n \ubcf4\ud638\n \n \n Rename\n \uc774\ub984\ubcc0\uacbd\n \n \n Restore\n \ubcf5\uad6c\n \n \n Move to Trash\n \ud734\uc9c0\ud1b5\uc73c\ub85c \uc62e\uae30\uae30\n \n \n Unprotect\n \ubcf4\ud638\uc54a\ub428\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \uc0ad\uc81c\ub3d4\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \ubcf5\uc81c\ub41c\n \n \n Copied\n \ubcf5\uc0ac\ub41c\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \uc608\n \n \n No\n \uc544\ub2c8\uc624\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \uc11c\ube44\uc2a4 \ub7c9\n \n \n BPS Limit\n BPS \ud55c\uacc4\n \n \n The desired limit of IO bytes per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 IO \ubc14\uc774\ud2b8 \uc218 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n IOPS Limit\n IOPS \uc81c\ud55c\n \n \n The desired limit of IO operations per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 IO \uc791\uc5c5 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Read BPS Limit\n \uc77d\uae30 BPS \uc81c\ud55c\n \n \n The desired limit of read bytes per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc77d\uae30 \ubc14\uc774\uc2a4 \uc218 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Read IOPS Limit\n \uc77d\uae30 IOPS \ud55c\ub3c4\n \n \n The desired limit of read operations per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc77d\uae30 \uc791\uc5c5 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Write BPS Limit\n \uc4f0\uae30 BPS \ud55c\ub3c4\n \n \n The desired limit of write bytes per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc4f0\uae30 \ubc14\uc774\ud2b8 \uc218 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n Write IOPS Limit\n \uc4f0\uae30 IOPS \uc81c\ud55c\n \n \n The desired limit of write operations per second.\n \uc6d0\ud558\ub294 \ucd08\ub2f9 \uc4f0\uae30 \uc791\uc5c5 \uc81c\ud55c\uc785\ub2c8\ub2e4.\n \n \n BPS Burst\n BPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of IO bytes.\n \uc6d0\ud558\ub294 \ubc84\uc2a4\ud2b8 IO \ubc14\uc774\ud2b8 \ud55c\ub3c4 \uc785\ub2c8\ub2e4.\n \n \n IOPS Burst\n IOPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of IO operations.\n \uc6d0\ud558\ub294 IO \uc791\uc5c5\uc758 \ubc84\uc2a4\ud2b8 \ud55c\uacc4\uc785\ub2c8\ub2e4.\n \n \n Read BPS Burst\n \uc77d\uae30 BPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of read bytes.\n \uc6d0\ud558\ub294 \uc77d\uae30 \ubc84\uc2a4\ud2b8 \ud55c\uacc4\uc785\ub2c8\ub2e4.\n \n \n Read IOPS Burst\n \uc77d\uae30 IOPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of read operations.\n \uc6d0\ud558\ub294 \uc77d\uae30 \uc791\uc5c5\uc758 \ubc84\uc2a4\ud2b8 \ud55c\ub3c4\uc785\ub2c8\ub2e4.\n \n \n Write BPS Burst\n \uc4f0\uae30 BPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of write bytes.\n \uc4f0\uae30 \ubc14\uc774\ud2b8\uc758 \uc6d0\ud558\ub294 \ubc84\uc2a4\ud2b8 \ud55c\ub3c4.\n \n \n Write IOPS Burst\n \uc4f0\uae30 IOPS \ubc84\uc2a4\ud2b8\n \n \n The desired burst limit of write operations.\n \uc4f0\uae30 \ubc14\uc774\ud2b8\uc758 \uc6d0\ud558\ub294 \ubc84\uc2a4\ud2b8 \ud55c\ub3c4.\n \n \n Failed to \n \n \n \n \n \n \uc758 \uc2e4\ud3d0\n \n \n \n Executing\n \uc218\ud589\uc911\n \n \n execute\n \uc218\ud589\n \n \n Executed\n \uc218\ud589\ub41c\n \n \n unknown task\n \uc54c\ub824\uc9c0\uc9c0 \uc54a\ub294 \uc791\uc5c5\n \n \n Creating\n \uc0dd\uc131\ud558\ub294 \uc911\n \n \n create\n \uc0dd\uc131\n \n \n Updating\n \uac31\uc2e0 \uc911\n \n \n update\n \uac31\uc2e0\n \n \n Deleting\n \uc0ad\uc81c \uc911\n \n \n delete\n \uc0ad\uc81c\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n RBD \uc2a4\ub0c5\uc0bf \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n \ud480 \'\n \' \uc744 \uc704\ud55c \ubbf8\ub7ec\ubaa8\ub4dc\n \n \n \n mirror peer for pool \'\n \'\n \n \ud480 \'\n \' \ubbf8\ub7ec \uc0c1\ub300\ubc29\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \uc774\ub984\uc740 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9\ub418\uc5c8\uc2b5\ub2c8\ub2e4.\n \n \n \n Name is already used by \n .\n \n \uc774\ub984\uc740 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n \n Name is already used by \n .\n \n \uc774\ub984\uc774 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n \n \n contains snapshots.\n \n \n \uc774 \ud3ec\ud568\ub41c \uc2a4\ub0c5\uc0bf\ub4e4.\n \n \n \n Cloning\n \ubcf5\uc81c\uc911\n \n \n clone\n \ubcf5\uc81c\n \n \n Snapshot of \n must be protected.\n \n \ubc18\ub4dc\uc2dc\n \uc758 \uc2a4\ub0c5\uc0bf\uc740 \ubcf4\ud638\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.\n \n \n \n Copying\n \ubcf5\uc0ac\uc911\n \n \n copy\n \ubcf5\uc0ac\n \n \n Flattening\n \ud3c9\ud3c9\ud558\uac8c \ud558\ub294 \uc911\n \n \n flatten\n \ud3c9\ud3c9\ud568\n \n \n Flattened\n \ud3c9\ud3c9\ud558\uac8c \ub428\n \n \n Name is already used by \n .\n \n \uc774\ub984\uc774 \n \uc5d0 \uc758\ud558\uc5ec \uc774\ubbf8 \uc0ac\uc6a9 \uc911.\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \n \uc744 \ubcf4\ud638\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc65c\ub0d0\ud558\uba74 \uadf8\uac83\uc740 \uc790\uc2dd \uc774\ubbf8\uc9c0\ub4e4\uc744 \ud3ec\ud568\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4,\n \n \n \n Cannot delete \n because it\'s protected.\n \n \n \uc744 \uc0ad\uc81c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc65c\ub0d0\ud558\uba74 \uadf8\uac83\uc740 \ubcf4\ud638\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.\n \n \n \n Rolling back\n \ub864\ubc31 \uc911\n \n \n rollback\n \ub864\ubc31\n \n \n Rolled back\n \ub864\ubc31\ub428\n \n \n Moving\n \uc62e\uae30\ub294 \uc911\n \n \n move\n \uc62e\uae30\uae30\n \n \n Moved\n \uc62e\uaca8\uc9d0\n \n \n image \'\n \' to trash\n \n \uc774\ubbf8\uc9c0 \'\n \' \ubc84\ub9ac\uae30\n \n \n \n Could not find image.\n \uc774\ubbf8\uc9c0\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n Restoring\n \ubcf5\uad6c\uc911\n \n \n restore\n \ubcf5\uad6c\n \n \n Restored\n \ubcf5\uad6c\ub428\n \n \n image \'\n \' into \'\n \'\n \n \uc774\ubbf8\uc9c0 \'\n \' \uc744 \'\n \' \ub85c\n \n \n \n Image name \'\n \' is already in use.\n \n \uc774\ubbf8\uc9c0 \uc774\ub984 \'\n \' \uc774 \uc774\ubbf8 \uc0ac\uc6a9\uc911\uc785\ub2c8\ub2e4.\n \n \n \n image \'\n \'\n \n \uc774\ubbf8\uc9c0 \'\n \'\n \n \n \n Purging\n \uc644\uc804\uc0ad\uc81c \uc911\n \n \n purge\n \uc644\uc804\uc0ad\uc81c\n \n \n Purged\n \uc644\uc804\uc0ad\uc81c\ub428\n \n \n all pools\n \ubaa8\ub4e0 \ud480\ub4e4\n \n \n images from \n \n \n \n \ub85c \ubd80\ud130\uc758 \uc774\ubbf8\uc9c0\ub4e4\n \n \n \n Cannot disable mirroring because it contains a peer.\n \ud53c\uc5b4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 \ubbf8\ub7ec\ub9c1\uc744 \ube44\ud65c\uc131\ud654 \ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.\n \n \n pool \'\n \'\n \n \ud480 \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n Erasure \ucf54\ub4dc \ud504\ub85c\ud30c\uc77c \'\n \'\n \n \n \n target \'\n \'\n \n \ud0c0\uae43 \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},QC43:function(t,e,n){"use strict";var a=n("CcnG"),r=n("MdoF"),i=n("lTVp");n("XFyV"),n.d(e,"a",function(){return s}),n.d(e,"b",function(){return o});var s=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"alert",[["type","info"]],null,null,null,r.c,r.b)),a["\u0275did"](1,114688,null,0,i.a,[i.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["\u0275eld"](2,0,null,0,1,"strong",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-spinner fa-spin fa-fw"]],null,null,null,null,null)),a["\u0275ncd"](0,0)],function(t,e){t(e,1,0,"info")},null)}},QFaf:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(e,n,a){var r=t.call(this,e,n,a)||this;return r.controls=e,r}return a.__extends(e,t),e.prototype.get=function(t){var e=this._get(t);if(!e)throw new Error("Control '"+t+"' could not be found!");return e},e.prototype._get=function(n){return t.prototype.get.call(this,n)||Object.values(this.controls).filter(function(t){return t.get}).map(function(t){return t instanceof e?t._get(n):t.get(n)}).find(function(t){return Boolean(t)})},e.prototype.getValue=function(t){return this.get(t).value},e.prototype.silentSet=function(t,e){this.get(t).setValue(e,{emitEvent:!1})},e.prototype.showError=function(t,e,n){var a=this.get(t);return(e.submitted||a.dirty)&&(n?a.hasError(n):a.invalid)},e}(n("gIcY").k)},QG5k:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeMenuItemAction=function(t){return t[t.NewFolder=0]="NewFolder",t[t.NewTag=1]="NewTag",t[t.Rename=2]="Rename",t[t.Remove=3]="Remove",t[t.Custom=4]="Custom",t}(e.NodeMenuItemAction||{}),e.NodeMenuAction=function(t){return t[t.Close=0]="Close",t}(e.NodeMenuAction||{})},QGcS:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeDraggableEvent=function(){return function(t,e){this.captured=t,this.target=e}}()},QHrR:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("Y0Co")),a(n("Lwhh")),a(n("8iEZ")),a(n("L5sC"))},QTAa:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e}(n("t/zF").a)},Qexa:function(t,e,n){"use strict";t.exports=function(t){t.Bubble=function(e,n){return n.type="bubble",new t(e,n)}}},Qgas:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("dC0D"),r=n("AxiF"),i=n("HJBe"),s=n("y3By");function o(t,e){return arguments.length>=2?function(n){return Object(s.a)(Object(a.a)(t,e),Object(r.a)(1),Object(i.a)(e))(n)}:function(e){return Object(s.a)(Object(a.a)(function(e,n,a){return t(e,n,a+1)}),Object(r.a)(1))(e)}}},Qj4J:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}()},"R+r5":function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("Qgas");function r(t,e,n){return 0===n?[e]:(t.push(e),t)}function i(){return Object(a.a)(r,[])}},RAwQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return e?r[n][0]:r[n][1]}function a(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10;return a(0===e?t/10:e)}if(t<1e4){for(;t>=10;)t/=10;return a(t)}return a(t/=1e3)}n("wd/R").defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(t){return a(t.substr(0,t.indexOf(" ")))?"a "+t:"an "+t},past:function(t){return a(t.substr(0,t.indexOf(" ")))?"viru "+t:"virun "+t},s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d M\xe9int",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},RCHg:function(t,e,n){"use strict";var a=n("wd/R");a="function"==typeof a?a:window.moment;var r=n("CDJp"),i=n("RDha"),s=n("cdu6"),o=n("tjFV"),u=Number.MIN_SAFE_INTEGER||-9007199254740991,c=Number.MAX_SAFE_INTEGER||9007199254740991,l={millisecond:{common:!0,size:1,steps:[1,2,5,10,20,50,100,250,500]},second:{common:!0,size:1e3,steps:[1,2,5,10,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,30]},hour:{common:!0,size:36e5,steps:[1,2,3,6,12]},day:{common:!0,size:864e5,steps:[1,2,5]},week:{common:!1,size:6048e5,steps:[1,2,3,4]},month:{common:!0,size:2628e6,steps:[1,2,3]},quarter:{common:!1,size:7884e6,steps:[1,2,3,4]},year:{common:!0,size:3154e7}},d=Object.keys(l);function f(t,e){return t-e}function p(t){var e,n,a,r={},i=[];for(e=0,n=t.length;e=0&&s<=o;){if(i=t[a=s+o>>1],!(r=t[a-1]||null))return{lo:null,hi:i};if(i[e]n))return{lo:r,hi:i};o=a-1}}return{lo:i,hi:null}}(t,e,n),i=r.lo?r.hi?r.lo:t[t.length-2]:t[0],s=r.lo?r.hi?r.hi:t[t.length-1]:t[1],o=s[e]-i[e];return i[a]+(s[a]-i[a])*(o?(n-i[e])/o:0)}function g(t,e){var n=e.parser,r=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof r?a(t,r):(t instanceof a||(t=a(t)),t.isValid()?t:"function"==typeof r?r(t):t)}function b(t,e){if(i.isNullOrUndef(t))return null;var n=e.options.time,a=g(e.getRightValue(t),n);return a.isValid()?(n.round&&a.startOf(n.round),a.valueOf()):null}function m(t){for(var e=d.indexOf(t)+1,n=d.length;e=s&&n<=o&&y.push(n);return r.min=s,r.max=o,r._unit=f.unit||function(t,e,n,i){var s,o,u=a.duration(a(r.max).diff(a(n)));for(s=d.length-1;s>=d.indexOf(e);s--)if(l[o=d[s]].common&&u.as(o)>=t.length)return o;return d[e?d.indexOf(e):0]}(y,f.minUnit,r.min),r._majorUnit=m(r._unit),r._table=function(t,e,n,a){if("linear"===u.distribution||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var r,i,s,o,c,l=[],d=[e];for(r=0,i=t.length;re&&o1?e[1]:a,"pos")-h(t,"time",i,"pos"))/2),r.time.max||(i=e.length>1?e[e.length-2]:n,o=(h(t,"time",e[e.length-1],"pos")-h(t,"time",i,"pos"))/2)),{left:s,right:o}}(r._table,y,s,o,u),r._labelFormat=function(t,e){var n,a,r,i=t.length;for(n=0;n=0&&t0?o:1}});o.registerScaleType("time",t,{position:"bottom",distribution:"linear",bounds:"data",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}})}},RDha:function(t,e,n){"use strict";t.exports=n("TC34"),t.exports.easing=n("u0Op"),t.exports.canvas=n("Sfow"),t.exports.options=n("As3K")},RnPR:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Keys=function(t){return t[t.up=38]="up",t[t.down=40]="down",t[t.return=13]="return",t[t.escape=27]="escape",t[t.left=37]="left",t[t.right=39]="right",t}(e.Keys||{})},RnhZ:function(t,e,n){var a={"./af":"K/tc","./af.js":"K/tc","./ar":"jnO4","./ar-dz":"o1bE","./ar-dz.js":"o1bE","./ar-kw":"Qj4J","./ar-kw.js":"Qj4J","./ar-ly":"HP3h","./ar-ly.js":"HP3h","./ar-ma":"CoRJ","./ar-ma.js":"CoRJ","./ar-sa":"gjCT","./ar-sa.js":"gjCT","./ar-tn":"bYM6","./ar-tn.js":"bYM6","./ar.js":"jnO4","./az":"SFxW","./az.js":"SFxW","./be":"H8ED","./be.js":"H8ED","./bg":"hKrs","./bg.js":"hKrs","./bm":"p/rL","./bm.js":"p/rL","./bn":"kEOa","./bn.js":"kEOa","./bo":"0mo+","./bo.js":"0mo+","./br":"aIdf","./br.js":"aIdf","./bs":"JVSJ","./bs.js":"JVSJ","./ca":"1xZ4","./ca.js":"1xZ4","./cs":"PA2r","./cs.js":"PA2r","./cv":"A+xa","./cv.js":"A+xa","./cy":"l5ep","./cy.js":"l5ep","./da":"DxQv","./da.js":"DxQv","./de":"tGlX","./de-at":"s+uk","./de-at.js":"s+uk","./de-ch":"u3GI","./de-ch.js":"u3GI","./de.js":"tGlX","./dv":"WYrj","./dv.js":"WYrj","./el":"jUeY","./el.js":"jUeY","./en-SG":"zavE","./en-SG.js":"zavE","./en-au":"Dmvi","./en-au.js":"Dmvi","./en-ca":"OIYi","./en-ca.js":"OIYi","./en-gb":"Oaa7","./en-gb.js":"Oaa7","./en-ie":"4dOw","./en-ie.js":"4dOw","./en-il":"czMo","./en-il.js":"czMo","./en-nz":"b1Dy","./en-nz.js":"b1Dy","./eo":"Zduo","./eo.js":"Zduo","./es":"iYuL","./es-do":"CjzT","./es-do.js":"CjzT","./es-us":"Vclq","./es-us.js":"Vclq","./es.js":"iYuL","./et":"7BjC","./et.js":"7BjC","./eu":"D/JM","./eu.js":"D/JM","./fa":"jfSC","./fa.js":"jfSC","./fi":"gekB","./fi.js":"gekB","./fo":"ByF4","./fo.js":"ByF4","./fr":"nyYc","./fr-ca":"2fjn","./fr-ca.js":"2fjn","./fr-ch":"Dkky","./fr-ch.js":"Dkky","./fr.js":"nyYc","./fy":"cRix","./fy.js":"cRix","./ga":"USCx","./ga.js":"USCx","./gd":"9rRi","./gd.js":"9rRi","./gl":"iEDd","./gl.js":"iEDd","./gom-latn":"DKr+","./gom-latn.js":"DKr+","./gu":"4MV3","./gu.js":"4MV3","./he":"x6pH","./he.js":"x6pH","./hi":"3E1r","./hi.js":"3E1r","./hr":"S6ln","./hr.js":"S6ln","./hu":"WxRl","./hu.js":"WxRl","./hy-am":"1rYy","./hy-am.js":"1rYy","./id":"UDhR","./id.js":"UDhR","./is":"BVg3","./is.js":"BVg3","./it":"bpih","./it-ch":"bxKX","./it-ch.js":"bxKX","./it.js":"bpih","./ja":"B55N","./ja.js":"B55N","./jv":"tUCv","./jv.js":"tUCv","./ka":"IBtZ","./ka.js":"IBtZ","./kk":"bXm7","./kk.js":"bXm7","./km":"6B0Y","./km.js":"6B0Y","./kn":"PpIw","./kn.js":"PpIw","./ko":"Ivi+","./ko.js":"Ivi+","./ku":"JCF/","./ku.js":"JCF/","./ky":"lgnt","./ky.js":"lgnt","./lb":"RAwQ","./lb.js":"RAwQ","./lo":"sp3z","./lo.js":"sp3z","./lt":"JvlW","./lt.js":"JvlW","./lv":"uXwI","./lv.js":"uXwI","./me":"KTz0","./me.js":"KTz0","./mi":"aIsn","./mi.js":"aIsn","./mk":"aQkU","./mk.js":"aQkU","./ml":"AvvY","./ml.js":"AvvY","./mn":"lYtQ","./mn.js":"lYtQ","./mr":"Ob0Z","./mr.js":"Ob0Z","./ms":"6+QB","./ms-my":"ZAMP","./ms-my.js":"ZAMP","./ms.js":"6+QB","./mt":"G0Uy","./mt.js":"G0Uy","./my":"honF","./my.js":"honF","./nb":"bOMt","./nb.js":"bOMt","./ne":"OjkT","./ne.js":"OjkT","./nl":"+s0g","./nl-be":"2ykv","./nl-be.js":"2ykv","./nl.js":"+s0g","./nn":"uEye","./nn.js":"uEye","./pa-in":"8/+R","./pa-in.js":"8/+R","./pl":"jVdC","./pl.js":"jVdC","./pt":"8mBD","./pt-br":"0tRk","./pt-br.js":"0tRk","./pt.js":"8mBD","./ro":"lyxo","./ro.js":"lyxo","./ru":"lXzo","./ru.js":"lXzo","./sd":"Z4QM","./sd.js":"Z4QM","./se":"//9w","./se.js":"//9w","./si":"7aV9","./si.js":"7aV9","./sk":"e+ae","./sk.js":"e+ae","./sl":"gVVK","./sl.js":"gVVK","./sq":"yPMs","./sq.js":"yPMs","./sr":"zx6S","./sr-cyrl":"E+lV","./sr-cyrl.js":"E+lV","./sr.js":"zx6S","./ss":"Ur1D","./ss.js":"Ur1D","./sv":"X709","./sv.js":"X709","./sw":"dNwA","./sw.js":"dNwA","./ta":"PeUW","./ta.js":"PeUW","./te":"XLvN","./te.js":"XLvN","./tet":"V2x9","./tet.js":"V2x9","./tg":"Oxv6","./tg.js":"Oxv6","./th":"EOgW","./th.js":"EOgW","./tl-ph":"Dzi0","./tl-ph.js":"Dzi0","./tlh":"z3Vd","./tlh.js":"z3Vd","./tr":"DoHr","./tr.js":"DoHr","./tzl":"z1FC","./tzl.js":"z1FC","./tzm":"wQk9","./tzm-latn":"tT3J","./tzm-latn.js":"tT3J","./tzm.js":"wQk9","./ug-cn":"YRex","./ug-cn.js":"YRex","./uk":"raLr","./uk.js":"raLr","./ur":"UpQW","./ur.js":"UpQW","./uz":"Loxo","./uz-latn":"AQ68","./uz-latn.js":"AQ68","./uz.js":"Loxo","./vi":"KSF8","./vi.js":"KSF8","./x-pseudo":"/X5v","./x-pseudo.js":"/X5v","./yo":"fzPg","./yo.js":"fzPg","./zh-cn":"XDpg","./zh-cn.js":"XDpg","./zh-hk":"SatO","./zh-hk.js":"SatO","./zh-tw":"kOpN","./zh-tw.js":"kOpN"};function r(t){var e=i(t);return n(e)}function i(t){var e=a[t];if(!(e+1)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return e}r.keys=function(){return Object.keys(a)},r.resolve=i,t.exports=r,r.id="RnhZ"},S1nX:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("xlPZ"),r=n("yGWI"),i=n("K9Ia");function s(){return new i.a}function o(){return function(t){return Object(r.a)()(Object(a.a)(s)(t))}}},"S3/U":function(t,e,n){"use strict";t.exports=function(t){t.Scatter=function(e,n){return n.type="scatter",new t(e,n)}}},S5bw:function(t,e,n){"use strict";n.d(e,"a",function(){return l});var a=n("mrSG"),r=n("K9Ia"),i=n("zo3G"),s=n("pugT"),o=n("mZXl"),u=n("8g8A"),c=n("uMaO"),l=function(t){function e(e,n,a){void 0===e&&(e=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var r=t.call(this)||this;return r.scheduler=a,r._events=[],r._infiniteTimeWindow=!1,r._bufferSize=e<1?1:e,r._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(r._infiniteTimeWindow=!0,r.next=r.nextInfiniteTimeWindow):r.next=r.nextTimeWindow,r}return a.__extends(e,t),e.prototype.nextInfiniteTimeWindow=function(e){var n=this._events;n.push(e),n.length>this._bufferSize&&n.shift(),t.prototype.next.call(this,e)},e.prototype.nextTimeWindow=function(e){this._events.push(new d(this._getNow(),e)),this._trimBufferThenGetEvents(),t.prototype.next.call(this,e)},e.prototype._subscribe=function(t){var e,n=this._infiniteTimeWindow,a=n?this._events:this._trimBufferThenGetEvents(),r=this.scheduler,i=a.length;if(this.closed)throw new u.a;if(this.isStopped||this.hasError?e=s.a.EMPTY:(this.observers.push(t),e=new c.a(this,t)),r&&t.add(t=new o.a(t,r)),n)for(var l=0;le&&(i=Math.max(i,r-e)),i>0&&a.splice(0,i),a},e}(r.a),d=function(){return function(t,e){this.time=t,this.value=e}}()},S6ln:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+(1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi");case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+(1===t?"minuta":2===t||3===t||4===t?"minute":"minuta");case"h":return e?"jedan sat":"jednog sata";case"hh":return a+(1===t?"sat":2===t||3===t||4===t?"sata":"sati");case"dd":return a+(1===t?"dan":"dana");case"MM":return a+(1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci");case"yy":return a+(1===t?"godina":2===t||3===t||4===t?"godine":"godina")}}n("wd/R").defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}()},S7Ns:function(t,e,n){"use strict";t.exports=function(t){t.Doughnut=function(e,n){return n.type="doughnut",new t(e,n)}}},S7zO:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=(n("vCyI"),n("jKX/"),function(){function t(){this.dropDownActions=[]}return t.prototype.ngOnInit=function(){this.removeActionsWithNoPermissions(),this.updateDropDownActions()},t.prototype.toClassName=function(t){return t.replace(/ /g,"-").replace(/[^a-z-]/gi,"").toLowerCase()},t.prototype.removeActionsWithNoPermissions=function(){var t=this;if(this.permission){var e=Object.keys(this.permission).filter(function(e){return t.permission[e]});this.tableActions=this.tableActions.filter(function(t){return e.includes(t.permission)})}else this.tableActions=[]},t.prototype.updateDropDownActions=function(){var t=this;this.dropDownActions=this.tableActions.filter(function(e){return e.visible?e.visible(t.selection):e})},t.prototype.getCurrentButton=function(){var t=this;if(!this.onlyDropDown){var e=this.dropDownActions.find(function(e){return t.showableAction(e)});return!e&&this.dropDownActions.length>0&&(e=this.dropDownActions[0]),e}},t.prototype.showableAction=function(t){var e=t.canBePrimary,n=this.selection.hasSingleSelection,a="create"===t.permission?!n:n;return e&&e(this.selection)||!e&&a},t.prototype.useRouterLink=function(t){if(t.routerLink&&!this.disableSelectionAction(t))return a.isString(t.routerLink)?t.routerLink:t.routerLink()},t.prototype.disableSelectionAction=function(t){var e=t.permission,n=t.disable;if(n)return Boolean(n(this.selection));var a=this.selection.hasSingleSelection&&this.selection.first();return Boolean(["update","delete"].includes(e)&&(!a||a.cdExecuting))},t.prototype.showDropDownActions=function(){return this.updateDropDownActions(),this.dropDownActions.length>1},t.prototype.useClickAction=function(t){return!this.disableSelectionAction(t)&&t.click&&t.click()},t.prototype.useDisableDesc=function(t){return t.disableDesc&&t.disableDesc()},t}())},"SB+Q":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return encodeURIComponent(t)},t}()},SFxW:function(t,e,n){!function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};t.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(t){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(t)},meridiem:function(t,e,n){return t<4?"gec\u0259":t<12?"s\u0259h\u0259r":t<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(t){if(0===t)return t+"-\u0131nc\u0131";var n=t%10;return t+(e[n]||e[t%100-n]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},STEd:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),n("FBEI");var a=n("CcnG"),r=n("xtUU"),i=n("HHO+"),s=n("Ip0R"),o=n("/TVo"),u=n("urB8"),c=n("ty8c"),l=n("FYBg"),d=n("JZ5S"),f=n("Tff5"),p=n("VUo1");e.TreeModule=function(){function t(){}return t.decorators=[{type:a.NgModule,args:[{imports:[s.CommonModule],declarations:[o.NodeDraggableDirective,r.TreeComponent,c.NodeEditableDirective,l.NodeMenuComponent,i.TreeInternalComponent,p.SafeHtmlPipe],exports:[r.TreeComponent],providers:[u.NodeDraggableService,d.NodeMenuService,f.TreeService]}]}],t}()},SZbH:function(t,e,n){"use strict";n.d(e,"a",function(){return x}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return _}),n.d(e,"d",function(){return u}),n.d(e,"e",function(){return S}),n.d(e,"f",function(){return I}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return w}),n.d(e,"i",function(){return T}),n.d(e,"j",function(){return v});var a=n("mrSG"),r=n("CcnG"),i=n("K9Ia"),s=n("ZYjt"),o=n("Ip0R"),u=function(){return function(){}}(),c=function(){function t(t,e,n,a,r,s){var o=this;this.toastId=t,this.config=e,this.message=n,this.title=a,this.toastType=r,this.toastRef=s,this._onTap=new i.a,this._onAction=new i.a,this.toastRef.afterClosed().subscribe(function(){o._onAction.complete(),o._onTap.complete()})}return t.prototype.triggerTap=function(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()},t.prototype.onTap=function(){return this._onTap.asObservable()},t.prototype.triggerAction=function(t){this._onAction.next(t)},t.prototype.onAction=function(){return this._onAction.asObservable()},t}(),l={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},d=new r.InjectionToken("ToastConfig"),f=function(){function t(t,e){this.component=t,this.injector=e}return t.prototype.attach=function(t,e){return this._attachedHost=t,t.attach(this,e)},t.prototype.detach=function(){var t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()},Object.defineProperty(t.prototype,"isAttached",{get:function(){return null!=this._attachedHost},enumerable:!0,configurable:!0}),t.prototype.setAttachedHost=function(t){this._attachedHost=t},t}(),p=function(t){function e(e,n,a){var r=t.call(this)||this;return r._hostDomElement=e,r._componentFactoryResolver=n,r._appRef=a,r}return Object(a.__extends)(e,t),e.prototype.attachComponentPortal=function(t,e){var n,a=this,r=this._componentFactoryResolver.resolveComponentFactory(t.component);return n=r.create(t.injector),this._appRef.attachView(n.hostView),this.setDisposeFn(function(){a._appRef.detachView(n.hostView),n.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(n),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(n)),n},e.prototype._getComponentRootNode=function(t){return t.hostView.rootNodes[0]},e}(function(){function t(){}return t.prototype.attach=function(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)},t.prototype.detach=function(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)},t.prototype.setDisposeFn=function(t){this._disposeFn=t},t}()),h=function(){function t(t){this._document=t}return t.prototype.ngOnDestroy=function(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)},t.prototype.getContainerElement=function(){return this._containerElement||this._createContainer(),this._containerElement},t.prototype._createContainer=function(){var t=this._document.createElement("div");t.classList.add("overlay-container"),this._document.body.appendChild(t),this._containerElement=t},t.ngInjectableDef=Object(r.defineInjectable)({factory:function(){return new t(Object(r.inject)(o.DOCUMENT))},token:t,providedIn:"root"}),t}(),g=function(){function t(t){this._portalHost=t}return t.prototype.attach=function(t,e){return void 0===e&&(e=!0),this._portalHost.attach(t,e)},t.prototype.detach=function(){return this._portalHost.detach()},t}(),b=function(){function t(t,e,n,a){this._overlayContainer=t,this._componentFactoryResolver=e,this._appRef=n,this._document=a,this._paneElements=new Map}return t.prototype.create=function(t,e){return this._createOverlayRef(this.getPaneElement(t,e))},t.prototype.getPaneElement=function(t,e){return void 0===t&&(t=""),this._paneElements.get(e)||this._paneElements.set(e,{}),this._paneElements.get(e)[t]||(this._paneElements.get(e)[t]=this._createPaneElement(t,e)),this._paneElements.get(e)[t]},t.prototype._createPaneElement=function(t,e){var n=this._document.createElement("div");return n.id="toast-container",n.classList.add(t),n.classList.add("toast-container"),e?e.getContainerElement().appendChild(n):this._overlayContainer.getContainerElement().appendChild(n),n},t.prototype._createPortalHost=function(t){return new p(t,this._componentFactoryResolver,this._appRef)},t.prototype._createOverlayRef=function(t){return new g(this._createPortalHost(t))},t.ngInjectableDef=Object(r.defineInjectable)({factory:function(){return new t(Object(r.inject)(h),Object(r.inject)(r.ComponentFactoryResolver),Object(r.inject)(r.ApplicationRef),Object(r.inject)(o.DOCUMENT))},token:t,providedIn:"root"}),t}(),m=function(){function t(t){this._overlayRef=t,this.duplicatesCount=0,this._afterClosed=new i.a,this._activate=new i.a,this._manualClose=new i.a,this._resetTimeout=new i.a,this._countDuplicate=new i.a}return t.prototype.manualClose=function(){this._manualClose.next(),this._manualClose.complete()},t.prototype.manualClosed=function(){return this._manualClose.asObservable()},t.prototype.timeoutReset=function(){return this._resetTimeout.asObservable()},t.prototype.countDuplicate=function(){return this._countDuplicate.asObservable()},t.prototype.close=function(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()},t.prototype.afterClosed=function(){return this._afterClosed.asObservable()},t.prototype.isInactive=function(){return this._activate.isStopped},t.prototype.activate=function(){this._activate.next(),this._activate.complete()},t.prototype.afterActivate=function(){return this._activate.asObservable()},t.prototype.onDuplicate=function(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)},t}(),y=function(){function t(t,e){this._toastPackage=t,this._parentInjector=e}return t.prototype.get=function(t,e,n){return t===c?this._toastPackage:this._parentInjector.get(t,e,n)},t}(),v=function(){function t(t,e,n,r,i){this.overlay=e,this._injector=n,this.sanitizer=r,this.ngZone=i,this.currentlyActive=0,this.toasts=[],this.index=0,this.toastrConfig=Object(a.__assign)({},t.default,t.config),t.config.iconClasses&&(this.toastrConfig.iconClasses=Object(a.__assign)({},t.default.iconClasses,t.config.iconClasses))}return t.prototype.show=function(t,e,n,a){return void 0===n&&(n={}),void 0===a&&(a=""),this._preBuildNotification(a,t,e,this.applyConfig(n))},t.prototype.success=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.success||"",t,e,this.applyConfig(n))},t.prototype.error=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.error||"",t,e,this.applyConfig(n))},t.prototype.info=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.info||"",t,e,this.applyConfig(n))},t.prototype.warning=function(t,e,n){return void 0===n&&(n={}),this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",t,e,this.applyConfig(n))},t.prototype.clear=function(t){var e,n;try{for(var r=Object(a.__values)(this.toasts),i=r.next();!i.done;i=r.next()){var s=i.value;if(void 0!==t){if(s.toastId===t)return void s.toastRef.manualClose()}else s.toastRef.manualClose()}}catch(o){e={error:o}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},t.prototype.remove=function(t){var e=this._findToast(t);if(!e)return!1;if(e.activeToast.toastRef.close(),this.toasts.splice(e.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length)return!1;if(this.currentlyActive=this.toastrConfig.maxOpened&&(o=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));var u=this.overlay.create(a.positionClass,this.overlayContainer);this.index=this.index+1;var l=e;e&&a.enableHtml&&(l=this.sanitizer.sanitize(r.SecurityContext.HTML,e));var d=new m(u),p=new c(this.index,a,l,n,t,d),h=new y(p,this._injector),g=new f(a.toastComponent,h),b=u.attach(g,this.toastrConfig.newestOnTop);d.componentInstance=b._component;var v={toastId:this.index,message:e||"",toastRef:d,onShown:d.afterActivate(),onHidden:d.afterClosed(),onTap:p.onTap(),onAction:p.onAction(),portal:b};return o||setTimeout(function(){v.toastRef.activate(),i.currentlyActive=i.currentlyActive+1}),this.toasts.push(v),v},t.ngInjectableDef=Object(r.defineInjectable)({factory:function(){return new t(Object(r.inject)(d),Object(r.inject)(b),Object(r.inject)(r.INJECTOR),Object(r.inject)(s.DomSanitizer),Object(r.inject)(r.NgZone))},token:t,providedIn:"root"}),t}(),_=function(){function t(t,e,n){var a=this;this.toastrService=t,this.toastPackage=e,this.ngZone=n,this.width=-1,this.toastClasses="",this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}},this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=e.toastType+" "+e.config.toastClass,this.sub=e.toastRef.afterActivate().subscribe(function(){a.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(function(){a.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(function(){a.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(function(t){a.duplicatesCount=t})}return Object.defineProperty(t.prototype,"displayStyle",{get:function(){return"inactive"===this.state.value?"none":"inherit"},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)},t.prototype.activateToast=function(){var t=this;this.state=Object(a.__assign)({},this.state,{value:"active"}),!this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(function(){return t.remove()},this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(function(){return t.updateProgress()},10))},t.prototype.updateProgress=function(){if(0!==this.width&&100!==this.width&&this.options.timeOut){var t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}},t.prototype.resetTimeout=function(){var t=this;clearTimeout(this.timeout),clearInterval(this.intervalId),this.state=Object(a.__assign)({},this.state,{value:"active"}),this.outsideTimeout(function(){return t.remove()},this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(function(){return t.updateProgress()},10)},t.prototype.remove=function(){var t=this;"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state=Object(a.__assign)({},this.state,{value:"removed"}),this.outsideTimeout(function(){return t.toastrService.remove(t.toastPackage.toastId)},+this.toastPackage.config.easeTime))},t.prototype.tapToast=function(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())},t.prototype.stickAround=function(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)},t.prototype.delayedHideToast=function(){var t=this;this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(function(){return t.remove()},this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(function(){return t.updateProgress()},10))},t.prototype.outsideTimeout=function(t,e){var n=this;this.ngZone?this.ngZone.runOutsideAngular(function(){return n.timeout=setTimeout(function(){return n.runInsideAngular(t)},e)}):this.timeout=setTimeout(function(){return t()},e)},t.prototype.outsideInterval=function(t,e){var n=this;this.ngZone?this.ngZone.runOutsideAngular(function(){return n.intervalId=setInterval(function(){return n.runInsideAngular(t)},e)}):this.intervalId=setInterval(function(){return t()},e)},t.prototype.runInsideAngular=function(t){this.ngZone?this.ngZone.run(function(){return t()}):t()},t}(),x=Object(a.__assign)({},l,{toastComponent:_}),T=function(){function t(){}var e;return e=t,t.forRoot=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[{provide:d,useValue:{default:x,config:t}}]}},t}(),w=function(){function t(){}return t.forRoot=function(t){return void 0===t&&(t={}),{ngModule:T,providers:[{provide:d,useValue:{default:l,config:t}}]}},t}(),S=function(){function t(t,e,n){var a=this;this.toastrService=t,this.toastPackage=e,this.appRef=n,this.width=-1,this.toastClasses="",this.state="inactive",this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=e.toastType+" "+e.config.toastClass,this.sub=e.toastRef.afterActivate().subscribe(function(){a.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(function(){a.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(function(){a.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(function(t){a.duplicatesCount=t})}return Object.defineProperty(t.prototype,"displayStyle",{get:function(){return"inactive"===this.state?"none":"inherit"},enumerable:!0,configurable:!0}),t.prototype.ngOnDestroy=function(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)},t.prototype.activateToast=function(){var t=this;this.state="active",!this.options.disableTimeOut&&this.options.timeOut&&(this.timeout=setTimeout(function(){t.remove()},this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(function(){return t.updateProgress()},10))),this.options.onActivateTick&&this.appRef.tick()},t.prototype.updateProgress=function(){if(0!==this.width&&100!==this.width&&this.options.timeOut){var t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}},t.prototype.resetTimeout=function(){var t=this;clearTimeout(this.timeout),clearInterval(this.intervalId),this.state="active",this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(function(){return t.remove()},this.originalTimeout),this.hideTime=(new Date).getTime()+(this.originalTimeout||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(function(){return t.updateProgress()},10))},t.prototype.remove=function(){var t=this;"removed"!==this.state&&(clearTimeout(this.timeout),this.state="removed",this.timeout=setTimeout(function(){return t.toastrService.remove(t.toastPackage.toastId)}))},t.prototype.tapToast=function(){"removed"!==this.state&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())},t.prototype.stickAround=function(){"removed"!==this.state&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)},t.prototype.delayedHideToast=function(){var t=this;this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state||(this.timeout=setTimeout(function(){return t.remove()},this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(function(){return t.updateProgress()},10)))},t}(),O=Object(a.__assign)({},l,{toastComponent:S}),I=function(){function t(){}var e;return e=t,t.forRoot=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[{provide:d,useValue:{default:O,config:t}}]}},t}()},SatO:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e2d\u5348"===e?t>=11?t:t+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u9031";default:return t}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}()},SfHT:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG");e.ScrollerComponent=function(){function t(t,e,n){this.ngZone=t,this.renderer=n,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new i.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this.element=e.nativeElement}return t.prototype.ngOnInit=function(){if(this.scrollbarV||this.scrollbarH){var t=this.renderer;this.parentElement=t.parentNode(t.parentNode(this.element)),this.parentElement.addEventListener("scroll",this.onScrolled.bind(this))}},t.prototype.ngOnDestroy=function(){(this.scrollbarV||this.scrollbarH)&&this.parentElement.removeEventListener("scroll",this.onScrolled.bind(this))},t.prototype.setOffset=function(t){this.parentElement&&(this.parentElement.scrollTop=t)},t.prototype.onScrolled=function(t){var e=this,n=t.currentTarget;requestAnimationFrame(function(){e.scrollYPos=n.scrollTop,e.scrollXPos=n.scrollLeft,e.updateOffset()})},t.prototype.updateOffset=function(){var t;this.scrollYPosthis.prevScrollYPos&&(t="up"),this.scroll.emit({direction:t,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos},a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([i.HostBinding("style.height.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollHeight",void 0),a([i.HostBinding("style.width.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"scroll",void 0),a([i.Component({selector:"datatable-scroller",template:"\n \n ",host:{class:"datatable-scroll"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},Sfow:function(t,e,n){"use strict";var a=n("TC34");e=t.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,a,r,i){if(i){var s=Math.min(i,r/2-1e-7,a/2-1e-7);t.moveTo(e+s,n),t.lineTo(e+a-s,n),t.arcTo(e+a,n,e+a,n+s,s),t.lineTo(e+a,n+r-s),t.arcTo(e+a,n+r,e+a-s,n+r,s),t.lineTo(e+s,n+r),t.arcTo(e,n+r,e,n+r-s,s),t.lineTo(e,n+s),t.arcTo(e,n,e+s,n,s),t.closePath(),t.moveTo(e,n)}else t.rect(e,n,a,r)},drawPoint:function(t,e,n,a,r,i){var s,o,u,c,l,d;if(i=i||0,!e||"object"!=typeof e||"[object HTMLImageElement]"!==(s=e.toString())&&"[object HTMLCanvasElement]"!==s){if(!(isNaN(n)||n<=0)){switch(t.save(),t.translate(a,r),t.rotate(i*Math.PI/180),t.beginPath(),e){default:t.arc(0,0,n,0,2*Math.PI),t.closePath();break;case"triangle":l=(o=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(-o/2,l/3),t.lineTo(o/2,l/3),t.lineTo(0,-2*l/3),t.closePath();break;case"rect":d=1/Math.SQRT2*n,t.rect(-d,-d,2*d,2*d);break;case"rectRounded":var f=n/Math.SQRT2,p=Math.SQRT2*n;this.roundedRect(t,-f,-f,p,p,.425*n);break;case"rectRot":d=1/Math.SQRT2*n,t.moveTo(-d,0),t.lineTo(0,d),t.lineTo(d,0),t.lineTo(0,-d),t.closePath();break;case"cross":t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-n,0),t.lineTo(n,0);break;case"crossRot":u=Math.cos(Math.PI/4)*n,c=Math.sin(Math.PI/4)*n,t.moveTo(-u,-c),t.lineTo(u,c),t.moveTo(-u,c),t.lineTo(u,-c);break;case"star":t.moveTo(0,n),t.lineTo(0,-n),t.moveTo(-n,0),t.lineTo(n,0),u=Math.cos(Math.PI/4)*n,c=Math.sin(Math.PI/4)*n,t.moveTo(-u,-c),t.lineTo(u,c),t.moveTo(-u,c),t.lineTo(u,-c);break;case"line":t.moveTo(-n,0),t.lineTo(n,0);break;case"dash":t.moveTo(0,0),t.lineTo(n,0)}t.fill(),t.stroke(),t.restore()}}else t.drawImage(e,a-e.width/2,r-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,a){if(n.steppedLine)return"after"===n.steppedLine&&!a||"after"!==n.steppedLine&&a?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(a?e.controlPointPreviousX:e.controlPointNextX,a?e.controlPointPreviousY:e.controlPointNextY,a?n.controlPointNextX:n.controlPointPreviousX,a?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}},a.clear=e.clear,a.drawRoundedRectangle=function(t){t.beginPath(),e.roundedRect.apply(e,arguments)}},SgmB:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("F/XL"),r=n("psW0"),i=n("CcnG"),s=n("t/Na"),o=n("pL04"),u=function(){function t(t){this.http=t}return t.prototype.list=function(){return this.http.get("api/role")},t.prototype.delete=function(t){return this.http.delete("api/role/"+t)},t.prototype.get=function(t){return this.http.get("api/role/"+t)},t.prototype.create=function(t){return this.http.post("api/role",t)},t.prototype.update=function(t){return this.http.put("api/role/"+t.name,t)},t.prototype.exists=function(t){return this.list().pipe(Object(r.a)(function(e){var n=e.some(function(e){return e.name===t});return Object(a.a)(n)}))},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(s.c))},token:t,providedIn:o.a}),t}()},SjWX:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(){return function(t,e,n){this.name=t,this.version=e,this.os=n}}();e.BrowserInfo=a;var r=function(){return function(t){this.version=t,this.name="node",this.os=process.platform}}();e.NodeInfo=r;var i=function(){return function(){this.bot=!0,this.name="bot",this.version=null,this.os=null}}();e.BotInfo=i;var s=3,o=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["vivaldi",/Vivaldi\/([0-9\.]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)$/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FBAV\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["searchbot",/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/]],u=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/],["Search Bot",/(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\/Teoma)|(ia_archiver)/]];function c(t){var e=""!==t&&o.reduce(function(e,n){var a=n[0];if(e)return e;var r=n[1].exec(t);return!!r&&[a,r]},!1);if(!e)return null;var n=e[0],r=e[1];if("searchbot"===n)return new i;var u=r[1]&&r[1].split(/[._]/).slice(0,3);return u?u.length=0;i--)e.call(n,t[i],i);else for(i=0;i=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}()},UReH:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DatatableRowDetailTemplateDirective=function(){return a([r.Directive({selector:"[ngx-datatable-row-detail-template]"})],function(t){this.template=t})}()},USCx:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ga",{months:["Ean\xe1ir","Feabhra","M\xe1rta","Aibre\xe1n","Bealtaine","M\xe9itheamh","I\xfail","L\xfanasa","Me\xe1n F\xf3mhair","Deaireadh F\xf3mhair","Samhain","Nollaig"],monthsShort:["Ean\xe1","Feab","M\xe1rt","Aibr","Beal","M\xe9it","I\xfail","L\xfana","Me\xe1n","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["D\xe9 Domhnaigh","D\xe9 Luain","D\xe9 M\xe1irt","D\xe9 C\xe9adaoin","D\xe9ardaoin","D\xe9 hAoine","D\xe9 Satharn"],weekdaysShort:["Dom","Lua","M\xe1i","C\xe9a","D\xe9a","hAo","Sat"],weekdaysMin:["Do","Lu","M\xe1","Ce","D\xe9","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Am\xe1rach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inn\xe9 aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",ss:"%d soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xed",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}()},UpQW:function(t,e,n){!function(t){"use strict";var e=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],a=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];n("wd/R").defineLocale("ur",{months:e,monthsShort:e,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(t){return"\u0634\u0627\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}()},UqmZ:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),s=a.global;a._set("global",{elements:{line:{tension:.4,backgroundColor:s.defaultColor,borderWidth:3,borderColor:s.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),t.exports=r.extend({draw:function(){var t,e,n,a,r=this._view,o=this._chart.ctx,u=r.spanGaps,c=this._children.slice(),l=s.elements.line,d=-1;for(this._loop&&c.length&&c.push(c[0]),o.save(),o.lineCap=r.borderCapStyle||l.borderCapStyle,o.setLineDash&&o.setLineDash(r.borderDash||l.borderDash),o.lineDashOffset=r.borderDashOffset||l.borderDashOffset,o.lineJoin=r.borderJoinStyle||l.borderJoinStyle,o.lineWidth=r.borderWidth||l.borderWidth,o.strokeStyle=r.borderColor||s.defaultColor,o.beginPath(),d=-1,t=0;t=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}()},"V/fk":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},V2x9:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},V3my:function(t,e,n){"use strict";var a,r=n("gIcY"),i=n("LvDl"),s=(n("DSvg"),n("SgmB"),n("Mxhz"),n("OLbh")),o=n("DNAf"),u=(n("sne2"),n("mtw6")),c=n("QFaf"),l=n("1Ni5");n("aexS"),n("9nlD"),function(t){t.editing="editing"}(a||(a={}));var d=function(){return function(){}}();n.d(e,"a",function(){return f});var f=function(){function t(t,e,n,r,i,s,u,c,l,d){this.authService=t,this.authStorageService=e,this.route=n,this.router=r,this.modalService=i,this.roleService=s,this.userService=u,this.notificationService=c,this.i18n=l,this.actionLabels=d,this.userFormMode=a,this.messages=new o.a({empty:"There are no roles."},this.i18n),this.resource=this.i18n("user"),this.createForm(),this.messages=new o.a({empty:"There are no roles."},this.i18n)}return t.prototype.createForm=function(){this.userForm=new c.a({username:new r.i("",{validators:[r.A.required]}),name:new r.i(""),password:new r.i("",{validators:[]}),confirmpassword:new r.i("",{updateOn:"blur",validators:[]}),email:new r.i("",{validators:[r.A.email]}),roles:new r.i([])},{validators:[l.a.match("password","confirmpassword")]})},t.prototype.ngOnInit=function(){var t=this;this.router.url.startsWith("/user-management/users/edit")?(this.mode=this.userFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.roleService.list().subscribe(function(e){t.allRoles=i.map(e,function(t){return t.enabled=!0,t})}),this.mode===this.userFormMode.editing&&this.initEdit()},t.prototype.initEdit=function(){var t=this;this.disableForEdit(),this.route.params.subscribe(function(e){t.userService.get(e.username).subscribe(function(e){t.response=i.cloneDeep(e),t.setResponse(e)})})},t.prototype.disableForEdit=function(){this.userForm.get("username").disable()},t.prototype.setResponse=function(t){var e=this;["username","name","email","roles"].forEach(function(n){return e.userForm.get(n).setValue(t[n])})},t.prototype.getRequest=function(){var t=this,e=new d;return["username","password","name","email","roles"].forEach(function(n){return e[n]=t.userForm.get(n).value}),e},t.prototype.createAction=function(){var t=this,e=this.getRequest();this.userService.create(e).subscribe(function(){t.notificationService.show(u.a.success,t.i18n('Created user "{{username}}"',{username:e.username})),t.router.navigate(["/user-management/users"])},function(){t.userForm.setErrors({cdSubmitButton:!0})})},t.prototype.editAction=function(){var t=this;if(this.isUserRemovingNeededRolePermissions()){var e={titleText:this.i18n("Update user"),buttonText:this.i18n("Continue"),bodyTpl:this.removeSelfUserReadUpdatePermissionTpl,onSubmit:function(){t.modalRef.hide(),t.doEditAction()},onCancel:function(){t.userForm.setErrors({cdSubmitButton:!0}),t.userForm.get("roles").reset(t.userForm.get("roles").value)}};this.modalRef=this.modalService.show(s.a,{initialState:e})}else this.doEditAction()},t.prototype.isCurrentUser=function(){return this.authStorageService.getUsername()===this.userForm.getValue("username")},t.prototype.isUserChangingRoles=function(){return this.isCurrentUser()&&this.response&&!i.isEqual(this.response.roles,this.userForm.getValue("roles"))},t.prototype.isUserRemovingNeededRolePermissions=function(){return this.isCurrentUser()&&!this.hasUserReadUpdatePermissions(this.userForm.getValue("roles"))},t.prototype.hasUserReadUpdatePermissions=function(t){void 0===t&&(t=[]);for(var e=function(e){if(-1!==t.indexOf(e.name)&&e.scopes_permissions.user){var n=e.scopes_permissions.user;return{value:["read","update"].every(function(t){return-1!==n.indexOf(t)})}}},n=0,a=this.allRoles;n0),t(e,4,0,0===n.data.length&&n.options.length>0),t(e,6,0,0===n.options.length)},null)}},WxRl:function(t,e,n){!function(t){"use strict";var e="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function n(t,e,n,a){var r=t;switch(n){case"s":return a||e?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return r+(a||e)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(a||e?" perc":" perce");case"mm":return r+(a||e?" perc":" perce");case"h":return"egy"+(a||e?" \xf3ra":" \xf3r\xe1ja");case"hh":return r+(a||e?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(a||e?" nap":" napja");case"dd":return r+(a||e?" nap":" napja");case"M":return"egy"+(a||e?" h\xf3nap":" h\xf3napja");case"MM":return r+(a||e?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(a||e?" \xe9v":" \xe9ve");case"yy":return r+(a||e?" \xe9v":" \xe9ve")}return""}function a(t){return(t?"":"[m\xfalt] ")+"["+e[this.day()]+"] LT[-kor]"}t.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,n){return t<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return a.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return a.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},WyAD:function(t,e,n){var a=n("yPMN")();a.helpers=n("RDha"),n("nDWh")(a),a.Animation=n("A5uo"),a.animationService=n("dpnK"),a.defaults=n("CDJp"),a.Element=n("K2E3"),a.elements=n("vvH+"),a.Interaction=n("mlr9"),a.layouts=n("fELs"),a.platform=n("iM7B"),a.plugins=n("VgNv"),a.Scale=n("cdu6"),a.scaleService=n("tjFV"),a.Ticks=n("g8vO"),a.Tooltip=n("x8uC"),n("6rqY")(a),n("KAQS")(a),n("paOr")(a),n("8TtQ")(a),n("YSsK")(a),n("Y4Rb")(a),n("8//i")(a),n("RCHg")(a),n("ZANz")(a),n("bidN")(a),n("XQh+")(a),n("G0Q6")(a),n("5ZZ7")(a),n("aB2c")(a),n("35yf")(a),n("ODdm")(a),n("Qexa")(a),n("S7Ns")(a),n("7O6V")(a),n("qzaf")(a),n("iYGd")(a),n("S3/U")(a);var r=n("jXIB");for(var i in r)r.hasOwnProperty(i)&&a.plugins.register(r[i]);a.platform.initialize(),t.exports=a,"undefined"!=typeof window&&(window.Chart=a),a.Legend=r.legend._element,a.Title=r.title._element,a.pluginService=a.plugins,a.PluginBase=a.Element.extend({}),a.canvasHelpers=a.helpers.canvas,a.layoutService=a.layouts},X709:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"e":1===e?"a":2===e?"a":"e")},week:{dow:1,doy:4}})}()},X8CM:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha");a._set("global",{elements:{arc:{backgroundColor:a.global.defaultColor,borderColor:"#fff",borderWidth:2}}}),t.exports=r.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)u;)r-=2*Math.PI;for(;r=o&&r<=u&&s>=n.innerRadius&&s<=n.outerRadius}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,a=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,a),t.arc(e.x,e.y,e.innerRadius,a,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},XDpg:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u5468";default:return t}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}()},XFyV:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},XLvN:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===e?t<4?t:t+12:"\u0c09\u0c26\u0c2f\u0c02"===e?t:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===e?t>=10?t:t+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":t<10?"\u0c09\u0c26\u0c2f\u0c02":t<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":t<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}()},"XQh+":function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('
    ');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i'),r[i]&&e.push(r[i]),e.push("");return e.push("
"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,a){var r=t.getDatasetMeta(0),s=e.datasets[0],o=r.data[a],u=o&&o.custom||{},c=i.valueAtIndexOrDefault,l=t.options.elements.arc;return{text:n,fillStyle:u.backgroundColor?u.backgroundColor:c(s.backgroundColor,a,l.backgroundColor),strokeStyle:u.borderColor?u.borderColor:c(s.borderColor,a,l.borderColor),lineWidth:u.borderWidth?u.borderWidth:c(s.borderWidth,a,l.borderWidth),hidden:isNaN(s.data[a])||r.data[a].hidden,index:a}}):[]}},onClick:function(t,e){var n,a,r,i=e.index,s=this.chart;for(n=0,a=(s.data.datasets||[]).length;n=Math.PI?-1:h<-Math.PI?1:0))+p,b={x:Math.cos(h),y:Math.sin(h)},m={x:Math.cos(g),y:Math.sin(g)},y=h<=0&&g>=0||h<=2*Math.PI&&2*Math.PI<=g,v=h<=.5*Math.PI&&.5*Math.PI<=g||h<=2.5*Math.PI&&2.5*Math.PI<=g,_=h<=-Math.PI&&-Math.PI<=g||h<=Math.PI&&Math.PI<=g,x=h<=.5*-Math.PI&&.5*-Math.PI<=g||h<=1.5*Math.PI&&1.5*Math.PI<=g,T=f/100,w={x:_?-1:Math.min(b.x*(b.x<0?1:T),m.x*(m.x<0?1:T)),y:x?-1:Math.min(b.y*(b.y<0?1:T),m.y*(m.y<0?1:T))},S={x:y?1:Math.max(b.x*(b.x>0?1:T),m.x*(m.x>0?1:T)),y:v?1:Math.max(b.y*(b.y>0?1:T),m.y*(m.y>0?1:T))},O={width:.5*(S.x-w.x),height:.5*(S.y-w.y)};c=Math.min(o/O.width,u/O.height),l={x:-.5*(S.x+w.x),y:-.5*(S.y+w.y)}}n.borderWidth=e.getMaxBorderWidth(d.data),n.outerRadius=Math.max((c-n.borderWidth)/2,0),n.innerRadius=Math.max(f?n.outerRadius/100*f:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=l.x*n.outerRadius,n.offsetY=l.y*n.outerRadius,d.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),i.each(d.data,function(n,a){e.updateElement(n,a,t)})},updateElement:function(t,e,n){var a=this,r=a.chart,s=r.chartArea,o=r.options,u=o.animation,c=(s.left+s.right)/2,l=(s.top+s.bottom)/2,d=o.rotation,f=o.rotation,p=a.getDataset(),h=n&&u.animateRotate?0:t.hidden?0:a.calculateCircumference(p.data[e])*(o.circumference/(2*Math.PI));i.extend(t,{_datasetIndex:a.index,_index:e,_model:{x:c+r.offsetX,y:l+r.offsetY,startAngle:d,endAngle:f,circumference:h,outerRadius:n&&u.animateScale?0:a.outerRadius,innerRadius:n&&u.animateScale?0:a.innerRadius,label:(0,i.valueAtIndexOrDefault)(p.label,e,r.data.labels[e])}});var g=t._model,b=t.custom||{},m=i.valueAtIndexOrDefault,y=this.chart.options.elements.arc;g.backgroundColor=b.backgroundColor?b.backgroundColor:m(p.backgroundColor,e,y.backgroundColor),g.borderColor=b.borderColor?b.borderColor:m(p.borderColor,e,y.borderColor),g.borderWidth=b.borderWidth?b.borderWidth:m(p.borderWidth,e,y.borderWidth),n&&u.animateRotate||(g.startAngle=0===e?o.rotation:a.getMeta().data[e-1]._model.endAngle,g.endAngle=g.startAngle+g.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),a=0;return i.each(n.data,function(n,r){t=e.data[r],isNaN(t)||n.hidden||(a+=Math.abs(t))}),a},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){for(var e,n,a=0,r=this.index,i=t.length,s=0;s(a=(e=t[s]._model?t[s]._model.borderWidth:0)>a?e:a)?n:a;return a}})}},Xg1U:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("CcnG"),r=n("eajB"),i=(n("Ip0R"),a["\u0275crt"]({encapsulation:0,styles:[".tooltip[_nghost-%COMP%] {\n display: block;\n pointer-events: none;\n }\n .bs3.tooltip.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n margin-left: -2px;\n }\n .bs3.tooltip.bottom[_nghost-%COMP%] {\n margin-top: 0px;\n }\n .bs3.bs-tooltip-left[_nghost-%COMP%], .bs3.bs-tooltip-right[_nghost-%COMP%]{\n margin: 0px;\n }\n .bs3.bs-tooltip-right[_nghost-%COMP%] .arrow[_ngcontent-%COMP%], .bs3.bs-tooltip-left[_nghost-%COMP%] .arrow[_ngcontent-%COMP%] {\n margin: .3rem 0;\n }"],data:{}}));function s(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","tooltip-arrow arrow"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","tooltip-inner"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],null,null)}function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-tooltip-container",[["role","tooltip"]],[[8,"className",0],[2,"show",null],[2,"bs3",null],[1,"id",0]],null,null,s,i)),a["\u0275did"](1,4243456,null,0,r.b,[r.a],null,null)],null,function(t,e){t(e,0,0,"tooltip in tooltip-"+a["\u0275nov"](e,1).placement+" bs-tooltip-"+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).placement+" "+a["\u0275nov"](e,1).containerClass,!a["\u0275nov"](e,1).isBs3,a["\u0275nov"](e,1).isBs3,a["\u0275nov"](e,1).id)})}var u=a["\u0275ccf"]("bs-tooltip-container",r.b,o,{},{},["*"])},XlPw:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("6blF");function r(t,e){return new a.a(e?function(n){return e.schedule(i,0,{error:t,subscriber:n})}:function(e){return e.error(t)})}function i(t){t.subscriber.error(t.error)}},Y0Co:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("Lwhh"),o=n("8iEZ"),u=n("L5sC");n("BARL"),e.DataTableColumnDirective=function(){function t(t){this.columnChangesService=t,this.isFirstChange=!0}return t.prototype.ngOnChanges=function(){this.isFirstChange?this.isFirstChange=!1:this.columnChangesService.onInputChange()},a([i.Input(),r("design:type",String)],t.prototype,"name",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"prop",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenLeft",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenRight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"flexGrow",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"comparator",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pipe",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"sortable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"draggable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"canAutoResize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"width",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"checkboxable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"headerCheckboxable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"headerClass",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"cellClass",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"isTreeColumn",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"treeLevelIndent",void 0),a([i.Input(),r("design:type",Function)],t.prototype,"summaryFunc",void 0),a([i.Input(),r("design:type",i.TemplateRef)],t.prototype,"summaryTemplate",void 0),a([i.Input(),i.ContentChild(o.DataTableColumnCellDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"cellTemplate",void 0),a([i.Input(),i.ContentChild(s.DataTableColumnHeaderDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"headerTemplate",void 0),a([i.Input(),i.ContentChild(u.DataTableColumnCellTreeToggle,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"treeToggleTemplate",void 0),a([i.Directive({selector:"ngx-datatable-column"})],t)}()},Y4Rb:function(t,e,n){"use strict";var a=n("RDha"),r=n("cdu6"),i=n("tjFV"),s=n("g8vO");t.exports=function(t){var e={position:"left",ticks:{callback:s.formatters.logarithmic}},n=r.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,r=n.data.datasets,i=t.isHorizontal();function s(e){return i?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var o=e.stacked;if(void 0===o&&a.each(r,function(t,e){if(!o){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&s(a)&&void 0!==a.stack&&(o=!0)}}),e.stacked||o){var u={};a.each(r,function(r,i){var o=n.getDatasetMeta(i),c=[o.type,void 0===e.stacked&&void 0===o.stack?i:"",o.stack].join(".");n.isDatasetVisible(i)&&s(o)&&(void 0===u[c]&&(u[c]=[]),a.each(r.data,function(e,n){var a=u[c],r=+t.getRightValue(e);isNaN(r)||o.data[n].hidden||r<0||(a[n]=a[n]||0,a[n]+=r)}))}),a.each(u,function(e){if(e.length>0){var n=a.min(e),r=a.max(e);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?r:Math.max(t.max,r)}})}else a.each(r,function(e,r){var i=n.getDatasetMeta(r);n.isDatasetVisible(r)&&s(i)&&a.each(e.data,function(e,n){var a=+t.getRightValue(e);isNaN(a)||i.data[n].hidden||a<0||(null===t.min?t.min=a:at.max&&(t.max=a),0!==a&&(null===t.minNotZero||a0?t.min:t.max<1?Math.pow(10,Math.floor(a.log10(t.max))):1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),r=t.ticks=function(t,e){var n,r,i=[],s=a.valueOrDefault,o=s(t.min,Math.pow(10,Math.floor(a.log10(e.min)))),u=Math.floor(a.log10(e.max)),c=Math.ceil(e.max/Math.pow(10,u));0===o?(n=Math.floor(a.log10(e.minNotZero)),r=Math.floor(e.minNotZero/Math.pow(10,n)),i.push(o),o=r*Math.pow(10,n)):(n=Math.floor(a.log10(o)),r=Math.floor(o/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{i.push(o),10==++r&&(r=1,l=++n>=0?1:l),o=Math.round(r*Math.pow(10,n)*l)/l}while(n=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":a<900?"\u0633\u06d5\u06be\u06d5\u0631":a<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":a<1230?"\u0686\u06c8\u0634":a<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return t+"-\u06be\u06d5\u067e\u062a\u06d5";default:return t}},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}()},YSsK:function(t,e,n){"use strict";var a=n("CDJp"),r=n("RDha"),i=n("tjFV"),s=n("g8vO");t.exports=function(t){var e={position:"left",ticks:{callback:s.formatters.linear}},n=t.LinearScaleBase.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data.datasets,i=t.isHorizontal();function s(e){return i?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var o=e.stacked;if(void 0===o&&r.each(a,function(t,e){if(!o){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&s(a)&&void 0!==a.stack&&(o=!0)}}),e.stacked||o){var u={};r.each(a,function(a,i){var o=n.getDatasetMeta(i),c=[o.type,void 0===e.stacked&&void 0===o.stack?i:"",o.stack].join(".");void 0===u[c]&&(u[c]={positiveValues:[],negativeValues:[]});var l=u[c].positiveValues,d=u[c].negativeValues;n.isDatasetVisible(i)&&s(o)&&r.each(a.data,function(n,a){var r=+t.getRightValue(n);isNaN(r)||o.data[a].hidden||(l[a]=l[a]||0,d[a]=d[a]||0,e.relativePoints?l[a]=100:r<0?d[a]+=r:l[a]+=r)})}),r.each(u,function(e){var n=e.positiveValues.concat(e.negativeValues),a=r.min(n),i=r.max(n);t.min=null===t.min?a:Math.min(t.min,a),t.max=null===t.max?i:Math.max(t.max,i)})}else r.each(a,function(e,a){var i=n.getDatasetMeta(a);n.isDatasetVisible(a)&&s(i)&&r.each(e.data,function(e,n){var a=+t.getRightValue(e);isNaN(a)||i.data[n].hidden||(null===t.min?t.min=a:at.max&&(t.max=a))})});t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this.options.ticks;if(this.isHorizontal())t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.width/50));else{var n=r.valueOrDefault(e.fontSize,a.global.defaultFontSize);t=Math.min(e.maxTicksLimit?e.maxTicksLimit:11,Math.ceil(this.height/(2*n)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,n=e.start,a=+e.getRightValue(t),r=e.end-n;return e.isHorizontal()?e.left+e.width/r*(a-n):e.bottom-e.height/r*(a-n)},getValueForPixel:function(t){var e=this,n=e.isHorizontal();return e.start+(n?t-e.left:e.bottom-t)/(n?e.width:e.height)*(e.end-e.start)},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});i.registerScaleType("linear",n,e)}},YVFZ:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("5tze"),o=n("qwkt");n("czA5"),e.DataTableBodyCellComponent=function(){function t(t,e){this.cd=e,this.activate=new i.EventEmitter,this.treeAction=new i.EventEmitter,this.isFocused=!1,this.onCheckboxChangeFn=this.onCheckboxChange.bind(this),this.activateFn=this.activate.emit.bind(this.activate),this.cellContext={onCheckboxChangeFn:this.onCheckboxChangeFn,activateFn:this.activateFn,row:this.row,group:this.group,value:this.value,column:this.column,rowHeight:this.rowHeight,isSelected:this.isSelected,rowIndex:this.rowIndex,treeStatus:this.treeStatus,onTreeAction:this.onTreeAction.bind(this)},this._element=t.nativeElement}return Object.defineProperty(t.prototype,"group",{get:function(){return this._group},set:function(t){this._group=t,this.cellContext.group=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){this._rowHeight=t,this.cellContext.rowHeight=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this._isSelected},set:function(t){this._isSelected=t,this.cellContext.isSelected=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.cellContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.cellContext.rowIndex=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"row",{get:function(){return this._row},set:function(t){this._row=t,this.cellContext.row=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.calcSortDir=this.calcSortDir(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"treeStatus",{get:function(){return this._treeStatus},set:function(t){this._treeStatus="collapsed"!==t&&"expanded"!==t&&"loading"!==t&&"disabled"!==t?"collapsed":t,this.cellContext.treeStatus=this._treeStatus,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-body-cell";if(this.column.cellClass)if("string"==typeof this.column.cellClass)t+=" "+this.column.cellClass;else if("function"==typeof this.column.cellClass){var e=this.column.cellClass({row:this.row,group:this.group,column:this.column,value:this.value,rowHeight:this.rowHeight});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n]+(>|$)/g,""):t},t.prototype.onTreeAction=function(){this.treeAction.emit(this.row)},t.prototype.calcLeftMargin=function(t,e){return t.isTreeColumn?e.level*(null!=t.treeLevelIndent?t.treeLevelIndent:50):0},a([i.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"group",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowHeight",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"isSelected",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"row",null),a([i.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([i.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"treeStatus",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"treeAction",void 0),a([i.ViewChild("cellTemplate",{read:i.ViewContainerRef}),r("design:type",i.ViewContainerRef)],t.prototype,"cellTemplate",void 0),a([i.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([i.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([i.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([i.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([i.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"height",null),a([i.HostListener("focus"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onFocus",null),a([i.HostListener("blur"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onBlur",null),a([i.HostListener("click",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onClick",null),a([i.HostListener("dblclick",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onDblClick",null),a([i.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([i.Component({selector:"datatable-body-cell",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n \n \n \n \n \n \n\n \n \n \n \n
\n '})],t)}()},YuTi:function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},Z21x:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("sne2");var a=function(){return function(t,e){var n=this;this.location=t,this.actionLabels=e,this.name=this.actionLabels.CANCEL,this.back=function(){return n.location.back()}}}()},Z4QM:function(t,e,n){!function(t){"use strict";var e=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],a=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];n("wd/R").defineLocale("sd",{months:e,monthsShort:e,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(t){return"\u0634\u0627\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}()},ZAMP:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}()},ZANz:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),a._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var n="";return t.length>0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index0?Math.min(s,a-n):s,n=a;return s}(n,c):-1,pixels:c,start:o,end:u,stackCount:a,scale:n}},calculateBarValuePixels:function(t,e){var n,a,r,i,s,o,u=this.chart,c=this.getMeta(),l=this.getValueScale(),d=u.data.datasets,f=l.getRightValue(d[t].data[e]),p=l.options.stacked,h=c.stack,g=0;if(p||void 0===p&&void 0!==h)for(n=0;n=0&&r>0)&&(g+=r));return i=l.getPixelForValue(g),{size:o=((s=l.getPixelForValue(g+f))-i)/2,base:i,head:s,center:s+o/2}},calculateBarIndexPixels:function(t,e,n){var a=n.scale.options,r="flex"===a.barThickness?function(t,e,n){var a=e.pixels,r=a[t],i=t>0?a[t-1]:null,s=tt.length)return null;if("full"===n.pathMatch&&(e.hasChildren()||a.length0?t[t.length-1]:null}function dt(t,e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n)}function ft(t){return Object(i["\u0275isObservable"])(t)?t:Object(i["\u0275isPromise"])(t)?Object(o.a)(Promise.resolve(t)):Object(s.a)(t)}function pt(t,e,n){return n?function(t,e){return ut(t,e)}(t.queryParams,e.queryParams)&&function t(e,n){if(!mt(e.segments,n.segments))return!1;if(e.numberOfChildren!==n.numberOfChildren)return!1;for(var a in n.children){if(!e.children[a])return!1;if(!t(e.children[a],n.children[a]))return!1}return!0}(t.root,e.root):function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(function(n){return e[n]===t[n]})}(t.queryParams,e.queryParams)&&function t(e,n){return function e(n,a,r){if(n.segments.length>r.length)return!!mt(s=n.segments.slice(0,r.length),r)&&!a.hasChildren();if(n.segments.length===r.length){if(!mt(n.segments,r))return!1;for(var i in a.children){if(!n.children[i])return!1;if(!t(n.children[i],a.children[i]))return!1}return!0}var s=r.slice(0,n.segments.length),o=r.slice(n.segments.length);return!!mt(n.segments,s)&&!!n.children[X]&&e(n.children[X],a,o)}(e,n,n.segments)}(t.root,e.root)}var ht=function(){function t(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}return Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=Q(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return xt.serialize(this)},t}(),gt=function(){function t(t,e){var n=this;this.segments=t,this.children=e,this.parent=null,dt(e,function(t,e){return t.parent=n})}return t.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(t.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return Tt(this)},t}(),bt=function(){function t(t,e){this.path=t,this.parameters=e}return Object.defineProperty(t.prototype,"parameterMap",{get:function(){return this._parameterMap||(this._parameterMap=Q(this.parameters)),this._parameterMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return kt(this)},t}();function mt(t,e){return t.length===e.length&&t.every(function(t,n){return t.path===e[n].path})}function yt(t,e){var n=[];return dt(t.children,function(t,a){a===X&&(n=n.concat(e(t,a)))}),dt(t.children,function(t,a){a!==X&&(n=n.concat(e(t,a)))}),n}var vt=function(){return function(){}}(),_t=function(){function t(){}return t.prototype.parse=function(t){var e=new Et(t);return new ht(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())},t.prototype.serialize=function(t){var e,n;return"/"+function t(e,n){if(!e.hasChildren())return Tt(e);if(n){var a=e.children[X]?t(e.children[X],!1):"",r=[];return dt(e.children,function(e,n){n!==X&&r.push(n+":"+t(e,!1))}),r.length>0?a+"("+r.join("//")+")":a}var i=yt(e,function(n,a){return a===X?[t(e.children[X],!1)]:[a+":"+t(n,!1)]});return Tt(e)+"/("+i.join("//")+")"}(t.root,!0)+(e=t.queryParams,(n=Object.keys(e).map(function(t){var n=e[t];return Array.isArray(n)?n.map(function(e){return St(t)+"="+St(e)}).join("&"):St(t)+"="+St(n)})).length?"?"+n.join("&"):"")+("string"==typeof t.fragment?"#"+encodeURI(t.fragment):"")},t}(),xt=new _t;function Tt(t){return t.segments.map(function(t){return kt(t)}).join("/")}function wt(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function St(t){return wt(t).replace(/%3B/gi,";")}function Ot(t){return wt(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function It(t){return decodeURIComponent(t)}function Ct(t){return It(t.replace(/\+/g,"%20"))}function kt(t){return""+Ot(t.path)+(e=t.parameters,Object.keys(e).map(function(t){return";"+Ot(t)+"="+Ot(e[t])}).join(""));var e}var Nt=/^[^\/()?;=#]+/;function Rt(t){var e=t.match(Nt);return e?e[0]:""}var At=/^[^=?&#]+/,Dt=/^[^?&#]+/,Et=function(){function t(t){this.url=t,this.remaining=t}return t.prototype.parseRootSegment=function(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new gt([],{}):new gt([],this.parseChildren())},t.prototype.parseQueryParams=function(){var t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t},t.prototype.parseFragment=function(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null},t.prototype.parseChildren=function(){if(""===this.remaining)return{};this.consumeOptional("/");var t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());var e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n[X]=new gt(t,e)),n},t.prototype.parseSegment=function(){var t=Rt(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");return this.capture(t),new bt(It(t),this.parseMatrixParams())},t.prototype.parseMatrixParams=function(){for(var t={};this.consumeOptional(";");)this.parseParam(t);return t},t.prototype.parseParam=function(t){var e=Rt(this.remaining);if(e){this.capture(e);var n="";if(this.consumeOptional("=")){var a=Rt(this.remaining);a&&this.capture(n=a)}t[It(e)]=It(n)}},t.prototype.parseQueryParam=function(t){var e,n=(e=this.remaining.match(At))?e[0]:"";if(n){this.capture(n);var a="";if(this.consumeOptional("=")){var r=function(t){var e=t.match(Dt);return e?e[0]:""}(this.remaining);r&&this.capture(a=r)}var i=Ct(n),s=Ct(a);if(t.hasOwnProperty(i)){var o=t[i];Array.isArray(o)||(t[i]=o=[o]),o.push(s)}else t[i]=s}},t.prototype.parseParens=function(t){var e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){var n=Rt(this.remaining),a=this.remaining[n.length];if("/"!==a&&")"!==a&&";"!==a)throw new Error("Cannot parse url '"+this.url+"'");var r=void 0;n.indexOf(":")>-1?(r=n.substr(0,n.indexOf(":")),this.capture(r),this.capture(":")):t&&(r=X);var i=this.parseChildren();e[r]=1===Object.keys(i).length?i[X]:new gt([],i),this.consumeOptional("//")}return e},t.prototype.peekStartsWith=function(t){return this.remaining.startsWith(t)},t.prototype.consumeOptional=function(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)},t.prototype.capture=function(t){if(!this.consumeOptional(t))throw new Error('Expected "'+t+'".')},t}(),Lt=function(){function t(t){this._root=t}return Object.defineProperty(t.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),t.prototype.parent=function(t){var e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null},t.prototype.children=function(t){var e=Pt(t,this._root);return e?e.children.map(function(t){return t.value}):[]},t.prototype.firstChild=function(t){var e=Pt(t,this._root);return e&&e.children.length>0?e.children[0].value:null},t.prototype.siblings=function(t){var e=Mt(t,this._root);return e.length<2?[]:e[e.length-2].children.map(function(t){return t.value}).filter(function(e){return e!==t})},t.prototype.pathFromRoot=function(t){return Mt(t,this._root).map(function(t){return t.value})},t}();function Pt(t,e){var n,r;if(t===e.value)return e;try{for(var i=Object(a.__values)(e.children),s=i.next();!s.done;s=i.next()){var o=Pt(t,s.value);if(o)return o}}catch(u){n={error:u}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return null}function Mt(t,e){var n,r;if(t===e.value)return[e];try{for(var i=Object(a.__values)(e.children),s=i.next();!s.done;s=i.next()){var o=Mt(t,s.value);if(o.length)return o.unshift(e),o}}catch(u){n={error:u}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}return[]}var qt=function(){function t(t,e){this.value=t,this.children=e}return t.prototype.toString=function(){return"TreeNode("+this.value+")"},t}();function jt(t){var e={};return t&&t.children.forEach(function(t){return e[t.value.outlet]=t}),e}var Ft=function(t){function e(e,n){var a=t.call(this,e)||this;return a.snapshot=n,Bt(a,e),a}return Object(a.__extends)(e,t),e.prototype.toString=function(){return this.snapshot.toString()},e}(Lt);function zt(t,e){var n=function(t,e){var n=new Vt([],{},{},"",{},X,e,null,t.root,-1,{});return new Ht("",new qt(n,[]))}(t,e),a=new u.a([new bt("",{})]),r=new u.a({}),i=new u.a({}),s=new u.a({}),o=new u.a(""),c=new Gt(a,r,s,o,i,X,e,n.root);return c.snapshot=n.root,new Ft(new qt(c,[]),n)}var Gt=function(){function t(t,e,n,a,r,i,s,o){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=i,this.component=s,this._futureSnapshot=o}return Object.defineProperty(t.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=this.params.pipe(Object(g.a)(function(t){return Q(t)}))),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(g.a)(function(t){return Q(t)}))),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},t}();function Yt(t,e){void 0===e&&(e="emptyOnly");var n=t.pathFromRoot,r=0;if("always"!==e)for(r=n.length-1;r>=1;){var i=n[r],s=n[r-1];if(i.routeConfig&&""===i.routeConfig.path)r--;else{if(s.component)break;r--}}return function(t){return t.reduce(function(t,e){return{params:Object(a.__assign)({},t.params,e.params),data:Object(a.__assign)({},t.data,e.data),resolve:Object(a.__assign)({},t.resolve,e._resolvedData)}},{params:{},data:{},resolve:{}})}(n.slice(r))}var Vt=function(){function t(t,e,n,a,r,i,s,o,u,c,l){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=i,this.component=s,this.routeConfig=o,this._urlSegment=u,this._lastPathIndex=c,this._resolve=l}return Object.defineProperty(t.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"paramMap",{get:function(){return this._paramMap||(this._paramMap=Q(this.params)),this._paramMap},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"queryParamMap",{get:function(){return this._queryParamMap||(this._queryParamMap=Q(this.queryParams)),this._queryParamMap},enumerable:!0,configurable:!0}),t.prototype.toString=function(){return"Route(url:'"+this.url.map(function(t){return t.toString()}).join("/")+"', path:'"+(this.routeConfig?this.routeConfig.path:"")+"')"},t}(),Ht=function(t){function e(e,n){var a=t.call(this,n)||this;return a.url=e,Bt(a,n),a}return Object(a.__extends)(e,t),e.prototype.toString=function(){return Ut(this._root)},e}(Lt);function Bt(t,e){e.value._routerState=t,e.children.forEach(function(e){return Bt(t,e)})}function Ut(t){var e=t.children.length>0?" { "+t.children.map(Ut).join(", ")+" } ":"";return""+t.value+e}function Wt(t){if(t.snapshot){var e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,ut(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),ut(e.params,n.params)||t.params.next(n.params),function(t,e){if(t.length!==e.length)return!1;for(var n=0;n0&&$t(n[0]))throw new Error("Root segment cannot have matrix parameters");var a=n.find(function(t){return"object"==typeof t&&null!=t&&t.outlets});if(a&&a!==lt(n))throw new Error("{outlets:{}} has to be the last command")}return t.prototype.toRoot=function(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]},t}(),Jt=function(){return function(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}}();function Qt(t){return"object"==typeof t&&null!=t&&t.outlets?t.outlets[X]:""+t}function te(t,e,n){if(t||(t=new gt([],{})),0===t.segments.length&&t.hasChildren())return ee(t,e,n);var a=function(t,e,n){for(var a=0,r=e,i={match:!1,pathIndex:0,commandIndex:0};r=n.length)return i;var s=t.segments[r],o=Qt(n[a]),u=a0&&void 0===o)break;if(o&&u&&"object"==typeof u&&void 0===u.outlets){if(!ie(o,u,s))return i;a+=2}else{if(!ie(o,{},s))return i;a++}r++}return{match:!0,pathIndex:r,commandIndex:a}}(t,e,n),r=n.slice(a.commandIndex);if(a.match&&a.pathIndex0?new gt([],((a={})[X]=t,a)):t;return new ht(r,e,n)},t.prototype.expandSegmentGroup=function(t,e,n,a){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(t,e,n).pipe(Object(g.a)(function(t){return new gt([],t)})):this.expandSegment(t,n,e,n.segments,a,!0)},t.prototype.expandChildren=function(t,e,n){var a=this;return function(n,r){if(0===Object.keys(n).length)return Object(s.a)({});var i=[],o=[],u={};return dt(n,function(n,r){var s,c,l=(s=r,c=n,a.expandSegmentGroup(t,e,c,s)).pipe(Object(g.a)(function(t){return u[r]=t}));r===X?i.push(l):o.push(l)}),s.a.apply(null,i.concat(o)).pipe(Object(b.a)(),Object(m.a)(),Object(g.a)(function(){return u}))}(n.children)},t.prototype.expandSegment=function(t,e,n,r,i,o){var u=this;return s.a.apply(void 0,Object(a.__spread)(n)).pipe(Object(g.a)(function(a){return u.expandSegmentAgainstRoute(t,e,n,a,r,i,o).pipe(Object(y.a)(function(t){if(t instanceof le)return Object(s.a)(null);throw t}))}),Object(b.a)(),Object(v.a)(function(t){return!!t}),Object(y.a)(function(t,n){if(t instanceof l.a||"EmptyError"===t.name){if(u.noLeftoversInUrl(e,r,i))return Object(s.a)(new gt([],{}));throw new le(e)}throw t}))},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.expandSegmentAgainstRoute=function(t,e,n,a,r,i,s){return ve(a)!==i?fe(e):void 0===a.redirectTo?this.matchSegmentAgainstRoute(t,e,a,r):s&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i):fe(e)},t.prototype.expandSegmentAgainstRouteUsingRedirect=function(t,e,n,a,r,i){return"**"===a.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,a,i):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i)},t.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(t,e,n,a){var r=this,i=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?pe(i):this.lineralizeSegments(n,i).pipe(Object(_.a)(function(n){var i=new gt(n,{});return r.expandSegment(t,i,e,n,a,!1)}))},t.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(t,e,n,a,r,i){var s=this,o=be(e,a,r),u=o.consumedSegments,c=o.lastChild,l=o.positionalParamSegments;if(!o.matched)return fe(e);var d=this.applyRedirectCommands(u,a.redirectTo,l);return a.redirectTo.startsWith("/")?pe(d):this.lineralizeSegments(a,d).pipe(Object(_.a)(function(a){return s.expandSegment(t,e,n,a.concat(r.slice(c)),i,!1)}))},t.prototype.matchSegmentAgainstRoute=function(t,e,n,r){var i=this;if("**"===n.path)return n.loadChildren?this.configLoader.load(t.injector,n).pipe(Object(g.a)(function(t){return n._loadedConfig=t,new gt(r,{})})):Object(s.a)(new gt(r,{}));var o=be(e,n,r),u=o.consumedSegments,c=o.lastChild;if(!o.matched)return fe(e);var l=r.slice(c);return this.getChildConfig(t,n,r).pipe(Object(_.a)(function(t){var n=t.module,r=t.routes,o=function(t,e,n,r){return n.length>0&&function(t,e,n){return r.some(function(n){return ye(t,e,n)&&ve(n)!==X})}(t,n)?{segmentGroup:me(new gt(e,function(t,e){var n,r,i={};i[X]=e;try{for(var s=Object(a.__values)(t),o=s.next();!o.done;o=s.next()){var u=o.value;""===u.path&&ve(u)!==X&&(i[ve(u)]=new gt([],{}))}}catch(c){n={error:c}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return i}(r,new gt(n,t.children)))),slicedSegments:[]}:0===n.length&&function(t,e,n){return r.some(function(n){return ye(t,e,n)})}(t,n)?{segmentGroup:me(new gt(t.segments,function(t,e,n,r){var i,s,o={};try{for(var u=Object(a.__values)(n),c=u.next();!c.done;c=u.next()){var l=c.value;ye(t,e,l)&&!r[ve(l)]&&(o[ve(l)]=new gt([],{}))}}catch(d){i={error:d}}finally{try{c&&!c.done&&(s=u.return)&&s.call(u)}finally{if(i)throw i.error}}return Object(a.__assign)({},r,o)}(t,n,r,t.children))),slicedSegments:n}:{segmentGroup:t,slicedSegments:n}}(e,u,l,r),c=o.segmentGroup,d=o.slicedSegments;return 0===d.length&&c.hasChildren()?i.expandChildren(n,r,c).pipe(Object(g.a)(function(t){return new gt(u,t)})):0===r.length&&0===d.length?Object(s.a)(new gt(u,{})):i.expandSegment(n,c,r,d,X,!0).pipe(Object(g.a)(function(t){return new gt(u.concat(t.segments),t.children)}))}))},t.prototype.getChildConfig=function(t,e,n){var a=this;return e.children?Object(s.a)(new at(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?Object(s.a)(e._loadedConfig):function(t,e,n){var a=e.canLoad;return a&&0!==a.length?Object(o.a)(a).pipe(Object(g.a)(function(a){var r,i=t.get(a);if(function(t){return t&&ue(t.canLoad)}(i))r=i.canLoad(e,n);else{if(!ue(i))throw new Error("Invalid CanLoad guard");r=i(e,n)}return ft(r)})).pipe(Object(b.a)(),Object(x.a)(function(t){return!0===t})):Object(s.a)(!0)}(t.injector,e,n).pipe(Object(_.a)(function(n){return n?a.configLoader.load(t.injector,e).pipe(Object(g.a)(function(t){return e._loadedConfig=t,t})):function(t){return new c.a(function(e){return e.error(et("Cannot load children because the guard of the route \"path: '"+t.path+"'\" returned false"))})}(e)})):Object(s.a)(new at([],t))},t.prototype.lineralizeSegments=function(t,e){for(var n=[],a=e.root;;){if(n=n.concat(a.segments),0===a.numberOfChildren)return Object(s.a)(n);if(a.numberOfChildren>1||!a.children[X])return he(t.redirectTo);a=a.children[X]}},t.prototype.applyRedirectCommands=function(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)},t.prototype.applyRedirectCreatreUrlTree=function(t,e,n,a){var r=this.createSegmentGroup(t,e.root,n,a);return new ht(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)},t.prototype.createQueryParams=function(t,e){var n={};return dt(t,function(t,a){if("string"==typeof t&&t.startsWith(":")){var r=t.substring(1);n[a]=e[r]}else n[a]=t}),n},t.prototype.createSegmentGroup=function(t,e,n,a){var r=this,i=this.createSegments(t,e.segments,n,a),s={};return dt(e.children,function(e,i){s[i]=r.createSegmentGroup(t,e,n,a)}),new gt(i,s)},t.prototype.createSegments=function(t,e,n,a){var r=this;return e.map(function(e){return e.path.startsWith(":")?r.findPosParam(t,e,a):r.findOrReturn(e,n)})},t.prototype.findPosParam=function(t,e,n){var a=n[e.path.substring(1)];if(!a)throw new Error("Cannot redirect to '"+t+"'. Cannot find '"+e.path+"'.");return a},t.prototype.findOrReturn=function(t,e){var n,r,i=0;try{for(var s=Object(a.__values)(e),o=s.next();!o.done;o=s.next()){var u=o.value;if(u.path===t.path)return e.splice(i),u;i++}}catch(c){n={error:c}}finally{try{o&&!o.done&&(r=s.return)&&r.call(s)}finally{if(n)throw n.error}}return t},t}();function be(t,e,n){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};var a=(e.matcher||nt)(n,t,e);return a?{matched:!0,consumedSegments:a.consumed,lastChild:a.consumed.length,positionalParamSegments:a.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function me(t){if(1===t.numberOfChildren&&t.children[X]){var e=t.children[X];return new gt(t.segments.concat(e.segments),e.children)}return t}function ye(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0!==n.redirectTo}function ve(t){return t.outlet||X}var _e=function(){return function(t){this.path=t,this.route=this.path[this.path.length-1]}}(),xe=function(){return function(t,e){this.component=t,this.route=e}}();function Te(t,e,n){var a=function(t){if(!t)return null;for(var e=t.parent;e;e=e.parent){var n=e.routeConfig;if(n&&n._loadedConfig)return n._loadedConfig}return null}(e);return(a?a.module.injector:n).get(t)}function we(t,e,n,a,r){void 0===r&&(r={canDeactivateChecks:[],canActivateChecks:[]});var i=jt(e);return t.children.forEach(function(t){!function(t,e,n,a,r){void 0===r&&(r={canDeactivateChecks:[],canActivateChecks:[]});var i=t.value,s=e?e.value:null,o=n?n.getContext(t.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){var u=function(t,e,n){if("function"==typeof n)return n(t,e);switch(n){case"pathParamsChange":return!mt(t.url,e.url);case"pathParamsOrQueryParamsChange":return!mt(t.url,e.url)||!ut(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Kt(t,e)||!ut(t.queryParams,e.queryParams);case"paramsChange":default:return!Kt(t,e)}}(s,i,i.routeConfig.runGuardsAndResolvers);u?r.canActivateChecks.push(new _e(a)):(i.data=s.data,i._resolvedData=s._resolvedData),we(t,e,i.component?o?o.children:null:n,a,r),u&&r.canDeactivateChecks.push(new xe(o&&o.outlet&&o.outlet.component||null,s))}else s&&Se(e,o,r),r.canActivateChecks.push(new _e(a)),we(t,null,i.component?o?o.children:null:n,a,r)}(t,i[t.value.outlet],n,a.concat([t.value]),r),delete i[t.value.outlet]}),dt(i,function(t,e){return Se(t,n.getContext(e),r)}),r}function Se(t,e,n){var a=jt(t),r=t.value;dt(a,function(t,a){Se(t,r.component?e?e.children.getContext(a):null:e,n)}),n.canDeactivateChecks.push(new xe(r.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,r))}var Oe=Symbol("INITIAL_VALUE");function Ie(){return Object(T.a)(function(t){return d.b.apply(void 0,Object(a.__spread)(t.map(function(t){return t.pipe(Object(w.a)(1),Object(S.a)(Oe))}))).pipe(Object(O.a)(function(t,e){var n=!1;return e.reduce(function(t,a,r){if(t!==Oe)return t;if(a===Oe&&(n=!0),!n){if(!1===a)return a;if(r===e.length-1||ce(a))return a}return t},t)},Oe),Object(I.a)(function(t){return t!==Oe}),Object(g.a)(function(t){return ce(t)?t:!0===t}),Object(w.a)(1))})}function Ce(t,e){return null!==t&&e&&e(new W(t)),Object(s.a)(!0)}function ke(t,e){return null!==t&&e&&e(new B(t)),Object(s.a)(!0)}function Ne(t,e,n){var a=e.routeConfig?e.routeConfig.canActivate:null;if(!a||0===a.length)return Object(s.a)(!0);var r=a.map(function(a){return Object(f.a)(function(){var r,i=Te(a,e,n);if(function(t){return t&&ue(t.canActivate)}(i))r=ft(i.canActivate(e,t));else{if(!ue(i))throw new Error("Invalid CanActivate guard");r=ft(i(e,t))}return r.pipe(Object(v.a)())})});return Object(s.a)(r).pipe(Ie())}function Re(t,e,n){var a=e[e.length-1],r=e.slice(0,e.length-1).reverse().map(function(t){return function(t){var e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)}).filter(function(t){return null!==t}).map(function(e){return Object(f.a)(function(){var r=e.guards.map(function(r){var i,s=Te(r,e.node,n);if(function(t){return t&&ue(t.canActivateChild)}(s))i=ft(s.canActivateChild(a,t));else{if(!ue(s))throw new Error("Invalid CanActivateChild guard");i=ft(s(a,t))}return i.pipe(Object(v.a)())});return Object(s.a)(r).pipe(Ie())})});return Object(s.a)(r).pipe(Ie())}var Ae=function(){return function(){}}(),De=function(){function t(t,e,n,a,r,i){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=a,this.paramsInheritanceStrategy=r,this.relativeLinkResolution=i}return t.prototype.recognize=function(){try{var t=Pe(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,X),n=new Vt([],Object.freeze({}),Object.freeze(Object(a.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,{},X,this.rootComponentType,null,this.urlTree.root,-1,{}),r=new qt(n,e),i=new Ht(this.url,r);return this.inheritParamsAndData(i._root),Object(s.a)(i)}catch(o){return new c.a(function(t){return t.error(o)})}},t.prototype.inheritParamsAndData=function(t){var e=this,n=t.value,a=Yt(n,this.paramsInheritanceStrategy);n.params=Object.freeze(a.params),n.data=Object.freeze(a.data),t.children.forEach(function(t){return e.inheritParamsAndData(t)})},t.prototype.processSegmentGroup=function(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)},t.prototype.processChildren=function(t,e){var n,a=this,r=yt(e,function(e,n){return a.processSegmentGroup(t,e,n)});return n={},r.forEach(function(t){var e=n[t.value.outlet];if(e){var a=e.url.map(function(t){return t.toString()}).join("/"),r=t.value.url.map(function(t){return t.toString()}).join("/");throw new Error("Two segments cannot have the same outlet name: '"+a+"' and '"+r+"'.")}n[t.value.outlet]=t.value}),r.sort(function(t,e){return t.value.outlet===X?-1:e.value.outlet===X?1:t.value.outlet.localeCompare(e.value.outlet)}),r},t.prototype.processSegment=function(t,e,n,r){var i,s;try{for(var o=Object(a.__values)(t),u=o.next();!u.done;u=o.next()){var c=u.value;try{return this.processSegmentAgainstRoute(c,e,n,r)}catch(l){if(!(l instanceof Ae))throw l}}}catch(d){i={error:d}}finally{try{u&&!u.done&&(s=o.return)&&s.call(o)}finally{if(i)throw i.error}}if(this.noLeftoversInUrl(e,n,r))return[];throw new Ae},t.prototype.noLeftoversInUrl=function(t,e,n){return 0===e.length&&!t.children[n]},t.prototype.processSegmentAgainstRoute=function(t,e,n,r){if(t.redirectTo)throw new Ae;if((t.outlet||X)!==r)throw new Ae;var i,s=[],o=[];if("**"===t.path){var u=n.length>0?lt(n).parameters:{};i=new Vt(n,u,Object.freeze(Object(a.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,je(t),r,t.component,t,Ee(e),Le(e)+n.length,Fe(t))}else{var c=function(t,e,n){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new Ae;return{consumedSegments:[],lastChild:0,parameters:{}}}var r=(e.matcher||nt)(n,t,e);if(!r)throw new Ae;var i={};dt(r.posParams,function(t,e){i[e]=t.path});var s=r.consumed.length>0?Object(a.__assign)({},i,r.consumed[r.consumed.length-1].parameters):i;return{consumedSegments:r.consumed,lastChild:r.consumed.length,parameters:s}}(e,t,n);s=c.consumedSegments,o=n.slice(c.lastChild),i=new Vt(s,c.parameters,Object.freeze(Object(a.__assign)({},this.urlTree.queryParams)),this.urlTree.fragment,je(t),r,t.component,t,Ee(e),Le(e)+s.length,Fe(t))}var l=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),d=Pe(e,s,o,l,this.relativeLinkResolution),f=d.segmentGroup,p=d.slicedSegments;if(0===p.length&&f.hasChildren()){var h=this.processChildren(l,f);return[new qt(i,h)]}if(0===l.length&&0===p.length)return[new qt(i,[])];var g=this.processSegment(l,f,p,X);return[new qt(i,g)]},t}();function Ee(t){for(var e=t;e._sourceSegment;)e=e._sourceSegment;return e}function Le(t){for(var e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;e._sourceSegment;)n+=(e=e._sourceSegment)._segmentIndexShift?e._segmentIndexShift:0;return n-1}function Pe(t,e,n,r,i){if(n.length>0&&function(t,e,n){return r.some(function(n){return Me(t,e,n)&&qe(n)!==X})}(t,n)){var s=new gt(e,function(t,e,n,r){var i,s,o={};o[X]=r,r._sourceSegment=t,r._segmentIndexShift=e.length;try{for(var u=Object(a.__values)(n),c=u.next();!c.done;c=u.next()){var l=c.value;if(""===l.path&&qe(l)!==X){var d=new gt([],{});d._sourceSegment=t,d._segmentIndexShift=e.length,o[qe(l)]=d}}}catch(f){i={error:f}}finally{try{c&&!c.done&&(s=u.return)&&s.call(u)}finally{if(i)throw i.error}}return o}(t,e,r,new gt(n,t.children)));return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:[]}}if(0===n.length&&function(t,e,n){return r.some(function(n){return Me(t,e,n)})}(t,n)){var o=new gt(t.segments,function(t,e,n,r,i,s){var o,u,c={};try{for(var l=Object(a.__values)(r),d=l.next();!d.done;d=l.next()){var f=d.value;if(Me(t,n,f)&&!i[qe(f)]){var p=new gt([],{});p._sourceSegment=t,p._segmentIndexShift="legacy"===s?t.segments.length:e.length,c[qe(f)]=p}}}catch(h){o={error:h}}finally{try{d&&!d.done&&(u=l.return)&&u.call(l)}finally{if(o)throw o.error}}return Object(a.__assign)({},i,c)}(t,e,n,r,t.children,i));return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:n}}var u=new gt(t.segments,t.children);return u._sourceSegment=t,u._segmentIndexShift=e.length,{segmentGroup:u,slicedSegments:n}}function Me(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0===n.redirectTo}function qe(t){return t.outlet||X}function je(t){return t.data||{}}function Fe(t){return t.resolve||{}}function ze(t,e,n,a){var r=Te(t,e,a);return ft(r.resolve?r.resolve(e,n):r(e,n))}function Ge(t){return function(e){return e.pipe(Object(T.a)(function(e){var n=t(e);return n?Object(o.a)(n).pipe(Object(g.a)(function(){return e})):Object(o.a)([e])}))}}var Ye=function(){return function(){}}(),Ve=function(){function t(){}return t.prototype.shouldDetach=function(t){return!1},t.prototype.store=function(t,e){},t.prototype.shouldAttach=function(t){return!1},t.prototype.retrieve=function(t){return null},t.prototype.shouldReuseRoute=function(t,e){return t.routeConfig===e.routeConfig},t}(),He=new i.InjectionToken("ROUTES"),Be=function(){function t(t,e,n,a){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=a}return t.prototype.load=function(t,e){var n=this;return this.onLoadStartListener&&this.onLoadStartListener(e),this.loadModuleFactory(e.loadChildren).pipe(Object(g.a)(function(a){n.onLoadEndListener&&n.onLoadEndListener(e);var r=a.create(t);return new at(ct(r.injector.get(He)).map(ot),r)}))},t.prototype.loadModuleFactory=function(t){var e=this;return"string"==typeof t?Object(o.a)(this.loader.load(t)):ft(t()).pipe(Object(_.a)(function(t){return t instanceof i.NgModuleFactory?Object(s.a)(t):Object(o.a)(e.compiler.compileModuleAsync(t))}))},t}(),Ue=function(){return function(){}}(),We=function(){function t(){}return t.prototype.shouldProcessUrl=function(t){return!0},t.prototype.extract=function(t){return t},t.prototype.merge=function(t,e){return t},t}();function Ke(t){throw t}function $e(t,e,n){return e.parse("/")}function Ze(t,e){return Object(s.a)(null)}var Xe=function(){function t(t,e,n,a,r,s,o,c){var l=this;this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=n,this.location=a,this.config=c,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new p.a,this.errorHandler=Ke,this.malformedUriErrorHandler=$e,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:Ze,afterPreactivation:Ze},this.urlHandlingStrategy=new We,this.routeReuseStrategy=new Ve,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="legacy",this.ngModule=r.get(i.NgModuleRef),this.console=r.get(i["\u0275Console"]);var d=r.get(i.NgZone);this.isNgZoneEnabled=d instanceof i.NgZone,this.resetConfig(c),this.currentUrlTree=new ht(new gt([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Be(s,o,function(t){return l.triggerEvent(new V(t))},function(t){return l.triggerEvent(new H(t))}),this.routerState=zt(this.currentUrlTree,this.rootComponentType),this.transitions=new u.a({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}return t.prototype.setupNavigations=function(t){var e=this,n=this.events;return t.pipe(Object(I.a)(function(t){return 0!==t.id}),Object(g.a)(function(t){return Object(a.__assign)({},t,{extractedUrl:e.urlHandlingStrategy.extract(t.rawUrl)})}),Object(N.a)(function(t){e.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:e.lastSuccessfulNavigation?Object(a.__assign)({},e.lastSuccessfulNavigation,{previousNavigation:null}):null}}),Object(T.a)(function(t){var r,i,c,l=!1,d=!1;return Object(s.a)(t).pipe(Object(T.a)(function(t){var r,i,o,u,c=!e.navigated||t.extractedUrl.toString()!==e.browserUrlTree.toString();if(("reload"===e.onSameUrlNavigation||c)&&e.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return Object(s.a)(t).pipe(Object(T.a)(function(t){var a=e.transitions.getValue();return n.next(new L(t.id,e.serializeUrl(t.extractedUrl),t.source,t.restoredState)),a!==e.transitions.getValue()?h.a:[t]}),Object(T.a)(function(t){return Promise.resolve(t)}),(r=e.ngModule.injector,i=e.configLoader,o=e.urlSerializer,u=e.config,function(t){return t.pipe(Object(T.a)(function(t){return function(e,n,a,r,i){return new ge(e,n,a,t.extractedUrl,i).apply()}(r,i,o,0,u).pipe(Object(g.a)(function(e){return Object(a.__assign)({},t,{urlAfterRedirects:e})}))}))}),Object(N.a)(function(t){e.currentNavigation=Object(a.__assign)({},e.currentNavigation,{finalUrl:t.urlAfterRedirects})}),function(t,n,r,i,s){return function(r){return r.pipe(Object(_.a)(function(r){return function(t,e,n,a,r,i){return void 0===r&&(r="emptyOnly"),void 0===i&&(i="legacy"),new De(t,e,n,a,r,i).recognize()}(t,n,r.urlAfterRedirects,(o=r.urlAfterRedirects,e.serializeUrl(o)),i,s).pipe(Object(g.a)(function(t){return Object(a.__assign)({},r,{targetSnapshot:t})}));var o}))}}(e.rootComponentType,e.config,0,e.paramsInheritanceStrategy,e.relativeLinkResolution),Object(N.a)(function(t){"eager"===e.urlUpdateStrategy&&(t.extras.skipLocationChange||e.setBrowserUrl(t.urlAfterRedirects,!!t.extras.replaceUrl,t.id),e.browserUrlTree=t.urlAfterRedirects)}),Object(N.a)(function(t){var a=new j(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);n.next(a)}));if(c&&e.rawUrlTree&&e.urlHandlingStrategy.shouldProcessUrl(e.rawUrlTree)){var l=t.extractedUrl,d=t.source,f=t.restoredState,p=t.extras,b=new L(t.id,e.serializeUrl(l),d,f);n.next(b);var m=zt(l,e.rootComponentType).snapshot;return Object(s.a)(Object(a.__assign)({},t,{targetSnapshot:m,urlAfterRedirects:l,extras:Object(a.__assign)({},p,{skipLocationChange:!1,replaceUrl:!1})}))}return e.rawUrlTree=t.rawUrl,t.resolve(null),h.a}),Ge(function(t){var n=t.extras;return e.hooks.beforePreactivation(t.targetSnapshot,{navigationId:t.id,appliedUrlTree:t.extractedUrl,rawUrlTree:t.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),Object(N.a)(function(t){var n=new F(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}),Object(g.a)(function(t){return Object(a.__assign)({},t,{guards:(n=t.targetSnapshot,r=t.currentSnapshot,i=e.rootContexts,s=n._root,we(s,r?r._root:null,i,[s.value]))});var n,r,i,s}),function(t,e){return function(n){return n.pipe(Object(_.a)(function(n){var r=n.targetSnapshot,i=n.currentSnapshot,u=n.guards,c=u.canActivateChecks,l=u.canDeactivateChecks;return 0===l.length&&0===c.length?Object(s.a)(Object(a.__assign)({},n,{guardsResult:!0})):function(t,e,n,a){return Object(o.a)(t).pipe(Object(_.a)(function(t){return function(t,e,n,a,r){var i=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!i||0===i.length)return Object(s.a)(!0);var o=i.map(function(i){var s,o=Te(i,e,r);if(function(t){return t&&ue(t.canDeactivate)}(o))s=ft(o.canDeactivate(t,e,n,a));else{if(!ue(o))throw new Error("Invalid CanDeactivate guard");s=ft(o(t,e,n,a))}return s.pipe(Object(v.a)())});return Object(s.a)(o).pipe(Ie())}(t.component,t.route,n,e,a)}),Object(v.a)(function(t){return!0!==t},!0))}(l,r,i,t).pipe(Object(_.a)(function(n){return n&&"boolean"==typeof n?function(t,e,n,a){return Object(o.a)(e).pipe(Object(C.a)(function(e){return Object(o.a)([ke(e.route.parent,a),Ce(e.route,a),Re(t,e.path,n),Ne(t,e.route,n)]).pipe(Object(b.a)(),Object(v.a)(function(t){return!0!==t},!0))}),Object(v.a)(function(t){return!0!==t},!0))}(r,c,t,e):Object(s.a)(n)}),Object(g.a)(function(t){return Object(a.__assign)({},n,{guardsResult:t})}))}))}}(e.ngModule.injector,function(t){return e.triggerEvent(t)}),Object(N.a)(function(t){if(ce(t.guardsResult)){var n=et('Redirecting to "'+e.serializeUrl(t.guardsResult)+'"');throw n.url=t.guardsResult,n}}),Object(N.a)(function(t){var n=new z(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);e.triggerEvent(n)}),Object(I.a)(function(t){if(!t.guardsResult){e.resetUrlToCurrentUrlTree();var a=new M(t.id,e.serializeUrl(t.extractedUrl),"");return n.next(a),t.resolve(!1),!1}return!0}),Ge(function(t){if(t.guards.canActivateChecks.length)return Object(s.a)(t).pipe(Object(N.a)(function(t){var n=new G(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}),(n=e.paramsInheritanceStrategy,r=e.ngModule.injector,function(t){return t.pipe(Object(_.a)(function(t){var e=t.targetSnapshot,i=t.guards.canActivateChecks;return i.length?Object(o.a)(i).pipe(Object(C.a)(function(t){return function(t,n,r,i){return function(t,e,n,a){var r=Object.keys(t);if(0===r.length)return Object(s.a)({});if(1===r.length){var i=r[0];return ze(t[i],e,n,a).pipe(Object(g.a)(function(t){var e;return(e={})[i]=t,e}))}var u={};return Object(o.a)(r).pipe(Object(_.a)(function(r){return ze(t[r],e,n,a).pipe(Object(g.a)(function(t){return u[r]=t,t}))})).pipe(Object(m.a)(),Object(g.a)(function(){return u}))}(t._resolve,t,e,i).pipe(Object(g.a)(function(e){return t._resolvedData=e,t.data=Object(a.__assign)({},t.data,Yt(t,r).resolve),null}))}(t.route,0,n,r)}),Object(k.a)(function(t,e){return t}),Object(g.a)(function(e){return t})):Object(s.a)(t)}))}),Object(N.a)(function(t){var n=new Y(t.id,e.serializeUrl(t.extractedUrl),e.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.triggerEvent(n)}));var n,r}),Ge(function(t){var n=t.extras;return e.hooks.afterPreactivation(t.targetSnapshot,{navigationId:t.id,appliedUrlTree:t.extractedUrl,rawUrlTree:t.rawUrl,skipLocationChange:!!n.skipLocationChange,replaceUrl:!!n.replaceUrl})}),Object(g.a)(function(t){var n,r,i,s=(i=function t(e,n,r){if(r&&e.shouldReuseRoute(n.value,r.value.snapshot)){(l=r.value)._futureSnapshot=n.value;var i=function(e,n,r){return n.children.map(function(n){var i,s;try{for(var o=Object(a.__values)(r.children),u=o.next();!u.done;u=o.next()){var c=u.value;if(e.shouldReuseRoute(c.value.snapshot,n.value))return t(e,n,c)}}catch(l){i={error:l}}finally{try{u&&!u.done&&(s=o.return)&&s.call(o)}finally{if(i)throw i.error}}return t(e,n)})}(e,n,r);return new qt(l,i)}var s=e.retrieve(n.value);if(s){var o=s.route;return function t(e,n){if(e.value.routeConfig!==n.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(e.children.length!==n.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");n.value._futureSnapshot=e.value;for(var a=0;ao;){if(u-=o,!(s=s.parent))throw new Error("Invalid number of '../'");o=s.segments.length}return new Jt(s,!1,o-u)}()}(s,0,t),u=o.processChildren?ee(o.segmentGroup,o.index,s.commands):te(o.segmentGroup,o.index,s.commands);return Zt(o.segmentGroup,u,e,r,i)}(l,this.currentUrlTree,t,f,d)},t.prototype.navigateByUrl=function(t,e){void 0===e&&(e={skipLocationChange:!1}),Object(i.isDevMode)()&&this.isNgZoneEnabled&&!i.NgZone.isInAngularZone()&&this.console.warn("Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?");var n=ce(t)?t:this.parseUrl(t),a=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(a,"imperative",null,e)},t.prototype.navigate=function(t,e){return void 0===e&&(e={skipLocationChange:!1}),function(t){for(var e=0;e0},e.prototype.tagName=function(t){return t.tagName},e.prototype.attributeMap=function(t){for(var e=new Map,n=t.attributes,a=0;a0;o||(o=t[s]=[]);var c=at(e)?Zone.root:Zone.current;if(0===o.length)o.push({zone:c,handler:r});else{for(var l=!1,d=0;d-1},e}(L),dt=["alt","control","meta","shift"],ft={alt:function(t){return t.altKey},control:function(t){return t.ctrlKey},meta:function(t){return t.metaKey},shift:function(t){return t.shiftKey}},pt=function(t){function e(e){return t.call(this,e)||this}var n;return Object(a.__extends)(e,t),n=e,e.prototype.supports=function(t){return null!=n.parseEventName(t)},e.prototype.addEventListener=function(t,e,a){var r=n.parseEventName(e),i=n.eventCallback(r.fullKey,a,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return o().onAndCancel(t,r.domEventName,i)})},e.parseEventName=function(t){var e=t.toLowerCase().split("."),a=e.shift();if(0===e.length||"keydown"!==a&&"keyup"!==a)return null;var r=n._normalizeKey(e.pop()),i="";if(dt.forEach(function(t){var n=e.indexOf(t);n>-1&&(e.splice(n,1),i+=t+".")}),i+=r,0!=e.length||0===r.length)return null;var s={};return s.domEventName=a,s.fullKey=i,s},e.getEventFullKey=function(t){var e="",n=o().getEventKey(t);return" "===(n=n.toLowerCase())?n="space":"."===n&&(n="dot"),dt.forEach(function(a){a!=n&&(0,ft[a])(t)&&(e+=a+".")}),e+=n},e.eventCallback=function(t,e,a){return function(r){n.getEventFullKey(r)===t&&a.runGuarded(function(){return e(r)})}},e._normalizeKey=function(t){switch(t){case"esc":return"escape";default:return t}},e}(L),ht=function(){return function(){}}(),gt=function(t){function e(e){var n=t.call(this)||this;return n._doc=e,n}return Object(a.__extends)(e,t),e.prototype.sanitize=function(t,e){if(null==e)return null;switch(t){case i.SecurityContext.NONE:return e;case i.SecurityContext.HTML:return e instanceof mt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),Object(i["\u0275_sanitizeHtml"])(this._doc,String(e)));case i.SecurityContext.STYLE:return e instanceof yt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),Object(i["\u0275_sanitizeStyle"])(e));case i.SecurityContext.SCRIPT:if(e instanceof vt)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case i.SecurityContext.URL:return e instanceof xt||e instanceof _t?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),Object(i["\u0275_sanitizeUrl"])(String(e)));case i.SecurityContext.RESOURCE_URL:if(e instanceof xt)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+t+" (see http://g.co/ng/security#xss)")}},e.prototype.checkNotSafeValue=function(t,e){if(t instanceof bt)throw new Error("Required a safe "+e+", got a "+t.getTypeName()+" (see http://g.co/ng/security#xss)")},e.prototype.bypassSecurityTrustHtml=function(t){return new mt(t)},e.prototype.bypassSecurityTrustStyle=function(t){return new yt(t)},e.prototype.bypassSecurityTrustScript=function(t){return new vt(t)},e.prototype.bypassSecurityTrustUrl=function(t){return new _t(t)},e.prototype.bypassSecurityTrustResourceUrl=function(t){return new xt(t)},e}(ht),bt=function(){function t(t){this.changingThisBreaksApplicationSecurity=t}return t.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},t}(),mt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"HTML"},e}(bt),yt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"Style"},e}(bt),vt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"Script"},e}(bt),_t=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"URL"},e}(bt),xt=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.getTypeName=function(){return"ResourceURL"},e}(bt),Tt=[{provide:i.PLATFORM_ID,useValue:r["\u0275PLATFORM_BROWSER_ID"]},{provide:i.PLATFORM_INITIALIZER,useValue:Ot,multi:!0},{provide:r.PlatformLocation,useClass:_,deps:[y]},{provide:y,useFactory:Ct,deps:[]}],wt=[{provide:i.Sanitizer,useExisting:ht},{provide:ht,useClass:gt,deps:[y]}],St=Object(i.createPlatformFactory)(i.platformCore,"browser",Tt);function Ot(){b.makeCurrent(),S.init()}function It(){return new i.ErrorHandler}function Ct(){return document}var kt=[wt,{provide:i["\u0275APP_ROOT"],useValue:!0},{provide:i.ErrorHandler,useFactory:It,deps:[]},{provide:D,useClass:it,multi:!0,deps:[y,i.NgZone,i.PLATFORM_ID]},{provide:D,useClass:pt,multi:!0,deps:[y]},{provide:D,useClass:lt,multi:!0,deps:[y,ot,i["\u0275Console"],[new i.Optional,ut]]},{provide:ot,useClass:ct,deps:[]},{provide:B,useClass:B,deps:[E,M]},{provide:i.RendererFactory2,useExisting:B},{provide:P,useExisting:M},{provide:M,useClass:M,deps:[y]},{provide:i.Testability,useClass:i.Testability,deps:[i.NgZone]},{provide:E,useClass:E,deps:[D,i.NgZone]},A],Nt=function(){function t(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}var e;return e=t,t.withServerTransition=function(t){return{ngModule:e,providers:[{provide:i.APP_ID,useValue:t.appId},{provide:x,useExisting:i.APP_ID},w]}},t}();function Rt(){return new At(Object(i.inject)(y))}var At=function(){function t(t){this._doc=t,this._dom=o()}return t.prototype.addTag=function(t,e){return void 0===e&&(e=!1),t?this._getOrCreateElement(t,e):null},t.prototype.addTags=function(t,e){var n=this;return void 0===e&&(e=!1),t?t.reduce(function(t,a){return a&&t.push(n._getOrCreateElement(a,e)),t},[]):[]},t.prototype.getTag=function(t){return t&&this._dom.querySelector(this._doc,"meta["+t+"]")||null},t.prototype.getTags=function(t){if(!t)return[];var e=this._dom.querySelectorAll(this._doc,"meta["+t+"]");return e?[].slice.call(e):[]},t.prototype.updateTag=function(t,e){if(!t)return null;e=e||this._parseSelector(t);var n=this.getTag(e);return n?this._setMetaElementAttributes(t,n):this._getOrCreateElement(t,!0)},t.prototype.removeTag=function(t){this.removeTagElement(this.getTag(t))},t.prototype.removeTagElement=function(t){t&&this._dom.remove(t)},t.prototype._getOrCreateElement=function(t,e){if(void 0===e&&(e=!1),!e){var n=this._parseSelector(t),a=this.getTag(n);if(a&&this._containsAttributes(t,a))return a}var r=this._dom.createElement("meta");this._setMetaElementAttributes(t,r);var i=this._dom.getElementsByTagName(this._doc,"head")[0];return this._dom.appendChild(i,r),r},t.prototype._setMetaElementAttributes=function(t,e){var n=this;return Object.keys(t).forEach(function(a){return n._dom.setAttribute(e,a,t[a])}),e},t.prototype._parseSelector=function(t){var e=t.name?"name":"property";return e+'="'+t[e]+'"'},t.prototype._containsAttributes=function(t,e){var n=this;return Object.keys(t).every(function(a){return n._dom.getAttribute(e,a)===t[a]})},t.ngInjectableDef=Object(i.defineInjectable)({factory:Rt,token:t,providedIn:"root"}),t}();function Dt(){return new Et(Object(i.inject)(y))}var Et=function(){function t(t){this._doc=t}return t.prototype.getTitle=function(){return o().getTitle(this._doc)},t.prototype.setTitle=function(t){o().setTitle(this._doc,t)},t.ngInjectableDef=Object(i.defineInjectable)({factory:Dt,token:t,providedIn:"root"}),t}(),Lt="undefined"!=typeof window&&window||{},Pt=function(){return function(t,e){this.msPerTick=t,this.numTicks=e}}(),Mt=function(){function t(t){this.appRef=t.injector.get(i.ApplicationRef)}return t.prototype.timeChangeDetection=function(t){var e=t&&t.record,n=null!=Lt.console.profile;e&&n&&Lt.console.profile("Change Detection");for(var a=o().performanceNow(),r=0;r<5||o().performanceNow()-a<500;)this.appRef.tick(),r++;var i=o().performanceNow();e&&n&&Lt.console.profileEnd("Change Detection");var s=(i-a)/r;return Lt.console.log("ran "+r+" change detection cycles"),Lt.console.log(s.toFixed(2)+" ms per check"),new Pt(s,r)},t}(),qt="profiler";function jt(t){return O(qt,new Mt(t)),t}function Ft(){O(qt,null)}function zt(t){var e={"&":"&a;",'"':"&q;","'":"&s;","<":"&l;",">":"&g;"};return t.replace(/[&"'<>]/g,function(t){return e[t]})}function Gt(t){return t}var Yt=function(){function t(){this.store={},this.onSerializeCallbacks={}}var e;return e=t,t.init=function(t){var n=new e;return n.store=t,n},t.prototype.get=function(t,e){return void 0!==this.store[t]?this.store[t]:e},t.prototype.set=function(t,e){this.store[t]=e},t.prototype.remove=function(t){delete this.store[t]},t.prototype.hasKey=function(t){return this.store.hasOwnProperty(t)},t.prototype.onSerialize=function(t,e){this.onSerializeCallbacks[t]=e},t.prototype.toJson=function(){for(var t in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(t))try{this.store[t]=this.onSerializeCallbacks[t]()}catch(e){console.warn("Exception in onSerialize callback: ",e)}return JSON.stringify(this.store)},t}();function Vt(t,e){var n,a=t.getElementById(e+"-state"),r={};if(a&&a.textContent)try{r=JSON.parse((n={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"},a.textContent.replace(/&[^;]+;/g,function(t){return n[t]})))}catch(i){console.warn("Exception while restoring TransferState for app "+e,i)}return Yt.init(r)}var Ht=function(){return function(){}}(),Bt=function(){function t(){}return t.all=function(){return function(t){return!0}},t.css=function(t){return function(e){return null!=e.nativeElement&&o().elementMatches(e.nativeElement,t)}},t.directive=function(t){return function(e){return-1!==e.providerTokens.indexOf(t)}},t}(),Ut=new i.Version("7.2.6")},Zduo:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(t){return"p"===t.charAt(0).toLowerCase()},meridiem:function(t,e,n){return t>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}()},Zn8D:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("psW0"),r=n("mChF");function i(t){return void 0===t&&(t=Number.POSITIVE_INFINITY),Object(a.a)(r.a,t)}},a0VL:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(t){this.datePipe=t}return t.prototype.transform=function(t){return null===t||""===t?"":this.datePipe.transform(t,"shortDate")+" "+this.datePipe.transform(t,"mediumTime")},t}()},a278:function(t,e,n){"use strict";var a=n("CcnG"),r=n("QC43"),i=n("XFyV"),s=n("TZo1"),o=n("9Kw/"),u=n("Jm/i"),c=n("gIcY"),l=n("ANnk"),d=n("f/UV"),f=n("aexS"),p=n("Ip0R");n("insk"),n("mSOc"),n("ZYjt"),n("20UP"),n("+0ag"),n.d(e,"a",function(){return h}),n.d(e,"b",function(){return _});var h=a["\u0275crt"]({encapsulation:0,styles:[[".grafana[_ngcontent-%COMP%]{width:100%;height:600px;z-index:0}.grafana_one[_ngcontent-%COMP%]{height:400px}.grafana_two[_ngcontent-%COMP%]{height:750px}.grafana_three[_ngcontent-%COMP%]{height:900px}.timepicker[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{display:inline-block}.timepicker[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{font-size:1.05em;padding:5px!important}button[_ngcontent-%COMP%]{margin-bottom:10px;margin-left:10px;float:right}button[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:14px;padding:2px}.dropdown-menu[_ngcontent-%COMP%]{top:20px;right:20px;left:auto}"]],data:{}});function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,r.b,r.a)),a["\u0275did"](1,49152,null,0,i.a,[],null,null),(t()(),a["\u0275ted"](-1,0,["Loading panel data..."]))],null,null)}function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"cd-info-panel",[],null,null,null,s.b,s.a)),a["\u0275did"](1,49152,null,0,o.a,[u.a],null,null),(t()(),a["\u0275ted"](-1,0,["Please consult the "])),(t()(),a["\u0275eld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["documentation"])),(t()(),a["\u0275ted"](-1,0,[" on how to configure and enable the monitoring functionality."]))],null,function(t,e){t(e,3,0,a["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"cd-info-panel",[],null,null,null,s.b,s.a)),a["\u0275did"](1,49152,null,0,o.a,[u.a],null,null),(t()(),a["\u0275ted"](-1,0,["Grafana Dashboard doesn't exist. Please refer to "])),(t()(),a["\u0275eld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["documentation"])),(t()(),a["\u0275ted"](-1,0,[" on how to add dashboards to Grafana."]))],null,function(t,e){t(e,3,0,a["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["\u0275did"](1,147456,null,0,c.v,[a.ElementRef,a.Renderer2,[2,c.z]],{ngValue:[0,"ngValue"]},null),a["\u0275did"](2,147456,null,0,c.G,[a.ElementRef,a.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),a["\u0275ted"](3,null,[""," "]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.name)})}function v(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,21,"div",[["class","row"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,16,"div",[["class","col-md-12 timepicker"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,2,"label",[["class","control-label col-sm-1"],["for","timepicker-control"]],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Grafana Time Picker"])),(t()(),a["\u0275eld"](5,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,8,"select",[["class","form-control "],["id","timepicker"],["name","timepicker-control"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],function(t,e,n){var r=!0,i=t.component;return"change"===e&&(r=!1!==a["\u0275nov"](t,7).onChange(n.target.value)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,7).onTouched()&&r),"ngModelChange"===e&&(r=!1!==(i.time=n)&&r),"ngModelChange"===e&&(r=!1!==i.onTimepickerChange(n)&&r),r},null,null)),a["\u0275did"](7,16384,null,0,c.z,[a.Renderer2,a.ElementRef],null,null),a["\u0275prd"](1024,null,c.p,function(t){return[t]},[c.z]),a["\u0275did"](9,671744,null,0,c.u,[[8,null],[8,null],[8,null],[6,c.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),a["\u0275prd"](2048,null,c.q,null,[c.u]),a["\u0275did"](11,16384,null,0,c.r,[[4,c.q]],null,null),a["\u0275did"](12,4210688,null,0,l.a,[[2,d.a],f.a,a.ElementRef],null,null),(t()(),a["\u0275and"](16777216,null,null,1,null,y)),a["\u0275did"](14,278528,null,0,p.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](15,0,null,null,1,"button",[["class","btn btn-sm"],["title","Reset Settings"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.reset()&&a),a},null,null)),(t()(),a["\u0275eld"](16,0,null,null,0,"i",[["class","fa fa-undo"]],null,null,null,null,null)),(t()(),a["\u0275eld"](17,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),a["\u0275eld"](18,0,null,null,3,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),a["\u0275eld"](19,0,null,null,2,"div",[["class","grafana-container"]],null,null,null,null,null)),(t()(),a["\u0275eld"](20,0,[["iframe",1]],null,1,"iframe",[["class","grafana"],["frameborder","0"],["id","iframe"],["scrolling","no"]],[[8,"src",5]],null,null,null,null)),a["\u0275did"](21,278528,null,0,p.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null)],function(t,e){var n=e.component;t(e,9,0,"timepicker-control",n.time),t(e,14,0,n.grafanaTimes),t(e,21,0,"grafana",n.panelStyle)},function(t,e){var n=e.component;t(e,6,0,a["\u0275nov"](e,11).ngClassUntouched,a["\u0275nov"](e,11).ngClassTouched,a["\u0275nov"](e,11).ngClassPristine,a["\u0275nov"](e,11).ngClassDirty,a["\u0275nov"](e,11).ngClassValid,a["\u0275nov"](e,11).ngClassInvalid,a["\u0275nov"](e,11).ngClassPending),t(e,20,0,n.grafanaSrc)})}function _(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,g)),a["\u0275did"](1,16384,null,0,p.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,b)),a["\u0275did"](3,16384,null,0,p.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,m)),a["\u0275did"](5,16384,null,0,p.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,v)),a["\u0275did"](7,16384,null,0,p.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.loading&&n.grafanaExist),t(e,3,0,!n.grafanaExist),t(e,5,0,!n.dashboardExist),t(e,7,0,n.grafanaExist&&n.dashboardExist)},null)}},a40w:function(t,e,n){"use strict";var a=n("CcnG"),r=n("EEJc"),i=n("ajRT"),s=n("gIcY"),o=n("Ip0R"),u=n("gp3X"),c=n("sb0X"),l=n("KVJa"),d=n("Z21x"),f=n("sne2"),p=n("OLbh"),h=n("DQlY");n.d(e,"a",function(){return v});var g=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,19,"cd-modal",[],null,[[null,"hide"]],function(t,e,n){var a=!0;return"hide"===e&&(a=!1!==t.component.cancel()&&a),a},r.c,r.b)),a["\u0275did"](1,49152,null,0,i.a,[],null,{hide:"hide"}),(t()(),a["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),a["\u0275ted"](3,null,["",""])),(t()(),a["\u0275eld"](4,0,null,1,15,null,null,null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,14,"form",[["class","form-horizontal"],["name","confirmationForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["\u0275nov"](t,7).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["\u0275nov"](t,7).onReset()&&r),r},null,null)),a["\u0275did"](6,16384,null,0,s.D,[],null,null),a["\u0275did"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["\u0275prd"](2048,null,s.d,null,[s.l]),a["\u0275did"](9,16384,null,0,s.s,[[4,s.d]],null,null),(t()(),a["\u0275eld"](10,0,null,null,2,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,b)),a["\u0275did"](12,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["\u0275eld"](13,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["\u0275eld"](14,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](15,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0,r=t.component;return"submitAction"===e&&(a=!1!==r.onSubmit(r.confirmationForm.value)&&a),a},u.b,u.a)),a["\u0275did"](16,114688,null,0,c.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["\u0275ted"](17,0,[" "," "])),(t()(),a["\u0275eld"](18,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,l.b,l.a)),a["\u0275did"](19,49152,null,0,d.a,[o.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,7,0,n.confirmationForm),t(e,12,0,n.bodyContext,n.bodyTpl),t(e,16,0,n.confirmationForm),t(e,19,0,"Cancel",n.boundCancel)},function(t,e){var n=e.component;t(e,3,0,n.titleText),t(e,5,0,a["\u0275nov"](e,9).ngClassUntouched,a["\u0275nov"](e,9).ngClassTouched,a["\u0275nov"](e,9).ngClassPristine,a["\u0275nov"](e,9).ngClassDirty,a["\u0275nov"](e,9).ngClassValid,a["\u0275nov"](e,9).ngClassInvalid,a["\u0275nov"](e,9).ngClassPending),t(e,17,0,n.buttonText)})}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"cd-confirmation-modal",[],null,null,null,m,g)),a["\u0275did"](1,114688,null,0,p.a,[h.a],null,null)],function(t,e){t(e,1,0)},null)}var v=a["\u0275ccf"]("cd-confirmation-modal",p.a,y,{},{},[])},a96k:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(t,e,n,a){void 0===a&&(a=!0),this.selected=t,this.name=e,this.description=n,this.enabled=a}}()},aB2c:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),t.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:r.Line,dataElementType:r.Point,linkScales:i.noop,update:function(t){var e=this,n=e.getMeta(),a=n.data,r=n.dataset.custom||{},s=e.getDataset(),o=e.chart.options.elements.line,u=e.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),i.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:i.valueOrDefault(s.lineTension,o.tension),backgroundColor:r.backgroundColor?r.backgroundColor:s.backgroundColor||o.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:s.borderWidth||o.borderWidth,borderColor:r.borderColor?r.borderColor:s.borderColor||o.borderColor,fill:r.fill?r.fill:void 0!==s.fill?s.fill:o.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:s.borderCapStyle||o.borderCapStyle,borderDash:r.borderDash?r.borderDash:s.borderDash||o.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:s.borderDashOffset||o.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:s.borderJoinStyle||o.borderJoinStyle}}),n.dataset.pivot(),i.each(a,function(n,a){e.updateElement(n,a,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var a=this,r=t.custom||{},s=a.getDataset(),o=a.chart.scale,u=a.chart.options.elements.point,c=o.getPointPositionForValue(e,s.data[e]);void 0!==s.radius&&void 0===s.pointRadius&&(s.pointRadius=s.radius),void 0!==s.hitRadius&&void 0===s.pointHitRadius&&(s.pointHitRadius=s.hitRadius),i.extend(t,{_datasetIndex:a.index,_index:e,_scale:o,_model:{x:n?o.xCenter:c.x,y:n?o.yCenter:c.y,tension:r.tension?r.tension:i.valueOrDefault(s.lineTension,a.chart.options.elements.line.tension),radius:r.radius?r.radius:i.valueAtIndexOrDefault(s.pointRadius,e,u.radius),backgroundColor:r.backgroundColor?r.backgroundColor:i.valueAtIndexOrDefault(s.pointBackgroundColor,e,u.backgroundColor),borderColor:r.borderColor?r.borderColor:i.valueAtIndexOrDefault(s.pointBorderColor,e,u.borderColor),borderWidth:r.borderWidth?r.borderWidth:i.valueAtIndexOrDefault(s.pointBorderWidth,e,u.borderWidth),pointStyle:r.pointStyle?r.pointStyle:i.valueAtIndexOrDefault(s.pointStyle,e,u.pointStyle),rotation:r.rotation?r.rotation:i.valueAtIndexOrDefault(s.pointRotation,e,u.rotation),hitRadius:r.hitRadius?r.hitRadius:i.valueAtIndexOrDefault(s.pointHitRadius,e,u.hitRadius)}}),t._model.skip=r.skip?r.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();i.each(e.data,function(n,a){var r=n._model,s=i.splineCurve(i.previousItem(e.data,a,!0)._model,r,i.nextItem(e.data,a,!0)._model,r.tension);r.controlPointPreviousX=Math.max(Math.min(s.previous.x,t.right),t.left),r.controlPointPreviousY=Math.max(Math.min(s.previous.y,t.bottom),t.top),r.controlPointNextX=Math.max(Math.min(s.next.x,t.right),t.left),r.controlPointNextY=Math.max(Math.min(s.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},a=t._index,r=t._model;t.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth,radius:r.radius},r.radius=n.hoverRadius?n.hoverRadius:i.valueAtIndexOrDefault(e.pointHoverRadius,a,this.chart.options.elements.point.hoverRadius),r.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:i.valueAtIndexOrDefault(e.pointHoverBackgroundColor,a,i.getHoverColor(r.backgroundColor)),r.borderColor=n.hoverBorderColor?n.hoverBorderColor:i.valueAtIndexOrDefault(e.pointHoverBorderColor,a,i.getHoverColor(r.borderColor)),r.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:i.valueAtIndexOrDefault(e.pointHoverBorderWidth,a,r.borderWidth)}})}},aGNc:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t){return function(e){return e.lift(new s(t))}}var s=function(){function t(t){this.value=t}return t.prototype.call=function(t,e){return e.subscribe(new o(t,this.value))},t}(),o=function(t){function e(e,n){var a=t.call(this,e)||this;return a.value=n,a}return a.__extends(e,t),e.prototype._next=function(t){this.destination.next(this.value)},e}(r.a)},aIdf:function(t,e,n){!function(t){"use strict";function e(t,e,n){return t+" "+function(t,e){return 2===e?function(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}(t):t}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],t)}n("wd/R").defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:function(t){switch(function t(e){return e>9?t(e%10):e}(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(t){return t+(1===t?"a\xf1":"vet")},week:{dow:1,doy:4}})}()},aIsn:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},aQkU:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-\u0435\u0432":0===n?t+"-\u0435\u043d":n>10&&n<20?t+"-\u0442\u0438":1===e?t+"-\u0432\u0438":2===e?t+"-\u0440\u0438":7===e||8===e?t+"-\u043c\u0438":t+"-\u0442\u0438"},week:{dow:1,doy:7}})}()},aTeT:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi"}(e.SortType||(e.SortType={}))},aXbf:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("LvDl"),r=n("CcnG"),i=function(){function t(){}return t.prototype.format_number=function(t,e,n,r){if(void 0===r&&(r=1),a.isString(t)&&(t=Number(t)),!a.isNumber(t))return"-";var i=t<1?0:Math.floor(Math.log(t)/Math.log(e));i=i>=n.length?n.length-1:i;var s=a.round(t/Math.pow(e,i),r).toString();return""===s?"-":(""!==n[i]&&(s=s+" "+n[i]),s)},t.prototype.toBytes=function(t,e){void 0===e&&(e=null);var n=["b","k","m","g","t","p","e","z","y"],r=RegExp("^(\\d+(.\\d+)?) ?(["+n.join("")+"]?(b|ib|B/s)?)?$","i").exec(t);if(null===r)return e;var i=parseFloat(r[1]);return a.isString(r[3])&&(i*=Math.pow(1024,n.indexOf(r[3].toLowerCase()[0]))),Math.round(i)},t.prototype.toMilliseconds=function(t){var e=/^\s*(\d+)\s*(ms)?\s*$/i.exec(t);return null!==e?+e[1]:0},t.prototype.toIops=function(t){var e=/^\s*(\d+)\s*(IOPS)?\s*$/i.exec(t);return null!==e?+e[1]:0},t.ngInjectableDef=r.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}()},ad02:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){return function(n){return n.lift(new s(t,e))}}var s=function(){function t(t,e){this.compare=t,this.keySelector=e}return t.prototype.call=function(t,e){return e.subscribe(new o(t,this.compare,this.keySelector))},t}(),o=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.keySelector=a,r.hasKey=!1,"function"==typeof n&&(r.compare=n),r}return a.__extends(e,t),e.prototype.compare=function(t,e){return t===e},e.prototype._next=function(t){var e;try{var n=this.keySelector;e=n?n(t):t}catch(r){return this.destination.error(r)}var a=!1;if(this.hasKey)try{a=(0,this.compare)(this.key,e)}catch(r){return this.destination.error(r)}else this.hasKey=!0;a||(this.key=e,this.destination.next(t))},e}(r.a)},ae7Z:function(t,e,n){"use strict";function a(t){var e={left:[],center:[],right:[]};if(t)for(var n=0,a=t;n0&&this.destination.next(e),t.prototype._complete.call(this)},e}(g.a),v=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.bufferSize=n,r.startBufferEvery=a,r.buffers=[],r.count=0,r}return a.__extends(e,t),e.prototype._next=function(t){var e=this.bufferSize,n=this.startBufferEvery,a=this.buffers,r=this.count;this.count++,r%n==0&&a.push([]);for(var i=a.length;i--;){var s=a[i];s.push(t),s.length===e&&(a.splice(i,1),this.destination.next(s))}},e.prototype._complete=function(){for(var e=this.buffers,n=this.destination;e.length>0;){var a=e.shift();a.length>0&&n.next(a)}t.prototype._complete.call(this)},e}(g.a),_=n("nkY7");function x(t){var e=arguments.length,n=c.a;Object(_.a)(arguments[arguments.length-1])&&(n=arguments[arguments.length-1],e--);var a=null;e>=2&&(a=arguments[1]);var r=Number.POSITIVE_INFINITY;return e>=3&&(r=arguments[2]),function(e){return e.lift(new T(t,a,r,n))}}var T=function(){function t(t,e,n,a){this.bufferTimeSpan=t,this.bufferCreationInterval=e,this.maxBufferSize=n,this.scheduler=a}return t.prototype.call=function(t,e){return e.subscribe(new S(t,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))},t}(),w=function(){return function(){this.buffer=[]}}(),S=function(t){function e(e,n,a,r,i){var s=t.call(this,e)||this;s.bufferTimeSpan=n,s.bufferCreationInterval=a,s.maxBufferSize=r,s.scheduler=i,s.contexts=[];var o=s.openContext();if(s.timespanOnly=null==a||a<0,s.timespanOnly)s.add(o.closeAction=i.schedule(O,n,{subscriber:s,context:o,bufferTimeSpan:n}));else{var u={bufferTimeSpan:n,bufferCreationInterval:a,subscriber:s,scheduler:i};s.add(o.closeAction=i.schedule(C,n,{subscriber:s,context:o})),s.add(i.schedule(I,a,u))}return s}return a.__extends(e,t),e.prototype._next=function(t){for(var e,n=this.contexts,a=n.length,r=0;r0;){var a=e.shift();n.next(a.buffer)}t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.contexts=null},e.prototype.onBufferFull=function(t){this.closeContext(t);var e=t.closeAction;if(e.unsubscribe(),this.remove(e),!this.closed&&this.timespanOnly){t=this.openContext();var n=this.bufferTimeSpan;this.add(t.closeAction=this.scheduler.schedule(O,n,{subscriber:this,context:t,bufferTimeSpan:n}))}},e.prototype.openContext=function(){var t=new w;return this.contexts.push(t),t},e.prototype.closeContext=function(t){this.destination.next(t.buffer);var e=this.contexts;(e?e.indexOf(t):-1)>=0&&e.splice(e.indexOf(t),1)},e}(g.a);function O(t){var e=t.subscriber,n=t.context;n&&e.closeContext(n),e.closed||(t.context=e.openContext(),t.context.closeAction=this.schedule(t,t.bufferTimeSpan))}function I(t){var e=t.bufferCreationInterval,n=t.bufferTimeSpan,a=t.subscriber,r=t.scheduler,i=a.openContext();a.closed||(a.add(i.closeAction=r.schedule(C,n,{subscriber:a,context:i})),this.schedule(t,e))}function C(t){t.subscriber.closeContext(t.context)}var k=n("pugT");function N(t,e){return function(n){return n.lift(new R(t,e))}}var R=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new A(t,this.openings,this.closingSelector))},t}(),A=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.openings=n,r.closingSelector=a,r.contexts=[],r.add(Object(i.a)(r,n)),r}return a.__extends(e,t),e.prototype._next=function(t){for(var e=this.contexts,n=e.length,a=0;a0;){var a=n.shift();a.subscription.unsubscribe(),a.buffer=null,a.subscription=null}this.contexts=null,t.prototype._error.call(this,e)},e.prototype._complete=function(){for(var e=this.contexts;e.length>0;){var n=e.shift();this.destination.next(n.buffer),n.subscription.unsubscribe(),n.buffer=null,n.subscription=null}this.contexts=null,t.prototype._complete.call(this)},e.prototype.notifyNext=function(t,e,n,a,r){t?this.closeBuffer(t):this.openBuffer(e)},e.prototype.notifyComplete=function(t){this.closeBuffer(t.context)},e.prototype.openBuffer=function(t){try{var e=this.closingSelector.call(this,t);e&&this.trySubscribe(e)}catch(n){this._error(n)}},e.prototype.closeBuffer=function(t){var e=this.contexts;if(e&&t){var n=t.subscription;this.destination.next(t.buffer),e.splice(e.indexOf(t),1),this.remove(n),n.unsubscribe()}},e.prototype.trySubscribe=function(t){var e=this.contexts,n=new k.a,a={buffer:[],subscription:n};e.push(a);var r=Object(i.a)(this,t,a);!r||r.closed?this.closeBuffer(a):(r.context=a,this.add(r),n.add(r))},e}(r.a);function D(t){return function(e){return e.lift(new E(t))}}var E=function(){function t(t){this.closingSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new L(t,this.closingSelector))},t}(),L=function(t){function e(e,n){var a=t.call(this,e)||this;return a.closingSelector=n,a.subscribing=!1,a.openBuffer(),a}return a.__extends(e,t),e.prototype._next=function(t){this.buffer.push(t)},e.prototype._complete=function(){var e=this.buffer;e&&this.destination.next(e),t.prototype._complete.call(this)},e.prototype._unsubscribe=function(){this.buffer=null,this.subscribing=!1},e.prototype.notifyNext=function(t,e,n,a,r){this.openBuffer()},e.prototype.notifyComplete=function(){this.subscribing?this.complete():this.openBuffer()},e.prototype.openBuffer=function(){var t,e=this.closingSubscription;e&&(this.remove(e),e.unsubscribe()),this.buffer&&this.destination.next(this.buffer),this.buffer=[];try{t=(0,this.closingSelector)()}catch(n){return this.error(n)}e=new k.a,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add(Object(i.a)(this,t)),this.subscribing=!1},e}(r.a),P=n("9Z1F"),M=n("dzgT");function q(t){return function(e){return e.lift(new M.a(t))}}var j=n("isby"),F=n("0/uQ");function z(){for(var t=[],e=0;e0&&n[0].time-a.now()<=0;)n.shift().notification.observe(r);if(n.length>0){var i=Math.max(0,n[0].time-a.now());this.schedule(t,i)}else this.unsubscribe(),e.active=!1},e.prototype._schedule=function(t){this.active=!0,this.destination.add(t.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))},e.prototype.scheduleNotification=function(t){if(!0!==this.errored){var e=this.scheduler,n=new rt(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}},e.prototype._next=function(t){this.scheduleNotification(tt.a.createNext(t))},e.prototype._error=function(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()},e.prototype._complete=function(){this.scheduleNotification(tt.a.createComplete()),this.unsubscribe()},e}(g.a),rt=function(){return function(t,e){this.time=t,this.notification=e}}(),it=n("6blF");function st(t,e){return e?function(n){return new ct(n,e).lift(new ot(t))}:function(e){return e.lift(new ot(t))}}var ot=function(){function t(t){this.delayDurationSelector=t}return t.prototype.call=function(t,e){return e.subscribe(new ut(t,this.delayDurationSelector))},t}(),ut=function(t){function e(e,n){var a=t.call(this,e)||this;return a.delayDurationSelector=n,a.completed=!1,a.delayNotifierSubscriptions=[],a.index=0,a}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.destination.next(t),this.removeSubscription(r),this.tryComplete()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype.notifyComplete=function(t){var e=this.removeSubscription(t);e&&this.destination.next(e),this.tryComplete()},e.prototype._next=function(t){var e=this.index++;try{var n=this.delayDurationSelector(t,e);n&&this.tryDelay(n,t)}catch(a){this.destination.error(a)}},e.prototype._complete=function(){this.completed=!0,this.tryComplete(),this.unsubscribe()},e.prototype.removeSubscription=function(t){t.unsubscribe();var e=this.delayNotifierSubscriptions.indexOf(t);return-1!==e&&this.delayNotifierSubscriptions.splice(e,1),t.outerValue},e.prototype.tryDelay=function(t,e){var n=Object(i.a)(this,t,e);n&&!n.closed&&(this.destination.add(n),this.delayNotifierSubscriptions.push(n))},e.prototype.tryComplete=function(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()},e}(r.a),ct=function(t){function e(e,n){var a=t.call(this)||this;return a.source=e,a.subscriptionDelay=n,a}return a.__extends(e,t),e.prototype._subscribe=function(t){this.subscriptionDelay.subscribe(new lt(t,this.source))},e}(it.a),lt=function(t){function e(e,n){var a=t.call(this)||this;return a.parent=e,a.source=n,a.sourceSubscribed=!1,a}return a.__extends(e,t),e.prototype._next=function(t){this.subscribeToSource()},e.prototype._error=function(t){this.unsubscribe(),this.parent.error(t)},e.prototype._complete=function(){this.unsubscribe(),this.subscribeToSource()},e.prototype.subscribeToSource=function(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))},e}(g.a);function dt(){return function(t){return t.lift(new ft)}}var ft=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new pt(t))},t}(),pt=function(t){function e(e){return t.call(this,e)||this}return a.__extends(e,t),e.prototype._next=function(t){t.observe(this.destination)},e}(g.a),ht=n("ou9H"),gt=n("ad02");function bt(t,e){return Object(gt.a)(function(n,a){return e?e(n[t],a[t]):n[t]===a[t]})}var mt=n("b7mW"),yt=n("VnD/"),vt=n("tNVB"),_t=n("t9fZ");function xt(t,e){if(t<0)throw new mt.a;var n=arguments.length>=2;return function(a){return a.pipe(Object(yt.a)(function(e,n){return n===t}),Object(_t.a)(1),n?Object(J.a)(e):Object(vt.a)(function(){return new mt.a}))}}var Tt=n("dEwP"),wt=n("F/XL");function St(){for(var t=[],e=0;e0&&this._next(e.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()},e}(r.a),qt=n("2WpN");function jt(t,e){if("function"!=typeof t)throw new TypeError("predicate is not a function");return function(n){return n.lift(new Ft(t,n,!1,e))}}var Ft=function(){function t(t,e,n,a){this.predicate=t,this.source=e,this.yieldIndex=n,this.thisArg=a}return t.prototype.call=function(t,e){return e.subscribe(new zt(t,this.predicate,this.source,this.yieldIndex,this.thisArg))},t}(),zt=function(t){function e(e,n,a,r,i){var s=t.call(this,e)||this;return s.predicate=n,s.source=a,s.yieldIndex=r,s.thisArg=i,s.index=0,s}return a.__extends(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete(),this.unsubscribe()},e.prototype._next=function(t){var e=this.predicate,n=this.thisArg,a=this.index++;try{e.call(n||this,t,a,this.source)&&this.notifyComplete(this.yieldIndex?a:t)}catch(r){this.destination.error(r)}},e.prototype._complete=function(){this.notifyComplete(this.yieldIndex?-1:void 0)},e}(g.a);function Gt(t,e){return function(n){return n.lift(new Ft(t,n,!0,e))}}var Yt=n("P6uZ"),Vt=n("IxPp");function Ht(){return function(t){return t.lift(new Bt)}}var Bt=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new Ut(t))},t}(),Ut=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype._next=function(t){},e}(g.a);function Wt(){return function(t){return t.lift(new Kt)}}var Kt=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new $t(t))},t}(),$t=function(t){function e(e){return t.call(this,e)||this}return a.__extends(e,t),e.prototype.notifyComplete=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype._next=function(t){this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(g.a),Zt=n("w1EH"),Xt=n("aGNc");function Jt(){return function(t){return t.lift(new Qt)}}var Qt=function(){function t(){}return t.prototype.call=function(t,e){return e.subscribe(new te(t))},t}(),te=function(t){function e(e){return t.call(this,e)||this}return a.__extends(e,t),e.prototype._next=function(t){this.destination.next(tt.a.createNext(t))},e.prototype._error=function(t){var e=this.destination;e.next(tt.a.createError(t)),e.complete()},e.prototype._complete=function(){var t=this.destination;t.next(tt.a.createComplete()),t.complete()},e}(g.a),ee=n("Qgas");function ne(t){var e="function"==typeof t?function(e,n){return t(e,n)>0?e:n}:function(t,e){return t>e?t:e};return Object(ee.a)(e)}var ae=n("p0ib");function re(){for(var t=[],e=0;e0?this._next(e.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())},e}(r.a);function de(t){var e="function"==typeof t?function(e,n){return t(e,n)<0?e:n}:function(t,e){return t-1&&(this.count=n-1),e.subscribe(this._unsubscribeAndRecycle())}},e}(g.a);function qe(t){return function(e){return e.lift(new je(t))}}var je=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){return e.subscribe(new Fe(t,this.notifier,e))},t}(),Fe=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.notifier=n,r.source=a,r.sourceIsBeingSubscribedTo=!0,r}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)},e.prototype.notifyComplete=function(e){if(!1===this.sourceIsBeingSubscribedTo)return t.prototype.complete.call(this)},e.prototype.complete=function(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return t.prototype.complete.call(this);this._unsubscribeAndRecycle(),this.notifications.next()}},e.prototype._unsubscribe=function(){var t=this.notifications,e=this.retriesSubscription;t&&(t.unsubscribe(),this.notifications=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype._unsubscribeAndRecycle=function(){var e=this._unsubscribe;return this._unsubscribe=null,t.prototype._unsubscribeAndRecycle.call(this),this._unsubscribe=e,this},e.prototype.subscribeToRetries=function(){var e;this.notifications=new we.a;try{e=(0,this.notifier)(this.notifications)}catch(n){return t.prototype.complete.call(this)}this.retries=e,this.retriesSubscription=Object(i.a)(this,e)},e}(r.a);function ze(t){return void 0===t&&(t=-1),function(e){return e.lift(new Ge(t,e))}}var Ge=function(){function t(t,e){this.count=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new Ye(t,this.count,this.source))},t}(),Ye=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.count=n,r.source=a,r}return a.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.source,a=this.count;if(0===a)return t.prototype.error.call(this,e);a>-1&&(this.count=a-1),n.subscribe(this._unsubscribeAndRecycle())}},e}(g.a);function Ve(t){return function(e){return e.lift(new He(t,e))}}var He=function(){function t(t,e){this.notifier=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new Be(t,this.notifier,this.source))},t}(),Be=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.notifier=n,r.source=a,r}return a.__extends(e,t),e.prototype.error=function(e){if(!this.isStopped){var n=this.errors,a=this.retries,r=this.retriesSubscription;if(a)this.errors=null,this.retriesSubscription=null;else{n=new we.a;try{a=(0,this.notifier)(n)}catch(s){return t.prototype.error.call(this,s)}r=Object(i.a)(this,a)}this._unsubscribeAndRecycle(),this.errors=n,this.retries=a,this.retriesSubscription=r,n.next(e)}},e.prototype._unsubscribe=function(){var t=this.errors,e=this.retriesSubscription;t&&(t.unsubscribe(),this.errors=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null},e.prototype.notifyNext=function(t,e,n,a,r){var i=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=i,this.source.subscribe(this)},e}(r.a),Ue=n("yGWI");function We(t){return function(e){return e.lift(new Ke(t))}}var Ke=function(){function t(t){this.notifier=t}return t.prototype.call=function(t,e){var n=new $e(t),a=e.subscribe(n);return a.add(Object(i.a)(n,this.notifier)),a},t}(),$e=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasValue=!1,e}return a.__extends(e,t),e.prototype._next=function(t){this.value=t,this.hasValue=!0},e.prototype.notifyNext=function(t,e,n,a,r){this.emitValue()},e.prototype.notifyComplete=function(){this.emitValue()},e.prototype.emitValue=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))},e}(r.a);function Ze(t,e){return void 0===e&&(e=c.a),function(n){return n.lift(new Xe(t,e))}}var Xe=function(){function t(t,e){this.period=t,this.scheduler=e}return t.prototype.call=function(t,e){return e.subscribe(new Je(t,this.period,this.scheduler))},t}(),Je=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.period=n,r.scheduler=a,r.hasValue=!1,r.add(a.schedule(Qe,n,{subscriber:r,period:n})),r}return a.__extends(e,t),e.prototype._next=function(t){this.lastValue=t,this.hasValue=!0},e.prototype.notifyNext=function(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))},e}(g.a);function Qe(t){var e=t.period;t.subscriber.notifyNext(),this.schedule(t,e)}var tn=n("dC0D");function en(t,e){return function(n){return n.lift(new nn(t,e))}}var nn=function(){function t(t,e){this.compareTo=t,this.comparator=e}return t.prototype.call=function(t,e){return e.subscribe(new an(t,this.compareTo,this.comparator))},t}(),an=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.compareTo=n,r.comparator=a,r._a=[],r._b=[],r._oneComplete=!1,r.destination.add(n.subscribe(new rn(e,r))),r}return a.__extends(e,t),e.prototype._next=function(t){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(t),this.checkValues())},e.prototype._complete=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()},e.prototype.checkValues=function(){for(var t=this._a,e=this._b,n=this.comparator;t.length>0&&e.length>0;){var a=t.shift(),r=e.shift(),i=!1;try{i=n?n(a,r):a===r}catch(s){this.destination.error(s)}i||this.emit(!1)}},e.prototype.emit=function(t){var e=this.destination;e.next(t),e.complete()},e.prototype.nextB=function(t){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(t),this.checkValues())},e.prototype.completeB=function(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0},e}(g.a),rn=function(t){function e(e,n){var a=t.call(this,e)||this;return a.parent=n,a}return a.__extends(e,t),e.prototype._next=function(t){this.parent.nextB(t)},e.prototype._error=function(t){this.parent.error(t),this.unsubscribe()},e.prototype._complete=function(){this.parent.completeB(),this.unsubscribe()},e}(g.a),sn=n("S1nX"),on=n("klSw"),un=n("3fWJ");function cn(t){return function(e){return e.lift(new ln(t,e))}}var ln=function(){function t(t,e){this.predicate=t,this.source=e}return t.prototype.call=function(t,e){return e.subscribe(new dn(t,this.predicate,this.source))},t}(),dn=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.predicate=n,r.source=a,r.seenValue=!1,r.index=0,r}return a.__extends(e,t),e.prototype.applySingleValue=function(t){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=t)},e.prototype._next=function(t){var e=this.index++;this.predicate?this.tryNext(t,e):this.applySingleValue(t)},e.prototype.tryNext=function(t,e){try{this.predicate(t,e,this.source)&&this.applySingleValue(t)}catch(n){this.destination.error(n)}},e.prototype._complete=function(){var t=this.destination;this.index>0?(t.next(this.seenValue?this.singleValue:void 0),t.complete()):t.error(new un.a)},e}(g.a);function fn(t){return function(e){return e.lift(new pn(t))}}var pn=function(){function t(t){this.total=t}return t.prototype.call=function(t,e){return e.subscribe(new hn(t,this.total))},t}(),hn=function(t){function e(e,n){var a=t.call(this,e)||this;return a.total=n,a.count=0,a}return a.__extends(e,t),e.prototype._next=function(t){++this.count>this.total&&this.destination.next(t)},e}(g.a);function gn(t){return function(e){return e.lift(new bn(t))}}var bn=function(){function t(t){if(this._skipCount=t,this._skipCount<0)throw new mt.a}return t.prototype.call=function(t,e){return e.subscribe(0===this._skipCount?new g.a(t):new mn(t,this._skipCount))},t}(),mn=function(t){function e(e,n){var a=t.call(this,e)||this;return a._skipCount=n,a._count=0,a._ring=new Array(n),a}return a.__extends(e,t),e.prototype._next=function(t){var e=this._skipCount,n=this._count++;if(n0?this.startWindowEvery:this.windowSize,n=this.destination,a=this.windowSize,r=this.windows,i=r.length,s=0;s=0&&o%e==0&&!this.closed&&r.shift().complete(),++this.count%e==0&&!this.closed){var u=new we.a;r.push(u),n.next(u)}},e.prototype._error=function(t){var e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){var t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().complete();this.destination.complete()},e.prototype._unsubscribe=function(){this.count=0,this.windows=null},e}(g.a);function ha(t){var e=c.a,n=null,a=Number.POSITIVE_INFINITY;return Object(_.a)(arguments[3])&&(e=arguments[3]),Object(_.a)(arguments[2])?e=arguments[2]:Object(In.a)(arguments[2])&&(a=arguments[2]),Object(_.a)(arguments[1])?e=arguments[1]:Object(In.a)(arguments[1])&&(n=arguments[1]),function(r){return r.lift(new ga(t,n,a,e))}}var ga=function(){function t(t,e,n,a){this.windowTimeSpan=t,this.windowCreationInterval=e,this.maxWindowSize=n,this.scheduler=a}return t.prototype.call=function(t,e){return e.subscribe(new ma(t,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))},t}(),ba=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._numberOfNextedValues=0,e}return a.__extends(e,t),e.prototype.next=function(e){this._numberOfNextedValues++,t.prototype.next.call(this,e)},Object.defineProperty(e.prototype,"numberOfNextedValues",{get:function(){return this._numberOfNextedValues},enumerable:!0,configurable:!0}),e}(we.a),ma=function(t){function e(e,n,a,r,i){var s=t.call(this,e)||this;s.destination=e,s.windowTimeSpan=n,s.windowCreationInterval=a,s.maxWindowSize=r,s.scheduler=i,s.windows=[];var o=s.openWindow();if(null!==a&&a>=0){var u={windowTimeSpan:n,windowCreationInterval:a,subscriber:s,scheduler:i};s.add(i.schedule(_a,n,{subscriber:s,window:o,context:null})),s.add(i.schedule(va,a,u))}else s.add(i.schedule(ya,n,{subscriber:s,window:o,windowTimeSpan:n}));return s}return a.__extends(e,t),e.prototype._next=function(t){for(var e=this.windows,n=e.length,a=0;a=this.maxWindowSize&&this.closeWindow(r))}},e.prototype._error=function(t){for(var e=this.windows;e.length>0;)e.shift().error(t);this.destination.error(t)},e.prototype._complete=function(){for(var t=this.windows;t.length>0;){var e=t.shift();e.closed||e.complete()}this.destination.complete()},e.prototype.openWindow=function(){var t=new ba;return this.windows.push(t),this.destination.next(t),t},e.prototype.closeWindow=function(t){t.complete();var e=this.windows;e.splice(e.indexOf(t),1)},e}(g.a);function ya(t){var e=t.subscriber,n=t.windowTimeSpan,a=t.window;a&&e.closeWindow(a),t.window=e.openWindow(),this.schedule(t,n)}function va(t){var e=t.windowTimeSpan,n=t.subscriber,a=t.scheduler,r=t.windowCreationInterval,i=n.openWindow(),s={action:this,subscription:null};s.subscription=a.schedule(_a,e,{subscriber:n,window:i,context:s}),this.add(s.subscription),this.schedule(t,r)}function _a(t){var e=t.subscriber,n=t.window,a=t.context;a&&a.action&&a.subscription&&a.action.remove(a.subscription),e.closeWindow(n)}function xa(t,e){return function(n){return n.lift(new Ta(t,e))}}var Ta=function(){function t(t,e){this.openings=t,this.closingSelector=e}return t.prototype.call=function(t,e){return e.subscribe(new wa(t,this.openings,this.closingSelector))},t}(),wa=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.openings=n,r.closingSelector=a,r.contexts=[],r.add(r.openSubscription=Object(i.a)(r,n,n)),r}return a.__extends(e,t),e.prototype._next=function(t){var e=this.contexts;if(e)for(var n=e.length,a=0;a0){var s=i.indexOf(n);-1!==s&&i.splice(s,1)}},e.prototype.notifyComplete=function(){},e.prototype._next=function(t){if(0===this.toRespond.length){var e=[t].concat(this.values);this.project?this._tryProject(e):this.destination.next(e)}},e.prototype._tryProject=function(t){var e;try{e=this.project.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)},e}(r.a),Ra=n("909l");function Aa(){for(var t=[],e=0;e animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a},dt,it)),a["\u0275did"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["\u0275unv"](e,1,1,a["\u0275nov"](e,2).transform(n.options)))},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)})}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,u)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.daysCalendar)))},null)}function l(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a},gt,ft)),a["\u0275did"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function d(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,l)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.monthsCalendar)))},null)}function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a},vt,bt)),a["\u0275did"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,f)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.yearsCalendar)))},null)}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Apply"])),(t()(),a["\u0275eld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Cancel"]))],null,null)}function g(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,wt,_t)),a["\u0275did"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],function(t,e){t(e,2,0,e.component._customRangesFish)},null)}function b(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275eld"](2,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](7,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,d)),a["\u0275did"](9,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](11,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,h)),a["\u0275did"](13,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,g)),a["\u0275did"](15,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"bs-datepicker",n.containerClass),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.viewMode))),t(e,7,0,"day"),t(e,9,0,"month"),t(e,11,0,"year"),t(e,13,0,!1),t(e,15,0,!1)},function(t,e){t(e,2,0,e.component.animationState)})}function m(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,b)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.viewMode)))},null)}function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-datepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"],["style","position: absolute; display: block;"]],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,3)._stopPropagation(n)&&r),r},m,o)),a["\u0275prd"](512,null,r.r,r.r,[]),a["\u0275prd"](512,null,r.s,r.s,[r.t,r.j]),a["\u0275did"](3,245760,null,0,r.b,[r.a,r.r,a.ElementRef,r.t,r.s,s.a],null,null)],function(t,e){t(e,3,0)},null)}var v=a["\u0275ccf"]("bs-datepicker-container",r.b,y,{},{},[]),_=a["\u0275crt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function x(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a},dt,it)),a["\u0275did"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["\u0275unv"](e,1,1,a["\u0275nov"](e,2).transform(n.options)))},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)})}function T(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,x)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.daysCalendar)))},null)}function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a},gt,ft)),a["\u0275did"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,w)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.monthsCalendar)))},null)}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a},vt,bt)),a["\u0275did"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function I(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,O)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.yearsCalendar)))},null)}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Apply"])),(t()(),a["\u0275eld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Cancel"]))],null,null)}function k(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,wt,_t)),a["\u0275did"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],function(t,e){t(e,2,0,e.component._customRangesFish)},null)}function N(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275eld"](2,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,T)),a["\u0275did"](7,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,S)),a["\u0275did"](9,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,I)),a["\u0275did"](11,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,C)),a["\u0275did"](13,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,k)),a["\u0275did"](15,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"bs-datepicker",n.containerClass),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.viewMode))),t(e,7,0,"day"),t(e,9,0,"month"),t(e,11,0,"year"),t(e,13,0,!1),t(e,15,0,!1)},function(t,e){t(e,2,0,e.component.animationState)})}function R(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,N)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.viewMode)))},null)}function A(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-datepicker-inline-container",[["style","display: inline-block;"]],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,3)._stopPropagation(n)&&r),r},R,_)),a["\u0275prd"](512,null,r.r,r.r,[]),a["\u0275prd"](512,null,r.s,r.s,[r.t,r.j]),a["\u0275did"](3,245760,null,0,r.e,[r.a,r.r,a.ElementRef,r.t,r.s,s.a],null,null)],function(t,e){t(e,3,0)},null)}var D=a["\u0275ccf"]("bs-datepicker-inline-container",r.e,A,{},{},[]),E=a["\u0275crt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function L(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a},dt,it)),a["\u0275did"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["\u0275unv"](e,1,1,a["\u0275nov"](e,2).transform(n.options)))},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)})}function P(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,L)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.daysCalendar)))},null)}function M(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a},gt,ft)),a["\u0275did"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function q(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,M)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.monthsCalendar)))},null)}function j(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a},vt,bt)),a["\u0275did"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){t(e,1,0,e.context.$implicit)},function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["\u0275unv"](e,0,0,a["\u0275nov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)})}function F(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,2,null,j)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,2,0,a["\u0275unv"](e,2,0,a["\u0275nov"](e,3).transform(n.yearsCalendar)))},null)}function z(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Apply"])),(t()(),a["\u0275eld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Cancel"]))],null,null)}function G(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,wt,_t)),a["\u0275did"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],function(t,e){t(e,2,0,e.component._customRangesFish)},null)}function Y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275eld"](2,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a},null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](16777216,null,null,1,null,P)),a["\u0275did"](7,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,q)),a["\u0275did"](9,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,F)),a["\u0275did"](11,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,z)),a["\u0275did"](13,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,G)),a["\u0275did"](15,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"bs-datepicker",n.containerClass),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.viewMode))),t(e,7,0,"day"),t(e,9,0,"month"),t(e,11,0,"year"),t(e,13,0,!1),t(e,15,0,!1)},function(t,e){t(e,2,0,e.component.animationState)})}function V(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,Y)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["\u0275pid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.viewMode)))},null)}function H(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"bs-daterangepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"],["style","position: absolute; display: block;"]],null,[[null,"click"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,3)._stopPropagation(n)&&r),r},V,E)),a["\u0275prd"](512,null,r.s,r.s,[r.t,r.j]),a["\u0275prd"](512,null,r.r,r.r,[]),a["\u0275did"](3,245760,null,0,r.i,[r.s,r.t,r.a,r.r,a.ElementRef,s.a],null,null)],function(t,e){t(e,3,0)},null)}var B=a["\u0275ccf"]("bs-daterangepicker-container",r.i,H,{},{},[]),U=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function W(t){return a["\u0275vid"](2,[(t()(),a["\u0275ted"](0,null,["",""]))],null,function(t,e){t(e,0,0,e.component.day.label)})}var K=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function $(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["class","current-timedate"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.component.title)})}var Z=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function X(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"button",[["class","current"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("month")&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.component.calendar.monthTitle)})}function J(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,2,"button",[["class","previous"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!0)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\u2039"])),(t()(),a["\u0275ted"](-1,null,[" \u200b "])),(t()(),a["\u0275and"](16777216,null,null,1,null,X)),a["\u0275did"](5,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275ted"](-1,null,[" \u200b "])),(t()(),a["\u0275eld"](7,0,null,null,2,"button",[["class","current"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("year")&&a),a},null,null)),(t()(),a["\u0275eld"](8,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](9,null,["",""])),(t()(),a["\u0275ted"](-1,null,[" \u200b "])),(t()(),a["\u0275eld"](11,0,null,null,2,"button",[["class","next"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!1)&&a),a},null,null)),(t()(),a["\u0275eld"](12,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["\u203a"]))],function(t,e){t(e,5,0,e.component.calendar.monthTitle)},function(t,e){var n=e.component;t(e,0,0,n.calendar.disableLeftArrow,n.calendar.hideLeftArrow?"hidden":"visible"),t(e,9,0,n.calendar.yearTitle),t(e,11,0,n.calendar.disableRightArrow,n.calendar.hideRightArrow?"hidden":"visible")})}var Q=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function tt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,15,"div",[["class","bs-timepicker-container"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,1,"button",[["class","bs-decrease"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["-"])),(t()(),a["\u0275eld"](4,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"button",[["class","bs-increase"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["+"])),(t()(),a["\u0275eld"](7,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["\u0275eld"](8,0,null,null,1,"button",[["class","bs-decrease"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["-"])),(t()(),a["\u0275eld"](10,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["\u0275eld"](11,0,null,null,1,"button",[["class","bs-increase"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["+"])),(t()(),a["\u0275eld"](13,0,null,null,2,"button",[["class","switch-time-format"]],null,null,null,null,null)),(t()(),a["\u0275ted"](14,null,[""," "])),(t()(),a["\u0275eld"](15,0,null,null,0,"img",[["alt",""],["src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg=="]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,4,0,n.hours),t(e,10,0,n.minutes),t(e,14,0,n.ampm)})}var et=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function nt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-current-date",[["title","hey there"]],null,null,null,$,K)),a["\u0275did"](1,49152,null,0,r.v,[],{title:[0,"title"]},null)],function(t,e){t(e,1,0,"hey there")},null)}function at(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-timepicker",[],null,null,null,tt,Q)),a["\u0275did"](1,49152,null,0,r.x,[],null,null)],null,null)}function rt(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,1,null,nt)),a["\u0275did"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275eld"](2,0,null,null,1,"div",[["class","bs-datepicker-head"]],null,null,null,null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275eld"](4,0,null,null,1,"div",[["class","bs-datepicker-body"]],null,null,null,null,null)),a["\u0275ncd"](null,1),(t()(),a["\u0275and"](16777216,null,null,1,null,at)),a["\u0275did"](7,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,!1),t(e,7,0,!1)},null)}var it=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function st(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"th",[],null,null,null,null,null))],null,null)}function ot(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"th",[["aria-label","weekday"]],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,[""," "]))],null,function(t,e){t(e,1,0,e.component.calendar.weekdays[e.context.index])})}function ut(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"td",[["class","week"]],[[2,"active-week",null]],null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectWeek(t.parent.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!1)&&a),a},null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){var n=e.component;t(e,0,0,n.isWeekHovered),t(e,2,0,n.calendar.weekNumbers[e.parent.context.index])})}function ct(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"td",[["role","gridcell"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,2,"span",[["bsDatepickerDayDecorator",""]],[[2,"disabled",null],[2,"is-highlighted",null],[2,"is-other-month",null],[2,"is-active-other-month",null],[2,"in-range",null],[2,"select-start",null],[2,"select-end",null],[2,"selected",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectDay(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!1)&&a),a},W,U)),a["\u0275did"](2,114688,null,0,r.u,[r.a,a.ElementRef,a.Renderer2],{day:[0,"day"]},null),(t()(),a["\u0275ted"](3,null,["",""]))],function(t,e){t(e,2,0,e.context.$implicit)},function(t,e){t(e,1,0,a["\u0275nov"](e,2).day.isDisabled,a["\u0275nov"](e,2).day.isHovered,a["\u0275nov"](e,2).day.isOtherMonth,a["\u0275nov"](e,2).day.isOtherMonthHovered,a["\u0275nov"](e,2).day.isInRange,a["\u0275nov"](e,2).day.isSelectionStart,a["\u0275nov"](e,2).day.isSelectionEnd,a["\u0275nov"](e,2).day.isSelected),t(e,3,0,e.context.$implicit.label)})}function lt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ut)),a["\u0275did"](2,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,ct)),a["\u0275did"](4,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.options.showWeekNumbers),t(e,4,0,e.context.$implicit.days)},null)}function dt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,13,"bs-calendar-layout",[],null,null,null,rt,et)),a["\u0275did"](1,49152,null,0,r.y,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a},J,Z)),a["\u0275did"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["\u0275eld"](4,0,null,1,9,"table",[["class","days weeks"],["role","grid"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,5,"thead",[],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,st)),a["\u0275did"](8,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,ot)),a["\u0275did"](10,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](11,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,lt)),a["\u0275did"](13,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,8,0,n.options.showWeekNumbers),t(e,10,0,n.calendar.weekdays),t(e,13,0,n.calendar.weeks)},null)}var ft=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function pt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewMonth(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!1)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,2,0,e.context.$implicit.label)})}function ht(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,pt)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.context.$implicit)},null)}function gt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,rt,et)),a["\u0275did"](1,49152,null,0,r.y,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a},J,Z)),a["\u0275did"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["\u0275eld"](4,0,null,1,3,"table",[["class","months"],["role","grid"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,ht)),a["\u0275did"](7,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.months)},null)}var bt=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function mt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewYear(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!1)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,2,0,e.context.$implicit.label)})}function yt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,mt)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.context.$implicit)},null)}function vt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,rt,et)),a["\u0275did"](1,49152,null,0,r.y,[],null,null),(t()(),a["\u0275eld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a},J,Z)),a["\u0275did"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["\u0275eld"](4,0,null,1,3,"table",[["class","years"],["role","grid"]],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,yt)),a["\u0275did"](7,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.years)},null)}var _t=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function xt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"button",[],null,null,null,null,null)),(t()(),a["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.context.$implicit.label)})}function Tt(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"button",[],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Custom Range"]))],null,null)}function wt(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,4,"div",[["class","bs-datepicker-predefined-btns"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,xt)),a["\u0275did"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,Tt)),a["\u0275did"](4,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.ranges),t(e,4,0,n.isCustomRangeShown)},null)}},awvh:function(t,e,n){"use strict";function a(t){return Error.call(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map(function(t,e){return e+1+") "+t.toString()}).join("\n "):"",this.name="UnsubscriptionError",this.errors=t,this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},b1Dy:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},b5OY:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("pxLl");var a=function(){function t(t,e){this.performanceCounterService=t,this.i18n=e,this.columns=[],this.counters=[]}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Description"),prop:"description",flexGrow:1},{name:this.i18n("Value"),prop:"value",cellTemplate:this.valueTpl,flexGrow:1}]},t.prototype.getCounters=function(t){var e=this;this.performanceCounterService.get(this.serviceType,this.serviceId).subscribe(function(t){e.counters=t},function(n){404===n.status?(n.preventDefault(),e.counters=null):t.error()})},t}()},b7mW:function(t,e,n){"use strict";function a(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}n.d(e,"a",function(){return r}),a.prototype=Object.create(Error.prototype);var r=a},bOMt:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},bXm7:function(t,e,n){!function(t){"use strict";var e={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};t.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},bYM6:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}()},bidN:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("bubble",{hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return(e.datasets[t.datasetIndex].label||"")+": ("+t.xLabel+", "+t.yLabel+", "+e.datasets[t.datasetIndex].data[t.index].r+")"}}}}),t.exports=function(t){t.controllers.bubble=t.DatasetController.extend({dataElementType:r.Point,update:function(t){var e=this,n=e.getMeta();i.each(n.data,function(n,a){e.updateElement(n,a,t)})},updateElement:function(t,e,n){var a=this,r=a.getMeta(),i=t.custom||{},s=a.getScaleForId(r.xAxisID),o=a.getScaleForId(r.yAxisID),u=a._resolveElementOptions(t,e),c=a.getDataset().data[e],l=a.index,d=n?s.getPixelForDecimal(.5):s.getPixelForValue("object"==typeof c?c:NaN,e,l),f=n?o.getBasePixel():o.getPixelForValue(c,e,l);t._xScale=s,t._yScale=o,t._options=u,t._datasetIndex=l,t._index=e,t._model={backgroundColor:u.backgroundColor,borderColor:u.borderColor,borderWidth:u.borderWidth,hitRadius:u.hitRadius,pointStyle:u.pointStyle,rotation:u.rotation,radius:n?0:u.radius,skip:i.skip||isNaN(d)||isNaN(f),x:d,y:f},t.pivot()},setHoverStyle:function(t){var e=t._model,n=t._options;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=i.valueOrDefault(n.hoverBackgroundColor,i.getHoverColor(n.backgroundColor)),e.borderColor=i.valueOrDefault(n.hoverBorderColor,i.getHoverColor(n.borderColor)),e.borderWidth=i.valueOrDefault(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},_resolveElementOptions:function(t,e){var n,a,r,s=this.chart,o=s.data.datasets[this.index],u=t.custom||{},c=s.options.elements.point,l=i.options.resolve,d=o.data[e],f={},p={chart:s,dataIndex:e,dataset:o,datasetIndex:this.index},h=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(n=0,a=h.length;n1?Array.prototype.slice.call(arguments):t)},a,n)})}},bpWZ:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("FO+L")),a(n("nhM1")),a(n("BARL"))},bpih:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},buEt:function(t,e,n){"use strict";n.r(e);var a=n("DtyJ");n.d(e,"Subject",function(){return a.Subject})},bxKX:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},cRix:function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},cdu6:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),s=n("g8vO");function o(t){var e,n,a=[];for(e=0,n=t.length;ef&&st.maxHeight){s--;break}s++,d=u*c}t.labelRotation=s},afterCalculateTickRotation:function(){i.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){i.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=o(t._ticks),a=t.options,r=a.ticks,s=a.scaleLabel,u=a.gridLines,f=a.display,p=t.isHorizontal(),h=l(r),g=a.gridLines.tickMarkLength;if(e.width=p?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:f&&u.drawTicks?g:0,e.height=p?f&&u.drawTicks?g:0:t.maxHeight,s.display&&f){var b=d(s)+i.options.toPadding(s.padding).height;p?e.height+=b:e.width+=b}if(r.display&&f){var m=i.longestText(t.ctx,h.font,n,t.longestTextCache),y=i.numberOfLabelLines(n),v=.5*h.size,_=t.options.ticks.padding;if(p){t.longestLabelWidth=m;var x=i.toRadians(t.labelRotation),T=Math.cos(x),w=Math.sin(x);e.height=Math.min(t.maxHeight,e.height+(w*m+h.size*y+v*(y-1)+v)+_),t.ctx.font=h.font;var S=c(t.ctx,n[0],h.font),O=c(t.ctx,n[n.length-1],h.font);0!==t.labelRotation?(t.paddingLeft="bottom"===a.position?T*S+3:T*v+3,t.paddingRight="bottom"===a.position?T*v+3:T*O+3):(t.paddingLeft=S/2+3,t.paddingRight=O/2+3)}else r.mirror?m=0:m+=_+v,e.width=Math.min(t.maxWidth,e.width+m),t.paddingTop=h.size/2,t.paddingBottom=h.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){i.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(i.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:i.noop,getPixelForValue:i.noop,getValueForPixel:i.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var a=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),r=a*t+e.paddingLeft;return n&&(r+=a/2),e.left+Math.round(r)+(e.isFullWidth()?e.margins.left:0)}return e.top+t*((e.height-(e.paddingTop+e.paddingBottom))/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;return e.isHorizontal()?e.left+Math.round((e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft)+(e.isFullWidth()?e.margins.left:0):e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,a,r,s=this,o=s.isHorizontal(),u=s.options.ticks.minor,c=t.length,l=i.toRadians(s.labelRotation),d=Math.cos(l),f=s.longestLabelWidth*d,p=[];for(u.maxTicksLimit&&(r=u.maxTicksLimit),o&&(e=!1,(f+u.autoSkipPadding)*c>s.width-(s.paddingLeft+s.paddingRight)&&(e=1+Math.floor((f+u.autoSkipPadding)*c/(s.width-(s.paddingLeft+s.paddingRight)))),r&&c>r&&(e=Math.max(e,Math.floor(c/r)))),n=0;n1&&n%e>0||n%e==0&&n+e>=c)&&n!==c-1&&delete a.label,p.push(a);return p},draw:function(t){var e=this,n=e.options;if(n.display){var r=e.ctx,s=a.global,o=n.ticks.minor,c=n.ticks.major||o,f=n.gridLines,p=n.scaleLabel,h=0!==e.labelRotation,g=e.isHorizontal(),b=o.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),m=i.valueOrDefault(o.fontColor,s.defaultFontColor),y=l(o),v=i.valueOrDefault(c.fontColor,s.defaultFontColor),_=l(c),x=f.drawTicks?f.tickMarkLength:0,T=i.valueOrDefault(p.fontColor,s.defaultFontColor),w=l(p),S=i.options.toPadding(p.padding),O=i.toRadians(e.labelRotation),I=[],C=e.options.gridLines.lineWidth,k="right"===n.position?e.left:e.right-C-x,N="right"===n.position?e.left+x:e.right,R="bottom"===n.position?e.top+C:e.bottom-x-C,A="bottom"===n.position?e.top+C+x:e.bottom+C;if(i.each(b,function(a,r){if(!i.isNullOrUndef(a.label)){var c,l,d,p,m,y,v,_,T,w,S,D,E,L,P=a.label;r===e.zeroLineIndex&&n.offset===f.offsetGridLines?(c=f.zeroLineWidth,l=f.zeroLineColor,d=f.zeroLineBorderDash,p=f.zeroLineBorderDashOffset):(c=i.valueAtIndexOrDefault(f.lineWidth,r),l=i.valueAtIndexOrDefault(f.color,r),d=i.valueOrDefault(f.borderDash,s.borderDash),p=i.valueOrDefault(f.borderDashOffset,s.borderDashOffset));var M="middle",q="middle",j=o.padding;if(g){var F=x+j;"bottom"===n.position?(q=h?"middle":"top",M=h?"right":"center",L=e.top+F):(q=h?"middle":"bottom",M=h?"left":"center",L=e.bottom-F);var z=u(e,r,f.offsetGridLines&&b.length>1);z1);V\n \n \n \n Toggle navigation\n Alternar navegaci\xf3n\n \n \n Dashboard\n Consola\n \n \n Cluster\n Cl\xfaster\n \n \n Hosts\n Hosts\n \n \n Monitors\n Monitores\n \n \n OSDs\n OSDs\n \n \n Configuration\n Configuraci\xf3n\n \n \n CRUSH map\n Mapa de CRUSH\n \n \n Manager modules\n M\xf3dulos de gestor\n \n \n Logs\n Registros\n \n \n Alerts\n Alertas\n \n \n Silences\n Silences\n \n \n Pools\n Repositorios\n \n \n Block\n Bloque\n \n \n Images\n Im\xe1genes\n \n \n Mirroring\n Duplicaci\xf3n\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Sistemas de archivos\n \n \n Object Gateway\n Object Gateway\n \n \n Daemons\n Daemons\n \n \n Users\n Usuarios\n \n \n Buckets\n Papeleras\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Obteniendo datos \n \npara \n \n \n . Espere.\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Mostrando datos guardados previamente en cach\xe9\n \npara \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n No se han podido cargar los datos\n para\n \n \n .\nConsulte el estado del cl\xfaster.\n \n \n \n Back\n Atr\xe1s\n \n \n Select a Language\n Seleccione un idioma\n \n \n Loading panel data...\n Cargando datos del panel...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Consulte la\n documentaci\xf3n\n sobre c\xf3mo\nconfigurar y habilitar la supervisi\xf3n.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n No existe la consola de Grafana. Consulte la\n documentaci\xf3n\n sobre c\xf3mo\n a\xf1adir consolas a Grafana.\n \n \n \n Grafana Time Picker\n Selector de hora de Grafana\n \n \n Reset Settings\n Restablecer ajustes\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Error al cargar los datos.\n \n \n selected\n seleccionados\n X selected\n \n \n found\n encontrados\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Editar\n \n \n Name\n Nombre\n \n \n Description\n Descripci\xf3n\n \n \n Long description\n Descripci\xf3n larga\n \n \n Default\n Opci\xf3n por defecto\n \n \n Daemon default\n Daemon por defecto\n \n \n Services\n Servicios\n \n \n Values\n Valores\n \n \n The entered value is too high! It must not be greater than \n .\n \n El valor introducido es demasiado alto. No debe ser mayor que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n El valor introducido es demasiado bajo. No debe ser menor que \n .\n \n \n \n Save\n Guardar\n \n \n CRUSH map viewer\n Visor del mapa de CRUSH\n \n \n Hosts List\n Lista de hosts\n \n \n Overall Performance\n Rendimiento general\n \n \n No entries found\n No se encuentra ninguna entrada\n \n \n Cluster Logs\n Registros del cl\xfaster\n \n \n Audit Logs\n Registros de auditor\xeda\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Cargando configuraci\xf3n...\n \n \n The configuration could not be loaded.\n No es posible cargar la configuraci\xf3n.\n \n \n Edit Manager module\n M\xf3dulo del gestor de edici\xf3n\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n El valor introducido no es un UUID v\xe1lido, por ejemplo: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n El valor introducido debe ser una direcci\xf3n IP v\xe1lida.\n \n \n This field is required.\n Este campo es obligatorio.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n El valor introducido es demasiado alto. Debe ser menor o igual que \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n El valor introducido es demasiado bajo. Debe ser mayor o igual que \n .\n \n \n \n The entered value needs to be a number.\n El valor introducido debe ser un n\xfamero.\n \n \n The entered value needs to be a number or decimal.\n El valor introducido debe ser un n\xfamero o un decimal.\n \n \n Update\n Actualizar\n \n \n Status\n Estado\n \n \n Cluster ID\n ID de cl\xfaster\n \n \n monmap modified\n Mapa de supervisi\xf3n modificado\n \n \n monmap epoch\n \xc9poca de mapa de supervisi\xf3n\n \n \n quorum con\n qu\xf3rum de con\n \n \n quorum mon\n qu\xf3rum de mon\n \n \n required con\n con requerido\n \n \n required mon\n mon requerido\n \n \n In Quorum\n Con qu\xf3rum\n \n \n Not In Quorum\n Sin qu\xf3rum\n \n \n Cancel\n Cancelar\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \xbfSeguro que quiere \n el elemento \n seleccionado?\n \n \n \n Yes, I am sure.\n S\xed, seguro.\n \n \n Cluster-wide OSD Flags\n Indicadores OSD de todo el cl\xfaster\n \n \n Submit\n Enviar\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avanzado...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Prioridad de recuperaci\xf3n de OSD\n \n \n Priority\n Prioridad\n \n \n Customize priority values\n Personalizar valores de prioridad\n \n \n This field is required!\n Este campo es obligatorio.\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n El valor introducido es demasiado alto. No debe ser mayor que \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n El valor introducido es demasiado bajo. No debe ser menor que \n .\n \n \n \n Reweight OSD\n Reequilibrar peso de OSD\n \n \n The value needs to be between 0 and 1.\n El valor debe estar entre 0 y 1.\n \n \n Reweight\n Reequilibrar peso\n \n \n OSDs \n Scrub\n \n \n Depuraci\xf3n de OSDs\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Profundo} }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Se dispone a aplicar una \n depuraci\xf3n\n al OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {profundo} }\n \n \n OSDs List\n Lista de OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n Si contin\xfaa, el \n OSD \n \n \n se marcar\xe1 \n \n \n .\n \n \n \n The OSD is not safe to destroy!\n No es seguro destruir el OSD.\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n Si contin\xfaa, el \n OSD \n \n \n se \n \n \n .\n \n \n \n Details\n Detalles\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valor\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Cerrar\n \n \n Delete\n Suprimir\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Estado\n \n \n Statistics\n Estad\xedsticas\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Consulte la \n documentaci\xf3n\n \n sobre c\xf3mo configurar y habilitar la funci\xf3n de gesti\xf3n de NFS Ganesha.\n \n \n \n Clients\n Clientes\n \n \n Any client can access\n Cualquier cliente puede acceder\n \n \n Addresses\n Destinatarios\n \n \n Required field\n Campo requerido\n \n \n Must contain one or more comma-separated values\n Debe contener uno o varios valores separados por comas\n \n \n For example:\n Por ejemplo:\n \n \n Access Type\n Tipo de acceso\n \n \n Squash\n Reducir privilegios\n \n \n Add clients\n A\xf1adir clientes\n \n \n Loading...\n Cargando...\n \n \n -- No cluster available --\n -- No hay ning\xfan cl\xfaster disponible --\n \n \n -- Select the cluster --\n -- Seleccione el cl\xfaster --\n \n \n Add daemon\n A\xf1adir daemon\n \n \n Storage Backend\n Motor de almacenamiento\n \n \n -- No data pools available --\n -- No hay ning\xfan repositorio de datos disponible --\n \n \n -- Select the storage backend --\n -- Seleccione el motor de almacenamiento --\n \n \n Object Gateway User\n Usuario de Object Gateway\n \n \n -- No users available --\n -- No hay ning\xfan usuario disponible --\n \n \n -- Select the object gateway user --\n -- Seleccione el usuario de Object Gateway --\n \n \n CephFS User ID\n ID de usuario de CephFS\n \n \n -- No clients available --\n -- No hay ning\xfan cliente disponible --\n \n \n -- Select the cephx client --\n -- Seleccione el cliente de CephX --\n \n \n CephFS Name\n Nombre de CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Etiqueta de seguridad\n \n \n Enable security label\n Habilitar etiqueta de seguridad\n \n \n CephFS Path\n Ruta de CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n La ruta debe empezar por "/" y puede ir seguida de una palabra\n \n \n New directory will be created\n Se crear\xe1 un directorio nuevo\n \n \n Path\n Ruta\n \n \n Path can only be a single \'/\' or a word\n La ruta solo puede ser una "/" o una palabra\n \n \n New bucket will be created\n Se crear\xe1 una papelera nueva\n \n \n NFS Protocol\n Protocolo NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Etiqueta NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Acceso alternativo para montajes \n NFS v3\n (no debe empezar con /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Puede que los clientes no monten subdirectorios (es decir, si Etiqueta = foo, el cliente puede que no monte foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Al usar distintas opciones de Etiqueta, la misma Ruta se puede exportar varias veces.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n La posici\xf3n que ocupa esta exportaci\xf3n \n NFS v4\n \n en \n Pseudo FS\n (debe ser exclusiva).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Al usar distintas opciones de Pseudo, la misma Ruta se puede exportar varias veces.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- No hay ning\xfan tipo de acceso disponible --\n \n \n -- Select the access type --\n -- Seleccione el tipo de acceso --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- No hay ninguna reducci\xf3n de privilegios disponible --\n \n \n --Select what kind of user id squashing is performed --\n -- Seleccione el tipo de reducci\xf3n de privilegios de ID de usuario que se va a realizar --\n \n \n Transport Protocol\n Protocolo de transporte\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n \xa1Bienvenidos a Ceph!\n The welcome message on the login page\n \n \n Username is required\n El nombre de usuario es obligatorio\n \n \n Password is required\n La contrase\xf1a es obligatoria\n \n \n Login\n Entrada\n \n \n Sorry, the user does not exist in Ceph.\n Lo sentimos. El usuario no existe en Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Vuelva a la \n P\xe1gina de entrada\n . Saldr\xe1 del proveedor de identidad cuando vuelva a intentar entrar a la sesi\xf3n.\n \n \n \n Forbidden\n Prohibido\n \n \n Sorry, you are not allowed to see what you were looking for.\n Lo sentimos. No tiene permiso para ver lo que busca.\n \n \n Sorry, we could not find what you were looking for\n Lo sentimos. No se encuentra lo que busca\n \n \n Remove all\n Eliminar todo\n \n \n Recent Notifications\n Notificaciones recientes\n \n \n There are no background tasks.\n No hay tareas en segundo plano.\n \n \n Background Tasks\n Tareas en segundo plano\n \n \n Help\n Ayuda\n \n \n Documentation\n Documentaci\xf3n\n \n \n API\n API\n \n \n About\n Acerca de\n \n \n Dashboard Settings\n Ajustes de la consola\n \n \n User management\n Gesti\xf3n del usuario\n \n \n Logged in user\n Usuario que ha entrado\n \n \n Signed in as\n \n \n \n \n Ha entrado como\n \n \n \n \n \n \n Sign out\n Salir\n \n \n Name...\n Nombre...\n \n \n The chosen name is already in use.\n El nombre que ha elegido ya est\xe1 en uso.\n \n \n Description...\n Descripci\xf3n...\n \n \n Permissions\n Permisos\n \n \n Roles\n Funciones\n \n \n Username\n Nombre de usuario\n \n \n Password\n Contrase\xf1a\n \n \n Confirm password\n Confirmar contrase\xf1a\n \n \n Password confirmation doesn\'t match the password.\n Las contrase\xf1as no coinciden.\n \n \n Full name\n Nombre completo\n \n \n Email\n Correo electr\xf3nico\n \n \n Invalid email.\n Correo electr\xf3nico no v\xe1lido.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Se dispone a eliminar los permisos "lectura/actualizaci\xf3n de usuario" de su propio usuario.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Si contin\xfaa, no podr\xe1 a\xf1adir ni eliminar funciones en ning\xfan usuario.\n \n \n Are you sure you want to continue?\n \xbfSeguro que desea continuar?\n \n \n Performance counters not available\n Los contadores de rendimiento no est\xe1n disponibles\n \n \n Attributes (OSD map)\n Atributos (mapa de OSD)\n \n \n Metadata not available\n Los metadatos no est\xe1n disponibles\n \n \n Metadata\n Metadatos\n \n \n Performance counter\n Contandor de rendimiento\n \n \n Histogram not available: \n \n \n El histograma no est\xe1 disponible: \n \n \n \n \n Writes\n Escrituras\n \n \n Reads\n Lecturas\n \n \n Histogram\n Histograma\n \n \n Performance Details\n Detalles de rendimiento\n \n \n Current values\n Valores actuales\n \n \n Type\n Tipo\n \n \n Min\n M\xedn.\n \n \n Max\n M\xe1x.\n \n \n Flags\n Indicadores\n \n \n Source\n Origen\n \n \n Level\n Nivel\n \n \n Can be updated at runtime (editable)\n Se puede actualizar en el tiempo de ejecuci\xf3n (editable)\n \n \n Tags\n Etiquetas\n \n \n Enum values\n Valores Enum\n \n \n See also\n V\xe9ase tambi\xe9n\n \n \n Cluster Status\n Estado del cl\xfaster\n \n \n Manager Daemons\n Daemons de gestor\n \n \n Object Gateways\n Instancias de Object Gateway\n \n \n Metadata Servers\n Servidores de metadatos\n \n \n iSCSI Gateways\n Puertas de enlace iSCSI\n \n \n Client IOPS\n IOPS de cliente\n \n \n Client Throughput\n Rendimiento del cliente\n \n \n Client Read/Write\n Lectura/escritura de cliente\n \n \n Recovery Throughput\n Rendimiento de recuperaci\xf3n\n \n \n Scrub\n Depuraci\xf3n\n \n \n Performance\n Rendimiento\n \n \n Raw Capacity\n Capacidad en bruto\n \n \n Objects\n Objetos\n \n \n PGs per OSD\n Grupos de colocaci\xf3n por OSD\n \n \n PG Status\n Estado del grupo de colocaci\xf3n\n \n \n Capacity\n Capacidad\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Consulte la secci\xf3n \n Registros\n para obtener m\xe1s datos.\n \n \n \n Ranks\n Clasificaciones\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clientes: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Mover una imagen a la papelera\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Para mover \n \n /\n \n a la papelera,\n haga clic en \n Mover imagen\n . Opcionalmente, puede seleccionar una fecha de caducidad.\n \n \n \n Protection expires at\n La protecci\xf3n caduca a las\n \n \n NOT PROTECTED\n SIN PROTECCI\xd3N\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Formato de fecha err\xf3neo. Use el formato "AAAA-MM-DD HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n La protecci\xf3n ya ha caducado. Seleccione una fecha del futuro o deje el campo vac\xedo.\n \n \n Move Image\n Mover imagen\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Resumen\n \n \n Targets\n Destinos\n \n \n Discovery Authentication\n Autenticaci\xf3n de descubrimiento\n \n \n User\n Usuario\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Los nombres de usuario deben tener entre 8 y 64 caracteres y\n solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Usuario mutuo\n \n \n Mutual Password\n Contrase\xf1a mutua\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Consulte la \n documentaci\xf3n\n \n sobre c\xf3mo configurar y habilitar la funci\xf3n de gesti\xf3n de destinos iSCSI.\n \n \n \n Available information:\n Informaci\xf3n disponible:\n \n \n iSCSI Targets not available\n Destinos iSCSI no disponibles\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Solo disponible para im\xe1genes RBD con \n fast-diff\n habilitado\n \n \n \n Pool\n Repositorio\n \n \n Data Pool\n Repositorio de datos\n \n \n Created\n Creados\n \n \n Size\n Tama\xf1o\n \n \n Object size\n Tama\xf1o del objeto\n \n \n Features\n Caracter\xedsticas\n \n \n Provisioned\n Aprovisionados\n \n \n N/A\n N/D\n \n \n Total provisioned\n Total aprovisionado\n \n \n Striping unit\n Unidad de repartici\xf3n\n \n \n Striping count\n Recuento de repartici\xf3n\n \n \n Parent\n Padre\n \n \n Block name prefix\n Prefijo de nombre de bloque\n \n \n Order\n Orden\n \n \n Snapshots\n Instant\xe1neas\n \n \n Image\n Imagen\n \n \n This setting overrides the global value\n Este ajuste sustituye al valor global\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Este es el valor global. No se ha definido ning\xfan valor para esta opci\xf3n para esta imagen.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n No se permiten los caracteres "/" ni "@".\n \n \n -- No rbd pools available --\n -- No hay ning\xfan repositorio RBD disponible --\n \n \n -- Select a pool --\n -- Seleccione un repositorio --\n \n \n Use a dedicated data pool\n Usar un repositorio dedicado para datos\n \n \n Data pool\n Repositorio de datos\n \n \n Dedicated pool that stores the object-data of the RBD.\n Repositorio dedicado para almacenar los datos de objeto de RBD.\n \n \n e.g., 10GiB\n ej.: 10 GiB\n \n \n You have to increase the size.\n Debe aumentar el tama\xf1o.\n \n \n Advanced\n Avanzado\n \n \n Striping\n Repartici\xf3n\n \n \n Stripe unit\n Unidad de repartici\xf3n\n \n \n -- Select stripe unit --\n -- Seleccione la unidad de repartici\xf3n --\n \n \n This field is required because stripe count is defined!\n Este campo es obligatorio porque se ha definido el recuento de repartici\xf3n.\n \n \n Stripe unit is greater than object size.\n La unidad de repartici\xf3n es mayor que el tama\xf1o del objeto.\n \n \n Stripe count\n Recuento de repartici\xf3n\n \n \n This field is required because stripe unit is defined!\n Este campo es obligatorio porque se ha definido la unidad de repartici\xf3n.\n \n \n Stripe count must be greater than 0.\n El recuento de repartici\xf3n debe ser mayor que 0.\n \n \n \n RBD Snapshot\n \n \n instant\xe1nea RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Renombrar} other {Crear} }\n \n \n \n Snapshot\n \n \n instant\xe1nea\n \n \n \n PROTECTED\n CON PROTECCI\xd3N\n \n \n UNPROTECTED\n SIN PROTECCI\xd3N\n \n \n You are about to rollback\n Se dispone a revertir\n \n \n Purge Trash\n Vaciar papelera\n \n \n To purge, select one or All images and click\n Para limpiar, seleccione una imagen, o todas las im\xe1genes, y haga clic en\n \n \n Pool:\n Repositorio:\n \n \n Pool name...\n Nombre del repositorio...\n \n \n All\n Todas\n \n \n Restore Image\n Restaurar im\xe1genes\n \n \n To restore\n Para restaurar\n \n \n type the image\'s new name and click\n escriba el nombre nuevo de la imagen y haga clic en\n \n \n New Name\n Nombre nuevo\n \n \n Expired at\n Caduc\xf3 a las\n \n \n Protected until\n Protecci\xf3n hasta\n \n \n This image is protected until \n .\n \n Esta imagen est\xe1 protegida hasta el \n .\n \n \n \n Trash\n Papelera\n \n \n iSCSI Topology\n Topolog\xeda iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Normalmente no es necesario cambiar los valores por defecto de estos par\xe1metros.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Ajustes\n \n \n Backstore\n Almac\xe9n\n \n \n Confirm\n Confirmar\n \n \n Advanced Settings\n Ajustes avanzados\n \n \n Target IQN\n IQN de destino\n \n \n IQN has wrong pattern.\n El IQN tiene un patr\xf3n err\xf3neo.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Los IQN tienen esta notaci\xf3n: iqn.$year-$month.$reversedAddress:$definedName\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Por ejemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n M\xe1s informaci\xf3n\n \n \n This target has modified advanced settings.\n Este destino tiene ajustes avanzados modificados.\n \n \n Portals\n Portales\n \n \n At least \n gateways are required.\n \n Se requieren al menos \n puertas de enlace.\n \n \n \n Add portal\n A\xf1adir portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Esta imagen tiene ajustes modificados.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n A\xf1adir imagen\n \n \n ACL authentication\n Autenticaci\xf3n de ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Iniciadores\n \n \n Initiator\n Iniciador\n \n \n Client IQN\n IQN del cliente\n \n \n Initiator IQN needs to be unique.\n El IQN del iniciador debe ser exclusivo.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Los nombres de usuario deben tener entre 8 y 64 caracteres y\n solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n El iniciador pertenece a un grupo. Las im\xe1genes se configurar\xe1n en el grupo.\n \n \n No items added.\n No se ha a\xf1adido ning\xfan elemento.\n \n \n Add initiator\n A\xf1adir iniciador\n \n \n Groups\n Grupos\n \n \n Group\n Grupo\n \n \n Add group\n A\xf1adir grupo\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configuraci\xf3n de RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Elimina el valor de configuraci\xf3n local. Se heredar\xe1 y usar\xe1 en su lugar el valor de configuraci\xf3n padre.\n \n \n The mininum value is 0\n El valor m\xednimo es 0\n \n \n Issues\n Problemas\n \n \n Syncing\n Sincronizando\n \n \n Ready\n Listo\n \n \n Edit pool mirror mode\n Editar modo de duplicaci\xf3n de repositorio\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Para editar el modo de duplicaci\xf3n del repositorio\xa0\n \n \n , seleccione un modo nuevo en la lista y haga clic\xa0\n en \n Actualizar\n .\n \n \n \n Mode\n Modo\n \n \n Peer clusters must be removed prior to disabling mirror.\n Los cl\xfasteres de par deben eliminarse antes de inhabilitar la duplicaci\xf3n.\n \n \n \n \n pool mirror peer\n \n \n \nduplicar par de repositorio\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Editar} other {A\xf1adir} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n los atributos del par\n de duplicaci\xf3n del respositorio \n \n \n y haga clic en \n Enviar\n .\n \n \n \n Cluster Name\n Nombre del cl\xfaster\n \n \n The cluster name is not valid.\n El nombre del cl\xfaster no es v\xe1lido.\n \n \n CephX ID\n ID de CephX\n \n \n CephX ID...\n ID de CephX...\n \n \n The CephX ID is not valid.\n El ID de CephX no es v\xe1lido.\n \n \n Monitor Addresses\n Direcciones de monitores\n \n \n Comma-delimited addresses...\n Direcciones delimitadas por comas...\n \n \n The monitory address is not valid.\n La direcci\xf3n del monitor no es v\xe1lida.\n \n \n CephX Key\n Clave de CephX\n \n \n Base64-encoded key...\n Clave con cifrado base64...\n \n \n CephX key must be base64 encoded.\n La clave de CephX debe tener cifrado base64\n \n \n Pools List\n Lista de repositorios\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n El nombre solo puede tener caracteres alfanum\xe9ricos, guiones y guiones bajos.\n \n \n The chosen erasure code profile name is already in use.\n El nombre del perfil de c\xf3digo de borrado que ha elegido ya est\xe1 en uso.\n \n \n Plugin\n Complemento\n \n \n Data chunks (k)\n Porciones de datos (k)\n \n \n Must be equal to or greater than 2.\n Debe ser igual o mayor que 2.\n \n \n Coding chunks (m)\n Porciones de c\xf3digo (m)\n \n \n Must be equal to or greater than 1.\n Debe ser igual o mayor que 1.\n \n \n Durability estimator (c)\n Estimador de durabilidad (c)\n \n \n Locality (l)\n Localizaci\xf3n (l)\n \n \n Crush failure domain\n Dominio de error de CRUSH\n \n \n Crush Locality\n Localizaci\xf3n de CRUSH\n \n \n None\n Ninguna\n \n \n Technique\n T\xe9cnica\n \n \n Packetsize\n Tama\xf1o del paquete\n \n \n Crush root\n Ra\xedz de CRUSH\n \n \n Crush device class\n Clase de dispositivo de CRUSH\n \n \n any\n cualquiera\n \n \n Directory\n Directorio\n \n \n The chosen Ceph pool name is already in use.\n El nombre del repositorio de Ceph que ha elegido ya est\xe1 en uso.\n \n \n Pool type\n Tipo de repositorio\n \n \n -- Select a pool type --\n -- Seleccione un tipo de repositorio --\n \n \n Placement groups\n Grupos de colocaci\xf3n\n \n \n At least one placement group is needed!\n Se necesita al menos un grupo de colocaci\xf3n.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n El cl\xfaster no puede gestionar tantos grupos de colocaci\xf3n. Vuelva a calcular la cantidad que necesita.\n \n \n Calculation help\n Ayuda para el c\xe1lculo\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n El n\xfamero grupos de colocaci\xf3n actual se ha calculado\n\xa0 autom\xe1ticamente. Debe asegurarse de que sirve para sus necesidades antes de enviar.\n \n \n Crush ruleset\n Conjunto de reglas de CRUSH\n \n \n -- Select a crush rule --\n -- Seleccione una regla de CRUSH --\n \n \n Crush rule\n Regla de CRUSH\n \n \n Crush steps\n Pasos de CRUSH\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n La regla no se puede usar en el cl\xfaster actual, ya que\n no tiene suficientes OSD que cumplan el m\xednimo requerido.\n \n \n Replicated size\n Tama\xf1o replicado\n \n \n Minimum: \n \n \n M\xednimo: \n \n \n \n \n Maximum: \n \n \n M\xe1ximo: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n El tama\xf1o especificado est\xe1 fuera del intervalo. Los valores v\xe1lidos\n son del \n al \n .\n \n \n \n Erasure code profile\n Perfil de c\xf3digo de borrado\n \n \n -- No erasure code profile available --\n -- No hay ning\xfan perfil de c\xf3digo de borrado disponible --\n \n \n -- Select an erasure code profile --\n -- Seleccione un perfil de c\xf3digo de borrado --\n \n \n EC Overwrites\n Sustituciones de c\xf3digos de borrado\n \n \n Applications\n Aplicaciones\n \n \n Compression\n Compresi\xf3n\n \n \n Algorithm\n Algoritmo\n \n \n -- No erasure compression algorithm available --\n -- No hay ning\xfan algoritmo de compresi\xf3n de borrado disponible --\n \n \n Minimum blob size\n Tama\xf1o de Blob m\xednimo\n \n \n e.g., 128KiB\n p. ej. 128 KiB\n \n \n Value should be greater than 0\n El valor debe ser mayor que 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Tama\xf1o de Blob m\xe1ximo\n \n \n e.g., 512KiB\n p. ej. 512 KiB\n \n \n Value should be greater than the minimum blob size\n El valor debe ser mayor que el tama\xf1o de Blob m\xednimo\n \n \n Ratio\n Relaci\xf3n\n \n \n Compression ratio\n Relaci\xf3n de compresi\xf3n\n \n \n Value should be between 0.0 and 1.0\n El valor debe estar entre 0,0 y 1,0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n No es posible crear un repositorio RBD con el nombre "/".\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Cambie el nombre o elimine "rbd" de la lista de aplicaciones.\n \n \n Cache Tiers Details\n Detalles de niveles de cach\xe9\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Consulte la \n documentaci\xf3n\n \n sobre c\xf3mo configurar y habilitar la funci\xf3n de gesti\xf3n de Object Gateway.\n \n \n \n Daemons List\n Lista de daemons\n \n \n Performance Counters\n Contadores de rendimiento\n \n \n Loading bucket data...\n Cargando datos de la papelera...\n \n \n The bucket data could not be loaded.\n No es posible cargar los datos de la papelera.\n \n \n Id\n ID\n \n \n The value is not valid.\n El valor no es v\xe1lido.\n \n \n Owner\n Propietario\n \n \n -- Select a user --\n -- Seleccione un usuario --\n \n \n ID\n ID\n \n \n Index type\n Tipo de \xedndice\n \n \n Placement rule\n Regla de colocaci\xf3n\n \n \n Marker\n Marcador\n \n \n Maximum marker\n Marcador m\xe1ximo\n \n \n Version\n Versi\xf3n\n \n \n Master version\n Versi\xf3n maestra\n \n \n Modification time\n Hora de modificaci\xf3n\n \n \n Zonegroup\n Grupo de zona\n \n \n Bucket quota\n Cuota de papelera\n \n \n Enabled\n Habilitado\n \n \n Maximum size\n Tama\xf1o m\xe1ximo\n \n \n Unlimited\n Sin l\xedmite\n \n \n Maximum objects\n N\xfamero m\xe1ximo de objetos\n \n \n -- Select a username --\n -- Seleccione un nombre de usuario --\n \n \n Auto-generate key\n Autogenerar clave\n \n \n Access key\n Clave de acceso\n \n \n Secret key\n Clave secreta\n \n \n Email address\n Direcci\xf3n de correo electr\xf3nico\n \n \n Suspended\n Suspendido\n \n \n System\n Sistema\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {S\xed} }\n \n \n Maximum buckets\n N\xfamero m\xe1ximo de papeleras\n \n \n Subusers\n Subusuarios\n \n \n Capabilities\n Capacidades\n \n \n User quota\n Cuota de usuario\n \n \n Show\n Mostrar\n \n \n Keys\n Claves\n \n \n -- Select a type --\n -- Seleccione un tipo --\n \n \n Permission\n Permiso\n \n \n -- Select a permission --\n -- Seleccione un permiso --\n \n \n Subuser\n Subusuario\n \n \n The chosen subuser ID is already in use.\n El ID de subusuario que ha elegido ya est\xe1 en uso.\n \n \n read, write\n lectura, escritura\n \n \n full\n todos\n \n \n Swift key\n Clave Swift\n \n \n Auto-generate secret\n Autogenerar secreto\n \n \n Loading user data...\n Cargando datos del usuario...\n \n \n The user data could not be loaded.\n No es posible cargar los datos del usuario.\n \n \n The chosen user ID is already in use.\n El ID de usuario que ha elegido ya est\xe1 en uso.\n \n \n This is not a valid email address.\n Esta direcci\xf3n no es v\xe1lida.\n \n \n The chosen email address is already in use.\n La direcci\xf3n de correo electr\xf3nico que ha elegido ya est\xe1 en uso.\n \n \n Max. buckets\n M\xe1x. papeleras\n \n \n The entered value must be >= 0.\n El valor introducido debe ser mayor o igual que 0.\n \n \n S3 key\n Clave S3\n \n \n There are no subusers.\n No hay ning\xfan subusuario.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n No hay ninguna clave.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n No hay ninguna capacidad\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Tama\xf1o ilimitado\n \n \n Max. size\n Tama\xf1o m\xe1x.\n \n \n Unlimited objects\n Objetos ilimitados\n \n \n Max. objects\n Objetos m\xe1x.\n \n \n Current\n Actual\n \n \n Updated discovery authentication\n Autenticaci\xf3n de descubrimiento actualizada\n \n \n There are no portals available.\n No hay ning\xfan portal disponible.\n \n \n There are no images available.\n No hay ninguna imagen disponible.\n \n \n There are no images available. Please make sure you add an image to the target.\n No hay ninguna imagen disponible. Aseg\xfarese de a\xf1adir una imagen al destino.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n No hay ning\xfan iniciador disponible. Aseg\xfarese de a\xf1adir un iniciador al destino.\n \n \n target\n target\n \n \n Target\n Destino\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Estado\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Bytes de lectura\n \n \n Write Bytes\n Bytes de escritura\n \n \n Read Ops\n Operaciones de lectura\n \n \n Write Ops\n Operaciones de escritura\n \n \n A/O Since\n A/O desde\n \n \n Instance\n Instancia\n \n \n Hostname\n Nombre de host\n \n \n Issue\n Problema\n \n \n Progress\n Progreso\n \n \n Disabled\n Inhabilitado\n \n \n Edit Mode\n Editar modo\n \n \n Add Peer\n A\xf1adir par\n \n \n Edit Peer\n Editar par\n \n \n Delete Peer\n Suprimir par\n \n \n Leader\n L\xedder\n \n \n # Local\n N.\xba locales\n \n \n # Remote\n N.\xba remotos\n \n \n mirror peer\n duplicar par\n \n \n Key\n Clave\n \n \n RBD\n RBD\n \n \n Deep flatten\n Aplanamiento profundo\n \n \n Layering\n En capas\n \n \n Exclusive lock\n Bloqueo exclusivo\n \n \n Object map (requires exclusive-lock)\n Mapa de objetos (requiere bloqueo exclusivo)\n \n \n Journaling (requires exclusive-lock)\n En diario (requiere bloqueo exclusivo)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Reversi\xf3n de instant\xe1nea RBD\n \n \n Rollback\n Revertir\n \n \n RBD snapshot\n Instant\xe1nea RBD\n \n \n Deleted At\n Suprimido a las\n \n \n id\n ID\n \n \n type\n tipo\n \n \n state\n estado\n \n \n version\n versi\xf3n\n \n \n Host\n Host\n \n \n root\n ra\xedz\n \n \n Rank\n Clasificaci\xf3n\n \n \n Daemon\n Daemon\n \n \n Activity\n Actividad\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodos\n \n \n Usage\n Uso\n \n \n Standby daemons\n Daemons de reserva\n \n \n The value can be updated at runtime.\n El valor se puede actualizar en el tiempo de ejecuci\xf3n.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Los daemons/clientes no extraen este valor de la\n base de datos de configuraci\xf3n del monitor. No se recomienda definir esta opci\xf3n con "ceph config\n set ...". Esta opci\xf3n se debe configurar mediante ceph.conf o a trav\xe9s\n de la l\xednea de comandos.\n \n \n Option takes effect only during daemon startup.\n La opci\xf3n solo surte efecto durante el inicio del daemon.\n \n \n Option only affects cluster creation.\n La opci\xf3n solo afecta a la creaci\xf3n del cl\xfaster.\n \n \n Option only affects daemon creation.\n La opci\xf3n solo afecta a la creaci\xf3n del daemon.\n \n \n Updated config option \n \n \n Opci\xf3n de configuraci\xf3n actualizada \n \n \n \n \n Service\n Servicio\n \n \n Current value\n Valor actual\n \n \n Editable\n Editable\n \n \n Updated options for module "\n ".\n \n Opciones actualizadas para el m\xf3dulo \n .\n \n \n \n Enable\n Habilitar\n \n \n Disable\n Inhabilitar\n \n \n Reconnecting, please wait ...\n Conectando de nuevo. Espere...\n \n \n Public Address\n Direcci\xf3n p\xfablica\n \n \n Open Sessions\n Sesiones abiertas\n \n \n No In\n No incluir\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Los OSD que se excluyeron anteriormente no se volver\xe1n a incluir cuando se inicien\n \n \n No Out\n No excluir\n \n \n OSDs will not automatically be marked out after the configured interval\n Los OSD no se excluir\xe1n autom\xe1ticamente despu\xe9s del intervalo configurado\n \n \n No Up\n No activar\n \n \n OSDs are not allowed to start\n No se permite que los OSD se inicien\n \n \n No Down\n No desactivar\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Se ignoran los informes de error de OSD, de forma que los monitores no desactivar\xe1n los OSD\n \n \n Pause\n Pausa\n \n \n Pauses reads and writes\n Pone en pausa las lecturas y escrituras\n \n \n No Scrub\n No depurar\n \n \n Scrubbing is disabled\n La depuraci\xf3n est\xe1 inhabilitada\n \n \n No Deep Scrub\n No depuraci\xf3n profunda\n \n \n Deep Scrubbing is disabled\n La depuraci\xf3n profunda est\xe1 inhabilitada\n \n \n No Backfill\n No reponer\n \n \n Backfilling of PGs is suspended\n La reposici\xf3n de grupos de colocaci\xf3n se suspende\n \n \n No Recover\n No recuperar\n \n \n Recovery of PGs is suspended\n La recuperaci\xf3n de los grupos de colocaci\xf3n se suspende\n \n \n Bitwise Sort\n Orden bit a bit\n \n \n Use bitwise sort\n Usar orden bit a bit\n \n \n Purged Snapdirs\n Snapdir limpiados\n \n \n OSDs have converted snapsets\n Los OSD tienen snapset convertidos\n \n \n Recovery Deletes\n Supresiones de recuperaci\xf3n\n \n \n Deletes performed during recovery instead of peering\n Supresiones realizadas durante la recuperaci\xf3n, en lugar de emparejamientos\n \n \n PG Log Hard Limit\n L\xedmite estricto de registro del grupo de colocaci\xf3n\n \n \n Puts a hard limit on pg log length\n Establece un l\xedmite estricto para la longitud del registro del grupo de colocaci\xf3n\n \n \n Updated OSD Flags\n Indicadores de OSD actualizados\n \n \n out\n excluir\n \n \n in\n Incluir\n \n \n down\n desactivar\n \n \n Mark\n Marcar\n \n \n OSD lost\n OSD perdido\n \n \n marked lost\n marcado como perdido\n \n \n Purge\n Limpiar\n \n \n OSD\n OSD\n \n \n purged\n limpiado\n \n \n destroy\n destruir\n \n \n destroyed\n destruido\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Grupos de colocaci\xf3n\n \n \n Read bytes\n Bytes de lectura\n \n \n Writes bytes\n Bytes de escritura\n \n \n Read ops\n Operaciones de lectura\n \n \n Write ops\n Operaciones de escritura\n \n \n Mark OSD \n \n \n Marcar OSD \n \n \n \n \n Mark \n \n \n Marcar \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n N\xfamero m\xe1ximo de reposiciones\n \n \n Recovery Max Active\n M\xe1ximo de recuperaciones activas\n \n \n Recovery Max Single Start\n M\xe1ximo de recuperaciones de inicio \xfanico\n \n \n Recovery Sleep\n Reposo de recuperaci\xf3n\n \n \n Custom\n Personalizar\n \n \n Updated OSD recovery speed priority "\n "\n \n Prioridad de velocidad de recuperaci\xf3n de OSD actualizada \n \n \n \n \n \n was initialized in the following OSD: \n \n \n \n se ha inicializado en el siguiente OSD: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Trabajo\n \n \n Severity\n Gravedad\n \n \n Started\n Iniciado\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Actualizado\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Usado\n \n \n Avail.\n Dispon.\n \n \n Clean\n Limpio\n \n \n Working\n En curso\n \n \n Warning\n Advertencia\n \n \n Unknown\n Desconocido\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n activo\n \n \n no filesystems\n sin sistemas de archivos\n \n \n active\n activo\n \n \n standby\n reserva\n \n \n n/a\n n/d\n \n \n active daemon\n daemon activo\n \n \n quorum\n qu\xf3rum\n \n \n The NFS Ganesha service is not configured.\n El servicio NFS Ganesha no est\xe1 configurado.\n \n \n Transport\n Transportar\n \n \n CephFS User\n Usuario de CephFS\n \n \n CephFS Filesystem\n Sistemas de archivos CephFS\n \n \n (inherited from global config)\n (se hereda de la configuraci\xf3n global)\n \n \n inherited from global config\n se hereda de la configuraci\xf3n global\n \n \n -- Select what kind of user id squashing is performed --\n -- Seleccione el tipo de reducci\xf3n de privilegios de ID de usuario que se va a realizar --\n \n \n There are no daemons available.\n No hay ning\xfan daemon disponible.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Modo de cach\xe9\n \n \n Min Evict Age\n Antig\xfcedad m\xednima de expulsi\xf3n\n \n \n Min Flush Age\n Antig\xfcedad m\xednima de vaciado\n \n \n Target Max Bytes\n N\xfamero m\xe1ximo de bytes de destino\n \n \n Target Max Objects\n N\xfamero m\xe1ximo de objetos de destino\n \n \n No applications added\n No se ha a\xf1adido ninguna aplicaci\xf3n\n \n \n Applications limit reached\n Se ha alcanzado el l\xedmite de aplicaciones\n \n \n A pool can only have up to four applications definitions.\n Un repositorio solo puede tener hasta cuatro definiciones de aplicaciones.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caracteres permitidos: _, a-z, A-Z y 0-9\n \n \n Maximum length is 128 characters\n La longitud m\xe1xima es 128 caracteres\n \n \n Filter or add applications\n Filtrar o a\xf1adir aplicaciones\n \n \n Add application\n A\xf1adir aplicaci\xf3n\n \n \n pool\n pool\n \n \n erasure code profile\n perfil de c\xf3digo de borrado\n \n \n Replica Size\n Tama\xf1o de r\xe9plica\n \n \n Last Change\n \xdaltimo cambio\n \n \n Erasure Coded Profile\n Perfil de c\xf3digo de borrado\n \n \n Crush Ruleset\n Conjunto de reglas de CRUSH\n \n \n Write bytes\n Bytes de escritura\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n papelera\n \n \n Updated Object Gateway bucket "\n "\n \n Papelera de Object Gateway actualizada "\n "\n \n \n \n Created Object Gateway bucket "\n "\n \n Papelera de Object Gateway creada "\n "\n \n \n \n buckets\n papeleras\n \n \n capability\n capability\n \n \n user\n usuario\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Usuario de Object Gateway actualizado "\n "\n \n \n \n Created Object Gateway user "\n "\n \n Usuario de Object Gateway creado "\n "\n \n \n \n users\n usuarios\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \xc1mbito\n \n \n Read\n Lectura\n \n \n Create\n Crear\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Se ha creado la funci\xf3n \n \n \n \n \n Updated role \'\n \'\n \n Se ha actualizado la funci\xf3n \n \n \n \n \n System Role\n Funci\xf3n del sistema\n \n \n Deleted role \'\n \'\n \n Se ha suprimido la funci\xf3n \n \n \n \n \n Created user "\n "\n \n Se ha creado el usuario \n \n \n \n \n Update user\n Actualizar usuario\n \n \n Continue\n Continuar\n \n \n You were automatically logged out because your roles have been changed.\n La sesi\xf3n se ha cerrado autom\xe1ticamente porque sus funciones han cambiado.\n \n \n Updated user "\n "\n \n Se ha actualizado el usuario \n \n \n \n \n Deleted user "\n "\n \n Se ha suprimido el usuario \n \n \n \n \n Failed to delete user "\n "\n \n Error al suprimir el usuario \n \n \n \n \n You are currently logged in as "\n ".\n \n Ha entrado a la sesi\xf3n como \n \n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Cada objeto se divide en porciones de datos, cada una almacenada en un OSD distinto.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calcula las porciones de c\xf3digo para cada objeto y las almacena en distintos OSD.\n El n\xfamero de porciones de c\xf3digo es tambi\xe9n el n\xfamero de OSD que pueden estar inactivos sin que se pierdan datos.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n El complemento jerasure es el m\xe1s gen\xe9rico y flexible,\n y tambi\xe9n el complemento por defecto para los repositorios de c\xf3digo de borrado de Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n La t\xe9cnica m\xe1s flexible es reed_sol_van: basta con definir k y m.\n La t\xe9cnica cauchy_good puede ser m\xe1s r\xe1pida, pero hay que elegir con cuidado el tama\xf1o\n del paquete. reed_sol_r6_op, liberation, blaum_roth y liber8tion son todas equivalentes a RAID6\n en el sentido de que solo se pueden configurar con m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n La codificaci\xf3n se realizar\xe1 seg\xfan el tama\xf1o de los paquetes de bytes de uno en uno.\n Elegir el tama\xf1o correcto es dif\xedcil.\n La documentaci\xf3n de jerasure incluye informaci\xf3n completa sobre el tema.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Con el complemento jerasure, cuando un objeto de c\xf3digo de borrado se almacena\n en varios OSD, para recuperarse de la p\xe9rdida de un OSD es necesario leer de todos los dem\xe1s.\n Por ejemplo, si jerasure est\xe1 configurado con k=8 y m=4, cuando se pierde un OSD es necesario leer\n de los otros once para repararlo.\n\n El complemento de c\xf3digo de borrado lrc crea porciones de paridad local para poder realizar la recuperaci\xf3n con\n menos OSDs. Por ejemplo, is lrc est\xe1 configurado con k=8, m=4 y l=4, crear\xe1\n una porci\xf3n de paridad adicional para cada cuatro OSDs. Si se pierde un solo OSD, se puede recuperar\n solo con cuatro OSD, en lugar de con once.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Agrupa las porciones de c\xf3digo y de datos en localizaciones de conjuntos de tama\xf1o. Por ejemplo,\n para k=4 y m=2, si locality=3, se crean dos grupos de tres. Cada conjunto\n se puede recuperar sin leer porciones de otro conjunto.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n El tipo de papelera de CRUSH en el que se almacenar\xe1 cada\n conjunto de porciones definido por l. Por ejemplo, si se define como bastidor, cada grupo de l porciones\n se colocar\xe1 en un bastidor distinto. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step choose\n rack". Si no se define, no se realiza este tipo de agrupamiento.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n El complemento isa encapsula la biblioteca ISA. Solo funciona en procesadores Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n El complemento ISA viene en dos formatos de Reed Solomon.\n Si se define reed_sol_van, se trata de Vandermonde; si se define cauchy, se trata de Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n El complemento shec encapsula las distintas bibliotecas SHEC.\n Permite a Ceph recuperar datos de forma m\xe1s eficiente que los c\xf3digos de Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n El n\xfamero de porciones de paridad. Cada uno de ellas incluye cada porci\xf3n de datos\n en su intervalo de c\xe1lculo. El n\xfamero se usa como estimador de durabilidad. Por ejemplo, si c=2,\n 2 OSD pueden estar inactivos sin que se pierdan datos.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n El nombre de la papelera de CRUSH usado para el primer paso de la regla de CRUSH.\n Por ejemplo, "step take default".\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Aseg\xfarese de que no hay dos porciones en una papelera con el mismo\n dominio de error. Por ejemplo, si el dominio de error es host, no debe haber dos porciones almacenadas en el mismo\n host. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step chooseleaf host".\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Restringe la colocaci\xf3n a dispositivos de una clase concreta\n (p.ej., ssd o hdd) usando los nombre de clase de dispositivo CRUSH en el mapa de CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Define el nombre de directorio del que se cargar\xe1 el complemento de c\xf3digo de borrado.\n \n \n Allows all operations\n Permite todas las operaciones\n \n \n Allows only operations that do not modify the server\n Permite solo las operaciones que no modifican el servidor\n \n \n Does not allow read or write operations, but allows any other operation\n No permite operaciones de lectura o escritura, pero s\xed cualquier otra\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n No permite operaciones de lectura o escritura, ni ninguna otra que modifique los atributos del archivo o el contenido del directorio\n \n \n Allows no access at all\n No permite ning\xfan tipo de acceso\n \n \n -- Select the priority --\n -- Seleccione la prioridad --\n \n \n Low\n Baja\n \n \n High\n Alta\n \n \n Last 5 minutes\n \xdaltimos 5 minutos\n \n \n Last 15 minutes\n \xdaltimos 15 minutos\n \n \n Last 30 minutes\n \xdaltimos 30 minutos\n \n \n Last 1 hour (Default)\n \xdaltima hora (opci\xf3n por defecto)\n \n \n Last 3 hours\n \xdaltimas 3 horas\n \n \n Last 6 hours\n \xdaltimas 6 horas\n \n \n Last 12 hours\n \xdaltimas 12 horas\n \n \n Last 24 hours\n \xdaltimas 24 horas\n \n \n Yesterday\n Ayer\n \n \n Today\n Hoy\n \n \n Today so far\n Hoy hasta ahora\n \n \n Day before yesterday\n Anteayer\n \n \n Last 2 days\n Los \xfaltimos 2 d\xedas\n \n \n This day last week\n Este d\xeda la semana pasada\n \n \n Previous week\n La semana pasada\n \n \n This week\n Esta semana\n \n \n This week so far\n Esta semana hasta ahora\n \n \n Last 7 days\n Los \xfaltimos 7 d\xedas\n \n \n Previous month\n El mes pasado\n \n \n This month\n Este mes\n \n \n This month so far\n Este mes hasta ahora\n \n \n Last 30 days\n Los \xfaltimos 30 d\xedas\n \n \n Last 90 days\n Los \xfaltimos 90 d\xedas\n \n \n Last 6 months\n Los \xfaltimos 6 meses\n \n \n Last 1 year\n El \xfaltimo a\xf1o\n \n \n Previous year\n El a\xf1o pasado\n \n \n This year\n Este a\xf1o\n \n \n This year so far\n Este a\xf1o hasta ahora\n \n \n Last 2 years\n Los \xfaltimos 2 a\xf1os\n \n \n Last 5 years\n Los \xfaltimos 5 a\xf1os\n \n \n Information\n Informaci\xf3n\n \n \n No items selected.\n No se ha seleccionado ning\xfan elemento.\n \n \n Deselect item to select again\n Deseleccione el elemento para volver a seleccionarlo\n \n \n Selection limit reached\n Se ha alcanzado el l\xedmite de selecci\xf3n\n \n \n Filter tags\n Filtrar etiquetas\n \n \n Add badge\n A\xf1adir insignia\n \n \n There are no items available.\n No hay ning\xfan elemento disponible.\n \n \n Add\n A\xf1adir\n \n \n Remove\n Remove\n \n \n Clone\n Clonar\n \n \n Copy\n Copiar\n \n \n Deep Scrub\n Depuraci\xf3n profunda\n \n \n Destroy\n Destruir\n \n \n Flatten\n Aplanar\n \n \n Mark Down\n Marcar para desactivar\n \n \n Mark In\n Marcar para incluir\n \n \n Mark Lost\n Marcar como perdido\n \n \n Mark Out\n Marcar para excluir\n \n \n Protect\n Proteger\n \n \n Rename\n Renombrar\n \n \n Restore\n Restaurar\n \n \n Move to Trash\n Mover a la papelera\n \n \n Unprotect\n Desproteger\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Suprimido\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clonado\n \n \n Copied\n Copiado\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n S\xed\n \n \n No\n No\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Calidad del servicio\n \n \n BPS Limit\n L\xedmite de BPS\n \n \n The desired limit of IO bytes per second.\n El l\xedmite deseado de bytes de E/S por segundo.\n \n \n IOPS Limit\n L\xedmite de IOPS\n \n \n The desired limit of IO operations per second.\n El l\xedmite deseado de operaciones de E/S por segundo.\n \n \n Read BPS Limit\n L\xedmite de BPS de lectura\n \n \n The desired limit of read bytes per second.\n El l\xedmite deseado de bytes de lectura por segundo.\n \n \n Read IOPS Limit\n L\xedmite de IOPS de lectura\n \n \n The desired limit of read operations per second.\n El l\xedmite deseado de operaciones de lectura por segundo.\n \n \n Write BPS Limit\n L\xedmite de BPS de escritura\n \n \n The desired limit of write bytes per second.\n El l\xedmite deseado de bytes de escritura por segundo.\n \n \n Write IOPS Limit\n L\xedmite de IOPS de escritura\n \n \n The desired limit of write operations per second.\n El l\xedmite deseado de operaciones de escritura por segundo.\n \n \n BPS Burst\n R\xe1faga de BPS\n \n \n The desired burst limit of IO bytes.\n El l\xedmite deseado de r\xe1faga de bytes de E/S.\n \n \n IOPS Burst\n R\xe1faga de IOPS\n \n \n The desired burst limit of IO operations.\n El l\xedmite deseado de r\xe1faga de operaciones de E/S.\n \n \n Read BPS Burst\n R\xe1faga de BPS de lectura\n \n \n The desired burst limit of read bytes.\n El l\xedmite deseado de r\xe1faga de bytes de lectura.\n \n \n Read IOPS Burst\n R\xe1faga de IOPS de lectura\n \n \n The desired burst limit of read operations.\n El l\xedmite deseado de r\xe1faga de operaciones de lectura.\n \n \n Write BPS Burst\n R\xe1faga de BPS de escritura\n \n \n The desired burst limit of write bytes.\n El l\xedmite deseado de r\xe1faga de bytes de escritura.\n \n \n Write IOPS Burst\n R\xe1faga de IOPS de escritura\n \n \n The desired burst limit of write operations.\n El l\xedmite deseado de r\xe1faga de operaciones de escritura.\n \n \n Failed to \n \n \n \n Error al \n \n \n \n \n \n Executing\n Ejecutando\n \n \n execute\n ejecutar\n \n \n Executed\n Ejecutado\n \n \n unknown task\n tarea desconocida\n \n \n Creating\n Creando\n \n \n create\n crear\n \n \n Updating\n Actualizando\n \n \n update\n actualizar\n \n \n Deleting\n Suprimiendo\n \n \n delete\n suprimir\n \n \n RBD \'\n \'\n \n RBD \n \n \n \n \n RBD snapshot \'\n \'\n \n Instant\xe1nea RBD \n \n \n \n \n mirror mode for pool \'\n \'\n \n modo de duplicaci\xf3n para repositorio \n \n \n \n \n mirror peer for pool \'\n \'\n \n par de duplicaci\xf3n para repositorio \n \n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n \n contains snapshots.\n \n \n contiene instant\xe1neas.\n \n \n \n Cloning\n Clonando\n \n \n clone\n clonar\n \n \n Snapshot of \n must be protected.\n \n La instant\xe1nea de \n debe estar protegida.\n \n \n \n Copying\n Copiando\n \n \n copy\n copiar\n \n \n Flattening\n Aplanando\n \n \n flatten\n aplanar\n \n \n Flattened\n Aplanado\n \n \n Name is already used by \n .\n \n \n ya est\xe1 usando el nombre.\n \n \n \n Cannot unprotect \n because it contains child images.\n \n No es posible desproteger \n porque contiene im\xe1genes hijas.\n \n \n \n Cannot delete \n because it\'s protected.\n \n No es posible suprimir \n porque est\xe1 protegido.\n \n \n \n Rolling back\n Revirtiendo\n \n \n rollback\n revertir\n \n \n Rolled back\n Revertido\n \n \n Moving\n Moviendo\n \n \n move\n mover\n \n \n Moved\n Movido\n \n \n image \'\n \' to trash\n \n la imagen \n a la papelera\n \n \n \n Could not find image.\n No se encuentra la imagen.\n \n \n Restoring\n Restaurando\n \n \n restore\n restaurar\n \n \n Restored\n Restaurado\n \n \n image \'\n \' into \'\n \'\n \n la imagen \n en \n \n \n \n \n Image name \'\n \' is already in use.\n \n El nombre de imagen \n ya est\xe1 en uso.\n \n \n \n image \'\n \'\n \n la imagen \n \n \n \n \n Purging\n Limpiando\n \n \n purge\n limpiar\n \n \n Purged\n Limpiado\n \n \n all pools\n todos los repositorios\n \n \n images from \n \n \n im\xe1genes de \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n No es posible inhabilitar la duplicaci\xf3n porque contiene un par\n \n \n pool \'\n \'\n \n repositorio \n \n \n \n \n erasure code profile \'\n \'\n \n perfil de c\xf3digo de borrado \n \n \n \n \n target \'\n \'\n \n destino \n \n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},czA5:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MouseEvent=("undefined"!=typeof window&&window||global).MouseEvent,e.KeyboardEvent=("undefined"!=typeof window&&window||global).KeyboardEvent,e.Event=("undefined"!=typeof window&&window||global).Event},czMo:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}()},"d+Og":function(t,e,n){"use strict";var a=n("LvDl"),r=function(){function t(t){if(this.type=t,!this.isValidType())throw new Error("Wrong placement group category type");this.setTypeStates()}return t.prototype.isValidType=function(){return t.VALID_CATEGORIES.includes(this.type)},t.prototype.setTypeStates=function(){switch(this.type){case t.CATEGORY_CLEAN:this.states=["active","clean"];break;case t.CATEGORY_WORKING:this.states=["activating","backfill_wait","backfilling","creating","deep","degraded","forced_backfill","forced_recovery","peering","peered","recovering","recovery_wait","repair","scrubbing","snaptrim","snaptrim_wait"];break;case t.CATEGORY_WARNING:this.states=["backfill_toofull","backfill_unfound","down","incomplete","inconsistent","recovery_toofull","recovery_unfound","remapped","snaptrim_error","stale","undersized"];break;default:this.states=[]}},t.VALID_CATEGORIES=[t.CATEGORY_CLEAN="clean",t.CATEGORY_WORKING="working",t.CATEGORY_WARNING="warning",t.CATEGORY_UNKNOWN="unknown"],t}(),i=n("CcnG"),s=n("kJI8");n.d(e,"a",function(){return o});var o=function(){function t(){this.categories=this.createCategories()}return t.prototype.getAllTypes=function(){return r.VALID_CATEGORIES},t.prototype.getTypeByStates=function(t){var e=this,n=this.getPgStatesFromText(t);if(0===n.length)return r.CATEGORY_UNKNOWN;var i=a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(function(t){return a.intersection(e.categories[t].states,n).length}));if(i[r.CATEGORY_WARNING]>0)return r.CATEGORY_WARNING;var s=i[r.CATEGORY_WORKING];return n.length>i[r.CATEGORY_CLEAN]+s?r.CATEGORY_UNKNOWN:s?r.CATEGORY_WORKING:r.CATEGORY_CLEAN},t.prototype.createCategories=function(){return a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(function(t){return new r(t)}))},t.prototype.getPgStatesFromText=function(t){var e=t.replace(/[^a-z]+/g," ").trim().split(" ");return a.uniq(e)},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t},token:t,providedIn:s.a}),t}()},dC0D:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){var n=!1;return arguments.length>=2&&(n=!0),function(a){return a.lift(new s(t,e,n))}}var s=function(){function t(t,e,n){void 0===n&&(n=!1),this.accumulator=t,this.seed=e,this.hasSeed=n}return t.prototype.call=function(t,e){return e.subscribe(new o(t,this.accumulator,this.seed,this.hasSeed))},t}(),o=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.accumulator=n,i._seed=a,i.hasSeed=r,i.index=0,i}return a.__extends(e,t),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(t){this.hasSeed=!0,this._seed=t},enumerable:!0,configurable:!0}),e.prototype._next=function(t){if(this.hasSeed)return this._tryNext(t);this.seed=t,this.destination.next(t)},e.prototype._tryNext=function(t){var e,n=this.index++;try{e=this.accumulator(this.seed,t,n)}catch(a){this.destination.error(a)}this.seed=e,this.destination.next(e)},e}(r.a)},dEH0:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return t+" ms"},t}()},dEwP:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("F/XL"),r=n("Txjg");function i(){for(var t=[],e=0;e1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var a=Date.now();t.dropFrames+=(a-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,a=this.animations,i=0;i=e.numSteps?(r.callback(e.onAnimationComplete,[e],n),n.animating=!1,a.splice(i,1)):++i}}},dzgT:function(t,e,n){"use strict";n.d(e,"b",function(){return l}),n.d(e,"a",function(){return d});var a=n("mrSG"),r=n("nkY7"),i=n("isby"),s=n("MGBS"),o=n("zotm"),u=n("IUTb"),c={};function l(){for(var t=[],e=0;e1&&t<5}function r(t,e,n,r){var i=t+" ";switch(n){case"s":return e||r?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return e||r?i+(a(t)?"sekundy":"sek\xfand"):i+"sekundami";case"m":return e?"min\xfata":r?"min\xfatu":"min\xfatou";case"mm":return e||r?i+(a(t)?"min\xfaty":"min\xfat"):i+"min\xfatami";case"h":return e?"hodina":r?"hodinu":"hodinou";case"hh":return e||r?i+(a(t)?"hodiny":"hod\xedn"):i+"hodinami";case"d":return e||r?"de\u0148":"d\u0148om";case"dd":return e||r?i+(a(t)?"dni":"dn\xed"):i+"d\u0148ami";case"M":return e||r?"mesiac":"mesiacom";case"MM":return e||r?i+(a(t)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return e||r?"rok":"rokom";case"yy":return e||r?i+(a(t)?"roky":"rokov"):i+"rokmi"}}t.defineLocale("sk",{months:e,monthsShort:n,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 4:case 5:return"[minul\xfd] dddd [o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},eTJe:function(t,e,n){"use strict";var a,r=n("gIcY"),i=n("LvDl"),s=n("VNr4"),o=(n("SgmB"),n("ZDA6"),n("sne2"),n("mtw6")),u=n("QFaf"),c=n("1Ni5");n("9nlD"),function(t){t.editing="editing"}(a||(a={}));var l=function(){return function(){}}();n.d(e,"a",function(){return d});var d=function(){function t(t,e,n,r,i,s,o){this.route=t,this.router=e,this.roleService=n,this.scopeService=r,this.notificationService=i,this.i18n=s,this.actionLabels=o,this.scopes=[],this.scopes_permissions=[],this.roleFormMode=a,this.resource=this.i18n("role"),this.createForm(),this.listenToChanges()}return t.prototype.createForm=function(){this.roleForm=new u.a({name:new r.i("",{validators:[r.A.required],asyncValidators:[c.a.unique(this.roleService.exists,this.roleService)]}),description:new r.i(""),scopes_permissions:new r.i({})})},t.prototype.ngOnInit=function(){this.columns=[{prop:"scope",name:this.i18n("All"),flexGrow:2,cellTemplate:this.cellScopeCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl}],this.router.url.startsWith("/user-management/roles/edit")?(this.mode=this.roleFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.mode===this.roleFormMode.editing?this.initEdit():this.initCreate()},t.prototype.initCreate=function(){var t=this;this.scopeService.list().subscribe(function(e){t.scopes=e,t.roleForm.get("scopes_permissions").setValue({})})},t.prototype.initEdit=function(){var t=this;this.roleForm.get("name").disable(),this.route.params.subscribe(function(e){var n=[];n.push(t.scopeService.list()),n.push(t.roleService.get(e.name)),Object(s.a)(n).subscribe(function(e){t.scopes=e[0],["name","description","scopes_permissions"].forEach(function(n){return t.roleForm.get(n).setValue(e[1][n])})})})},t.prototype.listenToChanges=function(){var t=this;this.roleForm.get("scopes_permissions").valueChanges.subscribe(function(e){var n=[];i.each(t.scopes,function(t){var a={read:!1,create:!1,update:!1,delete:!1};a.scope=t,t in e&&i.each(e[t],function(t){a[t]=!0}),n.push(a)}),t.scopes_permissions=n})},t.prototype.isRowChecked=function(t){var e=i.find(this.scopes_permissions,function(e){return e.scope===t});return!i.isUndefined(e)&&e.read&&e.create&&e.update&&e.delete},t.prototype.isHeaderChecked=function(t){var e=this,n=[t];return"scope"===t&&(n=["read","create","update","delete"]),n.every(function(t){return e.scopes_permissions.every(function(e){return e[t]})})},t.prototype.onClickCellCheckbox=function(t,e,n){void 0===n&&(n=null);var a=i.cloneDeep(this.roleForm.getValue("scopes_permissions")),r=[e];"scope"===e&&(r=["read","create","update","delete"]),t in a||(a[t]=[]),n&&n.target.checked||!i.isEqual(r.sort(),i.intersection(a[t],r).sort())?a[t]=i.union(a[t],r):(a[t]=i.difference(a[t],r),i.isEmpty(a[t])&&i.unset(a,t)),this.roleForm.get("scopes_permissions").setValue(a)},t.prototype.onClickHeaderCheckbox=function(t,e){var n=this,a=i.cloneDeep(this.roleForm.getValue("scopes_permissions")),r=[t];"scope"===t&&(r=["read","create","update","delete"]),i.each(r,function(t){i.each(n.scopes,function(n){e.target.checked?a[n]=i.union(a[n],[t]):(a[n]=i.difference(a[n],[t]),i.isEmpty(a[n])&&i.unset(a,n))})}),this.roleForm.get("scopes_permissions").setValue(a)},t.prototype.getRequest=function(){var t=this,e=new l;return["name","description","scopes_permissions"].forEach(function(n){return e[n]=t.roleForm.get(n).value}),e},t.prototype.createAction=function(){var t=this,e=this.getRequest();this.roleService.create(e).subscribe(function(){t.notificationService.show(o.a.success,t.i18n("Created role '{{role_name}}'",{role_name:e.name})),t.router.navigate(["/user-management/roles"])},function(){t.roleForm.setErrors({cdSubmitButton:!0})})},t.prototype.editAction=function(){var t=this,e=this.getRequest();this.roleService.update(e).subscribe(function(){t.notificationService.show(o.a.success,t.i18n("Updated role '{{role_name}}'",{role_name:e.name})),t.router.navigate(["/user-management/roles"])},function(){t.roleForm.setErrors({cdSubmitButton:!0})})},t.prototype.submit=function(){this.mode===this.roleFormMode.editing?this.editAction():this.createAction()},t}()},eajB:function(t,e,n){"use strict";n.d(e,"a",function(){return c}),n.d(e,"b",function(){return l}),n.d(e,"c",function(){return f}),n.d(e,"d",function(){return p});var a=n("CcnG"),r=n("rpEJ"),i=n("mrSG"),s=n("lqqz"),o=n("NJnL"),u=n("gI3B"),c=function(){return function(){this.adaptivePosition=!0,this.placement="top",this.triggers="hover focus",this.delay=0}}(),l=function(){function t(t){Object.assign(this,t)}return Object.defineProperty(t.prototype,"isBs3",{get:function(){return Object(r.d)()},enumerable:!0,configurable:!0}),t.prototype.ngAfterViewInit=function(){this.classMap={in:!1,fade:!1},this.classMap[this.placement]=!0,this.classMap["tooltip-"+this.placement]=!0,this.classMap.in=!0,this.animation&&(this.classMap.fade=!0),this.containerClass&&(this.classMap[this.containerClass]=!0)},t}(),d=0,f=function(){function t(t,e,n,r,i,s){this._elementRef=r,this._renderer=i,this._positionService=s,this.tooltipId=d++,this.tooltipChange=new a.EventEmitter,this.containerClass="",this.tooltipAnimation=!0,this.tooltipFadeDuration=150,this.ariaDescribedby="tooltip-"+this.tooltipId,this.tooltipStateChanged=new a.EventEmitter,this._tooltip=e.createLoader(this._elementRef,t,this._renderer).provide({provide:c,useValue:n}),Object.assign(this,n),this.onShown=this._tooltip.onShown,this.onHidden=this._tooltip.onHidden}return Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._tooltip.isShown},set:function(t){t?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"htmlContent",{set:function(t){Object(r.i)("tooltipHtml was deprecated, please use `tooltip` instead"),this.tooltip=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_placement",{set:function(t){Object(r.i)("tooltipPlacement was deprecated, please use `placement` instead"),this.placement=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_isOpen",{get:function(){return Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen},set:function(t){Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_enable",{get:function(){return Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled},set:function(t){Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled=!t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_appendToBody",{get:function(){return Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),"body"===this.container},set:function(t){Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),this.container=t?"body":this.container},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_popupClass",{set:function(t){Object(r.i)("tooltipClass deprecated")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_tooltipContext",{set:function(t){Object(r.i)("tooltipContext deprecated")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_tooltipPopupDelay",{set:function(t){Object(r.i)("tooltipPopupDelay is deprecated, use `delay` instead"),this.delay=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_tooltipTrigger",{get:function(){return Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers},set:function(t){Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers=(t||"").toString()},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this._tooltip.listen({triggers:this.triggers,show:function(){return t.show()}}),this.tooltipChange.subscribe(function(e){e||t._tooltip.hide()})},t.prototype.toggle=function(){if(this.isOpen)return this.hide();this.show()},t.prototype.show=function(){var t=this;if(this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}}),!(this.isOpen||this.isDisabled||this._delayTimeoutId)&&this.tooltip){var e=function(){t._delayTimeoutId&&(t._delayTimeoutId=void 0),t._tooltip.attach(l).to(t.container).position({attachment:t.placement}).show({content:t.tooltip,placement:t.placement,containerClass:t.containerClass,id:t.ariaDescribedby})},n=function(){t._tooltipCancelShowFn&&t._tooltipCancelShowFn()};if(this.delay){var a=Object(u.a)(this.delay).subscribe(function(){e(),n()});if(this.triggers){var i=Object(r.f)(this.triggers);this._tooltipCancelShowFn=this._renderer.listen(this._elementRef.nativeElement,i[0].close,function(){a.unsubscribe(),n()})}}else e()}},t.prototype.hide=function(){var t=this;this._delayTimeoutId&&(clearTimeout(this._delayTimeoutId),this._delayTimeoutId=void 0),this._tooltip.isShown&&(this._tooltip.instance.classMap.in=!1,setTimeout(function(){t._tooltip.hide()},this.tooltipFadeDuration))},t.prototype.ngOnDestroy=function(){this._tooltip.dispose()},Object(i.__decorate)([Object(r.a)(),Object(i.__metadata)("design:type",Object)],t.prototype,"tooltip",void 0),t}(),p=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[c,s.a,o.a]}},t}()},"ej+x":function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("gI3B"),r=n("psW0"),i=n("klSw"),s=n("CcnG"),o=n("t/Na"),u=function(){function t(t){var e=this;this.http=t,this.API_URL="api/feature_toggles",this.REFRESH_INTERVAL=2e4,this.featureToggleMap$=Object(a.a)(0,this.REFRESH_INTERVAL).pipe(Object(r.a)(function(){return e.http.get(e.API_URL)}),Object(i.a)(1))}return t.prototype.get=function(){return this.featureToggleMap$},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(o.c))},token:t,providedIn:"root"}),t}()},ejVf:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.standard="standard",t.flex="flex",t.force="force"}(e.ColumnMode||(e.ColumnMode={}))},"f/UV":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},fB8H:function(t,e){t.exports='\n \n \n \n Toggle navigation\n \u5207\u6362\u5bfc\u822a\n \n \n Dashboard\n \u4eea\u8868\u76d8\n \n \n Cluster\n \u96c6\u7fa4\n \n \n Hosts\n \u4e3b\u673a\n \n \n Monitors\n Monitor\n \n \n OSDs\n OSD\n \n \n Configuration\n \u914d\u7f6e\u9879\n \n \n CRUSH map\n CRUSH \u7d22\u5f15\n \n \n Manager modules\n Manager \u6269\u5c55\u6a21\u5757\n \n \n Logs\n \u65e5\u5fd7\n \n \n Alerts\n \u8b66\u544a\n \n \n Silences\n Silences\n \n \n Pools\n \u5b58\u50a8\u6c60\n \n \n Block\n \u5757\u8bbe\u5907\n \n \n Images\n \u6620\u50cf\n \n \n Mirroring\n \u955c\u50cf\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n \u6587\u4ef6\u7cfb\u7edf\n \n \n Object Gateway\n \u5bf9\u8c61\u7f51\u5173\n \n \n Daemons\n \u5b88\u62a4\u8fdb\u7a0b\n \n \n Users\n \u7528\u6237\n \n \n Buckets\n \u5b58\u50a8\u6876\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n \u5173\u4e8e\n \u7684\u6570\u636e\uff0c\u6b63\u4e3a\n \n \n \u83b7\u53d6\u4e2d\uff0c\u8bf7\u7a0d\u5019...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n \u5173\u4e8e\u4e4b\u524d\u7f13\u5b58\u7684\u6570\u636e\n \uff0c\u6b63\u4e3a\n \n \n \u663e\u793a\u3002\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n \u5173\u4e8e\u6570\u636e\n \uff0c\u65e0\u6cd5\u4e3a\n \n \n \u52a0\u8f7d\u3002\n \u8bf7\u68c0\u67e5\u96c6\u7fa4\u7684\u5065\u5eb7\u72b6\u51b5\u3002\n \n \n \n Back\n \u8fd4\u56de\n \n \n Select a Language\n \u8bf7\u9009\u62e9\u8bed\u8a00\n \n \n Loading panel data...\n \u6b63\u5728\u52a0\u8f7d\u9762\u677f\u7684\u76f8\u5173\u6570\u636e\u2026\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u4ee5\u53ca\u6253\u5f00\u76d1\u63a7\u529f\u80fd\uff0c\n\u8bf7\u53c2\u9605\n \u6587\u6863\n \u3002\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n \u65e0 Grafana \u4eea\u8868\u76d8\u3002\u5173\u4e8e\u5982\u4f55\u4e3a Grafana \u6dfb\u52a0\n\u4eea\u8868\u76d8\uff0c\u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Grafana Time Picker\n Grafana \u65f6\u95f4\u9009\u62e9\u5de5\u5177\n \n \n Reset Settings\n \u91cd\u65b0\u8bbe\u7f6e\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \u65e0\u6cd5\u52a0\u8f7d\u6570\u636e\u3002\n \n \n selected\n \u9009\u4e2d\u4e2a\u6570\n X selected\n \n \n found\n \u547d\u4e2d\u4e2a\u6570\n X found\n \n \n total\n \u603b\u6570\n X total\n \n \n Edit\n \u7f16\u8f91\n \n \n Name\n \u540d\u79f0\n \n \n Description\n \u89e3\u91ca\n \n \n Long description\n \u66f4\u8be6\u5c3d\u7684\u89e3\u91ca\n \n \n Default\n \u7f3a\u7701\u503c\n \n \n Daemon default\n \u5b88\u62a4\u8fdb\u7a0b\u7684\u7f3a\u7701\u503c\n \n \n Services\n \u5bf9\u5e94\u7684\u670d\u52a1\n \n \n Values\n \u53ef\u9009\u503c\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8bbe\u7f6e\u7684\u503c\u592a\u5927\u4e86\uff01\u5e94\u4f4e\u4e8e \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8bbe\u7f6e\u7684\u503c\u592a\u5c0f\u4e86\uff01\u4e0d\u80fd\u4f4e\u4e8e \n \u3002\n \n \n \n Save\n \u4fdd\u5b58\n \n \n CRUSH map viewer\n \u68c0\u67e5 CRUSH \u7d22\u5f15\u56fe\n \n \n Hosts List\n \u4e3b\u673a\u5217\u8868\n \n \n Overall Performance\n \u603b\u4f53\u6027\u80fd\n \n \n No entries found\n \u65e0\u6cd5\u627e\u5230\u76f8\u5173\u6761\u76ee\n \n \n Cluster Logs\n \u96c6\u7fa4\u65e5\u5fd7\n \n \n Audit Logs\n \u5ba1\u8ba1\u65e5\u5fd7\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u6b63\u5728\u52a0\u8f7d\u76f8\u5173\u914d\u7f6e\u4fe1\u606f...\n \n \n The configuration could not be loaded.\n \u914d\u7f6e\u4fe1\u606f\u65e0\u6cd5\u52a0\u8f7d\u3002\n \n \n Edit Manager module\n \u7f16\u8f91 Manager \u6269\u5c55\u6a21\u5757\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \u8f93\u5165\u503c\u4e0d\u662f\u6709\u6548\u7684 UUID\uff0c\u5982\uff1a67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n \u8f93\u5165\u7684\u5e94\u8be5\u662f\u4e2a\u6709\u6548\u7684 IP \u5730\u5740\u3002\n \n \n This field is required.\n \u8bf7\u586b\u5199\u6b64\u680f\u76ee\uff01\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \u8f93\u5165\u503c\u8fc7\u5927\uff01\u5fc5\u987b\u5c0f\u4e8e\u6216\u7b49\u4e8e \n \u3002\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \u8f93\u5165\u503c\u8fc7\u5c0f\uff01\u5fc5\u987b\u5927\u4e8e\u6216\u7b49\u4e8e \n \u3002\n \n \n \n The entered value needs to be a number.\n \u8f93\u5165\u987b\u4e3a\u6570\u5b57\u3002\n \n \n The entered value needs to be a number or decimal.\n \u8f93\u5165\u7684\u5e94\u8be5\u662f\u4e00\u4e2a\u6d6e\u70b9\u6570\u6216\u8005\u5341\u8fdb\u5236\u6574\u6570\u3002\n \n \n Update\n \u66f4\u65b0\n \n \n Status\n \u72b6\u6001\n \n \n Cluster ID\n \u96c6\u7fa4 ID\n \n \n monmap modified\n monmap \u4fee\u6539\u65f6\u95f4\n \n \n monmap epoch\n monmap epoch\n \n \n quorum con\n quorum con \n \n \n quorum mon\n quorum mon\n \n \n required con\n required con\n \n \n required mon\n required mon\n \n \n In Quorum\n \u4ef2\u88c1\u6210\u5458\n \n \n Not In Quorum\n \u975e\u4ef2\u88c1\u6210\u5458\n \n \n Cancel\n \u53d6\u6d88\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \u60a8\u786e\u5b9a\u8981\n \u9009\u4e2d\u7684\n \u5417\uff1f\n \n \n \n Yes, I am sure.\n \u662f\u7684\uff0c\u6211\u786e\u5b9a\u3002\n \n \n Cluster-wide OSD Flags\n \u96c6\u7fa4\u8303\u56f4\u7684 OSD \u6807\u5fd7\n \n \n Submit\n \u63d0\u4ea4\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \u9ad8\u7ea7\u8bbe\u7f6e\u2026\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD \u6062\u590d\u4f18\u5148\u7ea7\n \n \n Priority\n \u4f18\u5148\u7ea7\n \n \n Customize priority values\n \u81ea\u5b9a\u4e49\u4f18\u5148\u7ea7\n \n \n This field is required!\n \u8fd9\u4e2a\u5b57\u6bb5\u662f\u5fc5\u586b\u7684\uff01\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u8f93\u5165\u503c\u8fc7\u5927\uff01\u4e0d\u80fd\u5927\u4e8e \n \u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u8f93\u5165\u503c\u8fc7\u5c0f\uff01\u4e0d\u80fd\u5c0f\u4e8e \n \u3002\n \n \n \n Reweight OSD\n \u91cd\u65b0\u8bbe\u7f6e OSD \u7684\u6743\u91cd\n \n \n The value needs to be between 0 and 1.\n \u6743\u91cd\u503c\u5fc5\u987b\u5728 0 \u548c 1 \u4e4b\u95f4\n \n \n Reweight\n \u91cd\u8bbe\u6743\u91cd\n \n \n OSDs \n Scrub\n \n OSD \n \u6d17\u5237\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5ea6}}\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n \u5373\u5c06\u5bf9 OSD\n \n \n \u6267\u884c\n \u6d17\u5237\u3002\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {\u6df1\u5ea6} }\n \n \n OSDs List\n OSD \u5217\u8868\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \u5982\u679c\u7ee7\u7eed\uff0c\n OSD\n \n \n\u5c06\u88ab\u6807\u8bb0\u4e3a\n \n \n \u3002\n \n \n \n The OSD is not safe to destroy!\n OSD \u4e0d\u5b89\u5168\uff0c\u65e0\u6cd5\u9500\u6bc1\uff01\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \u5982\u679c\u7ee7\u7eed\uff0c\n OSD\n \n \n\u5c06\u88ab\n \n \n \u3002\n \n \n \n Details\n \u8be6\u60c5\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \u503c\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \u5173\u95ed\n \n \n Delete\n \u5220\u9664\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \u5065\u5eb7\u72b6\u51b5\n \n \n Statistics\n \u7edf\u8ba1\u6570\u636e\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u548c\u542f\u7528 NFS Ganesha \u7ba1\u7406\u529f\u80fd\uff0c\n\u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Clients\n \u5ba2\u6237\u7aef\n \n \n Any client can access\n \u4efb\u4f55\u5ba2\u6237\u7aef\u5747\u53ef\u8bbf\u95ee\n \n \n Addresses\n \u5730\u5740\n \n \n Required field\n \u5fc5\u586b\u9879\n \n \n Must contain one or more comma-separated values\n \u5fc5\u987b\u5305\u542b\u4e00\u4e2a\u6216\u591a\u4e2a\u9017\u53f7\u5206\u9694\u503c\n \n \n For example:\n \u4f8b\u5982\uff1a\n \n \n Access Type\n \u8bbf\u95ee\u7c7b\u578b\n \n \n Squash\n Squash\n \n \n Add clients\n \u6dfb\u52a0\u5ba2\u6237\u7aef\n \n \n Loading...\n \u6b63\u5728\u52a0\u8f7d\u2026\n \n \n -- No cluster available --\n -- \u65e0\u53ef\u7528\u96c6\u7fa4 --\n \n \n -- Select the cluster --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u96c6\u7fa4 --\n \n \n Add daemon\n \u6dfb\u52a0\u5b88\u62a4\u8fdb\u7a0b\n \n \n Storage Backend\n \u5b58\u50a8\u540e\u7aef\n \n \n -- No data pools available --\n -- \u6ca1\u6709\u53ef\u7528\u7684\u6570\u636e\u5b58\u50a8\u6c60 --\n \n \n -- Select the storage backend --\n -- \u8bf7\u9009\u62e9\u5b58\u50a8\u540e\u7aef --\n \n \n Object Gateway User\n \u5bf9\u8c61\u7f51\u5173\u7528\u6237\n \n \n -- No users available --\n -- \u65e0\u53ef\u9009\u7528\u6237 --\n \n \n -- Select the object gateway user --\n -- \u8bf7\u9009\u62e9\u5bf9\u8c61\u7f51\u5173\u7528\u6237 --\n \n \n CephFS User ID\n CephFS \u7528\u6237 ID\n \n \n -- No clients available --\n -- \u65e0\u53ef\u7528\u5ba2\u6237\u7aef --\n \n \n -- Select the cephx client --\n -- \u8bf7\u9009\u62e9 cephx \u5ba2\u6237\u7aef --\n \n \n CephFS Name\n CephFS \u540d\u79f0\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \u5b89\u5168\u6807\u7b7e\n \n \n Enable security label\n \u542f\u7528\u5b89\u5168\u6807\u7b7e\n \n \n CephFS Path\n CephFS \u8def\u5f84\n \n \n Path need to start with a \'/\' and can be followed by a word\n \u8def\u5f84\u9700\u4ee5\u201c/\u201d\u5f00\u5934\uff0c\u540e\u9762\u53ef\u8ddf\u5355\u8bcd\n \n \n New directory will be created\n \u5c06\u521b\u5efa\u65b0\u6587\u4ef6\u5939\n \n \n Path\n \u8def\u5f84\n \n \n Path can only be a single \'/\' or a word\n \u8def\u5f84\u53ea\u80fd\u662f\u5355\u4e2a\u201c/\u201d\u6216\u5355\u8bcd\n \n \n New bucket will be created\n \u5c06\u521b\u5efa\u65b0\u7684\u6876\n \n \n NFS Protocol\n NFS \u534f\u8bae\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS \u6807\u7b7e\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \u88c5\u5165\u7684\u5907\u7528\u8bbf\u95ee\uff08\u4e0d\u5f97\u5305\u542b\u524d\u7f6e /\uff09\u3002\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \u5ba2\u6237\u7aef\u4e0d\u80fd\u88c5\u5165\u5b50\u76ee\u5f55\uff08\u5373\u5982\u679c\u6807\u8bb0\u4e3a foo\uff0c\u5219\u5ba2\u6237\u7aef\u65e0\u6cd5\u88c5\u5165 foo/baz\uff09\u3002\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u6807\u8bb0\u9009\u9879\uff0c\u53ef\u5c06\u540c\u4e00\u8def\u5f84\u5bfc\u51fa\u591a\u6b21\u3002\n \n \n Pseudo\n \u4f2a\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \u6b64 \n NFS v4\n \u5bfc\u51fa\u5728\n \u4f2a\u6587\u4ef6\u7cfb\u7edf\n \u4e2d\n \u6240\u5360\u7528\u7684\u4f4d\u7f6e\uff08\u5fc5\u987b\u552f\u4e00\uff09\u3002\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u4f2a\u9009\u9879\uff0c\u53ef\u5c06\u540c\u4e00\u8def\u5f84\u5bfc\u51fa\u591a\u6b21\u3002\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u6ca1\u6709\u53ef\u7528\u7684\u8bbf\u95ee\u7c7b\u578b --\n \n \n -- Select the access type --\n -- \u9009\u62e9\u8bbf\u95ee\u7c7b\u578b --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \u6ca1\u6709\u53ef\u7528\u7684 squash --\n \n \n --Select what kind of user id squashing is performed --\n -- \u9009\u62e9\u6267\u884c\u54ea\u79cd\u7c7b\u578b\u7684\u7528\u6237 ID \u533f\u540d\u8bbf\u95ee --\n \n \n Transport Protocol\n \u4f20\u8f93\u534f\u8bae\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n \u6b22\u8fce\u4f7f\u7528 Ceph\uff01\n The welcome message on the login page\n \n \n Username is required\n \u8bf7\u8f93\u5165\u7528\u6237\u540d\n \n \n Password is required\n \u8bf7\u8f93\u5165\u5bc6\u7801\n \n \n Login\n \u767b\u5f55\n \n \n Sorry, the user does not exist in Ceph.\n \u62b1\u6b49\uff0c\u6b64\u7528\u6237\u4e0d\u5b58\u5728\u3002\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \u8fd4\u56de\n \u767b\u5f55\u9875\n \u3002\u60a8\u5c06\u5728\u91cd\u65b0\u767b\u5f55\u65f6\u4ece\u8eab\u4efd\u63d0\u4f9b\u7a0b\u5e8f\u6ce8\u9500\u3002\n \n \n \n Forbidden\n \u7981\u6b62\u8bbf\u95ee\n \n \n Sorry, you are not allowed to see what you were looking for.\n \u62b1\u6b49\uff0c\u60a8\u65e0\u6743\u8bbf\u95ee\u8fd9\u4e2a\u9875\u9762\u3002\n \n \n Sorry, we could not find what you were looking for\n \u62b1\u6b49\uff0c\u6211\u4eec\u627e\u4e0d\u5230\u60a8\u8981\u770b\u7684\u4e1c\u897f\u3002\n \n \n Remove all\n \u5168\u90e8\u5df2\u8bfb\n \n \n Recent Notifications\n \u6700\u65b0\u7684\u901a\u77e5\n \n \n There are no background tasks.\n \u6ca1\u6709\u540e\u53f0\u4efb\u52a1\u6b63\u5728\u6267\u884c\u3002\n \n \n Background Tasks\n \u540e\u53f0\u4efb\u52a1\n \n \n Help\n \u5e2e\u52a9\n \n \n Documentation\n \u6587\u6863\n \n \n API\n API\n \n \n About\n \u5173\u4e8e\n \n \n Dashboard Settings\n \u4eea\u8868\u76d8\u8bbe\u7f6e\n \n \n User management\n \u7528\u6237\u7ba1\u7406\n \n \n Logged in user\n \u767b\u5f55\u7684\u7528\u6237\n \n \n Signed in as\n \n \n \n \n \u4ee5\u7528\u6237\u540d \n \n \n \n\u8fdb\u884c\u767b\u5f55\n \n \n \n Sign out\n \u767b\u51fa\n \n \n Name...\n \u540d\u79f0\u2026\n \n \n The chosen name is already in use.\n \u6240\u9009\u540d\u79f0\u5df2\u7ecf\u88ab\u4f7f\u7528\u3002\n \n \n Description...\n \u63cf\u8ff0\u2026\n \n \n Permissions\n \u6743\u9650\n \n \n Roles\n \u89d2\u8272\n \n \n Username\n \u7528\u6237\u540d\n \n \n Password\n \u5bc6\u7801\n \n \n Confirm password\n \u786e\u8ba4\u5bc6\u7801\n \n \n Password confirmation doesn\'t match the password.\n \u5bc6\u7801\u548c\u4e4b\u524d\u7684\u8f93\u5165\u4e0d\u5339\u914d\u3002\n \n \n Full name\n \u5168\u540d\n \n \n Email\n \u90ae\u7bb1\n \n \n Invalid email.\n \u90ae\u7bb1\u5730\u5740\u65e0\u6548\u3002\n \n \n You are about to remove "user read / update" permissions from your own user.\n \u60a8\u5373\u5c06\u53d6\u6d88\u60a8\u81ea\u5df1\u7528\u6237\u7684 "user read / update" \u6743\u9650\u3002\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \u5982\u679c\u60a8\u7ee7\u7eed\u7684\u8bdd\uff0c\u60a8\u4ee5\u540e\u5c31\u6ca1\u529e\u6cd5\u4e3a\u5176\u4ed6\u7528\u6237\u6dfb\u52a0\u6216\u8005\u5220\u9664\u89d2\u8272\u4e86\u3002\n \n \n Are you sure you want to continue?\n \u60a8\u786e\u5b9e\u8981\u7ee7\u7eed\u5417\uff1f\n \n \n Performance counters not available\n \u65e0\u6cd5\u8bfb\u53d6\u6027\u80fd\u8ba1\u6570\u5668\n \n \n Attributes (OSD map)\n OSD map\n \n \n Metadata not available\n \u5143\u6570\u636e\u4e0d\u53ef\u7528\n \n \n Metadata\n \u76f8\u5173\u5143\u6570\u636e\n \n \n Performance counter\n \u6027\u80fd\u8ba1\u6570\u5668\n \n \n Histogram not available: \n \n \n \u76f4\u65b9\u56fe\u4e0d\u53ef\u7528\uff1a\n \n \n \n \n Writes\n \u5199\u5165\u8bf7\u6c42\n \n \n Reads\n \u8bfb\u53d6\u8bf7\u6c42\n \n \n Histogram\n \u76f4\u65b9\u56fe\n \n \n Performance Details\n \u6027\u80fd\u8be6\u60c5\n \n \n Current values\n \u5f53\u524d\u503c\n \n \n Type\n \u7c7b\u578b\n \n \n Min\n \u4e0b\u9650\n \n \n Max\n \u4e0a\u9650\n \n \n Flags\n \u6807\u5fd7\n \n \n Source\n \u6765\u6e90\n \n \n Level\n \u7ea7\u522b\n \n \n Can be updated at runtime (editable)\n \u53ef\u5728\u8fd0\u884c\u65f6\u66f4\u65b0\uff08\u53ef\u7f16\u8f91\uff09\n \n \n Tags\n \u6807\u8bb0\n \n \n Enum values\n \u53ef\u9009\u9879\n \n \n See also\n \u53c2\u89c1\n \n \n Cluster Status\n \u96c6\u7fa4\u72b6\u6001\n \n \n Manager Daemons\n manager \u5b88\u62a4\u8fdb\u7a0b\n \n \n Object Gateways\n \u5bf9\u8c61\u7f51\u5173\n \n \n Metadata Servers\n metadata \u670d\u52a1\u5668\n \n \n iSCSI Gateways\n iSCSI \u7f51\u5173\n \n \n Client IOPS\n \u5ba2\u6237\u7aef IOPS\n \n \n Client Throughput\n \u5ba2\u6237\u7aef\u541e\u5410\u91cf\n \n \n Client Read/Write\n \u5ba2\u6237\u7aef\u8bfb/\u5199\n \n \n Recovery Throughput\n \u6062\u590d\u541e\u5410\u91cf\n \n \n Scrub\n \u6d17\u5237\n \n \n Performance\n \u6027\u80fd\n \n \n Raw Capacity\n \u57fa\u672c\u5bb9\u91cf\n \n \n Objects\n \u5bf9\u8c61\u6570\n \n \n PGs per OSD\n \u6bcf\u4e2a OSD \u7684 PG \u6570\n \n \n PG Status\n PG \u72b6\u6001\n \n \n Capacity\n \u5bb9\u91cf\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \u67e5\u770b\n \u65e5\u5fd7\n \u4ee5\u83b7\u5f97\u66f4\u591a\u7ec6\u8282\u3002\n \n \n \n Ranks\n \u6392\u4f4d\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \u5ba2\u6237\u7aef\uff1a\n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \u5c06\u6620\u50cf\u79fb\u81f3\u56de\u6536\u7ad9\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \u8981\u5c06 \n \n /\n \n \u79fb\u81f3\u56de\u6536\u7ad9\uff0c\n \u8bf7\u70b9\u51fb \n \u79fb\u52a8\u6620\u50cf\n \u3002\u6b64\u5916\uff0c\u53ef\u9009\u62e9\u8bbe\u7f6e\u4e00\u4e2a\u8fc7\u671f\u65f6\u95f4\u3002\n \n \n \n Protection expires at\n \u4fdd\u62a4\u671f\u4e00\u76f4\u5230\n \n \n NOT PROTECTED\n \u65e0\u4fdd\u62a4\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \u65e5\u671f\u683c\u5f0f\u6709\u95ee\u9898\u3002\u8bf7\u4f7f\u7528\u201cYYYY-MM-DD HH:mm:ss\u201d\u3002\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \u4fdd\u62a4\u671f\u9650\u5df2\u7ecf\u8fc7\u4e86\u3002\u8bf7\u8bbe\u7f6e\u4e00\u4e2a\u5c06\u6765\u7684\u65e5\u671f\uff0c\u6216\u8005\u6e05\u7a7a\u4e0d\u586b\u3002\n \n \n Move Image\n \u79fb\u52a8\u6620\u50cf\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \u6982\u89c8\n \n \n Targets\n \u76ee\u6807\n \n \n Discovery Authentication\n \u53d1\u73b0\u8eab\u4efd\u9a8c\u8bc1\n \n \n User\n \u7528\u6237\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u7528\u6237\u540d\u957f\u5ea6\u5fc5\u987b\u5728 8 \u5230 64 \u4e2a\u5b57\u7b26\u4e4b\u95f4\uff0c\u4e14\u53ea\u80fd\u5305\u542b\n\u4ee5\u4e0b\u5b57\u7b26\uff1a\u82f1\u6587\u5b57\u6bcd\u3001\u201c.\u201d\u3001\u201c@\u201d\u3001\u201c-\u201d\u3001\u201c_\u201d\u6216\u201c:\u201d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \u4e92\u8ba4\u8bc1\u7528\u6237\n \n \n Mutual Password\n \u4e92\u8ba4\u8bc1\u5bc6\u7801\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u548c\u542f\u7528 iSCSI \u76ee\u6807\u7ba1\u7406\u529f\u80fd\uff0c\n\u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Available information:\n \u53ef\u7528\u4fe1\u606f\uff1a\n \n \n iSCSI Targets not available\n \u65e0\u53ef\u7528 iSCSI \u76ee\u6807\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \u53ea\u5bf9\u542f\u52a8\u4e86 \n fast-diff\n \u529f\u80fd\u7684 RBD \u6620\u50cf\u53ef\u7528\n \n \n \n Pool\n \u5b58\u50a8\u6c60\n \n \n Data Pool\n \u6570\u636e\u5b58\u50a8\u6c60\n \n \n Created\n \u521b\u5efa\n \n \n Size\n \u5bb9\u91cf\n \n \n Object size\n \u5bf9\u8c61\u5927\u5c0f\n \n \n Features\n \u7279\u6027\n \n \n Provisioned\n \u4f9b\u7ed9\u5bb9\u91cf\n \n \n N/A\n N/A\n \n \n Total provisioned\n \u603b\u4f9b\u7ed9\u5bb9\u91cf\n \n \n Striping unit\n \u6761\u5e26\u5355\u5143\n \n \n Striping count\n \u6761\u5e26\u4e2a\u6570\n \n \n Parent\n \u7236\u8282\u70b9\n \n \n Block name prefix\n \u5757\u5b58\u50a8\u540d\u5b57\u524d\u7f00\n \n \n Order\n order\n \n \n Snapshots\n \u5feb\u7167\n \n \n Image\n \u6620\u50cf\n \n \n This setting overrides the global value\n \u6b64\u8bbe\u7f6e\u4f1a\u8986\u76d6\u5168\u5c40\u503c\n \n \n Global\n \u5168\u5c40\n \n \n This is the global value. No value for this option has been set for this image.\n \u8be5\u503c\u4e3a\u5168\u5c40\u503c\u3002\u6ca1\u6709\u4e3a\u6b64\u6620\u50cf\u8bbe\u7f6e\u6b64\u9009\u9879\u7684\u503c\u3002\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u4e0d\u5141\u8bb8\u4f7f\u7528\u201c/\u201d\u548c\u201c@\u201d\u3002\n \n \n -- No rbd pools available --\n -- \u6ca1\u6709\u53ef\u7528\u7684 RBD \u5b58\u50a8\u6c60 --\n \n \n -- Select a pool --\n -- \u8bf7\u9009\u62e9\u5b58\u50a8\u6c60 --\n \n \n Use a dedicated data pool\n \u4f7f\u7528\u4e00\u4e2a\u4e13\u7528\u7684\u6570\u636e\u6c60\n \n \n Data pool\n \u6570\u636e\u6c60\n \n \n Dedicated pool that stores the object-data of the RBD.\n \u4e3a\u4fdd\u5b58 RBD \u7684\u5bf9\u8c61\u6570\u636e\u5355\u72ec\u5206\u914d\u7684\u5b58\u50a8\u6c60\u3002\n \n \n e.g., 10GiB\n \u5982 10 GiB\n \n \n You have to increase the size.\n \u60a8\u9700\u8981\u8bbe\u7f6e\u5927\u4e00\u4e9b\u7684\u5bb9\u91cf\u3002\n \n \n Advanced\n \u9ad8\u7ea7\u8bbe\u7f6e\n \n \n Striping\n \u6761\u5e26\n \n \n Stripe unit\n \u6761\u5e26\u5355\u5143\u5927\u5c0f\n \n \n -- Select stripe unit --\n -- \u9009\u62e9\u6761\u5e26\u5355\u5143\u5927\u5c0f --\n \n \n This field is required because stripe count is defined!\n \u56e0\u4e3a\u8bbe\u7f6e\u4e86\u6761\u5e26\u4e2a\u6570\uff0c\u6240\u4ee5\u8fd9\u4e2a\u5b57\u6bb5\u662f\u5fc5\u9009\u7684\uff01\n \n \n Stripe unit is greater than object size.\n \u6761\u5e26\u5355\u5143\u5927\u5c0f\u8d85\u8fc7\u4e86\u5bf9\u8c61\u5927\u5c0f\u3002\n \n \n Stripe count\n \u6761\u5e26\u4e2a\u6570\n \n \n This field is required because stripe unit is defined!\n \u56e0\u4e3a\u8bbe\u7f6e\u4e86\u6761\u5e26\u5355\u5143\u5927\u5c0f\uff0c\u6240\u4ee5\u8fd9\u4e2a\u5b57\u6bb5\u662f\u5fc5\u9009\u7684\uff01\n \n \n Stripe count must be greater than 0.\n \u6761\u5e26\u7684\u4e2a\u6570\u5fc5\u987b\u5927\u4e8e 0\u3002\n \n \n \n RBD Snapshot\n \n \n RBD \u5feb\u7167\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {\u6539\u540d} other {\u521b\u5efa} }\n \n \n \n Snapshot\n \n \n \u5feb\u7167\n \n \n \n PROTECTED\n \u53d7\u4fdd\u62a4\u7684\n \n \n UNPROTECTED\n \u65e0\u4fdd\u62a4\u7684\n \n \n You are about to rollback\n \u60a8\u5373\u5c06\u8fdb\u884c\u56de\u6eda\u64cd\u4f5c\n \n \n Purge Trash\n \u6e05\u7a7a\u56de\u6536\u7ad9\n \n \n To purge, select one or All images and click\n \u8981\u5f7b\u5e95\u6e05\u7a7a\u7684\u8bdd\uff0c\u8bf7\u9009\u62e9\u5355\u4e2a\u6216\u6240\u6709\u7684\u6620\u50cf\uff0c\u7136\u540e\u70b9\u51fb\n \n \n Pool:\n \u5b58\u50a8\u6c60\uff1a\n \n \n Pool name...\n \u5b58\u50a8\u6c60\u540d\u79f0\u2026\n \n \n All\n \u5168\u9009\n \n \n Restore Image\n \u6062\u590d\u6620\u50cf\n \n \n To restore\n \u8981\u6062\u590d\n \n \n type the image\'s new name and click\n \u8f93\u5165\u6620\u50cf\u7684\u65b0\u540d\u79f0\uff0c\u5e76\u70b9\u51fb\n \n \n New Name\n \u65b0\u540d\u79f0\n \n \n Expired at\n \u8fc7\u671f\u65f6\u95f4\n \n \n Protected until\n \u4fdd\u62a4\u671f\u9650\n \n \n This image is protected until \n .\n \n \u4e00\u76f4\u5230\n \uff0c\u8be5\u6620\u50cf\u90fd\u4f1a\u53d7\u4fdd\u62a4\u3002\n \n \n \n Trash\n \u56de\u6536\u7ad9\n \n \n iSCSI Topology\n iSCSI \u7ed3\u6784\u56fe\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \u901a\u5e38\u65e0\u987b\u6539\u53d8\u8fd9\u4e9b\u9ed8\u8ba4\u53c2\u6570\u503c\u3002\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \u8bbe\u7f6e\n \n \n Backstore\n \u540e\u5907\u5b58\u50a8\n \n \n Confirm\n \u786e\u8ba4\n \n \n Advanced Settings\n \u9ad8\u7ea7\u8bbe\u7f6e\n \n \n Target IQN\n \u76ee\u6807\u9650\u5b9a\u540d\n \n \n IQN has wrong pattern.\n IQN \u683c\u5f0f\u9519\u8bef\u3002\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN \u5e94\u7531\u4ee5\u4e0b\u683c\u5f0f\u6784\u6210\uff1a\u201ciqn.$year-$month.$reversedAddress:$definedName\u201d\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \u4f8b\u5982\uff1aiqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \u66f4\u591a\u4fe1\u606f\n \n \n This target has modified advanced settings.\n \u6b64\u76ee\u6807\u7684\u9ad8\u7ea7\u8bbe\u7f6e\u9879\u5b58\u5728\u4fee\u6539\u3002\n \n \n Portals\n \u7aef\u53e3\n \n \n At least \n gateways are required.\n \n \u81f3\u5c11\u9700\u8981 \n \u4e2a\u7f51\u5173\u3002\n \n \n \n Add portal\n \u6dfb\u52a0\u7aef\u53e3\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \u6b64\u6620\u50cf\u7684\u8bbe\u7f6e\u9879\u5b58\u5728\u4fee\u6539\u3002\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \u6dfb\u52a0\u6620\u50cf\n \n \n ACL authentication\n ACL \u8eab\u4efd\u9a8c\u8bc1\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \u6388\u6743\u4eba\n \n \n Initiator\n \u6388\u6743\u4eba\n \n \n Client IQN\n \u5ba2\u6237\u7aef IQN\n \n \n Initiator IQN needs to be unique.\n \u6388\u6743\u4eba IQN \u5fc5\u987b\u552f\u4e00\u3002\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u7528\u6237\u540d\u957f\u5ea6\u5fc5\u987b\u5728 8 \u5230 64 \u4e2a\u5b57\u7b26\u4e4b\u95f4\uff0c\u4e14\u53ea\u80fd\u5305\u542b\n\u4ee5\u4e0b\u5b57\u7b26\uff1a\u82f1\u6587\u5b57\u6bcd\u3001\u201c.\u201d\u3001\u201c@\u201d\u3001\u201c-\u201d\u3001\u201c_\u201d\u6216\u201c:\u201d\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \u6388\u6743\u4eba\u5c5e\u4e8e\u7fa4\u7ec4\u3002\u6620\u50cf\u987b\u5728\u7fa4\u7ec4\u4e2d\u8fdb\u884c\u8bbe\u7f6e\u3002\n \n \n No items added.\n \u65e0\u9879\u76ee\u6dfb\u52a0\u3002\n \n \n Add initiator\n \u6dfb\u52a0\u6388\u6743\u4eba\n \n \n Groups\n \u7fa4\u7ec4\n \n \n Group\n \u7fa4\u7ec4\n \n \n Add group\n \u6dfb\u52a0\u7fa4\u7ec4\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD \u914d\u7f6e\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \u5220\u9664\u672c\u5730\u7684\u914d\u7f6e\u9879\uff0c\u6539\u7528\u66f4\u9ad8\u4f5c\u7528\u57df\u7684\u914d\u7f6e\u503c\u3002\n \n \n The mininum value is 0\n \u6700\u5c0f\u503c\u4e3a 0\n \n \n Issues\n \u95ee\u9898\n \n \n Syncing\n \u6b63\u5728\u540c\u6b65\n \n \n Ready\n \u5df2\u5c31\u7eea\n \n \n Edit pool mirror mode\n \u7f16\u8f91\u5b58\u50a8\u6c60\u955c\u50cf\u6a21\u5f0f\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \u8981\u7f16\u8f91\u5b58\u50a8\u6c60\n \n \n \xa0\n \u7684\u955c\u50cf\u6a21\u5f0f\uff0c\u8bf7\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u4e00\u9879\uff0c\u5e76\u70b9\u51fb\xa0\n \u66f4\u65b0\n \u3002\n \n \n \n Mode\n \u6a21\u5f0f\n \n \n Peer clusters must be removed prior to disabling mirror.\n \u5728\u7981\u7528\u955c\u50cf\u529f\u80fd\u524d\u5fc5\u987b\u5148\u79fb\u9664\u540c\u4f34\u96c6\u7fa4\u3002\n \n \n \n \n pool mirror peer\n \n \n \n\u5b58\u50a8\u6c60\u955c\u50cf\u540c\u4f34\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {\u7f16\u8f91} other {\u6dfb\u52a0} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \u5b58\u50a8\u6c60\n \n \n \n \u7684\u5b58\u50a8\u6c60\u955c\u50cf\u540c\u4f34\u5c5e\u6027\uff0c\u5e76\u70b9\u51fb\n \u63d0\u4ea4\n \u3002\n \n \n \n Cluster Name\n \u96c6\u7fa4\u540d\u79f0\n \n \n The cluster name is not valid.\n \u96c6\u7fa4\u540d\u79f0\u65e0\u6548\u3002\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n CephX ID \u65e0\u6548\u3002\n \n \n Monitor Addresses\n Monitor \u5730\u5740\n \n \n Comma-delimited addresses...\n \u9017\u53f7\u5206\u5272\u7684\u5730\u5740...\n \n \n The monitory address is not valid.\n Monitor \u5730\u5740\u65e0\u6548\u3002\n \n \n CephX Key\n CephX \u5bc6\u94a5\n \n \n Base64-encoded key...\n Base64 \u7f16\u7801\u7684\u5bc6\u94a5...\n \n \n CephX key must be base64 encoded.\n CephX \u5bc6\u94a5\u5fc5\u987b\u662f base64 \u7f16\u7801\u7684\u3002\n \n \n Pools List\n \u5b58\u50a8\u6c60\u5217\u8868\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \u540d\u79f0\u53ea\u80fd\u7531\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u77ed\u5212\u7ebf\u548c\u4e0b\u5212\u7ebf\u7ec4\u6210\u3002\n \n \n The chosen erasure code profile name is already in use.\n \u6b64\u7ea0\u5220\u7801\u914d\u7f6e\u540d\u79f0\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n Plugin\n \u7ea0\u5220\u7801\u7b97\u6cd5\n \n \n Data chunks (k)\n \u6570\u636e\u5757 (k)\n \n \n Must be equal to or greater than 2.\n \u5fc5\u987b\u5927\u4e8e\u7b49\u4e8e 2\n \n \n Coding chunks (m)\n \u6821\u9a8c\u5757 (m)\n \n \n Must be equal to or greater than 1.\n \u5fc5\u987b\u5927\u4e8e\u7b49\u4e8e 1\n \n \n Durability estimator (c)\n \u6301\u4e45\u56e0\u5b50 (c)\n \n \n Locality (l)\n \u5c40\u90e8\u6027\u56e0\u5b50 (l)\n \n \n Crush failure domain\n CRUSH \u6545\u969c\u57df\n \n \n Crush Locality\n CRUSH \u5c40\u90e8\u6027\n \n \n None\n \u65e0\n \n \n Technique\n \u7b97\u6cd5\n \n \n Packetsize\n packetsize\n \n \n Crush root\n CRUSH \u6839\n \n \n Crush device class\n CRUSH \u8bbe\u5907\u7c7b\u578b\n \n \n any\n \u4efb\u610f\n \n \n Directory\n \u76ee\u5f55\n \n \n The chosen Ceph pool name is already in use.\n \u6b64 Ceph \u5b58\u50a8\u6c60\u540d\u79f0\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n Pool type\n \u5b58\u50a8\u6c60\u7c7b\u578b\n \n \n -- Select a pool type --\n -- \u8bf7\u9009\u62e9\u5b58\u50a8\u6c60\u7684\u7c7b\u578b --\n \n \n Placement groups\n \u5f52\u7f6e\u7ec4 (PG)\n \n \n At least one placement group is needed!\n \u81f3\u5c11\u9700\u8981\u4e00\u4e2a\u5f52\u7f6e\u7ec4\uff01\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \u60a8\u7684\u96c6\u7fa4\u6ca1\u6cd5\u652f\u6301\u8fd9\u4e48\u591a\u7684 PG\u3002\u8bf7\u91cd\u65b0\u8ba1\u7b97\u9700\u8981\u7684 PG \u4e2a\u6570\u3002\n \n \n Calculation help\n \u5728\u7ebf PG \u8ba1\u7b97\u5668\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \u5df2\u6839\u636e\u5f53\u524d\u60c5\u51b5\u4e3a\u60a8\u63a8\u7b97\u51fa\u4e86 PG \u7684\u8bbe\u7f6e\uff0c\u60a8\n\u6700\u597d\u5728\u63d0\u4ea4\u4e4b\u524d\u786e\u8ba4\u8fd9\u4e9b\u8bbe\u7f6e\u662f\u5408\u9002\u7684\u3002\n \n \n Crush ruleset\n CRUSH \u7b97\u6cd5\u89c4\u5219\u7ec4\n \n \n -- Select a crush rule --\n -- \u9009\u62e9 CRUSH \u89c4\u5219 --\n \n \n Crush rule\n CRUSH \u89c4\u5219\n \n \n Crush steps\n CRUSH \u6b65\u9aa4\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \u5f53\u524d\u7684\u96c6\u7fa4\u65e0\u6cd5\u4f7f\u7528\u8be5\u89c4\u5219\uff0c\u56e0\u4e3a\u96c6\u7fa4\u7684 OSD \u4e2a\u6570\u8fc7\u5c11\uff0c\n \u65e0\u6cd5\u6ee1\u8db3\u89c4\u5219\u6240\u9700\u7684\u6700\u4f4e OSD \u6570\u91cf\u3002\n \n \n Replicated size\n \u526f\u672c\u4e2a\u6570\n \n \n Minimum: \n \n \n \u6700\u4f4e\uff1a\n \n \n \n \n Maximum: \n \n \n \u6700\u9ad8\uff1a\n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \u8bbe\u7f6e\u7684\u8d85\u8fc7\u4e86\u9650\u5236\u3002\u8bbe\u7f6e\u503c\u5e94\u8be5\u5728\n \u548c \n \u4e2d\u95f4\u4e3a\u5b9c.\n \n \n \n Erasure code profile\n \u7ea0\u5220\u7801\u914d\u7f6e\n \n \n -- No erasure code profile available --\n -- \u65e0\u7ea0\u5220\u7801\u914d\u7f6e\u53ef\u9009 --\n \n \n -- Select an erasure code profile --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u7ea0\u5220\u7801\u914d\u7f6e --\n \n \n EC Overwrites\n EC \u91cd\u5199 (overwrite)\n \n \n Applications\n \u5e94\u7528\u7c7b\u578b\n \n \n Compression\n \u538b\u7f29\n \n \n Algorithm\n \u7b97\u6cd5\n \n \n -- No erasure compression algorithm available --\n -- \u65e0\u53ef\u7528\u7684\u7ea0\u5220\u7801\u538b\u7f29\u7b97\u6cd5 --\n \n \n Minimum blob size\n blob \u5927\u5c0f\u4e0b\u9650\n \n \n e.g., 128KiB\n \u6bd4\u5982 128 KiB\n \n \n Value should be greater than 0\n \u53d6\u503c\u5fc5\u987b\u5927\u4e8e 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n blob \u5927\u5c0f\u4e0a\u9650\n \n \n e.g., 512KiB\n \u5982 512KiB\n \n \n Value should be greater than the minimum blob size\n \u53d6\u503c\u5fc5\u987b\u5927\u4e8e blob \u5927\u5c0f\u4e0b\u9650\n \n \n Ratio\n \u6bd4\u4f8b\n \n \n Compression ratio\n \u538b\u7f29\u7387\n \n \n Value should be between 0.0 and 1.0\n \u53d6\u503c\u5fc5\u987b\u5728 0.0 \u548c 1.0 \u4e4b\u95f4\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \u65e0\u6cd5\u65b0\u5efa\u540d\u5b57\u4e2d\u6709\u201c/\u201d\u7684 RBD \u5b58\u50a8\u6c60\u3002\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \u8bf7\u91cd\u65b0\u547d\u540d\uff0c\u6216\u8005\u628a\u5b58\u50a8\u6c60\u7684\u201crbd\u201d\u5e94\u7528\u6807\u8bb0\u53bb\u6389\u3002\n \n \n Cache Tiers Details\n \u7f13\u5b58\u5c42\u8be6\u7ec6\u4fe1\u606f\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \u5173\u4e8e\u5982\u4f55\u914d\u7f6e\u548c\u542f\u7528\u5bf9\u8c61\u7f51\u5173\u7684\u529f\u80fd\uff0c\n \u8bf7\u53c2\u8003\n \u6587\u6863\n \u3002\n \n \n \n Daemons List\n \u5b88\u62a4\u8fdb\u7a0b\u5217\u8868\n \n \n Performance Counters\n \u6027\u80fd\u8ba1\u6570\u5668\n \n \n Loading bucket data...\n \u6b63\u5728\u52a0\u8f7d\u5b58\u50a8\u6876\u6570\u636e\u2026\n \n \n The bucket data could not be loaded.\n \u5b58\u50a8\u6876\u6570\u636e\u65e0\u6cd5\u52a0\u8f7d\u3002\n \n \n Id\n ID\n \n \n The value is not valid.\n \u8f93\u5165\u503c\u65e0\u6548\u3002\n \n \n Owner\n \u6240\u6709\u8005\n \n \n -- Select a user --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u7528\u6237 --\n \n \n ID\n ID\n \n \n Index type\n \u7d22\u5f15\u7c7b\u578b\n \n \n Placement rule\n \u5f52\u7f6e\u89c4\u5219\n \n \n Marker\n \u6807\u8bc6\n \n \n Maximum marker\n max marker\n \n \n Version\n \u7248\u672c\n \n \n Master version\n \u4e3b\u7248\u672c\n \n \n Modification time\n \u4fee\u6539\u65f6\u95f4\n \n \n Zonegroup\n zonegroup\n \n \n Bucket quota\n \u5b58\u50a8\u6876\u914d\u989d\n \n \n Enabled\n \u5f00\u542f\n \n \n Maximum size\n \u6700\u5927\u6570\u76ee\n \n \n Unlimited\n \u65e0\u9650\u5236\n \n \n Maximum objects\n \u6700\u5927\u5bf9\u8c61\u6570\u76ee\n \n \n -- Select a username --\n -- \u8bf7\u9009\u62e9\u7528\u6237\u540d --\n \n \n Auto-generate key\n \u81ea\u52a8\u751f\u6210\u5bc6\u94a5\n \n \n Access key\n \u8bbf\u95ee\u5bc6\u94a5\n \n \n Secret key\n \u79d8\u5bc6\u5bc6\u94a5\n \n \n Email address\n \u90ae\u7bb1\n \n \n Suspended\n \u51bb\u7ed3\n \n \n System\n \u7cfb\u7edf\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {\u5426} 1 {\u662f} }\n \n \n Maximum buckets\n \u6700\u5927\u5b58\u50a8\u6876\u6570\u76ee\n \n \n Subusers\n \u5b50\u7528\u6237\n \n \n Capabilities\n \u7528\u6237\u6743\u9650\n \n \n User quota\n \u7528\u6237\u914d\u989d\n \n \n Show\n \u663e\u793a\n \n \n Keys\n \u5bc6\u94a5\n \n \n -- Select a type --\n -- \u8bf7\u9009\u62e9\u4e00\u4e2a\u7c7b\u578b --\n \n \n Permission\n \u6743\u9650\n \n \n -- Select a permission --\n -- \u8bf7\u9009\u62e9\u6743\u9650\u7c7b\u578b --\n \n \n Subuser\n \u5b50\u7528\u6237\n \n \n The chosen subuser ID is already in use.\n \u6240\u9009\u7684\u5b50\u7528\u6237 ID \u5df2\u88ab\u4f7f\u7528\u3002\n \n \n read, write\n \u8bfb\u3001\u5199\n \n \n full\n \u5168\u90e8\n \n \n Swift key\n Swift \u5bc6\u94a5\n \n \n Auto-generate secret\n \u81ea\u52a8\u751f\u6210\u5bc6\u94a5\n \n \n Loading user data...\n \u6b63\u5728\u52a0\u8f7d\u7528\u6237\u6570\u636e\u2026\n \n \n The user data could not be loaded.\n \u7528\u6237\u6570\u636e\u65e0\u6cd5\u52a0\u8f7d\u3002 \n \n \n The chosen user ID is already in use.\n \u6240\u9009\u7684\u7528\u6237 ID \u5df2\u88ab\u4f7f\u7528\u3002\n \n \n This is not a valid email address.\n \u65e0\u6548\u7684\u90ae\u7bb1\u5730\u5740\u3002\n \n \n The chosen email address is already in use.\n \u6b64\u90ae\u7bb1\u5730\u5740\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n Max. buckets\n \u5b58\u50a8\u6876\u4e2a\u6570\u7684\u4e0a\u9650\n \n \n The entered value must be >= 0.\n \u8bbe\u7f6e\u7684\u503c\u5fc5\u987b >= 0\u3002\n \n \n S3 key\n S3 \u5bc6\u94a5\n \n \n There are no subusers.\n \u6ca1\u6709\u5b50\u7528\u6237\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \u6ca1\u6709\u4efb\u4f55\u5bc6\u94a5\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n \u6743\u9650\u4e3a\u7a7a\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \u7a7a\u95f4\u65e0\u9650\u5236\n \n \n Max. size\n \u7a7a\u95f4\u4e0a\u9650\n \n \n Unlimited objects\n \u5bf9\u8c61\u4e2a\u6570\u65e0\u9650\u5236\n \n \n Max. objects\n \u5bf9\u8c61\u4e2a\u6570\u4e0a\u9650\n \n \n Current\n \u5f53\u524d\n \n \n Updated discovery authentication\n \u5df2\u66f4\u65b0\u53d1\u73b0\u8eab\u4efd\u9a8c\u8bc1\n \n \n There are no portals available.\n \u65e0\u53ef\u7528\u7aef\u53e3\u3002\n \n \n There are no images available.\n \u65e0\u53ef\u7528\u6620\u50cf\u3002\n \n \n There are no images available. Please make sure you add an image to the target.\n \u65e0\u53ef\u7528\u6620\u50cf\u3002\u8bf7\u786e\u4fdd\u4e3a\u76ee\u6807\u6dfb\u52a0\u4e00\u4e2a\u6620\u50cf\u3002\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \u65e0\u53ef\u7528\u6388\u6743\u4eba\u3002\u8bf7\u786e\u4fdd\u4e3a\u76ee\u6807\u6dfb\u52a0\u4e00\u4e2a\u6388\u6743\u4eba\u3002\n \n \n target\n target\n \n \n Target\n \u76ee\u6807\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \u72b6\u6001\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \u8bfb\u5b57\u8282\u6570\n \n \n Write Bytes\n \u5199\u5b57\u8282\u6570\n \n \n Read Ops\n \u8bfb\u8bf7\u6c42\u6570\n \n \n Write Ops\n \u5199\u8bf7\u6c42\u6570\n \n \n A/O Since\n \u6d3b\u52a8/\u4f18\u5316\u81ea\n \n \n Instance\n \u5b9e\u4f8b\n \n \n Hostname\n \u4e3b\u673a\u540d\n \n \n Issue\n \u95ee\u9898\n \n \n Progress\n \u8fdb\u5ea6\n \n \n Disabled\n \u7981\u7528\n \n \n Edit Mode\n \u7f16\u8f91\u6a21\u5f0f\n \n \n Add Peer\n \u6dfb\u52a0 peer\n \n \n Edit Peer\n \u7f16\u8f91 peer\n \n \n Delete Peer\n \u5220\u9664 peer\n \n \n Leader\n Leader\n \n \n # Local\n # \u672c\u5730\n \n \n # Remote\n # \u8fdc\u7a0b\n \n \n mirror peer\n \u955c\u50cf peer\n \n \n Key\n \u5bc6\u94a5\n \n \n RBD\n RBD\n \n \n Deep flatten\n \u5b8c\u5168\u5c55\u5f00\n \n \n Layering\n \u5206\u5c42\n \n \n Exclusive lock\n \u4e92\u65a5\u9501\n \n \n Object map (requires exclusive-lock)\n object map\uff08\u8981\u6c42\u4e92\u65a5\u9501\u652f\u6301\uff09\n \n \n Journaling (requires exclusive-lock)\n \u65e5\u5fd7\uff08\u8981\u6c42\u4e92\u65a5\u9501\u652f\u6301\uff09\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD \u5feb\u7167\u56de\u6eda\n \n \n Rollback\n \u56de\u6eda\n \n \n RBD snapshot\n RBD \u5feb\u7167\n \n \n Deleted At\n \u5b9a\u70b9\u5220\u9664\n \n \n id\n ID\n \n \n type\n \u7c7b\u578b\n \n \n state\n \u72b6\u6001\n \n \n version\n \u7248\u672c\n \n \n Host\n \u4e3b\u673a\n \n \n root\n \u6839\n \n \n Rank\n \u6392\u4f4d\n \n \n Daemon\n \u5b88\u62a4\u8fdb\u7a0b\n \n \n Activity\n \u6d3b\u8dc3\u5ea6\n \n \n Dentries\n dentries\n \n \n Inodes\n inodes\n \n \n Usage\n \u4f7f\u7528\u7387\n \n \n Standby daemons\n \u5907\u7528\u670d\u52a1\n \n \n The value can be updated at runtime.\n \u8be5\u503c\u53ef\u5728\u8fd0\u884c\u65f6\u66f4\u65b0\u3002\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\u4e0d\u4f1a\u4e3b\u52a8\u4ece monitor \u7684\u914d\u7f6e\u6570\u636e\u5e93\u8bfb\u53d6\u8fd9\u4e2a\u914d\u7f6e\u3002\n \u6240\u4ee5\u4e0d\u80fd\u7528\u201cceph config set ...\u201d\u8bbe\u7f6e\u5b83\u3002\u4f46\u662f\u53ef\u4ee5\u901a\u8fc7\n ceph.conf \u6216\u8005\u7528\u547d\u4ee4\u884c\u8fdb\u884c\u914d\u7f6e\u3002\n \n \n Option takes effect only during daemon startup.\n \u8be5\u914d\u7f6e\u53ea\u6709\u5728\u670d\u52a1\u542f\u52a8\u7684\u65f6\u5019\u624d\u4f1a\u751f\u6548\u3002\n \n \n Option only affects cluster creation.\n \u8be5\u914d\u7f6e\u53ea\u5728\u521b\u5efa\u96c6\u7fa4\u7684\u65f6\u5019\u624d\u4f1a\u751f\u6548\u3002\n \n \n Option only affects daemon creation.\n \u8be5\u914d\u7f6e\u53ea\u5728\u670d\u52a1\u521b\u5efa\u7684\u65f6\u5019\u624d\u4f1a\u751f\u6548\u3002\n \n \n Updated config option \n \n \n \u5df2\u66f4\u65b0\u914d\u7f6e\u9009\u9879\n \n \n \n \n Service\n \u670d\u52a1\n \n \n Current value\n \u5f53\u524d\u503c\n \n \n Editable\n \u53ef\u7f16\u8f91\n \n \n Updated options for module "\n ".\n \n \u5df2\u66f4\u65b0\u6269\u5c55\u6a21\u5757\u201c\n \u201d\u7684\u9009\u9879\u3002\n \n \n \n Enable\n \u542f\u7528\n \n \n Disable\n \u7981\u7528\n \n \n Reconnecting, please wait ...\n \u6b63\u5728\u91cd\u65b0\u8fde\u63a5\uff0c\u8bf7\u7a0d\u5019\u2026\n \n \n Public Address\n \u5916\u90e8\u5730\u5740\n \n \n Open Sessions\n \u6d3b\u52a8\u4f1a\u8bdd\n \n \n No In\n \u7981\u6b62\u52a0\u5165\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \u4e4b\u524d\u88ab\u9664\u540d\u7684 OSD \u5728\u542f\u52a8\u4e4b\u540e\uff0c\u4e0d\u4f1a\u88ab\u52a0\u5165\u96c6\u7fa4\n \n \n No Out\n \u7981\u6b62\u9664\u540d\n \n \n OSDs will not automatically be marked out after the configured interval\n \u5728\u53d1\u73b0 OSD \u6ca1\u6709\u54cd\u5e94\u4e4b\u540e\u4e00\u6bb5\u65f6\u95f4\uff0c\u8be5 OSD \u4f1a\u88ab\u8e22\u51fa\u96c6\u7fa4\u3002\u8be5\u6807\u5fd7\u4f1a\u7981\u6b62\u8fd9\u4e2a\u529f\u80fd\u3002\n \n \n No Up\n \u7981\u6b62\u542f\u7528\n \n \n OSDs are not allowed to start\n \u4e0d\u5141\u8bb8 OSD \u542f\u52a8\n \n \n No Down\n \u7981\u6b62\u505c\u7528\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n \u5f53\u524d\u4e0d\u53d7\u7406\u5bf9 OSD \u7684\u5931\u6548\u62a5\u544a\uff0c\u56e0\u800c monitor \u4e0d\u4f1a\u505c\u7528 OSD\n \n \n Pause\n \u6682\u505c\n \n \n Pauses reads and writes\n \u6682\u505c\u8bfb\u5199\n \n \n No Scrub\n \u7981\u6b62\u6d17\u5237\n \n \n Scrubbing is disabled\n \u6d17\u5237\u5df2\u7981\u6b62\n \n \n No Deep Scrub\n \u7981\u6b62\u6df1\u5c42\u6d17\u5237\n \n \n Deep Scrubbing is disabled\n \u6df1\u5c42\u6d17\u5237\u5df2\u7981\u6b62\n \n \n No Backfill\n \u7981\u6b62\u56de\u586b\n \n \n Backfilling of PGs is suspended\n PG \u56de\u586b\u5df2\u63a8\u8fdf\n \n \n No Recover\n \u7981\u6b62\u6062\u590d\n \n \n Recovery of PGs is suspended\n PG \u6062\u590d\u5df2\u63a8\u8fdf\n \n \n Bitwise Sort\n \u9010\u4f4d\u6392\u5e8f\n \n \n Use bitwise sort\n \u4f7f\u7528\u9010\u4f4d\u6392\u5e8f\n \n \n Purged Snapdirs\n \u8001\u7248\u672c\u7684\u5feb\u7167\u5df2\u5168\u90e8\u5347\u7ea7\n \n \n OSDs have converted snapsets\n OSD \u4e0a\u7684\u5feb\u7167\u5df2\u5168\u90e8\u8f6c\u6362\u5b8c\u6bd5\n \n \n Recovery Deletes\n \u5728\u6062\u590d\u65f6\u8fdb\u884c\u5220\u9664\u64cd\u4f5c\n \n \n Deletes performed during recovery instead of peering\n \u5728\u6062\u590d\u65f6\uff0c\u800c\u975e\u5bf9\u9f50\u9636\u6bb5\u8fdb\u884c\u5220\u9664\n \n \n PG Log Hard Limit\n PG \u65e5\u5fd7\u786c\u9650\u5236\n \n \n Puts a hard limit on pg log length\n \u4e3a pg \u65e5\u5fd7\u957f\u5ea6\u6dfb\u52a0\u786c\u9650\u5236\n \n \n Updated OSD Flags\n \u5df2\u66f4\u65b0 OSD \u6807\u5fd7\n \n \n out\n \u9664\u540d\n \n \n in\n \u52a0\u5165\n \n \n down\n \u505c\u7528\n \n \n Mark\n \u6807\u8bb0\n \n \n OSD lost\n OSD \u4e22\u5931\n \n \n marked lost\n \u5df2\u6807\u8bb0\u4e22\u5931\n \n \n Purge\n \u6e05\u9664\n \n \n OSD\n OSD\n \n \n purged\n \u5df2\u6e05\u9664\n \n \n destroy\n \u9500\u6bc1\n \n \n destroyed\n \u5df2\u9500\u6bc1\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG\n \n \n Read bytes\n \u8bfb\u5b57\u8282\u6570\n \n \n Writes bytes\n \u5199\u5b57\u8282\u6570\n \n \n Read ops\n \u8bfb\u8bf7\u6c42\u6570\n \n \n Write ops\n \u5199\u8bf7\u6c42\u6570\n \n \n Mark OSD \n \n \n \u6807\u8bb0 OSD \u4e3a\n \n \n \n \n Mark \n \n \n \u6807\u8bb0\u4e3a\n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \u6700\u5927\u56de\u586b\u91cf\n \n \n Recovery Max Active\n \u6700\u5927\u6d3b\u8dc3\u6062\u590d\u8bf7\u6c42\u6570\n \n \n Recovery Max Single Start\n \u6700\u5927\u5355\u6b21\u6062\u590d\u64cd\u4f5c\u6570\n \n \n Recovery Sleep\n \u6062\u590d/\u56de\u586b\u64cd\u4f5c\u95f4\u9694\u7761\u7720\u65f6\u95f4\n \n \n Custom\n \u81ea\u5b9a\u4e49\n \n \n Updated OSD recovery speed priority "\n "\n \n \u5df2\u66f4\u65b0 OSD \u6062\u590d\u901f\u5ea6\u4f18\u5148\u7ea7\u201c\n \u201d\n \n \n \n \n was initialized in the following OSD: \n \n \n \u5982\u4e0b OSD \u5df2\u7ecf\u542f\u52a8\u4e86\n \u64cd\u4f5c\uff1a\n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \u4efb\u52a1\n \n \n Severity\n \u4e25\u91cd\u7a0b\u5ea6\n \n \n Started\n \u5df2\u542f\u52a8\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \u66f4\u65b0\u5b8c\u6210\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \u5df2\u4f7f\u7528\n \n \n Avail.\n \u7a7a\u95f2\n \n \n Clean\n \u6b63\u5e38\n \n \n Working\n \u8fd0\u884c\u4e2d\n \n \n Warning\n \u8b66\u62a5\n \n \n Unknown\n \u672a\u77e5\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \u542f\u7528\u4e2d\n \n \n no filesystems\n \u65e0\u6587\u4ef6\u7cfb\u7edf\n \n \n active\n \u5de5\u4f5c\n \n \n standby\n \u5f85\u673a\n \n \n n/a\n n/a\n \n \n active daemon\n \u5de5\u4f5c\u7684\u5b88\u62a4\u8fdb\u7a0b\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n NFS Ganesha \u670d\u52a1\u7684\u914d\u7f6e\u8fd8\u6ca1\u6709\u5b8c\u6210\u3002\n \n \n Transport\n \u4f20\u8f93\n \n \n CephFS User\n CephFS \u7528\u6237\n \n \n CephFS Filesystem\n CephFS \u6587\u4ef6\u7cfb\u7edf\n \n \n (inherited from global config)\n \uff08\u7ee7\u627f\u81ea\u5168\u5c40\u914d\u7f6e\uff09\n \n \n inherited from global config\n \u7ee7\u627f\u81ea\u5168\u5c40\u914d\u7f6e\n \n \n -- Select what kind of user id squashing is performed --\n -- \u9009\u62e9\u6267\u884c\u54ea\u79cd\u7c7b\u578b\u7684\u7528\u6237 ID \u533f\u540d\u8bbf\u95ee --\n \n \n There are no daemons available.\n \u6ca1\u6709\u53ef\u7528\u7684\u5b88\u62a4\u8fdb\u7a0b\u3002\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \u7f13\u5b58\u6a21\u5f0f\n \n \n Min Evict Age\n \u6700\u5c11\u5ef6\u8fdf\u8d76\u51fa\u65f6\u95f4\n \n \n Min Flush Age\n \u6700\u5c11\u5ef6\u8fdf\u5237\u56de\u65f6\u95f4\n \n \n Target Max Bytes\n \u76ee\u6807\u5668\u6700\u5927\u5b57\u8282\u6570\n \n \n Target Max Objects\n \u76ee\u6807\u5668\u6700\u5927\u5bf9\u8c61\u6570\n \n \n No applications added\n \u8fd8\u6ca1\u6709\u4efb\u4f55\u5e94\u7528\u6807\u8bb0\n \n \n Applications limit reached\n \u5e94\u7528\u6807\u8bb0\u5230\u4e86\u4e0a\u9650\n \n \n A pool can only have up to four applications definitions.\n \u4e00\u4e2a\u5b58\u50a8\u6c60\u6700\u591a\u80fd\u6709\u56db\u4e2a\u5e94\u7528\u6807\u8bb0\u3002\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \u53ef\u7528\u7684\u5b57\u7b26\u4e3a\u201c_a-zA-Z0-9\u201d\n \n \n Maximum length is 128 characters\n \u957f\u5ea6\u9650\u5236\u4e3a 128 \u4e2a\u5b57\u7b26\n \n \n Filter or add applications\n \u6dfb\u52a0\u5e94\u7528\u6807\u8bb0\u6216\u6839\u636e\u5176\u8fdb\u884c\u7b5b\u9009\n \n \n Add application\n \u6dfb\u52a0\u5e94\u7528\u6807\u8bb0\n \n \n pool\n pool\n \n \n erasure code profile\n \u7ea0\u5220\u7801\u914d\u7f6e\n \n \n Replica Size\n \u526f\u672c\u4e2a\u6570\n \n \n Last Change\n \u6700\u540e\u4fee\u6539\u65f6\u95f4\n \n \n Erasure Coded Profile\n \u7ea0\u5220\u7801\u914d\u7f6e\n \n \n Crush Ruleset\n CRUSH \u89c4\u5219\u96c6\n \n \n Write bytes\n \u5199\u5b57\u8282\u6570\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \u5b58\u50a8\u6876\n \n \n Updated Object Gateway bucket "\n "\n \n \u5df2\u66f4\u65b0\u5bf9\u8c61\u7f51\u5173\u5b58\u50a8\u6876\u201c\n \u201d\n \n \n \n Created Object Gateway bucket "\n "\n \n \u5df2\u521b\u5efa\u5bf9\u8c61\u7f51\u5173\u5b58\u50a8\u6876\u201c\n \u201d\n \n \n \n buckets\n \u5b58\u50a8\u6876\n \n \n capability\n capability\n \n \n user\n \u7528\u6237\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \u5df2\u66f4\u65b0\u5bf9\u8c61\u7f51\u5173\u7528\u6237\u201c\n \u201d\n \n \n \n Created Object Gateway user "\n "\n \n \u5df2\u521b\u5efa\u5bf9\u8c61\u7f51\u5173\u7528\u6237\u201c\n \u201d\n \n \n \n users\n \u7528\u6237\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \u4f5c\u7528\u8303\u56f4\n \n \n Read\n \u8bfb\u6743\u9650\n \n \n Create\n \u65b0\u5efa\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \u65b0\u5efa\u89d2\u8272\u201c\n \u201d\n \n \n \n Updated role \'\n \'\n \n \u66f4\u65b0\u89d2\u8272\u201c\n \u201d\n \n \n \n System Role\n \u7cfb\u7edf\u89d2\u8272\n \n \n Deleted role \'\n \'\n \n \u5df2\u5220\u9664\u89d2\u8272\u201c\n \u201d\n \n \n \n Created user "\n "\n \n \u5df2\u65b0\u5efa\u7528\u6237\u201c\n \u201d\n \n \n \n Update user\n \u66f4\u65b0\u7528\u6237\n \n \n Continue\n \u7ee7\u7eed\n \n \n You were automatically logged out because your roles have been changed.\n \u60a8\u88ab\u81ea\u52a8\u767b\u51fa\uff0c\u56e0\u4e3a\u60a8\u7684\u89d2\u8272\u6709\u4e86\u53d8\u52a8\u3002\n \n \n Updated user "\n "\n \n \u5df2\u66f4\u65b0\u7528\u6237\u201c\n \u201d\n \n \n \n Deleted user "\n "\n \n \u5df2\u5220\u9664\u7528\u6237\u201c\n \u201d\n \n \n \n Failed to delete user "\n "\n \n \u5220\u9664\u7528\u6237\u201c\n \u201d\u5931\u8d25\n \n \n \n You are currently logged in as "\n ".\n \n \u60a8\u5f53\u524d\u5728\u7528\u201c\n \u201d\u7684\u8eab\u4efd\u767b\u5f55\u3002\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \u5404\u5bf9\u8c61\u90fd\u88ab\u5206\u5272\u4e3a\u6570\u636e\u5757\uff0c\u5206\u522b\u5b58\u50a8\u4e8e\u4e0d\u540c OSD \u3002\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \u8ba1\u7b97\u5404\u5bf9\u8c61\u7684\u7f16\u7801\u5757\u3001\u5e76\u5b58\u50a8\u4e8e\u4e0d\u540c OSD \u3002\n\u7f16\u7801\u5757\u7684\u6570\u91cf\u7b49\u540c\u4e8e\u5728\u4e0d\u4e22\u6570\u636e\u7684\u524d\u63d0\u4e0b\u5141\u8bb8\u540c\u65f6\u5931\u6548\u7684 OSD \u6570\u91cf\u3002\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n jerasure \u63d2\u4ef6\u662f\u6700\u901a\u7528\u3001\u6700\u7075\u6d3b\u7684\u63d2\u4ef6\uff0c\n\u4e5f\u662f Ceph \u7ea0\u5220\u7801\u5b58\u50a8\u6c60\u7684\u9ed8\u8ba4\u63d2\u4ef6\u3002\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n reed_sol_van \u6280\u672f\u66f4\u7075\u6d3b\uff1a\u5b83\u8db3\u4ee5\u8bbe\u7f6e k \u548c m \u503c\u3002 \ncauchy_good \u6280\u672f\u66f4\u5feb\uff0c\u4f46\u4f60\u5f97\u8c28\u614e\u5730\u9009\u62e9 packetsize \u503c\u3002\nreed_sol_r6_op \u3001 liberation \u3001 blaum_roth \u3001 liber8tion \u90fd\u662f\u4e0e RAID6 \u7b49\u4ef7\u7684\u6280\u672f\uff0c\n\u5b83\u4eec\u53ea\u80fd\u914d\u7f6e\u4e3a m=2 \u3002\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \u4ee5 bytes \u5927\u5c0f\u7684\u5305\u4e3a\u5355\u4f4d\u8fdb\u884c\u7f16\u7801\u3002\n\u786e\u5b9a\u5408\u9002\u7684\u5305\u5c3a\u5bf8\u5f88\u96be\uff0c \njerasure \u6587\u6863\u5bf9\u6b64\u6709\u5f88\u8be6\u7ec6\u7684\u63cf\u8ff0\u3002\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n \u7528 jerasure \u63d2\u4ef6\u65f6\uff0c\u7ea0\u5220\u7801\u7f16\u7801\u7684\u5bf9\u8c61\u5b58\u50a8\u5728\u591a\u4e2a OSD \u4e0a\uff0c\n\u4e22\u5931\u4e00\u4e2a OSD \u7684\u6062\u590d\u8fc7\u7a0b\u9700\u8bfb\u53d6\u6240\u6709\u5176\u4ed6\u7684 OSD \u3002\n\u6bd4\u5982 jerasure \u7684\u914d\u7f6e\u4e3a k=8 \u4e14 m=4 \uff0c\u4e22\u5931\u4e00\u4e2a OSD \u540e\u9700\u8bfb\u53d6\u5176\u4ed6 11 \u4e2a OSD \u624d\u80fd\u6062\u590d\u3002\n\nlrc \u7ea0\u5220\u7801\u63d2\u4ef6\u521b\u5efa\u7684\u662f\u5c40\u90e8\u6821\u9a8c\u5757\uff0c\u8fd9\u6837\u53ea\u9700\u8f83\u5c11\u7684 OSD \u5373\u53ef\u6062\u590d\u3002\n\u6bd4\u5982 lrc \u7684\u914d\u7f6e\u4e3a k=8 \u3001 m=4 \u4e14 l=4 \uff0c\u5b83\u5c06\u4e3a\u6bcf\u56db\u4e2a OSD \u521b\u5efa\u989d\u5916\u7684\u6821\u9a8c\u5757\uff0c\n\u5f53\u4e00\u4e2a OSD \u4e22\u5931\u65f6\uff0c\u5b83\u53ea\u9700\u56db\u4e2a OSD \u5373\u53ef\u6062\u590d\uff0c\u800c\u4e0d\u9700\u8981\u5341\u4e00\u4e2a\u3002\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \u628a\u7f16\u7801\u5757\u548c\u6570\u636e\u5757\u5206\u7ec4\u4e3a\u5927\u5c0f\u4e3a locality \u7684\u96c6\u5408\u3002\n\u6bd4\u5982\uff0c k=4 \u4e14 m=2 \u65f6\uff0c\u82e5\u8bbe\u7f6e locality=3 \uff0c\u5c06\u4f1a\u5206\u7ec4\u4e3a\u5927\u5c0f\u4e3a\u4e09\u7684\u4e24\u7ec4\uff0c\n\u8fd9\u6837\u5404\u7ec4\u90fd\u80fd\u81ea\u884c\u6062\u590d\uff0c\u65e0\u9700\u4ece\u53e6\u4e00\u7ec4\u8bfb\u6570\u636e\u5757\u3002\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n \u7531 l \u5b9a\u4e49\u7684\u5757\u96c6\u5408\u5c06\u6309\u54ea\u79cd crush \u6876\u7c7b\u578b\u5b58\u50a8\u3002\n\u6bd4\u5982\uff0c\u82e5\u8bbe\u7f6e\u4e3a rack \uff0c\u5927\u5c0f\u4e3a l \u5757\u7684\u5404\u7ec4\u5c06\u88ab\u5b58\u5165\u4e0d\u540c\u7684\u673a\u67b6\uff0c\n\u6b64\u503c\u4f1a\u88ab\u7528\u4e8e\u521b\u5efa\u7c7b\u4f3c step choose rack \u7684\u89c4\u5219\u96c6\u3002\n\u5982\u679c\u6ca1\u8bbe\u7f6e\uff0c\u5c31\u4e0d\u4f1a\u8fd9\u6837\u5206\u7ec4\u3002\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa \u63d2\u4ef6\u5c01\u88c5\u4e86 ISA \u5e93\u3002\u5b83\u53ea\u80fd\u8fd0\u884c\u5728 Intel \u5904\u7406\u5668\u4e0a\u3002\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA \u63d2\u4ef6\u5305\u542b\u4e24\u79cd Reed Solomon \u7f16\u7801\u5f62\u5f0f\u3002\n\u8bbe\u7f6e\u4e3a reed_sol_van \u8868\u793a\u7528 Vandermonde \u7b97\u6cd5\uff0c\u8bbe\u7f6e\u4e3a cauchy \u8868\u793a\u7528 Cauchy \u7b97\u6cd5\u3002\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec \u63d2\u4ef6\u5c01\u88c5\u4e86 multiple SHEC \u5e93\u3002\n\u4e0e Reed Solomon \u7f16\u7801\u76f8\u6bd4\uff0c\u5b83\u80fd\u4f7f Ceph \u66f4\u9ad8\u6548\u5730\u6062\u590d\u6570\u636e\u3002\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \u5947\u5076\u6821\u9a8c\u5757\u6570\u91cf\uff0c\u5b83\u4eec\u5728\u5404\u81ea\u7684\u8ba1\u7b97\u8303\u56f4\u5185\u5305\u542b\u4e86\u5404\u6570\u636e\u5757\u3002\n\u6b64\u6570\u503c\u88ab\u7528\u4f5c\u6301\u4e45\u6027\u4f30\u503c\u3002\n\u4f8b\u5982\uff0c\u5047\u8bbe c=2 \uff0c\u5c31\u662f\u8bf4\u4e0d\u4e1f\u6570\u636e\u7684\u60c5\u51b5\u4e0b\u53ef\u635f\u5931 2 \u4e2a OSD \u3002\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n \u89c4\u5219\u96c6\u7b2c\u4e00\u6b65\u6240\u6307\u5411\u7684 CRUSH \u6876\u4e4b\u540d\uff0c\n\u5982 step take default \u3002\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \u786e\u4fdd\u4e24\u4e2a\u7f16\u7801\u5757\u4e0d\u4f1a\u5b58\u5728\u4e8e\u540c\u4e00\u6545\u969c\u57df\u7684\u6876\u91cc\u9762\u3002\n\u6bd4\u5982\uff0c\u5047\u8bbe\u6545\u969c\u57df\u662f host \uff0c\u5c31\u4e0d\u4f1a\u6709\u4e24\u4e2a\u7f16\u7801\u5757\u5b58\u50a8\u5230\u540c\u4e00\u4e3b\u673a\uff1b\n\u6b64\u503c\u7528\u4e8e\u5728\u89c4\u5219\u96c6\u4e2d\u521b\u5efa\u7c7b\u4f3c step chooseleaf host \u7684\u6b65\u9aa4\u3002\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n \u4f7f\u7528 CRUSH \u7d22\u5f15\u4e2d\u7684 crush \u8bbe\u5907\u7c7b\u540d\uff0c\n\u5c06\u5f52\u7f6e\u9650\u5236\u4e8e\u7279\u5b9a\u7c7b\u7684\u8bbe\u5907\uff08\u4f8b\u5982\uff0cssd \u6216 hdd\uff09\u3002\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \u8bbe\u7f6e\u7ea0\u5220\u7801\u63d2\u4ef6\u6240\u5728\u76ee\u5f55\u3002\n \n \n Allows all operations\n \u5141\u8bb8\u6240\u6709\u64cd\u4f5c\n \n \n Allows only operations that do not modify the server\n \u53ea\u5141\u8bb8\u4e0d\u4fee\u6539\u670d\u52a1\u5668\u7aef\u6570\u636e\u7684\u64cd\u4f5c\n \n \n Does not allow read or write operations, but allows any other operation\n \u7981\u6b62\u8bfb\u5199\uff0c\u4f46\u662f\u5141\u8bb8\u5176\u4ed6\u7684\u64cd\u4f5c\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \u7981\u6b62\u8bfb\u3001\u5199\u4ee5\u53ca\u4efb\u4f55\u53ef\u80fd\u4fee\u6539\u6587\u4ef6\u5185\u5bb9\u7684\u64cd\u4f5c\n \n \n Allows no access at all\n \u5b8c\u5168\u7981\u6b62\u8bbf\u95ee\n \n \n -- Select the priority --\n -- \u9009\u62e9\u4f18\u5148\u7ea7 --\n \n \n Low\n \u4f4e\n \n \n High\n \u9ad8\n \n \n Last 5 minutes\n \u8fc7\u53bb 5 \u5206\u949f\n \n \n Last 15 minutes\n \u8fc7\u53bb 15 \u5206\u949f\n \n \n Last 30 minutes\n \u8fc7\u53bb 30 \u5206\u949f\n \n \n Last 1 hour (Default)\n \u8fc7\u53bb 1 \u5c0f\u65f6\uff08\u9ed8\u8ba4\uff09\n \n \n Last 3 hours\n \u8fc7\u53bb 3 \u5c0f\u65f6\n \n \n Last 6 hours\n \u8fc7\u53bb 6 \u5c0f\u65f6\n \n \n Last 12 hours\n \u8fc7\u53bb 12 \u5c0f\u65f6\n \n \n Last 24 hours\n \u8fc7\u53bb 24 \u5c0f\u65f6\n \n \n Yesterday\n \u6628\u5929\n \n \n Today\n \u4eca\u5929\n \n \n Today so far\n \u4eca\u5929\u5230\u73b0\u5728\u4e3a\u6b62\n \n \n Day before yesterday\n \u524d\u5929\n \n \n Last 2 days\n \u8fc7\u53bb 2 \u5929\n \n \n This day last week\n \u4e0a\u5468\u7684\u4eca\u5929\n \n \n Previous week\n \u4e0a\u4e2a\u661f\u671f\n \n \n This week\n \u672c\u5468\n \n \n This week so far\n \u672c\u5468\u4ee5\u6765\n \n \n Last 7 days\n \u8fc7\u53bb 7 \u5929\n \n \n Previous month\n \u4e0a\u4e2a\u6708\n \n \n This month\n \u5f53\u6708\n \n \n This month so far\n \u672c\u6708\u4ee5\u6765\n \n \n Last 30 days\n \u8fc7\u53bb 30 \u5929\n \n \n Last 90 days\n \u8fc7\u53bb 90 \u5929\n \n \n Last 6 months\n \u8fc7\u53bb 6 \u4e2a\u6708\n \n \n Last 1 year\n \u8fc7\u53bb 1 \u5e74\n \n \n Previous year\n \u53bb\u5e74\n \n \n This year\n \u4eca\u5e74\n \n \n This year so far\n \u4eca\u5e74\u4ee5\u6765\n \n \n Last 2 years\n \u8fc7\u53bb 2 \u5e74\n \n \n Last 5 years\n \u8fc7\u53bb 5 \u5e74\n \n \n Information\n \u4fe1\u606f\n \n \n No items selected.\n \u65e0\u9009\u4e2d\u9879\u76ee\u3002\n \n \n Deselect item to select again\n \u53d6\u6d88\u9009\u62e9\n \n \n Selection limit reached\n \u8fbe\u5230\u9009\u62e9\u9879\u6570\u4e0a\u9650\u3002\n \n \n Filter tags\n \u8fc7\u6ee4\u6807\u7b7e\n \n \n Add badge\n \u6dfb\u52a0 badge\n \n \n There are no items available.\n \u65e0\u53ef\u9009\u9879\u76ee\u3002\n \n \n Add\n \u6dfb\u52a0\n \n \n Remove\n Remove\n \n \n Clone\n \u514b\u9686\n \n \n Copy\n \u590d\u5236\n \n \n Deep Scrub\n \u6df1\u5c42\u6d17\u5237\n \n \n Destroy\n \u9500\u6bc1\n \n \n Flatten\n \u5c55\u5f00\n \n \n Mark Down\n \u6807\u8bb0\u4e3a\u505c\u7528\n \n \n Mark In\n \u6807\u8bb0\u4e3a\u52a0\u5165\n \n \n Mark Lost\n \u6807\u8bb0\u4e3a\u4e22\u5931\n \n \n Mark Out\n \u6807\u8bb0\u4e3a\u5df2\u9664\u540d\n \n \n Protect\n \u4fdd\u62a4\n \n \n Rename\n \u91cd\u547d\u540d\n \n \n Restore\n \u6062\u590d\n \n \n Move to Trash\n \u79fb\u81f3\u56de\u6536\u7ad9\n \n \n Unprotect\n \u89e3\u9664\u4fdd\u62a4\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \u5220\u9664\u5b8c\u6210\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \u514b\u9686\u5b8c\u6210\n \n \n Copied\n \u590d\u5236\u5b8c\u6210\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \u662f\n \n \n No\n \u5426\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \u670d\u52a1\u8d28\u91cf (QoS)\n \n \n BPS Limit\n BPS \u4e0a\u9650\n \n \n The desired limit of IO bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u5b57\u8282\u6570\u4e0a\u9650\u3002\n \n \n IOPS Limit\n IOPS \u4e0a\u9650\n \n \n The desired limit of IO operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2 IO \u64cd\u4f5c\u6b21\u6570\u4e0a\u9650\u3002\n \n \n Read BPS Limit\n \u8bfb BPS \u4e0a\u9650\n \n \n The desired limit of read bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5185\u8bfb\u53d6\u7684\u5b57\u8282\u6570\u4e0a\u9650\u3002\n \n \n Read IOPS Limit\n \u8bfb IOPS \u4e0a\u9650\n \n \n The desired limit of read operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u8bfb\u64cd\u4f5c\u6b21\u6570\u4e0a\u9650\u3002\n \n \n Write BPS Limit\n \u5199 BPS \u4e0a\u9650\n \n \n The desired limit of write bytes per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5185\u5199\u5165\u7684\u5b57\u8282\u6570\u4e0a\u9650\u3002\n \n \n Write IOPS Limit\n \u5199 IOPS \u4e0a\u9650\n \n \n The desired limit of write operations per second.\n \u6307\u5b9a\u7684\u6bcf\u79d2\u5199\u64cd\u4f5c\u6b21\u6570\u4e0a\u9650\u3002\n \n \n BPS Burst\n BPS \u7a81\u53d1\n \n \n The desired burst limit of IO bytes.\n \u6307\u5b9a\u7684 IO \u5b57\u8282\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n IOPS Burst\n IOPS \u7a81\u53d1\n \n \n The desired burst limit of IO operations.\n \u6307\u5b9a\u7684 IO \u64cd\u4f5c\u6b21\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Read BPS Burst\n \u8bfb BPS \u7a81\u53d1\n \n \n The desired burst limit of read bytes.\n \u6307\u5b9a\u7684\u8bfb\u53d6\u7684\u5b57\u8282\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Read IOPS Burst\n \u8bfb IOPS \u7a81\u53d1\n \n \n The desired burst limit of read operations.\n \u6307\u5b9a\u7684\u8bfb\u64cd\u4f5c\u6b21\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Write BPS Burst\n \u5199 BPS \u7a81\u53d1\n \n \n The desired burst limit of write bytes.\n \u6307\u5b9a\u7684\u5199\u5165\u7684\u5b57\u8282\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Write IOPS Burst\n \u5199 IOPS \u7a81\u53d1\n \n \n The desired burst limit of write operations.\n \u6307\u5b9a\u7684\u5199\u64cd\u4f5c\u6b21\u6570\u7a81\u53d1\u4e0a\u9650\u3002\n \n \n Failed to \n \n \n \n \n \n \u5931\u8d25\n \n \n \n Executing\n \u6b63\u5728\u6267\u884c\n \n \n execute\n \u6267\u884c\n \n \n Executed\n \u6267\u884c\u5b8c\u6bd5\n \n \n unknown task\n \u672a\u77e5\u4efb\u52a1\n \n \n Creating\n \u6b63\u5728\u521b\u5efa\n \n \n create\n \u521b\u5efa\n \n \n Updating\n \u6b63\u5728\u66f4\u65b0\n \n \n update\n \u66f4\u65b0\n \n \n Deleting\n \u6b63\u5728\u5220\u9664\n \n \n delete\n \u5220\u9664\n \n \n RBD \'\n \'\n \n RBD\u201c\n \u201d\n \n \n \n RBD snapshot \'\n \'\n \n RBD \u5feb\u7167\u201c\n \u201d\n \n \n \n mirror mode for pool \'\n \'\n \n \u5b58\u50a8\u6c60\u201c\n \u201d\u7684\u955c\u50cf\u6a21\u5f0f\n \n \n \n mirror peer for pool \'\n \'\n \n \u5b58\u50a8\u6c60\u201c\n \u201d\u7684\u955c\u50cf\u540c\u4f34\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n \n contains snapshots.\n \n \n \u5305\u542b\u6709\u5feb\u7167\u3002\n \n \n \n Cloning\n \u6b63\u5728\u514b\u9686\n \n \n clone\n \u514b\u9686\n \n \n Snapshot of \n must be protected.\n \n \n \u7684\u5feb\u7167\u5fc5\u987b\u5904\u4e8e\u53d7\u4fdd\u62a4\u72b6\u6001\u3002\n \n \n \n Copying\n \u6b63\u5728\u590d\u5236\n \n \n copy\n \u590d\u5236\n \n \n Flattening\n \u6b63\u5728\u5c55\u5f00\n \n \n flatten\n \u5c55\u5f00\n \n \n Flattened\n \u5c55\u5f00\u5b8c\u6210\n \n \n Name is already used by \n .\n \n \u8be5\u540d\u79f0\u5df2\u88ab\n \u4f7f\u7528\u3002\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \u65e0\u6cd5\u53bb\u6389\n \u7684\u4fdd\u62a4\u72b6\u6001\uff0c\u56e0\u4e3a\u5b83\u6709\u5b50\u6620\u50cf\u3002\n \n \n \n Cannot delete \n because it\'s protected.\n \n \u65e0\u6cd5\u5220\u9664\n \uff0c\u56e0\u4e3a\u5b83\u5904\u4e8e\u53d7\u4fdd\u62a4\u72b6\u6001\u3002\n \n \n \n Rolling back\n \u6b63\u5728\u56de\u6eda\n \n \n rollback\n \u56de\u6eda\n \n \n Rolled back\n \u56de\u6eda\u5b8c\u6210\n \n \n Moving\n \u6b63\u5728\u628a\n \n \n move\n \u628a\n \n \n Moved\n \u5df2\u7ecf\u628a\n \n \n image \'\n \' to trash\n \n \u6620\u50cf\u201c\n \u201d\u79fb\u81f3\u56de\u6536\u7ad9\n \n \n \n Could not find image.\n \u65e0\u6cd5\u627e\u5230\u6620\u50cf\u3002\n \n \n Restoring\n \u6b63\u5728\u628a\n \n \n restore\n \u628a\n \n \n Restored\n \u5df2\u7ecf\u628a\n \n \n image \'\n \' into \'\n \'\n \n \u6620\u50cf\u4ece\u201c\n \u201d\u6062\u590d\u5230\u201c\n \u201d\n \n \n \n Image name \'\n \' is already in use.\n \n \u6620\u50cf\u540d\u79f0\u201c\n \u201d\u5df2\u88ab\u4f7f\u7528\u3002\n \n \n \n image \'\n \'\n \n \u6620\u50cf\u201c\n \u201d\n \n \n \n Purging\n \u6b63\u5728\u6e05\u9664\n \n \n purge\n \u6e05\u9664\n \n \n Purged\n \u5df2\u6e05\u9664\n \n \n all pools\n \u6240\u6709\u5b58\u50a8\u6c60\n \n \n images from \n \n \n \n \u91cc\u7684\u6620\u50cf\n \n \n \n Cannot disable mirroring because it contains a peer.\n \u56e0\u4e3a\u5305\u542b\u540c\u4f34\u96c6\u7fa4\uff0c\u65e0\u6cd5\u7981\u7528\u955c\u50cf\u529f\u80fd\n \n \n pool \'\n \'\n \n \u5b58\u50a8\u6c60\u201c\n \u201d\n \n \n \n erasure code profile \'\n \'\n \n \u7ea0\u5220\u7801\u914d\u7f6e\u201c\n \u201d\n \n \n \n target \'\n \'\n \n \u76ee\u6807\u5668\u201c\n \u201d\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},fELs:function(t,e,n){"use strict";var a=n("RDha");function r(t,e){return a.where(t,function(t){return t.position===e})}function i(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var a=e?n:t,r=e?t:n;return a.weight===r.weight?a._tmpIndex_-r._tmpIndex_:a.weight-r.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.exports={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var a,r=["fullWidth","position","weight"],i=r.length,s=0;s1},t.prototype.canNext=function(){return this.page0&&t<=this.totalPages&&t!==this.page&&(this.page=t,this.change.emit({page:t}))},t.prototype.calcPages=function(t){var e=[],n=1,a=this.totalPages;t=t||this.page,5this.totalPages&&(n=Math.max(this.totalPages-5+1,1),a=this.totalPages));for(var r=n;r<=a;r++)e.push({number:r,text:r});return e},a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"size",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"page",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"change",void 0),a([i.Component({selector:"datatable-pager",template:'\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n \n {{pg.text}}\n \n \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n ',host:{class:"datatable-pager"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},fktO:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("Ahxa")),a(n("fhFe")),a(n("lUjN")),a(n("vxfy"))},fzPg:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}()},g8vO:function(t,e,n){"use strict";var a=n("RDha");t.exports={formatters:{values:function(t){return a.isArray(t)?t:""+t},linear:function(t,e,n){var r=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(r)>1&&t!==Math.floor(t)&&(r=t-Math.floor(t));var i=a.log10(Math.abs(r)),s="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var o=a.log10(Math.abs(t));s=t.toExponential(Math.floor(o)-Math.floor(i))}else{var u=-1*Math.floor(i);u=Math.max(Math.min(u,20),0),s=t.toFixed(u)}else s="0";return s},logarithmic:function(t,e,n){var r=t/Math.pow(10,Math.floor(a.log10(t)));return 0===t?"0":1===r||2===r||5===r||0===e||e===n.length-1?t.toExponential():""}}}},gI3B:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("6blF"),r=n("T1DM"),i=n("/21U"),s=n("nkY7");function o(t,e,n){void 0===t&&(t=0);var o=-1;return Object(i.a)(e)?o=Number(e)<1?1:Number(e):Object(s.a)(e)&&(n=e),Object(s.a)(n)||(n=r.a),new a.a(function(e){var a=Object(i.a)(t)?t:+t-n.now();return n.schedule(u,a,{index:0,period:o,subscriber:e})})}function u(t){var e=t.index,n=t.period,a=t.subscriber;if(a.next(e),!a.closed){if(-1===n)return a.complete();t.index=e+1,this.schedule(t,n)}}},gIcY:function(t,e,n){"use strict";n.d(e,"B",function(){return It}),n.d(e,"D",function(){return Ot}),n.d(e,"C",function(){return S}),n.d(e,"E",function(){return C}),n.d(e,"F",function(){return mt}),n.d(e,"G",function(){return F}),n.d(e,"c",function(){return v}),n.d(e,"d",function(){return l}),n.d(e,"p",function(){return y}),n.d(e,"b",function(){return _}),n.d(e,"e",function(){return x}),n.d(e,"q",function(){return I}),n.d(e,"r",function(){return et}),n.d(e,"s",function(){return nt}),n.d(e,"t",function(){return dt}),n.d(e,"u",function(){return bt}),n.d(e,"w",function(){return k}),n.d(e,"j",function(){return Tt}),n.d(e,"l",function(){return yt}),n.d(e,"g",function(){return _t}),n.d(e,"m",function(){return vt}),n.d(e,"v",function(){return M}),n.d(e,"z",function(){return P}),n.d(e,"y",function(){return wt}),n.d(e,"h",function(){return St}),n.d(e,"a",function(){return st}),n.d(e,"f",function(){return ct}),n.d(e,"i",function(){return ot}),n.d(e,"k",function(){return ut}),n.d(e,"o",function(){return f}),n.d(e,"A",function(){return h}),n.d(e,"n",function(){return Ct}),n.d(e,"x",function(){return kt});var a=n("mrSG"),r=n("CcnG"),i=n("VNr4"),s=n("0/uQ"),o=n("67Y/"),u=n("ZYjt"),c=function(){function t(){}return Object.defineProperty(t.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"status",{get:function(){return this.control?this.control.status:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),t.prototype.reset=function(t){void 0===t&&(t=void 0),this.control&&this.control.reset(t)},t.prototype.hasError=function(t,e){return!!this.control&&this.control.hasError(t,e)},t.prototype.getError=function(t,e){return this.control?this.control.getError(t,e):null},t}(),l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),e}(c);function d(t){return null==t||0===t.length}var f=new r.InjectionToken("NgValidators"),p=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,h=function(){function t(){}return t.min=function(t){return function(e){if(d(e.value)||d(t))return null;var n=parseFloat(e.value);return!isNaN(n)&&nt?{max:{max:t,actual:e.value}}:null}},t.required=function(t){return d(t.value)?{required:!0}:null},t.requiredTrue=function(t){return!0===t.value?null:{required:!0}},t.email=function(t){return d(t.value)?null:p.test(t.value)?null:{email:!0}},t.minLength=function(t){return function(e){if(d(e.value))return null;var n=e.value?e.value.length:0;return nt?{maxlength:{requiredLength:t,actualLength:n}}:null}},t.pattern=function(e){return e?("string"==typeof e?(a="","^"!==e.charAt(0)&&(a+="^"),a+=e,"$"!==e.charAt(e.length-1)&&(a+="$"),n=new RegExp(a)):(a=e.toString(),n=e),function(t){if(d(t.value))return null;var e=t.value;return n.test(e)?null:{pattern:{requiredPattern:a,actualValue:e}}}):t.nullValidator;var n,a},t.nullValidator=function(t){return null},t.compose=function(t){if(!t)return null;var e=t.filter(g);return 0==e.length?null:function(t){return m(function(t,n){return e.map(function(e){return e(t)})}(t))}},t.composeAsync=function(t){if(!t)return null;var e=t.filter(g);return 0==e.length?null:function(t){var n=function(t,n){return e.map(function(e){return e(t)})}(t).map(b);return Object(i.a)(n).pipe(Object(o.a)(m))}},t}();function g(t){return null!=t}function b(t){var e=Object(r["\u0275isPromise"])(t)?Object(s.a)(t):t;if(!Object(r["\u0275isObservable"])(e))throw new Error("Expected validator to return Promise or Observable.");return e}function m(t){var e=t.reduce(function(t,e){return null!=e?Object(a.__assign)({},t,e):t},{});return 0===Object.keys(e).length?null:e}var y=new r.InjectionToken("NgValueAccessor"),v=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"checked",t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t}(),_=new r.InjectionToken("CompositionEventMode"),x=function(){function t(t,e,n){var a;this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=function(t){},this.onTouched=function(){},this._composing=!1,null==this._compositionMode&&(this._compositionMode=(a=Object(u["\u0275getDOM"])()?Object(u["\u0275getDOM"])().getUserAgent():"",!/android (\d+)/.test(a.toLowerCase())))}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)},t.prototype.registerOnChange=function(t){this.onChange=t},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._handleInput=function(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)},t.prototype._compositionStart=function(){this._composing=!0},t.prototype._compositionEnd=function(t){this._composing=!1,this._compositionMode&&this.onChange(t)},t}();function T(t){return t.validate?function(e){return t.validate(e)}:t}function w(t){return t.validate?function(e){return t.validate(e)}:t}var S=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t}();function O(){throw new Error("unimplemented")}var I=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._parent=null,e.name=null,e.valueAccessor=null,e._rawValidators=[],e._rawAsyncValidators=[],e}return Object(a.__extends)(e,t),Object.defineProperty(e.prototype,"validator",{get:function(){return O()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return O()},enumerable:!0,configurable:!0}),e}(c),C=function(){function t(){this._accessors=[]}return t.prototype.add=function(t,e){this._accessors.push([t,e])},t.prototype.remove=function(t){for(var e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)},t.prototype.select=function(t){var e=this;this._accessors.forEach(function(n){e._isSameGroup(n,t)&&n[1]!==t&&n[1].fireUncheck(t.value)})},t.prototype._isSameGroup=function(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name},t}(),k=function(){function t(t,e,n,a){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=a,this.onChange=function(){},this.onTouched=function(){}}return t.prototype.ngOnInit=function(){this._control=this._injector.get(I),this._checkName(),this._registry.add(this._control,this)},t.prototype.ngOnDestroy=function(){this._registry.remove(this)},t.prototype.writeValue=function(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)},t.prototype.registerOnChange=function(t){var e=this;this._fn=t,this.onChange=function(){t(e.value),e._registry.select(e)}},t.prototype.fireUncheck=function(t){this.writeValue(t)},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},t.prototype._throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n ')},t}(),N=function(){function t(t,e){this._renderer=t,this._elementRef=e,this.onChange=function(t){},this.onTouched=function(){}}return t.prototype.writeValue=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(t))},t.prototype.registerOnChange=function(t){this.onChange=function(e){t(""==e?null:parseFloat(e))}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t}(),R='\n
\n \n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',A='\n
\n
\n \n
\n
\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',D='\n
\n
\n \n
\n
',E=function(){function t(){}return t.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+R)},t.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n '+A+"\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n "+D)},t.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n "+R)},t.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+A)},t.arrayParentException=function(){throw new Error('formArrayName must be used with a parent formGroup directive. You\'ll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n \n
\n
\n
\n \n
\n
\n
\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });')},t.disabledAttrWarning=function(){console.warn("\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n \n Example: \n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n ")},t.ngModelWarning=function(t){console.warn("\n It looks like you're using ngModel on the same form field as "+t+". \n Support for using the ngModel input property and ngModelChange event with \n reactive form directives has been deprecated in Angular v6 and will be removed \n in Angular v7.\n \n For more information on this, see our API docs here:\n https://angular.io/api/forms/"+("formControl"===t?"FormControlDirective":"FormControlName")+"#use-with-ngmodel\n ")},t}();function L(t,e){return null==t?""+e:(e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}var P=function(){function t(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=r["\u0275looseIdentical"]}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){this.value=t;var e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=L(e,t);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){e.value=e._getOptionValue(n),t(e.value)}},t.prototype.registerOnTouched=function(t){this.onTouched=t},t.prototype.setDisabledState=function(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)},t.prototype._registerOption=function(){return(this._idCounter++).toString()},t.prototype._getOptionId=function(t){var e,n;try{for(var r=Object(a.__values)(Array.from(this._optionMap.keys())),i=r.next();!i.done;i=r.next()){var s=i.value;if(this._compareWith(this._optionMap.get(s),t))return s}}catch(o){e={error:o}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}return null},t.prototype._getOptionValue=function(t){var e=function(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e):t},t}(),M=function(){function t(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(t.prototype,"ngValue",{set:function(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(L(this.id,t)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"value",{set:function(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),t.prototype._setElementValue=function(t){this._renderer.setProperty(this._element.nativeElement,"value",t)},t.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},t}();function q(t,e){return null==t?""+e:("string"==typeof e&&(e="'"+e+"'"),e&&"object"==typeof e&&(e="Object"),(t+": "+e).slice(0,50))}var j=function(){function t(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=function(t){},this.onTouched=function(){},this._compareWith=r["\u0275looseIdentical"]}return Object.defineProperty(t.prototype,"compareWith",{set:function(t){if("function"!=typeof t)throw new Error("compareWith must be a function, but received "+JSON.stringify(t));this._compareWith=t},enumerable:!0,configurable:!0}),t.prototype.writeValue=function(t){var e,n=this;if(this.value=t,Array.isArray(t)){var a=t.map(function(t){return n._getOptionId(t)});e=function(t,e){t._setSelected(a.indexOf(e.toString())>-1)}}else e=function(t,e){t._setSelected(!1)};this._optionMap.forEach(e)},t.prototype.registerOnChange=function(t){var e=this;this.onChange=function(n){var a=[];if(n.hasOwnProperty("selectedOptions"))for(var r=n.selectedOptions,i=0;i1?"path: '"+t.path.join(" -> ")+"'":t.path[0]?"name: '"+t.path+"'":"unspecified name attribute",new Error(e+" "+n)}function U(t){return null!=t?h.compose(t.map(T)):null}function W(t){return null!=t?h.composeAsync(t.map(w)):null}function K(t,e){if(!t.hasOwnProperty("model"))return!1;var n=t.model;return!!n.isFirstChange()||!Object(r["\u0275looseIdentical"])(e,n.currentValue)}var $=[v,N,S,P,j,k];function Z(t,e){t._syncPendingControls(),e.forEach(function(t){var e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)})}function X(t,e){if(!e)return null;Array.isArray(e)||B(t,"Value accessor was not provided as an array for form control with");var n=void 0,a=void 0,r=void 0;return e.forEach(function(e){var i;e.constructor===x?n=e:(i=e,$.some(function(t){return i.constructor===t})?(a&&B(t,"More than one built-in value accessor matches form control with"),a=e):(r&&B(t,"More than one custom value accessor matches form control with"),r=e))}),r||a||n||(B(t,"No valid value accessor for form control with"),null)}function J(t,e){var n=t.indexOf(e);n>-1&&t.splice(n,1)}var Q=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(a.__extends)(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return z(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){},e}(l),tt=function(){function t(t){this._cd=t}return Object.defineProperty(t.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),t}(),et=function(t){function e(e){return t.call(this,e)||this}return Object(a.__extends)(e,t),e}(tt),nt=function(t){function e(e){return t.call(this,e)||this}return Object(a.__extends)(e,t),e}(tt);function at(t){var e=it(t)?t.validators:t;return Array.isArray(e)?U(e):e||null}function rt(t,e){var n=it(e)?e.asyncValidators:t;return Array.isArray(n)?W(n):n||null}function it(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}var st=function(){function t(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=function(){},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}return Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"valid",{get:function(){return"VALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"invalid",{get:function(){return"INVALID"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"pending",{get:function(){return"PENDING"==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"disabled",{get:function(){return"DISABLED"===this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"enabled",{get:function(){return"DISABLED"!==this.status},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"untouched",{get:function(){return!this.touched},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"updateOn",{get:function(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"},enumerable:!0,configurable:!0}),t.prototype.setValidators=function(t){this.validator=at(t)},t.prototype.setAsyncValidators=function(t){this.asyncValidator=rt(t)},t.prototype.clearValidators=function(){this.validator=null},t.prototype.clearAsyncValidators=function(){this.asyncValidator=null},t.prototype.markAsTouched=function(t){void 0===t&&(t={}),this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)},t.prototype.markAsUntouched=function(t){void 0===t&&(t={}),this.touched=!1,this._pendingTouched=!1,this._forEachChild(function(t){t.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype.markAsDirty=function(t){void 0===t&&(t={}),this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)},t.prototype.markAsPristine=function(t){void 0===t&&(t={}),this.pristine=!0,this._pendingDirty=!1,this._forEachChild(function(t){t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype.markAsPending=function(t){void 0===t&&(t={}),this.status="PENDING",!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)},t.prototype.disable=function(t){void 0===t&&(t={}),this.status="DISABLED",this.errors=null,this._forEachChild(function(e){e.disable(Object(a.__assign)({},t,{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(t),this._onDisabledChange.forEach(function(t){return t(!0)})},t.prototype.enable=function(t){void 0===t&&(t={}),this.status="VALID",this._forEachChild(function(e){e.enable(Object(a.__assign)({},t,{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(t),this._onDisabledChange.forEach(function(t){return t(!1)})},t.prototype._updateAncestors=function(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),this._parent._updatePristine(),this._parent._updateTouched())},t.prototype.setParent=function(t){this._parent=t},t.prototype.updateValueAndValidity=function(t){void 0===t&&(t={}),this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)},t.prototype._updateTreeValidity=function(t){void 0===t&&(t={emitEvent:!0}),this._forEachChild(function(e){return e._updateTreeValidity(t)}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})},t.prototype._setInitialStatus=function(){this.status=this._allControlsDisabled()?"DISABLED":"VALID"},t.prototype._runValidator=function(){return this.validator?this.validator(this):null},t.prototype._runAsyncValidator=function(t){var e=this;if(this.asyncValidator){this.status="PENDING";var n=b(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(function(n){return e.setErrors(n,{emitEvent:t})})}},t.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},t.prototype.setErrors=function(t,e){void 0===e&&(e={}),this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)},t.prototype.get=function(t){return function(t,e,n){return null==e?null:(e instanceof Array||(e=e.split(".")),e instanceof Array&&0===e.length?null:e.reduce(function(t,e){return t instanceof ut?t.controls.hasOwnProperty(e)?t.controls[e]:null:t instanceof ct&&t.at(e)||null},t))}(this,t)},t.prototype.getError=function(t,e){var n=e?this.get(e):this;return n&&n.errors?n.errors[t]:null},t.prototype.hasError=function(t,e){return!!this.getError(t,e)},Object.defineProperty(t.prototype,"root",{get:function(){for(var t=this;t._parent;)t=t._parent;return t},enumerable:!0,configurable:!0}),t.prototype._updateControlsErrors=function(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)},t.prototype._initObservables=function(){this.valueChanges=new r.EventEmitter,this.statusChanges=new r.EventEmitter},t.prototype._calculateStatus=function(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"},t.prototype._anyControlsHaveStatus=function(t){return this._anyControls(function(e){return e.status===t})},t.prototype._anyControlsDirty=function(){return this._anyControls(function(t){return t.dirty})},t.prototype._anyControlsTouched=function(){return this._anyControls(function(t){return t.touched})},t.prototype._updatePristine=function(t){void 0===t&&(t={}),this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)},t.prototype._updateTouched=function(t){void 0===t&&(t={}),this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)},t.prototype._isBoxedValue=function(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t},t.prototype._registerOnCollectionChange=function(t){this._onCollectionChange=t},t.prototype._setUpdateStrategy=function(t){it(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)},t}(),ot=function(t){function e(e,n,a){void 0===e&&(e=null);var r=t.call(this,at(n),rt(a,n))||this;return r._onChange=[],r._applyFormState(e),r._setUpdateStrategy(n),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r._initObservables(),r}return Object(a.__extends)(e,t),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(function(t){return t(n.value,!1!==e.emitViewToModelChange)}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){void 0===e&&(e={}),this.setValue(t,e)},e.prototype.reset=function(t,e){void 0===t&&(t=null),void 0===e&&(e={}),this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1},e.prototype._updateValue=function(){},e.prototype._anyControls=function(t){return!1},e.prototype._allControlsDisabled=function(){return this.disabled},e.prototype.registerOnChange=function(t){this._onChange.push(t)},e.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},e.prototype.registerOnDisabledChange=function(t){this._onDisabledChange.push(t)},e.prototype._forEachChild=function(t){},e.prototype._syncPendingControls=function(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))},e.prototype._applyFormState=function(t){this._isBoxedValue(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t},e}(st),ut=function(t){function e(e,n,a){var r=t.call(this,at(n),rt(a,n))||this;return r.controls=e,r._initObservables(),r._setUpdateStrategy(n),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return Object(a.__extends)(e,t),e.prototype.registerControl=function(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)},e.prototype.addControl=function(t,e){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.removeControl=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.contains=function(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled},e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),Object.keys(t).forEach(function(a){n._throwIfControlMissing(a),n.controls[a].setValue(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),Object.keys(t).forEach(function(a){n.controls[a]&&n.controls[a].patchValue(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this._forEachChild(function(n,a){n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this._reduceChildren({},function(t,e,n){return t[n]=e instanceof ot?e.value:e.getRawValue(),t})},e.prototype._syncPendingControls=function(){var t=this._reduceChildren(!1,function(t,e){return!!e._syncPendingControls()||t});return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[t])throw new Error("Cannot find form control with name: "+t+".")},e.prototype._forEachChild=function(t){var e=this;Object.keys(this.controls).forEach(function(n){return t(e.controls[n],n)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){e.setParent(t),e._registerOnCollectionChange(t._onCollectionChange)})},e.prototype._updateValue=function(){this.value=this._reduceValue()},e.prototype._anyControls=function(t){var e=this,n=!1;return this._forEachChild(function(a,r){n=n||e.contains(r)&&t(a)}),n},e.prototype._reduceValue=function(){var t=this;return this._reduceChildren({},function(e,n,a){return(n.enabled||t.disabled)&&(e[a]=n.value),e})},e.prototype._reduceChildren=function(t,e){var n=t;return this._forEachChild(function(t,a){n=e(n,t,a)}),n},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=Object(a.__values)(Object.keys(this.controls)),r=n.next();!r.done;r=n.next())if(this.controls[r.value].enabled)return!1}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return Object.keys(this.controls).length>0||this.disabled},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},e}(st),ct=function(t){function e(e,n,a){var r=t.call(this,at(n),rt(a,n))||this;return r.controls=e,r._initObservables(),r._setUpdateStrategy(n),r._setUpControls(),r.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),r}return Object(a.__extends)(e,t),e.prototype.at=function(t){return this.controls[t]},e.prototype.push=function(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},e.prototype.insert=function(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()},e.prototype.removeAt=function(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),this.updateValueAndValidity()},e.prototype.setControl=function(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(function(){}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(e.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),e.prototype.setValue=function(t,e){var n=this;void 0===e&&(e={}),this._checkAllValuesPresent(t),t.forEach(function(t,a){n._throwIfControlMissing(a),n.at(a).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.patchValue=function(t,e){var n=this;void 0===e&&(e={}),t.forEach(function(t,a){n.at(a)&&n.at(a).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)},e.prototype.reset=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this._forEachChild(function(n,a){n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e),this._updatePristine(e),this._updateTouched(e)},e.prototype.getRawValue=function(){return this.controls.map(function(t){return t instanceof ot?t.value:t.getRawValue()})},e.prototype._syncPendingControls=function(){var t=this.controls.reduce(function(t,e){return!!e._syncPendingControls()||t},!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t},e.prototype._throwIfControlMissing=function(t){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(t))throw new Error("Cannot find form control at index "+t)},e.prototype._forEachChild=function(t){this.controls.forEach(function(e,n){t(e,n)})},e.prototype._updateValue=function(){var t=this;this.value=this.controls.filter(function(e){return e.enabled||t.disabled}).map(function(t){return t.value})},e.prototype._anyControls=function(t){return this.controls.some(function(e){return e.enabled&&t(e)})},e.prototype._setUpControls=function(){var t=this;this._forEachChild(function(e){return t._registerControl(e)})},e.prototype._checkAllValuesPresent=function(t){this._forEachChild(function(e,n){if(void 0===t[n])throw new Error("Must supply a value for form control at index: "+n+".")})},e.prototype._allControlsDisabled=function(){var t,e;try{for(var n=Object(a.__values)(this.controls),r=n.next();!r.done;r=n.next())if(r.value.enabled)return!1}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return this.controls.length>0||this.disabled},e.prototype._registerControl=function(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)},e}(st),lt=Promise.resolve(null),dt=function(t){function e(e,n){var a=t.call(this)||this;return a.submitted=!1,a._directives=[],a.ngSubmit=new r.EventEmitter,a.form=new ut({},U(e),W(n)),a}return Object(a.__extends)(e,t),e.prototype.ngAfterViewInit=function(){this._setUpdateStrategy()},Object.defineProperty(e.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),e.prototype.addControl=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path);t.control=n.registerControl(t.name,t.control),G(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),e._directives.push(t)})},e.prototype.getControl=function(t){return this.form.get(t.path)},e.prototype.removeControl=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name),J(e._directives,t)})},e.prototype.addFormGroup=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path),a=new ut({});V(a,t),n.registerControl(t.name,a),a.updateValueAndValidity({emitEvent:!1})})},e.prototype.removeFormGroup=function(t){var e=this;lt.then(function(){var n=e._findContainer(t.path);n&&n.removeControl(t.name)})},e.prototype.getFormGroup=function(t){return this.form.get(t.path)},e.prototype.updateModel=function(t,e){var n=this;lt.then(function(){n.form.get(t.path).setValue(e)})},e.prototype.setValue=function(t){this.control.setValue(t)},e.prototype.onSubmit=function(t){return this.submitted=!0,Z(this.form,this._directives),this.ngSubmit.emit(t),!1},e.prototype.onReset=function(){this.resetForm()},e.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},e.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)},e.prototype._findContainer=function(t){return t.pop(),t.length?this.form.get(t):this.form},e}(l),ft=function(){function t(){}return t.modelParentException=function(){throw new Error('\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup\'s partner directive "formControlName" instead. Example:\n\n '+R+'\n\n Or, if you\'d like to avoid registering this form control, indicate that it\'s standalone in ngModelOptions:\n\n Example:\n\n \n
\n \n \n
\n ')},t.formGroupNameException=function(){throw new Error("\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n "+A+"\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n "+D)},t.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: \n Example 2: ')},t.modelGroupParentException=function(){throw new Error("\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n "+A+"\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n "+D)},t.ngFormWarning=function(){console.warn("\n It looks like you're using 'ngForm'.\n\n Support for using the 'ngForm' element selector has been deprecated in Angular v6 and will be removed\n in Angular v9.\n\n Use 'ng-form' instead.\n\n Before:\n \n\n After:\n \n ")},t}(),pt=new r.InjectionToken("NgFormSelectorWarning"),ht=function(t){function e(e,n,a){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=a,r}var n;return Object(a.__extends)(e,t),n=e,e.prototype._checkParentType=function(){this._parent instanceof n||this._parent instanceof dt||ft.modelGroupParentException()},e}(Q),gt=Promise.resolve(null),bt=function(t){function e(e,n,a,i){var s=t.call(this)||this;return s.control=new ot,s._registered=!1,s.update=new r.EventEmitter,s._parent=e,s._rawValidators=n||[],s._rawAsyncValidators=a||[],s.valueAccessor=X(s,i),s}return Object(a.__extends)(e,t),e.prototype.ngOnChanges=function(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),K(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(e.prototype,"path",{get:function(){return this._parent?z(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),e.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},e.prototype._setUpControl=function(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},e.prototype._setUpdateStrategy=function(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)},e.prototype._isStandalone=function(){return!this._parent||!(!this.options||!this.options.standalone)},e.prototype._setUpStandalone=function(){G(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})},e.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},e.prototype._checkParentType=function(){!(this._parent instanceof ht)&&this._parent instanceof Q?ft.formGroupNameException():this._parent instanceof ht||this._parent instanceof dt||ft.modelParentException()},e.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||ft.missingNameException()},e.prototype._updateValue=function(t){var e=this;gt.then(function(){e.control.setValue(t,{emitViewToModelChange:!1})})},e.prototype._updateDisabled=function(t){var e=this,n=t.isDisabled.currentValue,a=""===n||n&&"false"!==n;gt.then(function(){a&&!e.control.disabled?e.control.disable():!a&&e.control.disabled&&e.control.enable()})},e}(I),mt=new r.InjectionToken("NgModelWithFormControlWarning"),yt=function(t){function e(e,n){var a=t.call(this)||this;return a._validators=e,a._asyncValidators=n,a.submitted=!1,a.directives=[],a.form=null,a.ngSubmit=new r.EventEmitter,a}return Object(a.__extends)(e,t),e.prototype.ngOnChanges=function(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(e.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),e.prototype.addControl=function(t){var e=this.form.get(t.path);return G(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e},e.prototype.getControl=function(t){return this.form.get(t.path)},e.prototype.removeControl=function(t){J(this.directives,t)},e.prototype.addFormGroup=function(t){var e=this.form.get(t.path);V(e,t),e.updateValueAndValidity({emitEvent:!1})},e.prototype.removeFormGroup=function(t){},e.prototype.getFormGroup=function(t){return this.form.get(t.path)},e.prototype.addFormArray=function(t){var e=this.form.get(t.path);V(e,t),e.updateValueAndValidity({emitEvent:!1})},e.prototype.removeFormArray=function(t){},e.prototype.getFormArray=function(t){return this.form.get(t.path)},e.prototype.updateModel=function(t,e){this.form.get(t.path).setValue(e)},e.prototype.onSubmit=function(t){return this.submitted=!0,Z(this.form,this.directives),this.ngSubmit.emit(t),!1},e.prototype.onReset=function(){this.resetForm()},e.prototype.resetForm=function(t){void 0===t&&(t=void 0),this.form.reset(t),this.submitted=!1},e.prototype._updateDomValue=function(){var t=this;this.directives.forEach(function(e){var n=t.form.get(e.path);e.control!==n&&(function(t,e){e.valueAccessor.registerOnChange(function(){return H(e)}),e.valueAccessor.registerOnTouched(function(){return H(e)}),e._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}(e.control,e),n&&G(n,e),e.control=n)}),this.form._updateTreeValidity({emitEvent:!1})},e.prototype._updateRegistrations=function(){var t=this;this.form._registerOnCollectionChange(function(){return t._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},e.prototype._updateValidators=function(){var t=U(this._validators);this.form.validator=h.compose([this.form.validator,t]);var e=W(this._asyncValidators);this.form.asyncValidator=h.composeAsync([this.form.asyncValidator,e])},e.prototype._checkFormPresent=function(){this.form||E.missingFormException()},e}(l),vt=function(t){function e(e,n,a){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=a,r}return Object(a.__extends)(e,t),e.prototype._checkParentType=function(){xt(this._parent)&&E.groupParentException()},e}(Q),_t=function(t){function e(e,n,a){var r=t.call(this)||this;return r._parent=e,r._validators=n,r._asyncValidators=a,r}return Object(a.__extends)(e,t),e.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(e.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{get:function(){return z(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._asyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){xt(this._parent)&&E.arrayParentException()},e}(l);function xt(t){return!(t instanceof vt||t instanceof yt||t instanceof _t)}var Tt=function(t){function e(e,n,a,i,s){var o=t.call(this)||this;return o._ngModelWarningConfig=s,o._added=!1,o.update=new r.EventEmitter,o._ngModelWarningSent=!1,o._parent=e,o._rawValidators=n||[],o._rawAsyncValidators=a||[],o.valueAccessor=X(o,i),o}var n;return Object(a.__extends)(e,t),n=e,Object.defineProperty(e.prototype,"isDisabled",{set:function(t){E.disabledAttrWarning()},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(t){var e,a;this._added||this._setUpControl(),K(t,this.viewModel)&&("formControlName",e=n,this,a=this._ngModelWarningConfig,Object(r.isDevMode)()&&"never"!==a&&((null!==a&&"once"!==a||e._ngModelWarningSentOnce)&&("always"!==a||this._ngModelWarningSent)||(E.ngModelWarning("formControlName"),e._ngModelWarningSentOnce=!0,this._ngModelWarningSent=!0)),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},e.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},e.prototype.viewToModelUpdate=function(t){this.viewModel=t,this.update.emit(t)},Object.defineProperty(e.prototype,"path",{get:function(){return z(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"validator",{get:function(){return U(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"asyncValidator",{get:function(){return W(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),e.prototype._checkParentType=function(){!(this._parent instanceof vt)&&this._parent instanceof Q?E.ngModelGroupException():this._parent instanceof vt||this._parent instanceof yt||this._parent instanceof _t||E.controlParentException()},e.prototype._setUpControl=function(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},e._ngModelWarningSentOnce=!1,e}(I),wt=function(){function t(){}return Object.defineProperty(t.prototype,"required",{get:function(){return this._required},set:function(t){this._required=null!=t&&!1!==t&&""+t!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),t.prototype.validate=function(t){return this.required?h.required(t):null},t.prototype.registerOnValidatorChange=function(t){this._onChange=t},t}(),St=function(){function t(){}return t.prototype.group=function(t,e){void 0===e&&(e=null);var n=this._reduceControls(t),a=null,r=null,i=void 0;return null!=e&&(function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(e)?(a=null!=e.validators?e.validators:null,r=null!=e.asyncValidators?e.asyncValidators:null,i=null!=e.updateOn?e.updateOn:void 0):(a=null!=e.validator?e.validator:null,r=null!=e.asyncValidator?e.asyncValidator:null)),new ut(n,{asyncValidators:r,updateOn:i,validators:a})},t.prototype.control=function(t,e,n){return new ot(t,e,n)},t.prototype.array=function(t,e,n){var a=this,r=t.map(function(t){return a._createControl(t)});return new ct(r,e,n)},t.prototype._reduceControls=function(t){var e=this,n={};return Object.keys(t).forEach(function(a){n[a]=e._createControl(t[a])}),n},t.prototype._createControl=function(t){return t instanceof ot||t instanceof ut||t instanceof ct?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)},t}(),Ot=function(){return function(){}}(),It=function(){return function(){}}(),Ct=function(){function t(){}var e;return e=t,t.withConfig=function(t){return{ngModule:e,providers:[{provide:pt,useValue:t.warnOnDeprecatedNgFormSelector}]}},t}(),kt=function(){function t(){}var e;return e=t,t.withConfig=function(t){return{ngModule:e,providers:[{provide:mt,useValue:t.warnOnNgModelWithFormControl}]}},t}()},gVVK:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===t?e?"sekundo":"sekundi":2===t?e||a?"sekundi":"sekundah":t<5?e||a?"sekunde":"sekundah":"sekund");case"m":return e?"ena minuta":"eno minuto";case"mm":return r+(1===t?e?"minuta":"minuto":2===t?e||a?"minuti":"minutama":t<5?e||a?"minute":"minutami":e||a?"minut":"minutami");case"h":return e?"ena ura":"eno uro";case"hh":return r+(1===t?e?"ura":"uro":2===t?e||a?"uri":"urama":t<5?e||a?"ure":"urami":e||a?"ur":"urami");case"d":return e||a?"en dan":"enim dnem";case"dd":return r+(1===t?e||a?"dan":"dnem":2===t?e||a?"dni":"dnevoma":e||a?"dni":"dnevi");case"M":return e||a?"en mesec":"enim mesecem";case"MM":return r+(1===t?e||a?"mesec":"mesecem":2===t?e||a?"meseca":"mesecema":t<5?e||a?"mesece":"meseci":e||a?"mesecev":"meseci");case"y":return e||a?"eno leto":"enim letom";case"yy":return r+(1===t?e||a?"leto":"letom":2===t?e||a?"leti":"letoma":t<5?e||a?"leta":"leti":e||a?"let":"leti")}}n("wd/R").defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}()},gekB:function(t,e,n){!function(t){"use strict";var e="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),n=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",e[7],e[8],e[9]];function a(t,a,r,i){var s="";switch(r){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":return i?"sekunnin":"sekuntia";case"m":return i?"minuutin":"minuutti";case"mm":s=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":s=i?"tunnin":"tuntia";break;case"d":return i?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":s=i?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return i?"kuukauden":"kuukausi";case"MM":s=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":s=i?"vuoden":"vuotta"}return function(t,a){return t<10?a?n[t]:e[t]:t}(t,i)+" "+s}t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},gjCT:function(t,e,n){!function(t){"use strict";var e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},n={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};t.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(t){return t.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(t){return n[t]}).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(n("wd/R"))},gp3X:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R");n("sb0X"),n.d(e,"a",function(){return i}),n.d(e,"b",function(){return o});var i=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"i",[["class","fa fa-spinner fa-spin fa-fw"]],null,null,null,null,null))],null,null)}function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"button",[["class","btn btn-sm btn-primary tc_submitButton"]],[[8,"type",0],[8,"disabled",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.submit(n)&&a),a},null,null)),a["\u0275ncd"](null,0),(t()(),a["\u0275and"](16777216,null,null,1,null,s)),a["\u0275did"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,3,0,e.component.loading)},function(t,e){var n=e.component;t(e,0,0,n.type,n.loading||n.disabled)})}},"h+PQ":function(t,e,n){"use strict";function a(){return""}function r(t,e){if(null==t)return"";if(!t||null==e)return t;var n=t[e];return null==n?"":n}function i(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];return null==n?"":n}function s(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];if(void 0!==n)return n;n=t;var a=e.split(".");if(a.length)for(var r=0;re)return 1}else if(isNaN(parseFloat(t))||!isFinite(t)||isNaN(parseFloat(e))||!isFinite(e)){if(t=String(t),e=String(e),t.toLowerCase()e.toLowerCase())return 1}else{if(parseFloat(t)parseFloat(e))return 1}return 0}e.nextSortDir=function(t,e){return t===a.SortType.single?e===a.SortDirection.asc?a.SortDirection.desc:a.SortDirection.asc:e?e===a.SortDirection.asc?a.SortDirection.desc:void 0:a.SortDirection.asc},e.orderByComparator=i,e.sortRows=function(t,e,n){if(!t)return[];if(!n||!n.length||!e)return t.slice();var s=new Map;t.forEach(function(t,e){return s.set(t,e)});var o=t.slice(),u=e.reduce(function(t,e){return e.comparator&&"function"==typeof e.comparator&&(t[e.prop]=e.comparator),t},{}),c=n.map(function(t){var e=t.prop;return{prop:e,dir:t.dir,valueGetter:r.getterForProp(e),compareFn:u[e]||i}});return o.sort(function(t,e){for(var n=0,r=c;n\n \n \n \n Toggle navigation\n Attiva/Disattiva barra di navigazione\n \n \n Dashboard\n Dashboard\n \n \n Cluster\n Cluster\n \n \n Hosts\n Host\n \n \n Monitors\n Monitor\n \n \n OSDs\n OSD\n \n \n Configuration\n Configurazione\n \n \n CRUSH map\n Mappa CRUSH\n \n \n Manager modules\n Moduli Manager\n \n \n Logs\n Log\n \n \n Alerts\n Avvisi\n \n \n Silences\n Silences\n \n \n Pools\n Pool\n \n \n Block\n Blocco\n \n \n Images\n Immagini\n \n \n Mirroring\n Esecuzione della copia speculare\n \n \n iSCSI\n iSCSI \n \n \n NFS\n NFS\n \n \n Filesystems\n File system\n \n \n Object Gateway\n Object Gateway\n \n \n Daemons\n Daemon\n \n \n Users\n Utenti\n \n \n Buckets\n Compartimenti\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Recupero dati\n per\n \n \n . Attendere...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Visualizzazione dei dati memorizzati in precedenza nella cache\n \n per \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Impossibile caricare i dati\n per\n \n \n .\n Verificare lo stato del cluster.\n \n \n \n Back\n Indietro\n \n \n Select a Language\n Selezionare una lingua\n \n \n Loading panel data...\n Caricamento pannello dati in corso...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Consultare la\n documentazione\n su come\n configurare e abilitare la funzionalit\xe0 di monitoraggio.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Il dashboard di Grafana non esiste. Consultare la\n documentazione\n su come\n aggiungere dashboard a Grafana.\n \n \n \n Grafana Time Picker\n Selezione ora di Grafana\n \n \n Reset Settings\n Impostazioni di ripristino\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Non \xe8 stato possibile caricare i dati.\n \n \n selected\n selezionato\n X selected\n \n \n found\n trovato\n X found\n \n \n total\n totale\n X total\n \n \n Edit\n Modifica\n \n \n Name\n Nome\n \n \n Description\n Descrizione\n \n \n Long description\n Descrizione lunga\n \n \n Default\n Default\n \n \n Daemon default\n Default del daemon\n \n \n Services\n Servizi\n \n \n Values\n Valori\n \n \n The entered value is too high! It must not be greater than \n .\n \n Il valore immesso \xe8 troppo alto. Non deve essere maggiore di \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Il valore immesso \xe8 troppo basso. Non deve essere minore di \n .\n \n \n \n Save\n Salva\n \n \n CRUSH map viewer\n Visualizzatore mappa CRUSH\n \n \n Hosts List\n Elenco degli host\n \n \n Overall Performance\n Prestazioni complessive\n \n \n No entries found\n Nessuna voce trovata\n \n \n Cluster Logs\n Log dei cluster\n \n \n Audit Logs\n Log delle revisioni\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Caricamento della configurazione in corso...\n \n \n The configuration could not be loaded.\n Impossibile caricare la configurazione.\n \n \n Edit Manager module\n Modifica modulo Manager\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Il valore immesso non \xe8 un UUID valido, ad es.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Il valore immesso deve essere un indirizzo IP valido.\n \n \n This field is required.\n Questo campo \xe8 obbligatorio.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Il valore immesso \xe8 troppo alto. Deve essere minore o uguale a \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Il valore immesso \xe8 troppo basso. Deve essere maggiore o uguale a \n .\n \n \n \n The entered value needs to be a number.\n Il valore immesso deve essere un numero.\n \n \n The entered value needs to be a number or decimal.\n Il valore immesso deve essere un numero o un decimale.\n \n \n Update\n Aggiorna\n \n \n Status\n Stato\n \n \n Cluster ID\n ID cluster\n \n \n monmap modified\n mappa mon modificata\n \n \n monmap epoch\n epoca mappa mon\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n con richiesta\n \n \n required mon\n mon richiesto\n \n \n In Quorum\n Nel quorum\n \n \n Not In Quorum\n Non nel quorum\n \n \n Cancel\n Annulla\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Si \xe8 sicuri di voler \n l\'elemento \n selezionato?\n \n \n \n Yes, I am sure.\n S\xec.\n \n \n Cluster-wide OSD Flags\n Flag OSD in tutto il cluster\n \n \n Submit\n Invia\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avanzate...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorit\xe0 di recupero OSD\n \n \n Priority\n Priorit\xe0\n \n \n Customize priority values\n Personalizza valori di priorit\xe0\n \n \n This field is required!\n Questo campo \xe8 obbligatorio.\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Il valore immesso \xe8 troppo alto. Non deve essere maggiore di \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Il valore immesso \xe8 troppo basso. Non deve essere minore di \n .\n \n \n \n Reweight OSD\n Ripesa OSD\n \n \n The value needs to be between 0 and 1.\n Il valore deve essere compreso tra 0 e 1.\n \n \n Reweight\n Ripesa\n \n \n OSDs \n Scrub\n \n Pulitura degli \n OSD\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Deep } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Si sta per eseguire una \n pulitura\n dell\'OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {deep } }\n \n \n OSDs List\n Elenco degli OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n L\'OSD \n \n viene contrassegnato\n \n \n se si procede.\n \n \n \n The OSD is not safe to destroy!\n Non \xe8 sicuro eliminare definitivamente l\'OSD.\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n L\'OSD \n \n viene\n \n \n se si procede.\n \n \n \n Details\n Dettagli\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valore\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Chiudi\n \n \n Delete\n Elimina\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Stato\n \n \n Statistics\n Statistiche\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Consultare la \n documentazione\n \n su come configurare e abilitare la funzionalit\xe0 di gestione di NFS Ganesha.\n \n \n \n Clients\n Client\n \n \n Any client can access\n Pu\xf2 accedere qualsiasi client\n \n \n Addresses\n Indirizzi\n \n \n Required field\n Campo obbligatorio\n \n \n Must contain one or more comma-separated values\n Deve contenere uno o pi\xf9 valori delimitati da virgole\n \n \n For example:\n Ad esempio:\n \n \n Access Type\n Tipo di accesso\n \n \n Squash\n Esegui squash\n \n \n Add clients\n Aggiungi client\n \n \n Loading...\n Caricamento in corso...\n \n \n -- No cluster available --\n -- Nessun cluster disponibile --\n \n \n -- Select the cluster --\n -- Selezionare il cluster --\n \n \n Add daemon\n Aggiungi daemon\n \n \n Storage Backend\n Backend di storage\n \n \n -- No data pools available --\n -- Nessun pool di dati disponibile --\n \n \n -- Select the storage backend --\n -- Selezionare il backend di storage --\n \n \n Object Gateway User\n Utente Object Gateway\n \n \n -- No users available --\n -- Nessun utente disponibile --\n \n \n -- Select the object gateway user --\n -- Selezionare l\'utente Object Gateway --\n \n \n CephFS User ID\n ID utente CephFS\n \n \n -- No clients available --\n -- Nessun client disponibile --\n \n \n -- Select the cephx client --\n -- Selezionare il client Cephx --\n \n \n CephFS Name\n Nome CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Etichetta di sicurezza\n \n \n Enable security label\n Abilita etichetta di sicurezza\n \n \n CephFS Path\n Percorso CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n Il percorso deve iniziare con una barra \'/\' e pu\xf2 essere seguito da una parola\n \n \n New directory will be created\n Viene creata la nuova directory\n \n \n Path\n Percorso\n \n \n Path can only be a single \'/\' or a word\n Il percorso pu\xf2 essere solo una singola barra \'/\' o parola\n \n \n New bucket will be created\n Viene creato il nuovo compartimento\n \n \n NFS Protocol\n Protocollo NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Accesso alternativo per montaggi \n NFS v3\n (non deve contenere una / iniziale).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n I client non possono montare le sottodirectory (ad es. se Tag = foo, il client non pu\xf2 montare foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Utilizzando diverse opzioni Tag, \xe8 possibile esportare pi\xf9 volte lo stesso percorso.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n La posizione che occupa l\'esportazione \n NFS v4\n \n nello \n Pseudo FS\n (deve essere univoca).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Utilizzando diverse opzioni Pseudo, \xe8 possibile esportare pi\xf9 volte lo stesso percorso.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Nessun tipo di accesso disponibile --\n \n \n -- Select the access type --\n -- Selezionare il tipo di accesso --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Nessuno squash disponibile --\n \n \n --Select what kind of user id squashing is performed --\n --Selezionare il tipo di squash dell\'ID utente da eseguire --\n \n \n Transport Protocol\n Protocollo di trasporto\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Benvenuto in Ceph.\n The welcome message on the login page\n \n \n Username is required\n Nome utente necessario\n \n \n Password is required\n Password richiesta\n \n \n Login\n Login\n \n \n Sorry, the user does not exist in Ceph.\n Spiacenti, l\'utente non esiste in Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Tornale alla \n Pagina di login\n . Si viene disconnessi dal Provider di identit\xe0\n quando si riprova a eseguire il login.\n \n \n \n Forbidden\n Non consentito\n \n \n Sorry, you are not allowed to see what you were looking for.\n Spiacenti, non \xe8 consentito visualizzare ci\xf2 che si stava cercando.\n \n \n Sorry, we could not find what you were looking for\n Spiacenti, impossibile trovare ci\xf2 che si stava cercando\n \n \n Remove all\n Rimuovi tutto\n \n \n Recent Notifications\n Notifiche recenti\n \n \n There are no background tasks.\n Non esistono task in background.\n \n \n Background Tasks\n Task in background\n \n \n Help\n Guida\n \n \n Documentation\n Documentazione\n \n \n API\n API\n \n \n About\n Informazioni su\n \n \n Dashboard Settings\n Impostazioni del dashboard\n \n \n User management\n Gestione utenti\n \n \n Logged in user\n Utente connesso\n \n \n Signed in as\n \n \n \n \n Connesso come\n \n \n \n \n \n \n Sign out\n Disconnetti\n \n \n Name...\n Nome...\n \n \n The chosen name is already in use.\n Il nome scelto \xe8 gi\xe0 in uso.\n \n \n Description...\n Descrizione...\n \n \n Permissions\n Autorizzazioni\n \n \n Roles\n Ruoli\n \n \n Username\n Nome utente\n \n \n Password\n Password\n \n \n Confirm password\n Conferma password\n \n \n Password confirmation doesn\'t match the password.\n La password di conferma non corrisponde alla password.\n \n \n Full name\n Nome completo\n \n \n Email\n E-mail\n \n \n Invalid email.\n E-mail non valida.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Si stanno per rimuovere le autorizzazioni di "lettura/aggiornamento utente" dal proprio utente.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Se si continua, non \xe8 pi\xf9 possibile aggiungere o rimuovere ruoli da qualsiasi utente.\n \n \n Are you sure you want to continue?\n Continuare?\n \n \n Performance counters not available\n Contatori delle prestazioni non disponibili\n \n \n Attributes (OSD map)\n Attributi (mappa OSD)\n \n \n Metadata not available\n Metadati non disponibili\n \n \n Metadata\n Metadati\n \n \n Performance counter\n Contatore delle prestazioni\n \n \n Histogram not available: \n \n \n Istogramma non disponibile: \n \n \n \n \n Writes\n Scritture\n \n \n Reads\n Letture\n \n \n Histogram\n Istogramma\n \n \n Performance Details\n Dettagli sulle prestazioni\n \n \n Current values\n Valori attuali\n \n \n Type\n Tipo\n \n \n Min\n Min\n \n \n Max\n Max\n \n \n Flags\n Flag\n \n \n Source\n Origine\n \n \n Level\n Livello\n \n \n Can be updated at runtime (editable)\n Pu\xf2 essere aggiornato al runtime (modificabile)\n \n \n Tags\n Tag\n \n \n Enum values\n Valori di enumerazione\n \n \n See also\n Vedere anche\n \n \n Cluster Status\n Stato del cluster\n \n \n Manager Daemons\n Manager Daemon\n \n \n Object Gateways\n Object Gateway\n \n \n Metadata Servers\n Server di metadati\n \n \n iSCSI Gateways\n iSCSI Gateway\n \n \n Client IOPS\n IOPS client\n \n \n Client Throughput\n Velocit\xe0 effettiva client\n \n \n Client Read/Write\n Lettura/scrittura client\n \n \n Recovery Throughput\n Velocit\xe0 effettiva di recupero\n \n \n Scrub\n Pulitura\n \n \n Performance\n Prestazioni\n \n \n Raw Capacity\n Capacit\xe0 di base\n \n \n Objects\n Oggetti\n \n \n PGs per OSD\n Gruppi di posizionamento per OSD\n \n \n PG Status\n Stato gruppo di posizionamento\n \n \n Capacity\n Capacit\xe0\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Vedere \n Log\n per ulteriori informazioni.\n \n \n \n Ranks\n Classificazioni\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Client: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Sposta un\'immagine nel cestino\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Per spostare \n \n /\n \n nel cestino,\n fare clic su \n Sposta immagine\n . Facoltativamente, \xe8 possibile selezionare una data di scadenza.\n \n \n \n Protection expires at\n La protezione scade alle\n \n \n NOT PROTECTED\n NON PROTETTO\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Formato data errato. Utilizzare "AAAA-MM-GG HH:mm:ss".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n La protezione \xe8 gi\xe0 scaduta. Selezionare una data futura o lasciarla vuota.\n \n \n Move Image\n Sposta immagine\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Panoramica\n \n \n Targets\n Destinazioni\n \n \n Discovery Authentication\n Autenticazione rilevazione\n \n \n User\n Utente\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Utente reciproco\n \n \n Mutual Password\n Password reciproca\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Consultare la \n documentazione\n \n su come configurare e abilitare la funzionalit\xe0 di gestione delle destinazioni iSCSI.\n \n \n \n Available information:\n Informazioni disponibili:\n \n \n iSCSI Targets not available\n Destinazioni iSCSI non disponibili\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Disponibile solo per le immagini RDB con \n fast-diff\n abilitata\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Pool di dati\n \n \n Created\n Creato\n \n \n Size\n Dimensioni\n \n \n Object size\n Dimensioni oggetto\n \n \n Features\n Funzioni\n \n \n Provisioned\n Soggetto al provisioning\n \n \n N/A\n N/D\n \n \n Total provisioned\n Totale soggetto al provisioning\n \n \n Striping unit\n Unit\xe0 di striping\n \n \n Striping count\n Conteggio di striping\n \n \n Parent\n Superiore\n \n \n Block name prefix\n Prefisso nome blocco\n \n \n Order\n Ordine\n \n \n Snapshots\n Snapshot\n \n \n Image\n Immagine\n \n \n This setting overrides the global value\n Questa impostazione sostituisce il valore globale\n \n \n Global\n Globale\n \n \n This is the global value. No value for this option has been set for this image.\n Questo \xe8 il valore globale. Nessun valore di opzione \xe8 stato impostato per questa immagine.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' e \'@\' non sono consentiti.\n \n \n -- No rbd pools available --\n -- Nessun pool rbd disponibile --\n \n \n -- Select a pool --\n -- Selezionare un pool --\n \n \n Use a dedicated data pool\n Utilizza un pool di dati dedicato\n \n \n Data pool\n Pool di dati\n \n \n Dedicated pool that stores the object-data of the RBD.\n Pool dedicato che archivia i dati oggetto dell\'RBD.\n \n \n e.g., 10GiB\n ad es. 10 GiB\n \n \n You have to increase the size.\n \xc8 necessario aumentare le dimensioni.\n \n \n Advanced\n Avanzate\n \n \n Striping\n Striping\n \n \n Stripe unit\n Unit\xe0 di striping\n \n \n -- Select stripe unit --\n -- Selezionare l\'unit\xe0 di striping --\n \n \n This field is required because stripe count is defined!\n Questo campo \xe8 obbligatorio perch\xe9 \xe8 specificato il numero di striping.\n \n \n Stripe unit is greater than object size.\n L\'unit\xe0 di striping \xe8 maggiore delle dimensioni dell\'oggetto.\n \n \n Stripe count\n Numero di striping\n \n \n This field is required because stripe unit is defined!\n Questo campo \xe8 obbligatorio perch\xe9 \xe8 specificata l\'unit\xe0 di striping.\n \n \n Stripe count must be greater than 0.\n Il numero di striping deve essere maggiore di 0.\n \n \n \n RBD Snapshot\n \n \n Snapshot RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Rename} other {Create} }\n \n \n \n Snapshot\n \n \n Snapshot\n \n \n \n PROTECTED\n PROTETTO\n \n \n UNPROTECTED\n NON PROTETTO\n \n \n You are about to rollback\n Si sta per eseguire il rollback\n \n \n Purge Trash\n Elimina definitivamente contenuto del cestino\n \n \n To purge, select one or All images and click\n Per eliminare definitivamente, selezionare una o tutte le immagini e fare clic su\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Nome pool...\n \n \n All\n Tutto\n \n \n Restore Image\n Ripristina immagine\n \n \n To restore\n Per ripristinare,\n \n \n type the image\'s new name and click\n digitare il nuovo nome dell\'immagine e fare clic su\n \n \n New Name\n Nuovo nome\n \n \n Expired at\n Scaduto alle\n \n \n Protected until\n Protetto fino alle\n \n \n This image is protected until \n .\n \n Questa immagine \xe8 protetta fino alle \n .\n \n \n \n Trash\n Cestino\n \n \n iSCSI Topology\n Topologia iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Di solito non \xe8 necessario modificare questi parametri rispetto ai valori di default.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Impostazioni\n \n \n Backstore\n Backstore\n \n \n Confirm\n Conferma\n \n \n Advanced Settings\n Impostazioni avanzate\n \n \n Target IQN\n IQN di destinazione\n \n \n IQN has wrong pattern.\n IQN contiene un modello errato.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Un IQN contiene la notazione seguente \'iqn.$year-$month.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Ad esempio: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Ulteriori informazioni\n \n \n This target has modified advanced settings.\n Questa destinazione contiene impostazioni avanzate modificate.\n \n \n Portals\n Portali\n \n \n At least \n gateways are required.\n \n Gateway richiesti: almeno \n .\n \n \n \n Add portal\n Aggiungi portale\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Questa immagine contiene impostazioni modificate.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Aggiungi immagine\n \n \n ACL authentication\n Autenticazione ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Iniziatori\n \n \n Initiator\n Iniziatore\n \n \n Client IQN\n IQN client\n \n \n Initiator IQN needs to be unique.\n L\'IQN dell\'iniziatore deve essere univoco.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n L\'iniziatore appartiene a un gruppo. Le immagini verranno configurate nel gruppo.\n \n \n No items added.\n Nessun elemento aggiunto.\n \n \n Add initiator\n Aggiungi iniziatore\n \n \n Groups\n Gruppi\n \n \n Group\n Gruppo\n \n \n Add group\n Aggiungi gruppo\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configurazione RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Rimuovere il valore della configurazione locale. Al suo posto verr\xe0 ereditato e utilizzato il valore della configurazione superiore.\n \n \n The mininum value is 0\n Il valore minimo \xe8 0\n \n \n Issues\n Problemi\n \n \n Syncing\n Sincronizzazione in corso\n \n \n Ready\n Pronto\n \n \n Edit pool mirror mode\n Modifica modalit\xe0 speculare per il pool\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Per modificare la modalit\xe0 speculare per il pool\xa0\n \n \n , selezionare una nuova modalit\xe0 dall\'elenco e fare clic su\xa0\n Aggiorna\n .\n \n \n \n Mode\n Modalit\xe0\n \n \n Peer clusters must be removed prior to disabling mirror.\n \xc8 necessario rimuovere i cluster peer prima di disabilitare la copia speculare.\n \n \n \n \n pool mirror peer\n \n \n \n peer copia speculare del pool\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n gli attributi peer della\n copia speculare per il pool \n \n \n e fare clic su \n Invia\n .\n \n \n \n Cluster Name\n Nome cluster\n \n \n The cluster name is not valid.\n Il nome del cluster non \xe8 valido.\n \n \n CephX ID\n ID CephX\n \n \n CephX ID...\n ID CephX...\n \n \n The CephX ID is not valid.\n L\'ID CephX non \xe8 valido.\n \n \n Monitor Addresses\n Indirizzi dei monitor\n \n \n Comma-delimited addresses...\n Indirizzi con valori delimitati da virgole...\n \n \n The monitory address is not valid.\n L\'indirizzo del monitor non \xe8 valido.\n \n \n CephX Key\n Chiave CephX\n \n \n Base64-encoded key...\n Chiave con codifica Base64...\n \n \n CephX key must be base64 encoded.\n La chiave CephX deve essere con codifica Base64.\n \n \n Pools List\n Elenco dei pool\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Il nome pu\xf2 contenere solo caratteri alfanumerici, trattini e caratteri di sottolineatura.\n \n \n The chosen erasure code profile name is already in use.\n Il nome del profilo del codice di cancellazione selezionato \xe8 gi\xe0 in uso.\n \n \n Plugin\n Plugin\n \n \n Data chunks (k)\n Porzioni di dati (k)\n \n \n Must be equal to or greater than 2.\n Deve essere uguale o maggiore di 2.\n \n \n Coding chunks (m)\n Porzioni di codice (m)\n \n \n Must be equal to or greater than 1.\n Deve essere uguale o maggiore di 1.\n \n \n Durability estimator (c)\n Stima durata (c)\n \n \n Locality (l)\n Localit\xe0 (l)\n \n \n Crush failure domain\n Dominio di errore Crush\n \n \n Crush Locality\n Localit\xe0 Crush\n \n \n None\n Nessuno\n \n \n Technique\n Tecnica\n \n \n Packetsize\n Dimensione del pacchetto\n \n \n Crush root\n Radice Crush\n \n \n Crush device class\n Classe dispositivo Crush\n \n \n any\n qualsiasi\n \n \n Directory\n Directory\n \n \n The chosen Ceph pool name is already in use.\n Il nome del pool Ceph scelto \xe8 gi\xe0 in uso.\n \n \n Pool type\n Tipo di pool\n \n \n -- Select a pool type --\n -- Selezionare un tipo di pool --\n \n \n Placement groups\n Gruppi di posizionamento\n \n \n At least one placement group is needed!\n \xc8 necessario almeno un gruppo di posizionamento.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Il cluster non pu\xf2 gestire questo numero eccessivo di gruppi di posizionamento. Ricalcolare il numero di gruppi di posizionamento necessari.\n \n \n Calculation help\n Guida per il calcolo\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Sono state calcolate le impostazioni dei gruppi di posizionamento attuali;\n prima di inviare, assicurarsi che i valori soddisfino le proprie esigenze.\n \n \n Crush ruleset\n Set di regole Crush\n \n \n -- Select a crush rule --\n -- Selezionare una regola Crush --\n \n \n Crush rule\n Regola Crush\n \n \n Crush steps\n Passaggi Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Non \xe8 possibile utilizzare la regola nel cluster attuale perch\xe9 il numero degli\n OSD che contiene \xe8 troppo basso e non soddisfa il numero minimo di OSD richiesto da questa regola.\n \n \n Replicated size\n Dimensioni replicate\n \n \n Minimum: \n \n \n Minime: \n \n \n \n \n Maximum: \n \n \n Massime: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Le dimensioni specificate non sono comprese nell\'intervallo. L\'intervallo valido \xe8 da\n a\n .\n \n \n \n Erasure code profile\n Profilo del codice di cancellazione\n \n \n -- No erasure code profile available --\n -- Nessun profilo del codice di cancellazione disponibile --\n \n \n -- Select an erasure code profile --\n -- Selezionare un profilo del codice di cancellazione --\n \n \n EC Overwrites\n Sovrascritture EC\n \n \n Applications\n Applicazioni\n \n \n Compression\n Compressione\n \n \n Algorithm\n Algoritmo\n \n \n -- No erasure compression algorithm available --\n -- Nessun algoritmo di compressione della cancellazione disponibile --\n \n \n Minimum blob size\n Dimensioni minime del blob\n \n \n e.g., 128KiB\n ad es. 128 KiB\n \n \n Value should be greater than 0\n Il valore deve essere maggiore di 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Dimensioni massime del blob\n \n \n e.g., 512KiB\n ad es. 512 KiB\n \n \n Value should be greater than the minimum blob size\n Il valore deve essere maggiore delle dimensioni minime del blob\n \n \n Ratio\n Rapporto\n \n \n Compression ratio\n Rapporto di compressione\n \n \n Value should be between 0.0 and 1.0\n Il valore deve essere compreso tra 0,0 e 1,0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Non \xe8 possibile creare un pool RBD con una \'/\' nel nome.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Modificare il nome o rimuovere \'rbd\' dall\'elenco delle applicazioni.\n \n \n Cache Tiers Details\n Dettagli livelli cache\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Consultare la \n documentazione\n \n su come configurare e abilitare la funzionalit\xe0 di gestione di Object Gateway.\n \n \n \n Daemons List\n Elenco dei daemon\n \n \n Performance Counters\n Contatori delle prestazioni\n \n \n Loading bucket data...\n Caricamento dati compartimento in corso...\n \n \n The bucket data could not be loaded.\n Impossibile caricare i dati del compartimento.\n \n \n Id\n ID\n \n \n The value is not valid.\n Il valore non \xe8 valido.\n \n \n Owner\n Proprietario\n \n \n -- Select a user --\n -- Selezionare un utente --\n \n \n ID\n ID\n \n \n Index type\n Tipo di indice\n \n \n Placement rule\n Regola di posizionamento\n \n \n Marker\n Contrassegno\n \n \n Maximum marker\n Contrassegno massimo\n \n \n Version\n Versione\n \n \n Master version\n Versione master\n \n \n Modification time\n Ora di modifica\n \n \n Zonegroup\n Gruppo di zone\n \n \n Bucket quota\n Quota compartimenti\n \n \n Enabled\n Abilitato\n \n \n Maximum size\n Dimensioni massime\n \n \n Unlimited\n Illimitato\n \n \n Maximum objects\n Numero massimo di oggetti\n \n \n -- Select a username --\n -- Selezionare un nome utente --\n \n \n Auto-generate key\n Generazione automatica chiave\n \n \n Access key\n Chiave di accesso\n \n \n Secret key\n Chiave segreta\n \n \n Email address\n Indirizzo e-mail\n \n \n Suspended\n Sospeso\n \n \n System\n Sistema\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n \n \n Maximum buckets\n Numero massimo di compartimenti\n \n \n Subusers\n Sottoutenti\n \n \n Capabilities\n Capacit\xe0\n \n \n User quota\n Quota utenti\n \n \n Show\n Mostra\n \n \n Keys\n Chiavi\n \n \n -- Select a type --\n -- Selezionare un tipo --\n \n \n Permission\n Autorizzazione\n \n \n -- Select a permission --\n -- Selezionare un\'autorizzazione --\n \n \n Subuser\n Sottoutente\n \n \n The chosen subuser ID is already in use.\n L\'ID del sottoutente scelto \xe8 gi\xe0 in uso.\n \n \n read, write\n lettura, scrittura\n \n \n full\n pieno\n \n \n Swift key\n Chiave Swift\n \n \n Auto-generate secret\n Generazione automatica segreto\n \n \n Loading user data...\n Caricamento dati utente in corso...\n \n \n The user data could not be loaded.\n Impossibile caricare i dati utente.\n \n \n The chosen user ID is already in use.\n L\'ID utente scelto \xe8 gi\xe0 in uso.\n \n \n This is not a valid email address.\n Non \xe8 un indirizzo e-mail valido.\n \n \n The chosen email address is already in use.\n L\'indirizzo e-mail scelto \xe8 gi\xe0 in uso.\n \n \n Max. buckets\n Numero max. di compartimenti\n \n \n The entered value must be >= 0.\n Il valore immesso deve essere >= a 0.\n \n \n S3 key\n Chiave S3\n \n \n There are no subusers.\n Non esistono sottoutenti.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Non esistono chiavi.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Non esistono capacit\xe0.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Dimensioni illimitate\n \n \n Max. size\n Dimensione max.\n \n \n Unlimited objects\n Oggetti illimitati\n \n \n Max. objects\n Numero max. di oggetti\n \n \n Current\n Attuale\n \n \n Updated discovery authentication\n Autenticazione rilevazione aggiornata\n \n \n There are no portals available.\n Non sono disponibili pool.\n \n \n There are no images available.\n Non sono disponibili immagini.\n \n \n There are no images available. Please make sure you add an image to the target.\n Non sono disponibili immagini. Assicurarsi di aggiungere un\'immagine alla destinazione.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Non sono disponibili iniziatori. Assicurarsi di aggiungere un iniziatore alla destinazione.\n \n \n target\n target\n \n \n Target\n Destinazione\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Stato\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Byte letti\n \n \n Write Bytes\n Byte scritti\n \n \n Read Ops\n Operazioni di lettura\n \n \n Write Ops\n Operazioni di scrittura\n \n \n A/O Since\n A/O da\n \n \n Instance\n Istanza\n \n \n Hostname\n Nome host\n \n \n Issue\n Problema\n \n \n Progress\n Avanzamento\n \n \n Disabled\n Disabilitato\n \n \n Edit Mode\n Modalit\xe0 di modifica\n \n \n Add Peer\n Aggiungi peer\n \n \n Edit Peer\n Modifica peer\n \n \n Delete Peer\n Elimina peer\n \n \n Leader\n Sequenza iniziale\n \n \n # Local\n # Locale\n \n \n # Remote\n # Remoto\n \n \n mirror peer\n peer copia speculare\n \n \n Key\n Chiave\n \n \n RBD\n RBD\n \n \n Deep flatten\n Appiattimento profondo\n \n \n Layering\n Su strati\n \n \n Exclusive lock\n Blocco esclusivo\n \n \n Object map (requires exclusive-lock)\n Mappa oggetti (richiede il blocco escluso)\n \n \n Journaling (requires exclusive-lock)\n Journaling (richiede il blocco esclusivo)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Rollback snapshot RBD\n \n \n Rollback\n Esegui rollback\n \n \n RBD snapshot\n Snapshot RBD\n \n \n Deleted At\n Eliminato alle\n \n \n id\n ID\n \n \n type\n tipo\n \n \n state\n stato\n \n \n version\n versione\n \n \n Host\n Host\n \n \n root\n root\n \n \n Rank\n Classificazione\n \n \n Daemon\n Daemon\n \n \n Activity\n Task\n \n \n Dentries\n Dentry\n \n \n Inodes\n Inode\n \n \n Usage\n Utilizzo\n \n \n Standby daemons\n Daemon in standby\n \n \n The value can be updated at runtime.\n \xc8 possibile aggiornare il valore al runtime.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n I daemon/client non estraggono questo valore dal\n database della configurazione di monitoraggio. Non \xe8 consentito impostare questa opzione tramite \'ceph config\n set ...\'. \xc8 necessario configurare questa opzione tramite ceph.conf o dalla\n riga di comando.\n \n \n Option takes effect only during daemon startup.\n L\'opzione diventa attiva solo all\'avvio del daemon.\n \n \n Option only affects cluster creation.\n L\'opzione interessa solo la creazione del cluster.\n \n \n Option only affects daemon creation.\n L\'opzione interessa solo la creazione del daemon.\n \n \n Updated config option \n \n \n Aggiornata opzione di configurazione \n \n \n \n \n Service\n Servizio\n \n \n Current value\n Valore attuale\n \n \n Editable\n Modificabile\n \n \n Updated options for module "\n ".\n \n Opzioni aggiornate per il modulo &quot;\n &quot;.\n \n \n \n Enable\n Abilita\n \n \n Disable\n Disabilita\n \n \n Reconnecting, please wait ...\n Riconnessione in corso. Attendere.\n \n \n Public Address\n Indirizzo pubblico\n \n \n Open Sessions\n Sessioni aperte\n \n \n No In\n Nessuno in entrata\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Gli OSD che sono stati contrassegnati come disattivi in precedenza non verranno contrassegnati nuovamente come attivi all\'avvio\n \n \n No Out\n Nessuno in uscita\n \n \n OSDs will not automatically be marked out after the configured interval\n Gli OSD non verranno disattivati automaticamente dopo l\'intervallo configurato\n \n \n No Up\n Nessuno attivo\n \n \n OSDs are not allowed to start\n Non \xe8 consentito l\'avvio degli OSD\n \n \n No Down\n Nessuno disattivo\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n I rapporti di errore degli OSD vengono ignorati in modo che i monitor non disattivino gli OSD\n \n \n Pause\n Sospendi\n \n \n Pauses reads and writes\n Sospende le operazioni di lettura e scrittura\n \n \n No Scrub\n Nessuna pulitura\n \n \n Scrubbing is disabled\n Pulitura disabilitata\n \n \n No Deep Scrub\n Nessun pulitura approfondita\n \n \n Deep Scrubbing is disabled\n Pulitura approfondita disabilitata\n \n \n No Backfill\n Nessuna operazione di recupero\n \n \n Backfilling of PGs is suspended\n Recupero dei gruppi di posizionamento sospeso\n \n \n No Recover\n Nessun recupero\n \n \n Recovery of PGs is suspended\n Recupero dei gruppi di posizionamento sospeso\n \n \n Bitwise Sort\n Ordinamento bitwise\n \n \n Use bitwise sort\n Usa ordinamento bitwise\n \n \n Purged Snapdirs\n Snapdir eliminate definitivamente\n \n \n OSDs have converted snapsets\n Gli OSD contengono set di snap convertiti\n \n \n Recovery Deletes\n Eliminazioni recuperi\n \n \n Deletes performed during recovery instead of peering\n Eliminazioni eseguite durante il recupero invece del peering\n \n \n PG Log Hard Limit\n Limite rigido log gruppo di posizionamento\n \n \n Puts a hard limit on pg log length\n Inserisce un limite rigido alla lunghezza del log del gruppo di posizionamento\n \n \n Updated OSD Flags\n Flag OSD aggiornati\n \n \n out\n esterno\n \n \n in\n interno\n \n \n down\n in basso\n \n \n Mark\n Contrassegna\n \n \n OSD lost\n OSD perso\n \n \n marked lost\n contrassegnato come perso\n \n \n Purge\n Elimina definitivamente\n \n \n OSD\n OSD\n \n \n purged\n eliminato definitivamente\n \n \n destroy\n elimina definitivamente\n \n \n destroyed\n eliminato definitivamente\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Gruppi di posizionamento\n \n \n Read bytes\n Byte letti\n \n \n Writes bytes\n Byte scritti\n \n \n Read ops\n Operazioni di lettura\n \n \n Write ops\n Operazioni di scrittura\n \n \n Mark OSD \n \n \n Contrassegna OSD \n \n \n \n \n Mark \n \n \n Contrassegna \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Numero max di recuperi informazioni\n \n \n Recovery Max Active\n Numero max di recuperi attivi\n \n \n Recovery Max Single Start\n Avvio singolo numero max di recuperi\n \n \n Recovery Sleep\n Sospensione recupero\n \n \n Custom\n Personalizzato\n \n \n Updated OSD recovery speed priority "\n "\n \n Aggiornata la priorit\xe0 della velocit\xe0 di recupero dell\'OSD &quot;\n &quot;\n \n \n \n \n was initialized in the following OSD: \n \n \n \n \xe8 stato inizializzato dall\'OSD seguente: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Lavoro\n \n \n Severity\n Gravit\xe0\n \n \n Started\n Avviato\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Aggiornato\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Utilizzato\n \n \n Avail.\n Dispon.\n \n \n Clean\n Pulisci\n \n \n Working\n In funzione\n \n \n Warning\n Avviso\n \n \n Unknown\n Sconosciuto\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n su\n \n \n no filesystems\n nessun file system\n \n \n active\n attivo\n \n \n standby\n standby\n \n \n n/a\n n/d\n \n \n active daemon\n daemon attivo\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n Il servizio NFS Ganesha non \xe8 configurato.\n \n \n Transport\n Trasporto\n \n \n CephFS User\n Utente CephFS\n \n \n CephFS Filesystem\n File system CephFS\n \n \n (inherited from global config)\n (ereditato dalla configurazione globale)\n \n \n inherited from global config\n importato dalla configurazione globale\n \n \n -- Select what kind of user id squashing is performed --\n -- Selezionare il tipo di squash dell\'ID utente che viene eseguito --\n \n \n There are no daemons available.\n Non vi sono daemon disponibili.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Modalit\xe0 cache\n \n \n Min Evict Age\n Numero minimo di giorni per la rimozione\n \n \n Min Flush Age\n Numero minimo di giorni per la cancellazione\n \n \n Target Max Bytes\n Numero max di byte di destinazione\n \n \n Target Max Objects\n Numero max di oggetti di destinazione\n \n \n No applications added\n Non sono state aggiunte applicazioni.\n \n \n Applications limit reached\n Raggiunto il limite di applicazioni\n \n \n A pool can only have up to four applications definitions.\n Un pool pu\xf2 contenere solo fino a quattro definizioni delle applicazioni.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caratteri consentiti \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n La lunghezza massima \xe8 di 128 caratteri\n \n \n Filter or add applications\n Filtra o aggiungi applicazioni\n \n \n Add application\n Aggiungi applicazione\n \n \n pool\n pool\n \n \n erasure code profile\n profilo del codice di cancellazione\n \n \n Replica Size\n Dimensioni della replica\n \n \n Last Change\n Ultima modifica\n \n \n Erasure Coded Profile\n Profilo con codice di cancellazione\n \n \n Crush Ruleset\n Set di regole Crush\n \n \n Write bytes\n Byte scritti\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n compartimento\n \n \n Updated Object Gateway bucket "\n "\n \n Aggiornato compartimento Object Gateway &quot;\n &quot;\n \n \n \n Created Object Gateway bucket "\n "\n \n Creato compartimento Object Gateway &quot;\n &quot;\n \n \n \n buckets\n compartimenti\n \n \n capability\n capability\n \n \n user\n utente\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Aggiornato utente Object Gateway &quot;\n &quot;\n \n \n \n Created Object Gateway user "\n "\n \n Creato utente Object Gateway &quot;\n &quot;\n \n \n \n users\n utenti\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Ambito\n \n \n Read\n Lettura\n \n \n Create\n Crea\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Creato ruolo \'\n \'\n \n \n \n Updated role \'\n \'\n \n Aggiornato ruolo \'\n \'\n \n \n \n System Role\n Ruolo di sistema\n \n \n Deleted role \'\n \'\n \n Eliminato ruolo \'\n \'\n \n \n \n Created user "\n "\n \n Creato utente &quot;\n &quot;\n \n \n \n Update user\n Aggiorna utente\n \n \n Continue\n Continua\n \n \n You were automatically logged out because your roles have been changed.\n Si \xe8 stati automaticamente disconnessi perch\xe9 i ruoli sono stati modificati.\n \n \n Updated user "\n "\n \n Aggiornato utente &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Eliminato utente &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Impossibile eliminare l\'utente &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Si \xe8 attualmente connessi come &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Ogni oggetto \xe8 suddiviso in porzioni di dati, ciascuna delle quali \xe8 memorizzata su un diverso OSD.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calcola le porzioni di codice relative a ciascun oggetto e le memorizza su diversi OSD.\n Il numero di porzioni di codice \xe8 anche il numero degli OSD che \xe8 possibile disattivare senza perdere i dati.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Il plugin jerasure \xe8 il plugin pi\xf9 generico e flessibile,\n ed \xe8 anche il plugin di default dei pool con codice di cancellazione di Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n La tecnica pi\xf9 flessibile \xe8 reed_sol_van: \xe8 sufficiente impostare k\n ed m. La tecnica cauchy_good pu\xf2 essere pi\xf9 rapida ma occorre selezionare attentamente la dimensione del\n pacchetto. reed_sol_r6_op, liberation, blaum_roth, liber8tion sono tutti equivalenti a RAID6,\n nel senso che \xe8 possibile configurarli solo con m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n La codifica viene eseguita su pacchetti di dimensioni in byte, uno alla volta.\n \xc8 difficile scegliere la dimensione del pacchetto corretta.\n La documentazione su jerasure fornisce informazioni esaustive su questo argomento.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Con il plugin di jerasure, quando un oggetto con codice di cancellazione viene memorizzato su\n pi\xf9 OSD, il recupero della perdita di un OSD richiede la lettura di tutti gli altri.\n Ad esempio, se jerasure \xe8 configurato con k=8 e m=4, la perdita di un OSD richiede la lettura\n degli altri undici per il ripristino.\n\n Il plugin del codice di cancellazione lrc crea porzioni di parit\xe0 locali che \xe8 possibile recuperare utilizzando un\n minor numero di OSD. Ad esempio, se lrc \xe8 configurato con k=8, m=4 e l=4, crea\n una porzione di parit\xe0 aggiuntiva ogni quattro OSD. Quando si perde un singolo OSD, \xe8 possibile\n recuperarlo solo con quattro OSD invece che con undici.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Raggruppa le porzioni di codice e dati in set di localit\xe0 dimensione. Ad esempio,\n per k=4 e m=2, se localit\xe0=3 vengono creati due gruppi su tre. \xc8 possibile recuperare ciascun set\n senza leggere le porzioni di un altro set.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Il tipo di compartimento Crush in cui viene memorizzato ciascun set di porzioni definito\n dall\'utente. Ad esempio, se \xe8 impostato su rack, ciascun gruppo di porzioni viene\n posizionato in un diverso rack. Viene utilizzato per creare un passaggio della regola CRUSH come il passaggio choose\n rack. Se non \xe8 impostato, il raggruppamento non viene eseguito.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Il plugin ISA incapsula la libreria ISA. Viene eseguito solo su processori Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Il plugin ISA \xe8 disponibile in due formati Reed Solomon.\n Se \xe8 impostato reed_sol_van, il formato \xe8 Vandermonde, se \xe8 impostato cauchy, il formato \xe8 Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Il plugin shec incapsula la libreria SHEC multipla.\n Consente a Ceph di recuperare i dati in modo pi\xf9 efficiente rispetto ai codici Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Il numero di compartimenti di parit\xe0, ciascuno dei quali include i singoli compartimenti di dati\n nell\'intervallo di calcolo. Il numero viene utilizzato come strumento di stima della durabilit\xe0. Ad esempio, se c=2,\n \xe8 possibile disattivare 2 OSD senza perdere i dati.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Il nome del compartimento Crush utilizzato per il primo passaggio della regola CRUSH.\n Ad esempio il passaggio take default.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Assicurarsi che non esistano due porzioni in un compartimento con lo stesso dominio\n di errore. Ad esempio, se il dominio di errore \xe8 l\'host, non verranno memorizzate due porzioni sullo stesso\n host. Viene utilizzato per creare un passaggio della regola CRUSH come passaggio chooseleaf host.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Limitare il posizionamento ai dispositivi di una classe specifica\n (ad es. ssd o hdd) usando i nomi delle classi di dispositivi Crush nella mappa CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Impostare il nome della directory da cui viene caricato il plugin del codice di cancellazione.\n \n \n Allows all operations\n Consente tutte le operazioni\n \n \n Allows only operations that do not modify the server\n Consente solo le operazioni che non modificano il server\n \n \n Does not allow read or write operations, but allows any other operation\n Non consente operazioni di lettura o scrittura, ma consente qualsiasi altra operazione\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Non consente operazioni di lettura o scrittura o qualsiasi operazione che modifichi gli attributi dei file o il contenuto della directory\n \n \n Allows no access at all\n Non consente alcun accesso\n \n \n -- Select the priority --\n -- Selezionare la priorit\xe0 --\n \n \n Low\n Bassa\n \n \n High\n Alta\n \n \n Last 5 minutes\n Ultimi 5 minuti\n \n \n Last 15 minutes\n Ultimi 15 minuti\n \n \n Last 30 minutes\n Ultimi 30 minuti\n \n \n Last 1 hour (Default)\n Ultima ora (Default)\n \n \n Last 3 hours\n Ultime 3 ore\n \n \n Last 6 hours\n Ultime 6 ore\n \n \n Last 12 hours\n Ultime 12 ore\n \n \n Last 24 hours\n Ultime 24 ore\n \n \n Yesterday\n Ieri\n \n \n Today\n Oggi\n \n \n Today so far\n Fino a oggi\n \n \n Day before yesterday\n Giorno prima di ieri\n \n \n Last 2 days\n Ultimi 2 giorni\n \n \n This day last week\n Questo giorno della scorsa settimana\n \n \n Previous week\n Settimana precedente\n \n \n This week\n Questa settimana\n \n \n This week so far\n Fino a questa settimana\n \n \n Last 7 days\n Ultimi 7 giorni\n \n \n Previous month\n Mese precedente\n \n \n This month\n Questo mese\n \n \n This month so far\n Fino a questo mese\n \n \n Last 30 days\n Ultimi 30 giorni\n \n \n Last 90 days\n Ultimi 90 giorni\n \n \n Last 6 months\n Ultimi 6 mesi\n \n \n Last 1 year\n Ultimo anno\n \n \n Previous year\n Anno precedente\n \n \n This year\n Quest\'anno\n \n \n This year so far\n Fino a quest\'anno\n \n \n Last 2 years\n Ultimi 2 anni\n \n \n Last 5 years\n Ultimi 5 anni\n \n \n Information\n Informazioni\n \n \n No items selected.\n Nessun elemento selezionato.\n \n \n Deselect item to select again\n Deselezionare l\'elemento per selezionare di nuovo\n \n \n Selection limit reached\n Raggiunto il limite per la selezione\n \n \n Filter tags\n Filtra tag\n \n \n Add badge\n Aggiungi badge\n \n \n There are no items available.\n Non vi sono elementi disponibili.\n \n \n Add\n Aggiungi\n \n \n Remove\n Remove\n \n \n Clone\n Clona\n \n \n Copy\n Copia\n \n \n Deep Scrub\n Pulitura approfondita\n \n \n Destroy\n Eliminazione definitiva\n \n \n Flatten\n Appiattisci\n \n \n Mark Down\n Declassa\n \n \n Mark In\n Attiva\n \n \n Mark Lost\n Contrassegna come perso\n \n \n Mark Out\n Disattiva\n \n \n Protect\n Proteggi\n \n \n Rename\n Rinomina\n \n \n Restore\n Ripristina\n \n \n Move to Trash\n Sposta nel cestino\n \n \n Unprotect\n Rimuovi protezione\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Eliminato\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clonato\n \n \n Copied\n Copiato\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n S\xec\n \n \n No\n No\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Qualit\xe0 di servizio\n \n \n BPS Limit\n Limite di BPS\n \n \n The desired limit of IO bytes per second.\n Il limite desiderato di byte I/O al secondo.\n \n \n IOPS Limit\n Limite di IOPS\n \n \n The desired limit of IO operations per second.\n Il limite desiderato di operazioni I/O al secondo.\n \n \n Read BPS Limit\n Limite BPS in lettura\n \n \n The desired limit of read bytes per second.\n Il limite desiderato dei byte letti al secondo.\n \n \n Read IOPS Limit\n Limite di IOPS in lettura\n \n \n The desired limit of read operations per second.\n Il limite desiderato di operazioni di lettura al secondo.\n \n \n Write BPS Limit\n Limite di BPS in scrittura\n \n \n The desired limit of write bytes per second.\n Il limite desiderato di byte scritti al secondo.\n \n \n Write IOPS Limit\n Limite di IOPS in scrittura\n \n \n The desired limit of write operations per second.\n Il limite desiderato di operazioni di scrittura al secondo.\n \n \n BPS Burst\n Burst BPS\n \n \n The desired burst limit of IO bytes.\n Il limite di burst desiderato dei byte di I/O.\n \n \n IOPS Burst\n Burst IOPS\n \n \n The desired burst limit of IO operations.\n Il limite di burst desiderato delle operazioni di I/O.\n \n \n Read BPS Burst\n Burst BPS in lettura\n \n \n The desired burst limit of read bytes.\n Il limite di burst desiderato dei byte letti.\n \n \n Read IOPS Burst\n Burst IOPS in lettura\n \n \n The desired burst limit of read operations.\n Il limite di burst desiderato delle operazioni di lettura.\n \n \n Write BPS Burst\n Burst BPS in scrittura\n \n \n The desired burst limit of write bytes.\n Il limite di burst desiderato dei byte scritti.\n \n \n Write IOPS Burst\n Burst di IOPS in scrittura\n \n \n The desired burst limit of write operations.\n Il limite di burst desiderato delle operazioni di scrittura.\n \n \n Failed to \n \n \n \n Non \xe8 stato possibile \n \n \n \n \n \n Executing\n In esecuzione\n \n \n execute\n esegui\n \n \n Executed\n Eseguito\n \n \n unknown task\n task sconosciuto\n \n \n Creating\n Creazione in corso\n \n \n create\n crea\n \n \n Updating\n Aggiornamento in corso\n \n \n update\n aggiorna\n \n \n Deleting\n Eliminazione in corso\n \n \n delete\n elimina\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Snapshot RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n modalit\xe0 speculare per il pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n peer della copia speculare per il pool \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n \n contains snapshots.\n \n \n contiene snapshot.\n \n \n \n Cloning\n Clonazione in corso\n \n \n clone\n clona\n \n \n Snapshot of \n must be protected.\n \n La snapshot di \n deve essere protetta.\n \n \n \n Copying\n Copia in corso\n \n \n copy\n copia\n \n \n Flattening\n Appiattimento\n \n \n flatten\n appiattisci\n \n \n Flattened\n Appiattito\n \n \n Name is already used by \n .\n \n Il nome \xe8 gi\xe0 utilizzato da \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Impossibile rimuovere la protezione da \n perch\xe9 contiene immagini figlio.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Impossibile eliminare \n perch\xe9 \xe8 protetto.\n \n \n \n Rolling back\n Rollback in corso\n \n \n rollback\n rollback\n \n \n Rolled back\n Rollback eseguito\n \n \n Moving\n Spostamento in corso\n \n \n move\n sposta\n \n \n Moved\n Spostato\n \n \n image \'\n \' to trash\n \n immagine \'\n \' nel cestino\n \n \n \n Could not find image.\n Impossibile trovare l\'immagine.\n \n \n Restoring\n Ripristino in corso\n \n \n restore\n ripristina\n \n \n Restored\n Ripristinato\n \n \n image \'\n \' into \'\n \'\n \n immagine \'\n \' in \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Il nome dell\'immagine \'\n \' \xe8 gi\xe0 in uso.\n \n \n \n image \'\n \'\n \n immagine \'\n \'\n \n \n \n Purging\n Eliminazione in corso\n \n \n purge\n elimina definitivamente\n \n \n Purged\n Eliminato definitivamente\n \n \n all pools\n tutti i pool\n \n \n images from \n \n \n Immagini da \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Impossibile disabilitare l\'esecuzione della copia speculare perch\xe9 contiene un peer.\n \n \n pool \'\n \'\n \n pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n profilo del codice di cancellazione \'\n \'\n \n \n \n target \'\n \'\n \n destinazione \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},hKrs:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-\u0435\u0432":0===n?t+"-\u0435\u043d":n>10&&n<20?t+"-\u0442\u0438":1===e?t+"-\u0432\u0438":2===e?t+"-\u0440\u0438":7===e||8===e?t+"-\u043c\u0438":t+"-\u0442\u0438"},week:{dow:1,doy:7}})}()},honF:function(t,e,n){!function(t){"use strict";var e={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},n={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};t.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(t){return t.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})}(n("wd/R"))},i3PA:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("jvuA")),a(n("UReH"))},i4X3:function(t,e,n){"use strict";var a=n("6blF"),r=n("pugT"),i=n("xTla"),s=n("JF+6"),o=n("En8+"),u=n("/WYv"),c=n("2ePl");function l(t,e){if(null!=t){if(function(t){return t&&"function"==typeof t[i.a]}(t))return function(t,e){return new a.a(function(n){var a=new r.a;return a.add(e.schedule(function(){var r=t[i.a]();a.add(r.subscribe({next:function(t){a.add(e.schedule(function(){return n.next(t)}))},error:function(t){a.add(e.schedule(function(){return n.error(t)}))},complete:function(){a.add(e.schedule(function(){return n.complete()}))}}))})),a})}(t,e);if(Object(u.a)(t))return function(t,e){return new a.a(function(n){var a=new r.a;return a.add(e.schedule(function(){return t.then(function(t){a.add(e.schedule(function(){n.next(t),a.add(e.schedule(function(){return n.complete()}))}))},function(t){a.add(e.schedule(function(){return n.error(t)}))})})),a})}(t,e);if(Object(c.a)(t))return Object(s.a)(t,e);if(function(t){return t&&"function"==typeof t[o.a]}(t)||"string"==typeof t)return function(t,e){if(!t)throw new Error("Iterable cannot be null");return new a.a(function(n){var a,i=new r.a;return i.add(function(){a&&"function"==typeof a.return&&a.return()}),i.add(e.schedule(function(){a=t[o.a](),i.add(e.schedule(function(){if(!n.closed){var t,e;try{var r=a.next();t=r.value,e=r.done}catch(i){return void n.error(i)}e?n.complete():(n.next(t),this.schedule())}}))})),i})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}n.d(e,"a",function(){return l})},iEDd:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}()},iExv:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t,e,n){return void 0===e&&(e=this.i18n("Yes")),void 0===n&&(n=this.i18n("No")),Boolean(t)?e:n},t}()},iLxQ:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=!1,r={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){a=t},get useDeprecatedSynchronousErrorHandling(){return a}}},iM7B:function(t,e,n){"use strict";var a=n("RDha"),r=n("Hg4g"),i=n("q8Fl");t.exports=a.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},i._enabled?i:r)},iYGd:function(t,e,n){"use strict";t.exports=function(t){t.Radar=function(e,n){return n.type="radar",new t(e,n)}}},iYuL:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(n("wd/R"))},ihYY:function(t,e,n){"use strict";n.d(e,"b",function(){return a}),n.d(e,"c",function(){return r}),n.d(e,"a",function(){return i}),n.d(e,"e",function(){return o}),n.d(e,"f",function(){return u}),n.d(e,"g",function(){return l}),n.d(e,"h",function(){return c}),n.d(e,"i",function(){return d}),n.d(e,"j",function(){return s}),n.d(e,"d",function(){return p}),n.d(e,"l",function(){return g}),n.d(e,"k",function(){return h});var a=function(){return function(){}}(),r=function(){return function(){}}(),i="*";function s(t,e){return{type:7,name:t,definitions:e,options:{}}}function o(t,e){return void 0===e&&(e=null),{type:4,styles:e,timings:t}}function u(t,e){return void 0===e&&(e=null),{type:2,steps:t,options:e}}function c(t){return{type:6,styles:t,offset:null}}function l(t,e,n){return{type:0,name:t,styles:e,options:n}}function d(t,e,n){return void 0===n&&(n=null),{type:1,expr:t,animation:e,options:n}}function f(t){Promise.resolve(null).then(t)}var p=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=t+e}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.hasStarted=function(){return this._started},t.prototype.init=function(){},t.prototype.play=function(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0},t.prototype.triggerMicrotask=function(){var t=this;f(function(){return t._onFinish()})},t.prototype._onStart=function(){this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]},t.prototype.pause=function(){},t.prototype.restart=function(){},t.prototype.finish=function(){this._onFinish()},t.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.reset=function(){},t.prototype.setPosition=function(t){},t.prototype.getPosition=function(){return 0},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),h=function(){function t(t){var e=this;this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;var n=0,a=0,r=0,i=this.players.length;0==i?f(function(){return e._onFinish()}):this.players.forEach(function(t){t.onDone(function(){++n==i&&e._onFinish()}),t.onDestroy(function(){++a==i&&e._onDestroy()}),t.onStart(function(){++r==i&&e._onStart()})}),this.totalTime=this.players.reduce(function(t,e){return Math.max(t,e.totalTime)},0)}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.init=function(){this.players.forEach(function(t){return t.init()})},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype._onStart=function(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[])},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.hasStarted=function(){return this._started},t.prototype.play=function(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(function(t){return t.play()})},t.prototype.pause=function(){this.players.forEach(function(t){return t.pause()})},t.prototype.restart=function(){this.players.forEach(function(t){return t.restart()})},t.prototype.finish=function(){this._onFinish(),this.players.forEach(function(t){return t.finish()})},t.prototype.destroy=function(){this._onDestroy()},t.prototype._onDestroy=function(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(function(t){return t.destroy()}),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.reset=function(){this.players.forEach(function(t){return t.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},t.prototype.setPosition=function(t){var e=t*this.totalTime;this.players.forEach(function(t){var n=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(n)})},t.prototype.getPosition=function(){var t=0;return this.players.forEach(function(e){var n=e.getPosition();t=Math.min(n,t)}),t},t.prototype.beforeDestroy=function(){this.players.forEach(function(t){t.beforeDestroy&&t.beforeDestroy()})},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),g="!"},insk:function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("+0ag"),n("mSOc"),n("20UP");var a=function(){function t(t,e,n,a,r){this.summaryService=t,this.sanitizer=e,this.settingsService=n,this.cephReleaseNamePipe=a,this.i18n=r,this.grafanaExist=!1,this.mode="&kiosk",this.loading=!0,this.styles={},this.dashboardExist=!0,this.DEFAULT_TIME="from=now-1h&to=now",this.grafanaTimes=[{name:this.i18n("Last 5 minutes"),value:"from=now-5m&to=now"},{name:this.i18n("Last 15 minutes"),value:"from=now-15m&to=now"},{name:this.i18n("Last 30 minutes"),value:"from=now-30m&to=now"},{name:this.i18n("Last 1 hour (Default)"),value:"from=now-1h&to=now"},{name:this.i18n("Last 3 hours"),value:"from=now-3h&to=now"},{name:this.i18n("Last 6 hours"),value:"from=now-6h&to=now"},{name:this.i18n("Last 12 hours"),value:"from=now-12h&to=now"},{name:this.i18n("Last 24 hours"),value:"from=now-24h&to=now"},{name:this.i18n("Yesterday"),value:"from=now-1d%2Fd&to=now-1d%2Fd"},{name:this.i18n("Today so far"),value:"from=now%2Fd&to=now"},{name:this.i18n("Day before yesterday"),value:"from=now-2d%2Fd&to=now-2d%2Fd"},{name:this.i18n("Last 2 days"),value:"from=now-2d&to=now"},{name:this.i18n("This day last week"),value:"from=now-7d%2Fd&to=now-7d%2Fd"},{name:this.i18n("Previous week"),value:"from=now-1w%2Fw&to=now-1w%2Fw"},{name:this.i18n("This week so far"),value:"from=now%2Fw&to=now"},{name:this.i18n("Last 7 days"),value:"from=now-7d&to=now"},{name:this.i18n("Previous month"),value:"from=now-1M%2FM&to=now-1M%2FM"},{name:this.i18n("This month so far"),value:"from=now%2FM&to=now"},{name:this.i18n("Last 30 days"),value:"from=now-30d&to=now"},{name:this.i18n("Last 90 days"),value:"from=now-90d&to=now"},{name:this.i18n("Last 6 months"),value:"from=now-6M&to=now"},{name:this.i18n("Last 1 year"),value:"from=now-1y&to=now"},{name:this.i18n("Previous year"),value:"from=now-1y%2Fy&to=now-1y%2Fy"},{name:this.i18n("This year so far"),value:"from=now%2Fy&to=now"},{name:this.i18n("Last 2 years"),value:"from=now-2y&to=now"},{name:this.i18n("Last 5 years"),value:"from=now-5y&to=now"}]}return t.prototype.ngOnInit=function(){var t=this;this.time=this.DEFAULT_TIME,this.styles={one:"grafana_one",two:"grafana_two",three:"grafana_three"};var e=this.summaryService.subscribe(function(n){if(n){var a=t.cephReleaseNamePipe.transform(n.version);t.docsUrl="http://docs.ceph.com/docs/"+a+"/mgr/dashboard/#enabling-the-embedding-of-grafana-dashboards",setTimeout(function(){e.unsubscribe()},0)}});this.settingsService.ifSettingConfigured("api/grafana/url",function(e){t.grafanaExist=!0,t.loading=!1,t.baseUrl=e+"/d/",t.getFrame()}),this.panelStyle=this.styles[this.grafanaStyle]},t.prototype.getFrame=function(){var t=this;this.settingsService.validateGrafanaDashboardUrl(this.uid).subscribe(function(e){return t.dashboardExist=200===e}),this.url=this.baseUrl+this.uid+"/"+this.grafanaPath+"&refresh=2s"+this.mode+"&"+this.time,this.grafanaSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.url)},t.prototype.onTimepickerChange=function(){this.grafanaExist&&this.getFrame()},t.prototype.reset=function(){this.time=this.DEFAULT_TIME,this.grafanaExist&&this.getFrame()},t.prototype.ngOnChanges=function(){this.grafanaExist&&this.getFrame()},t}()},isby:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=Array.isArray||function(t){return t&&"number"==typeof t.length}},iutN:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("CcnG"),r=n("xtZt"),i=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["\u0275vid"](2,[(t()(),a["\u0275eld"](0,0,null,null,1,"div",[],[[2,"dropup",null],[2,"dropdown",null],[2,"show",null],[2,"open",null]],null,null,null,null)),a["\u0275ncd"](null,0)],null,function(t,e){var n=e.component;t(e,0,0,"up"===n.direction,"down"===n.direction,n.isOpen,n.isOpen)})}function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-dropdown-container",[["style","display:block;position: absolute;"]],null,null,null,s,i)),a["\u0275did"](1,180224,null,0,r.b,[r.f,a.ChangeDetectorRef,a.Renderer2,a.ElementRef],null,null)],null,null)}var u=a["\u0275ccf"]("bs-dropdown-container",r.b,o,{},{},["*"])},j8L6:function(t,e,n){"use strict";var a=n("CcnG"),r=n("25BL"),i=n("uIqm"),s=n("xbqr"),o=n("9GXa"),u=n("o4+5"),c=n("aXbf"),l=n("Ip0R");n("b5OY"),n("pxLl"),n("Jm/i"),n.d(e,"a",function(){return d}),n.d(e,"b",function(){return g});var d=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275ted"](0,null,[" "," "," "])),a["\u0275ppd"](1,1)],null,function(t,e){var n=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent.parent,0),e.context.row.value));t(e,0,0,n,e.context.row.unit)})}function p(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.getCounters(n)&&a),a},r.b,r.a)),a["\u0275did"](1,2867200,null,0,i.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},{fetchData:"fetchData"}),(t()(),a["\u0275and"](0,[[1,2],["valueTpl",2]],null,0,null,f))],function(t,e){var n=e.component;t(e,1,0,n.counters,n.columns,"flex",!1)},null)}function h(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"cd-warning-panel",[],null,null,null,s.b,s.a)),a["\u0275did"](1,49152,null,0,o.a,[],null,null),(t()(),a["\u0275ted"](-1,0,["Performance counters not available"]))],null,null)}function g(t){return a["\u0275vid"](0,[a["\u0275pid"](0,u.a,[c.a]),a["\u0275qud"](671088640,1,{valueTpl:0}),(t()(),a["\u0275and"](16777216,null,null,1,null,p)),a["\u0275did"](3,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["\u0275and"](0,[["warning",2]],null,0,null,h))],function(t,e){t(e,3,0,e.component.counters,a["\u0275nov"](e,4))},null)}},jFaF:function(t,e,n){"use strict";function a(t,e){function n(){return!n.pred.apply(n.thisArg,arguments)}return n.pred=t,n.thisArg=e,n}n.d(e,"a",function(){return a})},"jKX/":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=function(){return function(t){void 0===t&&(t=[]);var e=this;["read","create","update","delete"].forEach(function(n){return e[n]=t.includes(n)})}}(),r=function(){return function(t){this.hosts=new a(t.hosts),this.configOpt=new a(t["config-opt"]),this.pool=new a(t.pool),this.osd=new a(t.osd),this.monitor=new a(t.monitor),this.rbdImage=new a(t["rbd-image"]),this.iscsi=new a(t.iscsi),this.rbdMirroring=new a(t["rbd-mirroring"]),this.rgw=new a(t.rgw),this.cephfs=new a(t.cephfs),this.manager=new a(t.manager),this.log=new a(t.log),this.user=new a(t.user),this.grafana=new a(t.grafana),this.prometheus=new a(t.prometheus),this.nfs=new a(t["nfs-ganesha"])}}()},jUeY:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(t,e){return t?"string"==typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(t,e,n){return t>11?n?"\u03bc\u03bc":"\u039c\u039c":n?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(t){return"\u03bc"===(t+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT";default:return"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,e){var n,a=this._calendarEl[t],r=e&&e.hours();return((n=a)instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(a=a.apply(e)),a.replace("{}",r%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}()},jVdC:function(t,e,n){!function(t){"use strict";var e="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function a(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function r(t,e,n){var r=t+" ";switch(n){case"ss":return r+(a(t)?"sekundy":"sekund");case"m":return e?"minuta":"minut\u0119";case"mm":return r+(a(t)?"minuty":"minut");case"h":return e?"godzina":"godzin\u0119";case"hh":return r+(a(t)?"godziny":"godzin");case"MM":return r+(a(t)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return r+(a(t)?"lata":"lat")}}t.defineLocale("pl",{months:function(t,a){return t?""===a?"("+n[t.month()]+"|"+e[t.month()]+")":/D MMMM/.test(a)?n[t.month()]:e[t.month()]:e},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:r,m:r,mm:r,h:r,hh:r,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:r,y:"rok",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},jXIB:function(t,e,n){"use strict";t.exports={},t.exports.filler=n("vpM6"),t.exports.legend=n("AX6q"),t.exports.title=n("mjYD")},jfSC:function(t,e,n){!function(t){"use strict";var e={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},n={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};t.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(t){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(t)},meridiem:function(t,e,n){return t<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/[\u06f0-\u06f9]/g,function(t){return n[t]}).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(n("wd/R"))},jnO4:function(t,e,n){!function(t){"use strict";var e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},n={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},i=function(t){return function(e,n,i,s){var o=a(e),u=r[t][a(e)];return 2===o&&(u=u[n?0:1]),u.replace(/%d/i,e)}},s=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];t.defineLocale("ar",{months:s,monthsShort:s,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,n){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(t){return t.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,function(t){return n[t]}).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(n("wd/R"))},jvuA:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("UReH");e.DatatableRowDetailDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandRow=function(t){this.toggle.emit({type:"row",value:t})},t.prototype.expandAllRows=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllRows=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(s.DatatableRowDetailTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-row-detail"})],t)}()},kEOa:function(t,e,n){!function(t){"use strict";var e={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},n={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};t.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(t){return t.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u09b0\u09be\u09a4"===e&&t>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===e&&t<5||"\u09ac\u09bf\u0995\u09be\u09b2"===e?t+12:t},meridiem:function(t,e,n){return t<4?"\u09b0\u09be\u09a4":t<10?"\u09b8\u0995\u09be\u09b2":t<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":t<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(n("wd/R"))},kJI8:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},kOpN:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e2d\u5348"===e?t>=11?t:t+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u9031";default:return t}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}()},kQXf:function(t,e,n){"use strict";function a(t){return"string"==typeof t?!/\S/.test(t):Array.isArray(t)?0===t.length:i(t)}function r(t,e){return!i(t)&&t.indexOf(e)>-1}function i(t){return null==t}Object.defineProperty(e,"__esModule",{value:!0}),e.isEmpty=a,e.trim=function(t){return i(t)?"":t.trim()},e.has=function(t,e){return t&&"object"==typeof t&&t.hasOwnProperty(e)},e.isFunction=function(t){return"function"==typeof t},e.get=function(t,e,n){for(var a=t,r=0,s=e.split(".");r20?e=40===t||50===t||60===t||80===t||100===t?"fed":"ain":t>0&&(e=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][t]),t+e},week:{dow:1,doy:4}})}()},lHUG:function(t,e,n){"use strict";function a(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function r(t){return"string"==typeof t}function i(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t){return t&&t.getTime&&!isNaN(t.getTime())}function o(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function u(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function c(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function l(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function d(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function f(t){return void 0===t}function p(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=a(e)),n}n.d(e,"a",function(){return sn}),n.d(e,"b",function(){return un}),n.d(e,"c",function(){return oe}),n.d(e,"d",function(){return At}),n.d(e,"e",function(){return pn}),n.d(e,"f",function(){return Ne}),n.d(e,"g",function(){return hn}),n.d(e,"h",function(){return j}),n.d(e,"i",function(){return Y}),n.d(e,"j",function(){return G}),n.d(e,"k",function(){return ue}),n.d(e,"l",function(){return z}),n.d(e,"m",function(){return gn}),n.d(e,"n",function(){return Fe}),n.d(e,"o",function(){return c}),n.d(e,"p",function(){return ze}),n.d(e,"q",function(){return i}),n.d(e,"r",function(){return s}),n.d(e,"s",function(){return Ge}),n.d(e,"t",function(){return V}),n.d(e,"u",function(){return Ye}),n.d(e,"v",function(){return U}),n.d(e,"w",function(){return H}),n.d(e,"x",function(){return B}),n.d(e,"y",function(){return bn}),n.d(e,"z",function(){return mn}),n.d(e,"A",function(){return yn}),n.d(e,"B",function(){return qe}),n.d(e,"C",function(){return wn}),n.d(e,"D",function(){return Sn}),n.d(e,"E",function(){return Ot}),n.d(e,"F",function(){return St}),n.d(e,"G",function(){return Rt}),n.d(e,"H",function(){return On});var h={},g={date:"day",hour:"hours",minute:"minutes",second:"seconds",millisecond:"milliseconds"};function b(t,e){var n=t.toLowerCase(),a=t;n in g&&(a=g[n]),h[n]=h[n+"s"]=h[e]=a}function m(t){return r(t)?h[t]||h[t.toLowerCase()]:void 0}var y=0,v=1,_=2,x=3,T=4,w=5,S=6,O=7,I=8;function C(t,e,n){var a=""+Math.abs(t);return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}var k={},N={},R=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;function A(t,e,n,a){t&&(N[t]=a),e&&(N[e[0]]=function(){return C(a.apply(null,arguments),e[1],e[2])}),n&&(N[n]=function(e,n){return n.locale.ordinal(a.apply(null,arguments),t)})}function D(t,e,n){var a=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(a.getUTCFullYear())&&a.setUTCFullYear(t),a}function E(t,e,n,a,r,i,s){void 0===e&&(e=0),void 0===n&&(n=1),void 0===a&&(a=0),void 0===r&&(r=0),void 0===i&&(i=0),void 0===s&&(s=0);var o=new Date(t,e,n,a,r,i,s);return t<100&&t>=0&&isFinite(o.getFullYear())&&o.setFullYear(t),o}function L(t,e){return void 0===e&&(e=!1),e?t.getUTCHours():t.getHours()}function P(t,e){return void 0===e&&(e=!1),e?t.getUTCMinutes():t.getMinutes()}function M(t,e){return void 0===e&&(e=!1),e?t.getUTCSeconds():t.getSeconds()}function q(t,e){return void 0===e&&(e=!1),e?t.getUTCMilliseconds():t.getMilliseconds()}function j(t,e){return void 0===e&&(e=!1),e?t.getUTCDay():t.getDay()}function F(t,e){return void 0===e&&(e=!1),e?t.getUTCDate():t.getDate()}function z(t,e){return void 0===e&&(e=!1),e?t.getUTCMonth():t.getMonth()}function G(t,e){return void 0===e&&(e=!1),e?t.getUTCFullYear():t.getFullYear()}function Y(t){return E(t.getFullYear(),t.getMonth(),1,t.getHours(),t.getMinutes(),t.getSeconds())}function V(t,e){return t.getDay()===e}function H(t,e){return!(!t||!e)&&B(t,e)&&z(t)===z(e)}function B(t,e){return!(!t||!e)&&G(t)===G(e)}function U(t,e){return!(!t||!e)&&B(t,e)&&H(t,e)&&F(t)===F(e)}var W=/\d/,K=/\d\d/,$=/\d{3}/,Z=/\d{4}/,X=/[+-]?\d{6}/,J=/\d\d?/,Q=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,at=/[+-]?\d{1,6}/,rt=/\d+/,it=/[+-]?\d+/,st=/Z|[+-]\d\d(?::?\d\d)?/gi,ot=/[+-]?\d+(\.\d{1,3})?/,ut=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct={};function lt(t,e,n){ct[t]=o(e)?e:function(t,a){return t&&n?n:e}}function dt(t,e){return l(ct,t)?ct[t](!1,e):new RegExp(ft(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,a,r){return e||n||a||r})))}function ft(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var pt={};function ht(t,e){var n=r(t)?[t]:t,a=e;if(u(e)&&(a=function(t,n,a){return n[e]=p(t),a}),c(n)&&o(a)){var i=void 0;for(i=0;i68?1900:2e3)}function _t(t){return xt(t)?366:365}function xt(t){return t%4==0&&t%100!=0||t%400==0}function Tt(t,e){if(isNaN(t)||isNaN(e))return NaN;var n=(e%12+12)%12;return 1===n?xt(t+(e-n)/12)?29:28:31-n%7%2}var wt={year:0,month:0,day:0,hour:0,minute:0,seconds:0};function St(t,e){var n=Object.assign({},wt,e),a=t.getFullYear()+(n.year||0),r=t.getMonth()+(n.month||0),i=t.getDate()+(n.day||0);return n.month&&!n.day&&(i=Math.min(i,Tt(a,r))),E(a,r,i,t.getHours()+(n.hour||0),t.getMinutes()+(n.minute||0),t.getSeconds()+(n.seconds||0))}function Ot(t,e){return E(It(t.getFullYear(),e.year),It(t.getMonth(),e.month),It(t.getDate(),e.day),It(t.getHours(),e.hour),It(t.getMinutes(),e.minute),It(t.getSeconds(),e.seconds),It(t.getMilliseconds(),e.milliseconds))}function It(t,e){return u(e)?e:t}function Ct(t,e,n){var a=Math.min(F(t),Tt(G(t),e));return n?t.setUTCMonth(e,a):t.setMonth(e,a),t}function kt(t,e,n){return n?t.setUTCDate(e):t.setDate(e),t}function Nt(t){return new Date(t.getTime())}function Rt(t,e,n){var a,i=Nt(t);switch(e){case"year":Ct(i,0,n);case"quarter":case"month":kt(i,1,n);case"week":case"isoWeek":case"day":case"date":!function(t,e,n){n?t.setUTCHours(0):t.setHours(0)}(i,0,n);case"hours":!function(t,e,n){n?t.setUTCMinutes(0):t.setMinutes(0)}(i,0,n);case"minutes":!function(t,e,n){n?t.setUTCSeconds(0):t.setSeconds(0)}(i,0,n);case"seconds":!function(t,e,n){n?t.setUTCMilliseconds(0):t.setMilliseconds(0)}(i,0,n)}return"week"===e&&(void 0===(a={isUTC:n})&&(a={}),Ke(i,0-Je(i,a.locale,a.isUTC),"day")),"isoWeek"===e&&function(t,e,n){void 0===n&&(n={});var a,i=(void 0===(a=n.locale)&&(a=ue()),r(1)?a.weekdaysParse(1)%7||7:u(1)&&isNaN(1)?null:1);Ze(t,Xe(t)%7?i:i-7)}(i),"quarter"===e&&Ct(i,3*Math.floor(z(i,n)/3),n),i}function At(t,e,n){var a=e;return"date"===a&&(a="day"),function(t,e,n,a){return $e(t,Be(1,"milliseconds"),-1,a)}(Ke(Rt(t,a,n),1,"isoWeek"===a?"week":a,n),0,0,n)}function Dt(t,e){var n=+Rt(t,"day",e),a=+Rt(t,"year",e);return Math.round((n-a)/864e5)+1}function Et(t,e,n){var a=e-n+7;return-(D(t,0,a).getUTCDay()-e+7)%7+a-1}function Lt(t,e,n,a){var r,i,s=Et(G(t,a),e,n),o=Math.floor((Dt(t,a)-s-1)/7)+1;return o<1?r=o+Pt(i=G(t,a)-1,e,n):o>Pt(G(t,a),e,n)?(r=o-Pt(G(t,a),e,n),i=G(t,a)+1):(i=G(t,a),r=o),{week:r,year:i}}function Pt(t,e,n){var a=Et(t,e,n),r=Et(t+1,e,n);return(_t(t)-a+r)/7}var Mt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,qt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),jt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ft="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),zt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Gt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Yt={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Vt=ut,Ht=ut,Bt=function(){function t(t){t&&this.set(t)}return t.prototype.set=function(t){var e;for(e in t)if(t.hasOwnProperty(e)){var n=t[e];this[o(n)?e:"_"+e]=n}this._config=t},t.prototype.calendar=function(t,e,n){var a=this._calendar[t]||this._calendar.sameElse;return o(a)?a.call(null,e,n):a},t.prototype.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},Object.defineProperty(t.prototype,"invalidDate",{get:function(){return this._invalidDate},set:function(t){this._invalidDate=t},enumerable:!0,configurable:!0}),t.prototype.ordinal=function(t,e){return this._ordinal.replace("%d",t.toString(10))},t.prototype.preparse=function(t){return t},t.prototype.postformat=function(t){return t},t.prototype.relativeTime=function(t,e,n,a){var r=this._relativeTime[n];return o(r)?r(t,e,n,a):r.replace(/%d/i,t.toString(10))},t.prototype.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return o(n)?n(e):n.replace(/%s/i,e)},t.prototype.months=function(t,e,n){if(void 0===n&&(n=!1),!t)return c(this._months)?this._months:this._months.standalone;if(c(this._months))return this._months[z(t,n)];var a=(this._months.isFormat||Mt).test(e)?"format":"standalone";return this._months[a][z(t,n)]},t.prototype.monthsShort=function(t,e,n){if(void 0===n&&(n=!1),!t)return c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone;if(c(this._monthsShort))return this._monthsShort[z(t,n)];var a=Mt.test(e)?"format":"standalone";return this._monthsShort[a][z(t,n)]},t.prototype.monthsParse=function(t,e,n){var a,r,i;if(this._monthsParseExact)return this.handleMonthStrictParse(t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(a=new Date(Date.UTC(2e3,i)),n&&!this._longMonthsParse[i]){var s=this.months(a,"",!0).replace(".",""),o=this.monthsShort(a,"",!0).replace(".","");this._longMonthsParse[i]=new RegExp("^"+s+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+o+"$","i")}if(n||this._monthsParse[i]||(r="^"+this.months(a,"",!0)+"|^"+this.monthsShort(a,"",!0),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}},t.prototype.monthsRegex=function(t){return this._monthsParseExact?(l(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsStrictRegex:this._monthsRegex):(l(this,"_monthsRegex")||(this._monthsRegex=Ht),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},t.prototype.monthsShortRegex=function(t){return this._monthsParseExact?(l(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,"_monthsShortRegex")||(this._monthsShortRegex=Vt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},t.prototype.week=function(t,e){return Lt(t,this._week.dow,this._week.doy,e).week},t.prototype.firstDayOfWeek=function(){return this._week.dow},t.prototype.firstDayOfYear=function(){return this._week.doy},t.prototype.weekdays=function(t,e,n){if(!t)return c(this._weekdays)?this._weekdays:this._weekdays.standalone;if(c(this._weekdays))return this._weekdays[j(t,n)];var a=this._weekdays.isFormat.test(e)?"format":"standalone";return this._weekdays[a][j(t,n)]},t.prototype.weekdaysMin=function(t,e,n){return t?this._weekdaysMin[j(t,n)]:this._weekdaysMin},t.prototype.weekdaysShort=function(t,e,n){return t?this._weekdaysShort[j(t,n)]:this._weekdaysShort},t.prototype.weekdaysParse=function(t,e,n){var a,r;if(this._weekdaysParseExact)return this.handleWeekStrictParse(t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){var i=Ze(new Date(Date.UTC(2e3,1)),a,null,!0);if(n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(i,"",!0).replace(".",".?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(i,"",!0).replace(".",".?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(i,"",!0).replace(".",".?")+"$","i")),this._weekdaysParse[a]||(r="^"+this.weekdays(i,"",!0)+"|^"+this.weekdaysShort(i,"",!0)+"|^"+this.weekdaysMin(i,"",!0),this._weekdaysParse[a]=new RegExp(r.replace(".",""),"i")),!(c(this._fullWeekdaysParse)&&c(this._shortWeekdaysParse)&&c(this._minWeekdaysParse)&&c(this._weekdaysParse)))return;if(n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}},t.prototype.weekdaysRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=ut),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},t.prototype.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ut),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},t.prototype.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=ut),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},t.prototype.isPM=function(t){return"p"===t.toLowerCase().charAt(0)},t.prototype.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},t.prototype.formatLongDate=function(t){this._longDateFormat=this._longDateFormat?this._longDateFormat:Yt;var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},t.prototype.handleMonthStrictParse=function(t,e,n){var a,r,i,s=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)i=new Date(2e3,a),this._shortMonthsParse[a]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(r=this._shortMonthsParse.indexOf(s))?r:null:-1!==(r=this._longMonthsParse.indexOf(s))?r:null:"MMM"===e?-1!==(r=this._shortMonthsParse.indexOf(s))?r:-1!==(r=this._longMonthsParse.indexOf(s))?r:null:-1!==(r=this._longMonthsParse.indexOf(s))?r:-1!==(r=this._shortMonthsParse.indexOf(s))?r:null},t.prototype.handleWeekStrictParse=function(t,e,n){var a,r=t.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[];var i=void 0;for(i=0;i<7;++i){var s=Ze(new Date(Date.UTC(2e3,1)),i,null,!0);this._minWeekdaysParse[i]=this.weekdaysMin(s).toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(s).toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(s,"").toLocaleLowerCase()}}if(c(this._weekdaysParse)&&c(this._shortWeekdaysParse)&&c(this._minWeekdaysParse))return n?"dddd"===e?-1!==(a=this._weekdaysParse.indexOf(r))?a:null:"ddd"===e?-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:null:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:null:"dddd"===e?-1!==(a=this._weekdaysParse.indexOf(r))?a:-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:null:"ddd"===e?-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:-1!==(a=this._weekdaysParse.indexOf(r))?a:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:null:-1!==(a=this._minWeekdaysParse.indexOf(r))?a:-1!==(a=this._weekdaysParse.indexOf(r))?a:-1!==(a=this._shortWeekdaysParse.indexOf(r))?a:null},t.prototype.computeMonthsParse=function(){var t,e,n=[],a=[],r=[];for(e=0;e<12;e++)t=new Date(2e3,e),n.push(this.monthsShort(t,"")),a.push(this.months(t,"")),r.push(this.months(t,"")),r.push(this.monthsShort(t,""));for(n.sort(Ut),a.sort(Ut),r.sort(Ut),e=0;e<12;e++)n[e]=ft(n[e]),a[e]=ft(a[e]);for(e=0;e<24;e++)r[e]=ft(r[e]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")},t.prototype.computeWeekdaysParse=function(){var t,e=[],n=[],a=[],r=[];for(t=0;t<7;t++){var i=Ze(new Date(Date.UTC(2e3,1)),t,null,!0),s=this.weekdaysMin(i),o=this.weekdaysShort(i),u=this.weekdays(i);e.push(s),n.push(o),a.push(u),r.push(s),r.push(o),r.push(u)}for(e.sort(Ut),n.sort(Ut),a.sort(Ut),r.sort(Ut),t=0;t<7;t++)n[t]=ft(n[t]),a[t]=ft(a[t]),r[t]=ft(r[t]);this._weekdaysRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+e.join("|")+")","i")},t}();function Ut(t,e){return e.length-t.length}var Wt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:Yt,invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:qt,monthsShort:jt,week:{dow:0,doy:6},weekdays:Ft,weekdaysMin:Gt,weekdaysShort:zt,meridiemParse:/[ap]\.?m?\.?/i};function Kt(t,e,n){var a,r=Math.min(t.length,e.length),i=Math.abs(t.length-e.length),s=0;for(a=0;a0;){if(s=r.slice(0,i).join("-"),ae[s]||console.error('Khronos locale error: please load locale "'+s+'" before using it'),n=ae[s])return n;if(e&&e.length>=i&&Kt(r,e,!0)>=i-1)break;i--}a++}var s;return null}(c(t)?t:[t]):ee}var ce=["year","quarter","month","week","day","hours","minutes","seconds","milliseconds"],le=ce.reduce(function(t,e){return t[e]=!0,t},{});function de(t){return t<0?Math.floor(t):Math.ceil(t)}function fe(t){return 4800*t/146097}function pe(t){return 146097*t/4800}var he=Math.round,ge=function(){function t(t,e){void 0===e&&(e={}),this._data={},this._locale=ue(),this._locale=e&&e._locale||ue();var n=t.year||0,r=t.quarter||0,i=t.month||0,s=t.week||0,o=t.day||0,u=t.hours||0,c=t.minutes||0,l=t.seconds||0,d=t.milliseconds||0;return this._isValid=function(t){if(Object.keys(t).some(function(e){return e in le&&null===t[e]||isNaN(t[e])}))return!1;for(var e=!1,n=0;n=0&&n>=0&&r>=0||e<=0&&n<=0&&r<=0||(e+=864e5*de(pe(r)+n),n=0,r=0),i.milliseconds=e%1e3;var s=a(e/1e3);i.seconds=s%60;var o=a(s/60);i.minutes=o%60;var u=a(o/60);i.hours=u%24,n+=a(u/24);var c=a(fe(n));r+=c,n-=de(pe(c));var l=a(r/12);return r%=12,i.day=n,i.month=r,i.year=l,t}(this)}return t.prototype.isValid=function(){return this._isValid},t.prototype.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate;var e=this.localeData(),n=function(t,e,n){var a=Be(t).abs(),r=he(a.as("s")),i=he(a.as("m")),s=he(a.as("h")),o=he(a.as("d")),u=he(a.as("M")),c=he(a.as("y")),l=r<=44&&["s",r]||r<45&&["ss",r]||i<=1&&["m"]||i<45&&["mm",i]||s<=1&&["h"]||s<22&&["hh",s]||o<=1&&["d"]||o<26&&["dd",o]||u<=1&&["M"]||u<11&&["MM",u]||c<=1&&["y"]||["yy",c];return(function(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}).apply(null,[l[0],l[1],e,+t>0,n])}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},t.prototype.localeData=function(){return this._locale},t.prototype.locale=function(t){return t?(this._locale=ue(t)||this._locale,this):this._locale._abbr},t.prototype.abs=function(){var t=Math.abs,e=this._data;return this._milliseconds=t(this._milliseconds),this._days=t(this._days),this._months=t(this._months),e.milliseconds=t(e.milliseconds),e.seconds=t(e.seconds),e.minutes=t(e.minutes),e.hours=t(e.hours),e.month=t(e.month),e.year=t(e.year),this},t.prototype.as=function(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds,r=m(t);if("month"===r||"year"===r)return n=this._months+fe(e=this._days+a/864e5),"month"===r?n:n/12;switch(e=this._days+Math.round(pe(this._months)),r){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hours":return 24*e+a/36e5;case"minutes":return 1440*e+a/6e4;case"seconds":return 86400*e+a/1e3;case"milliseconds":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+r)}},t.prototype.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*p(this._months/12):NaN},t}();function be(t){if(null==t._isValid){var e=mt(t),n=Array.prototype.some.call(e.parsedDateParts,function(t){return null!=t}),a=!isNaN(t._d&&t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(a=a&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return a;t._isValid=a}return t._isValid}function me(t,e){return t._d=new Date(NaN),Object.assign(mt(t),e||{userInvalidated:!0}),t}var ye=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ve=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/Z|[+-]\d\d(?::?\d\d)?/,xe=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/,!0],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/,!0],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/,!0],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/,!0],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/,!0],["YYYYMMDD",/\d{8}/,!0],["GGGG[W]WWE",/\d{4}W\d{3}/,!0],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/,!0]],Te=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],we=/^\/?Date\((\-?\d+)/i,Se={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},Oe=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Ie(t){if(!r(t._i))return t;var e,n,a,i,s,o,u=t._i,c=ye.exec(u)||ve.exec(u);if(!c)return t._isValid=!1,t;for(s=0,o=xe.length;s=0&&r.test(n);)n=n.replace(r,i),r.lastIndex=0,a-=1;return n}function Ae(t,e,n){return null!=t?t:null!=e?e:n}function De(t){var e,n,a,r,i,s=[];if(t._d)return t;for(a=function(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[_]&&null==t._a[v]&&function(t){var e,n,a,r,i,s,o,u;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)i=1,s=4,n=Ae(e.GG,t._a[y],Lt(new Date,1,4).year),a=Ae(e.W,1),((r=Ae(e.E,1))<1||r>7)&&(u=!0);else{i=t._locale._week.dow,s=t._locale._week.doy;var c=Lt(new Date,i,s);n=Ae(e.gg,t._a[y],c.year),a=Ae(e.w,c.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(u=!0)):r=i}a<1||a>Pt(n,i,s)?mt(t)._overflowWeeks=!0:null!=u?mt(t)._overflowWeekday=!0:(o=function(t,e,n,a,r){var i,s,o=1+7*(e-1)+(7+n-a)%7+Et(t,a,r);return o<=0?s=_t(i=t-1)+o:o>_t(t)?(i=t+1,s=o-_t(t)):(i=t,s=o),{year:i,dayOfYear:s}}(n,a,r,i,s),t._a[y]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(i=Ae(t._a[y],a[y]),(t._dayOfYear>_t(i)||0===t._dayOfYear)&&(mt(t)._overflowDayOfYear=!0),n=new Date(Date.UTC(i,0,t._dayOfYear)),t._a[v]=n.getUTCMonth(),t._a[_]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=a[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];return 24===t._a[x]&&0===t._a[T]&&0===t._a[w]&&0===t._a[S]&&(t._nextDay=!0,t._a[x]=0),t._d=(t._useUTC?D:E).apply(null,s),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[x]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(mt(t).weekdayMismatch=!0),t}function Ee(t){var e,n=t._a;return n&&-2===mt(t).overflow&&(e=n[v]<0||n[v]>11?v:n[_]<1||n[_]>Tt(n[y],n[v])?_:n[x]<0||n[x]>24||24===n[x]&&(0!==n[T]||0!==n[w]||0!==n[S])?x:n[T]<0||n[T]>59?T:n[w]<0||n[w]>59?w:n[S]<0||n[S]>999?S:-1,mt(t)._overflowDayOfYear&&(e_)&&(e=_),mt(t)._overflowWeeks&&-1===e&&(e=O),mt(t)._overflowWeekday&&-1===e&&(e=I),mt(t).overflow=e),t}var Le="ISO_8601",Pe="RFC_2822";function Me(t){if(t._f===Le)return Ie(t);if(t._f===Pe)return ke(t);if(t._a=[],mt(t).empty=!0,c(t._f)||!t._i&&0!==t._i)return t;var e,n,a,r,i=t._i.toString(),s=0,o=i.length,u=Re(t._f,t._locale).match(R)||[];for(e=0;e0&&mt(t).unusedInput.push(r),i=i.slice(i.indexOf(a)+a.length),s+=a.length),N[n]?(a?mt(t).empty=!1:mt(t).unusedTokens.push(n),bt(n,a,t)):t._strict&&!a&&mt(t).unusedTokens.push(n);return mt(t).charsLeftOver=o-s,i.length>0&&mt(t).unusedInput.push(i),t._a[x]<=12&&!0===mt(t).bigHour&&t._a[x]>0&&(mt(t).bigHour=void 0),mt(t).parsedDateParts=t._a.slice(0),mt(t).meridiem=t._meridiem,t._a[x]=function(e,n,a){var r=t._a[x];if(null==a)return r;if(null!=e.meridiemHour)return e.meridiemHour(r,a);if(null==e.isPM)return r;var i=e.isPM(a);return i&&r<12&&(r+=12),i||12!==r||(r=0),r}(t._locale,0,t._meridiem),De(t),Ee(t)}function qe(t,e,n,a,s){return i(t)?t:function(t,e,n,a,s){var o={},p=t;return(d(p)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(p)||c(p)&&0===p.length)&&(p=void 0),o._useUTC=o._isUTC=s,o._l=n,o._i=p,o._f=e,o._strict=a,function(t){var e=Ee(function(t){var e=t._i,n=t._f;return t._locale=t._locale||ue(t._l),null===e||void 0===n&&""===e?me(t,{nullInput:!0}):(r(e)&&(t._i=e=t._locale.preparse(e)),i(e)?(t._d=Nt(e),t):(c(n)?function(t){var e,n,a,r,i;if(!t._f||0===t._f.length)return mt(t).invalidFormat=!0,me(t);for(i=0;ie.valueOf():e.valueOf()1&&t<5&&1!=~~(t/10)}function nn(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return e||a?r+(en(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(en(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(en(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(en(t)?"dny":"dn\xed"):r+"dny";case"M":return e||a?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return e||a?r+(en(t)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):r+"m\u011bs\xedci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(en(t)?"roky":"let"):r+"lety"}}var an=function(t){var e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},rn=function(t){var e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},sn={abbr:"cs",months:Qe,monthsShort:tn,monthsParse:function(t,e){var n,a=[];for(n=0;n<12;n++)a[n]=new RegExp("^"+t[n]+"$|^"+e[n]+"$","i");return a}(Qe,tn),shortMonthsParse:an(tn),longMonthsParse:rn(Qe),weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(t){switch(Xe(t)){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(t){switch(Xe(t)){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:nn,ss:nn,m:nn,mm:nn,h:nn,hh:nn,d:nn,dd:nn,M:nn,MM:nn,y:nn,yy:nn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}};function on(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}var un={abbr:"de",months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:on,mm:"%d Minuten",h:on,hh:"%d Stunden",d:on,dd:on,M:on,MM:on,y:on,yy:on},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}},cn="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),ln="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),dn=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],fn=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,pn={abbr:"es",months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,e,n){return t?/-MMM-/.test(e)?ln[z(t,n)]:cn[z(t,n)]:cn},monthsRegex:fn,monthsShortRegex:fn,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:dn,longMonthsParse:dn,shortMonthsParse:dn,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(t){return"[hoy a la"+(1!==L(t)?"s":"")+"] LT"},nextDay:function(t){return"[ma\xf1ana a la"+(1!==L(t)?"s":"")+"] LT"},nextWeek:function(t){return"dddd [a la"+(1!==L(t)?"s":"")+"] LT"},lastDay:function(t){return"[ayer a la"+(1!==L(t)?"s":"")+"] LT"},lastWeek:function(t){return"[el] dddd [pasado a la"+(1!==L(t)?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}},hn={abbr:"fr",months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){var n=Number(t);switch(e){case"D":return n+(1===n?"er":"");default:case"M":case"Q":case"DDD":case"d":return n+(1===n?"er":"e");case"w":case"W":return n+(1===n?"re":"e")}},week:{dow:1,doy:4}},gn={abbr:"id",months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}},bn={abbr:"it",months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(t){switch(Xe(t)){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t.toString(10))?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}},mn={abbr:"ja",months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5 HH:mm dddd"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(t){return"\u5348\u5f8c"===t},meridiem:function(t,e,n){return t<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:"[\u6765\u9031]dddd LT",lastDay:"[\u6628\u65e5] LT",lastWeek:"[\u524d\u9031]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";default:return t.toString(10)}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",ss:"%d\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}},yn={abbr:"ko",months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\uc77c";case"M":return t+"\uc6d4";case"w":case"W":return t+"\uc8fc";default:return t.toString(10)}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(t){return"\uc624\ud6c4"===t},meridiem:function(t,e,n){return t<12?"\uc624\uc804":"\uc624\ud6c4"}},vn="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),_n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function xn(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function Tn(t,e,n){var a=t+" ";switch(n){case"ss":return a+(xn(t)?"sekundy":"sekund");case"m":return e?"minuta":"minut\u0119";case"mm":return a+(xn(t)?"minuty":"minut");case"h":return e?"godzina":"godzin\u0119";case"hh":return a+(xn(t)?"godziny":"godzin");case"MM":return a+(xn(t)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return a+(xn(t)?"lata":"lat")}}var wn={abbr:"pl",months:function(t,e,n){return t?""===e?"("+_n[z(t,n)]+"|"+vn[z(t,n)]+")":/D MMMM/.test(e)?_n[z(t,n)]:vn[z(t,n)]:vn},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(t){switch(Xe(t)){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 5:return"[W pi\u0105tek o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(t){switch(Xe(t)){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 4:return"[W zesz\u0142\u0105 czwartek o] LT";case 5:return"[W zesz\u0142\u0105 pi\u0105tek o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:Tn,m:Tn,mm:Tn,h:Tn,hh:Tn,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:Tn,y:"rok",yy:Tn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}},Sn={abbr:"pt-br",months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(t){return 0===Xe(t)||6===Xe(t)?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atr\xe1s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"},On={abbr:"zh-cn",months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"\u51cc\u6668":a<900?"\u65e9\u4e0a":a<1130?"\u4e0a\u5348":a<1230?"\u4e2d\u5348":a<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(t,e){var n=Number(t);switch(e){case"d":case"D":case"DDD":return n+"\u65e5";case"M":return n+"\u6708";case"w":case"W":return n+"\u5468";default:return n.toString()}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}}},lJMN:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("QG5k"),r=n("TCh0"),i=n("kQXf");e.TreeController=function(){function t(t){this.component=t,this.tree=this.component.tree,this.treeService=this.component.treeService}return t.prototype.select=function(){this.isSelected()||this.component.onNodeSelected({button:r.MouseButtons.Left})},t.prototype.unselect=function(){this.isSelected()&&this.component.onNodeUnselected({button:r.MouseButtons.Left})},t.prototype.isSelected=function(){return this.component.isSelected},t.prototype.expand=function(){this.isCollapsed()&&this.component.onSwitchFoldingType()},t.prototype.expandToParent=function(t){var e=this;if(void 0===t&&(t=this.tree),t){var n=this.treeService.getController(t.id);n&&requestAnimationFrame(function(){n.expand(),e.expandToParent(t.parent)})}},t.prototype.isExpanded=function(){return this.tree.isNodeExpanded()},t.prototype.collapse=function(){this.isExpanded()&&this.component.onSwitchFoldingType()},t.prototype.isCollapsed=function(){return this.tree.isNodeCollapsed()},t.prototype.toTreeModel=function(){return this.tree.toTreeModel()},t.prototype.rename=function(t){this.tree.markAsBeingRenamed(),this.component.applyNewValue({type:"keyup",value:t})},t.prototype.remove=function(){this.component.onMenuItemSelected({nodeMenuItemAction:a.NodeMenuItemAction.Remove})},t.prototype.addChild=function(t){if(!this.tree.hasDeferredChildren()||this.tree.childrenWereLoaded()){var e=this.tree.createNode(Array.isArray(t.children),t);this.treeService.fireNodeCreated(e)}},t.prototype.addChildAsync=function(t){if(this.tree.hasDeferredChildren()&&!this.tree.childrenWereLoaded())return Promise.reject(new Error("This node loads its children asynchronously, hence child cannot be added this way"));var e=this.tree.createNode(Array.isArray(t.children),t);return this.treeService.fireNodeCreated(e),new Promise(function(t){setTimeout(function(){t(e)})})},t.prototype.changeNodeId=function(t){if(!t)throw Error("You should supply an id!");if(this.treeService.hasController(t))throw Error("Controller already exists for the given id: "+t);this.treeService.deleteController(this.tree.id),this.tree.id=t,this.treeService.setController(this.tree.id,this)},t.prototype.reloadChildren=function(){this.tree.reloadChildren()},t.prototype.setChildren=function(t){this.tree.isLeaf()||this.tree.setChildren(t)},t.prototype.startRenaming=function(){this.tree.markAsBeingRenamed()},t.prototype.check=function(){this.component.onNodeChecked()},t.prototype.uncheck=function(){this.component.onNodeUnchecked()},t.prototype.isChecked=function(){return this.tree.checked},t.prototype.isIndetermined=function(){return i.get(this.component,"checkboxElementRef.nativeElement.indeterminate")},t.prototype.allowSelection=function(){this.tree.selectionAllowed=!0},t.prototype.forbidSelection=function(){this.tree.selectionAllowed=!1},t.prototype.isSelectionAllowed=function(){return this.tree.selectionAllowed},t}()},lTVp:function(t,e,n){"use strict";n.d(e,"a",function(){return o}),n.d(e,"b",function(){return s}),n.d(e,"c",function(){return u});var a=n("mrSG"),r=n("CcnG"),i=n("rpEJ"),s=function(){return function(){this.type="warning",this.dismissible=!1,this.dismissOnTimeout=void 0}}(),o=function(){function t(t,e){var n=this;this.changeDetection=e,this.type="warning",this.dismissible=!1,this.isOpen=!0,this.onClose=new r.EventEmitter,this.onClosed=new r.EventEmitter,this.classes="",this.dismissibleChange=new r.EventEmitter,Object.assign(this,t),this.dismissibleChange.subscribe(function(t){n.classes=n.dismissible?"alert-dismissible":"",n.changeDetection.markForCheck()})}return t.prototype.ngOnInit=function(){var t=this;this.dismissOnTimeout&&setTimeout(function(){return t.close()},parseInt(this.dismissOnTimeout,10))},t.prototype.close=function(){this.isOpen&&(this.onClose.emit(this),this.isOpen=!1,this.changeDetection.markForCheck(),this.onClosed.emit(this))},Object(a.__decorate)([Object(i.a)(),Object(a.__metadata)("design:type",Object)],t.prototype,"dismissible",void 0),t}(),u=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[s]}},t}()},lUjN:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("vxfy");e.DatatableFooterDirective=function(){function t(){}return a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),i.ContentChild(s.DataTableFooterTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Directive({selector:"ngx-datatable-footer"})],t)}()},lXzo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":t+" "+(a=+t,r={ss:e?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:e?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}var a=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];n("wd/R").defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:a,longMonthsParse:a,shortMonthsParse:a,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:e,m:e,mm:e,h:"\u0447\u0430\u0441",hh:e,d:"\u0434\u0435\u043d\u044c",dd:e,M:"\u043c\u0435\u0441\u044f\u0446",MM:e,y:"\u0433\u043e\u0434",yy:e},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(t)},meridiem:function(t,e,n){return t<4?"\u043d\u043e\u0447\u0438":t<12?"\u0443\u0442\u0440\u0430":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-\u0439";case"D":return t+"-\u0433\u043e";case"w":case"W":return t+"-\u044f";default:return t}},week:{dow:1,doy:4}})}()},lYZG:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("6blF"),r=n("0/uQ"),i=n("G5J1");function s(t){return new a.a(function(e){var n;try{n=t()}catch(a){return void e.error(a)}return(n?Object(r.a)(n):Object(i.b)()).subscribe(e)})}},lYtQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){switch(n){case"s":return e?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return t+(e?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return t+(e?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return t+(e?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return t+(e?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return t+(e?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return t+(e?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return t}}n("wd/R").defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(t){return"\u04ae\u0425"===t},meridiem:function(t,e,n){return t<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" \u04e9\u0434\u04e9\u0440";default:return t}}})}()},lZOh:function(t,e,n){"use strict";n.r(e);var a=n("6blF"),r=n("F/XL");a.a.of=r.a},lgnt:function(t,e,n){!function(t){"use strict";var e={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};t.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},lmqd:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi",t.multiClick="multiClick",t.cell="cell",t.checkbox="checkbox"}(e.SelectionType||(e.SelectionType={}))},lqqz:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("CcnG"),r=n("rpEJ"),i=function(){return function(t,e,n){this.nodes=t,this.viewRef=e,this.componentRef=n}}(),s=function(){function t(t,e,n,r,i,s,o,u){this._viewContainerRef=t,this._renderer=e,this._elementRef=n,this._injector=r,this._componentFactoryResolver=i,this._ngZone=s,this._applicationRef=o,this._posService=u,this.onBeforeShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onBeforeHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this._providers=[],this._isHiding=!1,this.containerDefaultSelector="body",this._listenOpts={},this._globalListener=Function.prototype}return Object.defineProperty(t.prototype,"isShown",{get:function(){return!this._isHiding&&!!this._componentRef},enumerable:!0,configurable:!0}),t.prototype.attach=function(t){return this._componentFactory=this._componentFactoryResolver.resolveComponentFactory(t),this},t.prototype.to=function(t){return this.container=t||this.container,this},t.prototype.position=function(t){return this.attachment=t.attachment||this.attachment,this._elementRef=t.target||this._elementRef,this},t.prototype.provide=function(t){return this._providers.push(t),this},t.prototype.show=function(t){if(void 0===t&&(t={}),this._subscribePositioning(),this._innerComponent=null,!this._componentRef){this.onBeforeShow.emit(),this._contentRef=this._getContentRef(t.content,t.context,t.initialState);var e=a.Injector.create({providers:this._providers,parent:this._injector});this._componentRef=this._componentFactory.create(e,this._contentRef.nodes),this._applicationRef.attachView(this._componentRef.hostView),this.instance=this._componentRef.instance,Object.assign(this._componentRef.instance,t),this.container instanceof a.ElementRef&&this.container.nativeElement.appendChild(this._componentRef.location.nativeElement),"string"==typeof this.container&&"undefined"!=typeof document&&(document.querySelector(this.container)||document.querySelector(this.containerDefaultSelector)).appendChild(this._componentRef.location.nativeElement),!this.container&&this._elementRef&&this._elementRef.nativeElement.parentElement&&this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement),this._contentRef.componentRef&&(this._innerComponent=this._contentRef.componentRef.instance,this._contentRef.componentRef.changeDetectorRef.markForCheck(),this._contentRef.componentRef.changeDetectorRef.detectChanges()),this._componentRef.changeDetectorRef.markForCheck(),this._componentRef.changeDetectorRef.detectChanges(),this.onShown.emit(this._componentRef.instance)}return this._registerOutsideClick(),this._componentRef},t.prototype.hide=function(){if(!this._componentRef)return this;this._posService.deletePositionElement(this._componentRef.location),this.onBeforeHide.emit(this._componentRef.instance);var t=this._componentRef.location.nativeElement;return t.parentNode.removeChild(t),this._contentRef.componentRef&&this._contentRef.componentRef.destroy(),this._componentRef.destroy(),this._viewContainerRef&&this._contentRef.viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef)),this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._contentRef=null,this._componentRef=null,this._removeGlobalListener(),this.onHidden.emit(),this},t.prototype.toggle=function(){this.isShown?this.hide():this.show()},t.prototype.dispose=function(){this.isShown&&this.hide(),this._unsubscribePositioning(),this._unregisterListenersFn&&this._unregisterListenersFn()},t.prototype.listen=function(t){var e=this;this.triggers=t.triggers||this.triggers,this._listenOpts.outsideClick=t.outsideClick,this._listenOpts.outsideEsc=t.outsideEsc,t.target=t.target||this._elementRef.nativeElement;var n=this._listenOpts.hide=function(){return t.hide?t.hide():void e.hide()},a=this._listenOpts.show=function(n){t.show?t.show(n):e.show(n),n()};return this._unregisterListenersFn=Object(r.e)(this._renderer,{target:t.target,triggers:t.triggers,show:a,hide:n,toggle:function(t){e.isShown?n():a(t)}}),this},t.prototype._removeGlobalListener=function(){this._globalListener&&(this._globalListener(),this._globalListener=null)},t.prototype.attachInline=function(t,e){return this._inlineViewRef=t.createEmbeddedView(e),this},t.prototype._registerOutsideClick=function(){var t=this;if(this._componentRef&&this._componentRef.location){if(this._listenOpts.outsideClick){var e=this._componentRef.location.nativeElement;setTimeout(function(){t._globalListener=Object(r.h)(t._renderer,{targets:[e,t._elementRef.nativeElement],outsideClick:t._listenOpts.outsideClick,hide:function(){return t._listenOpts.hide()}})})}if(this._listenOpts.outsideEsc){var n=this._componentRef.location.nativeElement;this._globalListener=Object(r.g)(this._renderer,{targets:[n,this._elementRef.nativeElement],outsideEsc:this._listenOpts.outsideEsc,hide:function(){return t._listenOpts.hide()}})}}},t.prototype.getInnerComponent=function(){return this._innerComponent},t.prototype._subscribePositioning=function(){var t=this;!this._zoneSubscription&&this.attachment&&(this.onShown.subscribe(function(){t._posService.position({element:t._componentRef.location,target:t._elementRef,attachment:t.attachment,appendToBody:"body"===t.container})}),this._zoneSubscription=this._ngZone.onStable.subscribe(function(){t._componentRef&&t._posService.calcPosition()}))},t.prototype._unsubscribePositioning=function(){this._zoneSubscription&&(this._zoneSubscription.unsubscribe(),this._zoneSubscription=null)},t.prototype._getContentRef=function(t,e,n){if(!t)return new i([]);if(t instanceof a.TemplateRef){if(this._viewContainerRef){var r=this._viewContainerRef.createEmbeddedView(t,e);return r.markForCheck(),new i([r.rootNodes],r)}var s=t.createEmbeddedView({});return this._applicationRef.attachView(s),new i([s.rootNodes],s)}if("function"==typeof t){var o=this._componentFactoryResolver.resolveComponentFactory(t),u=a.Injector.create({providers:this._providers,parent:this._injector}),c=o.create(u);return Object.assign(c.instance,n),this._applicationRef.attachView(c.hostView),new i([[c.location.nativeElement]],c.hostView,c)}return new i([[this._renderer.createText(""+t)]])},t}(),o=function(){function t(t,e,n,a,r){this._componentFactoryResolver=t,this._ngZone=e,this._injector=n,this._posService=a,this._applicationRef=r}return t.prototype.createLoader=function(t,e,n){return new s(e,n,t,this._injector,this._componentFactoryResolver,this._ngZone,this._applicationRef,this._posService)},t}()},lyxo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=" ";return(t%100>=20||t>=100&&t%100==0)&&(a=" de "),t+a+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}n("wd/R").defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:e,m:"un minut",mm:e,h:"o or\u0103",hh:e,d:"o zi",dd:e,M:"o lun\u0103",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}})}()},mChF:function(t,e,n){"use strict";function a(t){return t}n.d(e,"a",function(){return a})},mSOc:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("LvDl"),r=n("26FU"),i=n("CcnG"),s=n("t/Na"),o=n("ZYCi"),u=function(){function t(t,e,n){this.http=t,this.router=e,this.ngZone=n,this.summaryDataSource=new r.a(null),this.summaryData$=this.summaryDataSource.asObservable(),this.enablePolling()}return t.prototype.enablePolling=function(){var t=this;this.refresh(),this.ngZone.runOutsideAngular(function(){t.polling=window.setInterval(function(){t.ngZone.run(function(){t.refresh()})},5e3)})},t.prototype.refresh=function(){var t=this;"/login"!==this.router.url&&this.http.get("api/summary").subscribe(function(e){t.summaryDataSource.next(e)})},t.prototype.getCurrentSummary=function(){return this.summaryDataSource.getValue()},t.prototype.subscribe=function(t,e){return this.summaryData$.subscribe(t,e)},t.prototype.addRunningTask=function(t){var e=this.summaryDataSource.getValue();e&&(a.isArray(e.executing_tasks)?e.executing_tasks.find(function(e){return e.name===t.name&&a.isEqual(e.metadata,t.metadata)})||e.executing_tasks.push(t):e.executing_tasks=[t],this.summaryDataSource.next(e))},t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(s.c),i.inject(o.l),i.inject(i.NgZone))},token:t,providedIn:"root"}),t}()},mZXl:function(t,e,n){"use strict";n.d(e,"b",function(){return s}),n.d(e,"a",function(){return u});var a=n("mrSG"),r=n("FFOo"),i=n("60iU");function s(t,e){return void 0===e&&(e=0),function(n){return n.lift(new o(t,e))}}var o=function(){function t(t,e){void 0===e&&(e=0),this.scheduler=t,this.delay=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.scheduler,this.delay))},t}(),u=function(t){function e(e,n,a){void 0===a&&(a=0);var r=t.call(this,e)||this;return r.scheduler=n,r.delay=a,r}return a.__extends(e,t),e.dispatch=function(t){t.notification.observe(t.destination),this.unsubscribe()},e.prototype.scheduleMessage=function(t){this.destination.add(this.scheduler.schedule(e.dispatch,this.delay,new c(t,this.destination)))},e.prototype._next=function(t){this.scheduleMessage(i.a.createNext(t))},e.prototype._error=function(t){this.scheduleMessage(i.a.createError(t)),this.unsubscribe()},e.prototype._complete=function(){this.scheduleMessage(i.a.createComplete()),this.unsubscribe()},e}(r.a),c=function(){return function(t,e){this.notification=t,this.destination=e}}()},mgIt:function(t,e,n){var a=n("T016");function r(t){if(t){var e=[0,0,0],n=1,r=t.match(/^#([a-fA-F0-9]{3,4})$/i),i="";if(r){i=(r=r[1])[3];for(var s=0;s=0&&e<1?d(Math.round(255*e)):"")},rgbString:function(t,e){return e<1||t[3]&&t[3]<1?o(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:o,percentString:function(t,e){return e<1||t[3]&&t[3]<1?u(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"},percentaString:u,hslString:function(t,e){return e<1||t[3]&&t[3]<1?c(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:c,hwbString:function(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return f[t.slice(0,3)]}};var f={};for(var p in a)f[a[p]]=p},mjYD:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha"),s=n("fELs"),o=i.noop;a._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}});var u=r.extend({initialize:function(t){i.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:o,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:o,beforeSetDimensions:o,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:o,beforeBuildLabels:o,buildLabels:o,afterBuildLabels:o,beforeFit:o,fit:function(){var t=this,e=t.options,n=e.display,r=(0,i.valueOrDefault)(e.fontSize,a.global.defaultFontSize),s=t.minSize,o=i.isArray(e.text)?e.text.length:1,u=i.options.toLineHeight(e.lineHeight,r),c=n?o*u+2*e.padding:0;t.isHorizontal()?(s.width=t.maxWidth,s.height=c):(s.width=c,s.height=t.maxHeight),t.width=s.width,t.height=s.height},afterFit:o,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=i.valueOrDefault,r=t.options,s=a.global;if(r.display){var o,u,c,l=n(r.fontSize,s.defaultFontSize),d=n(r.fontStyle,s.defaultFontStyle),f=n(r.fontFamily,s.defaultFontFamily),p=i.fontString(l,d,f),h=i.options.toLineHeight(r.lineHeight,l),g=h/2+r.padding,b=0,m=t.top,y=t.left,v=t.bottom,_=t.right;e.fillStyle=n(r.fontColor,s.defaultFontColor),e.font=p,t.isHorizontal()?(u=y+(_-y)/2,c=m+g,o=_-y):(u="left"===r.position?y+g:_-g,c=m+(v-m)/2,o=v-m,b=Math.PI*("left"===r.position?-.5:.5)),e.save(),e.translate(u,c),e.rotate(b),e.textAlign="center",e.textBaseline="middle";var x=r.text;if(i.isArray(x))for(var T=0,w=0;w0&&(c=t.getDatasetMeta(c[0]._datasetIndex).data),c},"x-axis":function(t,e){return c(t,e,{intersect:!1})},point:function(t,e){return s(t,r(e,t))},nearest:function(t,e,n){var a=r(e,t);n.axis=n.axis||"xy";var i=u(n.axis),s=o(t,a,n.intersect,i);return s.length>1&&s.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),s.slice(0,1)},x:function(t,e,n){var a=r(e,t),s=[],o=!1;return i(t,function(t){t.inXRange(a.x)&&s.push(t),t.inRange(a.x,a.y)&&(o=!0)}),n.intersect&&!o&&(s=[]),s},y:function(t,e,n){var a=r(e,t),s=[],o=!1;return i(t,function(t){t.inYRange(a.y)&&s.push(t),t.inRange(a.x,a.y)&&(o=!0)}),n.intersect&&!o&&(s=[]),s}}}},mn2k:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("3MdB")),a(n("Cc8h")),a(n("ylLw")),a(n("M9eX")),a(n("uKs4"))},mrSG:function(t,e,n){"use strict";n.r(e),n.d(e,"__extends",function(){return r}),n.d(e,"__assign",function(){return i}),n.d(e,"__rest",function(){return s}),n.d(e,"__decorate",function(){return o}),n.d(e,"__param",function(){return u}),n.d(e,"__metadata",function(){return c}),n.d(e,"__awaiter",function(){return l}),n.d(e,"__generator",function(){return d}),n.d(e,"__exportStar",function(){return f}),n.d(e,"__values",function(){return p}),n.d(e,"__read",function(){return h}),n.d(e,"__spread",function(){return g}),n.d(e,"__await",function(){return b}),n.d(e,"__asyncGenerator",function(){return m}),n.d(e,"__asyncDelegator",function(){return y}),n.d(e,"__asyncValues",function(){return v}),n.d(e,"__makeTemplateObject",function(){return _}),n.d(e,"__importStar",function(){return x}),n.d(e,"__importDefault",function(){return T});var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function r(t,e){function n(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}function u(t,e){return function(n,a){e(n,a,t)}}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function l(t,e,n,a){return new(n||(n=Promise))(function(r,i){function s(t){try{u(a.next(t))}catch(e){i(e)}}function o(t){try{u(a.throw(t))}catch(e){i(e)}}function u(t){t.done?r(t.value):new n(function(e){e(t.value)}).then(s,o)}u((a=a.apply(t,e||[])).next())})}function d(t,e){var n,a,r,i,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,a&&(r=2&i[0]?a.return:i[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,i[1])).done)return r;switch(a=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,a=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(r=(r=s.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){s=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function h(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var a,r,i=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(a=i.next()).done;)s.push(a.value)}catch(o){r={error:o}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}function g(){for(var t=[],e=0;e1||o(t,e)})})}function o(t,e){try{(n=r[t](e)).value instanceof b?Promise.resolve(n.value.v).then(u,c):l(i[0][2],n)}catch(a){l(i[0][3],a)}var n}function u(t){o("next",t)}function c(t){o("throw",t)}function l(t,e){t(e),i.shift(),i.length&&o(i[0][0],i[0][1])}}function y(t){var e,n;return e={},a("next"),a("throw",function(t){throw t}),a("return"),e[Symbol.iterator]=function(){return this},e;function a(a,r){e[a]=t[a]?function(e){return(n=!n)?{value:b(t[a](e)),done:"return"===a}:r?r(e):e}:r}}function v(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=p(t),e={},a("next"),a("throw"),a("return"),e[Symbol.asyncIterator]=function(){return this},e);function a(n){e[n]=t[n]&&function(e){return new Promise(function(a,r){!function(t,e,n,a){Promise.resolve(a).then(function(e){t({value:e,done:n})},e)}(a,r,(e=t[n](e)).done,e.value)})}}}function _(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function x(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function T(t){return t&&t.__esModule?t:{default:t}}},mtw6:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return t[t.error=0]="error",t[t.info=1]="info",t[t.success=2]="success",t}({})},"n/D3":function(t,e,n){"use strict";n.d(e,"a",function(){return c}),n.d(e,"b",function(){return u});var a=n("VNr4"),r=(n("SgmB"),n("ZDA6"),n("0+/T")),i=(n("sne2"),n("x38r")),s=n("mtw6"),o=n("vCyI"),u=(n("nSDx"),n("aexS"),n("9nlD"),new(n("EgGo").a)("user-management/roles")),c=function(){function t(t,e,n,a,r,i,s,u,c){var l=this;this.roleService=t,this.scopeService=e,this.emptyPipe=n,this.authStorageService=a,this.modalService=r,this.notificationService=i,this.i18n=s,this.urlBuilder=u,this.actionLabels=c,this.selection=new o.a,this.permission=this.authStorageService.getPermissions().user,this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return l.urlBuilder.getCreate()},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",disable:function(){return!l.selection.hasSingleSelection||l.selection.first().system},routerLink:function(){return l.selection.first()&&l.urlBuilder.getEdit(l.selection.first().name)},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-times",disable:function(){return!l.selection.hasSingleSelection||l.selection.first().system},click:function(){return l.deleteRoleModal()},name:this.actionLabels.DELETE}]}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:3},{name:this.i18n("Description"),prop:"description",flexGrow:5,pipe:this.emptyPipe},{name:this.i18n("System Role"),prop:"system",cellClass:"text-center",flexGrow:1,cellTransformation:i.a.checkIcon}]},t.prototype.getRoles=function(){var t=this;Object(a.a)([this.roleService.list(),this.scopeService.list()]).subscribe(function(e){t.roles=e[0],t.scopes=e[1]})},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.deleteRole=function(t){var e=this;this.roleService.delete(t).subscribe(function(){e.getRoles(),e.modalRef.hide(),e.notificationService.show(s.a.success,e.i18n("Deleted role '{{role_name}}'",{role_name:t}))},function(){e.modalRef.content.stopLoadingSpinner()})},t.prototype.deleteRoleModal=function(){var t=this,e=this.selection.first().name;this.modalRef=this.modalService.show(r.a,{initialState:{itemDescription:"Role",itemNames:[e],submitAction:function(){return t.deleteRole(e)}}})},t}()},n1nk:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.header="header",t.body="body"}(e.ContextmenuType||(e.ContextmenuType={}))},nDWh:function(t,e,n){"use strict";var a=n("6ww4"),r=n("CDJp"),i=n("RDha"),s=n("tjFV");t.exports=function(){function t(t,e,n){var a;return"string"==typeof t?(a=parseInt(t,10),-1!==t.indexOf("%")&&(a=a/100*e.parentNode[n])):a=t,a}function e(t){return null!=t&&"none"!==t}function n(n,a,r){var s=document.defaultView,o=i._getParentNode(n),u=s.getComputedStyle(n)[a],c=s.getComputedStyle(o)[a],l=e(u),d=e(c),f=Number.POSITIVE_INFINITY;return l||d?Math.min(l?t(u,n,r):f,d?t(c,o,r):f):"none"}i.configMerge=function(){return i.merge(i.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,n,a){var r=e[t]||{},o=n[t];"scales"===t?e[t]=i.scaleMerge(r,o):"scale"===t?e[t]=i.merge(r,[s.getScaleDefaults(o.type),o]):i._merger(t,e,n,a)}})},i.scaleMerge=function(){return i.merge(i.clone(arguments[0]),[].slice.call(arguments,1),{merger:function(t,e,n,a){if("xAxes"===t||"yAxes"===t){var r,o,u,c=n[t].length;for(e[t]||(e[t]=[]),r=0;r=e[t].length&&e[t].push({}),i.merge(e[t][r],!e[t][r].type||u.type&&u.type!==e[t][r].type?[s.getScaleDefaults(o),u]:u)}else i._merger(t,e,n,a)}})},i.where=function(t,e){if(i.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return i.each(t,function(t){e(t)&&n.push(t)}),n},i.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var a=0,r=t.length;a=0;a--){var r=t[a];if(e(r))return r}},i.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},i.almostEquals=function(t,e,n){return Math.abs(t-e)t},i.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},i.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},i.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},i.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,n=Math.round(e);return t===Math.pow(10,n)?n:e},i.toRadians=function(t){return t*(Math.PI/180)},i.toDegrees=function(t){return t*(180/Math.PI)},i.getAngleFromPoint=function(t,e){var n=e.x-t.x,a=e.y-t.y,r=Math.sqrt(n*n+a*a),i=Math.atan2(a,n);return i<-.5*Math.PI&&(i+=2*Math.PI),{angle:i,distance:r}},i.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},i.aliasPixel=function(t){return t%2==0?0:.5},i.splineCurve=function(t,e,n,a){var r=t.skip?e:t,i=e,s=n.skip?e:n,o=Math.sqrt(Math.pow(i.x-r.x,2)+Math.pow(i.y-r.y,2)),u=Math.sqrt(Math.pow(s.x-i.x,2)+Math.pow(s.y-i.y,2)),c=o/(o+u),l=u/(o+u),d=a*(c=isNaN(c)?0:c),f=a*(l=isNaN(l)?0:l);return{previous:{x:i.x-d*(s.x-r.x),y:i.y-d*(s.y-r.y)},next:{x:i.x+f*(s.x-r.x),y:i.y+f*(s.y-r.y)}}},i.EPSILON=Number.EPSILON||1e-14,i.splineCurveMonotone=function(t){var e,n,a,r,s,o,u,c,l,d=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),f=d.length;for(e=0;e0?d[e-1]:null,(r=e0?d[e-1]:null)&&!n.model.skip&&(a.model.controlPointPreviousX=a.model.x-(l=(a.model.x-n.model.x)/3),a.model.controlPointPreviousY=a.model.y-l*a.mK),r&&!r.model.skip&&(a.model.controlPointNextX=a.model.x+(l=(r.model.x-a.model.x)/3),a.model.controlPointNextY=a.model.y+l*a.mK))},i.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},i.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},i.niceNum=function(t,e){var n=Math.floor(i.log10(t)),a=t/Math.pow(10,n);return(e?a<1.5?1:a<3?2:a<7?5:10:a<=1?1:a<=2?2:a<=5?5:10)*Math.pow(10,n)},i.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},i.getRelativePosition=function(t,e){var n,a,r=t.originalEvent||t,s=t.target||t.srcElement,o=s.getBoundingClientRect(),u=r.touches;u&&u.length>0?(n=u[0].clientX,a=u[0].clientY):(n=r.clientX,a=r.clientY);var c=parseFloat(i.getStyle(s,"padding-left")),l=parseFloat(i.getStyle(s,"padding-top")),d=parseFloat(i.getStyle(s,"padding-right")),f=parseFloat(i.getStyle(s,"padding-bottom")),p=o.bottom-o.top-l-f;return{x:n=Math.round((n-o.left-c)/(o.right-o.left-c-d)*s.width/e.currentDevicePixelRatio),y:a=Math.round((a-o.top-l)/p*s.height/e.currentDevicePixelRatio)}},i.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},i.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},i._calculatePadding=function(t,e,n){return(e=i.getStyle(t,e)).indexOf("%")>-1?n/parseInt(e,10):parseInt(e,10)},i._getParentNode=function(t){var e=t.parentNode;return e&&e.host&&(e=e.host),e},i.getMaximumWidth=function(t){var e=i._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,a=n-i._calculatePadding(e,"padding-left",n)-i._calculatePadding(e,"padding-right",n),r=i.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},i.getMaximumHeight=function(t){var e=i._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,a=n-i._calculatePadding(e,"padding-top",n)-i._calculatePadding(e,"padding-bottom",n),r=i.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},i.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},i.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var a=t.canvas,r=t.height,i=t.width;a.height=r*n,a.width=i*n,t.ctx.scale(n,n),a.style.height||a.style.width||(a.style.height=r+"px",a.style.width=i+"px")}},i.fontString=function(t,e,n){return e+" "+t+"px "+n},i.longestText=function(t,e,n,a){var r=(a=a||{}).data=a.data||{},s=a.garbageCollect=a.garbageCollect||[];a.font!==e&&(r=a.data={},s=a.garbageCollect=[],a.font=e),t.font=e;var o=0;i.each(n,function(e){null!=e&&!0!==i.isArray(e)?o=i.measureText(t,r,s,o,e):i.isArray(e)&&i.each(e,function(e){null==e||i.isArray(e)||(o=i.measureText(t,r,s,o,e))})});var u=s.length/2;if(u>n.length){for(var c=0;ca&&(a=i),a},i.numberOfLabelLines=function(t){var e=1;return i.each(t,function(t){i.isArray(t)&&t.length>e&&(e=t.length)}),e},i.color=a?function(t){return t instanceof CanvasGradient&&(t=r.global.defaultColor),a(t)}:function(t){return console.error("Color.js not found!"),t},i.getHoverColor=function(t){return t instanceof CanvasPattern?t:i.color(t).saturate(.5).darken(.1).rgbString()}}},nSDx:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("LvDl"),r=function(){function t(){}return t.prototype.transform=function(t){return a.isUndefined(t)||a.isNull(t)?"-":t},t}()},nhM1:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("CcnG");e.DimensionsHelper=function(){function t(){}return t.prototype.getDimensions=function(t){return t.getBoundingClientRect()},a([r.Injectable()],t)}()},nkY7:function(t,e,n){"use strict";function a(t){return t&&"function"==typeof t.schedule}n.d(e,"a",function(){return a})},nmKl:function(t,e){t.exports='\n \n \n \n Toggle navigation\n Pengalih navigasi\n \n \n Dashboard\n Dasbor\n \n \n Cluster\n Klaster\n \n \n Hosts\n Hos\n \n \n Monitors\n Monitor\n \n \n OSDs\n OSD\n \n \n Configuration\n Konfigurasi\n \n \n CRUSH map\n peta CRUSH\n \n \n Manager modules\n Modul Ceph Manajer\n \n \n Logs\n Log\n \n \n Alerts\n Peringatan\n \n \n Silences\n Silences\n \n \n Pools\n Pool\n \n \n Block\n Blok\n \n \n Images\n Image\n \n \n Mirroring\n Pencerminan\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Sistemfile\n \n \n Object Gateway\n Gerbang Objek\n \n \n Daemons\n Daemon\n \n \n Users\n Pengguna\n \n \n Buckets\n Buket\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Menerima data \n untuk \n \n \n . Mohon tunggu...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Menampilkan data \n sebelumnya \nuntuk \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Gagal memuat data \n untuk\n \n \n .\nMohon periksa kesehatan klaster.\n \n \n \n Back\n Kembali\n \n \n Select a Language\n Pilih bahasa\n \n \n Loading panel data...\n Memuat data panel...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Silakan merujuk ke\n dokumentasi \n tentang\ncara mengonfigurasi dan mengaktifkan fungsi pemantauan.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Dasbor Grafana tidak ada. Mohon merujuk ke\n dokumentasi \n tentang cara\nmenambahkan dasbor ke Grafana.\n \n \n \n Grafana Time Picker\n Pemilih Waktu Grafana\n \n \n Reset Settings\n Reset Pengaturan\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n Gagal memuat data.\n \n \n selected\n dipilih\n X selected\n \n \n found\n ditemukan\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Edit\n \n \n Name\n Nama\n \n \n Description\n Deskripsi\n \n \n Long description\n Deskripsi lengkap\n \n \n Default\n Bawaan\n \n \n Daemon default\n Daemon bawaan\n \n \n Services\n Layanan\n \n \n Values\n Nilai\n \n \n The entered value is too high! It must not be greater than \n .\n \n Nilai yang dimasukkan terlalu tinggi! Tidak boleh lebih besar dari \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Nilai yang dimasukkan terlalu rendah! Tidak boleh lebih rendah dari \n .\n \n \n \n Save\n Simpan\n \n \n CRUSH map viewer\n Penampil peta CRUSH\n \n \n Hosts List\n Daftar Hos\n \n \n Overall Performance\n Performa Keseluruhan\n \n \n No entries found\n Entri tidak ditemukan\n \n \n Cluster Logs\n Log Klaster\n \n \n Audit Logs\n Log Audit\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Memuat konfigurasi...\n \n \n The configuration could not be loaded.\n Konfigurasi tidak dapat dimuat.\n \n \n Edit Manager module\n Edit modul Ceph Manajer\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n Nilai yang dimasukkan bukan UUID yang valid, cth: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n Nilai yang dimasukkan harus alamat IP yang valid.\n \n \n This field is required.\n Isian ini tidak boleh kosong.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n Nilai yang dimasukkan terlalu tinggi! Harus lebih kecil atau sama dengan \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n Nilai yang dimasukkan terlalu rendah! Harus lebih besar atau sama dengan \n .\n \n \n \n The entered value needs to be a number.\n Nilai yang dimasukkan harus berupa angka.\n \n \n The entered value needs to be a number or decimal.\n Nilai yang dimasukkan harus berupa angka atau desimal.\n \n \n Update\n Perbarui\n \n \n Status\n Status\n \n \n Cluster ID\n ID Klaster\n \n \n monmap modified\n monmap diubah\n \n \n monmap epoch\n monmap epoch\n \n \n quorum con\n kuorum con\n \n \n quorum mon\n kuorum mon\n \n \n required con\n con yang dibutuhkan\n \n \n required mon\n mon yang dibutuhkan\n \n \n In Quorum\n Memenuhi Kuorum\n \n \n Not In Quorum\n Tidak dalam Kuorum\n \n \n Cancel\n Batal\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Anda yakin ingin \n dari \n ?\n \n \n \n Yes, I am sure.\n Ya, saya yakin.\n \n \n Cluster-wide OSD Flags\n Flag OSD Klaster\n \n \n Submit\n Kirim\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Tingkat lanjut...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Prioritas pemulihan OSD\n \n \n Priority\n Prioritas\n \n \n Customize priority values\n Ubah nilai prioritas\n \n \n This field is required!\n Isian ini harus diisi!\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n Nilai yang dimasukkan terlalu tinggi! Tidak boleh lebih tinggi dari \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n Nilai yang dimasukkan terlalu rendah! Tidak boleh lebih rendah dari \n .\n \n \n \n Reweight OSD\n Ubah bobot OSD\n \n \n The value needs to be between 0 and 1.\n Nilai harus antara 0 dan 1.\n \n \n Reweight\n Ubah bobot\n \n \n OSDs \n Scrub\n \n OSD \n Scrub\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Dalam } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Anda akan menerapkan\n scrub pada\nOSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {dalam } }\n \n \n OSDs List\n Daftar OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \n OSD \n \n akan ditandai\n \n \n jika ingin melanjutkan.\n \n \n \n The OSD is not safe to destroy!\n OSD tidak aman untuk dihancurkan!\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n OSD \n \n akan\n \n \n jika ingin melanjutkan.\n \n \n \n Details\n Detail\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Nilai\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Tutup\n \n \n Delete\n Hapus\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Kesehatan\n \n \n Statistics\n Statistik \n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Mohon periksa \n dokumentasi \n \ntentang cara mengonfigurasi dan aktfikan fungsi manajemen NFS Ganesha.\n \n \n \n Clients\n Klien\n \n \n Any client can access\n Semua klien dapat mengakses\n \n \n Addresses\n Alamat\n \n \n Required field\n Wajib diisi\n \n \n Must contain one or more comma-separated values\n Harus mengandung satu atau lebih nilai yang dipisahkan koma\n \n \n For example:\n Contoh:\n \n \n Access Type\n Tipe Akses\n \n \n Squash\n Squash\n \n \n Add clients\n Tambah klien\n \n \n Loading...\n Memuat...\n \n \n -- No cluster available --\n -- Klaster tidak tersedia --\n \n \n -- Select the cluster --\n -- Pilih klaster --\n \n \n Add daemon\n Tambah daemon\n \n \n Storage Backend\n Backend Penyimpanan\n \n \n -- No data pools available --\n -- Tidak ada pool data tersedia --\n \n \n -- Select the storage backend --\n -- Pilih backend penyimpanan --\n \n \n Object Gateway User\n Pengguna Gerbang Objek\n \n \n -- No users available --\n -- Pengguna tidak tersedia --\n \n \n -- Select the object gateway user --\n -- Pilih pengguna gerbang objek --\n \n \n CephFS User ID\n ID Pengguna CephFS\n \n \n -- No clients available --\n -- Klien tidak tersedia --\n \n \n -- Select the cephx client --\n -- Pilih klien cephx --\n \n \n CephFS Name\n Nama CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Label Keamanan\n \n \n Enable security label\n Aktifkan label keamanan\n \n \n CephFS Path\n CephFS Path\n \n \n Path need to start with a \'/\' and can be followed by a word\n Lintasan atau path harus dimulai dengan \'/\' dan diikuti dengan kata\n \n \n New directory will be created\n Direktori baru akan dibuat\n \n \n Path\n Path\n \n \n Path can only be a single \'/\' or a word\n Path hanya boleh berupa \'/\' atau kata\n \n \n New bucket will be created\n Buket baru akan dibuat\n \n \n NFS Protocol\n Protokol NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Tag NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Alternatif akses untuk mount \n NFSv3\n (tidak boleh diawali /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Klien mungkin tidak dapat mount subdirektori (cth. jika Tag = foo, klien mungkin tidak bisa mount foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n Dengan menggunakan opsi Tag yang berbeda, Path yang sama akan diekspor beberapa kali.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Posisi dari \n NFS v4\n yang diekspor ini menempati \n Pseudo FS \n (ini harus unik).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n Dengan menggunakan opsi Pseudo yang berbeda, Path yang sama akan diekspor beberapa kali.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Tipe akses tidak tersedia --\n \n \n -- Select the access type --\n -- Pilih tipe akses --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Squash tidak tersedia --\n \n \n --Select what kind of user id squashing is performed --\n -- Pilih jenis squashing id pengguna yang akan dilakukan --\n \n \n Transport Protocol\n Protokol Transport\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Selamat datang di Ceph!\n The welcome message on the login page\n \n \n Username is required\n Nama pengguna harus diisi\n \n \n Password is required\n Kata sandi harus diisi\n \n \n Login\n Masuk\n \n \n Sorry, the user does not exist in Ceph.\n Maaf, pengguna tidak terdaftar di Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Kembali ke Halaman Masuk \n \n . Anda akan dikeluarkan dari Penyedia Identitas saat Anda mencoba masuk.\n \n \n \n Forbidden\n Terlarang\n \n \n Sorry, you are not allowed to see what you were looking for.\n Maaf, Anda tidak dizinkan melihat hal yang Anda inginkan.\n \n \n Sorry, we could not find what you were looking for\n Maaf, kami tidak dapat menemukan yang Anda cari\n \n \n Remove all\n Hapus semua\n \n \n Recent Notifications\n Notifikasi terkini\n \n \n There are no background tasks.\n Tidak ada tugas latar belakang.\n \n \n Background Tasks\n Tugas Latar Belakang\n \n \n Help\n Bantuan\n \n \n Documentation\n Dokumentasi \n \n \n API\n API\n \n \n About\n Tentang\n \n \n Dashboard Settings\n Pengaturan Dasbor\n \n \n User management\n Manajemen Pengguna\n \n \n Logged in user\n Pengguna masuk\n \n \n Signed in as\n \n \n \n \n Masuk sebagai\n \n \n \n \n \n \n Sign out\n Keluar\n \n \n Name...\n Nama...\n \n \n The chosen name is already in use.\n Nama yang dipilih sudah digunakan.\n \n \n Description...\n Deskripsi...\n \n \n Permissions\n Izin\n \n \n Roles\n Peran\n \n \n Username\n Nama pengguna\n \n \n Password\n Kata sandi\n \n \n Confirm password\n Konfirmasi kata sandi\n \n \n Password confirmation doesn\'t match the password.\n Konfirmasi kata sandi tidak sesuai dengan kata sandi.\n \n \n Full name\n Nama lengkap\n \n \n Email\n Email\n \n \n Invalid email.\n Email tidak valid.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Anda akan menghapus izin "pengguna baca / perbarui" dari diri Anda sendiri.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Jika melanjutkan, Anda tidak akan lagi dapat menambahkan atau menghapus peran dari pengguna manapun.\n \n \n Are you sure you want to continue?\n Anda yakin ingin melanjutkan?\n \n \n Performance counters not available\n Penghitung kinerja tidak tersedia\n \n \n Attributes (OSD map)\n Atribut (peta OSD)\n \n \n Metadata not available\n Metadata tidak tersedia\n \n \n Metadata\n Metadata\n \n \n Performance counter\n Penghitung kinerja\n \n \n Histogram not available: \n \n \n Histogram tidak tersedia: \n \n \n \n \n Writes\n Tulis\n \n \n Reads\n Baca\n \n \n Histogram\n Histogram\n \n \n Performance Details\n Detail Performa\n \n \n Current values\n Nilai saat ini\n \n \n Type\n Tipe\n \n \n Min\n Min\n \n \n Max\n Maks\n \n \n Flags\n Flag\n \n \n Source\n Sumber\n \n \n Level\n Level\n \n \n Can be updated at runtime (editable)\n Boleh diperbarui saat dijalankan (bisa diedit)\n \n \n Tags\n Tag\n \n \n Enum values\n Nilai Enum\n \n \n See also\n Lihat juga\n \n \n Cluster Status\n Status Klaster\n \n \n Manager Daemons\n Manajer Daemon\n \n \n Object Gateways\n Gerbang Objek\n \n \n Metadata Servers\n Server Metadata\n \n \n iSCSI Gateways\n Gateway iSCSI\n \n \n Client IOPS\n IOPS klien\n \n \n Client Throughput\n Throughput Pengguna\n \n \n Client Read/Write\n Baca/Tulis Klien\n \n \n Recovery Throughput\n Throughput Pemulihan\n \n \n Scrub\n Scrub\n \n \n Performance\n Kinerja\n \n \n Raw Capacity\n Kapasitas mentah\n \n \n Objects\n Objek\n \n \n PGs per OSD\n PG per OSD\n \n \n PG Status\n Status PG\n \n \n Capacity\n Kapasitas\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Lihat \n \n Log untuk detil lainnya.\n \n \n \n Ranks\n Peringkat\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Klien: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n Pindahkan image ke tempat sampah\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Untuk pindahkan \n \n /\n \n ke tempat sampah,\ntekan \n Pindah Image \n . Anda juga dapat memilih tanggal kedaluwarsa.\n \n \n \n Protection expires at\n Proteksi berakhir pada\n \n \n NOT PROTECTED\n TIDAK DIPROTEKSI\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Format tanggal salah. Mohon gunakan "TTTT-BB-HH JJ:mm:dd".\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n Proteksi telah kedaluarsa. Mohon pilih tanggal masa mendatang atau kosongkan.\n \n \n Move Image\n Pindahkan Image\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Ikhtisar\n \n \n Targets\n Target\n \n \n Discovery Authentication\n Otentikasi Discovery\n \n \n User\n Pengguna\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nama pengguna harus terdiri dari 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Pengguna Bersama\n \n \n Mutual Password\n Kata sandi bersama\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Mohon cek ke \n dokumentasi \n \ntentang cara mengonfigurasi dan mengaktifkan fungsi manajemen iSCSI Target.\n \n \n \n Available information:\n Informasi tersedia:\n \n \n iSCSI Targets not available\n iSCSI Target tidak tersedia\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Hanya tersedia untuk image RBD dengan \n fast-diff\n yang diaktifkan.\n \n \n \n Pool\n Pool\n \n \n Data Pool\n Pool Data\n \n \n Created\n Dibuat\n \n \n Size\n Ukuran\n \n \n Object size\n Ukuran objek\n \n \n Features\n Fitur\n \n \n Provisioned\n Disiapkan\n \n \n N/A\n N/A\n \n \n Total provisioned\n Total disiapkan\n \n \n Striping unit\n Unit setrip\n \n \n Striping count\n Jumlah setrip\n \n \n Parent\n Induk\n \n \n Block name prefix\n Awalan nama blok\n \n \n Order\n Urutan\n \n \n Snapshots\n Snapshot\n \n \n Image\n Image\n \n \n This setting overrides the global value\n Pengaturan ini akan membatalkan nilai global\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Ini adalah nilai global. Tidak ada nilai yang diset untuk image ini.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \'/\' dan \'@\' tidak diperbolehkan.\n \n \n -- No rbd pools available --\n -- Tidak ada pool rbd tersedia --\n \n \n -- Select a pool --\n -- Pilih pool --\n \n \n Use a dedicated data pool\n Gunakan pool data terdedikasi\n \n \n Data pool\n Pool data\n \n \n Dedicated pool that stores the object-data of the RBD.\n Pool terdedikasi yang menyimpan data-objek dari RBD.\n \n \n e.g., 10GiB\n cth. 10GiB\n \n \n You have to increase the size.\n Anda harus menaikkan ukuran.\n \n \n Advanced\n Tingkat lanjut\n \n \n Striping\n Setrip\n \n \n Stripe unit\n Unit setrip\n \n \n -- Select stripe unit --\n -- Pilih ukuran setrip --\n \n \n This field is required because stripe count is defined!\n Isian ini harus diisi karena jumlah setrip telah ditentukan!\n \n \n Stripe unit is greater than object size.\n Unit setrip lebih besar dari ukuran objek.\n \n \n Stripe count\n Jumlah setrip\n \n \n This field is required because stripe unit is defined!\n Isian wajib diisi karena unit setrip didefinisikan!\n \n \n Stripe count must be greater than 0.\n Jumlah setrip harus lebih besar dari 0.\n \n \n \n RBD Snapshot\n \n \n Snapshot RBD\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Ganti nama} other {Buat} }\n \n \n \n Snapshot\n \n \n Snapshot\n \n \n \n PROTECTED\n DIPROTEKSI\n \n \n UNPROTECTED\n TIDAK DIPROTEKSI\n \n \n You are about to rollback\n Anda akan mengembalikan semula\n \n \n Purge Trash\n Kosongkan Tempah Sampah\n \n \n To purge, select one or All images and click\n Untuk menghapus, pilih satu atau Semua image dan pilih\n \n \n Pool:\n Pool:\n \n \n Pool name...\n Nama Pool...\n \n \n All\n Semua\n \n \n Restore Image\n Pulihkan Image\n \n \n To restore\n Untuk memulihkan\n \n \n type the image\'s new name and click\n ketik nama baru image dan pilih\n \n \n New Name\n Nama Baru\n \n \n Expired at\n Kedaluwarsa pada\n \n \n Protected until\n Diproteksi hingga\n \n \n This image is protected until \n .\n \n Image ini diproteksi hingga \n .\n \n \n \n Trash\n Tempat sampah\n \n \n iSCSI Topology\n Topologi iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Mengganti parameter ini dari nilai bawaan biasanya tidak diperlukan.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Pengaturan\n \n \n Backstore\n Backstore\n \n \n Confirm\n Konfirmasi\n \n \n Advanced Settings\n Pengaturan Lanjut\n \n \n Target IQN\n Target IQN\n \n \n IQN has wrong pattern.\n Pola IQN salah.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Suatu IQN memiliki notasi seperti ini \'iqn.$tahun-$bulan.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Contoh: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Informasi lainnya\n \n \n This target has modified advanced settings.\n Pengaturan lanjutan target ini telah dimodifikasi.\n \n \n Portals\n Portal\n \n \n At least \n gateways are required.\n \n Dibutuhkan min \n gerbang/gateway.\n \n \n \n Add portal\n Tambahkan portal\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Pengaturan Image ini telah dimodifikasi.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Tambahkan image\n \n \n ACL authentication\n Otentikasi ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Inisiator\n \n \n Initiator\n Inisiator\n \n \n Client IQN\n Klien IQN\n \n \n Initiator IQN needs to be unique.\n Inisiator IQN harus unik.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Nama pengguna harus terdiri atas 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n Inisiator termasuk ke dalam grup. Image akan dikonfigurasi di dalam grup.\n \n \n No items added.\n Tidak ada yang ditambahkan.\n \n \n Add initiator\n Tambahkan inisiator\n \n \n Groups\n Grup\n \n \n Group\n Grup\n \n \n Add group\n Tambahkan grup\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Konfigurasi RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Menghapus nilai konfigurasi lokal. Nilai konfigurasi induk akan diturun dan digunakan.\n \n \n The mininum value is 0\n Nilai minimum adalah 0\n \n \n Issues\n Masalah\n \n \n Syncing\n Menyinkronkan\n \n \n Ready\n Siap\n \n \n Edit pool mirror mode\n Edit mode pencerminan pool\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Untuk mengubah mode pencerminan pool\xa0\n \n \n , pilih mode baru dari daftar dan klik\xa0\n Perbarui\n .\n \n \n \n Mode\n Mode\n \n \n Peer clusters must be removed prior to disabling mirror.\n Klaster mitra harus dihapus sebelum menonaktfikan pencerminan.\n \n \n \n \n pool mirror peer\n \n \n \nmitra pencerminan pool\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Tambah} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n pool\natribut mitra pencerminan untuk pool \n \n \n dan klik \n Kirim\n .\n \n \n \n Cluster Name\n Nama Klaster\n \n \n The cluster name is not valid.\n Nama klaster tidak valid.\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n CephX ID tidak valid.\n \n \n Monitor Addresses\n Alamat Monitor\n \n \n Comma-delimited addresses...\n Alamat dengan pemisah-koma...\n \n \n The monitory address is not valid.\n Alamat monitor tidak valid.\n \n \n CephX Key\n CephX Key\n \n \n Base64-encoded key...\n Base64-encoded key...\n \n \n CephX key must be base64 encoded.\n Kunci CephX harus base64 encoded.\n \n \n Pools List\n Daftar pool\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Nama hanya boleh terdiri dari alfanumerik, tanda hubung, dan garis bawah.\n \n \n The chosen erasure code profile name is already in use.\n Nama profil erasure code sudah digunakan.\n \n \n Plugin\n Plugin\n \n \n Data chunks (k)\n Pecahan data (k)\n \n \n Must be equal to or greater than 2.\n Harus sama dengan atau lebih dari 2.\n \n \n Coding chunks (m)\n Pecahan Coding (m)\n \n \n Must be equal to or greater than 1.\n Harus sama dengan atau lebih dari 1.\n \n \n Durability estimator (c)\n Penduga daya tahan (c)\n \n \n Locality (l)\n Lokalitas (l)\n \n \n Crush failure domain\n Domain kegagalan Crush\n \n \n Crush Locality\n Lokalitas Crush\n \n \n None\n Tidak ada\n \n \n Technique\n Teknik\n \n \n Packetsize\n Ukuran paket\n \n \n Crush root\n Crush root\n \n \n Crush device class\n Kelas perangkat Crush\n \n \n any\n apa saja\n \n \n Directory\n Direktori\n \n \n The chosen Ceph pool name is already in use.\n Nama pool Ceph yang dipilih sudah digunakan.\n \n \n Pool type\n Jenis pool\n \n \n -- Select a pool type --\n -- Pilih jenis pool --\n \n \n Placement groups\n Grup penempatan\n \n \n At least one placement group is needed!\n Dibutuhkan setidaknya satu grup penempatan!\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Klaster Anda tidak dapat menangani PG sebanyak ini. Mohon hitung ulang jumlah PG yang dibutuhkan.\n \n \n Calculation help\n Bantuan penghitungan\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Pengaturan PG saat ini telah dihitung untuk Anda, Anda\nharus memastikan nilai tersebut sesuai kebutuhan sebelum mengajukan.\n \n \n Crush ruleset\n Aturan CRUSH\n \n \n -- Select a crush rule --\n -- Pilih aturan crush --\n \n \n Crush rule\n Aturan crush\n \n \n Crush steps\n Crush steps\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n Aturan crush tidak dapat digunakan di klaster ini karena\njumlah OSD terlalu sedikit untuk memenuhi syarat minimal OSD untuk aturan ini.\n \n \n Replicated size\n Jumlah replikasi\n \n \n Minimum: \n \n \n Minimum: \n \n \n \n \n Maximum: \n \n \n Maksimum: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n Ukuran yang dimasukkan di luar jangkauan. Nilai yang valid\ndari \n hingga \n .\n \n \n \n Erasure code profile\n Profil erasure code\n \n \n -- No erasure code profile available --\n -- Tidak ada profil erasure code --\n \n \n -- Select an erasure code profile --\n -- Pilih profil erasure code --\n \n \n EC Overwrites\n EC Overwrites\n \n \n Applications\n Aplikasi\n \n \n Compression\n Kompresi\n \n \n Algorithm\n Algoritma\n \n \n -- No erasure compression algorithm available --\n -- Tidak ada algoritma pengompresian erasure --\n \n \n Minimum blob size\n Ukuran blob minimum\n \n \n e.g., 128KiB\n cth. 128KiB\n \n \n Value should be greater than 0\n Nilai harus lebih besar dari 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Ukuran maksimum blob\n \n \n e.g., 512KiB\n cth. 512KiB\n \n \n Value should be greater than the minimum blob size\n Nilai harus lebih besar dari ukuran minimum blob\n \n \n Ratio\n Rasio\n \n \n Compression ratio\n Rasio kompresi\n \n \n Value should be between 0.0 and 1.0\n Nilai harus antara 0.0 dan 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Tidak boleh membuat pool RBD dengan nama yang mengandung \'/\'.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Mohon ganti atau hapus \'rbd\' dari daftar aplikasi.\n \n \n Cache Tiers Details\n Detil Cache Bertingkat\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Silakan cek kembali \n dokumentasi \n \ntentang cara mengonfigurasi dan mengaktifkan fungsi manajemen Gerbang Objek.\n \n \n \n Daemons List\n Daftar Daemon\n \n \n Performance Counters\n Penghitung Performa\n \n \n Loading bucket data...\n Memuat data buket...\n \n \n The bucket data could not be loaded.\n Buket data tidak dapat dimuat.\n \n \n Id\n Id\n \n \n The value is not valid.\n Nilai tidak valid.\n \n \n Owner\n Pemilik\n \n \n -- Select a user --\n -- Pilih pengguna --\n \n \n ID\n ID\n \n \n Index type\n Jenis indeks\n \n \n Placement rule\n Aturan penempatan\n \n \n Marker\n Penanda\n \n \n Maximum marker\n Penanda maksimum\n \n \n Version\n Versi\n \n \n Master version\n Versi Master\n \n \n Modification time\n Modifikasi waktu\n \n \n Zonegroup\n Zona grup\n \n \n Bucket quota\n Kuota Buket\n \n \n Enabled\n Diaktifkan\n \n \n Maximum size\n Ukuran maksimum\n \n \n Unlimited\n Tak terbatas\n \n \n Maximum objects\n Objek maksimum\n \n \n -- Select a username --\n -- Pilih nama pengguna --\n \n \n Auto-generate key\n Kunci otomatis-dibuat\n \n \n Access key\n Kunci akses\n \n \n Secret key\n Kunci rahasia\n \n \n Email address\n Alamat email\n \n \n Suspended\n Dihentikan\n \n \n System\n Sistem\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {Tidak} 1 {Ya} }\n \n \n Maximum buckets\n Buket maksimum\n \n \n Subusers\n Subpengguna\n \n \n Capabilities\n Kemampuan\n \n \n User quota\n Kuota pengguna\n \n \n Show\n Tampilkan\n \n \n Keys\n Kunci\n \n \n -- Select a type --\n -- Pilih tipe --\n \n \n Permission\n Izin\n \n \n -- Select a permission --\n -- Pilih izin --\n \n \n Subuser\n Subpengguna\n \n \n The chosen subuser ID is already in use.\n ID subpengguna sudah digunakan.\n \n \n read, write\n baca, tulis\n \n \n full\n penuh\n \n \n Swift key\n Kunci Swift\n \n \n Auto-generate secret\n Sandi otomatis-dibuat\n \n \n Loading user data...\n Memuat data pengguna...\n \n \n The user data could not be loaded.\n Data pengguna tidak dapat dimuat.\n \n \n The chosen user ID is already in use.\n ID pengguna yang dipilih sudah digunakan.\n \n \n This is not a valid email address.\n Ini bukan alamat email yang valid.\n \n \n The chosen email address is already in use.\n Alamat email yang dipilih sudah digunakan.\n \n \n Max. buckets\n Maks. buket\n \n \n The entered value must be >= 0.\n Nilai yang dimasukkan harus >= 0.\n \n \n S3 key\n Kunci S3\n \n \n There are no subusers.\n Tidak ada sub-pengguna.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Kunci tidak ditemukan.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Kemampuan tidak ada.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Ukuran tak terbatas\n \n \n Max. size\n Ukuran maks.\n \n \n Unlimited objects\n Objek tak terbatas\n \n \n Max. objects\n Objek maks.\n \n \n Current\n Terkini\n \n \n Updated discovery authentication\n Otentikasi penemuan telah diperbarui\n \n \n There are no portals available.\n Tidak ada portal yang tersedia.\n \n \n There are no images available.\n Tidak ada image yang tersedia.\n \n \n There are no images available. Please make sure you add an image to the target.\n Tidak ada image yang tersedia. Mohon pastikan Anda telah menambahkan image ke target.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Tidak ada inisiator tersedia. Mohon pastikan Anda telah menambahkan inisiator ke target.\n \n \n target\n target\n \n \n Target\n Target\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n Keadaan\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Baca Bytes\n \n \n Write Bytes\n Tulis Bytes\n \n \n Read Ops\n Ops Baca\n \n \n Write Ops\n Ops Tulis\n \n \n A/O Since\n A/O Sejak\n \n \n Instance\n Instance\n \n \n Hostname\n Nama hos\n \n \n Issue\n Isu\n \n \n Progress\n Kemajuan\n \n \n Disabled\n Dimatikan\n \n \n Edit Mode\n Mode Edit\n \n \n Add Peer\n Tambahkan Mitra\n \n \n Edit Peer\n Edit Mitra\n \n \n Delete Peer\n Hapus Mitra\n \n \n Leader\n Pemimpin\n \n \n # Local\n # Lokal\n \n \n # Remote\n # Jauh\n \n \n mirror peer\n mitra pencerminan\n \n \n Key\n Kunci\n \n \n RBD\n RBD\n \n \n Deep flatten\n Perataan mendalam\n \n \n Layering\n Lapisan\n \n \n Exclusive lock\n Kunci eksklusif\n \n \n Object map (requires exclusive-lock)\n Peta objek (butuh kunci-eksklusif)\n \n \n Journaling (requires exclusive-lock)\n Penjurnalan (membutuhkan kunci-eksklusif)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Kembalikan snapshot RBD\n \n \n Rollback\n Kembalikan\n \n \n RBD snapshot\n Snapshot RBD\n \n \n Deleted At\n Dihapus pada\n \n \n id\n id\n \n \n type\n tipe\n \n \n state\n keadaan\n \n \n version\n versi\n \n \n Host\n Hos\n \n \n root\n induk\n \n \n Rank\n Peringkat\n \n \n Daemon\n Daemon\n \n \n Activity\n Aktivitas\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inode\n \n \n Usage\n Penggunaan\n \n \n Standby daemons\n Daemon siaga\n \n \n The value can be updated at runtime.\n Nilai dapat diperbarui saat runtime.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Daemon/klien tidak dapat mengambil nilai dari\nbasis data konfigurasi monitor. Kami tidak mengizinkan mengubah ini dari \'ceph config\nset ...\'. Pilihan ini harus dikonfigurasi melalui ceph.conf atau CLI.\n \n \n Option takes effect only during daemon startup.\n Pilihan hanya dapat bekerja selama daemon dimulai.\n \n \n Option only affects cluster creation.\n Pilihan hanya berpengaruh pada pembuatan klaster.\n \n \n Option only affects daemon creation.\n Pilihan hanya berpengaruh pada pembuatan daemon.\n \n \n Updated config option \n \n \n Perbarui opsi konfigurasi \n \n \n \n \n Service\n Layanan\n \n \n Current value\n Nilai saat ini\n \n \n Editable\n Dapat diedit\n \n \n Updated options for module "\n ".\n \n Opsi diperbarui untuk modul &quot;\n &quot;.\n \n \n \n Enable\n Aktifkan\n \n \n Disable\n Nonaktifkan\n \n \n Reconnecting, please wait ...\n Menghubungkan kembali, mohon tunggu...\n \n \n Public Address\n Alamat Publik\n \n \n Open Sessions\n Buka Sesi\n \n \n No In\n Tidak boleh Masuk\n \n \n OSDs that were previously marked out will not be marked back in when they start\n OSD yang telah ditandai keluar tidak akan ditandai masuk saat mereka menyala\n \n \n No Out\n Tidak boleh Keluar\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD tidak akan otomatis ditandai keluar setelah interval dikonfigurasi\n \n \n No Up\n Tidak Nyala\n \n \n OSDs are not allowed to start\n OSD tidak diizinkan menyala\n \n \n No Down\n Tidak Mati\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Laporan kegagalan OSD sedang diabaikan sehingga monitor tidak akan menandai OSD mati\n \n \n Pause\n Jeda\n \n \n Pauses reads and writes\n Jeda baca dan tulis\n \n \n No Scrub\n Nonaktifkan Scrub\n \n \n Scrubbing is disabled\n Scrubbing dinonaktifkan\n \n \n No Deep Scrub\n Nonaktifkan Deep Scrub\n \n \n Deep Scrubbing is disabled\n Deep Scrubing dinonaktifkan\n \n \n No Backfill\n Tidak ada Penambalan\n \n \n Backfilling of PGs is suspended\n Penambalan PG dihentikan\n \n \n No Recover\n Tidak ada Pemulihan\n \n \n Recovery of PGs is suspended\n Pemulihan PG dihentikan\n \n \n Bitwise Sort\n Urutan Bitwise\n \n \n Use bitwise sort\n Gunakan urutan bitwise\n \n \n Purged Snapdirs\n Buang Snapdirs\n \n \n OSDs have converted snapsets\n OSD memiliki snapset yang dikonversi\n \n \n Recovery Deletes\n Pulihkan yang telah dihapus\n \n \n Deletes performed during recovery instead of peering\n Penghapusan dilakukan saat pemulihan bukan saat bermitra\n \n \n PG Log Hard Limit\n Batas Maks Log PG\n \n \n Puts a hard limit on pg log length\n Taruh batas maks pada panjang log pg\n \n \n Updated OSD Flags\n Flag OSD diperbarui\n \n \n out\n keluar\n \n \n in\n masuk\n \n \n down\n gugur\n \n \n Mark\n Tandai\n \n \n OSD lost\n OSD hilang\n \n \n marked lost\n ditandai hilang\n \n \n Purge\n Buang\n \n \n OSD\n OSD\n \n \n purged\n dibuang\n \n \n destroy\n hancurkan\n \n \n destroyed\n dihancurkan\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n PG\n \n \n Read bytes\n Bita baca\n \n \n Writes bytes\n Bita tulis\n \n \n Read ops\n Ops baca\n \n \n Write ops\n Ops tulis\n \n \n Mark OSD \n \n \n Tandai OSD \n \n \n \n \n Mark \n \n \n Tandai \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Maks Penambalan\n \n \n Recovery Max Active\n Maks Pemulihan Aktif\n \n \n Recovery Max Single Start\n Maks Menjalankan Pemulihan Tunggal\n \n \n Recovery Sleep\n Jeda Pemulihan\n \n \n Custom\n Ubahsuai\n \n \n Updated OSD recovery speed priority "\n "\n \n Piroritas &quot;\n &quot; kecepatan pemulihan OSD diperbarui.\n \n \n \n \n was initialized in the following OSD: \n \n \n \n telah diinisialisasi pada OSD berikut: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Tugas\n \n \n Severity\n Keparahan\n \n \n Started\n Dimulai\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Diperbarui\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Terpakai\n \n \n Avail.\n Tersedia\n \n \n Clean\n Bersih\n \n \n Working\n Bekerja\n \n \n Warning\n Peringatan\n \n \n Unknown\n Tidak diketahui\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n nyala\n \n \n no filesystems\n tidak ada filesistem\n \n \n active\n aktif\n \n \n standby\n siaga\n \n \n n/a\n n/a\n \n \n active daemon\n daemon aktif\n \n \n quorum\n kuorum\n \n \n The NFS Ganesha service is not configured.\n Layanan NFS Ganesha belum dikonfigurasi.\n \n \n Transport\n Transport\n \n \n CephFS User\n Pengguna CephFS\n \n \n CephFS Filesystem\n Filesistem CephFS\n \n \n (inherited from global config)\n (diturunkan dari konfig global)\n \n \n inherited from global config\n diturunkan dari konfig global\n \n \n -- Select what kind of user id squashing is performed --\n -- Pilih jenis squashing id pengguna yang akan dilakukan --\n \n \n There are no daemons available.\n Tidak ada daemon tersedia.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Mode Cache\n \n \n Min Evict Age\n Min Waktu Usir\n \n \n Min Flush Age\n Min Waktu Buang\n \n \n Target Max Bytes\n Target Maks Bita\n \n \n Target Max Objects\n Target Maks Objek\n \n \n No applications added\n Tidak ada aplikasi ditambahkan\n \n \n Applications limit reached\n Batas aplikasi tercapai\n \n \n A pool can only have up to four applications definitions.\n Sebuah pool hanya dapat memiliki empat definisi aplikasi.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Karakter diperbolehkan \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n Panjang maksimum 128 karakter\n \n \n Filter or add applications\n Saring atau tambah aplikasi\n \n \n Add application\n Tambah aplikasi\n \n \n pool\n pool\n \n \n erasure code profile\n profil erasure code\n \n \n Replica Size\n Ukuran Replikasi\n \n \n Last Change\n Perubahan Terakhir\n \n \n Erasure Coded Profile\n Profil Erasure Code\n \n \n Crush Ruleset\n Aturan Crush\n \n \n Write bytes\n Bita tulis\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n buket\n \n \n Updated Object Gateway bucket "\n "\n \n Buket Gerbang Objek &quot;\n &quot; diperbarui\n \n \n \n Created Object Gateway bucket "\n "\n \n Buat buket Gerbang Objek &quot;\n &quot;\n \n \n \n buckets\n buket\n \n \n capability\n capability\n \n \n user\n pengguna\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Perbarui pengguna Gerbang Objek &quot\n ;&quot;\n \n \n \n Created Object Gateway user "\n "\n \n Buat pengguna Gerbang Objek &quot;\n &quot;\n \n \n \n users\n pengguna\n \n \n Swift Key\n Swift Key\n \n \n Scope\n Cakupan\n \n \n Read\n Baca\n \n \n Create\n Buat\n \n \n role\n role\n \n \n Created role \'\n \'\n \n Peran \'\n \' dibuat\n \n \n \n Updated role \'\n \'\n \n Peran \'\n \' diperbarui\n \n \n \n System Role\n Peran Sistem\n \n \n Deleted role \'\n \'\n \n Peran \'\n \' dihapus\n \n \n \n Created user "\n "\n \n Pengguna &quot;\n &quot; dibuat\n \n \n \n Update user\n Perbarui pengguna\n \n \n Continue\n Lanjutkan\n \n \n You were automatically logged out because your roles have been changed.\n Anda dikeluarkan otomatis karena peran Anda telah berubah.\n \n \n Updated user "\n "\n \n Perbarui pengguna &quot;\n &quot;\n \n \n \n Deleted user "\n "\n \n Hapus pengguna &quot;\n &quot;\n \n \n \n Failed to delete user "\n "\n \n Gagal menghapus pengguna &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Saat ini Anda masuk sebagai &quot;\n &quot;\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Tiap objek dipecah dalam pecahan-data, masing-masing disimpan pada OSD yang berbeda.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Hitung pecahan coding untuk tiap objek dan simpan pada OSD yang berbeda.\nJumlah pecahan data juga menjadi jumlah OSD yang diperbolehkan mati tanpa kehilangan data.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Plugin jerasure merupakan plugin paling umum dan fleksibel,\nserta merupakan plugin bawaan Ceph untuk pool erasure code.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n Teknik yang lebih fleksibel yaitu reed_sol_van : cukup mengeset k\ndan m. Teknik cauchy_good bisa lebih cepat, namun Anda harus memilih ukuran paket\ndengan seksama. Semua reed_sol_r6_op, liberation, blaum_roth, liber8tion setara dengan RAID6\ndalam hal mereka hanya bisa diatur dengan m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n Penyandian dilakukan setiap saat pada ukuran bita paket.\nSulit untuk menentukan ukuran paket yang tepat.\nSilakan cek dokumentasi jerasure untuk informasi lebih mendalam.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Pada plugin jerasure, saat objek dengan erasure code disimpan pada\nbanyak OSD, pemulihan dari OSD yang hilang membutuhkan akses dari OSD lainnya.\nContoh, saat jerasure dikonfigurasi dengan k=8 dan m=4, saat satu OSD mati, maka pemulihan akan membutuhkan pembacaan dari tujuh OSD lainnya.\n\nPlugin lrc erasure code membuat pecahan paritas lokal agar dapat memulihkan \ndengan OSD yang lebih sedikit. Contoh, jika lrc dikonfigurasi dengan k=8, m=4, dan l=4, maka lrc akan\nmembuat pecahan paritas tambahan tiap empat OSD. Saat satu OSD mati, maka pemulihan dapat dilakukan hanya dengan 4 OSD, alih-alih 7 OSD.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Kelompokkan pecahan data dan coding ke dalam ukuran lokalitas. Controh\nuntuk k=4 dan m=2, saat lokalitas=3 dua grup dari tiga akan dibuat. Setiap set akan\ndipulihkan tanpa membaca pecahan dari set lainnya.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Tipe buket crush setiap set pecahan yang didefinisikan oleh l \nakan disimpan. Contoh, jika diset pada rak, tiap grup pecahan l akan \nditempatkan pada rak berbeda. Ini akan digunakan pada aturan step CRUSH yaitu \nmemilih tiap rak. Jika tidak diset, tidak akan ada pengelompokkan.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Plugin isa menghimpun perpustakaan ISA. Hanya dapat berjalan pada prosesor Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Plugin ISA memiliki dua jenis Reed Solomon.\nJika reed_sol_van diset, maka menjadi Vandermonde, jika cauchy diset, maka menjadi Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Plugin shec mengenkapsulasi banyak pustaka SHEC.\nHal ini agar ceph dapat dipulihkan dengan lebih efisien dari kode Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Jumlah potongan paritas yang masing-masing mencakup setiap potongan data \ndalam rentang perhitungannya. Nilai ini digunakan untuk perkiraan daya tahan. Contoh, jika c=2, \n2 OSD dapat mati tanpa kehilangan data.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Nama buket crush digunakan sebagai langkah pertama dari aturan CRUSH.\nContoh diambil langkah bawaan.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n Memastikan tidak ada pecahan data berada pada buket dengan domain kegagalan\nyang sama. Contoh, saat domain gagal adalah hos, maka tidak ada pecahan data yang akan disimpan \npada hos yang sama. Aturan CRUSH seperti step chooseleaf hos akan digunakan untuk hal tersebut.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Batasi penempatan ke perangkat dengan kelas tertentu\n(cth. ssd atau hdd), menggunakan nama kelas perangkat crush pada peta CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n Set nama direktori empat plugin erasure code akan dimuat.\n \n \n Allows all operations\n Izinkan semua operasi\n \n \n Allows only operations that do not modify the server\n Izinkan hanya untuk operasi yang tidak mengubah server\n \n \n Does not allow read or write operations, but allows any other operation\n Tidak diizinkan untuk operasi baca dan tulis, namun izinkan operasi lainnya\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n Tidak diizinkan untuk baca, tulis, atau operasi lainnya yang mengubah atribut berkas atau konten direktori\n \n \n Allows no access at all\n Tidak diizinkan untuk semua hal\n \n \n -- Select the priority --\n -- Pilih prioritas --\n \n \n Low\n Rendah\n \n \n High\n Tinggi\n \n \n Last 5 minutes\n 5 menit terakhir\n \n \n Last 15 minutes\n 15 menit terakhir\n \n \n Last 30 minutes\n 30 menit terakhir\n \n \n Last 1 hour (Default)\n 1 Jam Terakhir (Bawaan)\n \n \n Last 3 hours\n 3 jam terakhir\n \n \n Last 6 hours\n 6 jam terakhir\n \n \n Last 12 hours\n 12 jam terakhir\n \n \n Last 24 hours\n 24 jam terakhir\n \n \n Yesterday\n Kemarin\n \n \n Today\n Hari ini\n \n \n Today so far\n Sejauh hari ini\n \n \n Day before yesterday\n Kemarin dulu\n \n \n Last 2 days\n 2 hari terakhir\n \n \n This day last week\n Hari ini minggu lalu\n \n \n Previous week\n Minggu lalu\n \n \n This week\n Minggu ini\n \n \n This week so far\n Sejauh minggu ini\n \n \n Last 7 days\n 7 hari terakhir\n \n \n Previous month\n Bulan lalu\n \n \n This month\n Bulan ini\n \n \n This month so far\n Sejauh bulan ini\n \n \n Last 30 days\n 30 hari terakhir\n \n \n Last 90 days\n 90 hari terakhir\n \n \n Last 6 months\n 6 bulan terakhir\n \n \n Last 1 year\n 1 tahun terakhir\n \n \n Previous year\n Tahun lalu\n \n \n This year\n Tahun ini\n \n \n This year so far\n Sejauh tahun ini\n \n \n Last 2 years\n 2 tahun terakhir\n \n \n Last 5 years\n 5 tahun terakhir\n \n \n Information\n Informasi\n \n \n No items selected.\n Tidak ada yang dipilih.\n \n \n Deselect item to select again\n Batalkan memilih untuk memilih ulang\n \n \n Selection limit reached\n Batas pemilihan tercapai\n \n \n Filter tags\n Tanda penyaringan\n \n \n Add badge\n Tambahkan lencana\n \n \n There are no items available.\n Tidak ada yang tersedia.\n \n \n Add\n Tambah\n \n \n Remove\n Remove\n \n \n Clone\n Klon\n \n \n Copy\n Salin\n \n \n Deep Scrub\n Deep Scrub\n \n \n Destroy\n Hancurkan\n \n \n Flatten\n Ratakan\n \n \n Mark Down\n Tandai Gugur\n \n \n Mark In\n Tandai Masuk\n \n \n Mark Lost\n Tandai Hilang\n \n \n Mark Out\n Tandai Keluar\n \n \n Protect\n Proteksi\n \n \n Rename\n Ubah nama\n \n \n Restore\n Pulihkan\n \n \n Move to Trash\n Pindahkan ke Tempat Sampah\n \n \n Unprotect\n Tidak diproteksi\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Dihapus\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Diklon\n \n \n Copied\n Disalin\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Ya\n \n \n No\n Tidak\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Kualitas Layanan atau QoS\n \n \n BPS Limit\n Limit BPS\n \n \n The desired limit of IO bytes per second.\n Limit IO bytes per detik yang diinginkan.\n \n \n IOPS Limit\n Limit IOPS\n \n \n The desired limit of IO operations per second.\n Limit operasi IO per detik yang diinginkan.\n \n \n Read BPS Limit\n Limit Baca BPS \n \n \n The desired limit of read bytes per second.\n Limit byte baca per detik yang diinginkan.\n \n \n Read IOPS Limit\n Limit IOPS Baca\n \n \n The desired limit of read operations per second.\n Limit operasi baca per detik yang diinginkan.\n \n \n Write BPS Limit\n Limit Tulis BPS\n \n \n The desired limit of write bytes per second.\n Limit tulis byte per detik yang diinginkan.\n \n \n Write IOPS Limit\n Limit IOPS Tulis\n \n \n The desired limit of write operations per second.\n Limit operasi tulis per detik yang diinginkan.\n \n \n BPS Burst\n Letupan BPS\n \n \n The desired burst limit of IO bytes.\n Limit yang diinginkan untuk letupan atau burst dari IO byte.\n \n \n IOPS Burst\n Letupan IOPS\n \n \n The desired burst limit of IO operations.\n Limit yang diinginkan untuk letupan atau burst operasi IO.\n \n \n Read BPS Burst\n Letupan Baca BPS\n \n \n The desired burst limit of read bytes.\n Limit yang diinginkan untuk letupan atau burst dari baca byte.\n \n \n Read IOPS Burst\n Letupan IOPS Baca\n \n \n The desired burst limit of read operations.\n Limit yang diinginkan untuk letupan atau burst operasi baca.\n \n \n Write BPS Burst\n Letupan BPS Tulis\n \n \n The desired burst limit of write bytes.\n Limit yang diinginkan untuk letupan atau burst dari tulis byte.\n \n \n Write IOPS Burst\n Letupan IOPS Tulis\n \n \n The desired burst limit of write operations.\n Limit yang diinginkan untuk letupan atau burst dari operasi baca.\n \n \n Failed to \n \n \n \n Gagal untuk \n \n \n \n \n \n Executing\n Mengeksekusi\n \n \n execute\n eksekusi\n \n \n Executed\n Dieksekusi\n \n \n unknown task\n tugas tak diketahui\n \n \n Creating\n Membuat\n \n \n create\n buat\n \n \n Updating\n Memperbarui\n \n \n update\n perbarui\n \n \n Deleting\n Menghapus\n \n \n delete\n hapus\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Snapshot RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n mode pencerminan untuk pool \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n mitra pencerminan untuk pool \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n \n contains snapshots.\n \n \n berisi snapshot.\n \n \n \n Cloning\n Pengklonan\n \n \n clone\n klon\n \n \n Snapshot of \n must be protected.\n \n Snapshot \n harus diproteksi.\n \n \n \n Copying\n Menyalin\n \n \n copy\n salin\n \n \n Flattening\n Meratakan\n \n \n flatten\n ratakan\n \n \n Flattened\n Diratakan\n \n \n Name is already used by \n .\n \n Nama telah digunakan oleh \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Tidak dapat menghapus proteksi \n karena mengandung child image.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Tidak dapat menghapus \n karena diproteksi.\n \n \n \n Rolling back\n Mengembalikan\n \n \n rollback\n kembalikan\n \n \n Rolled back\n Dikembalikan\n \n \n Moving\n Memindahkan\n \n \n move\n pindah\n \n \n Moved\n dipindahkan\n \n \n image \'\n \' to trash\n \n image \'\n \' ke tempat sampah\n \n \n \n Could not find image.\n Tidak dapat menemukan image.\n \n \n Restoring\n Memulihkan\n \n \n restore\n pulihkan\n \n \n Restored\n Dipulihkan\n \n \n image \'\n \' into \'\n \'\n \n image \'\n \' ke \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Nama image \'\n \' sudah digunakan.\n \n \n \n image \'\n \'\n \n image \'\n \'\n \n \n \n Purging\n Membuang\n \n \n purge\n buang\n \n \n Purged\n Dibuang\n \n \n all pools\n semua pool\n \n \n images from \n \n \n image dari \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Gagal menonaktifkan pencerminan karena sedang bermitra.\n \n \n pool \'\n \'\n \n pool \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n profil erasure code \'\n \'\n \n \n \n target \'\n \'\n \n target \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},nuQ0:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Ip0R"),i=n("ty8c"),s=n("FYBg"),o=n("JZ5S"),u=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"li",[["class","node-menu-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onMenuItemSelected(n,t.context.$implicit)&&a),a},null,null)),(t()(),a["\u0275eld"](1,0,null,null,0,"div",[],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,1,"span",[["class","node-menu-item-value"]],null,null,null,null,null)),(t()(),a["\u0275ted"](3,null,["",""]))],null,function(t,e){t(e,1,0,a["\u0275inlineInterpolate"](1,"node-menu-item-icon ",e.context.$implicit.cssClass,"")),t(e,3,0,e.context.$implicit.name)})}function l(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{menuContainer:0}),(t()(),a["\u0275eld"](1,0,null,null,3,"div",[["class","node-menu"]],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,[[1,0],["menuContainer",1]],null,2,"ul",[["class","node-menu-content"]],null,null,null,null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,c)),a["\u0275did"](4,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,4,0,e.component.availableMenuItems)},null)}var d=n("HHO+"),f=n("Tff5"),p=n("/TVo"),h=n("urB8"),g=n("VUo1"),b=n("ZYjt"),m=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function y(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"div",[["class","node-checkbox"]],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,[[1,0],["checkbox",1]],null,0,"input",[["checkbox",""],["type","checkbox"]],[[8,"disabled",0],[8,"checked",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.switchNodeCheckStatus()&&a),a},null,null))],null,function(t,e){var n=e.component;t(e,1,0,n.isReadOnly,n.tree.checked)})}function v(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"div",[["class","node-template"]],[[8,"innerHTML",1]],null,null,null,null)),a["\u0275ppd"](1,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent.parent.parent,0),n.tree.nodeTemplate));t(e,0,0,r)})}function _(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null)),a["\u0275ppd"](1,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,0,0,t(e,1,0,a["\u0275nov"](e.parent.parent.parent,0),n.tree.value));t(e,0,0,r)})}function x(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"span",[["class","loading-children"]],null,null,null,null,null))],null,null)}function T(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](0,null,null,0))],null,null)}function w(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,9,"div",[["class","node-value"]],[[2,"node-selected",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onNodeSelected(n)&&a),a},null,null)),(t()(),a["\u0275and"](16777216,null,null,1,null,v)),a["\u0275did"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,_)),a["\u0275did"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,x)),a["\u0275did"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,2,null,T)),a["\u0275did"](8,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["\u0275pod"](9,{$implicit:0})],function(t,e){var n=e.component;t(e,2,0,n.tree.nodeTemplate),t(e,4,0,!n.template),t(e,6,0,n.tree.childrenAreBeingLoaded());var a=t(e,9,0,n.tree.node);t(e,8,0,a,n.template)},function(t,e){t(e,0,0,e.component.isSelected)})}function S(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"input",[["class","node-value"],["type","text"]],null,[[null,"valueChanged"],[null,"keyup.enter"],[null,"blur"],[null,"keyup.esc"]],function(t,e,n){var r=!0,i=t.component;return"keyup.enter"===e&&(r=!1!==a["\u0275nov"](t,1).applyNewValue(n.target.value)&&r),"blur"===e&&(r=!1!==a["\u0275nov"](t,1).applyNewValueByLoosingFocus(n.target.value)&&r),"keyup.esc"===e&&(r=!1!==a["\u0275nov"](t,1).cancelEditing()&&r),"valueChanged"===e&&(r=!1!==i.applyNewValue(n)&&r),r},null,null)),a["\u0275did"](1,81920,null,0,i.NodeEditableDirective,[a.Renderer2,a.ElementRef],{nodeValue:[0,"nodeValue"]},{valueChanged:"valueChanged"})],function(t,e){t(e,1,0,e.component.tree.value)},null)}function O(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,0,"div",[["class","node-left-menu"]],[[8,"innerHTML",1]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showLeftMenu(n)&&a),a},null,null))],null,function(t,e){t(e,0,0,e.component.tree.leftMenuTemplate)})}function I(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"node-menu",[],null,[[null,"menuItemSelected"]],function(t,e,n){var a=!0;return"menuItemSelected"===e&&(a=!1!==t.component.onMenuItemSelected(n)&&a),a},l,u)),a["\u0275did"](1,245760,null,0,s.NodeMenuComponent,[a.Renderer2,o.NodeMenuService],null,{menuItemSelected:"menuItemSelected"})],function(t,e){t(e,1,0)},null)}function C(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"node-menu",[],null,[[null,"menuItemSelected"]],function(t,e,n){var a=!0;return"menuItemSelected"===e&&(a=!1!==t.component.onMenuItemSelected(n)&&a),a},l,u)),a["\u0275did"](1,245760,null,0,s.NodeMenuComponent,[a.Renderer2,o.NodeMenuService],null,{menuItemSelected:"menuItemSelected"})],function(t,e){t(e,1,0)},null)}function k(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"node-menu",[],null,[[null,"menuItemSelected"]],function(t,e,n){var a=!0;return"menuItemSelected"===e&&(a=!1!==t.component.onMenuItemSelected(n)&&a),a},l,u)),a["\u0275did"](1,245760,null,0,s.NodeMenuComponent,[a.Renderer2,o.NodeMenuService],{menuItems:[0,"menuItems"]},{menuItemSelected:"menuItemSelected"})],function(t,e){t(e,1,0,e.component.tree.menuItems)},null)}function N(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"tree-internal",[],null,null,null,L,m)),a["\u0275did"](1,4964352,null,0,d.TreeInternalComponent,[o.NodeMenuService,f.TreeService,a.ElementRef],{tree:[0,"tree"],settings:[1,"settings"],template:[2,"template"]},null)],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,n.settings,n.template)},null)}function R(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,5,"div",[],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,r.NgStyle,[a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngStyle:[0,"ngStyle"]},null),a["\u0275pod"](2,{display:0}),(t()(),a["\u0275and"](16777216,null,null,2,null,N)),a["\u0275did"](4,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,r.AsyncPipe,[a.ChangeDetectorRef])],function(t,e){var n=e.component,r=t(e,2,0,n.tree.isNodeExpanded()?"block":"none");t(e,1,0,r),t(e,4,0,a["\u0275unv"](e,4,0,a["\u0275nov"](e,5).transform(n.tree.childrenAsync)))},null)}function A(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"tree-internal",[],null,null,null,L,m)),a["\u0275did"](1,4964352,null,0,d.TreeInternalComponent,[o.NodeMenuService,f.TreeService,a.ElementRef],{tree:[0,"tree"],settings:[1,"settings"],template:[2,"template"]},null)],function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,n.settings,n.template)},null)}function D(t){return a["\u0275vid"](0,[(t()(),a["\u0275and"](16777216,null,null,2,null,A)),a["\u0275did"](1,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["\u0275pid"](131072,r.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,a["\u0275unv"](e,1,0,a["\u0275nov"](e,2).transform(n.tree.childrenAsync)))},null)}function E(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,27,"ul",[["class","tree"]],null,null,null,null,null)),a["\u0275did"](1,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](2,{rootless:0}),(t()(),a["\u0275eld"](3,0,null,null,24,"li",[],null,null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,15,"div",[["class","value-container"]],[[2,"selected",null]],[[null,"contextmenu"]],function(t,e,n){var a=!0;return"contextmenu"===e&&(a=!1!==t.component.showRightMenu(n)&&a),a},null,null)),a["\u0275did"](5,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["\u0275pod"](6,{rootless:0}),a["\u0275did"](7,212992,null,0,p.NodeDraggableDirective,[a.ElementRef,h.NodeDraggableService,a.Renderer2],{nodeDraggable:[0,"nodeDraggable"],tree:[1,"tree"]},null),(t()(),a["\u0275eld"](8,0,null,null,1,"div",[["class","folding"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSwitchFoldingType()&&a),a},null,null)),a["\u0275did"](9,278528,null,0,r.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,y)),a["\u0275did"](11,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,w)),a["\u0275did"](13,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,S)),a["\u0275did"](15,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,O)),a["\u0275did"](17,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,I)),a["\u0275did"](19,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,C)),a["\u0275did"](21,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,k)),a["\u0275did"](23,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,R)),a["\u0275did"](25,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,D)),a["\u0275did"](27,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.isRootHidden());t(e,1,0,"tree",a);var r=t(e,6,0,n.isRootHidden());t(e,5,0,"value-container",r),t(e,7,0,n.nodeElementRef,n.tree),t(e,9,0,"folding",n.tree.foldingCssClass),t(e,11,0,n.settings.showCheckboxes),t(e,13,0,!n.shouldShowInputForTreeValue()),t(e,15,0,n.shouldShowInputForTreeValue()),t(e,17,0,n.tree.hasLeftMenu()),t(e,19,0,n.tree.hasLeftMenu()&&n.isLeftMenuVisible&&!n.hasCustomMenu()),t(e,21,0,n.isRightMenuVisible&&!n.hasCustomMenu()),t(e,23,0,n.hasCustomMenu()&&(n.isRightMenuVisible||n.isLeftMenuVisible)),t(e,25,0,n.tree.keepNodesInDOM()),t(e,27,0,n.tree.isNodeExpanded()&&!n.tree.keepNodesInDOM())},function(t,e){t(e,4,0,e.component.isSelected)})}function L(t){return a["\u0275vid"](0,[a["\u0275pid"](0,g.SafeHtmlPipe,[b.DomSanitizer]),a["\u0275qud"](671088640,1,{checkboxElementRef:0}),(t()(),a["\u0275and"](16777216,null,null,1,null,E)),a["\u0275did"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,3,0,e.component.tree)},null)}n("xtUU"),n.d(e,"a",function(){return P}),n.d(e,"b",function(){return M});var P=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function M(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{rootComponent:0}),(t()(),a["\u0275eld"](1,0,null,null,1,"tree-internal",[],null,null,null,L,m)),a["\u0275did"](2,4964352,[[1,4],["rootComponent",4]],0,d.TreeInternalComponent,[o.NodeMenuService,f.TreeService,a.ElementRef],{tree:[0,"tree"],settings:[1,"settings"],template:[2,"template"]},null)],function(t,e){var n=e.component;t(e,2,0,n.tree,n.settings,n.template)},null)}},nyYc:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}()},o1bE:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}()},"o4+5":function(t,e,n){"use strict";n.d(e,"a",function(){return a}),n("aXbf");var a=function(){function t(t){this.formatter=t}return t.prototype.transform=function(t){return this.formatter.format_number(t,1e3,["","k","M","G","T","P","E","Z","Y"])},t}()},obpP:function(t,e){t.exports='\n \n \n \n Toggle navigation\n Activer/D\xe9sactiver la navigation\n \n \n Dashboard\n Tableau de bord\n \n \n Cluster\n Grappe\n \n \n Hosts\n Serveurs\n \n \n Monitors\n Moniteurs\n \n \n OSDs\n OSD\n \n \n Configuration\n Configuration\n \n \n CRUSH map\n Carte CRUSH\n \n \n Manager modules\n Modules Manager\n \n \n Logs\n Journaux\n \n \n Alerts\n Alertes\n \n \n Silences\n Silences\n \n \n Pools\n R\xe9serves\n \n \n Block\n Bloc\n \n \n Images\n Images\n \n \n Mirroring\n Mise en miroir\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n Syst\xe8mes de fichiers\n \n \n Object Gateway\n Object Gateway\n \n \n Daemons\n Daemons\n \n \n Users\n Utilisateurs\n \n \n Buckets\n Compartiments\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n R\xe9cup\xe9ration des donn\xe9es\n pour\n \n \n . Veuillez patienter...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Affichage des donn\xe9es\n pr\xe9c\xe9demment mises en cache\n pour \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Impossible de charger les donn\xe9es\n pour\n \n \n .\n Veuillez v\xe9rifier l\'\xe9tat de sant\xe9 de la grappe.\n \n \n \n Back\n Retour\n \n \n Select a Language\n S\xe9lectionner une langue\n \n \n Loading panel data...\n Chargement des donn\xe9es du panneau...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n Veuillez consulter la\n documentation\n relative \xe0\n la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de surveillance.\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Le tableau de bord Grafana n\'existe pas. Veuillez consulter\n la \n documentation\n relative \xe0\n l\'ajout de tableaux de bord \xe0 Grafana.\n \n \n \n Grafana Time Picker\n S\xe9lecteur d\'heure Grafana\n \n \n Reset Settings\n R\xe9initialiser les param\xe8tres\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \xc9chec du chargement des donn\xe9es.\n \n \n selected\n s\xe9lectionn\xe9(e)(s)\n X selected\n \n \n found\n trouv\xe9(e)(s)\n X found\n \n \n total\n total\n X total\n \n \n Edit\n Modifier\n \n \n Name\n Nom\n \n \n Description\n Description\n \n \n Long description\n Description longue\n \n \n Default\n Valeur par d\xe9faut\n \n \n Daemon default\n Valeur par d\xe9faut du daemon\n \n \n Services\n Services\n \n \n Values\n Valeurs\n \n \n The entered value is too high! It must not be greater than \n .\n \n La valeur entr\xe9e est trop \xe9lev\xe9e ! Elle ne peut pas \xeatre sup\xe9rieure \xe0 \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n La valeur entr\xe9e est trop faible ! Elle ne peut pas \xeatre inf\xe9rieure \xe0 \n .\n \n \n \n Save\n Sauvegarder\n \n \n CRUSH map viewer\n Visionneuse de carte CRUSH\n \n \n Hosts List\n Liste d\'h\xf4tes\n \n \n Overall Performance\n Performance globale\n \n \n No entries found\n Aucune entr\xe9e trouv\xe9e\n \n \n Cluster Logs\n Journaux de grappes\n \n \n Audit Logs\n Journaux d\'audit\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n Chargement de la configuration...\n \n \n The configuration could not be loaded.\n La configuration n\'a pas pu \xeatre charg\xe9e.\n \n \n Edit Manager module\n Modifier le module Manager\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n La valeur entr\xe9e n\'est pas un UUID valide, par exemple : 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \n \n The entered value needs to be a valid IP address.\n La valeur entr\xe9e doit \xeatre une adresse IP valide.\n \n \n This field is required.\n Ce champs est requis.\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n La valeur entr\xe9e est trop \xe9lev\xe9e ! Elle doit \xeatre inf\xe9rieure ou \xe9gale \xe0 \n .\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n La valeur entr\xe9e est trop faible ! Elle doit \xeatre sup\xe9rieure ou \xe9gale \xe0 \n .\n \n \n \n The entered value needs to be a number.\n La valeur entr\xe9e doit \xeatre un nombre.\n \n \n The entered value needs to be a number or decimal.\n La valeur entr\xe9e doit \xeatre un nombre ou une valeur d\xe9cimale.\n \n \n Update\n Mise \xe0 jour\n \n \n Status\n Statut\n \n \n Cluster ID\n ID de grappe\n \n \n monmap modified\n monmap modifi\xe9\n \n \n monmap epoch\n monmap epoch\n \n \n quorum con\n quorum con\n \n \n quorum mon\n quorum mon\n \n \n required con\n required con\n \n \n required mon\n required mon\n \n \n In Quorum\n Dans le quorum\n \n \n Not In Quorum\n Hors quorum\n \n \n Cancel\n Annuler\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n Voulez-vous vraiment \n l\'\xe9l\xe9ment s\xe9lectionn\xe9 \n ?\n \n \n \n Yes, I am sure.\n Oui.\n \n \n Cluster-wide OSD Flags\n Drapeaux OSD \xe0 l\'\xe9chelle de la grappe\n \n \n Submit\n Soumettre\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n Avanc\xe9...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n Priorit\xe9 de r\xe9cup\xe9ration des OSD\n \n \n Priority\n Priorit\xe9\n \n \n Customize priority values\n Personnaliser les valeurs de priorit\xe9\n \n \n This field is required!\n Ce champ est obligatoire !\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n La valeur entr\xe9e est trop \xe9lev\xe9e ! Elle ne peut pas \xeatre sup\xe9rieure \xe0 \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n La valeur entr\xe9e est trop faible ! Elle ne peut pas \xeatre inf\xe9rieure \xe0 \n .\n \n \n \n Reweight OSD\n R\xe9\xe9valuer l\'OSD\n \n \n The value needs to be between 0 and 1.\n La valeur doit \xeatre comprise entre 0 et 1.\n \n \n Reweight\n R\xe9\xe9valuer\n \n \n OSDs \n Scrub\n \n Nettoyage des \n OSD\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Profondeur } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n Vous \xeates sur le point d\'appliquer un nettoyage \n \n \xe0 l\'OSD \n \n \n .\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {profondeur } }\n \n \n OSDs List\n Liste des OSD\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n L\'\n OSD \n \n sera marqu\xe9\n \n \n si vous continuez.\n \n \n \n The OSD is not safe to destroy!\n L\'OSD ne peut pas \xeatre d\xe9truit de fa\xe7on s\xe9curis\xe9e !\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \n L\'OSD \n \n sera\n \n \n si vous continuez.\n \n \n \n Details\n D\xe9tails\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n Valeur\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n Fermer\n \n \n Delete\n Supprimer\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n Sant\xe9\n \n \n Statistics\n Statistiques\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n Veuillez consulter la \n documentation\n \n relative \xe0 la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de gestion du NFS Ganesha.\n \n \n \n Clients\n Clients\n \n \n Any client can access\n Acc\xe8s possible par tous les clients\n \n \n Addresses\n Adresses\n \n \n Required field\n Champ obligatoire\n \n \n Must contain one or more comma-separated values\n Doit contenir une ou plusieurs valeurs s\xe9par\xe9es par une virgule\n \n \n For example:\n Par exemple :\n \n \n Access Type\n Type d\'acc\xe8s\n \n \n Squash\n Squash\n \n \n Add clients\n Ajouter des clients\n \n \n Loading...\n Chargement...\n \n \n -- No cluster available --\n -- Aucune grappe disponible --\n \n \n -- Select the cluster --\n -- S\xe9lectionner la grappe --\n \n \n Add daemon\n Ajouter un daemon\n \n \n Storage Backend\n Backend de stockage\n \n \n -- No data pools available --\n -- Aucune r\xe9serve de donn\xe9es disponible --\n \n \n -- Select the storage backend --\n -- S\xe9lectionner le backend de stockage --\n \n \n Object Gateway User\n Utilisateur Object Gateway\n \n \n -- No users available --\n -- Aucun utilisateur disponible --\n \n \n -- Select the object gateway user --\n -- S\xe9lectionner l\'utilisateur Object Gateway --\n \n \n CephFS User ID\n ID utilisateur CephFS\n \n \n -- No clients available --\n -- Aucun client disponible --\n \n \n -- Select the cephx client --\n -- S\xe9lectionner le client cephx --\n \n \n CephFS Name\n Nom CephFS\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n Libell\xe9 de s\xe9curit\xe9\n \n \n Enable security label\n Activer le libell\xe9 de s\xe9curit\xe9\n \n \n CephFS Path\n Chemin CephFS\n \n \n Path need to start with a \'/\' and can be followed by a word\n Le chemin doit commencer par \'/\' et peut \xeatre suivi d\'un mot\n \n \n New directory will be created\n Un nouveau r\xe9pertoire sera cr\xe9\xe9\n \n \n Path\n Chemin\n \n \n Path can only be a single \'/\' or a word\n Le chemin peut \xeatre constitu\xe9 d\'un seul \'/\' ou d\'un seul mot\n \n \n New bucket will be created\n Un compartiment sera cr\xe9\xe9\n \n \n NFS Protocol\n Protocole NFS\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n Balise NFS\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n Autre chemin d\'acc\xe8s aux montages \n NFS v3\n (doit commencer par /).\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n Les clients ne peuvent pas monter de sous-r\xe9pertoires (si la balise = foo, le client ne peut pas monter foo/baz).\n \n \n By using different Tag options, the same Path may be exported multiple times.\n En utilisant diff\xe9rentes options de balise, il est possible d\'exporter plusieurs fois le m\xeame chemin.\n \n \n Pseudo\n Pseudo\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n Position occup\xe9e par cet export \n NFS v4\n \n dans le \n syst\xe8me de fichiers Pseudo\n (doit \xeatre unique).\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n En utilisant diff\xe9rentes options de pseudo, il est possible d\'exporter exporter plusieurs fois le m\xeame chemin.\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- Aucun type d\'acc\xe8s disponible --\n \n \n -- Select the access type --\n -- S\xe9lectionner le type d\'acc\xe8s --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- Aucun squash disponible --\n \n \n --Select what kind of user id squashing is performed --\n -- S\xe9lectionnez le type de squash d\'ID utilisateur qui est effectu\xe9 --\n \n \n Transport Protocol\n Protocole de transport\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Bienvenue dans Ceph !\n The welcome message on the login page\n \n \n Username is required\n Nom d\'utilisateur requis\n \n \n Password is required\n Mot de passe requis\n \n \n Login\n Connexion\n \n \n Sorry, the user does not exist in Ceph.\n D\xe9sol\xe9, l\'utilisateur n\'existe pas dans Ceph.\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n Retournez \xe0 la \n page de connexion\n . Vous serez d\xe9connect\xe9 du fournisseur d\'identit\xe9 lorsque vous tenterez de vous reconnecter.\n \n \n \n Forbidden\n Interdit\n \n \n Sorry, you are not allowed to see what you were looking for.\n D\xe9sol\xe9, vous n\'\xeates pas autoris\xe9 \xe0 voir ce que vous cherchez.\n \n \n Sorry, we could not find what you were looking for\n D\xe9sol\xe9s, nous ne parvenons pas \xe0 trouver ce que vous cherchez.\n \n \n Remove all\n Tout supprimer\n \n \n Recent Notifications\n Notifications r\xe9centes\n \n \n There are no background tasks.\n Il n\'y a aucune t\xe2che en arri\xe8re-plan.\n \n \n Background Tasks\n T\xe2ches en arri\xe8re-plan\n \n \n Help\n Aide\n \n \n Documentation\n Documentation\n \n \n API\n API\n \n \n About\n \xc0 propos de\n \n \n Dashboard Settings\n Param\xe8tres du tableau de bord\n \n \n User management\n Gestion des utilisateurs\n \n \n Logged in user\n Utilisateur connect\xe9\n \n \n Signed in as\n \n \n \n \n Connect\xe9 en tant que\n \n \n \n \n \n \n Sign out\n Se d\xe9connecter\n \n \n Name...\n Nom...\n \n \n The chosen name is already in use.\n Le nom s\xe9lectionn\xe9 est d\xe9j\xe0 en cours d\'utilisation.\n \n \n Description...\n Description...\n \n \n Permissions\n Autorisations\n \n \n Roles\n R\xf4les\n \n \n Username\n Nom d\'utilisateur\n \n \n Password\n Mot de passe\n \n \n Confirm password\n Confirmer le mot de passe\n \n \n Password confirmation doesn\'t match the password.\n Le mot de passe de confirmation ne correspond pas au mot de passe.\n \n \n Full name\n Nom complet\n \n \n Email\n Adresse \xe9lectronique\n \n \n Invalid email.\n L\'adresse \xe9lectronique n\'est pas valide.\n \n \n You are about to remove "user read / update" permissions from your own user.\n Vous \xeates sur le point de supprimer les autorisations "lecture/mise \xe0 jour utilisateur" de votre propre utilisateur.\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n Si vous continuez, vous ne serez plus en mesure d\'ajouter ni de supprimer des r\xf4les pour n\'importe quel utilisateur.\n \n \n Are you sure you want to continue?\n Voulez-vous vraiment continuer ?\n \n \n Performance counters not available\n Compteurs de performance non disponibles\n \n \n Attributes (OSD map)\n Attributs (carte OSD)\n \n \n Metadata not available\n M\xe9tadonn\xe9es non disponibles\n \n \n Metadata\n M\xe9tadonn\xe9es\n \n \n Performance counter\n Compteur de performance\n \n \n Histogram not available: \n \n \n Histogramme non disponible : \n \n \n \n \n Writes\n \xc9critures\n \n \n Reads\n Lectures\n \n \n Histogram\n Histogramme\n \n \n Performance Details\n D\xe9tails des performances\n \n \n Current values\n Valeurs actuelles\n \n \n Type\n Type\n \n \n Min\n Minimum\n \n \n Max\n Maximum\n \n \n Flags\n Drapeaux\n \n \n Source\n Source\n \n \n Level\n Niveau\n \n \n Can be updated at runtime (editable)\n Mise \xe0 jour possible lors de l\'ex\xe9cution (modifiable)\n \n \n Tags\n Balises\n \n \n Enum values\n Valeurs d\'\xe9num\xe9nation\n \n \n See also\n Voir aussi\n \n \n Cluster Status\n Statut de la grappe\n \n \n Manager Daemons\n Daemons du gestionnaire\n \n \n Object Gateways\n Passerelles d\'objet\n \n \n Metadata Servers\n Serveurs de m\xe9tadonn\xe9es\n \n \n iSCSI Gateways\n Passerelles iSCSI\n \n \n Client IOPS\n IOPS client\n \n \n Client Throughput\n D\xe9bit client\n \n \n Client Read/Write\n Lectures/\xc9critures client\n \n \n Recovery Throughput\n D\xe9bit de r\xe9cup\xe9ration\n \n \n Scrub\n Nettoyer\n \n \n Performance\n Performance\n \n \n Raw Capacity\n Capacit\xe9 brute\n \n \n Objects\n Objets\n \n \n PGs per OSD\n Groupes de placements par OSD\n \n \n PG Status\n Statut du groupe de placements\n \n \n Capacity\n Capacit\xe9\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n Consultez les \n journaux\n pour plus d\'informations.\n \n \n \n Ranks\n Rangs\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n Clients : \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n D\xe9placer une image vers la corbeille.\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n Pour d\xe9placer \n \n /\n \n vers la corbeille,\n cliquez sur \n D\xe9placer une image\n . Vous pouvez \xe9galement s\xe9lectionner une date d\'expiration.\n \n \n \n Protection expires at\n La protection expire le \n \n \n NOT PROTECTED\n NON PROT\xc9G\xc9\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n Format de date incorrect. Veuillez utiliser "AAAA-MM-JJ HH:mm:ss"\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n La protection a d\xe9j\xe0 expir\xe9. Veuillez s\xe9lectionner une date ult\xe9rieure ou laisser le champ vide.\n \n \n Move Image\n D\xe9placer une image\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n Pr\xe9sentation\n \n \n Targets\n Cibles\n \n \n Discovery Authentication\n Authentification de la d\xe9couverte\n \n \n User\n Utilisateur\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Les noms d\'utilisateur doivent comporter entre 8 et 64 caract\xe8res et\n ne peuvent contenir que des lettres et les caract\xe8res \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n Utilisateur commun\n \n \n Mutual Password\n Mot de passe commun\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n Veuillez consulter la \n documentation\n \nrelative \xe0 la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de gestion des cibles iSCSI.\n \n \n \n Available information:\n Informations disponibles :\n \n \n iSCSI Targets not available\n Cibles iSCSI non disponibles\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n Disponible uniquement pour les images RBD pour lesquelles \n fast-diff\n est activ\xe9\n \n \n \n Pool\n R\xe9serve\n \n \n Data Pool\n R\xe9serve de donn\xe9es\n \n \n Created\n Cr\xe9\xe9\n \n \n Size\n Taille\n \n \n Object size\n Taille de l\'objet\n \n \n Features\n Fonctionnalit\xe9s\n \n \n Provisioned\n Provisionn\xe9\n \n \n N/A\n N/A\n \n \n Total provisioned\n Provisionnement total\n \n \n Striping unit\n Unit\xe9 de segmentation\n \n \n Striping count\n Nombre de segmentations\n \n \n Parent\n Parent\n \n \n Block name prefix\n Pr\xe9fixe du nom de bloc\n \n \n Order\n Tri\n \n \n Snapshots\n Instantan\xe9s\n \n \n Image\n Image\n \n \n This setting overrides the global value\n Ce param\xe8tre remplace la valeur globale\n \n \n Global\n Global\n \n \n This is the global value. No value for this option has been set for this image.\n Il s\'agit de la valeur globale. Aucune valeur de cette option n\'a \xe9t\xe9 d\xe9finie pour cette image.\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n Les caract\xe8res \'/\' et \'@\' ne sont pas autoris\xe9s.\n \n \n -- No rbd pools available --\n -- Aucune r\xe9serve RBD disponible --\n \n \n -- Select a pool --\n -- S\xe9lectionner une r\xe9serve --\n \n \n Use a dedicated data pool\n Utiliser une r\xe9serve de donn\xe9es d\xe9di\xe9e\n \n \n Data pool\n R\xe9serve de donn\xe9es\n \n \n Dedicated pool that stores the object-data of the RBD.\n R\xe9serve d\xe9di\xe9e qui stocke les donn\xe9es objet du RBD.\n \n \n e.g., 10GiB\n par exemple, 10 Gio\n \n \n You have to increase the size.\n Vous devez augmenter la taille.\n \n \n Advanced\n Avanc\xe9\n \n \n Striping\n Segmentation\n \n \n Stripe unit\n Unit\xe9 de segmentation\n \n \n -- Select stripe unit --\n -- S\xe9lectionner une unit\xe9 de segmentation --\n \n \n This field is required because stripe count is defined!\n Ce champ est obligatoire, car le nombre de segments est d\xe9fini.\n \n \n Stripe unit is greater than object size.\n L\'unit\xe9 de segmentation est sup\xe9rieure \xe0 la taille de l\'objet.\n \n \n Stripe count\n Nombre de segments\n \n \n This field is required because stripe unit is defined!\n Ce champ est obligatoire, car l\'unit\xe9 de segmentation est d\xe9finie.\n \n \n Stripe count must be greater than 0.\n Le nombre de segments doit \xeatre sup\xe9rieur \xe0 0.\n \n \n \n RBD Snapshot\n \n \n instantan\xe9 RDB \n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Renommer} other {Cr\xe9er} }\n \n \n \n Snapshot\n \n \n instantan\xe9\n \n \n \n PROTECTED\n PROT\xc9G\xc9\n \n \n UNPROTECTED\n NON PROT\xc9G\xc9\n \n \n You are about to rollback\n Vous \xeates sur le point de revenir \xe0 l\'\xe9tat initial\n \n \n Purge Trash\n Vider la corbeille\n \n \n To purge, select one or All images and click\n Pour purger, s\xe9lectionner une image ou toutes, puis cliquez sur\n \n \n Pool:\n R\xe9serve :\n \n \n Pool name...\n Nom de la r\xe9serve...\n \n \n All\n Tout\n \n \n Restore Image\n Restaurer l\'image\n \n \n To restore\n Pour restaurer\n \n \n type the image\'s new name and click\n saisissez le nouveau nom de l\'image, puis cliquez sur\n \n \n New Name\n Nouveau nom\n \n \n Expired at\n Expiration le \n \n \n Protected until\n Protection jusqu\'au\n \n \n This image is protected until \n .\n \n Cette image est prot\xe9g\xe9e jusqu\'au \n .\n \n \n \n Trash\n Corbeille\n \n \n iSCSI Topology\n Topologie iSCSI\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n Il n\'est g\xe9n\xe9ralement pas n\xe9cessaire de modifier ces param\xe8tres par d\xe9faut.\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n Param\xe8tres\n \n \n Backstore\n Backstore\n \n \n Confirm\n Confirmer\n \n \n Advanced Settings\n Param\xe8tres avanc\xe9s\n \n \n Target IQN\n IQN cible\n \n \n IQN has wrong pattern.\n Mod\xe8le IQN incorrect.\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n Un IQN est associ\xe9 \xe0 la notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n Par exemple : iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n Plus d\'informations\n \n \n This target has modified advanced settings.\n Des param\xe8tres avanc\xe9s de cette cible ont \xe9t\xe9 modifi\xe9s.\n \n \n Portals\n Portails\n \n \n At least \n gateways are required.\n \n Au moins \n passerelles sont n\xe9cessaires.\n \n \n \n Add portal\n Ajouter un portail\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n Des param\xe8tres avanc\xe9s de cette image ont \xe9t\xe9 modifi\xe9s.\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n Ajouter une image\n \n \n ACL authentication\n Authentification ACL\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n Initiateurs\n \n \n Initiator\n Initiateur\n \n \n Client IQN\n IQN client\n \n \n Initiator IQN needs to be unique.\n L\'IQN de l\'initiateur doit \xeatre unique.\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Les noms d\'utilisateur doivent comporter entre 8 et 64 caract\xe8res et\n ne peuvent contenir que des lettres et les caract\xe8res \'.\', \'@\', \'-\', \'_\' ou \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n L\'initiateur appartient \xe0 un groupe dans lequel les images seront configur\xe9es.\n \n \n No items added.\n Aucun \xe9l\xe9ment ajout\xe9.\n \n \n Add initiator\n Ajouter un initiateur\n \n \n Groups\n Groupes\n \n \n Group\n Groupe\n \n \n Add group\n Ajouter un groupe\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n Configuration RBD\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n Supprimez la valeur de configuration locale. La valeur de configuration parent sera h\xe9rit\xe9e et utilis\xe9e \xe0 la place.\n \n \n The mininum value is 0\n La valeur minimale est 0.\n \n \n Issues\n Probl\xe8mes\n \n \n Syncing\n Synchronisation en cours\n \n \n Ready\n Pr\xeat\n \n \n Edit pool mirror mode\n Modifier le mode de mise en miroir de la r\xe9serve\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n Pour modifier le mode de mise en miroir de la r\xe9serve\xa0\n \n \n , s\xe9lectionnez un nouveau mode dans la liste, puis cliquez sur \n Mettre \xe0 jour\n .\n \n \n \n Mode\n Mode\n \n \n Peer clusters must be removed prior to disabling mirror.\n Les grappes d\'homologues doivent \xeatre supprim\xe9es avant de d\xe9sactiver la mise en miroir.\n \n \n \n \n pool mirror peer\n \n \n \n homologue de mise en miroir de la r\xe9serve\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Modifier} other {Ajouter} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n les attributs\n de mise en miroir de la r\xe9serve \n \n \n et cliquez sur \n Soumettre\n .\n \n \n \n Cluster Name\n Nom de grappe\n \n \n The cluster name is not valid.\n Le nom de grappe n\'est pas valide.\n \n \n CephX ID\n ID CephX\n \n \n CephX ID...\n ID CephX\n \n \n The CephX ID is not valid.\n L\'ID CephX n\'est pas valide.\n \n \n Monitor Addresses\n Adresses du moniteur\n \n \n Comma-delimited addresses...\n Adresses s\xe9par\xe9es par une virgule...\n \n \n The monitory address is not valid.\n L\'adresse du moniteur n\'est pas valide.\n \n \n CephX Key\n Clef CephX\n \n \n Base64-encoded key...\n Clef Base64...\n \n \n CephX key must be base64 encoded.\n La clef CephX doit \xeatre cod\xe9e en base64.\n \n \n Pools List\n Liste des r\xe9serves\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n Le nom doit \xeatre exclusivement compos\xe9 de caract\xe8res alphanum\xe9riques, de tirets et de traits de soulignement.\n \n \n The chosen erasure code profile name is already in use.\n Le nom de profil du code d\'effacement s\xe9lectionn\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n Plugin\n Plug-in\n \n \n Data chunks (k)\n Blocs de donn\xe9es (k)\n \n \n Must be equal to or greater than 2.\n Doit \xeatre \xe9gal ou sup\xe9rieur \xe0 2.\n \n \n Coding chunks (m)\n Blocs de codage (m)\n \n \n Must be equal to or greater than 1.\n Doit \xeatre \xe9gal ou sup\xe9rieur \xe0 1.\n \n \n Durability estimator (c)\n Estimateur de durabilit\xe9 (c)\n \n \n Locality (l)\n Localit\xe9 (l)\n \n \n Crush failure domain\n Domaine de d\xe9faillance Crush\n \n \n Crush Locality\n Localit\xe9 Crush\n \n \n None\n Aucun\n \n \n Technique\n Technique\n \n \n Packetsize\n Taille de paquet\n \n \n Crush root\n Racine Crush\n \n \n Crush device class\n Classe de p\xe9riph\xe9rique Crush\n \n \n any\n tout\n \n \n Directory\n R\xe9pertoire\n \n \n The chosen Ceph pool name is already in use.\n Le nom de r\xe9serve Ceph s\xe9lectionn\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n Pool type\n Type de r\xe9serve\n \n \n -- Select a pool type --\n -- S\xe9lectionner un type de r\xe9serve --\n \n \n Placement groups\n Groupes de placements\n \n \n At least one placement group is needed!\n Au moins un groupe de placements est n\xe9cessaire.\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n Votre grappe ne peut pas g\xe9rer autant de groupes de placements. Veuillez recalculer le nombre de groupes de placements n\xe9cessaires.\n \n \n Calculation help\n Aide au calcul\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n Les param\xe8tres actuels des groupes de placements ont \xe9t\xe9 calcul\xe9s pour vous.\nV\xe9rifiez que les valeurs correspondent \xe0 vos besoins avant de les soumettre.\n \n \n Crush ruleset\n Jeu de r\xe8gles Crush\n \n \n -- Select a crush rule --\n -- S\xe9lectionner une r\xe8gle crush --\n \n \n Crush rule\n R\xe8gle Crush\n \n \n Crush steps\n \xc9tapes Crush\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n La r\xe8gle ne peut pas \xeatre utilis\xe9e dans la grappe active, car celle-ci\n comporte un nombre d\'OSD inf\xe9rieur au nombre d\'OSD minimum requis par cette r\xe8gle.\n \n \n Replicated size\n Taille de r\xe9plication\n \n \n Minimum: \n \n \n Minimum : \n \n \n \n \n Maximum: \n \n \n Maximum : \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n La taille sp\xe9cifi\xe9e est en dehors de la plage. Une valeur comprise entre\n et \n est valide.\n \n \n \n Erasure code profile\n Profil de code d\'effacement\n \n \n -- No erasure code profile available --\n -- Aucun profil de code d\'effacement n\'est disponible --\n \n \n -- Select an erasure code profile --\n -- S\xe9lectionner un profil de code d\'effacement --\n \n \n EC Overwrites\n \xc9crasements EC\n \n \n Applications\n Applications\n \n \n Compression\n Compression\n \n \n Algorithm\n Algorithme\n \n \n -- No erasure compression algorithm available --\n -- Aucun algorithme de compression d\'effacement n\'est disponible --\n \n \n Minimum blob size\n Taille de blob minimale\n \n \n e.g., 128KiB\n par ex. 128 Kio\n \n \n Value should be greater than 0\n La valeur doit \xeatre sup\xe9rieure \xe0 0\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n Taille de blob maximale\n \n \n e.g., 512KiB\n par ex., 512 Kio\n \n \n Value should be greater than the minimum blob size\n La valeur doit \xeatre sup\xe9rieure \xe0 la taille de blob minimale.\n \n \n Ratio\n Rapport\n \n \n Compression ratio\n Rapport de compression\n \n \n Value should be between 0.0 and 1.0\n La valeur doit se situer entre 0.0 et 1.0\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n Il n\'est pas possible de cr\xe9er une r\xe9serve RBD dont le nom contient \'/\'.\n \n \n Please change the name or remove \'rbd\' from the applications list.\n Modifiez le nom ou supprimez \'rbd\' de la liste des applications.\n \n \n Cache Tiers Details\n D\xe9tails des niveaux de mise en cache\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n Veuillez consulter la \n documentation\n \n relative \xe0 la configuration et \xe0 l\'activation de la fonctionnalit\xe9 de gestion Object Gateway.\n \n \n \n Daemons List\n Liste de daemons\n \n \n Performance Counters\n Compteurs de performance\n \n \n Loading bucket data...\n Chargement des donn\xe9es de compartiment...\n \n \n The bucket data could not be loaded.\n Les donn\xe9es du compartiment n\'ont pas pu \xeatre charg\xe9es.\n \n \n Id\n ID\n \n \n The value is not valid.\n La valeur n\'est pas valide.\n \n \n Owner\n Propri\xe9taire\n \n \n -- Select a user --\n -- S\xe9lectionner un utilisateur --\n \n \n ID\n ID\n \n \n Index type\n Type d\'index\n \n \n Placement rule\n R\xe8gle de placement\n \n \n Marker\n Marqueur\n \n \n Maximum marker\n Marqueur maximum\n \n \n Version\n Version\n \n \n Master version\n Version principale\n \n \n Modification time\n Date de modification\n \n \n Zonegroup\n Groupe de zones\n \n \n Bucket quota\n Quota de compartiments\n \n \n Enabled\n Activ\xe9\n \n \n Maximum size\n Taille maximale\n \n \n Unlimited\n Illimit\xe9\n \n \n Maximum objects\n Nombre maximal d\'objets\n \n \n -- Select a username --\n -- S\xe9lectionner un nom d\'utilisateur --\n \n \n Auto-generate key\n G\xe9n\xe9rer automatiquement la clef\n \n \n Access key\n Clef d\'acc\xe8s\n \n \n Secret key\n Clef secr\xe8te\n \n \n Email address\n Adresse \xe9lectronique\n \n \n Suspended\n Suspendu\n \n \n System\n Syst\xe8me\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {Non} 1 {Oui} }\n \n \n Maximum buckets\n Nombre maximal de compartiments\n \n \n Subusers\n Utilisateurs secondaires\n \n \n Capabilities\n Fonctionnalit\xe9s\n \n \n User quota\n Quota utilisateur\n \n \n Show\n Afficher\n \n \n Keys\n Clefs\n \n \n -- Select a type --\n -- S\xe9lectionner un type --\n \n \n Permission\n Autorisation\n \n \n -- Select a permission --\n -- S\xe9lectionner une autorisation --\n \n \n Subuser\n Utilisateur secondaire\n \n \n The chosen subuser ID is already in use.\n L\'ID d\'utilisateur secondaire s\xe9lectionn\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n read, write\n lire, \xe9crire\n \n \n full\n complet\n \n \n Swift key\n Cl\xe9 Swift\n \n \n Auto-generate secret\n G\xe9n\xe9rer automatiquement le secret\n \n \n Loading user data...\n Chargement des donn\xe9s utilisateur\u2026\n \n \n The user data could not be loaded.\n Les donn\xe9s utilisateur n\'ont pas pu \xeatre charg\xe9es.\n \n \n The chosen user ID is already in use.\n L\'ID utilisateur sp\xe9cifi\xe9 est d\xe9j\xe0 utilis\xe9.\n \n \n This is not a valid email address.\n Ceci n\'est pas une adresse \xe9lectronique valide.\n \n \n The chosen email address is already in use.\n L\'adresse \xe9lectronique sp\xe9cifi\xe9e est d\xe9j\xe0 utilis\xe9e.\n \n \n Max. buckets\n Nombre max. de compartiments\n \n \n The entered value must be >= 0.\n La valeur saisie doit \xeatre >= 0.\n \n \n S3 key\n Clef S3\n \n \n There are no subusers.\n Il n\'y a aucun utilisateur secondaire.\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n Il n\'y a pas de clefs.\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n Swift\n \n \n There are no capabilities.\n Il n\'y a aucune fonctionnalit\xe9.\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n Taille illimit\xe9e\n \n \n Max. size\n Taille max.\n \n \n Unlimited objects\n Objets illimit\xe9s\n \n \n Max. objects\n Nombre max. d\'objets\n \n \n Current\n Actuel\n \n \n Updated discovery authentication\n Authentification de la d\xe9couverte mise \xe0 jour\n \n \n There are no portals available.\n Il n\'y a aucun portail disponible.\n \n \n There are no images available.\n Il n\'y a aucune image disponible.\n \n \n There are no images available. Please make sure you add an image to the target.\n Il n\'y a aucune image disponible. Veillez \xe0 ajouter une image \xe0 la cible.\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n Il n\'y a aucun initiateur disponible. Veillez \xe0 ajouter un initiateur \xe0 la cible.\n \n \n target\n target\n \n \n Target\n Cible\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \xc9tat\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n Octets de lecture\n \n \n Write Bytes\n Octets d\'\xe9criture\n \n \n Read Ops\n Op\xe9rations de lecture\n \n \n Write Ops\n Op\xe9rations d\'\xe9criture\n \n \n A/O Since\n A/O depuis\n \n \n Instance\n Instance\n \n \n Hostname\n Nom d\'h\xf4te\n \n \n Issue\n Probl\xe8me\n \n \n Progress\n Avancement\n \n \n Disabled\n D\xe9sactiv\xe9\n \n \n Edit Mode\n Mode d\'\xe9dition\n \n \n Add Peer\n Ajouter un homologue\n \n \n Edit Peer\n Modifier un homologue\n \n \n Delete Peer\n Supprimer un homologue\n \n \n Leader\n Leader\n \n \n # Local\n nb en local\n \n \n # Remote\n nb \xe0 distance\n \n \n mirror peer\n mettre en miroir l\'homologue\n \n \n Key\n Clef\n \n \n RBD\n RBD\n \n \n Deep flatten\n Aplatissement en profondeur\n \n \n Layering\n Superposition\n \n \n Exclusive lock\n Verrou exclusif\n \n \n Object map (requires exclusive-lock)\n Assignation d\'objet (n\xe9cessite exclusive-lock)\n \n \n Journaling (requires exclusive-lock)\n Journalisation (n\xe9cessite exclusive-lock)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n Retour \xe0 l\'\xe9tat initial de l\'instantan\xe9 RBD\n \n \n Rollback\n Revenir \xe0 l\'\xe9tat initial\n \n \n RBD snapshot\n Intantan\xe9 RBD\n \n \n Deleted At\n Supprim\xe9 le\n \n \n id\n ID\n \n \n type\n type\n \n \n state\n \xe9tat\n \n \n version\n version\n \n \n Host\n H\xf4te\n \n \n root\n racine\n \n \n Rank\n Rang\n \n \n Daemon\n Daemon\n \n \n Activity\n Activit\xe9\n \n \n Dentries\n Dentries\n \n \n Inodes\n Inodes\n \n \n Usage\n Utilisation\n \n \n Standby daemons\n Daemons en veille\n \n \n The value can be updated at runtime.\n La valeur peut \xeatre mise \xe0 jour au moment de l\'ex\xe9cution.\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n Les daemons/clients ne tirent pas cette valeur de\n\xa0 la base de donn\xe9es de configuration de Monitor. Nous n\'autorisons pas le r\xe9glage de cette option via \'ceph config\n\xa0 set ...\'. Cette option doit \xeatre configur\xe9e via ceph.conf ou via\n\xa0 la ligne de commande.\n \n \n Option takes effect only during daemon startup.\n L\'option ne prend effet qu\'au d\xe9marrage du daemon.\n \n \n Option only affects cluster creation.\n L\'option n\'affecte que la cr\xe9ation des grappes.\n \n \n Option only affects daemon creation.\n L\'option n\'affecte que la cr\xe9ation des daemons.\n \n \n Updated config option \n \n \n Option de configuration mise \xe0 jour \n \n \n \n \n Service\n Service\n \n \n Current value\n Valeur actuelle\n \n \n Editable\n Modifiable\n \n \n Updated options for module "\n ".\n \n Options mises \xe0 jour pour le module &quot;\n &quot;.\n \n \n \n Enable\n Activer\n \n \n Disable\n D\xe9sactiver\n \n \n Reconnecting, please wait ...\n Reconnexion en cours\u2026 Veuillez patienter.\n \n \n Public Address\n Adresse publique\n \n \n Open Sessions\n Sessions ouvertes\n \n \n No In\n Pas rentr\xe9s\n \n \n OSDs that were previously marked out will not be marked back in when they start\n Les OSD qui ont \xe9t\xe9 marqu\xe9s comme sortis ne seront pas marqu\xe9s comme rentr\xe9s \xe0 leur d\xe9marrage.\n \n \n No Out\n Pas sortis\n \n \n OSDs will not automatically be marked out after the configured interval\n Les OSD ne seront pas marqu\xe9s automatiquement comme sortis apr\xe8s l\'intervalle configur\xe9.\n \n \n No Up\n Pas d\xe9marr\xe9s\n \n \n OSDs are not allowed to start\n Les OSD ne sont pas autoris\xe9s \xe0 d\xe9marrer.\n \n \n No Down\n Pas arr\xeat\xe9s\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n Les rapports de d\xe9faillance des OSD sont ignor\xe9s, de sorte que les moniteurs ne marquent pas les OSD comme \xe9tant arr\xeat\xe9s.\n \n \n Pause\n Pause\n \n \n Pauses reads and writes\n Met en pause les lectures et \xe9critures\n \n \n No Scrub\n Pas de nettoyage\n \n \n Scrubbing is disabled\n Nettoyage d\xe9sactiv\xe9\n \n \n No Deep Scrub\n Pas de nettoyage en profondeur\n \n \n Deep Scrubbing is disabled\n Le nettoyage en profondeur est d\xe9sactiv\xe9\n \n \n No Backfill\n Pas de renvoi\n \n \n Backfilling of PGs is suspended\n Le renvoi des groupes de placements est suspendu\n \n \n No Recover\n Pas de r\xe9cup\xe9ration\n \n \n Recovery of PGs is suspended\n La r\xe9cup\xe9ration des groupes de placements est suspendue\n \n \n Bitwise Sort\n Tri au niveau du bit\n \n \n Use bitwise sort\n Utiliser le tri au niveau du bit\n \n \n Purged Snapdirs\n Variables snapdir purg\xe9es\n \n \n OSDs have converted snapsets\n Les OSD ont converti les variables snapset\n \n \n Recovery Deletes\n Suppressions des r\xe9cup\xe9rations\n \n \n Deletes performed during recovery instead of peering\n Suppressions effectu\xe9es pendant la restauration et non l\'homologation\n \n \n PG Log Hard Limit\n Limite stricte de journalisation des groupes de placements\n \n \n Puts a hard limit on pg log length\n Impose une limite stricte \xe0 la longueur du journal des groupes de placements\n \n \n Updated OSD Flags\n Drapeaux OSD mis \xe0 jour\n \n \n out\n sorti\n \n \n in\n rentr\xe9\n \n \n down\n arr\xeat\xe9\n \n \n Mark\n Marquer\n \n \n OSD lost\n OSD perdu\n \n \n marked lost\n marqu\xe9 comme perdu\n \n \n Purge\n Purger\n \n \n OSD\n OSD\n \n \n purged\n purg\xe9\n \n \n destroy\n d\xe9truire\n \n \n destroyed\n d\xe9truit\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n Groupes de placements\n \n \n Read bytes\n Octets de lecture\n \n \n Writes bytes\n Octets d\'\xe9criture\n \n \n Read ops\n Op\xe9rations de lecture\n \n \n Write ops\n Op\xe9rations d\'\xe9criture\n \n \n Mark OSD \n \n \n Marquer l\'OSD comme \n \n \n \n \n Mark \n \n \n Marquer comme \n \n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n Nbre max. de renvois\n \n \n Recovery Max Active\n Nombre maximum de r\xe9cup\xe9rations actives\n \n \n Recovery Max Single Start\n Nombre maximum de d\xe9marrages uniques de r\xe9cup\xe9rations\n \n \n Recovery Sleep\n Mise en veille de la r\xe9cup\xe9ration\n \n \n Custom\n Personnalis\xe9\n \n \n Updated OSD recovery speed priority "\n "\n \n Priorit\xe9 de la vitesse de r\xe9cup\xe9ration des OSD&quot;\n &quot; mise \xe0 jour\n \n \n \n \n was initialized in the following OSD: \n \n \n \n a \xe9t\xe9 initialis\xe9(e) sur l\'OSD suivant : \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n Travail\n \n \n Severity\n Gravit\xe9\n \n \n Started\n D\xe9marr\xe9\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n Mis \xe0 jour\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n Utilis\xe9\n \n \n Avail.\n Dispo.\n \n \n Clean\n Nettoy\xe9\n \n \n Working\n En cours\n \n \n Warning\n Avertissement\n \n \n Unknown\n Inconnu\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n op\xe9rationnel\n \n \n no filesystems\n aucun syst\xe8me de fichiers\n \n \n active\n actif\n \n \n standby\n veille\n \n \n n/a\n n/a\n \n \n active daemon\n daemon actif\n \n \n quorum\n quorum\n \n \n The NFS Ganesha service is not configured.\n Le service NFS Ganesha n\'est pas configur\xe9.\n \n \n Transport\n Transport\n \n \n CephFS User\n Utilisateur CephFS\n \n \n CephFS Filesystem\n Syst\xe8me de fichiers CephFS\n \n \n (inherited from global config)\n (h\xe9rit\xe9 de la configuration globale)\n \n \n inherited from global config\n h\xe9rit\xe9 de la configuration globale\n \n \n -- Select what kind of user id squashing is performed --\n -- S\xe9lectionner le type de squashing d\'ID utilisateur effectu\xe9 --\n \n \n There are no daemons available.\n Aucun daemon n\'est disponible.\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n Mode cache\n \n \n Min Evict Age\n \xc2ge \xe9vict min.\n \n \n Min Flush Age\n \xc2ge vidage min.\n \n \n Target Max Bytes\n Nombre max d\'octets cibles\n \n \n Target Max Objects\n Nombre max. d\'objets cibles\n \n \n No applications added\n Aucune application ajout\xe9e\n \n \n Applications limit reached\n Limite d\'applications atteinte\n \n \n A pool can only have up to four applications definitions.\n Une r\xe9serve peut avoir quatre d\xe9finitions d\'application maximum.\n \n \n Allowed characters \'_a-zA-Z0-9\'\n Caract\xe8re autoris\xe9s \'_a-zA-Z0-9\'\n \n \n Maximum length is 128 characters\n La longueur maximale est de 128 caract\xe8res.\n \n \n Filter or add applications\n Filtrer ou ajouter des applications\n \n \n Add application\n Ajouter une application\n \n \n pool\n pool\n \n \n erasure code profile\n profil de code d\'effacement\n \n \n Replica Size\n Taille de la r\xe9plique\n \n \n Last Change\n Dernier changement\n \n \n Erasure Coded Profile\n Profil de code d\'effacement\n \n \n Crush Ruleset\n Jeu de r\xe8gles Crush\n \n \n Write bytes\n Octets d\'\xe9criture\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n compartiment\n \n \n Updated Object Gateway bucket "\n "\n \n Compartiment Object Gateway &quot;\n &quot; mis \xe0 jour\n \n \n \n Created Object Gateway bucket "\n "\n \n Compartiment Object Gateway &quot;\n &quot; cr\xe9\xe9\n \n \n \n buckets\n compartiments\n \n \n capability\n capability\n \n \n user\n utilisateur\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n Utilisateur Object Gateway &quot;\n &quot; mis \xe0 jour\n \n \n \n Created Object Gateway user "\n "\n \n Utilisateur Object Gateway &quot;\n &quot; cr\xe9\xe9\n \n \n \n users\n utilisateurs\n \n \n Swift Key\n Swift Key\n \n \n Scope\n P\xe9rim\xe8tre\n \n \n Read\n Lecture\n \n \n Create\n Cr\xe9er\n \n \n role\n role\n \n \n Created role \'\n \'\n \n R\xf4le \'\n \' cr\xe9\xe9\n \n \n \n Updated role \'\n \'\n \n R\xf4le \'\n \' mis \xe0 jour\n \n \n \n System Role\n R\xf4le syst\xe8me\n \n \n Deleted role \'\n \'\n \n R\xf4le \'\n \' supprim\xe9\n \n \n \n Created user "\n "\n \n Utilisateur &quot;\n &quot; cr\xe9\xe9\n \n \n \n Update user\n Mettre \xe0 jour l\'utilisateur\n \n \n Continue\n Continuer\n \n \n You were automatically logged out because your roles have been changed.\n Vous avez \xe9t\xe9 automatiquement d\xe9connect\xe9, car vos r\xf4les ont chang\xe9.\n \n \n Updated user "\n "\n \n Utilisateur &quot;\n &quot; mis \xe0 jour\n \n \n \n Deleted user "\n "\n \n Utilisateur &quot;\n &quot; supprim\xe9\n \n \n \n Failed to delete user "\n "\n \n \xc9chec de la suppression de l\'utilisateur &quot;\n &quot;\n \n \n \n You are currently logged in as "\n ".\n \n Vous \xeates connect\xe9 en tant que &quot;\n &quot;.\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n Chaque objet est divis\xe9 en parties de blocs de donn\xe9es, chacune \xe9tant stock\xe9e sur un OSD diff\xe9rent.\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n Calculez des blocs de codage pour chaque objet et stockez-les sur diff\xe9rents OSD.\n Le nombre de blocs de codage correspond \xe9galement au nombre d\'OSD qui peuvent \xeatre arr\xeat\xe9s sans perdre de donn\xe9es.\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n Le plugin jerasure est le plugin le plus g\xe9n\xe9rique et le plus flexible,\n\xa0 c\'est aussi la valeur par d\xe9faut des r\xe9serves cod\xe9es \xe0 effacement Ceph.\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n La technique la plus flexible est reed_sol_van_van : il suffit de d\xe9finir k\n et m. La technique cauchy_good peut \xeatre plus rapide, mais vous devez choisir la taille du paquet\n avec pr\xe9caution. reed_sol_r6_op, liberation, blaum_roth et liber8tion sont des \xe9quivalents RAID6\n en ce sens qu\'ils ne peuvent \xeatre configur\xe9s qu\'avec m=2.\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n L\'encodage se fera sur des paquets de taille d\'octets.\n\xa0 Choisir la bonne taille de paquet est difficile.\n\xa0 La documentation de jerasure contient de nombreuses informations \xe0 ce sujet.\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n Avec le plugin jerasure, lorsqu\'un objet cod\xe9 \xe0 effacement est stock\xe9 sur\n plusieurs OSD, la r\xe9cup\xe9ration \xe0 la suite de la perte d\'un OSD n\xe9cessite la lecture de tous les autres.\n Par exemple, si jerasure est configur\xe9 avec k=8 et m=4, la perte d\'un OSD n\xe9cessite de lire\n les onze autres pour pouvoir effectuer une r\xe9paration.\n\n Le plugin de code d\'effacement lrc cr\xe9e des blocs de parit\xe9 locale pour permettre la r\xe9cup\xe9ration avec\n moins d\'OSD. Par exemple, si lrc est configur\xe9 avec k=8, m=4 et l=4,\n un bloc de parit\xe9 suppl\xe9mentaire est cr\xe9\xe9 pour chaque groupe de quatre OSD. Lorsqu\'un seul OSD est perdu, il peut \xeatre\n r\xe9cup\xe9r\xe9 avec seulement quatre OSD au lieu de onze.\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n Regroupez les blocs de donn\xe9es et de codage en ensembles de localit\xe9 de taille. Par exemple,\n pour k=4 et m=2, lorsque locality=3, deux groupes de trois sont cr\xe9\xe9s. Chaque ensemble peut\n \xeatre r\xe9cup\xe9r\xe9 sans lire les blocs d\'un autre jeu.\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n Type de compartiment Crush dans lequel chaque ensemble de blocs d\xe9fini\n par I sera stock\xe9. Par exemple, s\'il est r\xe9gl\xe9 sur rack, chaque groupe de blocs I sera\n plac\xe9 dans un rack diff\xe9rent. Il est utilis\xe9 pour cr\xe9er une \xe9tape de la r\xe8gle CRUSH telle que l\'\xe9tape de choix\n d\'un rack. S\'il n\'est pas d\xe9fini, aucun regroupement de ce type n\'est effectu\xe9.\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n Le plug-in isa encapsule la biblioth\xe8que ISA. Il ne fonctionne qu\'avec des processeurs Intel.\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n Le plugin ISA se pr\xe9sente sous deux formes Reed Solomon.\n Si reed_sol_van est d\xe9fini, il \xe9quivaut \xe0 Vandermonde. Si cauchy est configur\xe9, il \xe9quivaut \xe0 Cauchy.\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n Le plug-in shec encapsule la biblioth\xe8que SHEC multiple.\n Il permet \xe0 Ceph de r\xe9cup\xe9rer les donn\xe9es plus efficacement qu\'avec les codes Reed Solomon.\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n Nombre de blocs de parit\xe9, chacun incluant chaque bloc de donn\xe9es dans sa\n plage de calcul. Ce nombre est utilis\xe9 comme estimateur de durabilit\xe9. Par exemple, si c=2,\n 2 OSD peuvent \xeatre arr\xeat\xe9s sans perte de donn\xe9es.\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n Nom du compartiment crush utilis\xe9 pour la premi\xe8re \xe9tape de la r\xe8gle CRUSH.\n Par exemple, l\'\xe9tape de d\xe9finition des valeurs par d\xe9faut.\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n V\xe9rifiez qu\'il n\'existe pas deux blocs dans un compartiment avec le m\xeame domaine de\n d\xe9faillance. Par exemple, si le domaine de d\xe9faillance est un h\xf4te, deux blocs ne seront pas stock\xe9s sur le m\xeame\n h\xf4te. Cette option est utilis\xe9e pour cr\xe9er une \xe9tape de la r\xe8gle CRUSH telle que chooseleaf host.\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n Restreindre le placement aux p\xe9riph\xe9riques d\'une classe sp\xe9cifique\n (par exemple, ssd ou hdd), en utilisant les noms des classes de p\xe9riph\xe9riques crush dans la carte CRUSH.\n \n \n Set the directory name from which the erasure code plugin is loaded.\n D\xe9finissez le nom du r\xe9pertoire \xe0 partir duquel le plug-in de code d\'effacement est charg\xe9.\n \n \n Allows all operations\n Autoriser toutes les op\xe9rations\n \n \n Allows only operations that do not modify the server\n Autorise uniquement les op\xe9rations qui ne modifient pas le serveur\n \n \n Does not allow read or write operations, but allows any other operation\n N\'autorise pas les op\xe9rations de lecture ou d\'\xe9criture, mais toutes les autres.\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n N\'autorise pas la lecture, l\'\xe9criture ni aucune autre op\xe9ration modifiant les attributs d\'un fichier ou le contenu d\'un r\xe9pertoire.\n \n \n Allows no access at all\n N\'autorise aucun acc\xe8s\n \n \n -- Select the priority --\n -- S\xe9lectionner la priorit\xe9 --\n \n \n Low\n Faible\n \n \n High\n \xc9lev\xe9e\n \n \n Last 5 minutes\n Les 5 derni\xe8res minutes\n \n \n Last 15 minutes\n Les 15 derni\xe8res minutes\n \n \n Last 30 minutes\n Les 30 derni\xe8res minutes\n \n \n Last 1 hour (Default)\n La derni\xe8re heure (par d\xe9faut)\n \n \n Last 3 hours\n Les 3 derni\xe8res heures\n \n \n Last 6 hours\n Les 6 derni\xe8res heures\n \n \n Last 12 hours\n Les 12 derni\xe8res heures\n \n \n Last 24 hours\n Les 24 derni\xe8res heures\n \n \n Yesterday\n Hier\n \n \n Today\n Aujourd\'hui\n \n \n Today so far\n Depuis le d\xe9but de la journ\xe9e\n \n \n Day before yesterday\n Avant-hier\n \n \n Last 2 days\n Les 2 derniers jours\n \n \n This day last week\n Il y a huit jours\n \n \n Previous week\n La semaine derni\xe8re\n \n \n This week\n Cette semaine\n \n \n This week so far\n Depuis le d\xe9but de la semaine\n \n \n Last 7 days\n Les 7 derniers jours\n \n \n Previous month\n Le mois dernier\n \n \n This month\n Ce mois\n \n \n This month so far\n Depuis le d\xe9but du mois\n \n \n Last 30 days\n Les 30 derniers jours\n \n \n Last 90 days\n Les 90 derniers jours\n \n \n Last 6 months\n Les 6 derniers mois\n \n \n Last 1 year\n L\'ann\xe9e \xe9coul\xe9e\n \n \n Previous year\n L\'ann\xe9e derni\xe8re\n \n \n This year\n Cette ann\xe9e\n \n \n This year so far\n Depuis le d\xe9but de l\'ann\xe9e\n \n \n Last 2 years\n Les 2 derni\xe8res ann\xe9es\n \n \n Last 5 years\n Les 5 derni\xe8res ann\xe9es\n \n \n Information\n Informations\n \n \n No items selected.\n Aucun \xe9l\xe9ment s\xe9lectionn\xe9.\n \n \n Deselect item to select again\n D\xe9s\xe9lectionnez l\'\xe9l\xe9ment pour le s\xe9lectionner \xe0 nouveau.\n \n \n Selection limit reached\n Limite de s\xe9lection atteinte\n \n \n Filter tags\n Balises de filtre\n \n \n Add badge\n Ajouter un badge\n \n \n There are no items available.\n Aucun \xe9l\xe9ment disponible.\n \n \n Add\n Ajouter\n \n \n Remove\n Remove\n \n \n Clone\n Cloner\n \n \n Copy\n Copier\n \n \n Deep Scrub\n Nettoyage en profondeur\n \n \n Destroy\n D\xe9truire\n \n \n Flatten\n Aplatir\n \n \n Mark Down\n Marquer comme arr\xeat\xe9\n \n \n Mark In\n Marquer comme rentr\xe9\n \n \n Mark Lost\n Marquer comme perdu\n \n \n Mark Out\n Marquer comme sorti\n \n \n Protect\n Prot\xe9ger\n \n \n Rename\n Renommer\n \n \n Restore\n Restaurer\n \n \n Move to Trash\n D\xe9placer vers la corbeille\n \n \n Unprotect\n Annuler la protection\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n Supprim\xe9\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n Clon\xe9\n \n \n Copied\n Copi\xe9\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n Oui\n \n \n No\n Non\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n Qualit\xe9 de service\n \n \n BPS Limit\n Limite de bits/s\n \n \n The desired limit of IO bytes per second.\n Limite souhait\xe9e d\'octets E/S par seconde.\n \n \n IOPS Limit\n Limite E/S par seconde\n \n \n The desired limit of IO operations per second.\n Limite souhait\xe9e d\'op\xe9rations E/S par seconde.\n \n \n Read BPS Limit\n Limite de bits/s en lecture\n \n \n The desired limit of read bytes per second.\n Limite souhait\xe9e de lecture d\'octets par seconde.\n \n \n Read IOPS Limit\n Limite E/S par seconde en lecture\n \n \n The desired limit of read operations per second.\n Limite souhait\xe9e d\'op\xe9rations de lecture par seconde.\n \n \n Write BPS Limit\n Limite de bits/s en \xe9criture\n \n \n The desired limit of write bytes per second.\n Limite souhait\xe9e d\'\xe9criture d\'octets par seconde.\n \n \n Write IOPS Limit\n Limite E/S par seconde en \xe9criture\n \n \n The desired limit of write operations per second.\n Limite souhait\xe9e d\'op\xe9rations d\'\xe9criture par seconde.\n \n \n BPS Burst\n Rafale de bits/s\n \n \n The desired burst limit of IO bytes.\n Limite de rafale d\'octets en E/S souhait\xe9e.\n \n \n IOPS Burst\n Rafale E/S par seconde\n \n \n The desired burst limit of IO operations.\n Limite de rafale d\'op\xe9rations E/S souhait\xe9e.\n \n \n Read BPS Burst\n Rafale E/S par seconde en lecture\n \n \n The desired burst limit of read bytes.\n Limite de rafale d\'octets lus par seconde.\n \n \n Read IOPS Burst\n Rafale E/S par seconde en lecture\n \n \n The desired burst limit of read operations.\n Limite de rafale d\'op\xe9rations de lecture\n \n \n Write BPS Burst\n Rafale E/S par seconde en \xe9criture\n \n \n The desired burst limit of write bytes.\n Limite de rafale de lectures d\'octets souhait\xe9e.\n \n \n Write IOPS Burst\n Rafale d\'E/S par seconde en \xe9criture\n \n \n The desired burst limit of write operations.\n Limite de rafale d\'op\xe9rations d\'\xe9criture souhait\xe9e.\n \n \n Failed to \n \n \n \n Impossible de \n \n \n \n \n \n Executing\n En cours d\'ex\xe9cution\n \n \n execute\n ex\xe9cuter\n \n \n Executed\n Ex\xe9cut\xe9\n \n \n unknown task\n t\xe2che inconnue\n \n \n Creating\n En cours de cr\xe9ation\n \n \n create\n cr\xe9er\n \n \n Updating\n En cours de mise \xe0 jour\n \n \n update\n mettre \xe0 jour\n \n \n Deleting\n En cours de suppression\n \n \n delete\n supprimer\n \n \n RBD \'\n \'\n \n RBD \'\n \'\n \n \n \n RBD snapshot \'\n \'\n \n Instantan\xe9 RBD \'\n \'\n \n \n \n mirror mode for pool \'\n \'\n \n mode miroir pour la r\xe9serve \'\n \'\n \n \n \n mirror peer for pool \'\n \'\n \n mettre en miroir l\'homologue pour la r\xe9serve \'\n \'\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n Le nom est d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n Name is already used by \n .\n \n Le nom est d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n Name is already used by \n .\n \n Le nom est d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n \n contains snapshots.\n \n \n contient des instantan\xe9s.\n \n \n \n Cloning\n Clonage en cours\n \n \n clone\n cloner\n \n \n Snapshot of \n must be protected.\n \n L\'instantan\xe9 de \n doit \xeatre prot\xe9g\xe9.\n \n \n \n Copying\n En cours de copie\n \n \n copy\n copie\n \n \n Flattening\n Aplatissement\n \n \n flatten\n aplatir\n \n \n Flattened\n Applati\n \n \n Name is already used by \n .\n \n Nom d\xe9j\xe0 utilis\xe9 par \n .\n \n \n \n Cannot unprotect \n because it contains child images.\n \n Impossible d\'annuler la protection de \n , car cet \xe9l\xe9ment contient des images enfants.\n \n \n \n Cannot delete \n because it\'s protected.\n \n Impossible de supprimer \n , car cet \xe9l\xe9ment est prot\xe9g\xe9.\n \n \n \n Rolling back\n Retour \xe0 l\'\xe9tat initial\n \n \n rollback\n r\xe9tablir l\'\xe9tat initial\n \n \n Rolled back\n R\xe9tabli \xe0 l\'\xe9tat initial\n \n \n Moving\n En cours de d\xe9placement\n \n \n move\n d\xe9placer\n \n \n Moved\n D\xe9plac\xe9\n \n \n image \'\n \' to trash\n \n image \'\n \' d\xe9plac\xe9e vers la corbeille\n \n \n \n Could not find image.\n Impossible de trouver l\'image.\n \n \n Restoring\n En cours de restauration.\n \n \n restore\n restaurer\n \n \n Restored\n Restaur\xe9\n \n \n image \'\n \' into \'\n \'\n \n image \'\n \' vers \'\n \'\n \n \n \n Image name \'\n \' is already in use.\n \n Le nom d\'image \'\n \' est d\xe9j\xe0 utilis\xe9.\n \n \n \n image \'\n \'\n \n image \'\n \'\n \n \n \n Purging\n En cours de purge\n \n \n purge\n purger\n \n \n Purged\n Purg\xe9\n \n \n all pools\n toutes les r\xe9serves\n \n \n images from \n \n \n images de \n \n \n \n \n Cannot disable mirroring because it contains a peer.\n Impossible de d\xe9sactiver la mise en miroir, car l\'\xe9l\xe9ment contient un homologue.\n \n \n pool \'\n \'\n \n r\xe9serve \'\n \'\n \n \n \n erasure code profile \'\n \'\n \n profil de code d\'effacement \'\n \'\n \n \n \n target \'\n \'\n \n cible \'\n \'\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},ohIB:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("ae7Z");function r(t){for(var e=0,n=0,a=t;n=e;for(var g=0,b=o;gm.maxWidth?(m.width=m.maxWidth,h.push(m)):m.width=y}m.width=Math.max(0,m.width)}p=e-(f=s(t)),i(o,h)}while(p>0&&0!==o.length)}},ou9H:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("MGBS"),i=n("zotm");function s(t,e){return function(n){return n.lift(new o(t,e))}}var o=function(){function t(t,e){this.keySelector=t,this.flushes=e}return t.prototype.call=function(t,e){return e.subscribe(new u(t,this.keySelector,this.flushes))},t}(),u=function(t){function e(e,n,a){var r=t.call(this,e)||this;return r.keySelector=n,r.values=new Set,a&&r.add(Object(i.a)(r,a)),r}return a.__extends(e,t),e.prototype.notifyNext=function(t,e,n,a,r){this.values.clear()},e.prototype.notifyError=function(t,e){this._error(t)},e.prototype._next=function(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)},e.prototype._useKeySelector=function(t){var e,n=this.destination;try{e=this.keySelector(t)}catch(a){return void n.error(a)}this._finalizeNext(e,t)},e.prototype._finalizeNext=function(t,e){var n=this.values;n.has(t)||(n.add(t),this.destination.next(e))},e}(r.a)},"p/rL":function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}()},p0Sj:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("dEwP"),r=n("nkY7");function i(){for(var t=[],e=0;e1&&"number"==typeof t[t.length-1]&&(n=t.pop())):"number"==typeof u&&(n=t.pop()),null===o&&1===t.length&&t[0]instanceof a.a?t[0]:Object(i.a)(n)(Object(s.a)(t,o))}},p4Cf:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},pKUh:function(t,e,n){"use strict";n.d(e,"a",function(){return s}),n.d(e,"b",function(){return c});var a=n("CcnG"),r=n("YAQW"),i=n("Ip0R"),s=a["\u0275crt"]({encapsulation:0,styles:["[_nghost-%COMP%] .nav-tabs[_ngcontent-%COMP%] .nav-item.disabled[_ngcontent-%COMP%] a.disabled[_ngcontent-%COMP%]{cursor:default}"],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"span",[["class","bs-remove-tab"]],null,[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(n.preventDefault(),a=!1!==r.removeTab(t.parent.context.$implicit)&&a),a},null,null)),(t()(),a["\u0275ted"](-1,null,[" \u274c"]))],null,null)}function u(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,8,"li",[],[[2,"active",null],[2,"disabled",null]],[[null,"keydown"]],function(t,e,n){var a=!0;return"keydown"===e&&(a=!1!==t.component.keyNavActions(n,t.context.index)&&a),a},null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{ngClass:[0,"ngClass"]},null),a["\u0275pad"](2,2),(t()(),a["\u0275eld"](3,0,null,null,5,"a",[["class","nav-link"],["href","javascript:void(0);"]],[[1,"id",0],[2,"active",null],[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.context.$implicit.active=!0)&&a),a},null,null)),(t()(),a["\u0275eld"](4,16777216,null,null,2,"span",[],null,null,null,null,null)),a["\u0275did"](5,16384,null,0,r.a,[a.ViewContainerRef],{ngTransclude:[0,"ngTransclude"]},null),(t()(),a["\u0275ted"](6,null,["",""])),(t()(),a["\u0275and"](16777216,null,null,1,null,o)),a["\u0275did"](8,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,2,0,"nav-item",e.context.$implicit.customClass||"");t(e,1,0,n),t(e,5,0,e.context.$implicit.headingRef),t(e,8,0,e.context.$implicit.removable)},function(t,e){t(e,0,0,e.context.$implicit.active,e.context.$implicit.disabled),t(e,3,0,e.context.$implicit.id?e.context.$implicit.id+"-link":"",e.context.$implicit.active,e.context.$implicit.disabled),t(e,6,0,e.context.$implicit.heading)})}function c(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,3,"ul",[["class","nav"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a},null,null)),a["\u0275did"](1,278528,null,0,i.NgClass,[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["\u0275and"](16777216,null,null,1,null,u)),a["\u0275did"](3,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["\u0275eld"](4,0,null,null,1,"div",[["class","tab-content"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],function(t,e){var n=e.component;t(e,1,0,"nav",n.classMap),t(e,3,0,n.tabs)},null)}},pL04:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(){}}()},pMnS:function(t,e,n){"use strict";n.d(e,"a",function(){return u});var a=n("CcnG"),r=n("ZYCi"),i=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),a["\u0275did"](1,212992,null,0,r.q,[r.b,a.ViewContainerRef,a.ComponentFactoryResolver,[8,null],a.ChangeDetectorRef],null,null)],function(t,e){t(e,1,0)},null)}function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"ng-component",[],null,null,null,s,i)),a["\u0275did"](1,49152,null,0,r.u,[],null,null)],null,null)}var u=a["\u0275ccf"]("ng-component",r.u,o,{},{},[])},paOr:function(t,e,n){"use strict";var a=n("RDha"),r=n("cdu6");t.exports=function(t){var e=a.noop;t.LinearScaleBase=r.extend({getRightValue:function(t){return"string"==typeof t?+t:r.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=a.sign(t.min),r=a.sign(t.max);n<0&&r<0?t.max=0:n>0&&r>0&&(t.min=0)}var i=void 0!==e.min||void 0!==e.suggestedMin,s=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(t.min=null===t.min?e.suggestedMin:Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(t.max=null===t.max?e.suggestedMax:Math.max(t.max,e.suggestedMax)),i!==s&&t.min>=t.max&&(i?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),r={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:a.valueOrDefault(e.fixedStepSize,e.stepSize)},i=t.ticks=function(t,e){var n,r,i,s=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=a.niceNum(e.max-e.min,!1);i=a.niceNum(o/(t.maxTicks-1),!0),void 0!==(r=t.precision)&&(n=Math.pow(10,r),i=Math.ceil(i*n)/n)}var u=Math.floor(e.min/i)*i,c=Math.ceil(e.max/i)*i;a.isNullOrUndef(t.min)||a.isNullOrUndef(t.max)||!t.stepSize||a.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(u=t.min,c=t.max);var l=(c-u)/i;l=a.almostEquals(l,Math.round(l),i/1e3)?Math.round(l):Math.ceil(l),r=1,i<1&&(r=Math.pow(10,1-Math.floor(a.log10(i))),u=Math.round(u*r)/r,c=Math.round(c*r)/r),s.push(void 0!==t.min?t.min:u);for(var d=1;d0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},e}(i.a)},pugT:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("isby"),r=n("McSo"),i=n("2Bdj"),s=n("awvh"),o=function(){function t(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}var e;return t.prototype.unsubscribe=function(){var e;if(!this.closed){var n=this._parentOrParents,o=this._unsubscribe,c=this._subscriptions;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(var l=0;l
';var r=e.childNodes[0],i=e.childNodes[1];e._reset=function(){r.scrollLeft=1e6,r.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var s=function(){e._reset(),t()};return u(r,"scroll",s.bind(r,"expand")),u(i,"scroll",s.bind(i,"shrink")),e}((i=function(){if(d.resizer)return e(l("resize",n))},o=!1,c=[],function(){c=Array.prototype.slice.call(arguments),s=s||this,o||(o=!0,a.requestAnimFrame.call(window,function(){o=!1,i.apply(s,c)}))}));!function(t,e){var n=t.$chartjs||(t.$chartjs={}),i=n.renderProxy=function(t){"chartjs-render-animation"===t.animationName&&e()};a.each(r,function(e){u(t,e,i)}),n.reflow=!!t.offsetParent,t.classList.add("chartjs-render-monitor")}(t,function(){if(d.resizer){var e=t.parentNode;e&&e!==f.parentNode&&e.insertBefore(f,e.firstChild),f._reset()}})}(s,n,t)},removeEventListener:function(t,e,n){var i,s,o,u=t.canvas;if("resize"!==e){var l=((n.$chartjs||{}).proxies||{})[t.id+"_"+e];l&&c(u,e,l)}else o=(s=(i=u).$chartjs||{}).resizer,delete s.resizer,function(t){var e=t.$chartjs||{},n=e.renderProxy;n&&(a.each(r,function(e){c(t,e,n)}),delete e.renderProxy),t.classList.remove("chartjs-render-monitor")}(i),o&&o.parentNode&&o.parentNode.removeChild(o)}},a.addEvent=u,a.removeEvent=c},qwkt:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("ejVf")),a(n("aTeT")),a(n("WOoz")),a(n("lmqd")),a(n("ILDN")),a(n("n1nk"))},qzaf:function(t,e,n){"use strict";t.exports=function(t){t.PolarArea=function(e,n){return n.type="polarArea",new t(e,n)}}},rLYq:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n\n \n ',host:{class:"datatable-summary-row"}})],t)}()},rPjj:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(e,n,a){var r=t.call(this)||this;return r.parent=e,r.outerValue=n,r.outerIndex=a,r.index=0,r}return a.__extends(e,t),e.prototype._next=function(t){this.parent.notifyNext(this.outerValue,t,this.outerIndex,this.index++,this)},e.prototype._error=function(t){this.parent.notifyError(t,this),this.unsubscribe()},e.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},e}(n("FFOo").a)},raLr:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===n?e?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":t+" "+(a=+t,r={ss:e?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:e?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:e?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}function a(t){return function(){return t+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}n("wd/R").defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:function(t,e){var n={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return!0===t?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):t?n[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(e)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(e)?"genitive":"nominative"][t.day()]:n.nominative},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:a("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:a("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:a("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:a("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return a("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:e,m:e,mm:e,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:e,d:"\u0434\u0435\u043d\u044c",dd:e,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:e,y:"\u0440\u0456\u043a",yy:e},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(t)},meridiem:function(t,e,n){return t<4?"\u043d\u043e\u0447\u0456":t<12?"\u0440\u0430\u043d\u043a\u0443":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-\u0439";case"D":return t+"-\u0433\u043e";default:return t}},week:{dow:1,doy:7}})}()},rdkg:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CVuo"),r={},i="undefined"!=typeof document?document.createElement("div").style:void 0,s=function(){var t="undefined"!=typeof window?window.getComputedStyle(document.documentElement,""):void 0,e=void 0!==t?Array.prototype.slice.call(t).join("").match(/-(moz|webkit|ms)-/):null,n=null!==e?e[1]:void 0,a=void 0!==n?"WebKit|Moz|MS|O".match(new RegExp("("+n+")","i"))[1]:void 0;return a?{dom:a,lowercase:n,css:"-"+n+"-",js:n[0].toUpperCase()+n.substr(1)}:void 0};e.\u02750=s;var o=s();e.getVendorPrefixedName=function(t){var e=a.camelCase(t);return r[e]||(void 0!==o&&void 0!==i[o.css+t]?r[e]=o.css+t:void 0!==i[t]&&(r[e]=t)),r[e]}},rpEJ:function(t,e,n){"use strict";n.d(e,"a",function(){return h}),n.d(e,"b",function(){return g}),n.d(e,"c",function(){return f}),n.d(e,"d",function(){return p}),n.d(e,"e",function(){return o}),n.d(e,"f",function(){return s}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return u}),n.d(e,"i",function(){return y}),n.d(e,"j",function(){return d});var a=n("CcnG"),r=function(){function t(t,e){this.open=t,this.close=e||t}return t.prototype.isManual=function(){return"manual"===this.open||"manual"===this.close},t}(),i={hover:["mouseover","mouseout"],focus:["focusin","focusout"]};function s(t,e){void 0===e&&(e=i);var n=(t||"").trim();if(0===n.length)return[];var a=n.split(/\s+/).map(function(t){return t.split(":")}).map(function(t){var n=e[t[0]]||t;return new r(n[0],n[1])}),s=a.filter(function(t){return t.isManual()});if(s.length>1)throw new Error("Triggers parse error: only one manual trigger is allowed");if(1===s.length&&a.length>1)throw new Error("Triggers parse error: manual trigger can't be mixed with other triggers");return a}function o(t,e){var n=s(e.triggers),a=e.target;if(1===n.length&&n[0].isManual())return Function.prototype;var r=[],i=[],o=function(){i.forEach(function(t){return r.push(t())}),i.length=0};return n.forEach(function(n){var s=n.open===n.close,u=s?e.toggle:e.show;s||i.push(function(){return t.listen(a,n.close,e.hide)}),r.push(t.listen(a,n.open,function(){return u(o)}))}),function(){r.forEach(function(t){return t()})}}function u(t,e){return e.outsideClick?t.listen("document","click",function(t){e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(function(e){return e.contains(t.target)})||e.hide()}):Function.prototype}function c(t,e){return e.outsideEsc?t.listen("document","keyup.esc",function(t){e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(function(e){return e.contains(t.target)})||e.hide()}):Function.prototype}var l,d="undefined"!=typeof window&&window||{},f=d.document;function p(){return void 0===d||(void 0===d.__theme?l?"bs3"===l:"bs3"===(l=function(){if("undefined"==typeof document)return null;var t=document.createElement("span");t.innerText="test bs version",document.body.appendChild(t),t.classList.add("d-none");var e=t.getBoundingClientRect();return document.body.removeChild(t),e&&0===e.top?"bs4":"bs3"}()):"bs4"!==d.__theme)}function h(t){return function(t,e){var n=" __"+e+"Value";Object.defineProperty(t,e,{get:function(){return this[n]},set:function(t){var a=this[n];this[n]=t,a!==t&&this[e+"Change"]&&this[e+"Change"].emit(t)}})}}var g=function(){function t(){}return t.reflow=function(t){},t.getStyles=function(t){var e=t.ownerDocument.defaultView;return e&&e.opener||(e=d),e.getComputedStyle(t)},t}(),b={},m="undefined"==typeof console||!("warn"in console);function y(t){!Object(a.isDevMode)()||m||t in b||(b[t]=!0,console.warn(t))}},"s+uk":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}n("wd/R").defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},sLuX:function(t,e,n){"use strict";var a=n("CcnG"),r=n("25BL"),i=n("uIqm");n("FSuO"),n("a0VL"),n.d(e,"a",function(){return s}),n.d(e,"b",function(){return o});var s=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function o(t){return a["\u0275vid"](0,[a["\u0275qud"](402653184,1,{table:0}),(t()(),a["\u0275eld"](1,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,r.b,r.a)),a["\u0275did"](2,2867200,[[1,4],["table",4]],0,i.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],header:[4,"header"],footer:[5,"footer"],limit:[6,"limit"],autoReload:[7,"autoReload"],autoSave:[8,"autoSave"],customCss:[9,"customCss"]},null)],function(t,e){var n=e.component;t(e,2,0,n.tableData,n.columns,"flex",!1,!1,!1,0,n.autoReload,!1,n.customCss)},null)}},sb0X:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("CcnG"),r=n("gIcY"),i=n("LvDl"),s=function(){function t(t){this.elRef=t,this.type="submit",this.submitAction=new a.EventEmitter,this.disabled=!1,this.loading=!1}return t.prototype.ngOnInit=function(){var t=this;this.form.statusChanges.subscribe(function(){i.has(t.form.errors,"cdSubmitButton")&&(t.loading=!1,i.unset(t.form.errors,"cdSubmitButton"),t.form instanceof r.a&&t.form.updateValueAndValidity())})},t.prototype.submit=function(t){this.focusButton(),this.form instanceof r.l&&this.form.onSubmit(t),this.form.invalid?this.focusInvalid():(this.loading=!0,this.submitAction.emit())},t.prototype.focusButton=function(){this.elRef.nativeElement.offsetParent.querySelector('button[type="'+this.type+'"]').focus()},t.prototype.focusInvalid=function(){var t=this.elRef.nativeElement.offsetParent.querySelector("input.ng-invalid, select.ng-invalid");t&&t.focus()},t}()},siIJ:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(e,n){void 0===n&&(n=t.now),this.SchedulerAction=e,this.now=n}return t.prototype.schedule=function(t,e,n){return void 0===e&&(e=0),new this.SchedulerAction(this,t).schedule(n,e)},t.now=function(){return Date.now()},t}()},sne2:function(t,e,n){"use strict";n.d(e,"c",function(){return o}),n.d(e,"e",function(){return a}),n.d(e,"a",function(){return r}),n.d(e,"b",function(){return u}),n.d(e,"d",function(){return c});var a,r,i=n("CcnG"),s=n("Jm/i"),o=function(){function t(){}return t.organization="ceph",t.projectName="Ceph Manager Dashboard",t.license="Free software (LGPL 2.1).",t}();!function(t){t.CREATE="create",t.EDIT="edit",t.UPDATE="update",t.REMOVE="remove",t.DELETE="delete",t.ADD="add",t.COPY="copy",t.CLONE="clone",t.RECREATE="recreate",t.EXPIRE="expire"}(a||(a={})),function(t){t.CREATE="Create",t.DELETE="Delete",t.ADD="Add",t.REMOVE="Remove",t.EDIT="Edit",t.CANCEL="Cancel",t.COPY="Copy",t.CLONE="Clone",t.SHOW="Show",t.RECREATE="Recreate",t.EXPIRE="Expire"}(r||(r={}));var u=function(){function t(t){this.i18n=t,this.CREATE=this.i18n("Create"),this.DELETE=this.i18n("Delete"),this.ADD=this.i18n("Add"),this.REMOVE=this.i18n("Remove"),this.EDIT=this.i18n("Edit"),this.CANCEL=this.i18n("Cancel"),this.CLONE=this.i18n("Clone"),this.COPY=this.i18n("Copy"),this.DEEP_SCRUB=this.i18n("Deep Scrub"),this.DESTROY=this.i18n("Destroy"),this.FLATTEN=this.i18n("Flatten"),this.MARK_DOWN=this.i18n("Mark Down"),this.MARK_IN=this.i18n("Mark In"),this.MARK_LOST=this.i18n("Mark Lost"),this.MARK_OUT=this.i18n("Mark Out"),this.PROTECT=this.i18n("Protect"),this.PURGE=this.i18n("Purge"),this.RENAME=this.i18n("Rename"),this.RESTORE=this.i18n("Restore"),this.REWEIGHT=this.i18n("Reweight"),this.ROLLBACK=this.i18n("Rollback"),this.SCRUB=this.i18n("Scrub"),this.SHOW=this.i18n("Show"),this.TRASH=this.i18n("Move to Trash"),this.UNPROTECT=this.i18n("Unprotect"),this.RECREATE=this.i18n("Recreate"),this.EXPIRE=this.i18n("Expire")}return t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(s.a))},token:t,providedIn:"root"}),t}(),c=function(){function t(t){this.i18n=t,this.CREATED=this.i18n("Created"),this.DELETED=this.i18n("Deleted"),this.ADDED=this.i18n("Added"),this.REMOVED=this.i18n("Removed"),this.EDITED=this.i18n("Edited"),this.CANCELED=this.i18n("Canceled"),this.CLONED=this.i18n("Cloned"),this.COPIED=this.i18n("Copied"),this.SHOWED=this.i18n("Showed"),this.TRASHED=this.i18n("Moved to Trash"),this.UNPROTECTED=this.i18n("Unprotected"),this.RECREATED=this.i18n("Recreated"),this.EXPIRED=this.i18n("Expired")}return t.ngInjectableDef=i.defineInjectable({factory:function(){return new t(i.inject(s.a))},token:t,providedIn:"root"}),t}()},sp3z:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(t){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===t},meridiem:function(t,e,n){return t<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(t){return"\u0e97\u0eb5\u0ec8"+t}})}()},svcd:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("mrSG"),r=n("K9Ia"),i=n("pugT"),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.value=null,e.hasNext=!1,e.hasCompleted=!1,e}return a.__extends(e,t),e.prototype._subscribe=function(e){return this.hasError?(e.error(this.thrownError),i.a.EMPTY):this.hasCompleted&&this.hasNext?(e.next(this.value),e.complete(),i.a.EMPTY):t.prototype._subscribe.call(this,e)},e.prototype.next=function(t){this.hasCompleted||(this.value=t,this.hasNext=!0)},e.prototype.error=function(e){this.hasCompleted||t.prototype.error.call(this,e)},e.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&t.prototype.next.call(this,this.value),t.prototype.complete.call(this)},e}(r.a)},syrc:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("5tze");n("bpWZ"),n("czA5"),e.DataTableBodyRowComponent=function(){function t(t,e,n,a){this.differs=t,this.scrollbarHelper=e,this.cd=n,this.treeStatus="collapsed",this.activate=new i.EventEmitter,this.treeAction=new i.EventEmitter,this._groupStyles={left:{},center:{},right:{}},this._element=a.nativeElement,this._rowDiffer=t.find({}).create()}return Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t,this.recalculateColumns(t),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._columns){var e=s.columnsByPin(this._columns);this._columnGroupWidths=s.columnGroupWidths(e,e)}this._innerWidth=t,this.recalculateColumns(),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cssClass",{get:function(){var t="datatable-body-row";if(this.isSelected&&(t+=" active"),this.rowIndex%2!=0&&(t+=" datatable-row-odd"),this.rowIndex%2==0&&(t+=" datatable-row-even"),this.rowClass){var e=this.rowClass(this.row);if("string"==typeof e)t+=" "+e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n '})],t)}()},"t/Na":function(t,e,n){"use strict";n.d(e,"m",function(){return E}),n.d(e,"p",function(){return j}),n.d(e,"q",function(){return F}),n.d(e,"n",function(){return P}),n.d(e,"o",function(){return M}),n.d(e,"b",function(){return f}),n.d(e,"g",function(){return d}),n.d(e,"c",function(){return C}),n.d(e,"a",function(){return N}),n.d(e,"d",function(){return Y}),n.d(e,"e",function(){return G}),n.d(e,"l",function(){return z}),n.d(e,"h",function(){return b}),n.d(e,"f",function(){return O}),n.d(e,"i",function(){return L}),n.d(e,"k",function(){return D}),n.d(e,"j",function(){return q});var a=n("mrSG"),r=n("CcnG"),i=n("F/XL"),s=n("6blF"),o=n("Phjn"),u=n("VnD/"),c=n("67Y/"),l=n("Ip0R"),d=function(){return function(){}}(),f=function(){return function(){}}(),p=function(){function t(t){var e=this;this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?function(){e.headers=new Map,t.split("\n").forEach(function(t){var n=t.indexOf(":");if(n>0){var a=t.slice(0,n),r=a.toLowerCase(),i=t.slice(n+1).trim();e.maybeSetNormalizedName(a,r),e.headers.has(r)?e.headers.get(r).push(i):e.headers.set(r,[i])}})}:function(){e.headers=new Map,Object.keys(t).forEach(function(n){var a=t[n],r=n.toLowerCase();"string"==typeof a&&(a=[a]),a.length>0&&(e.headers.set(r,a),e.maybeSetNormalizedName(n,r))})}:this.headers=new Map}return t.prototype.has=function(t){return this.init(),this.headers.has(t.toLowerCase())},t.prototype.get=function(t){this.init();var e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null},t.prototype.keys=function(){return this.init(),Array.from(this.normalizedNames.values())},t.prototype.getAll=function(t){return this.init(),this.headers.get(t.toLowerCase())||null},t.prototype.append=function(t,e){return this.clone({name:t,value:e,op:"a"})},t.prototype.set=function(t,e){return this.clone({name:t,value:e,op:"s"})},t.prototype.delete=function(t,e){return this.clone({name:t,value:e,op:"d"})},t.prototype.maybeSetNormalizedName=function(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)},t.prototype.init=function(){var e=this;this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(function(t){return e.applyUpdate(t)}),this.lazyUpdate=null))},t.prototype.copyFrom=function(t){var e=this;t.init(),Array.from(t.headers.keys()).forEach(function(n){e.headers.set(n,t.headers.get(n)),e.normalizedNames.set(n,t.normalizedNames.get(n))})},t.prototype.clone=function(e){var n=new t;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([e]),n},t.prototype.applyUpdate=function(t){var e=t.name.toLowerCase();switch(t.op){case"a":case"s":var n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);var r=("a"===t.op?this.headers.get(e):void 0)||[];r.push.apply(r,Object(a.__spread)(n)),this.headers.set(e,r);break;case"d":var i=t.value;if(i){var s=this.headers.get(e);if(!s)return;0===(s=s.filter(function(t){return-1===i.indexOf(t)})).length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,s)}else this.headers.delete(e),this.normalizedNames.delete(e)}},t.prototype.forEach=function(t){var e=this;this.init(),Array.from(this.normalizedNames.keys()).forEach(function(n){return t(e.normalizedNames.get(n),e.headers.get(n))})},t}(),h=function(){function t(){}return t.prototype.encodeKey=function(t){return g(t)},t.prototype.encodeValue=function(t){return g(t)},t.prototype.decodeKey=function(t){return decodeURIComponent(t)},t.prototype.decodeValue=function(t){return decodeURIComponent(t)},t}();function g(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}var b=function(){function t(t){void 0===t&&(t={});var e,n,r,i=this;if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new h,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=(e=t.fromString,n=this.encoder,r=new Map,e.length>0&&e.split("&").forEach(function(t){var e=t.indexOf("="),i=Object(a.__read)(-1==e?[n.decodeKey(t),""]:[n.decodeKey(t.slice(0,e)),n.decodeValue(t.slice(e+1))],2),s=i[0],o=i[1],u=r.get(s)||[];u.push(o),r.set(s,u)}),r)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(function(e){var n=t.fromObject[e];i.map.set(e,Array.isArray(n)?n:[n])})):this.map=null}return t.prototype.has=function(t){return this.init(),this.map.has(t)},t.prototype.get=function(t){this.init();var e=this.map.get(t);return e?e[0]:null},t.prototype.getAll=function(t){return this.init(),this.map.get(t)||null},t.prototype.keys=function(){return this.init(),Array.from(this.map.keys())},t.prototype.append=function(t,e){return this.clone({param:t,value:e,op:"a"})},t.prototype.set=function(t,e){return this.clone({param:t,value:e,op:"s"})},t.prototype.delete=function(t,e){return this.clone({param:t,value:e,op:"d"})},t.prototype.toString=function(){var t=this;return this.init(),this.keys().map(function(e){var n=t.encoder.encodeKey(e);return t.map.get(e).map(function(e){return n+"="+t.encoder.encodeValue(e)}).join("&")}).join("&")},t.prototype.clone=function(e){var n=new t({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat([e]),n},t.prototype.init=function(){var t=this;null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(function(e){return t.map.set(e,t.cloneFrom.map.get(e))}),this.updates.forEach(function(e){switch(e.op){case"a":case"s":var n=("a"===e.op?t.map.get(e.param):void 0)||[];n.push(e.value),t.map.set(e.param,n);break;case"d":if(void 0===e.value){t.map.delete(e.param);break}var a=t.map.get(e.param)||[],r=a.indexOf(e.value);-1!==r&&a.splice(r,1),a.length>0?t.map.set(e.param,a):t.map.delete(e.param)}}),this.cloneFrom=null)},t}();function m(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function y(t){return"undefined"!=typeof Blob&&t instanceof Blob}function v(t){return"undefined"!=typeof FormData&&t instanceof FormData}var _=function(){function t(t,e,n,a){var r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||a?(this.body=void 0!==n?n:null,r=a):r=n,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.params&&(this.params=r.params)),this.headers||(this.headers=new p),this.params){var i=this.params.toString();if(0===i.length)this.urlWithParams=e;else{var s=e.indexOf("?");this.urlWithParams=e+(-1===s?"?":s=200&&this.status<300}}(),w=function(t){function e(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=x.ResponseHeader,n}return Object(a.__extends)(e,t),e.prototype.clone=function(t){return void 0===t&&(t={}),new e({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})},e}(T),S=function(t){function e(e){void 0===e&&(e={});var n=t.call(this,e)||this;return n.type=x.Response,n.body=void 0!==e.body?e.body:null,n}return Object(a.__extends)(e,t),e.prototype.clone=function(t){return void 0===t&&(t={}),new e({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})},e}(T),O=function(t){function e(e){var n=t.call(this,e,0,"Unknown Error")||this;return n.name="HttpErrorResponse",n.ok=!1,n.message=n.status>=200&&n.status<300?"Http failure during parsing for "+(e.url||"(unknown url)"):"Http failure response for "+(e.url||"(unknown url)")+": "+e.status+" "+e.statusText,n.error=e.error||null,n}return Object(a.__extends)(e,t),e}(T);function I(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}var C=function(){function t(t){this.handler=t}return t.prototype.request=function(t,e,n){var a,r=this;if(void 0===n&&(n={}),t instanceof _)a=t;else{var s;s=n.headers instanceof p?n.headers:new p(n.headers);var l=void 0;n.params&&(l=n.params instanceof b?n.params:new b({fromObject:n.params})),a=new _(t,e,void 0!==n.body?n.body:null,{headers:s,params:l,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}var d=Object(i.a)(a).pipe(Object(o.a)(function(t){return r.handler.handle(t)}));if(t instanceof _||"events"===n.observe)return d;var f=d.pipe(Object(u.a)(function(t){return t instanceof S}));switch(n.observe||"body"){case"body":switch(a.responseType){case"arraybuffer":return f.pipe(Object(c.a)(function(t){if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body}));case"blob":return f.pipe(Object(c.a)(function(t){if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body}));case"text":return f.pipe(Object(c.a)(function(t){if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body}));case"json":default:return f.pipe(Object(c.a)(function(t){return t.body}))}case"response":return f;default:throw new Error("Unreachable: unhandled observe type "+n.observe+"}")}},t.prototype.delete=function(t,e){return void 0===e&&(e={}),this.request("DELETE",t,e)},t.prototype.get=function(t,e){return void 0===e&&(e={}),this.request("GET",t,e)},t.prototype.head=function(t,e){return void 0===e&&(e={}),this.request("HEAD",t,e)},t.prototype.jsonp=function(t,e){return this.request("JSONP",t,{params:(new b).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})},t.prototype.options=function(t,e){return void 0===e&&(e={}),this.request("OPTIONS",t,e)},t.prototype.patch=function(t,e,n){return void 0===n&&(n={}),this.request("PATCH",t,I(n,e))},t.prototype.post=function(t,e,n){return void 0===n&&(n={}),this.request("POST",t,I(n,e))},t.prototype.put=function(t,e,n){return void 0===n&&(n={}),this.request("PUT",t,I(n,e))},t}(),k=function(){function t(t,e){this.next=t,this.interceptor=e}return t.prototype.handle=function(t){return this.interceptor.intercept(t,this.next)},t}(),N=new r.InjectionToken("HTTP_INTERCEPTORS"),R=function(){function t(){}return t.prototype.intercept=function(t,e){return e.handle(t)},t}(),A=/^\)\]\}',?\n/,D=function(){return function(){}}(),E=function(){function t(){}return t.prototype.build=function(){return new XMLHttpRequest},t}(),L=function(){function t(t){this.xhrFactory=t}return t.prototype.handle=function(t){var e=this;if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without JsonpClientModule installed.");return new s.a(function(n){var a=e.xhrFactory.build();if(a.open(t.method,t.urlWithParams),t.withCredentials&&(a.withCredentials=!0),t.headers.forEach(function(t,e){return a.setRequestHeader(t,e.join(","))}),t.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){var r=t.detectContentTypeHeader();null!==r&&a.setRequestHeader("Content-Type",r)}if(t.responseType){var i=t.responseType.toLowerCase();a.responseType="json"!==i?i:"text"}var s=t.serializeBody(),o=null,u=function(){if(null!==o)return o;var e=1223===a.status?204:a.status,n=a.statusText||"OK",r=new p(a.getAllResponseHeaders()),i=function(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(a)||t.url;return o=new w({headers:r,status:e,statusText:n,url:i})},c=function(){var e=u(),r=e.headers,i=e.status,s=e.statusText,o=e.url,c=null;204!==i&&(c=void 0===a.response?a.responseText:a.response),0===i&&(i=c?200:0);var l=i>=200&&i<300;if("json"===t.responseType&&"string"==typeof c){var d=c;c=c.replace(A,"");try{c=""!==c?JSON.parse(c):null}catch(f){c=d,l&&(l=!1,c={error:f,text:c})}}l?(n.next(new S({body:c,headers:r,status:i,statusText:s,url:o||void 0})),n.complete()):n.error(new O({error:c,headers:r,status:i,statusText:s,url:o||void 0}))},l=function(t){var e=u().url,r=new O({error:t,status:a.status||0,statusText:a.statusText||"Unknown Error",url:e||void 0});n.error(r)},d=!1,f=function(e){d||(n.next(u()),d=!0);var r={type:x.DownloadProgress,loaded:e.loaded};e.lengthComputable&&(r.total=e.total),"text"===t.responseType&&a.responseText&&(r.partialText=a.responseText),n.next(r)},h=function(t){var e={type:x.UploadProgress,loaded:t.loaded};t.lengthComputable&&(e.total=t.total),n.next(e)};return a.addEventListener("load",c),a.addEventListener("error",l),t.reportProgress&&(a.addEventListener("progress",f),null!==s&&a.upload&&a.upload.addEventListener("progress",h)),a.send(s),n.next({type:x.Sent}),function(){a.removeEventListener("error",l),a.removeEventListener("load",c),t.reportProgress&&(a.removeEventListener("progress",f),null!==s&&a.upload&&a.upload.removeEventListener("progress",h)),a.abort()}})},t}(),P=new r.InjectionToken("XSRF_COOKIE_NAME"),M=new r.InjectionToken("XSRF_HEADER_NAME"),q=function(){return function(){}}(),j=function(){function t(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}return t.prototype.getToken=function(){if("server"===this.platform)return null;var t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(l["\u0275parseCookieValue"])(t,this.cookieName),this.lastCookieString=t),this.lastToken},t}(),F=function(){function t(t,e){this.tokenService=t,this.headerName=e}return t.prototype.intercept=function(t,e){var n=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||n.startsWith("http://")||n.startsWith("https://"))return e.handle(t);var a=this.tokenService.getToken();return null===a||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,a)})),e.handle(t)},t}(),z=function(){function t(t,e){this.backend=t,this.injector=e,this.chain=null}return t.prototype.handle=function(t){if(null===this.chain){var e=this.injector.get(N,[]);this.chain=e.reduceRight(function(t,e){return new k(t,e)},this.backend)}return this.chain.handle(t)},t}(),G=function(){function t(){}var e;return e=t,t.disable=function(){return{ngModule:e,providers:[{provide:F,useClass:R}]}},t.withOptions=function(t){return void 0===t&&(t={}),{ngModule:e,providers:[t.cookieName?{provide:P,useValue:t.cookieName}:[],t.headerName?{provide:M,useValue:t.headerName}:[]]}},t}(),Y=function(){return function(){}}()},"t/zF":function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){return function(t,e){this.name=t,this.metadata=e}}()},t1N5:function(t,e){function n(t){var e,n,a=t[0]/255,r=t[1]/255,i=t[2]/255,s=Math.min(a,r,i),o=Math.max(a,r,i),u=o-s;return o==s?e=0:a==o?e=(r-i)/u:r==o?e=2+(i-a)/u:i==o&&(e=4+(a-r)/u),(e=Math.min(60*e,360))<0&&(e+=360),n=(s+o)/2,[e,100*(o==s?0:n<=.5?u/(o+s):u/(2-o-s)),100*n]}function a(t){var e,n,a=t[0],r=t[1],i=t[2],s=Math.min(a,r,i),o=Math.max(a,r,i),u=o-s;return n=0==o?0:u/o*1e3/10,o==s?e=0:a==o?e=(r-i)/u:r==o?e=2+(i-a)/u:i==o&&(e=4+(a-r)/u),(e=Math.min(60*e,360))<0&&(e+=360),[e,n,o/255*1e3/10]}function i(t){var e=t[0],a=t[1],r=t[2];return[n(t)[0],1/255*Math.min(e,Math.min(a,r))*100,100*(r=1-1/255*Math.max(e,Math.max(a,r)))]}function s(t){var e,n=t[0]/255,a=t[1]/255,r=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-a,1-r)))/(1-e)||0),100*((1-a-e)/(1-e)||0),100*((1-r-e)/(1-e)||0),100*e]}function o(t){return S[JSON.stringify(t)]}function u(t){var e=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)),100*(.2126*e+.7152*n+.0722*a),100*(.0193*e+.1192*n+.9505*a)]}function c(t){var e=u(t),n=e[0],a=e[1],r=e[2];return a/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(n-a),200*(a-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]}function l(t){var e,n,a,r,i,s=t[0]/360,o=t[1]/100,u=t[2]/100;if(0==o)return[i=255*u,i,i];e=2*u-(n=u<.5?u*(1+o):u+o-u*o),r=[0,0,0];for(var c=0;c<3;c++)(a=s+1/3*-(c-1))<0&&a++,a>1&&a--,r[c]=255*(i=6*a<1?e+6*(n-e)*a:2*a<1?n:3*a<2?e+(n-e)*(2/3-a)*6:e);return r}function d(t){var e=t[0]/60,n=t[1]/100,a=t[2]/100,r=Math.floor(e)%6,i=e-Math.floor(e),s=255*a*(1-n),o=255*a*(1-n*i),u=255*a*(1-n*(1-i));switch(a*=255,r){case 0:return[a,u,s];case 1:return[o,a,s];case 2:return[s,a,u];case 3:return[s,o,a];case 4:return[u,s,a];case 5:return[a,s,o]}}function f(t){var e,n,a,i,s=t[0]/360,o=t[1]/100,u=t[2]/100,c=o+u;switch(c>1&&(o/=c,u/=c),a=6*s-(e=Math.floor(6*s)),0!=(1&e)&&(a=1-a),i=o+a*((n=1-u)-o),e){default:case 6:case 0:r=n,g=i,b=o;break;case 1:r=i,g=n,b=o;break;case 2:r=o,g=n,b=i;break;case 3:r=o,g=i,b=n;break;case 4:r=i,g=o,b=n;break;case 5:r=n,g=o,b=i}return[255*r,255*g,255*b]}function p(t){var e=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,t[0]/100*(1-a)+a)),255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function h(t){var e,n,a,r=t[0]/100,i=t[1]/100,s=t[2]/100;return n=-.9689*r+1.8758*i+.0415*s,a=.0557*r+-.204*i+1.057*s,e=(e=3.2406*r+-1.5372*i+-.4986*s)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(a=Math.min(Math.max(0,a),1))]}function m(t){var e=t[0],n=t[1],a=t[2];return n/=100,a/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function y(t){var e,n,a,r,i=t[0],s=t[1],o=t[2];return i<=8?r=(n=100*i/903.3)/100*7.787+16/116:(n=100*Math.pow((i+16)/116,3),r=Math.pow(n/100,1/3)),[e=e/95.047<=.008856?e=95.047*(s/500+r-16/116)/7.787:95.047*Math.pow(s/500+r,3),n,a=a/108.883<=.008859?a=108.883*(r-o/200-16/116)/7.787:108.883*Math.pow(r-o/200,3)]}function v(t){var e,n=t[0],a=t[1],r=t[2];return(e=360*Math.atan2(r,a)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(a*a+r*r),e]}function _(t){return h(y(t))}function x(t){var e,n=t[1];return e=t[2]/360*2*Math.PI,[t[0],n*Math.cos(e),n*Math.sin(e)]}function T(t){return w[t]}t.exports={rgb2hsl:n,rgb2hsv:a,rgb2hwb:i,rgb2cmyk:s,rgb2keyword:o,rgb2xyz:u,rgb2lab:c,rgb2lch:function(t){return v(c(t))},hsl2rgb:l,hsl2hsv:function(t){var e=t[1]/100,n=t[2]/100;return 0===n?[0,0,0]:[t[0],2*(e*=(n*=2)<=1?n:2-n)/(n+e)*100,(n+e)/2*100]},hsl2hwb:function(t){return i(l(t))},hsl2cmyk:function(t){return s(l(t))},hsl2keyword:function(t){return o(l(t))},hsv2rgb:d,hsv2hsl:function(t){var e,n,a=t[1]/100,r=t[2]/100;return e=a*r,[t[0],100*(e=(e/=(n=(2-a)*r)<=1?n:2-n)||0),100*(n/=2)]},hsv2hwb:function(t){return i(d(t))},hsv2cmyk:function(t){return s(d(t))},hsv2keyword:function(t){return o(d(t))},hwb2rgb:f,hwb2hsl:function(t){return n(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return o(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return n(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return i(p(t))},cmyk2keyword:function(t){return o(p(t))},keyword2rgb:T,keyword2hsl:function(t){return n(T(t))},keyword2hsv:function(t){return a(T(t))},keyword2hwb:function(t){return i(T(t))},keyword2cmyk:function(t){return s(T(t))},keyword2lab:function(t){return c(T(t))},keyword2xyz:function(t){return u(T(t))},xyz2rgb:h,xyz2lab:m,xyz2lch:function(t){return v(m(t))},lab2xyz:y,lab2rgb:_,lab2lch:v,lch2lab:x,lch2xyz:function(t){return y(x(t))},lch2rgb:function(t){return _(x(t))}};var w={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},S={};for(var O in w)S[JSON.stringify(w[O])]=O},t9fZ:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("FFOo"),i=n("b7mW"),s=n("G5J1");function o(t){return function(e){return 0===t?Object(s.b)():e.lift(new u(t))}}var u=function(){function t(t){if(this.total=t,this.total<0)throw new i.a}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.total))},t}(),c=function(t){function e(e,n){var a=t.call(this,e)||this;return a.total=n,a.count=0,a}return a.__extends(e,t),e.prototype._next=function(t){var e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))},e}(r.a)},tAZD:function(t,e,n){var a,r,i;!function(s){if("object"==typeof t.exports){var o=s(0,e);void 0!==o&&(t.exports=o)}else r=[n,e],void 0===(i="function"==typeof(a=s)?a.apply(e,r):a)||(t.exports=i)}(function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=void 0;e.default=["en",[["a","p"],["AM","PM"],n],[["AM","PM"],n,n],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],n,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],n,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",n,"{1} 'at' {0}",n],[".",",",";","%","+","-","E","\xd7","\u2030","\u221e","NaN",":"],["#,##0.###","#,##0%","\xa4#,##0.00","#E0"],"$","US Dollar",{},function(t){var e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}]})},tFKq:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=this&&this.__assign||function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=e.maxWidth&&(t=e.maxWidth),this.resize.emit({column:e,prevValue:e.width,newValue:t})},t.prototype.onColumnReordered=function(t){var e=t.prevIndex,n=t.newIndex,a=t.model,r=this.getColumn(n);r.isTarget=!1,r.targetMarkerContext=void 0,this.reorder.emit({column:a,prevValue:e,newValue:n})},t.prototype.onTargetChanged=function(t){var e=t.prevIndex,n=t.newIndex,a=t.initialIndex;if(e||0===e){var r=this.getColumn(e);r.isTarget=!1,r.targetMarkerContext=void 0}if(n||0===n){var i=this.getColumn(n);i.isTarget=!0,a!==n&&(i.targetMarkerContext={class:"targetMarker ".concat(a>n?"dragFromRight":"dragFromLeft")})}},t.prototype.getColumn=function(t){var e=this._columnsByPin[0].columns.length;if(t\n \n \n \n \n \n ',host:{class:"datatable-header"},changeDetection:s.ChangeDetectionStrategy.OnPush})],t)}()},tGlX:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}n("wd/R").defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},tHPV:function(t,e,n){"use strict";var a=n("mrSG"),r=function(t){function e(e,n){var a=t.call(this,e,n)||this;return a.scheduler=e,a.work=n,a}return a.__extends(e,t),e.prototype.requestAsyncId=function(e,n,a){return void 0===a&&(a=0),null!==a&&a>0?t.prototype.requestAsyncId.call(this,e,n,a):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame(function(){return e.flush(null)})))},e.prototype.recycleAsyncId=function(e,n,a){if(void 0===a&&(a=0),null!==a&&a>0||null===a&&this.delay>0)return t.prototype.recycleAsyncId.call(this,e,n,a);0===e.actions.length&&(cancelAnimationFrame(n),e.scheduled=void 0)},e}(n("h9Dq").a),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e.prototype.flush=function(t){this.active=!0,this.scheduled=void 0;var e,n=this.actions,a=-1,r=n.length;t=t||n.shift();do{if(e=t.execute(t.state,t.delay))break}while(++a=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"enjing":t<15?"siyang":t<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}()},tjFV:function(t,e,n){"use strict";var a=n("CDJp"),r=n("RDha"),i=n("fELs");t.exports={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=r.clone(n)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?r.merge({},[a.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=r.extend(this.defaults[t],e))},addScalesToLayout:function(t){r.each(t.scales,function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,i.addBox(t,e)})}}},ty8c:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=n("1PfE");e.NodeEditableDirective=function(){function t(t,e){this.renderer=t,this.elementRef=e,this.valueChanged=new a.EventEmitter(!1)}return t.prototype.ngOnInit=function(){var t=this.elementRef.nativeElement;t&&t.focus(),this.renderer.setProperty(t,"value",this.nodeValue)},t.prototype.applyNewValue=function(t){this.valueChanged.emit({type:"keyup",value:t})},t.prototype.applyNewValueByLoosingFocus=function(t){this.valueChanged.emit({type:"blur",value:t})},t.prototype.cancelEditing=function(){this.valueChanged.emit({type:"keyup",value:this.nodeValue,action:r.NodeEditableEventAction.Cancel})},t.decorators=[{type:a.Directive,args:[{selector:"[nodeEditable]"}]}],t.propDecorators={nodeValue:[{type:a.Input,args:["nodeEditable"]}],valueChanged:[{type:a.Output}],applyNewValue:[{type:a.HostListener,args:["keyup.enter",["$event.target.value"]]}],applyNewValueByLoosingFocus:[{type:a.HostListener,args:["blur",["$event.target.value"]]}],cancelEditing:[{type:a.HostListener,args:["keyup.esc"]}]},t}()},u0Op:function(t,e,n){"use strict";var a=n("TC34"),r={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),-a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),a*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),t<1?a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:a*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-r.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*r.easeInBounce(2*t):.5*r.easeOutBounce(2*t-1)+.5}};t.exports={effects:r},a.easingEffects=r},u3GI:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}n("wd/R").defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},uEye:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},uIqm:function(t,e,n){"use strict";var a=n("CcnG"),r=n("y9jh"),i=n("LvDl"),s=n("gI3B"),o=n("6blF"),u=n("x38r"),c=function(){return function(t){this.errorConfig={resetData:!0,displayError:!0},this.error=t}}(),l=n("vCyI");n.d(e,"a",function(){return d});var d=function(){function t(t,e){this.ngZone=t,this.cdRef=e,this.columnMode="flex",this.toolHeader=!0,this.header=!0,this.footer=!0,this.limit=10,this.autoReload=5e3,this.identifier="id",this.forceIdentifier=!1,this.selectionType=void 0,this.updateSelectionOnRefresh="onChange",this.autoSave=!0,this.searchableObjects=!1,this.fetchData=new a.EventEmitter,this.updateSelection=new a.EventEmitter,this.selection=new l.a,this.cellTemplates={},this.search="",this.rows=[],this.loadingIndicator=!0,this.loadingError=!1,this.paginationClasses={pagerLeftArrow:"i fa fa-angle-double-left",pagerRightArrow:"i fa fa-angle-double-right",pagerPrevious:"i fa fa-angle-left",pagerNext:"i fa fa-angle-right"},this.userConfig={},this.localStorage=window.localStorage,this.updating=!1}return t.prototype.ngOnInit=function(){var t=this;if(window.addEventListener("mouseenter",function(t){t.stopPropagation()},!0),this._addTemplates(),!this.sorts){var e=-1!==i.findIndex(this.columns,["prop",this.identifier]);this.sorts=this.createSortingDefinition(e?this.identifier:this.columns[0].prop+""),e||this.forceIdentifier||(this.identifier=this.columns[0].prop+"")}this.initUserConfig(),this.columns.forEach(function(e){e.cellTransformation&&(e.cellTemplate=t.cellTemplates[e.cellTransformation]),e.flexGrow||(e.flexGrow=e.prop+""===t.identifier?1:2),e.resizeable||(e.resizeable=!1)}),this.filterHiddenColumns(),this.fetchData.observers.length>0&&(this.loadingIndicator=!0),i.isInteger(this.autoReload)&&this.autoReload>0?this.ngZone.runOutsideAngular(function(){t.reloadSubscriber=Object(s.a)(0,t.autoReload).subscribe(function(){t.ngZone.run(function(){return t.reloadData()})})}):this.reloadData()},t.prototype.initUserConfig=function(){var t=this;this.autoSave&&(this.tableName=this._calculateUniqueTableName(this.columns),this._loadUserConfig(),this._initUserConfigAutoSave()),this.userConfig.limit||(this.userConfig.limit=this.limit),this.userConfig.sorts||(this.userConfig.sorts=this.sorts),this.userConfig.columns?this.columns.forEach(function(e,n){e.isHidden=t.userConfig.columns[n].isHidden}):this.updateUserColumns()},t.prototype._calculateUniqueTableName=function(t){var e=function(t){if(!i.isString(t))return 0;for(var e=0,n=0;n0&&(this.userConfig.limit=e)},t.prototype.reloadData=function(){var t=this;if(!this.updating){this.loadingError=!1;var e=new c(function(){t.loadingError=e.errorConfig.displayError,e.errorConfig.resetData&&(t.data=[]),t.useData()});this.fetchData.emit(e),this.updating=!0}},t.prototype.refreshBtn=function(){this.loadingIndicator=!0,this.reloadData()},t.prototype.rowIdentity=function(){var t=this;return function(e){var n=e[t.identifier];if(i.isUndefined(n))throw new Error('Wrong identifier "'+t.identifier+'" -> "'+n+'"');return n}},t.prototype.useData=function(){this.data&&(this.search.length>0?this.updateFilter():this.rows=this.data.slice(),this.reset(),this.updateSelected())},t.prototype.reset=function(){this.loadingIndicator=!1,this.updating=!1},t.prototype.updateSelected=function(){var t=this;if("never"!==this.updateSelectionOnRefresh){var e=[];this.selection.selected.forEach(function(n){for(var a=0,r=t.data;a0}),n),this.table.offset=0},t.prototype.subSearch=function(t,e,n){if(0===e.length||0===t.length)return t;var a=e.pop().replace("+"," ").split(":"),r=n.slice();return 2===a.length&&(n=r.filter(function(t){return-1!==t.name.toLowerCase().indexOf(a[0])})),t=this.basicDataSearch(i.last(a),t,n),this.subSearch(t,e,r)},t.prototype.basicDataSearch=function(t,e,n){var a=this;return 0===t.length?e:e.filter(function(e){return n.filter(function(n){var r=i.get(e,n.prop);if(i.isUndefined(n.pipe)||(r=n.pipe.transform(r)),i.isUndefined(r)||i.isNull(r))return!1;if(i.isArray(r)?r=r.join(" "):(i.isNumber(r)||i.isBoolean(r))&&(r=r.toString()),i.isObjectLike(r)){if(!a.searchableObjects)return!1;r=JSON.stringify(r)}return-1!==r.toLowerCase().indexOf(t)}).length>0})},t.prototype.getRowClass=function(){var t=this;return function(){return{clickable:!i.isUndefined(t.selectionType)}}},t}()},uKs4:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG");e.VisibilityDirective=function(){function t(t,e){this.element=t,this.zone=e,this.isVisible=!1,this.visible=new i.EventEmitter}return t.prototype.ngOnInit=function(){this.runCheck()},t.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},t.prototype.onVisibilityChange=function(){var t=this;this.zone.run(function(){t.isVisible=!0,t.visible.emit(!0)})},t.prototype.runCheck=function(){var t=this,e=function(){var n=t.element.nativeElement;n.offsetHeight&&n.offsetWidth?(clearTimeout(t.timeout),t.onVisibilityChange()):(clearTimeout(t.timeout),t.zone.runOutsideAngular(function(){t.timeout=setTimeout(function(){return e()},50)}))};this.timeout=setTimeout(function(){return e()})},a([i.HostBinding("class.visible"),r("design:type",Boolean)],t.prototype,"isVisible",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"visible",void 0),a([i.Directive({selector:"[visibilityObserver]"})],t)}()},uMaO:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("mrSG"),r=function(t){function e(e,n){var a=t.call(this)||this;return a.subject=e,a.subscriber=n,a.closed=!1,a}return a.__extends(e,t),e.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var t=this.subject,e=t.observers;if(this.subject=null,e&&0!==e.length&&!t.isStopped&&!t.closed){var n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}},e}(n("pugT").a)},uXwI:function(t,e,n){!function(t){"use strict";var e={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(t,e,n){return n?e%10==1&&e%100!=11?t[2]:t[3]:e%10==1&&e%100!=11?t[0]:t[1]}function a(t,a,r){return t+" "+n(e[r],t,a)}function r(t,a,r){return n(e[r],t,a)}t.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:function(t,e){return e?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"},ss:a,m:r,mm:a,h:r,hh:a,d:r,dd:a,M:r,MM:a,y:r,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},uYzU:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){switch(t){case"user:rbd":return"user:rbd (tcmu-runner)";default:return t}},t}()},ufoC:function(t,e,n){"use strict";var a;!function(t){t.auth="Login",t.cephfs="CephFS",t.rbd="RBD",t.pool="Pool",t.osd="OSD",t.role="Role",t.user="User"}(a||(a={}));var r=n("CcnG"),i=n("Jm/i");n.d(e,"a",function(){return u});var s=function(){return function(t,e,n){this.running=t,this.failure=e,this.success=n}}(),o=function(){function t(t,e,n,a){this.i18n=t,this.operation=e,this.involves=n,this.errors=a||function(){return{}}}return t.prototype.failure=function(t){return this.i18n("Failed to {{failure}} {{metadata}}",{failure:this.operation.failure,metadata:this.involves(t)})},t.prototype.running=function(t){return this.operation.running+" "+this.involves(t)},t.prototype.success=function(t){return this.operation.success+" "+this.involves(t)},t}(),u=function(){function t(t){var e=this;this.i18n=t,this.defaultMessage=this.newTaskMessage(new s(this.i18n("Executing"),this.i18n("execute"),this.i18n("Executed")),function(t){return t&&(a[t.component]||t.component)||e.i18n("unknown task")},function(){return{}}),this.commonOperations={create:new s(this.i18n("Creating"),this.i18n("create"),this.i18n("Created")),update:new s(this.i18n("Updating"),this.i18n("update"),this.i18n("Updated")),delete:new s(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted"))},this.rbd={default:function(t){return e.i18n("RBD '{{id}}'",{id:t.pool_name+"/"+t.image_name})},child:function(t){return e.i18n("RBD '{{id}}'",{id:t.child_pool_name+"/"+t.child_image_name})},destination:function(t){return e.i18n("RBD '{{id}}'",{id:t.dest_pool_name+"/"+t.dest_image_name})},snapshot:function(t){return e.i18n("RBD snapshot '{{id}}'",{id:t.pool_name+"/"+t.image_name+"@"+t.snapshot_name})}},this.rbd_mirroring={pool:function(t){return e.i18n("mirror mode for pool '{{id}}'",{id:""+t.pool_name})},pool_peer:function(t){return e.i18n("mirror peer for pool '{{id}}'",{id:""+t.pool_name})}},this.grafana={update_dashboards:function(){return e.i18n("all dashboards")}},this.messages={"pool/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.pool(t)},function(t){return{17:e.i18n("Name is already used by {{pool_name}}.",{pool_name:e.pool(t)})}}),"pool/edit":this.newTaskMessage(this.commonOperations.update,function(t){return e.pool(t)},function(t){return{17:e.i18n("Name is already used by {{pool_name}}.",{pool_name:e.pool(t)})}}),"pool/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.pool(t)}),"ecp/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.ecp(t)},function(t){return{17:e.i18n("Name is already used by {{name}}.",{name:e.ecp(t)})}}),"ecp/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.ecp(t)}),"rbd/create":this.newTaskMessage(this.commonOperations.create,this.rbd.default,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.default(t)})}}),"rbd/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.default,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.default(t)})}}),"rbd/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.default,function(t){return{39:e.i18n("{{rbd_name}} contains snapshots.",{rbd_name:e.rbd.default(t)})}}),"rbd/clone":this.newTaskMessage(new s(this.i18n("Cloning"),this.i18n("clone"),this.i18n("Cloned")),this.rbd.child,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.child(t)}),22:e.i18n("Snapshot of {{rbd_name}} must be protected.",{rbd_name:e.rbd.child(t)})}}),"rbd/copy":this.newTaskMessage(new s(this.i18n("Copying"),this.i18n("copy"),this.i18n("Copied")),this.rbd.destination,function(t){return{17:e.i18n("Name is already used by {{rbd_name}}.",{rbd_name:e.rbd.destination(t)})}}),"rbd/flatten":this.newTaskMessage(new s(this.i18n("Flattening"),this.i18n("flatten"),this.i18n("Flattened")),this.rbd.default),"rbd/snap/create":this.newTaskMessage(this.commonOperations.create,this.rbd.snapshot,function(t){return{17:e.i18n("Name is already used by {{snap_name}}.",{snap_name:e.rbd.snapshot(t)})}}),"rbd/snap/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.snapshot,function(t){return{16:e.i18n("Cannot unprotect {{snap_name}} because it contains child images.",{snap_name:e.rbd.snapshot(t)})}}),"rbd/snap/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.snapshot,function(t){return{16:e.i18n("Cannot delete {{snap_name}} because it's protected.",{snap_name:e.rbd.snapshot(t)})}}),"rbd/snap/rollback":this.newTaskMessage(new s(this.i18n("Rolling back"),this.i18n("rollback"),this.i18n("Rolled back")),this.rbd.snapshot),"rbd/trash/move":this.newTaskMessage(new s(this.i18n("Moving"),this.i18n("move"),this.i18n("Moved")),function(t){return e.i18n("image '{{id}}' to trash",{id:t.pool_name+"/"+t.image_name})},function(){return{2:e.i18n("Could not find image.")}}),"rbd/trash/restore":this.newTaskMessage(new s(this.i18n("Restoring"),this.i18n("restore"),this.i18n("Restored")),function(t){return e.i18n("image '{{id}}' into '{{new_id}}'",{id:t.pool_name+"@"+t.image_id,new_id:t.pool_name+"/"+t.new_image_name})},function(t){return{17:e.i18n("Image name '{{id}}' is already in use.",{id:t.pool_name+"/"+t.new_image_name})}}),"rbd/trash/remove":this.newTaskMessage(new s(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted")),function(t){return e.i18n("image '{{id}}'",{id:t.pool_name+"/"+t.image_name+"@"+t.image_id})}),"rbd/trash/purge":this.newTaskMessage(new s(this.i18n("Purging"),this.i18n("purge"),this.i18n("Purged")),function(t){var n=e.i18n("all pools");return t.pool_name&&(n="'"+t.pool_name+"'"),e.i18n("images from {{message}}",{message:n})}),"rbd/mirroring/pool/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool,function(){return{16:e.i18n("Cannot disable mirroring because it contains a peer.")}}),"rbd/mirroring/peer/add":this.newTaskMessage(this.commonOperations.create,this.rbd_mirroring.pool_peer,function(){return{}}),"rbd/mirroring/peer/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool_peer,function(){return{}}),"rbd/mirroring/peer/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd_mirroring.pool_peer,function(){return{}}),"iscsi/target/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.iscsiTarget(t)}),"iscsi/target/edit":this.newTaskMessage(this.commonOperations.update,function(t){return e.iscsiTarget(t)}),"iscsi/target/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.iscsiTarget(t)}),"nfs/create":this.newTaskMessage(this.commonOperations.create,function(t){return e.nfs(t)}),"nfs/edit":this.newTaskMessage(this.commonOperations.update,function(t){return e.nfs(t)}),"nfs/delete":this.newTaskMessage(this.commonOperations.delete,function(t){return e.nfs(t)}),"grafana/dashboards/update":this.newTaskMessage(this.commonOperations.update,this.grafana.update_dashboards,function(){return{}})}}return t.prototype.newTaskMessage=function(t,e,n){return new o(this.i18n,t,e,n)},t.prototype.pool=function(t){return this.i18n("pool '{{pool_name}}'",{pool_name:t.pool_name})},t.prototype.ecp=function(t){return this.i18n("erasure code profile '{{name}}'",{name:t.name})},t.prototype.iscsiTarget=function(t){return this.i18n("target '{{target_iqn}}'",{target_iqn:t.target_iqn})},t.prototype.nfs=function(t){return this.i18n("NFS {{nfs_id}}",{nfs_id:"'"+t.cluster_id+":"+(t.export_id?t.export_id:t.path)+"'"})},t.prototype._getTaskTitle=function(t){return this.messages[t.name]||this.defaultMessage},t.prototype.getSuccessTitle=function(t){return this._getTaskTitle(t).success(t.metadata)},t.prototype.getErrorMessage=function(t){return this._getTaskTitle(t).errors(t.metadata)[t.exception.code]||t.exception.detail},t.prototype.getErrorTitle=function(t){return this._getTaskTitle(t).failure(t.metadata)},t.prototype.getRunningTitle=function(t){return this._getTaskTitle(t).running(t.metadata)},t.prototype.getRunningText=function(t){return this._getTaskTitle(t).operation.running},t.ngInjectableDef=r.defineInjectable({factory:function(){return new t(r.inject(i.a))},token:t,providedIn:"root"}),t}()},uhwM:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(){function t(){}return t.prototype.transform=function(t){return t.join(", ")},t}()},urB8:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CcnG"),r=n("buEt"),i=n("QGcS");e.NodeDraggableService=function(){function t(){this.draggableNodeEvents$=new r.Subject}return t.prototype.fireNodeDragged=function(t,e){t.tree&&!t.tree.isStatic()&&this.draggableNodeEvents$.next(new i.NodeDraggableEvent(t,e))},t.prototype.captureNode=function(t){this.capturedNode=t},t.prototype.getCapturedNode=function(){return this.capturedNode},t.prototype.releaseCapturedNode=function(){this.capturedNode=null},t.decorators=[{type:a.Injectable}],t}()},uxXc:function(t,e,n){var a=n("t1N5"),r=function(){return new c};for(var i in a){r[i+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),a[t](e)}}(i);var s=/(\w+)2(\w+)/.exec(i),o=s[1],u=s[2];(r[o]=r[o]||{})[u]=r[i]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=a[t](e);if("string"==typeof n||void 0===n)return n;for(var r=0;r0,this.hasSingleSelection=1===this.selected.length,this.hasMultiSelection=this.selected.length>1},t.prototype.first=function(){return this.hasSelection?this.selected[0]:null},t}()},vOVK:function(t,e,n){var a={"./messages.cs.xlf":"MaEZ","./messages.de-DE.xlf":"BY/9","./messages.es-ES.xlf":"csGn","./messages.fr-FR.xlf":"obpP","./messages.id-ID.xlf":"nmKl","./messages.it-IT.xlf":"hHou","./messages.ja-JP.xlf":"waXJ","./messages.ko-KR.xlf":"Q3dv","./messages.pl-PL.xlf":"/6aS","./messages.pt-BR.xlf":"OWV/","./messages.zh-CN.xlf":"fB8H","./messages.zh-TW.xlf":"Dysq"};function r(t){var e=i(t);return n(e)}function i(t){var e=a[t];if(!(e+1)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return e}r.keys=function(){return Object.keys(a)},r.resolve=i,t.exports=r,r.id="vOVK"},vpM6:function(t,e,n){"use strict";var a=n("CDJp"),r=n("vvH+"),i=n("RDha");a._set("global",{plugins:{filler:{propagate:!0}}});var s={dataset:function(t){var e=t.fill,n=t.chart,a=n.getDatasetMeta(e),r=a&&n.isDatasetVisible(e)&&a.dataset._children||[],i=r.length||0;return i?function(t,e){return e=n)&&a;switch(i){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return i;default:return!1}}function u(t){var e,n=t.el._model||{},a=t.el._scale||{},r=t.fill,i=null;if(isFinite(r))return null;if("start"===r?i=void 0===n.scaleBottom?a.bottom:n.scaleBottom:"end"===r?i=void 0===n.scaleTop?a.top:n.scaleTop:void 0!==n.scaleZero?i=n.scaleZero:a.getBasePosition?i=a.getBasePosition():a.getBasePixel&&(i=a.getBasePixel()),null!=i){if(void 0!==i.x&&void 0!==i.y)return i;if("number"==typeof i&&isFinite(i))return{x:(e=a.isHorizontal())?i:null,y:e?null:i}}return null}function c(t,e,n){var a,r=t[e].fill,i=[e];if(!n)return r;for(;!1!==r&&-1===i.indexOf(r);){if(!isFinite(r))return r;if(!(a=t[r]))return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function l(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),s[n](t))}function d(t){return t&&!t.skip}function f(t,e,n,a,r){var s;if(a&&r){for(t.moveTo(e[0].x,e[0].y),s=1;s0;--s)i.canvas.lineTo(t,n[s],n[s-1],!0)}}t.exports={id:"filler",afterDatasetsUpdate:function(t,e){var n,a,i,s,d=(t.data.datasets||[]).length,f=e.propagate,p=[];for(a=0;a=2;return function(c){return c.pipe(t?Object(r.a)(function(e,n){return t(e,n,c)}):u.a,Object(i.a)(1),n?Object(o.a)(e):Object(s.a)(function(){return new a.a}))}}},wQk9:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}()},waXJ:function(t,e){t.exports='\n \n \n \n Toggle navigation\n \u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u306e\u5207\u308a\u66ff\u3048\n \n \n Dashboard\n \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\n \n \n Cluster\n \u30af\u30e9\u30b9\u30bf\n \n \n Hosts\n \u30db\u30b9\u30c8\n \n \n Monitors\n \u30e2\u30cb\u30bf\u30fc\n \n \n OSDs\n OSD\n \n \n Configuration\n \u8a2d\u5b9a\n \n \n CRUSH map\n CRUSH\u30de\u30c3\u30d7\n \n \n Manager modules\n \u30de\u30cd\u30fc\u30b8\u30e3\u30e2\u30b8\u30e5\u30fc\u30eb\n \n \n Logs\n \u30ed\u30b0\n \n \n Alerts\n \u30a2\u30e9\u30fc\u30c8\n \n \n Silences\n Silences\n \n \n Pools\n \u30d7\u30fc\u30eb\n \n \n Block\n \u30d6\u30ed\u30c3\u30af\n \n \n Images\n \u30a4\u30e1\u30fc\u30b8\n \n \n Mirroring\n \u30df\u30e9\u30fc\u30ea\u30f3\u30b0\n \n \n iSCSI\n iSCSI\n \n \n NFS\n NFS\n \n \n Filesystems\n \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\n \n \n Object Gateway\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\n \n \n Daemons\n \u30c7\u30fc\u30e2\u30f3\n \n \n Users\n \u30e6\u30fc\u30b6\n \n \n Buckets\n \u30d0\u30b1\u30c3\u30c8\n \n \n Retrieving data\n for\n \n \n . Please wait...\n \n Retrieving data\n for\n \n \n . Please wait...\n \n \n \n Displaying previously cached data\n \n for \n \n \n .\n \n Displaying previously cached data\n \n for \n \n \n .\n \n \n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n Could not load data\n for\n \n \n .\n Please check the cluster health.\n \n \n \n Back\n \u623b\u308b\n \n \n Select a Language\n \u8a00\u8a9e\u306e\u9078\u629e\n \n \n Loading panel data...\n \u30d1\u30cd\u30eb\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n Please consult the\n documentation\n on how to\n configure and enable the monitoring functionality.\n \n \u76e3\u8996\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\n\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Grafana Dashboard doesn\'t exist. Please refer to\n documentation\n on how to\n add dashboards to Grafana.\n \n Grafana\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u305b\u3093\u3002\nGrafana\u306b\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Grafana Time Picker\n Grafana Time Picker\n \n \n Reset Settings\n \u8a2d\u5b9a\u306e\u30ea\u30bb\u30c3\u30c8\n \n \n Refresh\n Refresh\n \n \n Remove the custom configuration value. The default configuration will be inherited and used instead.\n Remove the custom configuration value. The default configuration will be inherited and used instead.\n \n \n The entered value is too high! It must not be greater than \n .\n \n The entered value is too high! It must not be greater than \n .\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n The entered value is too low! It must not be lower than \n .\n \n \n \n Failed to load data.\n \u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n selected\n \u9078\u629e\u6e08\u307f\n X selected\n \n \n found\n \u691c\u51fa\u6e08\u307f\n X found\n \n \n total\n \u5408\u8a08\n X total\n \n \n Edit\n \u7de8\u96c6\n \n \n Name\n \u540d\u524d\n \n \n Description\n \u8aac\u660e\n \n \n Long description\n \u9577\u3044\u8aac\u660e\n \n \n Default\n \u30c7\u30d5\u30a9\u30eb\u30c8\n \n \n Daemon default\n \u30c7\u30fc\u30e2\u30f3\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\n \n \n Services\n \u30b5\u30fc\u30d3\u30b9\n \n \n Values\n \u5024\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5927\u304d\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5927\u304d\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5c0f\u3055\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Save\n \u4fdd\u5b58\n \n \n CRUSH map viewer\n CRUSH\u30de\u30c3\u30d7\u30d3\u30e5\u30fc\u30a2\n \n \n Hosts List\n \u30db\u30b9\u30c8\u30ea\u30b9\u30c8\n \n \n Overall Performance\n \u5168\u4f53\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\n \n \n No entries found\n \u30a8\u30f3\u30c8\u30ea\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\n \n \n Cluster Logs\n \u30af\u30e9\u30b9\u30bf\u30ed\u30b0\n \n \n Audit Logs\n \u76e3\u67fb\u30ed\u30b0\n \n \n Priority:\n Priority:\n \n \n Keyword:\n Keyword:\n \n \n Date:\n Date:\n \n \n Datepicker\n Datepicker\n \n \n Time range:\n Time range:\n \n \n Loading configuration...\n \u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n The configuration could not be loaded.\n \u8a2d\u5b9a\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n Edit Manager module\n \u30de\u30cd\u30fc\u30b8\u30e3\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u7de8\u96c6\n \n \n The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8\n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u6709\u52b9\u306aUUID\u3067\u306f\u3042\u308a\u307e\u305b\u3093(\u6709\u52b9\u306aUUID\u306e\u4f8b: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8)\u3002\n \n \n The entered value needs to be a valid IP address.\n \u6709\u52b9\u306aIP\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n This field is required.\n \u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n The entered value is too high! It must be lower or equal to \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5927\u304d\u3059\u304e\u307e\u3059\u3002\n \u4ee5\u4e0b\u306e\u5024\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n The entered value is too low! It must be greater or equal to \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\n \u4ee5\u4e0a\u306e\u5024\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n The entered value needs to be a number.\n \u6570\u5b57\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n The entered value needs to be a number or decimal.\n \u6570\u5b57\u307e\u305f\u306f\u5c0f\u6570\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Update\n \u66f4\u65b0\n \n \n Status\n \u30b9\u30c6\u30fc\u30bf\u30b9\n \n \n Cluster ID\n \u30af\u30e9\u30b9\u30bfID\n \n \n monmap modified\n monmap\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\n \n \n monmap epoch\n monmap\u30a8\u30dd\u30c3\u30af\n \n \n quorum con\n \u5b9a\u6570con\n \n \n quorum mon\n \u5b9a\u6570mon\n \n \n required con\n \u5fc5\u9808\u306econ\n \n \n required mon\n \u5fc5\u9808\u306emon\n \n \n In Quorum\n \u5b9a\u6570\u5185\n \n \n Not In Quorum\n \u975e\u5b9a\u6570\u5185\n \n \n Cancel\n \u30ad\u30e3\u30f3\u30bb\u30eb\n \n \n Are you sure that you want to \n \n \n \n ?\n \n Are you sure that you want to \n \n \n \n ?\n \n \n \n Are you sure that you want to \n the selected items?\n \n Are you sure that you want to \n the selected items?\n \n \n \n Are you sure that you want to \n the selected \n ?\n \n \u9078\u629e\u3055\u308c\u305f\n \u3092\n \u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?\n \n \n \n Yes, I am sure.\n \u306f\u3044\u3002\n \n \n Cluster-wide OSD Flags\n \u30af\u30e9\u30b9\u30bf\u5168\u4f53\u306eOSD\u30d5\u30e9\u30b0\n \n \n Submit\n \u9001\u4fe1\n \n \n \n \n \n \n \n \n \n \n form title\n \n \n Advanced...\n \u8a73\u7d30...\n \n \n Advanced configuration options\n Advanced configuration options\n \n \n \n \n \n \n \n \n \n \n form action button\n \n \n OSD Recovery Priority\n OSD\u56de\u5fa9\u512a\u5148\u5ea6\n \n \n Priority\n \u512a\u5148\u5ea6\n \n \n Customize priority values\n \u512a\u5148\u5ea6\u5024\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\n \n \n This field is required!\n \u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n [object Object]\n [object Object]\n \n \n The entered value is too high! It must not be greater than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5927\u304d\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5927\u304d\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n The entered value is too low! It must not be lower than \n .\n \n \u5165\u529b\u3055\u308c\u305f\u5024\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\n \u3088\u308a\u5c0f\u3055\u3044\u5024\u3092\u5165\u529b\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Reweight OSD\n \u518d\u91cd\u307f\u3065\u3051OSD\n \n \n The value needs to be between 0 and 1.\n \u5024\u306f0\u30681\u306e\u9593\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Reweight\n \u518d\u91cd\u307f\u3065\u3051\n \n \n OSDs \n Scrub\n \n OSD \n \u30b9\u30af\u30e9\u30d6\n \n \n \n {VAR_SELECT, select, 1 {Deep } }\n {VAR_SELECT, select, 1 {Deep } }\n \n \n You are about to apply a \n scrub to\n the OSD \n \n \n .\n \n \n \u30b9\u30af\u30e9\u30d6\u3092OSD \n \n \n \u306b\n\u9069\u7528\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002\n \n \n \n {VAR_SELECT, select, 1 {deep } }\n {VAR_SELECT, select, 1 {deep } }\n \n \n OSDs List\n OSD\u30ea\u30b9\u30c8\n \n \n \n OSD \n \n will be marked\n \n \n if you proceed.\n \n \u7d9a\u884c\u3057\u305f\u5834\u5408\u306f\u3001\n OSD \n \n \u306f\n \n \n \u3068\u30de\u30fc\u30af\u3055\u308c\u307e\u3059\u3002\n \n \n \n The OSD is not safe to destroy!\n \u3053\u306eOSD\u3092\u5b89\u5168\u306b\u7834\u68c4\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n OSD \n \n will be\n \n \n if you proceed.\n \n \u7d9a\u884c\u3057\u305f\u5834\u5408\u306f\u3001\n OSD \n \n \u306f\n \n \n \u3055\u308c\u307e\u3059\u3002\n \n \n \n Details\n \u8a73\u7d30\n \n \n Matcher\n Matcher\n \n \n -- Select an attribute to match against --\n -- Select an attribute to match against --\n \n \n Value\n \u5024\n \n \n Use regular expression\n Use regular expression\n \n \n {VAR_SELECT, select, 1 {Update} other {Add} }\n {VAR_SELECT, select, 1 {Update} other {Add} }\n \n \n Close\n \u9589\u3058\u308b\n \n \n Delete\n \u524a\u9664\n \n \n Editing a silence will expire the old silence and recreate it as a new silence\n Editing a silence will expire the old silence and recreate it as a new silence\n \n \n Creator\n Creator\n \n \n Comment\n Comment\n \n \n Start time\n Start time\n \n \n If the start time lies in the past the creation time will be used\n If the start time lies in the past the creation time will be used\n \n \n Duration\n Duration\n \n \n End time\n End time\n \n \n Matchers\n *\n \n \n Matchers\n *\n \n \n \n \n A silence requires at least one matcher\n A silence requires at least one matcher\n \n \n Add matcher\n Add matcher\n \n \n Health\n \u30d8\u30eb\u30b9\n \n \n Statistics\n \u7d71\u8a08\u60c5\u5831\n \n \n Please consult the \n documentation\n \n on how to configure and enable the NFS Ganesha management functionality.\n \n NFS Ganesha\u306e\u7ba1\u7406\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Clients\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\n \n \n Any client can access\n \u4efb\u610f\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\n \n \n Addresses\n \u30a2\u30c9\u30ec\u30b9\n \n \n Required field\n \u5fc5\u9808\u30d5\u30a3\u30fc\u30eb\u30c9\n \n \n Must contain one or more comma-separated values\n 1\u3064\u4ee5\u4e0a\u306e\u30ab\u30f3\u30de\u533a\u5207\u308a\u5024\u3092\u542b\u3093\u3067\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n For example:\n \u4f8b:\n \n \n Access Type\n \u30a2\u30af\u30bb\u30b9\u30bf\u30a4\u30d7\n \n \n Squash\n \u30b9\u30ab\u30c3\u30b7\u30e5\n \n \n Add clients\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u8ffd\u52a0\n \n \n Loading...\n \u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n -- No cluster available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30af\u30e9\u30b9\u30bf\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the cluster --\n -- \u30af\u30e9\u30b9\u30bf\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Add daemon\n \u30c7\u30fc\u30e2\u30f3\u306e\u8ffd\u52a0\n \n \n Storage Backend\n \u30b9\u30c8\u30ec\u30fc\u30b8\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\n \n \n -- No data pools available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the storage backend --\n -- \u30b9\u30c8\u30ec\u30fc\u30b8\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Object Gateway User\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\n \n \n -- No users available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30e6\u30fc\u30b6\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the object gateway user --\n -- \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n CephFS User ID\n CephFS\u30e6\u30fc\u30b6ID\n \n \n -- No clients available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the cephx client --\n -- cephx\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n CephFS Name\n CephFS\u540d\n \n \n -- No CephFS filesystem available --\n -- No CephFS filesystem available --\n \n \n -- Select the CephFS filesystem --\n -- Select the CephFS filesystem --\n \n \n Security Label\n \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30e9\u30d9\u30eb\n \n \n Enable security label\n \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30e9\u30d9\u30eb\u306e\u6709\u52b9\u5316\n \n \n CephFS Path\n CephFS\u30d1\u30b9\n \n \n Path need to start with a \'/\' and can be followed by a word\n \u30d1\u30b9\u306f\u300c/\u300d\u3067\u59cb\u307e\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\u305d\u306e\u5f8c\u308d\u306b1\u3064\u306e\u5358\u8a9e\u3092\u914d\u7f6e\u3067\u304d\u307e\u3059\n \n \n New directory will be created\n \u65b0\u3057\u3044\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\n \n \n Path\n \u30d1\u30b9\n \n \n Path can only be a single \'/\' or a word\n \u30d1\u30b9\u306f\u5358\u4e00\u306e\u300c/\u300d\u307e\u305f\u306f1\u3064\u306e\u5358\u8a9e\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n New bucket will be created\n \u65b0\u3057\u3044\u30d0\u30b1\u30c3\u30c8\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\n \n \n NFS Protocol\n NFS\u30d7\u30ed\u30c8\u30b3\u30eb\n \n \n NFSv3\n NFSv3\n \n \n NFSv4\n NFSv4\n \n \n NFS Tag\n NFS\u30bf\u30b0\n \n \n Alternative access for \n NFS v3\n mounts (it must not have a leading /).\n \n \n NFS v3\n \u30de\u30a6\u30f3\u30c8\u306e\u4ee3\u66ff\u30a2\u30af\u30bb\u30b9(\u5148\u982d\u306b\u300c/\u300d\u304c\u3042\u3063\u3066\u306f\u3044\u3051\u307e\u305b\u3093)\u3002\n \n \n \n Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u30de\u30a6\u30f3\u30c8\u3067\u304d\u307e\u305b\u3093(\u305f\u3068\u3048\u3070\u3001\uff3b\u30bf\u30b0\uff3d = foo\u306e\u5834\u5408\u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306ffoo/baz\u3092\u30de\u30a6\u30f3\u30c8\u3067\u304d\u307e\u305b\u3093)\u3002\n \n \n By using different Tag options, the same Path may be exported multiple times.\n \u7570\u306a\u308b\uff3b\u30bf\u30b0\uff3d\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u540c\u3058\u30d1\u30b9\u3092\u8907\u6570\u56de\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002\n \n \n Pseudo\n \u7591\u4f3c\n \n \n The position that this \n NFS v4\n export occupies\n in the \n Pseudo FS\n (it must be unique).\n \n \u3053\u306e\n NFS v4\n \u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u304c\n \u7591\u4f3cFS\n \u5185\u3067\n\u5360\u6709\u3059\u308b\u4f4d\u7f6e(\u3053\u306e\u4f4d\u7f6e\u306f\u4e00\u610f\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059)\u3002\n \n \n \n By using different Pseudo options, the same Path may be exported multiple times.\n \u7570\u306a\u308b\uff3b\u7591\u4f3c\uff3d\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u540c\u3058\u30d1\u30b9\u3092\u8907\u6570\u56de\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002\n \n \n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n Pseudo needs to start with a \'/\' and can\'t contain any of the following: >, <, |, &, ( or ).\n \n \n -- No access type available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30a2\u30af\u30bb\u30b9\u30bf\u30a4\u30d7\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select the access type --\n -- \u30a2\u30af\u30bb\u30b9\u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n The Object Gateway NFS backend has a number of\n limitations which will seriously affect applications writing to\n the share. Please consult the\n documentation\n for details before enabling write access.\n \n \n \n -- No squash available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30b9\u30ab\u30c3\u30b7\u30e5\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n --Select what kind of user id squashing is performed --\n -- \u5b9f\u884c\u3055\u308c\u308b\u30e6\u30fc\u30b6ID\u30b9\u30ab\u30c3\u30b7\u30e5\u64cd\u4f5c\u306e\u7a2e\u985e\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Transport Protocol\n \u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8\u30d7\u30ed\u30c8\u30b3\u30eb\n \n \n UDP\n UDP\n \n \n TCP\n TCP\n \n \n CephFS\n CephFS\n \n \n Welcome to Ceph!\n Ceph\u306b\u3088\u3046\u3053\u305d!\n The welcome message on the login page\n \n \n Username is required\n \u30e6\u30fc\u30b6\u540d\u306f\u5fc5\u9808\u3067\u3059\n \n \n Password is required\n \u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u3067\u3059\n \n \n Login\n \u30ed\u30b0\u30a4\u30f3\n \n \n Sorry, the user does not exist in Ceph.\n \u3053\u306e\u30e6\u30fc\u30b6\u306fCeph\u306b\u5b58\u5728\u3057\u307e\u305b\u3093\u3002\n \n \n Return to \n Login Page\n . You\'ll be logged out from the Identity Provider when you retry logging in.\n \n \n \uff3b\u30ed\u30b0\u30a4\u30f3\uff3d\u30da\u30fc\u30b8\n \u306b\u623b\u308a\u307e\u3059\u3002\u30ed\u30b0\u30a4\u30f3\u3092\u518d\u8a66\u884c\u3059\u308b\u3068\u3001Identity Provider\u304b\u3089\u30ed\u30b0\u30a2\u30a6\u30c8\u3055\u308c\u307e\u3059\u3002\n \n \n \n Forbidden\n \u7981\u6b62\n \n \n Sorry, you are not allowed to see what you were looking for.\n \u691c\u7d22\u3057\u3066\u3044\u305f\u5185\u5bb9\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Sorry, we could not find what you were looking for\n \u691c\u7d22\u3057\u3066\u3044\u305f\u5185\u5bb9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\n \n \n Remove all\n \u3059\u3079\u3066\u524a\u9664\n \n \n Recent Notifications\n \u6700\u8fd1\u306e\u901a\u77e5\n \n \n There are no background tasks.\n \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30bf\u30b9\u30af\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n Background Tasks\n \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30bf\u30b9\u30af\n \n \n Help\n \u30d8\u30eb\u30d7\n \n \n Documentation\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \n \n API\n API\n \n \n About\n \u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\n \n \n Dashboard Settings\n \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u8a2d\u5b9a\n \n \n User management\n \u30e6\u30fc\u30b6\u7ba1\u7406\n \n \n Logged in user\n \u30ed\u30b0\u30a4\u30f3\u6e08\u307f\u30e6\u30fc\u30b6\n \n \n Signed in as\n \n \n \n \n \n \n \n \n\u3068\u3057\u3066\u30b5\u30a4\u30f3\u30a4\u30f3\u6e08\u307f\n \n \n \n Sign out\n \u30b5\u30a4\u30f3\u30a2\u30a6\u30c8\n \n \n Name...\n \u540d\u524d...\n \n \n The chosen name is already in use.\n \u9078\u629e\u3055\u308c\u305f\u540d\u524d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Description...\n \u8aac\u660e...\n \n \n Permissions\n \u8a31\u53ef\n \n \n Roles\n \u5f79\u5272\n \n \n Username\n \u30e6\u30fc\u30b6\u540d\n \n \n Password\n \u30d1\u30b9\u30ef\u30fc\u30c9\n \n \n Confirm password\n \u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u78ba\u8a8d\u5165\u529b\n \n \n Password confirmation doesn\'t match the password.\n \u78ba\u8a8d\u5165\u529b\u3055\u308c\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30d1\u30b9\u30ef\u30fc\u30c9\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002\n \n \n Full name\n \u6c0f\u540d\n \n \n Email\n \u96fb\u5b50\u30e1\u30fc\u30eb\n \n \n Invalid email.\n \u7121\u52b9\u306a\u96fb\u5b50\u30e1\u30fc\u30eb\u3067\u3059\u3002\n \n \n You are about to remove "user read / update" permissions from your own user.\n \u81ea\u8eab\u306e\u30e6\u30fc\u30b6\u304b\u3089\u300cuser read / update\u300d\u3068\u3044\u3046\u8a31\u53ef\u3092\u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002\n \n \n If you continue, you will no longer be able to add or remove roles from any user.\n \u7d9a\u884c\u3057\u305f\u5834\u5408\u306f\u3001\u3069\u306e\u30e6\u30fc\u30b6\u306e\u5f79\u5272\u3082\u8ffd\u52a0\u304a\u3088\u3073\u524a\u9664\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002\n \n \n Are you sure you want to continue?\n \u7d9a\u884c\u3057\u3066\u3082\u3088\u308d\u3057\u3044\u3067\u3059\u304b?\n \n \n Performance counters not available\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30ab\u30a6\u30f3\u30bf\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\n \n \n Attributes (OSD map)\n \u5c5e\u6027(OSD\u30de\u30c3\u30d7)\n \n \n Metadata not available\n \u30e1\u30bf\u30c7\u30fc\u30bf\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\n \n \n Metadata\n \u30e1\u30bf\u30c7\u30fc\u30bf\n \n \n Performance counter\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30ab\u30a6\u30f3\u30bf\n \n \n Histogram not available: \n \n \n \u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093: \n \n \n \n \n Writes\n \u66f8\u304d\u8fbc\u307f\u56de\u6570\n \n \n Reads\n \u8aad\u307f\u53d6\u308a\u56de\u6570\n \n \n Histogram\n \u30d2\u30b9\u30c8\u30b0\u30e9\u30e0\n \n \n Performance Details\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u8a73\u7d30\n \n \n Current values\n \u73fe\u884c\u5024\n \n \n Type\n \u30bf\u30a4\u30d7\n \n \n Min\n \u6700\u5c0f\n \n \n Max\n \u6700\u5927\n \n \n Flags\n \u30d5\u30e9\u30b0\n \n \n Source\n \u30bd\u30fc\u30b9\n \n \n Level\n \u30ec\u30d9\u30eb\n \n \n Can be updated at runtime (editable)\n \u5b9f\u884c\u6642\u306b\u66f4\u65b0\u3067\u304d\u307e\u3059(\u7de8\u96c6\u53ef\u80fd)\n \n \n Tags\n \u30bf\u30b0\n \n \n Enum values\n \u5217\u6319\u5024\n \n \n See also\n \u95a2\u9023\u9805\u76ee\n \n \n Cluster Status\n \u30af\u30e9\u30b9\u30bf\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\n \n \n Manager Daemons\n \u30de\u30cd\u30fc\u30b8\u30e3\u30c7\u30fc\u30e2\u30f3\n \n \n Object Gateways\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\n \n \n Metadata Servers\n \u30e1\u30bf\u30c7\u30fc\u30bf\u30b5\u30fc\u30d0\n \n \n iSCSI Gateways\n iSCSI\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\n \n \n Client IOPS\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306eIOPS\n \n \n Client Throughput\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\n \n \n Client Read/Write\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\n \n \n Recovery Throughput\n \u56de\u5fa9\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\n \n \n Scrub\n \u30b9\u30af\u30e9\u30d6\n \n \n Performance\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\n \n \n Raw Capacity\n \u672a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u6642\u306e\u5bb9\u91cf\n \n \n Objects\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n PGs per OSD\n OSD\u3042\u305f\u308a\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u6570\n \n \n PG Status\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\n \n \n Capacity\n \u5bb9\u91cf\n \n \n \n \n See \n Logs\n for more details.\n \n \n \n \u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001\u300c\n \u30ed\u30b0\n \u300d\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Ranks\n \u30e9\u30f3\u30af\n \n \n MDS performance counters\n MDS performance counters\n \n \n Clients: \n \n \n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u6570: \n \n \n \n \n Clients (\n )\n \n Clients (\n )\n \n \n \n Move an image to trash\n \u30a4\u30e1\u30fc\u30b8\u3092\u3054\u307f\u7bb1\u306b\u79fb\u52d5\u3059\u308b\n \n \n To move \n \n /\n \n to trash,\n click \n Move Image\n . Optionally, you can pick an expiration date.\n \n \n \n /\n \n \u3092\u3054\u307f\u7bb1\u306b\u79fb\u52d5\u3059\u308b\u306b\u306f\u3001\n \uff3b\u30a4\u30e1\u30fc\u30b8\u306e\u79fb\u52d5\uff3d\n \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\u5e0c\u671b\u306b\u5fdc\u3058\u3066\u3001\u5931\u52b9\u65e5\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002\n \n \n \n Protection expires at\n \u4fdd\u8b77\u306e\u5931\u52b9\u65e5\n \n \n NOT PROTECTED\n \u4fdd\u8b77\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n \n \n Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".\n \u65e5\u4ed8\u306e\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002\u300cYYYY-MM-DD HH:mm:ss\u300d\u3068\u3044\u3046\u5f62\u5f0f\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Protection has already expired. Please pick a future date or leave it empty.\n \u4fdd\u8b77\u306f\u3059\u3067\u306b\u5931\u52b9\u3057\u3066\u3044\u307e\u3059\u3002\u5c06\u6765\u306e\u65e5\u4ed8\u3092\u9078\u629e\u3059\u308b\u304b\u3001\u65e5\u4ed8\u3092\u7a7a\u767d\u306e\u307e\u307e\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Move Image\n \u30a4\u30e1\u30fc\u30b8\u306e\u79fb\u52d5\n \n \n Gateways\n Gateways\n \n \n Must be greater than or equal to \n .\n \n Must be greater than or equal to \n .\n \n \n \n Must be less than or equal to \n .\n \n Must be less than or equal to \n .\n \n \n \n Overview\n \u6982\u8981\n \n \n Targets\n \u30bf\u30fc\u30b2\u30c3\u30c8\n \n \n Discovery Authentication\n \u691c\u51fa\u8a8d\u8a3c\n \n \n User\n \u30e6\u30fc\u30b6\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u30e6\u30fc\u30b6\u540d\u306f8\uff5e64\u6587\u5b57\u306e\u9577\u3055\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\n\u82f1\u5b57\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u3001\u307e\u305f\u306f\u300c:\u300d\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Mutual User\n \u76f8\u4e92\u30e6\u30fc\u30b6\n \n \n Mutual Password\n \u76f8\u4e92\u30d1\u30b9\u30ef\u30fc\u30c9\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Please consult the \n documentation\n \n on how to configure and enable the iSCSI Targets management functionality.\n \n iSCSI\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u7ba1\u7406\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Available information:\n \u53d6\u5f97\u53ef\u80fd\u306a\u60c5\u5831:\n \n \n iSCSI Targets not available\n \u4f7f\u7528\u53ef\u80fd\u306aiSCSI\u30bf\u30fc\u30b2\u30c3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093\n \n \n Discovery authentication\n Discovery authentication\n \n \n Only available for RBD images with \n fast-diff\n enabled\n \n \n fast-diff\n \u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308bRBD\u30a4\u30e1\u30fc\u30b8\u306e\u307f\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\n \n \n \n Pool\n \u30d7\u30fc\u30eb\n \n \n Data Pool\n \u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\n \n \n Created\n \u4f5c\u6210\u6e08\u307f\n \n \n Size\n \u30b5\u30a4\u30ba\n \n \n Object size\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b5\u30a4\u30ba\n \n \n Features\n \u6a5f\u80fd\n \n \n Provisioned\n \u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0\u6e08\u307f\n \n \n N/A\n \u306a\u3057\n \n \n Total provisioned\n \u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0\u6e08\u307f\u5408\u8a08\n \n \n Striping unit\n \u30b9\u30c8\u30e9\u30a4\u30d4\u30f3\u30b0\u5358\u4f4d\n \n \n Striping count\n \u30b9\u30c8\u30e9\u30a4\u30d4\u30f3\u30b0\u6570\n \n \n Parent\n \u89aa\n \n \n Block name prefix\n \u30d6\u30ed\u30c3\u30af\u540d\u306e\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\n \n \n Order\n \u9806\u756a\n \n \n Snapshots\n \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n Image\n \u30a4\u30e1\u30fc\u30b8\n \n \n This setting overrides the global value\n \u3053\u306e\u8a2d\u5b9a\u306f\u30b0\u30ed\u30fc\u30d0\u30eb\u5024\u3088\u308a\u3082\u512a\u5148\u3055\u308c\u307e\u3059\n \n \n Global\n \u30b0\u30ed\u30fc\u30d0\u30eb\n \n \n This is the global value. No value for this option has been set for this image.\n \u3053\u308c\u306f\u30b0\u30ed\u30fc\u30d0\u30eb\u5024\u3067\u3059\u3002\u3053\u306e\u30a4\u30e1\u30fc\u30b8\u306b\u3064\u3044\u3066\u3001\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u5024\u306f\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n \n from\n \n \n from\n \n \n \n \'/\' and \'@\' are not allowed.\n \u300c/\u300d\u3068\u300c@\u300d\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n -- No rbd pools available --\n -- \u4f7f\u7528\u53ef\u80fd\u306arbd\u30d7\u30fc\u30eb\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select a pool --\n -- \u30d7\u30fc\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Use a dedicated data pool\n \u5c02\u7528\u306e\u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\n \n \n Data pool\n \u30c7\u30fc\u30bf\u30d7\u30fc\u30eb\n \n \n Dedicated pool that stores the object-data of the RBD.\n RBD\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30c7\u30fc\u30bf\u3092\u4fdd\u7ba1\u3059\u308b\u305f\u3081\u306e\u5c02\u7528\u30d7\u30fc\u30eb\n \n \n e.g., 10GiB\n \u4f8b: 10GiB\n \n \n You have to increase the size.\n \u30b5\u30a4\u30ba\u3092\u5927\u304d\u304f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Advanced\n \u8a73\u7d30\n \n \n Striping\n \u30b9\u30c8\u30e9\u30a4\u30d4\u30f3\u30b0\n \n \n Stripe unit\n \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\n \n \n -- Select stripe unit --\n -- \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n This field is required because stripe count is defined!\n \u30b9\u30c8\u30e9\u30a4\u30d7\u6570\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n Stripe unit is greater than object size.\n \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\u304c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b5\u30a4\u30ba\u3088\u308a\u5927\u304d\u3044\u3067\u3059\u3002\n \n \n Stripe count\n \u30b9\u30c8\u30e9\u30a4\u30d7\u6570\n \n \n This field is required because stripe unit is defined!\n \u30b9\u30c8\u30e9\u30a4\u30d7\u5358\u4f4d\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306f\u5fc5\u9808\u3067\u3059\u3002\n \n \n Stripe count must be greater than 0.\n \u30b9\u30c8\u30e9\u30a4\u30d7\u6570\u306f0\u3088\u308a\u5927\u304d\u3044\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n RBD Snapshot\n \n \n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n \n {VAR_SELECT, select, true {Rename} other {Create} }\n {VAR_SELECT, select, true {Rename} other {Create} }\n \n \n \n Snapshot\n \n \n \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n \n PROTECTED\n \u4fdd\u8b77\u6e08\u307f\n \n \n UNPROTECTED\n \u672a\u4fdd\u8b77\n \n \n You are about to rollback\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\n \n \n Purge Trash\n \u3054\u307f\u7bb1\u3092\u7a7a\u306b\u3059\u308b\n \n \n To purge, select one or All images and click\n \u7a7a\u306b\u3059\u308b\u306b\u306f\u30011\u3064\u307e\u305f\u306f\u3059\u3079\u3066\u306e\u30a4\u30e1\u30fc\u30b8\u3092\u9078\u629e\u3057\u3066\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\n \n \n Pool:\n \u30d7\u30fc\u30eb:\n \n \n Pool name...\n \u30d7\u30fc\u30eb\u540d...\n \n \n All\n \u3059\u3079\u3066\n \n \n Restore Image\n \u30a4\u30e1\u30fc\u30b8\u306e\u5fa9\u5143\n \n \n To restore\n \u5fa9\u5143\u3059\u308b\u306b\u306f\n \n \n type the image\'s new name and click\n \u30a4\u30e1\u30fc\u30b8\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\n \n \n New Name\n \u65b0\u3057\u3044\u540d\u524d\n \n \n Expired at\n \u5931\u52b9\u65e5\n \n \n Protected until\n \u4fdd\u8b77\u306e\u7d42\u4e86\u65e5\n \n \n This image is protected until \n .\n \n \u3053\u306e\u30a4\u30e1\u30fc\u30b8\u306f\n \u307e\u3067\u4fdd\u8b77\u3055\u308c\u307e\u3059\u3002\n \n \n \n Trash\n \u3054\u307f\u7bb1\n \n \n iSCSI Topology\n iSCSI\u30c8\u30dd\u30ed\u30b8\n \n \n Configure\n Configure\n \n \n Changing these parameters from their default values is usually not necessary.\n \u901a\u5e38\u306f\u3053\u308c\u3089\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u304b\u3089\u5909\u66f4\u3059\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n Identifier\n Identifier\n \n \n lun\n lun\n \n \n wwn\n wwn\n \n \n Settings\n \u8a2d\u5b9a\n \n \n Backstore\n \u30d0\u30c3\u30af\u30b9\u30c8\u30a2\n \n \n Confirm\n \u78ba\u8a8d\n \n \n Advanced Settings\n \u8a73\u7d30\u8a2d\u5b9a\n \n \n Target IQN\n \u30bf\u30fc\u30b2\u30c3\u30c8IQN\n \n \n IQN has wrong pattern.\n IQN\u306e\u30d1\u30bf\u30fc\u30f3\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n An IQN has the following notation \'iqn.$year-$month.$reversedAddress:$definedName\'\n IQN\u306f\u300ciqn.$year-$month.$reversedAddress:$definedName\u300d\u3068\u3044\u3046\u5f62\u5f0f\u3067\u8868\u8a18\u3055\u308c\u307e\u3059\u3002\n \n \n For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \u4f8b: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309\n \n \n More information\n \u8a73\u7d30\u60c5\u5831\n \n \n This target has modified advanced settings.\n \u3053\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u8a73\u7d30\u8a2d\u5b9a\u306f\u5909\u66f4\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Portals\n \u30dd\u30fc\u30bf\u30eb\n \n \n At least \n gateways are required.\n \n \u5c11\u306a\u304f\u3068\u3082\n \u53f0\u306e\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u304c\u5fc5\u8981\u3067\u3059\u3002\n \n \n \n Add portal\n \u30dd\u30fc\u30bf\u30eb\u306e\u8ffd\u52a0\n \n \n Backstore: \n .\xa0\n \n Backstore: \n .\xa0\n \n \n \n This image has modified settings.\n \u3053\u306e\u30a4\u30e1\u30fc\u30b8\u306e\u8a2d\u5b9a\u306f\u5909\u66f4\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Duplicated LUN numbers.\n Duplicated LUN numbers.\n \n \n Duplicated WWN.\n Duplicated WWN.\n \n \n Add image\n \u30a4\u30e1\u30fc\u30b8\u306e\u8ffd\u52a0\n \n \n ACL authentication\n ACL\u8a8d\u8a3c\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiators\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\n \n \n Initiator\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\n \n \n Client IQN\n \u30af\u30e9\u30a4\u30a2\u30f3\u30c8IQN\n \n \n Initiator IQN needs to be unique.\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bfIQN\u306f\u4e00\u610f\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Usernames must have a length of 8 to 64 characters and\n can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.\n \u30e6\u30fc\u30b6\u540d\u306f8\uff5e64\u6587\u5b57\u306e\u9577\u3055\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\n\u82f1\u5b57\u3001\u300c.\u300d\u3001\u300c@\u300d\u3001\u300c-\u300d\u3001\u300c_\u300d\u3001\u307e\u305f\u306f\u300c:\u300d\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters\n and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n Passwords must have a length of 12 to 16 characters and\n can only contain letters, \'@\', \'-\', \'_\' or \'/\'.\n \n \n Initiator belongs to a group. Images will be configure in the group.\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u306f\u3044\u305a\u308c\u304b\u306e\u30b0\u30eb\u30fc\u30d7\u306b\u5c5e\u3057\u307e\u3059\u3002\u30a4\u30e1\u30fc\u30b8\u306f\u305d\u306e\u30b0\u30eb\u30fc\u30d7\u5185\u3067\u8a2d\u5b9a\u3055\u308c\u307e\u3059\u3002\n \n \n No items added.\n \u30a2\u30a4\u30c6\u30e0\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Add initiator\n \u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u306e\u8ffd\u52a0\n \n \n Groups\n \u30b0\u30eb\u30fc\u30d7\n \n \n Group\n \u30b0\u30eb\u30fc\u30d7\n \n \n Add group\n \u30b0\u30eb\u30fc\u30d7\u306e\u8ffd\u52a0\n \n \n [object Object]\n [object Object]\n \n \n RBD Configuration\n RBD\u8a2d\u5b9a\n \n \n Remove the local configuration value. The parent configuration value will be inherited and used instead.\n \u30ed\u30fc\u30ab\u30eb\u8a2d\u5b9a\u5024\u3092\u524a\u9664\u3057\u307e\u3059\u3002\u89aa\u8a2d\u5b9a\u5024\u304c\u7d99\u627f\u3055\u308c\u3066\u4ee3\u308f\u308a\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\n \n \n The mininum value is 0\n \u6700\u5c0f\u5024\u306f0\u3067\u3059\n \n \n Issues\n \u554f\u984c\n \n \n Syncing\n \u540c\u671f\u4e2d\n \n \n Ready\n \u6e96\u5099\u5b8c\u4e86\n \n \n Edit pool mirror mode\n \u30d7\u30fc\u30eb\u306e\u30df\u30e9\u30fc\u30e2\u30fc\u30c9\u306e\u7de8\u96c6\n \n \n To edit the mirror mode for pool\xa0\n \n \n , select a new mode from the list and click\xa0\n Update\n .\n \n \u30d7\u30fc\u30eb\n \n \n \u306e\u30df\u30e9\u30fc\u30e2\u30fc\u30c9\u3092\u7de8\u96c6\u3059\u308b\u306b\u306f\u3001\n\u30ea\u30b9\u30c8\u304b\u3089\u65b0\u3057\u3044\u30e2\u30fc\u30c9\u3092\u9078\u629e\u3057\u3066\u3001\n \uff3b\u66f4\u65b0\uff3d\n \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\n \n \n \n Mode\n \u30e2\u30fc\u30c9\n \n \n Peer clusters must be removed prior to disabling mirror.\n \u30df\u30e9\u30fc\u3092\u7121\u52b9\u306b\u3059\u308b\u524d\u306b\u3001\u30d4\u30a2\u30af\u30e9\u30b9\u30bf\u3092\u524a\u9664\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n \n pool mirror peer\n \n \n \n\u30d7\u30fc\u30eb\u306e\u30df\u30e9\u30fc\u30d4\u30a2\n \n \n \n {VAR_SELECT, select, edit {Edit} other {Add} }\n {VAR_SELECT, select, edit {Edit} other {Add} }\n \n \n \n the pool\n mirror peer attributes for pool \n \n \n and click \n Submit\n .\n \n \n \u30d7\u30fc\u30eb\n \n \n \n\u306e\u30d7\u30fc\u30eb\u30df\u30e9\u30fc\u30d4\u30a2\u5c5e\u6027\u3001\u304a\u3088\u3073\n \uff3b\u9001\u4fe1\uff3d\n \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\n \n \n \n Cluster Name\n \u30af\u30e9\u30b9\u30bf\u540d\n \n \n The cluster name is not valid.\n \u3053\u306e\u30af\u30e9\u30b9\u30bf\u540d\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n CephX ID\n CephX ID\n \n \n CephX ID...\n CephX ID...\n \n \n The CephX ID is not valid.\n \u3053\u306eCephX ID\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n Monitor Addresses\n \u30e2\u30cb\u30bf\u30fc\u30a2\u30c9\u30ec\u30b9\n \n \n Comma-delimited addresses...\n \u30ab\u30f3\u30de\u533a\u5207\u308a\u30a2\u30c9\u30ec\u30b9...\n \n \n The monitory address is not valid.\n \u3053\u306e\u8b66\u544a\u30a2\u30c9\u30ec\u30b9\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n CephX Key\n CephX\u30ad\u30fc\n \n \n Base64-encoded key...\n Base64\u30a8\u30f3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30ad\u30fc...\n \n \n CephX key must be base64 encoded.\n CephX\u30ad\u30fc\u306fbase64\u3067\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Pools List\n \u30d7\u30fc\u30eb\u30ea\u30b9\u30c8\n \n \n The name can only consist of alphanumeric characters, dashes and underscores.\n \u540d\u524d\u306f\u82f1\u6570\u5b57\u3001\u30c0\u30c3\u30b7\u30e5\u3001\u304a\u3088\u3073\u4e0b\u7dda\u306e\u307f\u3067\u69cb\u6210\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n The chosen erasure code profile name is already in use.\n \u9078\u629e\u3055\u308c\u305f\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Plugin\n \u30d7\u30e9\u30b0\u30a4\u30f3\n \n \n Data chunks (k)\n \u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af(k)\n \n \n Must be equal to or greater than 2.\n 2\u4ee5\u4e0a\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Coding chunks (m)\n \u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af(m)\n \n \n Must be equal to or greater than 1.\n 1\u4ee5\u4e0a\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Durability estimator (c)\n \u8010\u4e45\u6027\u63a8\u5b9a\u5b50(c)\n \n \n Locality (l)\n \u5730\u57df(l)\n \n \n Crush failure domain\n Crush\u969c\u5bb3\u30c9\u30e1\u30a4\u30f3\n \n \n Crush Locality\n Crush\u5730\u57df\n \n \n None\n \u306a\u3057\n \n \n Technique\n \u6280\u6cd5\n \n \n Packetsize\n \u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba\n \n \n Crush root\n Crush\u30eb\u30fc\u30c8\n \n \n Crush device class\n Crush\u30c7\u30d0\u30a4\u30b9\u30af\u30e9\u30b9\n \n \n any\n \u4efb\u610f\n \n \n Directory\n \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n \n \n The chosen Ceph pool name is already in use.\n \u9078\u629e\u3055\u308c\u305fCeph\u30d7\u30fc\u30eb\u540d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Pool type\n \u30d7\u30fc\u30eb\u30bf\u30a4\u30d7\n \n \n -- Select a pool type --\n -- \u30d7\u30fc\u30eb\u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Placement groups\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\n \n \n At least one placement group is needed!\n \u5c11\u306a\u304f\u3068\u30821\u3064\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u304c\u5fc5\u8981\u3067\u3059\u3002\n \n \n Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.\n \u3054\u4f7f\u7528\u306e\u30af\u30e9\u30b9\u30bf\u306f\u3053\u308c\u3060\u3051\u591a\u6570\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u3092\u51e6\u7406\u3067\u304d\u307e\u305b\u3093\u3002\u5fc5\u8981\u306a\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u6570\u3092\u518d\u8a08\u7b97\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Calculation help\n \u8a08\u7b97\u306e\u30d8\u30eb\u30d7\n \n \n The current PGs settings were calculated for you, you\n should make sure the values suit your needs before submit.\n \u73fe\u5728\u306e\u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u8a2d\u5b9a\u306f\u81ea\u52d5\u7684\u306b\u8a08\u7b97\u3055\u308c\u305f\u305f\u3081\u3001\n\u9001\u4fe1\u524d\u306b\u3001\u3053\u308c\u3089\u306e\u5024\u304c\u30cb\u30fc\u30ba\u306b\u5408\u3063\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Crush ruleset\n Crush\u30eb\u30fc\u30eb\u30bb\u30c3\u30c8\n \n \n -- Select a crush rule --\n -- Crush\u30eb\u30fc\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Crush rule\n Crush\u30eb\u30fc\u30eb\n \n \n Crush steps\n Crush\u30b9\u30c6\u30c3\u30d7\n \n \n The rule can\'t be used in the current cluster as it has\n to few OSDs to meet the minimum required OSD by this rule.\n \u73fe\u5728\u306e\u30af\u30e9\u30b9\u30bf\u5185\u306eOSD\u6570\u306f\u3053\u306e\u30eb\u30fc\u30eb\u3067\u8981\u6c42\u3055\u308c\u308b\u6700\u5c0fOSD\u6570\u3092\u4e0b\u56de\u3063\u3066\u3044\u308b\u305f\u3081\u3001\n\u3053\u306e\u30eb\u30fc\u30eb\u3092\u73fe\u5728\u306e\u30af\u30e9\u30b9\u30bf\u3067\u4f7f\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n Replicated size\n \u8907\u88fd\u3055\u308c\u305f\u30b5\u30a4\u30ba\n \n \n Minimum: \n \n \n \u6700\u5c0f: \n \n \n \n \n Maximum: \n \n \n \u6700\u5927: \n \n \n \n \n The size specified is out of range. A value from\n to \n is valid.\n \n \u6307\u5b9a\u3055\u308c\u305f\u30b5\u30a4\u30ba\u306f\u7bc4\u56f2\u5916\u3067\u3059\u3002\n\u6709\u52b9\u306a\u5024\u306e\u7bc4\u56f2\u306f\n \uff5e\n \u3067\u3059\u3002\n \n \n \n Erasure code profile\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\n \n \n -- No erasure code profile available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n -- Select an erasure code profile --\n -- \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n EC Overwrites\n EC\u306e\u4e0a\u66f8\u304d\n \n \n Applications\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\n \n \n Compression\n \u5727\u7e2e\n \n \n Algorithm\n \u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\n \n \n -- No erasure compression algorithm available --\n -- \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30ec\u30a4\u30b8\u30e3\u5727\u7e2e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u304c\u3042\u308a\u307e\u305b\u3093 --\n \n \n Minimum blob size\n \u6700\u5c0fblob\u30b5\u30a4\u30ba\n \n \n e.g., 128KiB\n \u4f8b: 128KiB\n \n \n Value should be greater than 0\n \u5024\u306f0\u3088\u308a\u5927\u304d\u3044\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n Value should be less than the maximum blob size\n Value should be less than the maximum blob size\n \n \n Maximum blob size\n \u6700\u5927blob\u30b5\u30a4\u30ba\n \n \n e.g., 512KiB\n \u4f8b: 512KiB\n \n \n Value should be greater than the minimum blob size\n \u5024\u306f\u6700\u5c0fblob\u30b5\u30a4\u30ba\u3088\u308a\u5927\u304d\u3044\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n Ratio\n \u7387\n \n \n Compression ratio\n \u5727\u7e2e\u7387\n \n \n Value should be between 0.0 and 1.0\n \u5024\u306f0.0\uff5e1.0\u306e\u9593\u3067\u3042\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\n \n \n It\'s not possible to create an RBD pool with \'/\' in the name.\n \u540d\u524d\u306b\u300c/\u300d\u304c\u542b\u307e\u308c\u305fRBD\u30d7\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n Please change the name or remove \'rbd\' from the applications list.\n \u540d\u524d\u3092\u5909\u66f4\u3059\u308b\u304b\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ea\u30b9\u30c8\u304b\u3089\u300crbd\u300d\u3092\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n Cache Tiers Details\n \u30ad\u30e3\u30c3\u30b7\u30e5\u5c64\u306e\u8a73\u7d30\n \n \n Please consult the \n documentation\n \n on how to configure and enable the Object Gateway management functionality.\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u7ba1\u7406\u6a5f\u80fd\u3092\u8a2d\u5b9a\u304a\u3088\u3073\u6709\u52b9\u5316\n\u3059\u308b\u65b9\u6cd5\u306b\u95a2\u3059\u308b\n \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\n \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n \n Daemons List\n \u30c7\u30fc\u30e2\u30f3\u30ea\u30b9\u30c8\n \n \n Performance Counters\n \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30ab\u30a6\u30f3\u30bf\n \n \n Loading bucket data...\n \u30d0\u30b1\u30c3\u30c8\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n The bucket data could not be loaded.\n \u30d0\u30b1\u30c3\u30c8\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n Id\n Id\n \n \n The value is not valid.\n \u3053\u306e\u5024\u306f\u7121\u52b9\u3067\u3059\u3002\n \n \n Owner\n \u6240\u6709\u8005\n \n \n -- Select a user --\n -- \u30e6\u30fc\u30b6\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n ID\n ID\n \n \n Index type\n \u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u30bf\u30a4\u30d7\n \n \n Placement rule\n \u914d\u7f6e\u30eb\u30fc\u30eb\n \n \n Marker\n \u30de\u30fc\u30ab\u30fc\n \n \n Maximum marker\n \u6700\u5927\u30de\u30fc\u30ab\u30fc\n \n \n Version\n \u30d0\u30fc\u30b8\u30e7\u30f3\n \n \n Master version\n \u30de\u30b9\u30bf\u30d0\u30fc\u30b8\u30e7\u30f3\n \n \n Modification time\n \u5909\u66f4\u6642\u9593\n \n \n Zonegroup\n \u30be\u30fc\u30f3\u30b0\u30eb\u30fc\u30d7\n \n \n Bucket quota\n \u30d0\u30b1\u30c3\u30c8\u30af\u30a9\u30fc\u30bf\n \n \n Enabled\n \u6709\u52b9\u5316\u6e08\u307f\n \n \n Maximum size\n \u6700\u5927\u30b5\u30a4\u30ba\n \n \n Unlimited\n \u7121\u5236\u9650\n \n \n Maximum objects\n \u6700\u5927\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n -- Select a username --\n -- \u30e6\u30fc\u30b6\u540d\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Auto-generate key\n \u30ad\u30fc\u306e\u81ea\u52d5\u751f\u6210\n \n \n Access key\n \u30a2\u30af\u30bb\u30b9\u30ad\u30fc\n \n \n Secret key\n \u79d8\u5bc6\u30ad\u30fc\n \n \n Email address\n \u96fb\u5b50\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\n \n \n Suspended\n \u4e2d\u65ad\u6e08\u307f\n \n \n System\n \u30b7\u30b9\u30c6\u30e0\n \n \n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n {VAR_SELECT, select, 0 {No} 1 {Yes} }\n \n \n Maximum buckets\n \u6700\u5927\u30d0\u30b1\u30c3\u30c8\u6570\n \n \n Subusers\n \u30b5\u30d6\u30e6\u30fc\u30b6\n \n \n Capabilities\n \u6a5f\u80fd\n \n \n User quota\n \u30e6\u30fc\u30b6\u30af\u30a9\u30fc\u30bf\n \n \n Show\n \u8868\u793a\n \n \n Keys\n \u30ad\u30fc\n \n \n -- Select a type --\n -- \u30bf\u30a4\u30d7\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Permission\n \u8a31\u53ef\n \n \n -- Select a permission --\n -- \u8a31\u53ef\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Subuser\n \u30b5\u30d6\u30e6\u30fc\u30b6\n \n \n The chosen subuser ID is already in use.\n \u9078\u629e\u3055\u308c\u305f\u30b5\u30d6\u30e6\u30fc\u30b6ID\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n read, write\n \u8aad\u307f\u53d6\u308a\u3001\u66f8\u304d\u8fbc\u307f\n \n \n full\n \u30d5\u30eb\n \n \n Swift key\n \u30b9\u30a6\u30a3\u30d5\u30c8\u30ad\u30fc\n \n \n Auto-generate secret\n \u79d8\u5bc6\u306e\u81ea\u52d5\u751f\u6210\n \n \n Loading user data...\n \u30e6\u30fc\u30b6\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...\n \n \n The user data could not be loaded.\n \u30e6\u30fc\u30b6\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n The chosen user ID is already in use.\n \u9078\u629e\u3055\u308c\u305f\u30e6\u30fc\u30b6ID\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n This is not a valid email address.\n \u3053\u308c\u306f\u6709\u52b9\u306a\u96fb\u5b50\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n The chosen email address is already in use.\n \u9078\u629e\u3055\u308c\u305f\u96fb\u5b50\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Max. buckets\n \u6700\u5927\u30d0\u30b1\u30c3\u30c8\u6570\n \n \n The entered value must be >= 0.\n 0\u4ee5\u4e0a\u306e\u5024\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n S3 key\n S3\u30ad\u30fc\n \n \n There are no subusers.\n \u30b5\u30d6\u30e6\u30fc\u30b6\u304c\u3044\u307e\u305b\u3093\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n S3\n S3\n \n \n There are no keys.\n \u30ad\u30fc\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Swift\n \u30b9\u30a6\u30a3\u30d5\u30c8\n \n \n There are no capabilities.\n \u6a5f\u80fd\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n \n \n \n \n \n \n \n \n \n \n Unlimited size\n \u7121\u5236\u9650\u306e\u30b5\u30a4\u30ba\n \n \n Max. size\n \u6700\u5927\u30b5\u30a4\u30ba\n \n \n Unlimited objects\n \u7121\u5236\u9650\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n Max. objects\n \u6700\u5927\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n Current\n \u73fe\u5728\n \n \n Updated discovery authentication\n \u691c\u51fa\u8a8d\u8a3c\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n There are no portals available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30dd\u30fc\u30bf\u30eb\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n There are no images available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30e1\u30fc\u30b8\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n There are no images available. Please make sure you add an image to the target.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30e1\u30fc\u30b8\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u30a4\u30e1\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n There are no initiators available. Please make sure you add an initiator to the target.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u30a4\u30cb\u30b7\u30a8\u30fc\u30bf\u3092\u8ffd\u52a0\u3057\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n \n \n target\n target\n \n \n Target\n \u30bf\u30fc\u30b2\u30c3\u30c8\n \n \n # Sessions\n # Sessions\n \n \n iSCSI target\n iSCSI target\n \n \n State\n \u72b6\u614b\n \n \n # Targets\n # Targets\n \n \n Read Bytes\n \u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\n \n \n Write Bytes\n \u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\n \n \n Read Ops\n \u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\n \n \n Write Ops\n \u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\n \n \n A/O Since\n \u6b21\u306e\u65e5\u4ed8\u4ee5\u964d\u306eA/O\n \n \n Instance\n \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\n \n \n Hostname\n \u30db\u30b9\u30c8\u540d\n \n \n Issue\n \u554f\u984c\n \n \n Progress\n \u9032\u6357\n \n \n Disabled\n \u7121\u52b9\u5316\u6e08\u307f\n \n \n Edit Mode\n \u30e2\u30fc\u30c9\u306e\u7de8\u96c6\n \n \n Add Peer\n \u30d4\u30a2\u306e\u8ffd\u52a0\n \n \n Edit Peer\n \u30d4\u30a2\u306e\u7de8\u96c6\n \n \n Delete Peer\n \u30d4\u30a2\u306e\u524a\u9664\n \n \n Leader\n \u30ea\u30fc\u30c0\u30fc\n \n \n # Local\n #\u30ed\u30fc\u30ab\u30eb\n \n \n # Remote\n #\u30ea\u30e2\u30fc\u30c8\n \n \n mirror peer\n \u30df\u30e9\u30fc\u30d4\u30a2\n \n \n Key\n \u30ad\u30fc\n \n \n RBD\n RBD\n \n \n Deep flatten\n \u30c7\u30a3\u30fc\u30d7\u30d5\u30e9\u30c3\u30c8\u5316\n \n \n Layering\n \u968e\u5c64\u5316\n \n \n Exclusive lock\n \u6392\u4ed6\u30ed\u30c3\u30af\n \n \n Object map (requires exclusive-lock)\n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30de\u30c3\u30d7(\u6392\u4ed6\u30ed\u30c3\u30af\u304c\u5fc5\u8981)\n \n \n Journaling (requires exclusive-lock)\n \u30b8\u30e3\u30fc\u30ca\u30ea\u30f3\u30b0(\u6392\u4ed6\u30ed\u30c3\u30af\u304c\u5fc5\u8981)\n \n \n Fast diff (interlocked with object-map)\n Fast diff (interlocked with object-map)\n \n \n RBD snapshot rollback\n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u30ed\u30fc\u30eb\u30d0\u30c3\u30af\n \n \n Rollback\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\n \n \n RBD snapshot\n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\n \n \n Deleted At\n \u524a\u9664\u65e5\u6642\n \n \n id\n id\n \n \n type\n \u30bf\u30a4\u30d7\n \n \n state\n \u72b6\u614b\n \n \n version\n \u30d0\u30fc\u30b8\u30e7\u30f3\n \n \n Host\n \u30db\u30b9\u30c8\n \n \n root\n \u30eb\u30fc\u30c8\n \n \n Rank\n \u30e9\u30f3\u30af\n \n \n Daemon\n \u30c7\u30fc\u30e2\u30f3\n \n \n Activity\n \u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3\n \n \n Dentries\n d\u30a8\u30f3\u30c8\u30ea\n \n \n Inodes\n i\u30ce\u30fc\u30c9\n \n \n Usage\n \u4f7f\u7528\u91cf\n \n \n Standby daemons\n \u30b9\u30bf\u30f3\u30d0\u30a4\u30c7\u30fc\u30e2\u30f3\n \n \n The value can be updated at runtime.\n \u3053\u306e\u5024\u306f\u5b9f\u884c\u6642\u306b\u66f4\u65b0\u3067\u304d\u307e\u3059\u3002\n \n \n Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via \'ceph config\n set ...\'. This option should be configured via ceph.conf or via the\n command line.\n \u30c7\u30fc\u30e2\u30f3/\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u3053\u306e\u5024\u3092\u30e2\u30cb\u30bf\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u53d6\u5f97\u3057\u307e\u305b\u3093\u3002\n\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u300cceph config set ...\u300d\u3092\u901a\u3058\u3066\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u306f\u7981\u6b62\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3001ceph.conf\u307e\u305f\u306f\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u3092\u901a\u3058\u3066\n\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n Option takes effect only during daemon startup.\n \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30c7\u30fc\u30e2\u30f3\u59cb\u52d5\u6642\u306e\u307f\u306b\u6709\u52b9\u306b\u306a\u308a\u307e\u3059\u3002\n \n \n Option only affects cluster creation.\n \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30af\u30e9\u30b9\u30bf\u306e\u4f5c\u6210\u306e\u307f\u306b\u9069\u7528\u3055\u308c\u307e\u3059\u3002\n \n \n Option only affects daemon creation.\n \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u30c7\u30fc\u30e2\u30f3\u306e\u4f5c\u6210\u306e\u307f\u306b\u9069\u7528\u3055\u308c\u307e\u3059\u3002\n \n \n Updated config option \n \n \n \u8a2d\u5b9a\u30aa\u30d7\u30b7\u30e7\u30f3\n \u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Service\n \u30b5\u30fc\u30d3\u30b9\n \n \n Current value\n \u73fe\u884c\u5024\n \n \n Editable\n \u7de8\u96c6\u53ef\u80fd\n \n \n Updated options for module "\n ".\n \n \u30e2\u30b8\u30e5\u30fc\u30eb\u300c\n \u300d\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\u3002\n \n \n \n Enable\n \u6709\u52b9\u5316\n \n \n Disable\n \u7121\u52b9\u5316\n \n \n Reconnecting, please wait ...\n \u518d\u63a5\u7d9a\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u3057\u3070\u3089\u304f\u304a\u5f85\u3061\u304f\u3060\u3055\u3044...\n \n \n Public Address\n \u30d1\u30d6\u30ea\u30c3\u30af\u30a2\u30c9\u30ec\u30b9\n \n \n Open Sessions\n \u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u958b\u59cb\n \n \n No In\n \u30a4\u30f3\u306a\u3057\n \n \n OSDs that were previously marked out will not be marked back in when they start\n \u4ee5\u524d\u306b\u30a2\u30a6\u30c8\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u305fOSD\u306f\u3001\u305d\u308c\u3089\u306e\u59cb\u52d5\u6642\u306b\u30a4\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\n \n \n No Out\n \u30a2\u30a6\u30c8\u306a\u3057\n \n \n OSDs will not automatically be marked out after the configured interval\n OSD\u306f\u3001\u8a2d\u5b9a\u6e08\u307f\u306e\u9593\u9694\u304c\u7d4c\u904e\u3057\u305f\u5f8c\u306b\u81ea\u52d5\u7684\u306b\u30a2\u30a6\u30c8\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u307e\u3059\n \n \n No Up\n \u30a2\u30c3\u30d7\u306a\u3057\n \n \n OSDs are not allowed to start\n OSD\u3092\u59cb\u52d5\u3059\u308b\u3053\u3068\u306f\u8a31\u53ef\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n \n \n No Down\n \u30c0\u30a6\u30f3\u306a\u3057\n \n \n OSD failure reports are being ignored, such that the monitors will not mark OSDs down\n OSD\u306e\u969c\u5bb3\u30ec\u30dd\u30fc\u30c8\u306f\u7121\u8996\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001OSD\u306f\u30e2\u30cb\u30bf\u30fc\u306b\u3088\u3063\u3066\u30c0\u30a6\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\u3055\u308c\u307e\u305b\u3093\n \n \n Pause\n \u4e00\u6642\u505c\u6b62\n \n \n Pauses reads and writes\n \u8aad\u307f\u53d6\u308a\u3068\u66f8\u304d\u8fbc\u307f\u3092\u4e00\u6642\u505c\u6b62\u3057\u307e\u3059\n \n \n No Scrub\n \u30b9\u30af\u30e9\u30d6\u306a\u3057\n \n \n Scrubbing is disabled\n \u30b9\u30af\u30e9\u30d6\u51e6\u7406\u306f\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n No Deep Scrub\n \u30c7\u30a3\u30fc\u30d7\u30b9\u30af\u30e9\u30d6\u306a\u3057\n \n \n Deep Scrubbing is disabled\n \u30c7\u30a3\u30fc\u30d7\u30b9\u30af\u30e9\u30d6\u51e6\u7406\u306f\u7121\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n No Backfill\n \u30d0\u30c3\u30af\u30d5\u30a3\u30eb\u306a\u3057\n \n \n Backfilling of PGs is suspended\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u30d0\u30c3\u30af\u30d5\u30a3\u30eb\u306f\u4e2d\u65ad\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n No Recover\n \u56de\u5fa9\u306a\u3057\n \n \n Recovery of PGs is suspended\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u306e\u56de\u5fa9\u306f\u4e2d\u65ad\u3055\u308c\u3066\u3044\u307e\u3059\n \n \n Bitwise Sort\n \u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u30bd\u30fc\u30c8\n \n \n Use bitwise sort\n \u30d3\u30c3\u30c8\u5358\u4f4d\u306e\u30bd\u30fc\u30c8\u3092\u4f7f\u7528\u3059\u308b\n \n \n Purged Snapdirs\n \u6d88\u53bb\u3055\u308c\u305f\u30b9\u30ca\u30c3\u30d7\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n \n \n OSDs have converted snapsets\n OSD\u306b\u3088\u3063\u3066\u30b9\u30ca\u30c3\u30d7\u30bb\u30c3\u30c8\u304c\u5909\u63db\u3055\u308c\u307e\u3057\u305f\n \n \n Recovery Deletes\n \u56de\u5fa9\u306e\u524a\u9664\n \n \n Deletes performed during recovery instead of peering\n \u30d4\u30a2\u30ea\u30f3\u30b0\u306e\u4ee3\u308f\u308a\u306b\u56de\u5fa9\u6642\u306b\u524a\u9664\u304c\u5b9f\u884c\u3055\u308c\u307e\u3057\u305f\n \n \n PG Log Hard Limit\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u30ed\u30b0\u306e\u30cf\u30fc\u30c9\u5236\u9650\n \n \n Puts a hard limit on pg log length\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u30ed\u30b0\u9577\u306e\u30cf\u30fc\u30c9\u5236\u9650\u3092\u9069\u7528\u3057\u307e\u3059\n \n \n Updated OSD Flags\n OSD\u30d5\u30e9\u30b0\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n out\n \u30a2\u30a6\u30c8\n \n \n in\n \u30a4\u30f3\n \n \n down\n \u30c0\u30a6\u30f3\n \n \n Mark\n \u30de\u30fc\u30af\n \n \n OSD lost\n \u55aa\u5931\u3057\u305fOSD\n \n \n marked lost\n \u55aa\u5931\u3068\u3057\u3066\u30de\u30fc\u30af\u6e08\u307f\n \n \n Purge\n \u6d88\u53bb\n \n \n OSD\n OSD\n \n \n purged\n \u6d88\u53bb\u6e08\u307f\n \n \n destroy\n \u7834\u68c4\n \n \n destroyed\n \u7834\u68c4\u6e08\u307f\n \n \n Cluster-wide Flags\n Cluster-wide Flags\n \n \n Cluster-wide Recovery Priority\n Cluster-wide Recovery Priority\n \n \n PG scrub\n PG scrub\n \n \n PGs\n \u914d\u7f6e\u30b0\u30eb\u30fc\u30d7\u6570\n \n \n Read bytes\n \u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\n \n \n Writes bytes\n \u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\n \n \n Read ops\n \u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\n \n \n Write ops\n \u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\n \n \n Mark OSD \n \n \n OSD\n \u3092\u30de\u30fc\u30af\n \n \n \n Mark \n \n \n \n \u3092\u30de\u30fc\u30af\n \n \n \n PG scrub options\n PG scrub options\n \n \n Updated PG scrub options\n Updated PG scrub options\n \n \n Max Backfills\n \u6700\u5927\u30d0\u30c3\u30af\u30d5\u30a3\u30eb\u6570\n \n \n Recovery Max Active\n \u56de\u5fa9\u6700\u5927\u30a2\u30af\u30c6\u30a3\u30d6\n \n \n Recovery Max Single Start\n \u56de\u5fa9\u6700\u5927\u5358\u4e00\u59cb\u52d5\n \n \n Recovery Sleep\n \u56de\u5fa9\u30b9\u30ea\u30fc\u30d7\n \n \n Custom\n \u30ab\u30b9\u30bf\u30e0\n \n \n Updated OSD recovery speed priority "\n "\n \n OSD\u306e\u56de\u5fa9\u901f\u5ea6\u512a\u5148\u5ea6\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n \n was initialized in the following OSD: \n \n \n \n \u306f\u6b21\u306eOSD\u3067\u521d\u671f\u5316\u3055\u308c\u307e\u3057\u305f: \n \n \n \n \n Create silence\n Create silence\n \n \n Job\n \u30b8\u30e7\u30d6\n \n \n Severity\n \u91cd\u5927\u5ea6\n \n \n Started\n \u59cb\u52d5\u6e08\u307f\n \n \n URL\n URL\n \n \n silence\n silence\n \n \n Attribute name\n Attribute name\n \n \n Regular expression\n Regular expression\n \n \n Please add your Prometheus host to the dashboard configuration and refresh the page\n Please add your Prometheus host to the dashboard configuration and refresh the page\n \n \n Created by\n Created by\n \n \n Updated\n \u66f4\u65b0\u6e08\u307f\n \n \n Ends\n Ends\n \n \n Silence\n Silence\n \n \n Used\n \u4f7f\u7528\u6e08\u307f\n \n \n Avail.\n \u4f7f\u7528\u53ef\u80fd\n \n \n Clean\n \u30af\u30ea\u30fc\u30f3\n \n \n Working\n \u52d5\u4f5c\u4e2d\n \n \n Warning\n \u8b66\u544a\n \n \n Unknown\n \u4e0d\u660e\n \n \n Healthy\n Healthy\n \n \n Misplaced\n Misplaced\n \n \n Degraded\n Degraded\n \n \n Unfound\n Unfound\n \n \n replicas\n replicas\n \n \n up\n \u30a2\u30c3\u30d7\n \n \n no filesystems\n \u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u304c\u3042\u308a\u307e\u305b\u3093\n \n \n active\n \u30a2\u30af\u30c6\u30a3\u30d6\n \n \n standby\n \u30b9\u30bf\u30f3\u30d0\u30a4\n \n \n n/a\n \u306a\u3057\n \n \n active daemon\n \u30a2\u30af\u30c6\u30a3\u30d6\u30c7\u30fc\u30e2\u30f3\n \n \n quorum\n \u5b9a\u6570\n \n \n The NFS Ganesha service is not configured.\n NFS Ganesha\u30b5\u30fc\u30d3\u30b9\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Transport\n \u30c8\u30e9\u30f3\u30b9\u30dd\u30fc\u30c8\n \n \n CephFS User\n CephFS\u30e6\u30fc\u30b6\n \n \n CephFS Filesystem\n CephFS\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\n \n \n (inherited from global config)\n (\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\u304b\u3089\u7d99\u627f)\n \n \n inherited from global config\n \u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\u304b\u3089\u7d99\u627f\u3055\u308c\u307e\u3057\u305f\n \n \n -- Select what kind of user id squashing is performed --\n -- \u5b9f\u884c\u3055\u308c\u308b\u30e6\u30fc\u30b6ID\u30b9\u30ab\u30c3\u30b7\u30e5\u64cd\u4f5c\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n There are no daemons available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30c7\u30fc\u30e2\u30f3\u304c\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n NFS export\n NFS export\n \n \n EC Profile\n EC Profile\n \n \n Cache Mode\n \u30ad\u30e3\u30c3\u30b7\u30e5\u30e2\u30fc\u30c9\n \n \n Min Evict Age\n \u9000\u53bb\u307e\u3067\u306e\u6700\u5c0f\u7d4c\u904e\u6642\u9593\n \n \n Min Flush Age\n \u6d88\u53bb\u307e\u3067\u306e\u6700\u5c0f\u7d4c\u904e\u6642\u9593\n \n \n Target Max Bytes\n \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u6700\u5927\u30d0\u30a4\u30c8\u6570\n \n \n Target Max Objects\n \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u6700\u5927\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u6570\n \n \n No applications added\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u305b\u3093\n \n \n Applications limit reached\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u6570\u306e\u4e0a\u9650\u306b\u9054\u3057\u307e\u3057\u305f\n \n \n A pool can only have up to four applications definitions.\n 1\u3064\u306e\u30d7\u30fc\u30eb\u306f\u6700\u5927\u30674\u3064\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5b9a\u7fa9\u3057\u304b\u4fdd\u6709\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n Allowed characters \'_a-zA-Z0-9\'\n \u4f7f\u7528\u53ef\u80fd\u306a\u6587\u5b57\u300c_a-zA-Z0-9\u300d\n \n \n Maximum length is 128 characters\n \u6700\u5927\u9577\u306f128\u6587\u5b57\u3067\u3059\n \n \n Filter or add applications\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u307e\u305f\u306f\u8ffd\u52a0\n \n \n Add application\n \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8ffd\u52a0\n \n \n pool\n pool\n \n \n erasure code profile\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\n \n \n Replica Size\n \u30ec\u30d7\u30ea\u30ab\u30b5\u30a4\u30ba\n \n \n Last Change\n \u6700\u5f8c\u306e\u5909\u66f4\n \n \n Erasure Coded Profile\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\n \n \n Crush Ruleset\n Crush\u30eb\u30fc\u30eb\u30bb\u30c3\u30c8\n \n \n Write bytes\n \u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\n \n \n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n Pool deletion is disabled by the mon_allow_pool_delete configuration setting.\n \n \n bucket\n \u30d0\u30b1\u30c3\u30c8\n \n \n Updated Object Gateway bucket "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30d0\u30b1\u30c3\u30c8\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Created Object Gateway bucket "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30d0\u30b1\u30c3\u30c8\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n buckets\n \u30d0\u30b1\u30c3\u30c8\u6570\n \n \n capability\n capability\n \n \n user\n \u30e6\u30fc\u30b6\n \n \n subuser\n subuser\n \n \n S3 Key\n S3 Key\n \n \n Updated Object Gateway user "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Created Object Gateway user "\n "\n \n \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n users\n \u30e6\u30fc\u30b6\u6570\n \n \n Swift Key\n Swift Key\n \n \n Scope\n \u7bc4\u56f2\n \n \n Read\n \u8aad\u307f\u53d6\u308a\n \n \n Create\n \u4f5c\u6210\n \n \n role\n role\n \n \n Created role \'\n \'\n \n \u5f79\u5272\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n Updated role \'\n \'\n \n \u5f79\u5272\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n System Role\n \u30b7\u30b9\u30c6\u30e0\u5f79\u5272\n \n \n Deleted role \'\n \'\n \n \u5f79\u5272\u300c\n \u300d\u3092\u524a\u9664\u3057\u307e\u3057\u305f\n \n \n \n Created user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\n \n \n \n Update user\n \u30e6\u30fc\u30b6\u306e\u66f4\u65b0\n \n \n Continue\n \u7d9a\u884c\n \n \n You were automatically logged out because your roles have been changed.\n \u3053\u306e\u30e6\u30fc\u30b6\u306e\u5f79\u5272\u304c\u5909\u66f4\u3055\u308c\u305f\u305f\u3081\u3001\u3053\u306e\u30e6\u30fc\u30b6\u306f\u81ea\u52d5\u7684\u306b\u30ed\u30b0\u30a2\u30a6\u30c8\u3055\u308c\u307e\u3057\u305f\u3002\n \n \n Updated user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\n \n \n \n Deleted user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u524a\u9664\u3057\u307e\u3057\u305f\n \n \n \n Failed to delete user "\n "\n \n \u30e6\u30fc\u30b6\u300c\n \u300d\u3092\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\n \n \n \n You are currently logged in as "\n ".\n \n \u73fe\u5728\u3053\u306e\u30e6\u30fc\u30b6\u306f\u300c\n \u300d\u3068\u3057\u3066\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u307e\u3059\u3002\n \n \n \n Each object is split in data-chunks parts, each stored on a different OSD.\n \u5404\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u8907\u6570\u306e\u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af\u30d1\u30fc\u30c8\u306b\u5206\u5272\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u308c\u305e\u308c\u306e\u30d1\u30fc\u30c8\u306f\u7570\u306a\u308bOSD\u306b\u4fdd\u7ba1\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n Compute coding chunks for each object and store them on different OSDs.\n The number of coding chunks is also the number of OSDs that can be down without losing data.\n \u5404\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af\u3092\u8a08\u7b97\u3057\u3066\u3001\u3053\u308c\u3089\u306e\u30c1\u30e3\u30f3\u30af\u3092\u5225\u3005\u306eOSD\u306b\u4fdd\u7ba1\u3057\u307e\u3059\u3002\n\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af\u306e\u6570\u306f\u3001\u30c7\u30fc\u30bf\u3092\u5931\u3046\u3053\u3068\u306a\u304f\u30c0\u30a6\u30f3\u72b6\u614b\u306b\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u308bOSD\u306e\u6570\u3067\u3082\u3042\u308a\u307e\u3059\u3002\n \n \n The jerasure plugin is the most generic and flexible plugin,\n it is also the default for Ceph erasure coded pools.\n jerasure\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u6700\u3082\u6c4e\u7528\u7684\u3067\u67d4\u8edf\u6027\u306e\u9ad8\u3044\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u3059\u3002\n\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u3001Ceph\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30d7\u30fc\u30eb\u7528\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u3082\u3042\u308a\u307e\u3059\u3002\n \n \n The more flexible technique is reed_sol_van : it is enough to set k\n and m. The cauchy_good technique can be faster but you need to chose the packetsize\n carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n in the sense that they can only be configured with m=2.\n \u3055\u3089\u306b\u67d4\u8edf\u6027\u306e\u9ad8\u3044\u6280\u6cd5\u306freed_sol_van\u3067\u3059\u3002k\u3068m\u3092\n\u8a2d\u5b9a\u3059\u308b\u3060\u3051\u3067\u5341\u5206\u3067\u3059\u3002\ncauchy_good\u6280\u6cd5\u306f\u3088\u308a\u9ad8\u901f\u3068\u306a\u308a\u5f97\u307e\u3059\u304c\u3001\u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba\u3092\u614e\u91cd\u306b\u9078\u629e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\nreed_sol_r6_op\u3001liberation\u3001blaum_roth\u3001liber8tion\u306f\u3059\u3079\u3066\u3001\nm=2\u3092\u4f7f\u7528\u3057\u305f\u8a2d\u5b9a\u306e\u307f\u304c\u53ef\u80fd\u3068\u3044\u3046\u610f\u5473\u3067RAID6\u3068\u540c\u7b49\u3067\u3059\u3002\n \n \n The encoding will be done on packets of bytes size at a time.\n Chosing the right packet size is difficult.\n The jerasure documentation contains extensive information on this topic.\n \u30a8\u30f3\u30b3\u30fc\u30c9\u306f\u30d0\u30a4\u30c8\u30b5\u30a4\u30ba\u306e\u30d1\u30b1\u30c3\u30c8\u7fa4\u306b\u5bfe\u3057\u3066\u540c\u6642\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\n\u9069\u5207\u306a\u30d1\u30b1\u30c3\u30c8\u30b5\u30a4\u30ba\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u306f\u56f0\u96e3\u3067\u3059\u3002\njerasure\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u306f\u3053\u306e\u30c8\u30d4\u30c3\u30af\u306b\u95a2\u3059\u308b\u8a73\u7d30\u306a\u60c5\u5831\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n With the jerasure plugin, when an erasure coded object is stored on\n multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n from the eleven others to repair.\n\n The lrc erasure code plugin creates local parity chunks to be able to recover using\n less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n recovered with only four OSDs instead of eleven.\n jerasure\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u5316\u6e08\u307f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u8907\u6570\u306eOSD\u306b\u4fdd\u7ba1\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\n1\u3064\u306eOSD\u306e\u55aa\u5931\u304b\u3089\u56de\u5fa9\u3059\u308b\u306b\u306f\u3001\u4ed6\u306e\u3059\u3079\u3066\u306eOSD\u304b\u3089\u306e\u8aad\u307f\u53d6\u308a\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001k=8\u304a\u3088\u3073m=4\u3092\u4f7f\u7528\u3057\u3066jerasure\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u30011\u3064\u306eOSD\u304c\u5931\u308f\u308c\u305f\u5834\u5408\u3001\n\u4fee\u5fa9\u306e\u305f\u3081\u306b\u306f\u4ed6\u306e11\u500b\u306eOSD\u304b\u3089\u306e\u8aad\u307f\u53d6\u308a\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\n\nlrc\u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u3001\u3053\u308c\u3088\u308a\u5c11\u306a\u3044OSD\u3092\u4f7f\u7528\u3057\u305f\u56de\u5fa9\u3092\u53ef\u80fd\u306b\u3059\u308b\u305f\u3081\u306b\u3001\n\u30ed\u30fc\u30ab\u30eb\u30d1\u30ea\u30c6\u30a3\u30c1\u30e3\u30f3\u30af\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001lrc\u304ck=8\u3001m=4\u3001\u304a\u3088\u3073l=4\u3092\u4f7f\u7528\u3057\u3066\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\nlrc\u306f\u30014\u3064\u306eOSD\u3054\u3068\u306b1\u3064\u306e\u8ffd\u52a0\u30d1\u30ea\u30c6\u30a3\u30c1\u30e3\u30f3\u30af\u3092\u4f5c\u6210\u3057\u307e\u3059\u30021\u3064\u306eOSD\u304c\u5931\u308f\u308c\u305f\u5834\u5408\u306f\u3001\n11\u500b\u306e\u4ee3\u308f\u308a\u306b4\u3064\u306eOSD\u306e\u307f\u3092\u4f7f\u7528\u3057\u3066\u305d\u306eOSD\u3092\u56de\u5fa9\u3067\u304d\u307e\u3059\u3002\n \n \n Group the coding and data chunks into sets of size locality. For instance,\n for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n be recovered without reading chunks from another set.\n \u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30c1\u30e3\u30f3\u30af\u3068\u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af\u3092\u30b5\u30a4\u30ba\u5730\u57df\u306e\u8907\u6570\u30bb\u30c3\u30c8\u306b\u30b0\u30eb\u30fc\u30d7\u5206\u3051\u3057\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001k=4\u304a\u3088\u3073m=2\u306e\u5834\u5408\u306b\u3001\uff3b\u5730\u57df\uff3d=3\u306e\u5834\u5408\u306f\u30013\u3064\u306e\u30c1\u30e3\u30f3\u30af\u304b\u3089\u306a\u308b\u30b0\u30eb\u30fc\u30d7\u304c2\u3064\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002\n\u5404\u30bb\u30c3\u30c8\u306f\u3001\u5225\u306e\u30bb\u30c3\u30c8\u304b\u3089\u30c1\u30e3\u30f3\u30af\u3092\u8aad\u307f\u53d6\u308b\u3053\u3068\u306a\u304f\u56de\u5fa9\u3067\u304d\u307e\u3059\u3002\n \n \n The type of the crush bucket in which each set of chunks defined\n by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n placed in a different rack. It is used to create a CRUSH rule step such as step choose\n rack. If it is not set, no such grouping is done.\n 1\u306b\u3088\u3063\u3066\u5b9a\u7fa9\u3055\u308c\u305f\u30c1\u30e3\u30f3\u30af\u306e\u5404\u30bb\u30c3\u30c8\u304c\u4fdd\u7ba1\u3055\u308c\u308bCrush\u30d0\u30b1\u30c3\u30c8\u306e\u30bf\u30a4\u30d7\u3002\n\u305f\u3068\u3048\u3070\u3001\u3053\u306e\u30d0\u30b1\u30c3\u30c8\u30bf\u30a4\u30d7\u304c\u30e9\u30c3\u30af\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u30011\u306e\u30c1\u30e3\u30f3\u30af\u306e\u5404\u30b0\u30eb\u30fc\u30d7\u306f\u7570\u306a\u308b\u30e9\u30c3\u30af\u306b\u914d\u7f6e\u3055\u308c\u307e\u3059\u3002\n\u3053\u306e\u30d0\u30b1\u30c3\u30c8\u30bf\u30a4\u30d7\u3092\u4f7f\u7528\u3057\u3066\u3001\u300c\u30e9\u30c3\u30af\u306e\u9078\u629e\u300d\u30b9\u30c6\u30c3\u30d7\u306a\u3069\u306eCRUSH\u30eb\u30fc\u30eb\u30b9\u30c6\u30c3\u30d7\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002\n\u3053\u306e\u30d0\u30b1\u30c3\u30c8\u30bf\u30a4\u30d7\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u30b0\u30eb\u30fc\u30d7\u5206\u3051\u306f\u884c\u308f\u308c\u307e\u305b\u3093\u3002\n \n \n The isa plugin encapsulates the ISA library. It only runs on Intel processors.\n isa\u30d7\u30e9\u30b0\u30a4\u30f3\u306fISA\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u307e\u3059\u3002\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306fIntel\u30d7\u30ed\u30bb\u30c3\u30b5\u4e0a\u306e\u307f\u3067\u52d5\u4f5c\u3057\u307e\u3059\u3002\n \n \n The ISA plugin comes in two Reed Solomon forms.\n If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.\n ISA\u30d7\u30e9\u30b0\u30a4\u30f3\u306f2\u3064\u306e\u30ea\u30fc\u30c9\u30bd\u30ed\u30e2\u30f3\u5f62\u5f0f\u3067\u63d0\u4f9b\u3055\u308c\u3066\u3044\u307e\u3059\u3002reed_sol_van\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001Vandermonde\u3067\u3042\u308a\u3001cauchy\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001Cauchy\u3067\u3059\u3002\n \n \n The shec plugin encapsulates the multiple SHEC library.\n It allows ceph to recover data more efficiently than Reed Solomon codes.\n shec\u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u8907\u6570\u306eSHEC\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u307e\u3059\u3002\n\u3053\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001ceph\u306f\u30ea\u30fc\u30c9\u30bd\u30ed\u30e2\u30f3\u30b3\u30fc\u30c9\u3088\u308a\u52b9\u7387\u7684\u306b\u30c7\u30fc\u30bf\u3092\u56de\u5fa9\u3067\u304d\u307e\u3059\u3002\n \n \n The number of parity chunks each of which includes each data chunk in its\n calculation range. The number is used as a durability estimator. For instance, if c=2,\n 2 OSDs can be down without losing data.\n \u305d\u308c\u305e\u308c\u304c\u5404\u30c7\u30fc\u30bf\u30c1\u30e3\u30f3\u30af\u3092\u5404\u81ea\u306e\u8a08\u7b97\u7bc4\u56f2\u5185\u306b\u542b\u3093\u3067\u3044\u308b\u30d1\u30ea\u30c6\u30a3\u30c1\u30e3\u30f3\u30af\u306e\u6570\u3002\n\u3053\u306e\u6570\u306f\u3001\u8010\u4e45\u6027\u63a8\u5b9a\u5b50\u3068\u3057\u3066\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001c=2\u306e\u5834\u5408\u306f\u3001\u30c7\u30fc\u30bf\u3092\u5931\u3046\u3053\u3068\u306a\u304f2\u3064\u306eOSD\u304c\u30c0\u30a6\u30f3\u72b6\u614b\u306b\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\n \n \n The name of the crush bucket used for the first step of the CRUSH rule.\n For instance step take default.\n CRUSH\u30eb\u30fc\u30eb\u306e\u6700\u521d\u306e\u30b9\u30c6\u30c3\u30d7(\u300c\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u4f7f\u7528\u300d\u30b9\u30c6\u30c3\u30d7\u306a\u3069)\u7528\u306b\n\u4f7f\u7528\u3055\u308c\u308bCrush\u30d0\u30b1\u30c3\u30c8\u306e\u540d\u524d\u3002\n \n \n Ensure that no two chunks are in a bucket with the same failure\n domain. For instance, if the failure domain is host no two chunks will be stored on the same\n host. It is used to create a CRUSH rule step such as step chooseleaf host.\n \u540c\u3058\u969c\u5bb3\u30c9\u30e1\u30a4\u30f3\u306e\u5358\u4e00\u30d0\u30b1\u30c3\u30c8\u5185\u306b2\u3064\u306e\u30c1\u30e3\u30f3\u30af\u304c\u914d\u7f6e\u3055\u308c\u308b\u3053\u3068\u3092\u9632\u6b62\u3057\u307e\u3059\u3002\n\u305f\u3068\u3048\u3070\u3001\u969c\u5bb3\u30c9\u30e1\u30a4\u30f3\u304c\u30db\u30b9\u30c8\u3067\u3042\u308b\u5834\u5408\u306f\u30012\u3064\u306e\u30c1\u30e3\u30f3\u30af\u304c\u540c\u3058\u30db\u30b9\u30c8\u306b\u4fdd\u7ba1\u3055\u308c\u308b\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n\u3053\u308c\u3092\u4f7f\u7528\u3057\u3066\u3001\u300c\u30ea\u30fc\u30d5\u30db\u30b9\u30c8\u306e\u9078\u629e\u300d\u30b9\u30c6\u30c3\u30d7\u306a\u3069\u306eCRUSH\u30eb\u30fc\u30eb\u30b9\u30c6\u30c3\u30d7\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002\n \n \n Restrict placement to devices of a specific class\n (e.g., ssd or hdd), using the crush device class names in the CRUSH map.\n CRUSH\u30de\u30c3\u30d7\u5185\u3067Crush\u30c7\u30d0\u30a4\u30b9\u30af\u30e9\u30b9\u540d\u3092\u4f7f\u7528\u3057\u3066\u3001\u914d\u7f6e\u5148\u3092\u7279\u5b9a\u30af\u30e9\u30b9(ssd\u3084hdd\u306a\u3069)\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u307f\u306b\u5236\u9650\u3057\u307e\u3059\u3002\n \n \n Set the directory name from which the erasure code plugin is loaded.\n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u8aad\u307f\u8fbc\u307f\u5143\u3068\u306a\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u540d\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\n \n \n Allows all operations\n \u3059\u3079\u3066\u306e\u64cd\u4f5c\u3092\u8a31\u53ef\u3057\u307e\u3059\n \n \n Allows only operations that do not modify the server\n \u30b5\u30fc\u30d0\u306b\u5909\u66f4\u3092\u52a0\u3048\u306a\u3044\u64cd\u4f5c\u306e\u307f\u3092\u8a31\u53ef\u3057\u307e\u3059\n \n \n Does not allow read or write operations, but allows any other operation\n \u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u3092\u8a31\u53ef\u3057\u307e\u305b\u3093\u304c\u3001\u4ed6\u306e\u3059\u3079\u3066\u306e\u64cd\u4f5c\u3092\u8a31\u53ef\u3057\u307e\u3059\n \n \n Does not allow read, write, or any operation that modifies file attributes or directory content\n \u8aad\u307f\u53d6\u308a/\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u3001\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u5c5e\u6027\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5185\u5bb9\u3092\u5909\u66f4\u3059\u308b\u3069\u306e\u64cd\u4f5c\u3082\u8a31\u53ef\u3057\u307e\u305b\u3093\n \n \n Allows no access at all\n \u30a2\u30af\u30bb\u30b9\u3092\u4e00\u5207\u8a31\u53ef\u3057\u307e\u305b\u3093\n \n \n -- Select the priority --\n -- \u512a\u5148\u5ea6\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044 --\n \n \n Low\n \u4f4e\n \n \n High\n \u9ad8\n \n \n Last 5 minutes\n \u76f4\u524d\u306e5\u5206\u9593\n \n \n Last 15 minutes\n \u76f4\u524d\u306e15\u5206\u9593\n \n \n Last 30 minutes\n \u76f4\u524d\u306e30\u5206\u9593\n \n \n Last 1 hour (Default)\n \u76f4\u524d\u306e1\u6642\u9593(\u30c7\u30d5\u30a9\u30eb\u30c8)\n \n \n Last 3 hours\n \u76f4\u524d\u306e3\u6642\u9593\n \n \n Last 6 hours\n \u76f4\u524d\u306e6\u6642\u9593\n \n \n Last 12 hours\n \u76f4\u524d\u306e12\u6642\u9593\n \n \n Last 24 hours\n \u76f4\u524d\u306e24\u6642\u9593\n \n \n Yesterday\n \u6628\u65e5\n \n \n Today\n \u672c\u65e5\n \n \n Today so far\n \u672c\u65e5\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Day before yesterday\n \u4e00\u6628\u65e5\n \n \n Last 2 days\n \u904e\u53bb2\u65e5\u9593\n \n \n This day last week\n \u5148\u9031\u306e\u540c\u3058\u66dc\u65e5\n \n \n Previous week\n \u524d\u9031\n \n \n This week\n \u4eca\u9031\n \n \n This week so far\n \u4eca\u9031\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Last 7 days\n \u904e\u53bb7\u65e5\u9593\n \n \n Previous month\n \u524d\u6708\n \n \n This month\n \u4eca\u6708\n \n \n This month so far\n \u4eca\u6708\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Last 30 days\n \u904e\u53bb30\u65e5\u9593\n \n \n Last 90 days\n \u904e\u53bb90\u65e5\u9593\n \n \n Last 6 months\n \u904e\u53bb6\u30ab\u6708\n \n \n Last 1 year\n \u904e\u53bb1\u5e74\u9593\n \n \n Previous year\n \u524d\u5e74\n \n \n This year\n \u4eca\u5e74\n \n \n This year so far\n \u4eca\u5e74\u306e\u73fe\u6642\u70b9\u307e\u3067\n \n \n Last 2 years\n \u904e\u53bb2\u5e74\u9593\n \n \n Last 5 years\n \u904e\u53bb5\u5e74\u9593\n \n \n Information\n \u60c5\u5831\n \n \n No items selected.\n \u30a2\u30a4\u30c6\u30e0\u304c\u9078\u629e\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\n \n \n Deselect item to select again\n \u30a2\u30a4\u30c6\u30e0\u3092\u9078\u629e\u89e3\u9664\u3057\u3066\u518d\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\n \n \n Selection limit reached\n \u9078\u629e\u306e\u4e0a\u9650\u306b\u9054\u3057\u307e\u3057\u305f\n \n \n Filter tags\n \u30bf\u30b0\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\n \n \n Add badge\n \u30d0\u30c3\u30b8\u306e\u8ffd\u52a0\n \n \n There are no items available.\n \u4f7f\u7528\u53ef\u80fd\u306a\u30a2\u30a4\u30c6\u30e0\u306f\u3042\u308a\u307e\u305b\u3093\u3002\n \n \n Add\n \u8ffd\u52a0\n \n \n Remove\n Remove\n \n \n Clone\n \u8907\u88fd\n \n \n Copy\n \u30b3\u30d4\u30fc\n \n \n Deep Scrub\n \u30c7\u30a3\u30fc\u30d7\u30b9\u30af\u30e9\u30d6\n \n \n Destroy\n \u7834\u68c4\n \n \n Flatten\n \u30d5\u30e9\u30c3\u30c8\u5316\n \n \n Mark Down\n \u30c0\u30a6\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Mark In\n \u30a4\u30f3\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Mark Lost\n \u55aa\u5931\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Mark Out\n \u30a2\u30a6\u30c8\u3068\u3057\u3066\u30de\u30fc\u30af\n \n \n Protect\n \u4fdd\u8b77\n \n \n Rename\n \u540d\u524d\u306e\u5909\u66f4\n \n \n Restore\n \u5fa9\u5143\n \n \n Move to Trash\n \u3054\u307f\u7bb1\u306b\u79fb\u52d5\u3059\u308b\n \n \n Unprotect\n \u4fdd\u8b77\u89e3\u9664\n \n \n Recreate\n Recreate\n \n \n Expire\n Expire\n \n \n Deleted\n \u524a\u9664\u6e08\u307f\n \n \n Added\n Added\n \n \n Removed\n Removed\n \n \n Edited\n Edited\n \n \n Canceled\n Canceled\n \n \n Cloned\n \u8907\u88fd\u6e08\u307f\n \n \n Copied\n \u30b3\u30d4\u30fc\u6e08\u307f\n \n \n Showed\n Showed\n \n \n Moved to Trash\n Moved to Trash\n \n \n Unprotected\n Unprotected\n \n \n Recreated\n Recreated\n \n \n Expired\n Expired\n \n \n Yes\n \u306f\u3044\n \n \n No\n \u3044\u3044\u3048\n \n \n Your matcher seems to match no currently defined rule or active alert.\n Your matcher seems to match no currently defined rule or active alert.\n \n \n no active alerts\n no active alerts\n \n \n 1 active alert\n 1 active alert\n \n \n \n active alerts\n \n \n active alerts\n \n \n \n Matches 1 rule\n Matches 1 rule\n \n \n Matches \n rules\n \n Matches \n rules\n \n \n \n \n with \n .\n \n \n with \n .\n \n \n \n Quality of Service\n \u30b5\u30fc\u30d3\u30b9\u54c1\u8cea\n \n \n BPS Limit\n BPS\u5236\u9650\n \n \n The desired limit of IO bytes per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u5165\u51fa\u529b\u30d0\u30a4\u30c8\u6570\u306e\u4e0a\u9650\u3002\n \n \n IOPS Limit\n IOPS\u5236\u9650\n \n \n The desired limit of IO operations per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u5165\u51fa\u529b\u64cd\u4f5c\u6570\u306e\u4e0a\u9650\u3002\n \n \n Read BPS Limit\n \u8aad\u307f\u53d6\u308aBPS\u5236\u9650\n \n \n The desired limit of read bytes per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\u306e\u4e0a\u9650\u3002\n \n \n Read IOPS Limit\n \u8aad\u307f\u53d6\u308aIOPS\u5236\u9650\n \n \n The desired limit of read operations per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\u306e\u4e0a\u9650\u3002\n \n \n Write BPS Limit\n \u66f8\u304d\u8fbc\u307fBPS\u5236\u9650\n \n \n The desired limit of write bytes per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\u306e\u4e0a\u9650\u3002\n \n \n Write IOPS Limit\n \u66f8\u304d\u8fbc\u307fIOPS\u5236\u9650\n \n \n The desired limit of write operations per second.\n \u5e0c\u671b\u3059\u308b\u79d2\u3042\u305f\u308a\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\u306e\u4e0a\u9650\u3002\n \n \n BPS Burst\n BPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of IO bytes.\n \u5e0c\u671b\u3059\u308b\u5165\u51fa\u529b\u30d0\u30a4\u30c8\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n IOPS Burst\n IOPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of IO operations.\n \u5e0c\u671b\u3059\u308b\u5165\u51fa\u529b\u64cd\u4f5c\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Read BPS Burst\n \u8aad\u307f\u53d6\u308aBPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of read bytes.\n \u5e0c\u671b\u3059\u308b\u8aad\u307f\u53d6\u308a\u30d0\u30a4\u30c8\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Read IOPS Burst\n \u8aad\u307f\u53d6\u308aIOPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of read operations.\n \u5e0c\u671b\u3059\u308b\u8aad\u307f\u53d6\u308a\u64cd\u4f5c\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Write BPS Burst\n \u66f8\u304d\u8fbc\u307fBPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of write bytes.\n \u5e0c\u671b\u3059\u308b\u66f8\u304d\u8fbc\u307f\u30d0\u30a4\u30c8\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Write IOPS Burst\n \u66f8\u304d\u8fbc\u307fIOPS\u30d0\u30fc\u30b9\u30c8\n \n \n The desired burst limit of write operations.\n \u5e0c\u671b\u3059\u308b\u66f8\u304d\u8fbc\u307f\u64cd\u4f5c\u6570\u306e\u30d0\u30fc\u30b9\u30c8\u4e0a\u9650\u3002\n \n \n Failed to \n \n \n \n \n \n \u3092\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\n \n \n \n Executing\n \u5b9f\u884c\u4e2d\n \n \n execute\n \u5b9f\u884c\n \n \n Executed\n \u5b9f\u884c\u6e08\u307f\n \n \n unknown task\n \u4e0d\u660e\u306a\u30bf\u30b9\u30af\n \n \n Creating\n \u4f5c\u6210\u4e2d\n \n \n create\n \u4f5c\u6210\n \n \n Updating\n \u66f4\u65b0\u4e2d\n \n \n update\n \u66f4\u65b0\n \n \n Deleting\n \u524a\u9664\u4e2d\n \n \n delete\n \u524a\u9664\n \n \n RBD \'\n \'\n \n RBD\u300c\n \u300d\n \n \n \n RBD snapshot \'\n \'\n \n RBD\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u300c\n \u300d\n \n \n \n mirror mode for pool \'\n \'\n \n \u30d7\u30fc\u30eb\u300c\n \u300d\u306e\u30df\u30e9\u30fc\u30e2\u30fc\u30c9\n \n \n \n mirror peer for pool \'\n \'\n \n \u30d7\u30fc\u30eb\u300c\n \u300d\u306e\u30df\u30e9\u30fc\u30d4\u30a2\n \n \n \n all dashboards\n all dashboards\n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n \n contains snapshots.\n \n \n \u306b\u306f\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Cloning\n \u8907\u88fd\u4e2d\n \n \n clone\n \u8907\u88fd\n \n \n Snapshot of \n must be protected.\n \n \n \u306e\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306f\u4fdd\u8b77\u3055\u308c\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n \n \n \n Copying\n \u30b3\u30d4\u30fc\u4e2d\n \n \n copy\n \u30b3\u30d4\u30fc\n \n \n Flattening\n \u30d5\u30e9\u30c3\u30c8\u5316\u4e2d\n \n \n flatten\n \u30d5\u30e9\u30c3\u30c8\u5316\n \n \n Flattened\n \u30d5\u30e9\u30c3\u30c8\u5316\u6e08\u307f\n \n \n Name is already used by \n .\n \n \u3053\u306e\u540d\u524d\u306f\n \u306b\u3088\u3063\u3066\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n Cannot unprotect \n because it contains child images.\n \n \n \u306f\u5b50\u30a4\u30e1\u30fc\u30b8\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u4fdd\u8b77\u89e3\u9664\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Cannot delete \n because it\'s protected.\n \n \n \u306f\u4fdd\u8b77\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u524a\u9664\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n \n Rolling back\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u4e2d\n \n \n rollback\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\n \n \n Rolled back\n \u30ed\u30fc\u30eb\u30d0\u30c3\u30af\u6e08\u307f\n \n \n Moving\n \u79fb\u52d5\u4e2d\n \n \n move\n \u79fb\u52d5\n \n \n Moved\n \u79fb\u52d5\u6e08\u307f\n \n \n image \'\n \' to trash\n \n \u30a4\u30e1\u30fc\u30b8\u300c\n \u300d\u3092\u3054\u307f\u7bb1\u306b\n \n \n \n Could not find image.\n \u30a4\u30e1\u30fc\u30b8\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n \n \n Restoring\n \u5fa9\u5143\u4e2d\n \n \n restore\n \u5fa9\u5143\n \n \n Restored\n \u5fa9\u5143\u6e08\u307f\n \n \n image \'\n \' into \'\n \'\n \n \u30a4\u30e1\u30fc\u30b8\u300c\n \u300d\u3092\u300c\n \u300d\u306b\n \n \n \n Image name \'\n \' is already in use.\n \n \u30a4\u30e1\u30fc\u30b8\u540d\u300c\n \u300d\u306f\u3059\u3067\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\n \n \n \n image \'\n \'\n \n \u30a4\u30e1\u30fc\u30b8\u300c\n \u300d\n \n \n \n Purging\n \u6d88\u53bb\u4e2d\n \n \n purge\n \u6d88\u53bb\n \n \n Purged\n \u6d88\u53bb\u6e08\u307f\n \n \n all pools\n \u3059\u3079\u3066\u306e\u30d7\u30fc\u30eb\n \n \n images from \n \n \n \n \u304b\u3089\u306e\u30a4\u30e1\u30fc\u30b8\n \n \n \n Cannot disable mirroring because it contains a peer.\n \u30d4\u30a2\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u30df\u30e9\u30fc\u30ea\u30f3\u30b0\u3092\u7121\u52b9\u5316\u3067\u304d\u307e\u305b\u3093\u3002\n \n \n pool \'\n \'\n \n \u30d7\u30fc\u30eb\u300c\n \u300d\n \n \n \n erasure code profile \'\n \'\n \n \u30a4\u30ec\u30a4\u30b8\u30e3\u30b3\u30fc\u30c9\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u300c\n \u300d\n \n \n \n target \'\n \'\n \n \u30bf\u30fc\u30b2\u30c3\u30c8\u300c\n \u300d\n \n \n \n NFS \n \n \n NFS \n \n \n \n \n \n'},wbK0:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("dEwP");function r(){for(var t=[],e=0;e>>0,a=0;a0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}var z=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Y={},V={};function H(t,e,n,a){var r=a;"string"==typeof a&&(r=function(){return this[a]()}),t&&(V[t]=r),e&&(V[e[0]]=function(){return F(r.apply(this,arguments),e[1],e[2])}),n&&(V[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function B(t,e){return t.isValid()?(e=U(e,t.localeData()),Y[e]=Y[e]||function(t){var e,n,a,r=t.match(z);for(e=0,n=r.length;e=0&&G.test(t);)t=t.replace(G,a),G.lastIndex=0,n-=1;return t}var W=/\d/,K=/\d\d/,$=/\d{3}/,Z=/\d{4}/,X=/[+-]?\d{6}/,J=/\d\d?/,Q=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,at=/[+-]?\d{1,6}/,rt=/\d+/,it=/[+-]?\d+/,st=/Z|[+-]\d\d:?\d\d/gi,ot=/Z|[+-]\d\d(?::?\d\d)?/gi,ut=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ct={};function lt(t,e,n){ct[t]=R(e)?e:function(t,a){return t&&n?n:e}}function dt(t,e){return d(ct,t)?ct[t](e._strict,e._locale):new RegExp(ft(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,a,r){return e||n||a||r})))}function ft(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var pt={};function ht(t,e){var n,a=e;for("string"==typeof t&&(t=[t]),u(e)&&(a=function(t,n){n[e]=w(t)}),n=0;n68?1900:2e3)};var kt,Nt=Rt("FullYear",!0);function Rt(t,e){return function(n){return null!=n?(Dt(this,t,n),r.updateOffset(this,e),this):At(this,t)}}function At(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Dt(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&Ct(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),Et(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function Et(t,e){if(isNaN(t)||isNaN(e))return NaN;var n=(e%12+12)%12;return t+=(e-n)/12,1===n?Ct(t)?29:28:31-n%7%2}kt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e=0){var n=Array.prototype.slice.call(arguments);n[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Vt(t,e,n){var a=7+e-n;return-(7+Yt(t,0,a).getUTCDay()-e)%7+a-1}function Ht(t,e,n,a,r){var i,s,o=1+7*(e-1)+(7+n-a)%7+Vt(t,a,r);return o<=0?s=It(i=t-1)+o:o>It(t)?(i=t+1,s=o-It(t)):(i=t,s=o),{year:i,dayOfYear:s}}function Bt(t,e,n){var a,r,i=Vt(t.year(),e,n),s=Math.floor((t.dayOfYear()-i-1)/7)+1;return s<1?a=s+Ut(r=t.year()-1,e,n):s>Ut(t.year(),e,n)?(a=s-Ut(t.year(),e,n),r=t.year()+1):(r=t.year(),a=s),{week:a,year:r}}function Ut(t,e,n){var a=Vt(t,e,n),r=Vt(t+1,e,n);return(It(t)-a+r)/7}function Wt(t,e){return t.slice(e,7).concat(t.slice(0,e))}H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),j("week",5),j("isoWeek",5),lt("w",J),lt("ww",J,K),lt("W",J),lt("WW",J,K),gt(["w","ww","W","WW"],function(t,e,n,a){e[a.substr(0,1)]=w(t)}),H("d",0,"do","day"),H("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),H("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),H("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),lt("d",J),lt("e",J),lt("E",J),lt("dd",function(t,e){return e.weekdaysMinRegex(t)}),lt("ddd",function(t,e){return e.weekdaysShortRegex(t)}),lt("dddd",function(t,e){return e.weekdaysRegex(t)}),gt(["dd","ddd","dddd"],function(t,e,n,a){var r=n._locale.weekdaysParse(t,a,n._strict);null!=r?e.d=r:h(n).invalidWeekday=t}),gt(["d","e","E"],function(t,e,n,a){e[a]=w(t)});var Kt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),$t="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Zt="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Xt=ut,Jt=ut,Qt=ut;function te(){function t(t,e){return e.length-t.length}var e,n,a,r,i,s=[],o=[],u=[],c=[];for(e=0;e<7;e++)n=p([2e3,1]).day(e),a=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),i=this.weekdays(n,""),s.push(a),o.push(r),u.push(i),c.push(a),c.push(r),c.push(i);for(s.sort(t),o.sort(t),u.sort(t),c.sort(t),e=0;e<7;e++)o[e]=ft(o[e]),u[e]=ft(u[e]),c[e]=ft(c[e]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function ee(){return this.hours()%12||12}function ne(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function ae(t,e){return e._meridiemParse}H("H",["HH",2],0,"hour"),H("h",["hh",2],0,ee),H("k",["kk",2],0,function(){return this.hours()||24}),H("hmm",0,0,function(){return""+ee.apply(this)+F(this.minutes(),2)}),H("hmmss",0,0,function(){return""+ee.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)}),H("Hmm",0,0,function(){return""+this.hours()+F(this.minutes(),2)}),H("Hmmss",0,0,function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)}),ne("a",!0),ne("A",!1),L("hour","h"),j("hour",13),lt("a",ae),lt("A",ae),lt("H",J),lt("h",J),lt("k",J),lt("HH",J,K),lt("hh",J,K),lt("kk",J,K),lt("hmm",Q),lt("hmmss",tt),lt("Hmm",Q),lt("Hmmss",tt),ht(["H","HH"],_t),ht(["k","kk"],function(t,e,n){var a=w(t);e[_t]=24===a?0:a}),ht(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),ht(["h","hh"],function(t,e,n){e[_t]=w(t),h(n).bigHour=!0}),ht("hmm",function(t,e,n){var a=t.length-2;e[_t]=w(t.substr(0,a)),e[xt]=w(t.substr(a)),h(n).bigHour=!0}),ht("hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[_t]=w(t.substr(0,a)),e[xt]=w(t.substr(a,2)),e[Tt]=w(t.substr(r)),h(n).bigHour=!0}),ht("Hmm",function(t,e,n){var a=t.length-2;e[_t]=w(t.substr(0,a)),e[xt]=w(t.substr(a))}),ht("Hmmss",function(t,e,n){var a=t.length-4,r=t.length-2;e[_t]=w(t.substr(0,a)),e[xt]=w(t.substr(a,2)),e[Tt]=w(t.substr(r))});var re,ie=Rt("Hours",!0),se={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Pt,monthsShort:Mt,week:{dow:0,doy:6},weekdays:Kt,weekdaysMin:Zt,weekdaysShort:$t,meridiemParse:/[ap]\.?m?\.?/i},oe={},ue={};function ce(t){return t?t.toLowerCase().replace("_","-"):t}function le(e){var a=null;if(!oe[e]&&void 0!==t&&t&&t.exports)try{a=re._abbr,n("RnhZ")("./"+e),de(a)}catch(r){}return oe[e]}function de(t,e){var n;return t&&((n=o(e)?pe(t):fe(t,e))?re=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),re._abbr}function fe(t,e){if(null!==e){var n,a=se;if(e.abbr=t,null!=oe[t])N("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),a=oe[t]._config;else if(null!=e.parentLocale)if(null!=oe[e.parentLocale])a=oe[e.parentLocale]._config;else{if(null==(n=le(e.parentLocale)))return ue[e.parentLocale]||(ue[e.parentLocale]=[]),ue[e.parentLocale].push({name:t,config:e}),null;a=n._config}return oe[t]=new D(A(a,e)),ue[t]&&ue[t].forEach(function(t){fe(t.name,t.config)}),de(t),oe[t]}return delete oe[t],null}function pe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return re;if(!i(t)){if(e=le(t))return e;t=[t]}return function(t){for(var e,n,a,r,i=0;i0;){if(a=le(r.slice(0,e).join("-")))return a;if(n&&n.length>=e&&S(r,n,!0)>=e-1)break;e--}i++}return re}(t)}function he(t){var e,n=t._a;return n&&-2===h(t).overflow&&(e=n[yt]<0||n[yt]>11?yt:n[vt]<1||n[vt]>Et(n[mt],n[yt])?vt:n[_t]<0||n[_t]>24||24===n[_t]&&(0!==n[xt]||0!==n[Tt]||0!==n[wt])?_t:n[xt]<0||n[xt]>59?xt:n[Tt]<0||n[Tt]>59?Tt:n[wt]<0||n[wt]>999?wt:-1,h(t)._overflowDayOfYear&&(evt)&&(e=vt),h(t)._overflowWeeks&&-1===e&&(e=St),h(t)._overflowWeekday&&-1===e&&(e=Ot),h(t).overflow=e),t}function ge(t,e,n){return null!=t?t:null!=e?e:n}function be(t){var e,n,a,i,s,o=[];if(!t._d){for(a=function(t){var e=new Date(r.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[vt]&&null==t._a[yt]&&function(t){var e,n,a,r,i,s,o,u;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)i=1,s=4,n=ge(e.GG,t._a[mt],Bt(Ae(),1,4).year),a=ge(e.W,1),((r=ge(e.E,1))<1||r>7)&&(u=!0);else{i=t._locale._week.dow,s=t._locale._week.doy;var c=Bt(Ae(),i,s);n=ge(e.gg,t._a[mt],c.year),a=ge(e.w,c.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(u=!0)):r=i}a<1||a>Ut(n,i,s)?h(t)._overflowWeeks=!0:null!=u?h(t)._overflowWeekday=!0:(o=Ht(n,a,r,i,s),t._a[mt]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(s=ge(t._a[mt],a[mt]),(t._dayOfYear>It(s)||0===t._dayOfYear)&&(h(t)._overflowDayOfYear=!0),n=Yt(s,0,t._dayOfYear),t._a[yt]=n.getUTCMonth(),t._a[vt]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=a[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[_t]&&0===t._a[xt]&&0===t._a[Tt]&&0===t._a[wt]&&(t._nextDay=!0,t._a[_t]=0),t._d=(t._useUTC?Yt:function(t,e,n,a,r,i,s){var o;return t<100&&t>=0?(o=new Date(t+400,e,n,a,r,i,s),isFinite(o.getFullYear())&&o.setFullYear(t)):o=new Date(t,e,n,a,r,i,s),o}).apply(null,o),i=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[_t]=24),t._w&&void 0!==t._w.d&&t._w.d!==i&&(h(t).weekdayMismatch=!0)}}var me=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ye=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ve=/Z|[+-]\d\d(?::?\d\d)?/,_e=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],xe=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Te=/^\/?Date\((\-?\d+)/i;function we(t){var e,n,a,r,i,s,o=t._i,u=me.exec(o)||ye.exec(o);if(u){for(h(t).iso=!0,e=0,n=_e.length;e0&&h(t).unusedInput.push(s),o=o.slice(o.indexOf(n)+n.length),c+=n.length),V[i]?(n?h(t).empty=!1:h(t).unusedTokens.push(i),bt(i,n,t)):t._strict&&!n&&h(t).unusedTokens.push(i);h(t).charsLeftOver=u-c,o.length>0&&h(t).unusedInput.push(o),t._a[_t]<=12&&!0===h(t).bigHour&&t._a[_t]>0&&(h(t).bigHour=void 0),h(t).parsedDateParts=t._a.slice(0),h(t).meridiem=t._meridiem,t._a[_t]=(l=t._locale,d=t._a[_t],null==(f=t._meridiem)?d:null!=l.meridiemHour?l.meridiemHour(d,f):null!=l.isPM?((p=l.isPM(f))&&d<12&&(d+=12),p||12!==d||(d=0),d):d),be(t),he(t)}else Ce(t);else we(t);var l,d,f,p}function Ne(t){var e=t._i,n=t._f;return t._locale=t._locale||pe(t._l),null===e||void 0===n&&""===e?b({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),x(e)?new _(he(e)):(c(e)?t._d=e:i(n)?function(t){var e,n,a,r,i;if(0===t._f.length)return h(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis?this:t:b()});function Le(t,e){var n,a;if(1===e.length&&i(e[0])&&(e=e[0]),!e.length)return Ae();for(n=e[0],a=1;a=0?new Date(t+400,e,n)-rn:new Date(t,e,n).valueOf()}function un(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-rn:Date.UTC(t,e,n)}function cn(t,e){H(0,[t,t.length],0,e)}function ln(t,e,n,a,r){var i;return null==t?Bt(this,a,r).year:(e>(i=Ut(t,a,r))&&(e=i),(function(t,e,n,a,r){var i=Ht(t,e,n,a,r),s=Yt(i.year,0,i.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}).call(this,t,e,n,a,r))}H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),cn("gggg","weekYear"),cn("ggggg","weekYear"),cn("GGGG","isoWeekYear"),cn("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),j("weekYear",1),j("isoWeekYear",1),lt("G",it),lt("g",it),lt("GG",J,K),lt("gg",J,K),lt("GGGG",nt,Z),lt("gggg",nt,Z),lt("GGGGG",at,X),lt("ggggg",at,X),gt(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,a){e[a.substr(0,2)]=w(t)}),gt(["gg","GG"],function(t,e,n,a){e[a]=r.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),L("quarter","Q"),j("quarter",7),lt("Q",W),ht("Q",function(t,e){e[yt]=3*(w(t)-1)}),H("D",["DD",2],"Do","date"),L("date","D"),j("date",9),lt("D",J),lt("DD",J,K),lt("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),ht(["D","DD"],vt),ht("Do",function(t,e){e[vt]=w(t.match(J)[0])});var dn=Rt("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),j("dayOfYear",4),lt("DDD",et),lt("DDDD",$),ht(["DDD","DDDD"],function(t,e,n){n._dayOfYear=w(t)}),H("m",["mm",2],0,"minute"),L("minute","m"),j("minute",14),lt("m",J),lt("mm",J,K),ht(["m","mm"],xt);var fn=Rt("Minutes",!1);H("s",["ss",2],0,"second"),L("second","s"),j("second",15),lt("s",J),lt("ss",J,K),ht(["s","ss"],Tt);var pn,hn=Rt("Seconds",!1);for(H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),j("millisecond",16),lt("S",et,W),lt("SS",et,K),lt("SSS",et,$),pn="SSSS";pn.length<=9;pn+="S")lt(pn,rt);function gn(t,e){e[wt]=w(1e3*("0."+t))}for(pn="S";pn.length<=9;pn+="S")ht(pn,gn);var bn=Rt("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var mn=_.prototype;function yn(t){return t}mn.add=Je,mn.calendar=function(t,e){var n=t||Ae(),a=Ye(n,this).startOf("day"),i=r.calendarFormat(this,a)||"sameElse",s=e&&(R(e[i])?e[i].call(this,n):e[i]);return this.format(s||this.localeData().calendar(i,this,Ae(n)))},mn.clone=function(){return new _(this)},mn.diff=function(t,e,n){var a,r,i;if(!this.isValid())return NaN;if(!(a=Ye(t,this)).isValid())return NaN;switch(r=6e4*(a.utcOffset()-this.utcOffset()),e=P(e)){case"year":i=tn(this,a)/12;break;case"month":i=tn(this,a);break;case"quarter":i=tn(this,a)/3;break;case"second":i=(this-a)/1e3;break;case"minute":i=(this-a)/6e4;break;case"hour":i=(this-a)/36e5;break;case"day":i=(this-a-r)/864e5;break;case"week":i=(this-a-r)/6048e5;break;default:i=this-a}return n?i:T(i)},mn.endOf=function(t){var e;if(void 0===(t=P(t))||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?un:on;switch(t){case"year":e=n(this.year()+1,0,1)-1;break;case"quarter":e=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=n(this.year(),this.month()+1,1)-1;break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-sn(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-sn(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-sn(e,1e3)-1}return this._d.setTime(e),r.updateOffset(this,!0),this},mn.format=function(t){t||(t=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var e=B(this,t);return this.localeData().postformat(e)},mn.from=function(t,e){return this.isValid()&&(x(t)&&t.isValid()||Ae(t).isValid())?We({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},mn.fromNow=function(t){return this.from(Ae(),t)},mn.to=function(t,e){return this.isValid()&&(x(t)&&t.isValid()||Ae(t).isValid())?We({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},mn.toNow=function(t){return this.to(Ae(),t)},mn.get=function(t){return R(this[t=P(t)])?this[t]():this},mn.invalidAt=function(){return h(this).overflow},mn.isAfter=function(t,e){var n=x(t)?t:Ae(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=P(e)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?B(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):R(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",B(n,"Z")):B(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},mn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',a=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(n+a+"-MM-DD[T]HH:mm:ss.SSS"+e+'[")]')},mn.toJSON=function(){return this.isValid()?this.toISOString():null},mn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},mn.unix=function(){return Math.floor(this.valueOf()/1e3)},mn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mn.year=Nt,mn.isLeapYear=function(){return Ct(this.year())},mn.weekYear=function(t){return ln.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},mn.isoWeekYear=function(t){return ln.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},mn.quarter=mn.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},mn.month=jt,mn.daysInMonth=function(){return Et(this.year(),this.month())},mn.week=mn.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},mn.isoWeek=mn.isoWeeks=function(t){var e=Bt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},mn.weeksInYear=function(){var t=this.localeData()._week;return Ut(this.year(),t.dow,t.doy)},mn.isoWeeksInYear=function(){return Ut(this.year(),1,4)},mn.date=dn,mn.day=mn.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},mn.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},mn.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},mn.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},mn.hour=mn.hours=ie,mn.minute=mn.minutes=fn,mn.second=mn.seconds=hn,mn.millisecond=mn.milliseconds=bn,mn.utcOffset=function(t,e,n){var a,i=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ge(ot,t)))return this}else Math.abs(t)<16&&!n&&(t*=60);return!this._isUTC&&e&&(a=Ve(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),i!==t&&(!e||this._changeInProgress?Xe(this,We(t-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,r.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Ve(this)},mn.utc=function(t){return this.utcOffset(0,t)},mn.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ve(this),"m")),this},mn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ge(st,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},mn.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Ae(t).utcOffset():0,(this.utcOffset()-t)%60==0)},mn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mn.isLocal=function(){return!!this.isValid()&&!this._isUTC},mn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mn.isUtc=He,mn.isUTC=He,mn.zoneAbbr=function(){return this._isUTC?"UTC":""},mn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},mn.dates=I("dates accessor is deprecated. Use date instead.",dn),mn.months=I("months accessor is deprecated. Use month instead",jt),mn.years=I("years accessor is deprecated. Use year instead",Nt),mn.zone=I("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),mn.isDSTShifted=I("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(y(t,this),(t=Ne(t))._a){var e=t._isUTC?p(t._a):Ae(t._a);this._isDSTShifted=this.isValid()&&S(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var vn=D.prototype;function _n(t,e,n,a){var r=pe(),i=p().set(a,e);return r[n](i,t)}function xn(t,e,n){if(u(t)&&(e=t,t=void 0),t=t||"",null!=e)return _n(t,e,n,"month");var a,r=[];for(a=0;a<12;a++)r[a]=_n(t,a,n,"month");return r}function Tn(t,e,n,a){"boolean"==typeof t?(u(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,u(e)&&(n=e,e=void 0),e=e||"");var r,i=pe(),s=t?i._week.dow:0;if(null!=n)return _n(e,(n+s)%7,a,"day");var o=[];for(r=0;r<7;r++)o[r]=_n(e,(r+s)%7,a,"day");return o}vn.calendar=function(t,e,n){var a=this._calendar[t]||this._calendar.sameElse;return R(a)?a.call(e,n):a},vn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])},vn.invalidDate=function(){return this._invalidDate},vn.ordinal=function(t){return this._ordinal.replace("%d",t)},vn.preparse=yn,vn.postformat=yn,vn.relativeTime=function(t,e,n,a){var r=this._relativeTime[n];return R(r)?r(t,e,n,a):r.replace(/%d/i,t)},vn.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return R(n)?n(e):n.replace(/%s/i,e)},vn.set=function(t){var e,n;for(n in t)R(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},vn.months=function(t,e){return t?i(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Lt).test(e)?"format":"standalone"][t.month()]:i(this._months)?this._months:this._months.standalone},vn.monthsShort=function(t,e){return t?i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Lt.test(e)?"format":"standalone"][t.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},vn.monthsParse=function(t,e,n){var a,r,i;if(this._monthsParseExact)return(function(t,e,n){var a,r,i,s=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)i=p([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(r=kt.call(this._shortMonthsParse,s))?r:null:-1!==(r=kt.call(this._longMonthsParse,s))?r:null:"MMM"===e?-1!==(r=kt.call(this._shortMonthsParse,s))?r:-1!==(r=kt.call(this._longMonthsParse,s))?r:null:-1!==(r=kt.call(this._longMonthsParse,s))?r:-1!==(r=kt.call(this._shortMonthsParse,s))?r:null}).call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;a<12;a++){if(r=p([2e3,a]),n&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[a]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[a]||(i="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[a]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[a].test(t))return a;if(n&&"MMM"===e&&this._shortMonthsParse[a].test(t))return a;if(!n&&this._monthsParse[a].test(t))return a}},vn.monthsRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||Gt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=zt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},vn.monthsShortRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||Gt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=Ft),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},vn.week=function(t){return Bt(t,this._week.dow,this._week.doy).week},vn.firstDayOfYear=function(){return this._week.doy},vn.firstDayOfWeek=function(){return this._week.dow},vn.weekdays=function(t,e){var n=i(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Wt(n,this._week.dow):t?n[t.day()]:n},vn.weekdaysMin=function(t){return!0===t?Wt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},vn.weekdaysShort=function(t){return!0===t?Wt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},vn.weekdaysParse=function(t,e,n){var a,r,i;if(this._weekdaysParseExact)return(function(t,e,n){var a,r,i,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)i=p([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(r=kt.call(this._weekdaysParse,s))?r:null:"ddd"===e?-1!==(r=kt.call(this._shortWeekdaysParse,s))?r:null:-1!==(r=kt.call(this._minWeekdaysParse,s))?r:null:"dddd"===e?-1!==(r=kt.call(this._weekdaysParse,s))?r:-1!==(r=kt.call(this._shortWeekdaysParse,s))?r:-1!==(r=kt.call(this._minWeekdaysParse,s))?r:null:"ddd"===e?-1!==(r=kt.call(this._shortWeekdaysParse,s))?r:-1!==(r=kt.call(this._weekdaysParse,s))?r:-1!==(r=kt.call(this._minWeekdaysParse,s))?r:null:-1!==(r=kt.call(this._minWeekdaysParse,s))?r:-1!==(r=kt.call(this._weekdaysParse,s))?r:-1!==(r=kt.call(this._shortWeekdaysParse,s))?r:null}).call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(r=p([2e3,1]).day(a),n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[a]||(i="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[a]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}},vn.weekdaysRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||te.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Xt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},vn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||te.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Jt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},vn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||te.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Qt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},vn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},vn.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},de("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),r.lang=I("moment.lang is deprecated. Use moment.locale instead.",de),r.langData=I("moment.langData is deprecated. Use moment.localeData instead.",pe);var wn=Math.abs;function Sn(t,e,n,a){var r=We(e,n);return t._milliseconds+=a*r._milliseconds,t._days+=a*r._days,t._months+=a*r._months,t._bubble()}function On(t){return t<0?Math.floor(t):Math.ceil(t)}function In(t){return 4800*t/146097}function Cn(t){return 146097*t/4800}function kn(t){return function(){return this.as(t)}}var Nn=kn("ms"),Rn=kn("s"),An=kn("m"),Dn=kn("h"),En=kn("d"),Ln=kn("w"),Pn=kn("M"),Mn=kn("Q"),qn=kn("y");function jn(t){return function(){return this.isValid()?this._data[t]:NaN}}var Fn=jn("milliseconds"),zn=jn("seconds"),Gn=jn("minutes"),Yn=jn("hours"),Vn=jn("days"),Hn=jn("months"),Bn=jn("years"),Un=Math.round,Wn={ss:44,s:45,m:45,h:22,d:26,M:11},Kn=Math.abs;function $n(t){return(t>0)-(t<0)||+t}function Zn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n=Kn(this._milliseconds)/1e3,a=Kn(this._days),r=Kn(this._months);t=T(n/60),e=T(t/60),n%=60,t%=60;var i=T(r/12),s=r%=12,o=a,u=e,c=t,l=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var f=d<0?"-":"",p=$n(this._months)!==$n(d)?"-":"",h=$n(this._days)!==$n(d)?"-":"",g=$n(this._milliseconds)!==$n(d)?"-":"";return f+"P"+(i?p+i+"Y":"")+(s?p+s+"M":"")+(o?h+o+"D":"")+(u||c||l?"T":"")+(u?g+u+"H":"")+(c?g+c+"M":"")+(l?g+l+"S":"")}var Xn=Me.prototype;return Xn.isValid=function(){return this._isValid},Xn.abs=function(){var t=this._data;return this._milliseconds=wn(this._milliseconds),this._days=wn(this._days),this._months=wn(this._months),t.milliseconds=wn(t.milliseconds),t.seconds=wn(t.seconds),t.minutes=wn(t.minutes),t.hours=wn(t.hours),t.months=wn(t.months),t.years=wn(t.years),this},Xn.add=function(t,e){return Sn(this,t,e,1)},Xn.subtract=function(t,e){return Sn(this,t,e,-1)},Xn.as=function(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds;if("month"===(t=P(t))||"quarter"===t||"year"===t)switch(n=this._months+In(e=this._days+a/864e5),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(Cn(this._months)),t){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hour":return 24*e+a/36e5;case"minute":return 1440*e+a/6e4;case"second":return 86400*e+a/1e3;case"millisecond":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+t)}},Xn.asMilliseconds=Nn,Xn.asSeconds=Rn,Xn.asMinutes=An,Xn.asHours=Dn,Xn.asDays=En,Xn.asWeeks=Ln,Xn.asMonths=Pn,Xn.asQuarters=Mn,Xn.asYears=qn,Xn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN},Xn._bubble=function(){var t,e,n,a,r,i=this._milliseconds,s=this._days,o=this._months,u=this._data;return i>=0&&s>=0&&o>=0||i<=0&&s<=0&&o<=0||(i+=864e5*On(Cn(o)+s),s=0,o=0),u.milliseconds=i%1e3,t=T(i/1e3),u.seconds=t%60,e=T(t/60),u.minutes=e%60,n=T(e/60),u.hours=n%24,s+=T(n/24),o+=r=T(In(s)),s-=On(Cn(r)),a=T(o/12),o%=12,u.days=s,u.months=o,u.years=a,this},Xn.clone=function(){return We(this)},Xn.get=function(t){return t=P(t),this.isValid()?this[t+"s"]():NaN},Xn.milliseconds=Fn,Xn.seconds=zn,Xn.minutes=Gn,Xn.hours=Yn,Xn.days=Vn,Xn.weeks=function(){return T(this.days()/7)},Xn.months=Hn,Xn.years=Bn,Xn.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=function(t,e,n){var a=We(t).abs(),r=Un(a.as("s")),i=Un(a.as("m")),s=Un(a.as("h")),o=Un(a.as("d")),u=Un(a.as("M")),c=Un(a.as("y")),l=r<=Wn.ss&&["s",r]||r0,l[4]=n,(function(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}).apply(null,l)}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},Xn.toISOString=Zn,Xn.toString=Zn,Xn.toJSON=Zn,Xn.locale=en,Xn.localeData=an,Xn.toIsoString=I("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Zn),Xn.lang=nn,H("X",0,0,"unix"),H("x",0,0,"valueOf"),lt("x",it),lt("X",/[+-]?\d+(\.\d{1,3})?/),ht("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),ht("x",function(t,e,n){n._d=new Date(w(t))}),r.version="2.24.0",e=Ae,r.fn=mn,r.min=function(){return Le("isBefore",[].slice.call(arguments,0))},r.max=function(){return Le("isAfter",[].slice.call(arguments,0))},r.now=function(){return Date.now?Date.now():+new Date},r.utc=p,r.unix=function(t){return Ae(1e3*t)},r.months=function(t,e){return xn(t,e,"months")},r.isDate=c,r.locale=de,r.invalid=b,r.duration=We,r.isMoment=x,r.weekdays=function(t,e,n){return Tn(t,e,n,"weekdays")},r.parseZone=function(){return Ae.apply(null,arguments).parseZone()},r.localeData=pe,r.isDuration=qe,r.monthsShort=function(t,e){return xn(t,e,"monthsShort")},r.weekdaysMin=function(t,e,n){return Tn(t,e,n,"weekdaysMin")},r.defineLocale=fe,r.updateLocale=function(t,e){if(null!=e){var n,a,r=se;null!=(a=le(t))&&(r=a._config),(n=new D(e=A(r,e))).parentLocale=oe[t],oe[t]=n,de(t)}else null!=oe[t]&&(null!=oe[t].parentLocale?oe[t]=oe[t].parentLocale:null!=oe[t]&&delete oe[t]);return oe[t]},r.locales=function(){return C(oe)},r.weekdaysShort=function(t,e,n){return Tn(t,e,n,"weekdaysShort")},r.normalizeUnits=P,r.relativeTimeRounding=function(t){return void 0===t?Un:"function"==typeof t&&(Un=t,!0)},r.relativeTimeThreshold=function(t,e){return void 0!==Wn[t]&&(void 0===e?Wn[t]:(Wn[t]=e,"s"===t&&(Wn.ss=e-1),!0))},r.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},r.prototype=mn,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()}).call(this,n("YuTi")(t))},wnGv:function(t,e,n){"use strict";n.d(e,"a",function(){return c});var a=n("CcnG"),r=n("gIcY"),i=n("LvDl"),s=n("QFaf"),o=n("DNAf"),u=n("a96k"),c=function(){function t(t){this.i18n=t,this.data=[],this.options=[],this.messages=new o.a({},this.i18n),this.customBadges=!1,this.customBadgeValidators=[],this.selection=new a.EventEmitter,this.Object=Object,this.filteredOptions=[]}return t.prototype.ngOnInit=function(){this.initFilter(),this.data.length>0&&this.initMissingOptions(),this.options=i.sortBy(this.options,["name"]),this.updateOptions()},t.prototype.initFilter=function(){this.filter=new r.i("",{validators:this.customBadgeValidators}),this.form=new s.a({filter:this.filter}),this.filteredOptions=(this.options||[]).slice()},t.prototype.initMissingOptions=function(){var t=this,e=this.options.map(function(t){return t.name});this.data.filter(function(t){return-1===e.indexOf(t)}).forEach(function(e){return t.addOption(e)}),this.forceOptionsToReflectData()},t.prototype.addOption=function(t){this.options.push(new u.a(!1,t,"")),this.options=i.sortBy(this.options,["name"]),this.triggerSelection(this.options.find(function(e){return e.name===t}))},t.prototype.triggerSelection=function(t){!t||this.selectionLimit&&!t.selected&&this.data.length>=this.selectionLimit||(t.selected=!t.selected,this.updateOptions(),this.selection.emit({option:t}))},t.prototype.updateOptions=function(){var t=this;this.data.splice(0,this.data.length),this.options.forEach(function(e){e.selected&&t.data.push(e.name)}),this.updateFilter()},t.prototype.updateFilter=function(){var t=this;this.filteredOptions=this.options.filter(function(e){return e.name.includes(t.filter.value)})},t.prototype.forceOptionsToReflectData=function(){var t=this;this.options.forEach(function(e){-1!==t.data.indexOf(e.name)&&(e.selected=!0)})},t.prototype.ngOnChanges=function(){this.filter&&this.updateFilter(),this.options&&this.data&&0!==this.data.length&&this.forceOptionsToReflectData()},t.prototype.selectOption=function(){0===this.filteredOptions.length?this.addCustomOption():(this.triggerSelection(this.filteredOptions[0]),this.resetFilter())},t.prototype.addCustomOption=function(){this.isCreatable()&&(this.addOption(this.filter.value),this.resetFilter())},t.prototype.isCreatable=function(){var t=this;return this.customBadges&&this.filter.valid&&this.filter.value.length>0&&this.filteredOptions.every(function(e){return e.name!==t.filter.value})},t.prototype.resetFilter=function(){this.filter.setValue(""),this.updateFilter()},t.prototype.removeItem=function(t){this.triggerSelection(this.options.find(function(e){return e.name===t&&e.selected}))},t}()},x38r:function(t,e,n){"use strict";var a;n.d(e,"a",function(){return a}),function(t){t.bold="bold",t.sparkline="sparkline",t.perSecond="perSecond",t.checkIcon="checkIcon",t.routerLink="routerLink",t.executing="executing",t.classAdding="classAdding",t.map="map"}(a||(a={}))},x6pH:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(t){return 2===t?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":t+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(t){return 2===t?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":t+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(t){return 2===t?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":t+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(t){return 2===t?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":t%10==0&&10!==t?t+" \u05e9\u05e0\u05d4":t+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(t){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(t)},meridiem:function(t,e,n){return t<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":t<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":t<12?n?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":t<18?n?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}()},x8uC:function(t,e,n){"use strict";var a=n("CDJp"),r=n("K2E3"),i=n("RDha");a._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:i.noop,title:function(t,e){var n="",a=e.labels,r=a?a.length:0;if(t.length>0){var i=t[0];i.xLabel?n=i.xLabel:r>0&&i.index-1?t.split("\n"):t}function l(t){var e=a.global,n=i.valueOrDefault;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:n(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:n(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:n(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:n(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:n(t.titleFontStyle,e.defaultFontStyle),titleFontSize:n(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:n(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:n(t.footerFontStyle,e.defaultFontStyle),footerFontSize:n(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function d(t){return u([],c(t))}(t.exports=r.extend({initialize:function(){this._model=l(this._options),this._lastActive=[]},getTitle:function(){var t=this._options.callbacks,e=t.beforeTitle.apply(this,arguments),n=t.title.apply(this,arguments),a=t.afterTitle.apply(this,arguments),r=[];return r=u(r,c(e)),r=u(r,c(n)),u(r,c(a))},getBeforeBody:function(){return d(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,a=n._options.callbacks,r=[];return i.each(t,function(t){var i={before:[],lines:[],after:[]};u(i.before,c(a.beforeLabel.call(n,t,e))),u(i.lines,a.label.call(n,t,e)),u(i.after,c(a.afterLabel.call(n,t,e))),r.push(i)}),r},getAfterBody:function(){return d(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this._options.callbacks,e=t.beforeFooter.apply(this,arguments),n=t.footer.apply(this,arguments),a=t.afterFooter.apply(this,arguments),r=[];return r=u(r,c(e)),r=u(r,c(n)),u(r,c(a))},update:function(t){var e,n,a,r,o,u,c,d=this,f=d._options,p=d._model,h=d._model=l(f),g=d._active,b=d._data,m={xAlign:p.xAlign,yAlign:p.yAlign},y={x:p.x,y:p.y},v={width:p.width,height:p.height},_={x:p.caretX,y:p.caretY};if(g.length){h.opacity=1;var x=[],T=[];_=s[f.position].call(d,g,d._eventPosition);var w=[];for(e=0,n=g.length;ea.width&&(r=a.width-e.width),r<0&&(r=0)),"top"===u?i+=c:i-="bottom"===u?e.height+c:e.height/2,"center"===u?"left"===o?r+=c:"right"===o&&(r-=c):"left"===o?r-=l:"right"===o&&(r+=l),{x:r,y:i}}(h,v,m=function(t,e){var n,a,r,i,s,o=t._model,u=t._chart,c=t._chart.chartArea,l="center",d="center";o.yu.height-e.height&&(d="bottom");var f=(c.left+c.right)/2,p=(c.top+c.bottom)/2;"center"===d?(n=function(t){return t<=f},a=function(t){return t>f}):(n=function(t){return t<=e.width/2},a=function(t){return t>=u.width-e.width/2}),r=function(t){return t+e.width+o.caretSize+o.caretPadding>u.width},i=function(t){return t-e.width-o.caretSize-o.caretPadding<0},s=function(t){return t<=p?"top":"bottom"},n(o.x)?(l="left",r(o.x)&&(l="center",d=s(o.y))):a(o.x)&&(l="right",i(o.x)&&(l="center",d=s(o.y)));var h=t._options;return{xAlign:h.xAlign?h.xAlign:l,yAlign:h.yAlign?h.yAlign:d}}(this,v),d._chart)}else h.opacity=0;return h.xAlign=m.xAlign,h.yAlign=m.yAlign,h.x=y.x,h.y=y.y,h.width=v.width,h.height=v.height,h.caretX=_.x,h.caretY=_.y,d._model=h,t&&f.custom&&f.custom.call(d,h),d},drawCaret:function(t,e){var n=this._chart.ctx,a=this.getCaretPosition(t,e,this._view);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var a,r,i,s,o,u,c=n.caretSize,l=n.cornerRadius,d=n.xAlign,f=n.yAlign,p=t.x,h=t.y,g=e.width,b=e.height;if("center"===f)o=h+b/2,"left"===d?(r=(a=p)-c,i=a,s=o+c,u=o-c):(r=(a=p+g)+c,i=a,s=o-c,u=o+c);else if("left"===d?(a=(r=p+l+c)-c,i=r+c):"right"===d?(a=(r=p+g-l-c)-c,i=r+c):(a=(r=n.caretX)-c,i=r+c),"top"===f)o=(s=h)-c,u=s;else{o=(s=h+b)+c,u=s;var m=i;i=a,a=m}return{x1:a,x2:r,x3:i,y1:s,y2:o,y3:u}},drawTitle:function(t,e,n,a){var r=e.title;if(r.length){n.textAlign=e._titleAlign,n.textBaseline="top";var s,u,c=e.titleFontSize,l=e.titleSpacing;for(n.fillStyle=o(e.titleFontColor,a),n.font=i.fontString(c,e._titleFontStyle,e._titleFontFamily),s=0,u=r.length;s0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},a={x:e.x,y:e.y},r=Math.abs(e.opacity<.001)?0:e.opacity;this._options.enabled&&(e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length)&&(this.drawBackground(a,e,t,n,r),a.x+=e.xPadding,a.y+=e.yPadding,this.drawTitle(a,e,t,r),this.drawBody(a,e,t,r),this.drawFooter(a,e,t,r))}},handleEvent:function(t){var e,n=this,a=n._options;return n._lastActive=n._lastActive||[],n._active="mouseout"===t.type?[]:n._chart.getElementsAtEventForMode(t,a.mode,a),(e=!i.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(a.enabled||a.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}})).positioners=s},xMyE:function(t,e,n){"use strict";n.d(e,"a",function(){return o});var a=n("mrSG"),r=n("FFOo"),i=n("+umK"),s=n("2Bdj");function o(t,e,n){return function(a){return a.lift(new u(t,e,n))}}var u=function(){function t(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}return t.prototype.call=function(t,e){return e.subscribe(new c(t,this.nextOrObserver,this.error,this.complete))},t}(),c=function(t){function e(e,n,a,r){var o=t.call(this,e)||this;return o._tapNext=i.a,o._tapError=i.a,o._tapComplete=i.a,o._tapError=a||i.a,o._tapComplete=r||i.a,Object(s.a)(n)?(o._context=o,o._tapNext=n):n&&(o._context=n,o._tapNext=n.next||i.a,o._tapError=n.error||i.a,o._tapComplete=n.complete||i.a),o}return a.__extends(e,t),e.prototype._next=function(t){try{this._tapNext.call(this._context,t)}catch(e){return void this.destination.error(e)}this.destination.next(t)},e.prototype._error=function(t){try{this._tapError.call(this._context,t)}catch(t){return void this.destination.error(t)}this.destination.error(t)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()},e}(r.a)},xSw7:function(t,e,n){"use strict";var a=n("CcnG"),r=n("Fgil"),i=n("aXbf"),s=n("o4+5"),o=n("Ip0R"),u=n("eajB"),c=n("lqqz"),l=n("NJnL");n("GgAd"),n.d(e,"a",function(){return d}),n.d(e,"b",function(){return p});var d=a["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function f(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,17,"table",[],null,null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,16,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275eld"](2,0,null,null,7,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Used:\xa0"])),(t()(),a["\u0275eld"](5,0,null,null,4,"td",[["class","text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,3,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](7,null,[" ",""])),a["\u0275ppd"](8,1),a["\u0275ppd"](9,1),(t()(),a["\u0275eld"](10,0,null,null,7,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](11,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["\u0275ted"](-1,null,["Free:\xa0"])),(t()(),a["\u0275eld"](13,0,null,null,4,"td",[["class","'text-right"]],null,null,null,null,null)),(t()(),a["\u0275eld"](14,0,null,null,3,"strong",[],null,null,null,null,null)),(t()(),a["\u0275ted"](15,null,["",""])),a["\u0275ppd"](16,1),a["\u0275ppd"](17,1)],null,function(t,e){var n=e.component,r=a["\u0275unv"](e,7,0,n.isBinary?t(e,8,0,a["\u0275nov"](e.parent,0),n.used):t(e,9,0,a["\u0275nov"](e.parent,1),n.used));t(e,7,0,r);var i=a["\u0275unv"](e,15,0,n.isBinary?t(e,16,0,a["\u0275nov"](e.parent,0),n.total-n.used):t(e,17,0,a["\u0275nov"](e.parent,1),n.total-n.used));t(e,15,0,i)})}function p(t){return a["\u0275vid"](0,[a["\u0275pid"](0,r.a,[i.a]),a["\u0275pid"](0,s.a,[i.a]),a["\u0275pid"](0,o.DecimalPipe,[a.LOCALE_ID]),(t()(),a["\u0275and"](0,[["usageTooltipTpl",2]],null,0,null,f)),(t()(),a["\u0275eld"](4,16777216,null,null,6,"div",[["class","progress oaprogress"],["data-placement","left"]],[[1,"aria-describedby",0]],null,null,null,null)),a["\u0275did"](5,212992,null,0,u.c,[a.ViewContainerRef,c.a,u.a,a.ElementRef,a.Renderer2,l.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(t()(),a["\u0275eld"](6,0,null,null,3,"div",[["class","progress-bar progress-bar-info"],["role","progressbar"]],[[4,"width",null]],null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["\u0275ted"](8,null,["","%"])),a["\u0275ppd"](9,2),(t()(),a["\u0275eld"](10,0,null,null,0,"div",[["class","progress-bar progress-bar-freespace"],["role","progressbar"]],[[4,"width",null]],null,null,null,null))],function(t,e){t(e,5,0,a["\u0275nov"](e,3),"left")},function(t,e){var n=e.component;t(e,4,0,a["\u0275nov"](e,5).ariaDescribedby),t(e,6,0,n.usedPercentage+"%");var r=a["\u0275unv"](e,8,0,t(e,9,0,a["\u0275nov"](e,2),n.usedPercentage,"1.0-"+n.decimals));t(e,8,0,r),t(e,10,0,n.freePercentage+"%")})}},xTla:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a="function"==typeof Symbol&&Symbol.observable||"@@observable"},xTzq:function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i});var a=n("LvDl");function r(){for(var t=[],e=0;e=0&&this._children.splice(e,1),this._setFoldingType()}},t.prototype.removeItselfFromParent=function(){this.parent&&this.parent.removeChild(this)},t.prototype.switchFoldingType=function(){!this.isLeaf()&&this.hasChildren()&&(this.disableCollapseOnInit(),this.node._foldingType=this.isNodeExpanded()?i.FoldingType.Collapsed:i.FoldingType.Expanded)},t.prototype.isNodeExpanded=function(){return this.foldingType===i.FoldingType.Expanded},t.prototype.isNodeCollapsed=function(){return this.foldingType===i.FoldingType.Collapsed},t.prototype._setFoldingType=function(){this.node._foldingType=this.childrenShouldBeLoaded()?i.FoldingType.Collapsed:this._children&&!a.isEmpty(this._children)?this.isCollapsedOnInit()?i.FoldingType.Collapsed:i.FoldingType.Expanded:Array.isArray(this._children)?i.FoldingType.Empty:i.FoldingType.Leaf},Object.defineProperty(t.prototype,"foldingType",{get:function(){return this.node._foldingType||this._setFoldingType(),this.node._foldingType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"foldingCssClass",{get:function(){return this.getCssClassesFromSettings()||this.foldingType.cssClass},enumerable:!0,configurable:!0}),t.prototype.getCssClassesFromSettings=function(){return this.node._foldingType||this._setFoldingType(),a.get(this.node.settings,this.node._foldingType===i.FoldingType.Collapsed?"cssClasses.collapsed":this.node._foldingType===i.FoldingType.Expanded?"cssClasses.expanded":this.node._foldingType===i.FoldingType.Empty?"cssClasses.empty":"cssClasses.leaf",null)},Object.defineProperty(t.prototype,"nodeTemplate",{get:function(){return this.getTemplateFromSettings()},enumerable:!0,configurable:!0}),t.prototype.getTemplateFromSettings=function(){return this.isLeaf()?a.get(this.node.settings,"templates.leaf",""):a.get(this.node.settings,"templates.node","")},Object.defineProperty(t.prototype,"leftMenuTemplate",{get:function(){return this.hasLeftMenu()?a.get(this.node.settings,"templates.leftMenu",""):""},enumerable:!0,configurable:!0}),t.prototype.disableCollapseOnInit=function(){this.node.settings&&(this.node.settings.isCollapsedOnInit=!1)},t.prototype.isCollapsedOnInit=function(){return!!a.get(this.node.settings,"isCollapsedOnInit")},t.prototype.keepNodesInDOM=function(){return a.get(this.node.settings,"keepNodesInDOM")},t.prototype.isNew=function(){return this.node._status===i.TreeStatus.New},Object.defineProperty(t.prototype,"id",{get:function(){return a.get(this.node,"id")},set:function(t){this.node.id=t},enumerable:!0,configurable:!0}),t.prototype.markAsNew=function(){this.node._status=i.TreeStatus.New},t.prototype.isBeingRenamed=function(){return this.node._status===i.TreeStatus.IsBeingRenamed},t.prototype.markAsBeingRenamed=function(){this.node._status=i.TreeStatus.IsBeingRenamed},t.prototype.isModified=function(){return this.node._status===i.TreeStatus.Modified},t.prototype.markAsModified=function(){this.node._status=i.TreeStatus.Modified},t.prototype.toTreeModel=function(){var t=a.defaultsDeep(this.isLeaf()?{}:{children:[]},this.node);return this.children&&this.children.forEach(function(e){t.children.push(e.toTreeModel())}),t},t}()},xbqr:function(t,e,n){"use strict";var a=n("CcnG"),r=n("MdoF"),i=n("lTVp");n("9GXa"),n.d(e,"a",function(){return s}),n.d(e,"b",function(){return o});var s=a["\u0275crt"]({encapsulation:0,styles:[[".warning-panel-alert-icon[_ngcontent-%COMP%]{vertical-align:top;padding-right:15px}.warning-panel-alert-title[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,11,"alert",[["type","warning"]],null,null,null,r.c,r.b)),a["\u0275did"](1,114688,null,0,i.a,[i.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["\u0275eld"](2,0,null,0,9,"table",[],null,null,null,null,null)),(t()(),a["\u0275eld"](3,0,null,null,8,"tbody",[],null,null,null,null,null)),(t()(),a["\u0275eld"](4,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](5,0,null,null,1,"td",[["class","warning-panel-alert-icon"],["rowspan","2"]],null,null,null,null,null)),(t()(),a["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-3x fa-warning alert-warning"]],null,null,null,null,null)),(t()(),a["\u0275eld"](7,0,null,null,1,"td",[["class","warning-panel-alert-title"]],null,null,null,null,null)),(t()(),a["\u0275ted"](8,null,[" "," "])),(t()(),a["\u0275eld"](9,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["\u0275eld"](10,0,null,null,1,"td",[["class","warning-panel-alert-text"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],function(t,e){t(e,1,0,"warning")},function(t,e){t(e,8,0,e.component.title)})}},xdbM:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata,i=n("CcnG"),s=n("WyAD"),o=function(){function t(t){this.labels=[],this.options={},this.chartClick=new i.EventEmitter,this.chartHover=new i.EventEmitter,this.initFlag=!1,this.element=t}return t.prototype.ngOnInit=function(){this.ctx=this.element.nativeElement.getContext("2d"),this.cvs=this.element.nativeElement,this.initFlag=!0,(this.data||this.datasets)&&this.refresh()},t.prototype.ngOnChanges=function(t){this.initFlag&&(t.hasOwnProperty("data")||t.hasOwnProperty("datasets")?(this.updateChartData(t.data?t.data.currentValue:t.datasets.currentValue),this.chart.update()):this.refresh())},t.prototype.ngOnDestroy=function(){this.chart&&(this.chart.destroy(),this.chart=void 0)},t.prototype.getChartBuilder=function(t){var e=this,n=this.getDatasets(),a=Object.assign({},this.options);return!1===this.legend&&(a.legend={display:!1}),a.hover=a.hover||{},a.hover.onHover||(a.hover.onHover=function(t){t&&!t.length||e.chartHover.emit({active:t})}),a.onClick||(a.onClick=function(t,n){e.chartClick.emit({event:t,active:n})}),new s.Chart(t,{type:this.chartType,data:{labels:this.labels,datasets:n},options:a})},t.prototype.updateChartData=function(t){Array.isArray(t[0].data)?this.chart.data.datasets.forEach(function(e,n){e.data=t[n].data,t[n].label&&(e.label=t[n].label)}):this.chart.data.datasets[0].data=t},t.prototype.getDatasets=function(){var t=this,e=void 0;if((!this.datasets||!this.datasets.length&&this.data&&this.data.length)&&(e=Array.isArray(this.data[0])?this.data.map(function(e,n){return{data:e,label:t.labels[n]||"Label "+n}}):[{data:this.data,label:"Label 0"}]),(this.datasets&&this.datasets.length||e&&e.length)&&(e=(this.datasets||e).map(function(e,n){var a=Object.assign({},e);return t.colors&&t.colors.length?Object.assign(a,t.colors[n]):Object.assign(a,function(t,e,n){return"pie"===t||"doughnut"===t?{backgroundColor:(a=f(n)).map(function(t){return u(t,.6)}),borderColor:a.map(function(){return"#fff"}),pointBackgroundColor:a.map(function(t){return u(t,1)}),pointBorderColor:a.map(function(){return"#fff"}),pointHoverBackgroundColor:a.map(function(t){return u(t,1)}),pointHoverBorderColor:a.map(function(t){return u(t,1)})}:"polarArea"===t?function(t){return{backgroundColor:t.map(function(t){return u(t,.6)}),borderColor:t.map(function(t){return u(t,1)}),hoverBackgroundColor:t.map(function(t){return u(t,.8)}),hoverBorderColor:t.map(function(t){return u(t,1)})}}(f(n)):"line"===t||"radar"===t?function(t){return{backgroundColor:u(t,.4),borderColor:u(t,1),pointBackgroundColor:u(t,1),pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:u(t,.8)}}(d(e)):"bar"===t||"horizontalBar"===t?function(t){return{backgroundColor:u(t,.6),borderColor:u(t,1),hoverBackgroundColor:u(t,.8),hoverBorderColor:u(t,1)}}(d(e)):d(e);var a}(t.chartType,n,a.data.length)),a})),!e)throw new Error("ng-charts configuration error,\n data or datasets field are required to render char "+this.chartType);return e},t.prototype.refresh=function(){this.ngOnDestroy(),this.chart=this.getChartBuilder(this.ctx)},t.defaultColors=[[255,99,132],[54,162,235],[255,206,86],[231,233,237],[75,192,192],[151,187,205],[220,220,220],[247,70,74],[70,191,189],[253,180,92],[148,159,177],[77,83,96]],t}();function u(t,e){return"rgba("+t.concat(e).join(",")+")"}function c(t,e){return Math.floor(Math.random()*(e-t+1))+t}function l(){return[c(0,255),c(0,255),c(0,255)]}function d(t){return o.defaultColors[t]||l()}function f(t){for(var e=new Array(t),n=0;n',providers:[r.TreeService]}]}],t.propDecorators={treeModel:[{type:a.Input,args:["tree"]}],settings:[{type:a.Input}],nodeCreated:[{type:a.Output}],nodeRemoved:[{type:a.Output}],nodeRenamed:[{type:a.Output}],nodeSelected:[{type:a.Output}],nodeUnselected:[{type:a.Output}],nodeMoved:[{type:a.Output}],nodeExpanded:[{type:a.Output}],nodeCollapsed:[{type:a.Output}],loadNextLevel:[{type:a.Output}],nodeChecked:[{type:a.Output}],nodeUnchecked:[{type:a.Output}],menuItemSelected:[{type:a.Output}],rootComponent:[{type:a.ViewChild,args:["rootComponent"]}],template:[{type:a.ContentChild,args:[a.TemplateRef]}]},t}()},xtZt:function(t,e,n){"use strict";n.d(e,"a",function(){return c}),n.d(e,"b",function(){return d}),n.d(e,"c",function(){return f}),n.d(e,"d",function(){return p}),n.d(e,"e",function(){return g}),n.d(e,"f",function(){return l}),n.d(e,"g",function(){return h});var a=n("mrSG"),r=n("CcnG"),i=n("VnD/"),s=n("lqqz"),o=n("rpEJ"),u=n("NJnL"),c=function(){return function(){this.autoClose=!0,this.insideClick=!1}}(),l=function(){return function(){var t=this;this.direction="down",this.isOpenChange=new r.EventEmitter,this.isDisabledChange=new r.EventEmitter,this.toggleClick=new r.EventEmitter,this.dropdownMenu=new Promise(function(e){t.resolveDropdownMenu=e})}}(),d=function(){function t(t,e,n,a){var r=this;this._state=t,this.cd=e,this._renderer=n,this._element=a,this.isOpen=!1,this._subscription=t.isOpenChange.subscribe(function(t){r.isOpen=t;var e=r._element.nativeElement.querySelector(".dropdown-menu");e&&!Object(o.d)()&&(r._renderer.addClass(e,"show"),e.classList.contains("dropdown-menu-right")&&(r._renderer.setStyle(e,"left","auto"),r._renderer.setStyle(e,"right","0")),"up"===r.direction&&(r._renderer.setStyle(e,"top","auto"),r._renderer.setStyle(e,"transform","translateY(-101%)"))),r.cd.markForCheck(),r.cd.detectChanges()})}return Object.defineProperty(t.prototype,"direction",{get:function(){return this._state.direction},enumerable:!0,configurable:!0}),t.prototype._contains=function(t){return this._element.nativeElement.contains(t)},t.prototype.ngOnDestroy=function(){this._subscription.unsubscribe()},t}(),f=function(){function t(t,e,n,a,r,i){this._elementRef=t,this._renderer=e,this._viewContainerRef=n,this._cis=a,this._config=r,this._state=i,this._isInlineOpen=!1,this._subscriptions=[],this._isInited=!1,this._state.autoClose=this._config.autoClose,this._state.insideClick=this._config.insideClick,this._dropdown=this._cis.createLoader(this._elementRef,this._viewContainerRef,this._renderer).provide({provide:l,useValue:this._state}),this.onShown=this._dropdown.onShown,this.onHidden=this._dropdown.onHidden,this.isOpenChange=this._state.isOpenChange}return Object.defineProperty(t.prototype,"autoClose",{get:function(){return this._state.autoClose},set:function(t){this._state.autoClose=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"insideClick",{get:function(){return this._state.insideClick},set:function(t){this._state.insideClick=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isDisabled",{get:function(){return this._isDisabled},set:function(t){this._isDisabled=t,this._state.isDisabledChange.emit(t),t&&this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isOpen",{get:function(){return this._showInline?this._isInlineOpen:this._dropdown.isShown},set:function(t){t?this.show():this.hide()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isBs4",{get:function(){return!Object(o.d)()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"_showInline",{get:function(){return!this.container},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this._isInited||(this._isInited=!0,this._dropdown.listen({outsideClick:!1,triggers:this.triggers,show:function(){return t.show()}}),this._subscriptions.push(this._state.toggleClick.subscribe(function(e){return t.toggle(e)})),this._subscriptions.push(this._state.isDisabledChange.pipe(Object(i.a)(function(t){return t})).subscribe(function(e){return t.hide()})))},t.prototype.show=function(){var t=this;if(!this.isOpen&&!this.isDisabled)return this._showInline?(this._inlinedMenu||this._state.dropdownMenu.then(function(e){t._dropdown.attachInline(e.viewContainer,e.templateRef),t._inlinedMenu=t._dropdown._inlineViewRef,t.addBs4Polyfills()}).catch(),this.addBs4Polyfills(),this._isInlineOpen=!0,this.onShown.emit(!0),void this._state.isOpenChange.emit(!0)):void this._state.dropdownMenu.then(function(e){var n=t.dropup||void 0!==t.dropup&&t.dropup;t._state.direction=n?"up":"down";var a=t.placement||(n?"top start":"bottom start");t._dropdown.attach(d).to(t.container).position({attachment:a}).show({content:e.templateRef,placement:a}),t._state.isOpenChange.emit(!0)}).catch()},t.prototype.hide=function(){this.isOpen&&(this._showInline?(this.removeShowClass(),this.removeDropupStyles(),this._isInlineOpen=!1,this.onHidden.emit(!0)):this._dropdown.hide(),this._state.isOpenChange.emit(!1))},t.prototype.toggle=function(t){return this.isOpen||!t?this.hide():this.show()},t.prototype._contains=function(t){return this._elementRef.nativeElement.contains(t.target)||this._dropdown.instance&&this._dropdown.instance._contains(t.target)},t.prototype.ngOnDestroy=function(){var t,e;try{for(var n=Object(a.__values)(this._subscriptions),r=n.next();!r.done;r=n.next())r.value.unsubscribe()}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this._dropdown.dispose()},t.prototype.addBs4Polyfills=function(){Object(o.d)()||(this.addShowClass(),this.checkRightAlignment(),this.addDropupStyles())},t.prototype.addShowClass=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.addClass(this._inlinedMenu.rootNodes[0],"show")},t.prototype.removeShowClass=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.removeClass(this._inlinedMenu.rootNodes[0],"show")},t.prototype.checkRightAlignment=function(){if(this._inlinedMenu&&this._inlinedMenu.rootNodes[0]){var t=this._inlinedMenu.rootNodes[0].classList.contains("dropdown-menu-right");this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"left",t?"auto":"0"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"right",t?"0":"auto")}},t.prototype.addDropupStyles=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"top",this.dropup?"auto":"100%"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"transform",this.dropup?"translateY(-101%)":"translateY(0)"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"bottom","auto"))},t.prototype.removeDropupStyles=function(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"top"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"transform"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"bottom"))},t}(),p=function(){return function(t,e,n){t.resolveDropdownMenu({templateRef:n,viewContainer:e})}}(),h=function(){function t(t,e,n,a,r){var i=this;this._changeDetectorRef=t,this._dropdown=e,this._element=n,this._renderer=a,this._state=r,this.isDisabled=null,this._subscriptions=[],this._subscriptions.push(this._state.isOpenChange.subscribe(function(t){i.isOpen=t,t?(i._documentClickListener=i._renderer.listen("document","click",function(t){!i._state.autoClose||2===t.button||i._element.nativeElement.contains(t.target)||i._state.insideClick&&i._dropdown._contains(t)||(i._state.toggleClick.emit(!1),i._changeDetectorRef.detectChanges())}),i._escKeyUpListener=i._renderer.listen(i._element.nativeElement,"keyup.esc",function(){i._state.autoClose&&(i._state.toggleClick.emit(!1),i._changeDetectorRef.detectChanges())})):(i._documentClickListener(),i._escKeyUpListener())})),this._subscriptions.push(this._state.isDisabledChange.subscribe(function(t){return i.isDisabled=t||null}))}return t.prototype.onClick=function(){this.isDisabled||this._state.toggleClick.emit(!0)},t.prototype.ngOnDestroy=function(){var t,e;this._documentClickListener&&this._documentClickListener(),this._escKeyUpListener&&this._escKeyUpListener();try{for(var n=Object(a.__values)(this._subscriptions),r=n.next();!r.done;r=n.next())r.value.unsubscribe()}catch(i){t={error:i}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},t}(),g=function(){function t(){}return t.forRoot=function(e){return{ngModule:t,providers:[s.a,u.a,l,{provide:c,useValue:e||{autoClose:!0,insideClick:!1}}]}},t}()},y3By:function(t,e,n){"use strict";n.d(e,"a",function(){return r}),n.d(e,"b",function(){return i});var a=n("+umK");function r(){for(var t=[],e=0;e-1?t.splice(a,1):t.push(e),t},e.selectRowsBetween=function(t,e,n,a,r){for(var i=n=n||!i&&s>=a&&s<=n)&&s>=o.start&&s<=o.end&&t.push(e[s])}return t}},y9jh:function(t,e,n){var a;"undefined"!=typeof self&&self,a=function(t,e,n,a,r){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="./src/index.ts")}({"./node_modules/css-loader/index.js!./node_modules/postcss-loader/index.js!./node_modules/sass-loader/lib/loader.js??ref--3-4!./src/components/datatable.component.scss":function(t,e,n){(t.exports=n("./node_modules/css-loader/lib/css-base.js")(!1)).push([t.i,".ngx-datatable {\n display: block;\n overflow: hidden;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n position: relative;\n -webkit-transform: translate3d(0, 0, 0);\n /**\n * Vertical Scrolling Adjustments\n */\n /**\n * Horizontal Scrolling Adjustments\n */\n /**\n * Fixed Header Height Adjustments\n */\n /**\n * Fixed row height adjustments\n */\n /**\n * Shared Styles\n */\n /**\n * Header Styles\n */\n /**\n * Body Styles\n */\n /**\n * Footer Styles\n */ }\n .ngx-datatable [hidden] {\n display: none !important; }\n .ngx-datatable *, .ngx-datatable *:before, .ngx-datatable *:after {\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n .ngx-datatable.scroll-vertical .datatable-body {\n overflow-y: auto; }\n .ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper {\n position: absolute; }\n .ngx-datatable.scroll-horz .datatable-body {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch; }\n .ngx-datatable.fixed-header .datatable-header .datatable-header-inner {\n white-space: nowrap; }\n .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n .ngx-datatable.fixed-row .datatable-scroll {\n white-space: nowrap; }\n .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row {\n white-space: nowrap; }\n .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n .ngx-datatable .datatable-body-row,\n .ngx-datatable .datatable-row-center,\n .ngx-datatable .datatable-header-inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-flow: row;\n -o-flex-flow: row;\n flex-flow: row; }\n .ngx-datatable .datatable-body-cell,\n .ngx-datatable .datatable-header-cell {\n overflow-x: hidden;\n vertical-align: top;\n display: inline-block;\n line-height: 1.625; }\n .ngx-datatable .datatable-body-cell:focus,\n .ngx-datatable .datatable-header-cell:focus {\n outline: none; }\n .ngx-datatable .datatable-row-left,\n .ngx-datatable .datatable-row-right {\n z-index: 9; }\n .ngx-datatable .datatable-row-left,\n .ngx-datatable .datatable-row-center,\n .ngx-datatable .datatable-row-group,\n .ngx-datatable .datatable-row-right {\n position: relative; }\n .ngx-datatable .datatable-header {\n display: block;\n overflow: hidden; }\n .ngx-datatable .datatable-header .datatable-header-inner {\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n -webkit-align-items: stretch; }\n .ngx-datatable .datatable-header .datatable-header-cell {\n position: relative;\n display: inline-block; }\n .ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper {\n cursor: pointer; }\n .ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper {\n cursor: move; }\n .ngx-datatable .datatable-header .datatable-header-cell .sort-btn {\n line-height: 100%;\n vertical-align: middle;\n display: inline-block;\n cursor: pointer; }\n .ngx-datatable .datatable-header .datatable-header-cell .resize-handle, .ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable {\n display: inline-block;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n width: 5px;\n padding: 0 4px;\n visibility: hidden; }\n .ngx-datatable .datatable-header .datatable-header-cell .resize-handle {\n cursor: ew-resize; }\n .ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle {\n visibility: visible; }\n .ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable {\n visibility: visible; }\n .ngx-datatable .datatable-header .datatable-header-cell .targetMarker {\n position: absolute;\n top: 0;\n bottom: 0; }\n .ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft {\n right: 0; }\n .ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight {\n left: 0; }\n .ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap {\n height: inherit; }\n .ngx-datatable .datatable-body {\n position: relative;\n z-index: 10;\n display: block; }\n .ngx-datatable .datatable-body .datatable-scroll {\n display: inline-block; }\n .ngx-datatable .datatable-body .datatable-row-detail {\n overflow-y: hidden; }\n .ngx-datatable .datatable-body .datatable-row-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n .ngx-datatable .datatable-body .datatable-body-row {\n outline: none; }\n .ngx-datatable .datatable-body .datatable-body-row > div {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n .ngx-datatable .datatable-footer {\n display: block;\n width: 100%; }\n .ngx-datatable .datatable-footer .datatable-footer-inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 100%; }\n .ngx-datatable .datatable-footer .selected-count .page-count {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 40%;\n flex: 1 1 40%; }\n .ngx-datatable .datatable-footer .selected-count .datatable-pager {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 60%;\n flex: 1 1 60%; }\n .ngx-datatable .datatable-footer .page-count {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 20%;\n flex: 1 1 20%; }\n .ngx-datatable .datatable-footer .datatable-pager {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 80%;\n flex: 1 1 80%;\n text-align: right; }\n .ngx-datatable .datatable-footer .datatable-pager .pager,\n .ngx-datatable .datatable-footer .datatable-pager .pager li {\n padding: 0;\n margin: 0;\n display: inline-block;\n list-style: none; }\n .ngx-datatable .datatable-footer .datatable-pager .pager li, .ngx-datatable .datatable-footer .datatable-pager .pager li a {\n outline: none; }\n .ngx-datatable .datatable-footer .datatable-pager .pager li a {\n cursor: pointer;\n display: inline-block; }\n .ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a {\n cursor: not-allowed; }\n",""])},"./node_modules/css-loader/lib/css-base.js":function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n=t[1]||"",a=t[3];if(!a)return n;if(e&&"function"==typeof btoa){var r="/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */",i=a.sources.map(function(t){return"/*# sourceURL="+a.sourceRoot+t+" */"});return[n].concat(i).concat([r]).join("\n")}return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var a={},r=0;r=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/utils/index.ts"),o=n("./src/types/index.ts");n("./src/events.ts"),e.DataTableBodyCellComponent=function(){function t(t,e){this.cd=e,this.activate=new i.EventEmitter,this.treeAction=new i.EventEmitter,this.isFocused=!1,this.onCheckboxChangeFn=this.onCheckboxChange.bind(this),this.activateFn=this.activate.emit.bind(this.activate),this.cellContext={onCheckboxChangeFn:this.onCheckboxChangeFn,activateFn:this.activateFn,row:this.row,group:this.group,value:this.value,column:this.column,rowHeight:this.rowHeight,isSelected:this.isSelected,rowIndex:this.rowIndex,treeStatus:this.treeStatus,onTreeAction:this.onTreeAction.bind(this)},this._element=t.nativeElement}return Object.defineProperty(t.prototype,"group",{get:function(){return this._group},set:function(t){this._group=t,this.cellContext.group=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){this._rowHeight=t,this.cellContext.rowHeight=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this._isSelected},set:function(t){this._isSelected=t,this.cellContext.isSelected=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.cellContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.cellContext.rowIndex=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"row",{get:function(){return this._row},set:function(t){this._row=t,this.cellContext.row=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.calcSortDir=this.calcSortDir(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"treeStatus",{get:function(){return this._treeStatus},set:function(t){this._treeStatus="collapsed"!==t&&"expanded"!==t&&"loading"!==t&&"disabled"!==t?"collapsed":t,this.cellContext.treeStatus=this._treeStatus,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-body-cell";if(this.column.cellClass)if("string"==typeof this.column.cellClass)t+=" "+this.column.cellClass;else if("function"==typeof this.column.cellClass){var e=this.column.cellClass({row:this.row,group:this.group,column:this.column,value:this.value,rowHeight:this.rowHeight});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n]+(>|$)/g,""):t},t.prototype.onTreeAction=function(){this.treeAction.emit(this.row)},t.prototype.calcLeftMargin=function(t,e){return t.isTreeColumn?e.level*(null!=t.treeLevelIndent?t.treeLevelIndent:50):0},a([i.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"group",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowHeight",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"isSelected",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([i.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"row",null),a([i.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([i.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"treeStatus",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"treeAction",void 0),a([i.ViewChild("cellTemplate",{read:i.ViewContainerRef}),r("design:type",i.ViewContainerRef)],t.prototype,"cellTemplate",void 0),a([i.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([i.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([i.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([i.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([i.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"height",null),a([i.HostListener("focus"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onFocus",null),a([i.HostListener("blur"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onBlur",null),a([i.HostListener("click",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onClick",null),a([i.HostListener("dblclick",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onDblClick",null),a([i.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([i.Component({selector:"datatable-body-cell",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n \n \n \n \n \n \n\n \n \n \n \n
\n '}),r("design:paramtypes",[i.ElementRef,i.ChangeDetectorRef])],t)}()},"./src/components/body/body-group-header-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DatatableGroupHeaderTemplateDirective=function(){return a([i.Directive({selector:"[ngx-datatable-group-header-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/body/body-group-header.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/components/body/body-group-header-template.directive.ts");e.DatatableGroupHeaderDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandGroup=function(t){this.toggle.emit({type:"group",value:t})},t.prototype.expandAllGroups=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllGroups=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(s.DatatableGroupHeaderTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-group-header"})],t)}()},"./src/components/body/body-row-wrapper.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");n("./src/events.ts"),e.DataTableRowWrapperComponent=function(){function t(t,e){this.cd=t,this.differs=e,this.rowContextmenu=new i.EventEmitter(!1),this.groupContext={group:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this.rowContext={row:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this._expanded=!1,this.rowDiffer=e.find({}).create()}return Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.rowContext.rowIndex=t,this.groupContext.rowIndex=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.groupContext.expanded=t,this.rowContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.row)&&(this.rowContext.row=this.row,this.groupContext.group=this.row,this.cd.markForCheck())},t.prototype.onContextmenu=function(t){this.rowContextmenu.emit({event:t,row:this.row})},t.prototype.getGroupHeaderStyle=function(){var t={};return t.transform="translate3d("+this.offsetX+"px, 0px, 0px)",t["backface-visibility"]="hidden",t.width=this.innerWidth,t},a([i.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"detailRowHeight",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([i.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([i.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([i.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([i.Component({selector:"datatable-row-wrapper",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n
\n \n \n
\n \n \n \n \n \n \n ',host:{class:"datatable-row-wrapper"}}),r("design:paramtypes",[i.ChangeDetectorRef,i.KeyValueDiffers])],t)}()},"./src/components/body/body-row.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var s=n("@angular/core"),o=n("./src/utils/index.ts"),u=n("./src/services/index.ts");n("./src/events.ts"),e.DataTableBodyRowComponent=function(){function t(t,e,n,a){this.differs=t,this.scrollbarHelper=e,this.cd=n,this.treeStatus="collapsed",this.activate=new s.EventEmitter,this.treeAction=new s.EventEmitter,this._groupStyles={left:{},center:{},right:{}},this._element=a.nativeElement,this._rowDiffer=t.find({}).create()}return Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t,this.recalculateColumns(t),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._columns){var e=o.columnsByPin(this._columns);this._columnGroupWidths=o.columnGroupWidths(e,e)}this._innerWidth=t,this.recalculateColumns(),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cssClass",{get:function(){var t="datatable-body-row";if(this.isSelected&&(t+=" active"),this.rowIndex%2!=0&&(t+=" datatable-row-odd"),this.rowIndex%2==0&&(t+=" datatable-row-even"),this.rowClass){var e=this.rowClass(this.row);if("string"==typeof e)t+=" "+e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n '}),i(1,s.SkipSelf()),r("design:paramtypes",[s.KeyValueDiffers,u.ScrollbarHelper,s.ChangeDetectorRef,s.ElementRef])],t)}()},"./src/components/body/body.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/utils/index.ts"),o=(n("./src/types/index.ts"),n("./src/components/body/scroller.component.ts"));e.DataTableBodyComponent=function(){function t(t){var e=this;this.cd=t,this.selected=[],this.scroll=new i.EventEmitter,this.page=new i.EventEmitter,this.activate=new i.EventEmitter,this.select=new i.EventEmitter,this.detailToggle=new i.EventEmitter,this.rowContextmenu=new i.EventEmitter(!1),this.treeAction=new i.EventEmitter,this.rowHeightsCache=new s.RowHeightCache,this.temp=[],this.offsetY=0,this.indexes={},this.rowIndexes=new Map,this.rowExpansions=new Map,this.getDetailRowHeight=function(t,n){if(!e.rowDetail)return 0;var a=e.rowDetail.rowHeight;return"function"==typeof a?a(t,n):a},this.rowTrackingFn=(function(t,e){var n=this.getRowIndex(e);return this.trackByProp?n+"-"+this.trackByProp:n}).bind(this)}return Object.defineProperty(t.prototype,"pageSize",{get:function(){return this._pageSize},set:function(t){this._pageSize=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,this.rowExpansions.clear(),this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=s.columnsByPin(t);this.columnGroupWidths=s.columnGroupWidths(e,t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowCount},set:function(t){this._rowCount=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyHeight",{get:function(){return this._bodyHeight},set:function(t){this._bodyHeight=this.scrollbarV?t+"px":"auto",this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectEnabled",{get:function(){return!!this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollHeight",{get:function(){if(this.scrollbarV&&this.virtualization&&this.rowCount)return this.rowHeightsCache.query(this.rowCount-1)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.rowDetail&&(this.listener=this.rowDetail.toggle.subscribe(function(e){var n=e.type,a=e.value;"row"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()})),this.groupHeader&&(this.listener=this.groupHeader.toggle.subscribe(function(e){var n=e.type,a=e.value;"group"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()}))},t.prototype.ngOnDestroy=function(){this.rowDetail&&this.listener.unsubscribe(),this.groupHeader&&this.listener.unsubscribe()},t.prototype.updateOffsetY=function(t){this.scroller&&(this.scrollbarV&&this.virtualization&&t?t=this.rowHeightsCache.query(this.pageSize*t-1):this.scrollbarV&&!this.virtualization&&(t=0),this.scroller.setOffset(t||0))},t.prototype.onBodyScroll=function(t){var e=t.scrollYPos,n=t.scrollXPos;this.offsetY===e&&this.offsetX===n||this.scroll.emit({offsetY:e,offsetX:n}),this.offsetY=e,this.offsetX=n,this.updateIndexes(),this.updatePage(t.direction),this.updateRows()},t.prototype.updatePage=function(t){var e=this.indexes.first/this.pageSize;"up"===t?e=Math.ceil(e):"down"===t&&(e=Math.floor(e)),void 0===t||isNaN(e)||this.page.emit({offset:e})},t.prototype.updateRows=function(){var t=this.indexes,e=t.last,n=t.first,a=0,r=[];if(this.rowIndexes.clear(),this.groupedRows)for(;n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',changeDetection:i.ChangeDetectionStrategy.OnPush,host:{class:"datatable-body"}}),r("design:paramtypes",[i.ChangeDetectorRef])],t)}()},"./src/components/body/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/body/body.component.ts")),a(n("./src/components/body/body-cell.component.ts")),a(n("./src/components/body/body-row.component.ts")),a(n("./src/components/body/progress-bar.component.ts")),a(n("./src/components/body/scroller.component.ts")),a(n("./src/components/body/body-row-wrapper.component.ts")),a(n("./src/components/body/selection.component.ts")),a(n("./src/components/body/body-group-header.directive.ts")),a(n("./src/components/body/body-group-header-template.directive.ts")),a(n("./src/components/body/summary/index.ts"))},"./src/components/body/progress-bar.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core");e.ProgressBarComponent=function(){return a([r.Component({selector:"datatable-progress",template:'\n
\n
\n
\n
\n
\n ',changeDetection:r.ChangeDetectionStrategy.OnPush})],function(){})}()},"./src/components/body/scroller.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.ScrollerComponent=function(){function t(t,e,n){this.ngZone=t,this.renderer=n,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new i.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this.element=e.nativeElement}return t.prototype.ngOnInit=function(){if(this.scrollbarV||this.scrollbarH){var t=this.renderer;this.parentElement=t.parentNode(t.parentNode(this.element)),this.parentElement.addEventListener("scroll",this.onScrolled.bind(this))}},t.prototype.ngOnDestroy=function(){(this.scrollbarV||this.scrollbarH)&&this.parentElement.removeEventListener("scroll",this.onScrolled.bind(this))},t.prototype.setOffset=function(t){this.parentElement&&(this.parentElement.scrollTop=t)},t.prototype.onScrolled=function(t){var e=this,n=t.currentTarget;requestAnimationFrame(function(){e.scrollYPos=n.scrollTop,e.scrollXPos=n.scrollLeft,e.updateOffset()})},t.prototype.updateOffset=function(){var t;this.scrollYPosthis.prevScrollYPos&&(t="up"),this.scroll.emit({direction:t,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos},a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([i.HostBinding("style.height.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollHeight",void 0),a([i.HostBinding("style.width.px"),i.Input(),r("design:type",Number)],t.prototype,"scrollWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"scroll",void 0),a([i.Component({selector:"datatable-scroller",template:"\n \n ",host:{class:"datatable-scroll"},changeDetection:i.ChangeDetectionStrategy.OnPush}),r("design:paramtypes",[i.NgZone,i.ElementRef,i.Renderer2])],t)}()},"./src/components/body/selection.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/utils/index.ts"),o=n("./src/types/index.ts");e.DataTableSelectionComponent=function(){function t(){this.activate=new i.EventEmitter,this.select=new i.EventEmitter}return t.prototype.selectRow=function(t,e,n){var a;if(this.selectEnabled){var r=this.selectionType===o.SelectionType.checkbox,i=this.selectionType===o.SelectionType.multiClick,u=[];u=this.selectionType===o.SelectionType.multi||r||i?t.shiftKey?s.selectRowsBetween([],this.rows,e,this.prevIndex,this.getRowSelectedIdx.bind(this)):s.selectRows(t.ctrlKey||t.metaKey||i||r?this.selected.slice():[],n,this.getRowSelectedIdx.bind(this)):s.selectRows([],n,this.getRowSelectedIdx.bind(this)),"function"==typeof this.selectCheck&&(u=u.filter(this.selectCheck.bind(this))),this.selected.splice(0,this.selected.length),(a=this.selected).push.apply(a,u),this.prevIndex=e,this.select.emit({selected:u})}},t.prototype.onActivate=function(t,e){var n=t.type,a=t.event,r=t.row,i=this.selectionType===o.SelectionType.checkbox;!i&&("click"===n||"dblclick"===n)||i&&"checkbox"===n?this.selectRow(a,e,r):"keydown"===n&&(a.keyCode===s.Keys.return?this.selectRow(a,e,r):this.onKeyboardFocus(t)),this.activate.emit(t)},t.prototype.onKeyboardFocus=function(t){var e=t.event.keyCode;if(e===s.Keys.up||e===s.Keys.down||e===s.Keys.right||e===s.Keys.left){var n=this.selectionType===o.SelectionType.cell;t.cellElement&&n?n&&this.focusCell(t.cellElement,t.rowElement,e,t.cellIndex):this.focusRow(t.rowElement,e)}},t.prototype.focusRow=function(t,e){var n=this.getPrevNextRow(t,e);n&&n.focus()},t.prototype.getPrevNextRow=function(t,e){var n=t.parentElement;if(n){var a=void 0;if(e===s.Keys.up?a=n.previousElementSibling:e===s.Keys.down&&(a=n.nextElementSibling),a&&a.children.length)return a.children[0]}},t.prototype.focusCell=function(t,e,n,a){var r;if(n===s.Keys.left)r=t.previousElementSibling;else if(n===s.Keys.right)r=t.nextElementSibling;else if(n===s.Keys.up||n===s.Keys.down){var i=this.getPrevNextRow(e,n);if(i){var o=i.getElementsByClassName("datatable-body-cell");o.length&&(r=o[a])}}r&&r.focus()},t.prototype.getRowSelected=function(t){return this.getRowSelectedIdx(t,this.selected)>-1},t.prototype.getRowSelectedIdx=function(t,e){var n=this;if(!e||!e.length)return-1;var a=this.rowIdentity(t);return e.findIndex(function(t){return n.rowIdentity(t)===a})},a([i.Input(),r("design:type",Array)],t.prototype,"rows",void 0),a([i.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"selectEnabled",void 0),a([i.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"select",void 0),a([i.Component({selector:"datatable-selection",template:"\n \n ",changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/body/summary/index.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n("./src/components/body/summary/summary-row.component.ts"))},"./src/components/body/summary/summary-row.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var s=n("@angular/core");function o(t){var e=t.filter(function(t){return!!t});return e.length?e.some(function(t){return"number"!=typeof t})?null:e.reduce(function(t,e){return t+e}):null}function u(t){return null}e.DataTableSummaryRowComponent=function(){function t(){this.summaryRow={}}return t.prototype.ngOnChanges=function(){this.columns&&this.rows&&(this.updateInternalColumns(),this.updateValues())},t.prototype.updateInternalColumns=function(){this._internalColumns=this.columns.map(function(t){return a({},t,{cellTemplate:t.summaryTemplate})})},t.prototype.updateValues=function(){var t=this;this.summaryRow={},this.columns.filter(function(t){return!t.summaryTemplate}).forEach(function(e){var n=t.rows.map(function(t){return t[e.prop]}),a=t.getSummaryFunction(e);t.summaryRow[e.prop]=e.pipe?e.pipe.transform(a(n)):a(n)})},t.prototype.getSummaryFunction=function(t){return void 0===t.summaryFunc?o:null===t.summaryFunc?u:t.summaryFunc},r([s.Input(),i("design:type",Array)],t.prototype,"rows",void 0),r([s.Input(),i("design:type",Array)],t.prototype,"columns",void 0),r([s.Input(),i("design:type",Number)],t.prototype,"rowHeight",void 0),r([s.Input(),i("design:type",Number)],t.prototype,"offsetX",void 0),r([s.Input(),i("design:type",Number)],t.prototype,"innerWidth",void 0),r([s.Component({selector:"datatable-summary-row",template:'\n \n \n ',host:{class:"datatable-summary-row"}})],t)}()},"./src/components/columns/column-cell.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableColumnCellDirective=function(){return a([i.Directive({selector:"[ngx-datatable-cell-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/columns/column-header.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableColumnHeaderDirective=function(){return a([i.Directive({selector:"[ngx-datatable-header-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/columns/column.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/components/columns/column-header.directive.ts"),o=n("./src/components/columns/column-cell.directive.ts"),u=n("./src/components/columns/tree.directive.ts"),c=n("./src/services/column-changes.service.ts");e.DataTableColumnDirective=function(){function t(t){this.columnChangesService=t,this.isFirstChange=!0}return t.prototype.ngOnChanges=function(){this.isFirstChange?this.isFirstChange=!1:this.columnChangesService.onInputChange()},a([i.Input(),r("design:type",String)],t.prototype,"name",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"prop",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenLeft",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"frozenRight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"flexGrow",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"comparator",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pipe",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"sortable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"draggable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"canAutoResize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"width",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"checkboxable",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"headerCheckboxable",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"headerClass",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"cellClass",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"isTreeColumn",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"treeLevelIndent",void 0),a([i.Input(),r("design:type",Function)],t.prototype,"summaryFunc",void 0),a([i.Input(),r("design:type",i.TemplateRef)],t.prototype,"summaryTemplate",void 0),a([i.Input(),i.ContentChild(o.DataTableColumnCellDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"cellTemplate",void 0),a([i.Input(),i.ContentChild(s.DataTableColumnHeaderDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"headerTemplate",void 0),a([i.Input(),i.ContentChild(u.DataTableColumnCellTreeToggle,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"treeToggleTemplate",void 0),a([i.Directive({selector:"ngx-datatable-column"}),r("design:paramtypes",[c.ColumnChangesService])],t)}()},"./src/components/columns/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/columns/column.directive.ts")),a(n("./src/components/columns/column-header.directive.ts")),a(n("./src/components/columns/column-cell.directive.ts")),a(n("./src/components/columns/tree.directive.ts"))},"./src/components/columns/tree.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableColumnCellTreeToggle=function(){return a([i.Directive({selector:"[ngx-datatable-tree-toggle]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/datatable.component.scss":function(t,e,n){var a=n("./node_modules/css-loader/index.js!./node_modules/postcss-loader/index.js!./node_modules/sass-loader/lib/loader.js??ref--3-4!./src/components/datatable.component.scss");t.exports="string"==typeof a?a:a.toString()},"./src/components/datatable.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),u=n("./src/utils/index.ts"),c=n("./src/services/index.ts"),l=n("./src/types/index.ts"),d=n("./src/components/body/index.ts"),f=n("./src/components/body/body-group-header.directive.ts"),p=n("./src/components/columns/index.ts"),h=n("./src/components/row-detail/index.ts"),g=n("./src/components/footer/index.ts"),b=n("./src/components/header/index.ts"),m=n("rxjs");e.DatatableComponent=function(){function t(t,e,n,a,r,i){this.scrollbarHelper=t,this.dimensionsHelper=e,this.cd=n,this.columnChangesService=i,this.selected=[],this.scrollbarV=!1,this.scrollbarH=!1,this.rowHeight=30,this.columnMode=l.ColumnMode.standard,this.headerHeight=30,this.footerHeight=0,this.externalPaging=!1,this.externalSorting=!1,this.loadingIndicator=!1,this.reorderable=!0,this.swapColumns=!0,this.sortType=l.SortType.single,this.sorts=[],this.cssClasses={sortAscending:"datatable-icon-up",sortDescending:"datatable-icon-down",pagerLeftArrow:"datatable-icon-left",pagerRightArrow:"datatable-icon-right",pagerPrevious:"datatable-icon-prev",pagerNext:"datatable-icon-skip"},this.messages={emptyMessage:"No data to display",totalMessage:"total",selectedMessage:"selected"},this.rowIdentity=function(t){return t},this.groupExpansionDefault=!1,this.selectAllRowsOnPage=!1,this.virtualization=!0,this.summaryRow=!1,this.summaryHeight=30,this.summaryPosition="top",this.scroll=new o.EventEmitter,this.activate=new o.EventEmitter,this.select=new o.EventEmitter,this.sort=new o.EventEmitter,this.page=new o.EventEmitter,this.reorder=new o.EventEmitter,this.resize=new o.EventEmitter,this.tableContextmenu=new o.EventEmitter(!1),this.treeAction=new o.EventEmitter,this.rowCount=0,this._offsetX=new m.BehaviorSubject(0),this._count=0,this._offset=0,this._subscriptions=[],this.element=a.nativeElement,this.rowDiffer=r.find({}).create()}return Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,t&&(this._internalRows=t.slice()),this.externalSorting||this.sortInternalRows(),this._internalRows=u.groupRowsByParents(this._internalRows,u.optionalGetterForProp(this.treeFromRelation),u.optionalGetterForProp(this.treeToRelation)),this.recalculate(),this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"groupRowsBy",{get:function(){return this._groupRowsBy},set:function(t){t&&(this._groupRowsBy=t,this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){t&&(this._internalColumns=t.slice(),u.setColumnDefaults(this._internalColumns),this.recalculateColumns()),this._columns=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"limit",{get:function(){return this._limit},set:function(t){this._limit=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return Math.max(Math.min(this._offset,Math.ceil(this.rowCount/this.pageSize)-1),0)},set:function(t){this._offset=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedHeader",{get:function(){var t=this.headerHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedRow",{get:function(){var t=this.rowHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVertScroll",{get:function(){return this.scrollbarV},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVirtualized",{get:function(){return this.virtualization},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isHorScroll",{get:function(){return this.scrollbarH},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelectable",{get:function(){return void 0!==this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckboxSelection",{get:function(){return this.selectionType===l.SelectionType.checkbox},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCellSelection",{get:function(){return this.selectionType===l.SelectionType.cell},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSingleSelection",{get:function(){return this.selectionType===l.SelectionType.single},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiSelection",{get:function(){return this.selectionType===l.SelectionType.multi},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiClickSelection",{get:function(){return this.selectionType===l.SelectionType.multiClick},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnTemplates",{get:function(){return this._columnTemplates},set:function(t){this._columnTemplates=t,this.translateColumns(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){var t=this.rows&&this.selected&&this.selected.length===this.rows.length;if(this.selectAllRowsOnPage){var e=this.bodyComponent.indexes;t=this.selected.length===e.last-e.first}return this.selected&&this.rows&&0!==this.rows.length&&t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.recalculate()},t.prototype.ngAfterViewInit=function(){var t=this;this.externalSorting||this.sortInternalRows(),"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame(function(){t.recalculate(),t.externalPaging&&t.scrollbarV&&t.page.emit({count:t.count,pageSize:t.pageSize,limit:t.limit,offset:0})})},t.prototype.ngAfterContentInit=function(){var t=this;this.columnTemplates.changes.subscribe(function(e){return t.translateColumns(e)}),this.listenForColumnInputChanges()},t.prototype.translateColumns=function(t){if(t){var e=t.toArray();e.length&&(this._internalColumns=u.translateTemplates(e),u.setColumnDefaults(this._internalColumns),this.recalculateColumns(),this.sortInternalRows(),this.cd.markForCheck())}},t.prototype.groupArrayBy=function(t,e){var n=new Map;return t.forEach(function(t){var a=t[e];n.has(a)?n.get(a).push(t):n.set(a,[t])}),Array.from(n,function(t){return{key:t[0],value:t[1]}})},t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.rows)&&(this.externalSorting?this._internalRows=this.rows.slice():this.sortInternalRows(),this._internalRows=u.groupRowsByParents(this._internalRows,u.optionalGetterForProp(this.treeFromRelation),u.optionalGetterForProp(this.treeToRelation)),this.recalculatePages(),this.cd.markForCheck())},t.prototype.recalculate=function(){this.recalculateDims(),this.recalculateColumns()},t.prototype.onWindowResize=function(){this.recalculate()},t.prototype.recalculateColumns=function(t,e,n){if(void 0===t&&(t=this._internalColumns),void 0===e&&(e=-1),void 0===n&&(n=this.scrollbarH),t){var a=this._innerWidth;return this.scrollbarV&&(a-=this.scrollbarHelper.width),this.columnMode===l.ColumnMode.force?u.forceFillColumnWidths(t,a,e,n):this.columnMode===l.ColumnMode.flex&&u.adjustColumnWidths(t,a),t}},t.prototype.recalculateDims=function(){var t=this.dimensionsHelper.getDimensions(this.element);if(this._innerWidth=Math.floor(t.width),this.scrollbarV){var e=t.height;this.headerHeight&&(e-=this.headerHeight),this.footerHeight&&(e-=this.footerHeight),this.bodyHeight=e}this.recalculatePages()},t.prototype.recalculatePages=function(){this.pageSize=this.calcPageSize(),this.rowCount=this.calcRowCount()},t.prototype.onBodyPage=function(t){this.externalPaging&&!this.virtualization||(this.offset=t.offset,this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}))},t.prototype.onBodyScroll=function(t){this._offsetX.next(t.offsetX),this.scroll.emit(t),this.cd.detectChanges()},t.prototype.onFooterPage=function(t){this.offset=t.page-1,this.bodyComponent.updateOffsetY(this.offset),this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}),this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected}))},t.prototype.calcPageSize=function(t){if(void 0===t&&(t=this.rows),this.scrollbarV&&this.virtualization){var e=Math.ceil(this.bodyHeight/this.rowHeight);return Math.max(e,0)}return void 0!==this.limit?this.limit:t?t.length:0},t.prototype.calcRowCount=function(t){return void 0===t&&(t=this.rows),this.externalPaging?this.count:t?this.groupedRows?this.groupedRows.length:null!=this.treeFromRelation&&null!=this.treeToRelation?this._internalRows.length:t.length:0},t.prototype.onColumnContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:l.ContextmenuType.header,content:t.column})},t.prototype.onRowContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:l.ContextmenuType.body,content:t.row})},t.prototype.onColumnResize=function(t){var e=t.column,n=t.newValue;if(void 0!==e){var r,i=this._internalColumns.map(function(t,i){return(t=a({},t)).$$id===e.$$id&&(r=i,t.width=n,t.$$oldWidth=n),t});this.recalculateColumns(i,r),this._internalColumns=i,this.resize.emit({column:e,newValue:n})}},t.prototype.onColumnReorder=function(t){var e=t.column,n=t.newValue,r=t.prevValue,i=this._internalColumns.map(function(t){return a({},t)});if(this.swapColumns){var s=i[n];i[n]=e,i[r]=s}else if(n>r){for(var o=i[r],u=r;un;u--)i[u]=i[u-1];i[n]=o}this._internalColumns=i,this.reorder.emit({column:e,newValue:n,prevValue:r})},t.prototype.onColumnSort=function(t){this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected})),this.sorts=t.sorts,!1===this.externalSorting&&this.sortInternalRows(),this._internalRows=u.groupRowsByParents(this._internalRows,u.optionalGetterForProp(this.treeFromRelation),u.optionalGetterForProp(this.treeToRelation)),this.offset=0,this.bodyComponent.updateOffsetY(this.offset),this.sort.emit(t)},t.prototype.onHeaderSelect=function(t){var e,n;if(this.selectAllRowsOnPage){var a=this.bodyComponent.indexes.first,r=this.bodyComponent.indexes.last,i=this.selected.length===r-a;this.selected=[],i||(e=this.selected).push.apply(e,this._internalRows.slice(a,r))}else i=this.selected.length===this.rows.length,this.selected=[],i||(n=this.selected).push.apply(n,this.rows);this.select.emit({selected:this.selected})},t.prototype.onBodySelect=function(t){this.select.emit(t)},t.prototype.onTreeAction=function(t){var e=this,n=t.row,a=this._rows.findIndex(function(n){return n[e.treeToRelation]===t.row[e.treeToRelation]});this.treeAction.emit({row:n,rowIndex:a})},t.prototype.ngOnDestroy=function(){this._subscriptions.forEach(function(t){return t.unsubscribe()})},t.prototype.listenForColumnInputChanges=function(){var t=this;this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe(function(){t.columnTemplates&&t.columnTemplates.notifyOnChanges()}))},t.prototype.sortInternalRows=function(){this._internalRows=u.sortRows(this._internalRows,this._internalColumns,this.sorts)},r([o.Input(),i("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),r([o.Input(),i("design:type",Object),i("design:paramtypes",[Object])],t.prototype,"rows",null),r([o.Input(),i("design:type",String),i("design:paramtypes",[String])],t.prototype,"groupRowsBy",null),r([o.Input(),i("design:type",Array)],t.prototype,"groupedRows",void 0),r([o.Input(),i("design:type",Array),i("design:paramtypes",[Array])],t.prototype,"columns",null),r([o.Input(),i("design:type",Array)],t.prototype,"selected",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"scrollbarV",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"scrollbarH",void 0),r([o.Input(),i("design:type",Number)],t.prototype,"rowHeight",void 0),r([o.Input(),i("design:type",String)],t.prototype,"columnMode",void 0),r([o.Input(),i("design:type",Object)],t.prototype,"headerHeight",void 0),r([o.Input(),i("design:type",Number)],t.prototype,"footerHeight",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"externalPaging",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"externalSorting",void 0),r([o.Input(),i("design:type",Number),i("design:paramtypes",[Number])],t.prototype,"limit",null),r([o.Input(),i("design:type",Number),i("design:paramtypes",[Number])],t.prototype,"count",null),r([o.Input(),i("design:type",Number),i("design:paramtypes",[Number])],t.prototype,"offset",null),r([o.Input(),i("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),r([o.Input(),i("design:type",String)],t.prototype,"selectionType",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"reorderable",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"swapColumns",void 0),r([o.Input(),i("design:type",String)],t.prototype,"sortType",void 0),r([o.Input(),i("design:type",Array)],t.prototype,"sorts",void 0),r([o.Input(),i("design:type",Object)],t.prototype,"cssClasses",void 0),r([o.Input(),i("design:type",Object)],t.prototype,"messages",void 0),r([o.Input(),i("design:type",Function)],t.prototype,"rowIdentity",void 0),r([o.Input(),i("design:type",Object)],t.prototype,"rowClass",void 0),r([o.Input(),i("design:type",Object)],t.prototype,"selectCheck",void 0),r([o.Input(),i("design:type",Function)],t.prototype,"displayCheck",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),r([o.Input(),i("design:type",String)],t.prototype,"trackByProp",void 0),r([o.Input(),i("design:type",Object)],t.prototype,"selectAllRowsOnPage",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"virtualization",void 0),r([o.Input(),i("design:type",String)],t.prototype,"treeFromRelation",void 0),r([o.Input(),i("design:type",String)],t.prototype,"treeToRelation",void 0),r([o.Input(),i("design:type",Boolean)],t.prototype,"summaryRow",void 0),r([o.Input(),i("design:type",Number)],t.prototype,"summaryHeight",void 0),r([o.Input(),i("design:type",String)],t.prototype,"summaryPosition",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"scroll",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"activate",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"select",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"sort",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"page",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"reorder",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"resize",void 0),r([o.Output(),i("design:type",Object)],t.prototype,"tableContextmenu",void 0),r([o.Output(),i("design:type",o.EventEmitter)],t.prototype,"treeAction",void 0),r([o.HostBinding("class.fixed-header"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isFixedHeader",null),r([o.HostBinding("class.fixed-row"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isFixedRow",null),r([o.HostBinding("class.scroll-vertical"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isVertScroll",null),r([o.HostBinding("class.virtualized"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isVirtualized",null),r([o.HostBinding("class.scroll-horz"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isHorScroll",null),r([o.HostBinding("class.selectable"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isSelectable",null),r([o.HostBinding("class.checkbox-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isCheckboxSelection",null),r([o.HostBinding("class.cell-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isCellSelection",null),r([o.HostBinding("class.single-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isSingleSelection",null),r([o.HostBinding("class.multi-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isMultiSelection",null),r([o.HostBinding("class.multi-click-selection"),i("design:type",Boolean),i("design:paramtypes",[])],t.prototype,"isMultiClickSelection",null),r([o.ContentChildren(p.DataTableColumnDirective),i("design:type",o.QueryList),i("design:paramtypes",[o.QueryList])],t.prototype,"columnTemplates",null),r([o.ContentChild(h.DatatableRowDetailDirective),i("design:type",h.DatatableRowDetailDirective)],t.prototype,"rowDetail",void 0),r([o.ContentChild(f.DatatableGroupHeaderDirective),i("design:type",f.DatatableGroupHeaderDirective)],t.prototype,"groupHeader",void 0),r([o.ContentChild(g.DatatableFooterDirective),i("design:type",g.DatatableFooterDirective)],t.prototype,"footer",void 0),r([o.ViewChild(d.DataTableBodyComponent),i("design:type",d.DataTableBodyComponent)],t.prototype,"bodyComponent",void 0),r([o.ViewChild(b.DataTableHeaderComponent),i("design:type",b.DataTableHeaderComponent)],t.prototype,"headerComponent",void 0),r([o.HostListener("window:resize"),u.throttleable(5),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],t.prototype,"onWindowResize",null),r([o.Component({selector:"ngx-datatable",template:'\n \n \n \n \n \n \n \n \n ',changeDetection:o.ChangeDetectionStrategy.OnPush,encapsulation:o.ViewEncapsulation.None,styles:[n("./src/components/datatable.component.scss")],host:{class:"ngx-datatable"}}),s(0,o.SkipSelf()),s(1,o.SkipSelf()),i("design:paramtypes",[c.ScrollbarHelper,c.DimensionsHelper,o.ChangeDetectorRef,o.ElementRef,o.KeyValueDiffers,c.ColumnChangesService])],t)}()},"./src/components/footer/footer-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTableFooterTemplateDirective=function(){return a([i.Directive({selector:"[ngx-datatable-footer-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/footer/footer.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/components/footer/footer.directive.ts");e.DataTableFooterComponent=function(){function t(){this.selectedCount=0,this.page=new i.EventEmitter}return Object.defineProperty(t.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"rowCount",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"pageSize",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"offset",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",s.DatatableFooterDirective)],t.prototype,"footerTemplate",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"selectedCount",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"page",void 0),a([i.Component({selector:"datatable-footer",template:'\n \n \n \n
\n \n {{selectedCount?.toLocaleString()}} {{selectedMessage}} / \n \n {{rowCount?.toLocaleString()}} {{totalMessage}}\n
\n \n \n \n ',host:{class:"datatable-footer"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/footer/footer.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/components/footer/footer-template.directive.ts");e.DatatableFooterDirective=function(){function t(){}return a([i.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([i.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),i.ContentChild(s.DataTableFooterTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Directive({selector:"ngx-datatable-footer"})],t)}()},"./src/components/footer/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/footer/footer.component.ts")),a(n("./src/components/footer/pager.component.ts")),a(n("./src/components/footer/footer.directive.ts")),a(n("./src/components/footer/footer-template.directive.ts"))},"./src/components/footer/pager.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DataTablePagerComponent=function(){function t(){this.change=new i.EventEmitter,this._count=0,this._page=1,this._size=0}return Object.defineProperty(t.prototype,"size",{get:function(){return this._size},set:function(t){this._size=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"page",{get:function(){return this._page},set:function(t){this._page=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalPages",{get:function(){var t=this.size<1?1:Math.ceil(this.count/this.size);return Math.max(t||0,1)},enumerable:!0,configurable:!0}),t.prototype.canPrevious=function(){return this.page>1},t.prototype.canNext=function(){return this.page0&&t<=this.totalPages&&t!==this.page&&(this.page=t,this.change.emit({page:t}))},t.prototype.calcPages=function(t){var e=[],n=1,a=this.totalPages;t=t||this.page,5this.totalPages&&(n=Math.max(this.totalPages-5+1,1),a=this.totalPages));for(var r=n;r<=a;r++)e.push({number:r,text:r});return e},a([i.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([i.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"size",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"page",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"change",void 0),a([i.Component({selector:"datatable-pager",template:'\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n \n \n {{pg.text}}\n \n \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n ',host:{class:"datatable-pager"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/header/header-cell.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/types/index.ts"),o=n("./src/utils/index.ts");n("./src/events.ts"),e.DataTableHeaderCellComponent=function(){function t(t){this.cd=t,this.sort=new i.EventEmitter,this.select=new i.EventEmitter,this.columnContextmenu=new i.EventEmitter(!1),this.sortFn=this.onSort.bind(this),this.selectFn=this.select.emit.bind(this.select),this.cellContext={column:this.column,sortDir:this.sortDir,sortFn:this.sortFn,allRowsSelected:this.allRowsSelected,selectFn:this.selectFn}}return Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){return this._allRowsSelected},set:function(t){this._allRowsSelected=t,this.cellContext.allRowsSelected=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.sortDir=this.calcSortDir(t),this.cellContext.sortDir=this.sortDir,this.sortClass=this.calcSortClass(this.sortDir),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-header-cell";if(this.column.sortable&&(t+=" sortable"),this.column.resizeable&&(t+=" resizeable"),this.column.headerClass)if("string"==typeof this.column.headerClass)t+=" "+this.column.headerClass;else if("function"==typeof this.column.headerClass){var e=this.column.headerClass({column:this.column});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ',host:{class:"datatable-header-cell"},changeDetection:i.ChangeDetectionStrategy.OnPush}),r("design:paramtypes",[i.ChangeDetectorRef])],t)}()},"./src/components/header/header.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},i=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var s=n("@angular/core"),o=n("./src/types/index.ts"),u=n("./src/utils/index.ts");e.DataTableHeaderComponent=function(){function t(t){this.cd=t,this.sort=new s.EventEmitter,this.reorder=new s.EventEmitter,this.resize=new s.EventEmitter,this.select=new s.EventEmitter,this.columnContextmenu=new s.EventEmitter(!1),this._styleByGroup={left:{},center:{},right:{}}}return Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._innerWidth=t,this._columns){var e=u.columnsByPin(this._columns);this._columnGroupWidths=u.columnGroupWidths(e,this._columns),this.setStylesByGroup()}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerHeight",{get:function(){return this._headerHeight},set:function(t){this._headerHeight="auto"!==t?t+"px":t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=u.columnsByPin(t);this._columnsByPin=u.columnsByPinArr(t),this._columnGroupWidths=u.columnGroupWidths(e,t),this.setStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.setStylesByGroup()},enumerable:!0,configurable:!0}),t.prototype.onLongPressStart=function(t){var e=t.event;t.model.dragging=!0,this.dragEventTarget=e},t.prototype.onLongPressEnd=function(t){var e=this,n=t.model;this.dragEventTarget=t.event,setTimeout(function(){var t=e._columns.find(function(t){return t.$$id===n.$$id});t&&(t.dragging=!1)},5)},Object.defineProperty(t.prototype,"headerWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),t.prototype.trackByGroups=function(t,e){return e.type},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.onColumnResized=function(t,e){t<=e.minWidth?t=e.minWidth:t>=e.maxWidth&&(t=e.maxWidth),this.resize.emit({column:e,prevValue:e.width,newValue:t})},t.prototype.onColumnReordered=function(t){var e=t.prevIndex,n=t.newIndex,a=t.model,r=this.getColumn(n);r.isTarget=!1,r.targetMarkerContext=void 0,this.reorder.emit({column:a,prevValue:e,newValue:n})},t.prototype.onTargetChanged=function(t){var e=t.prevIndex,n=t.newIndex,a=t.initialIndex;if(e||0===e){var r=this.getColumn(e);r.isTarget=!1,r.targetMarkerContext=void 0}if(n||0===n){var i=this.getColumn(n);i.isTarget=!0,a!==n&&(i.targetMarkerContext={class:"targetMarker ".concat(a>n?"dragFromRight":"dragFromLeft")})}},t.prototype.getColumn=function(t){var e=this._columnsByPin[0].columns.length;if(t\n \n \n \n \n \n ',host:{class:"datatable-header"},changeDetection:s.ChangeDetectionStrategy.OnPush}),i("design:paramtypes",[s.ChangeDetectorRef])],t)}()},"./src/components/header/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/header/header.component.ts")),a(n("./src/components/header/header-cell.component.ts"))},"./src/components/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/datatable.component.ts")),a(n("./src/components/header/index.ts")),a(n("./src/components/body/index.ts")),a(n("./src/components/footer/index.ts")),a(n("./src/components/columns/index.ts")),a(n("./src/components/row-detail/index.ts"))},"./src/components/row-detail/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/row-detail/row-detail.directive.ts")),a(n("./src/components/row-detail/row-detail-template.directive.ts"))},"./src/components/row-detail/row-detail-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.DatatableRowDetailTemplateDirective=function(){return a([i.Directive({selector:"[ngx-datatable-row-detail-template]"}),r("design:paramtypes",[i.TemplateRef])],function(t){this.template=t})}()},"./src/components/row-detail/row-detail.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/components/row-detail/row-detail-template.directive.ts");e.DatatableRowDetailDirective=function(){function t(){this.rowHeight=0,this.toggle=new i.EventEmitter}return t.prototype.toggleExpandRow=function(t){this.toggle.emit({type:"row",value:t})},t.prototype.expandAllRows=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllRows=function(){this.toggle.emit({type:"all",value:!1})},a([i.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([i.Input(),i.ContentChild(s.DatatableRowDetailTemplateDirective,{read:i.TemplateRef}),r("design:type",i.TemplateRef)],t.prototype,"template",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"toggle",void 0),a([i.Directive({selector:"ngx-datatable-row-detail"})],t)}()},"./src/datatable.module.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core"),i=n("@angular/common"),s=n("./src/components/index.ts"),o=n("./src/directives/index.ts"),u=n("./src/services/index.ts");e.NgxDatatableModule=function(){return a([r.NgModule({imports:[i.CommonModule],providers:[u.ScrollbarHelper,u.DimensionsHelper,u.ColumnChangesService],declarations:[s.DataTableFooterTemplateDirective,o.VisibilityDirective,o.DraggableDirective,o.ResizeableDirective,o.OrderableDirective,o.LongPressDirective,s.ScrollerComponent,s.DatatableComponent,s.DataTableColumnDirective,s.DataTableHeaderComponent,s.DataTableHeaderCellComponent,s.DataTableBodyComponent,s.DataTableFooterComponent,s.DataTablePagerComponent,s.ProgressBarComponent,s.DataTableBodyRowComponent,s.DataTableRowWrapperComponent,s.DatatableRowDetailDirective,s.DatatableGroupHeaderDirective,s.DatatableRowDetailTemplateDirective,s.DataTableBodyCellComponent,s.DataTableSelectionComponent,s.DataTableColumnHeaderDirective,s.DataTableColumnCellDirective,s.DataTableColumnCellTreeToggle,s.DatatableFooterDirective,s.DatatableGroupHeaderTemplateDirective,s.DataTableSummaryRowComponent],exports:[s.DatatableComponent,s.DatatableRowDetailDirective,s.DatatableGroupHeaderDirective,s.DatatableRowDetailTemplateDirective,s.DataTableColumnDirective,s.DataTableColumnHeaderDirective,s.DataTableColumnCellDirective,s.DataTableColumnCellTreeToggle,s.DataTableFooterTemplateDirective,s.DatatableFooterDirective,s.DataTablePagerComponent,s.DatatableGroupHeaderTemplateDirective]})],function(){})}()},"./src/directives/draggable.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("rxjs"),o=n("rxjs/operators");e.DraggableDirective=function(){function t(t){this.dragX=!0,this.dragY=!0,this.dragStart=new i.EventEmitter,this.dragging=new i.EventEmitter,this.dragEnd=new i.EventEmitter,this.isDragging=!1,this.element=t.nativeElement}return t.prototype.ngOnChanges=function(t){t.dragEventTarget&&t.dragEventTarget.currentValue&&this.dragModel.dragging&&this.onMousedown(t.dragEventTarget.currentValue)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(t){this.isDragging&&(this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this._destroySubscription(),this.dragEnd.emit({event:t,element:this.element,model:this.dragModel})))},t.prototype.onMousedown=function(t){var e=this;if(t.target.classList.contains("draggable")&&(this.dragX||this.dragY)){t.preventDefault(),this.isDragging=!0;var n={x:t.clientX,y:t.clientY},a=s.fromEvent(document,"mouseup");this.subscription=a.subscribe(function(t){return e.onMouseup(t)});var r=s.fromEvent(document,"mousemove").pipe(o.takeUntil(a)).subscribe(function(t){return e.move(t,n)});this.subscription.add(r),this.dragStart.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype.move=function(t,e){if(this.isDragging){var n=t.clientY-e.y;this.dragX&&(this.element.style.left=t.clientX-e.x+"px"),this.dragY&&(this.element.style.top=n+"px"),this.element.classList.add("dragging"),this.dragging.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Object)],t.prototype,"dragEventTarget",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"dragModel",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragX",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"dragY",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragging",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"dragEnd",void 0),a([i.Directive({selector:"[draggable]"}),r("design:paramtypes",[i.ElementRef])],t)}()},"./src/directives/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/directives/draggable.directive.ts")),a(n("./src/directives/long-press.directive.ts")),a(n("./src/directives/orderable.directive.ts")),a(n("./src/directives/resizeable.directive.ts")),a(n("./src/directives/visibility.directive.ts"))},"./src/directives/long-press.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("rxjs"),o=n("rxjs/operators");n("./src/events.ts"),e.LongPressDirective=function(){function t(){this.pressEnabled=!0,this.duration=500,this.longPressStart=new i.EventEmitter,this.longPressing=new i.EventEmitter,this.longPressEnd=new i.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(t.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLongPress",{get:function(){return this.isLongPressing},enumerable:!0,configurable:!0}),t.prototype.onMouseDown=function(t){var e=this;if(1===t.which&&this.pressEnabled&&!t.target.classList.contains("resize-handle")){this.mouseX=t.clientX,this.mouseY=t.clientY,this.pressing=!0,this.isLongPressing=!1;var n=s.fromEvent(document,"mouseup");this.subscription=n.subscribe(function(t){return e.onMouseup()}),this.timeout=setTimeout(function(){e.isLongPressing=!0,e.longPressStart.emit({event:t,model:e.pressModel}),e.subscription.add(s.fromEvent(document,"mousemove").pipe(o.takeUntil(n)).subscribe(function(t){return e.onMouseMove(t)})),e.loop(t)},this.duration),this.loop(t)}},t.prototype.onMouseMove=function(t){if(this.pressing&&!this.isLongPressing){var e=Math.abs(t.clientX-this.mouseX)>10,n=Math.abs(t.clientY-this.mouseY)>10;(e||n)&&this.endPress()}},t.prototype.loop=function(t){var e=this;this.isLongPressing&&(this.timeout=setTimeout(function(){e.longPressing.emit({event:t,model:e.pressModel}),e.loop(t)},50))},t.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this._destroySubscription(),this.longPressEnd.emit({model:this.pressModel})},t.prototype.onMouseup=function(){this.endPress()},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"pressEnabled",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"pressModel",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"duration",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressStart",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressing",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"longPressEnd",void 0),a([i.HostBinding("class.press"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"press",null),a([i.HostBinding("class.longpress"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isLongPress",null),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseDown",null),a([i.Directive({selector:"[long-press]"})],t)}()},"./src/directives/orderable.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var s=n("@angular/core"),o=n("./src/directives/draggable.directive.ts"),u=n("@angular/platform-browser");e.OrderableDirective=function(){function t(t,e){this.document=e,this.reorder=new s.EventEmitter,this.targetChanged=new s.EventEmitter,this.differ=t.find({}).create()}return t.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},t.prototype.ngOnDestroy=function(){this.draggables.forEach(function(t){t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe()})},t.prototype.updateSubscriptions=function(){var t=this,e=this.differ.diff(this.createMapDiffs());if(e){var n=function(t){var e=t.previousValue;e&&(e.dragStart.unsubscribe(),e.dragging.unsubscribe(),e.dragEnd.unsubscribe())};e.forEachAddedItem((function(e){var a=e.currentValue;n({previousValue:e.previousValue}),a&&(a.dragStart.subscribe(t.onDragStart.bind(t)),a.dragging.subscribe(t.onDragging.bind(t)),a.dragEnd.subscribe(t.onDragEnd.bind(t)))}).bind(this)),e.forEachRemovedItem(n.bind(this))}},t.prototype.onDragStart=function(){this.positions={};for(var t=0,e=0,n=this.draggables.toArray();e=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("rxjs"),o=(n("./src/events.ts"),n("rxjs/operators"));e.ResizeableDirective=function(){function t(t,e){this.renderer=e,this.resizeEnabled=!0,this.resize=new i.EventEmitter,this.resizing=!1,this.element=t.nativeElement}return t.prototype.ngAfterViewInit=function(){var t=this.renderer,e=t.createElement("span");t.addClass(e,this.resizeEnabled?"resize-handle":"resize-handle--not-resizable"),t.appendChild(this.element,e)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this._destroySubscription(),this.resize.emit(this.element.clientWidth))},t.prototype.onMousedown=function(t){var e=this,n=t.target.classList.contains("resize-handle"),a=this.element.clientWidth,r=t.screenX;if(n){t.stopPropagation(),this.resizing=!0;var i=s.fromEvent(document,"mouseup");this.subscription=i.subscribe(function(t){return e.onMouseup()});var u=s.fromEvent(document,"mousemove").pipe(o.takeUntil(i)).subscribe(function(t){return e.move(t,a,r)});this.subscription.add(u)}},t.prototype.move=function(t,e,n){var a=e+(t.screenX-n);(!this.minWidth||a>=this.minWidth)&&(!this.maxWidth||a<=this.maxWidth)&&(this.element.style.width=a+"px")},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([i.Input(),r("design:type",Boolean)],t.prototype,"resizeEnabled",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"resize",void 0),a([i.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMousedown",null),a([i.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}}),r("design:paramtypes",[i.ElementRef,i.Renderer2])],t)}()},"./src/directives/visibility.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");e.VisibilityDirective=function(){function t(t,e){this.element=t,this.zone=e,this.isVisible=!1,this.visible=new i.EventEmitter}return t.prototype.ngOnInit=function(){this.runCheck()},t.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},t.prototype.onVisibilityChange=function(){var t=this;this.zone.run(function(){t.isVisible=!0,t.visible.emit(!0)})},t.prototype.runCheck=function(){var t=this,e=function(){var n=t.element.nativeElement;n.offsetHeight&&n.offsetWidth?(clearTimeout(t.timeout),t.onVisibilityChange()):(clearTimeout(t.timeout),t.zone.runOutsideAngular(function(){t.timeout=setTimeout(function(){return e()},50)}))};this.timeout=setTimeout(function(){return e()})},a([i.HostBinding("class.visible"),r("design:type",Boolean)],t.prototype,"isVisible",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"visible",void 0),a([i.Directive({selector:"[visibilityObserver]"}),r("design:paramtypes",[i.ElementRef,i.NgZone])],t)}()},"./src/events.ts":function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.MouseEvent=("undefined"!=typeof window&&window||t).MouseEvent,e.KeyboardEvent=("undefined"!=typeof window&&window||t).KeyboardEvent,e.Event=("undefined"!=typeof window&&window||t).Event}).call(e,n("./node_modules/webpack/buildin/global.js"))},"./src/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/datatable.module.ts")),a(n("./src/types/index.ts")),a(n("./src/components/index.ts")),a(n("./src/services/index.ts"))},"./src/services/column-changes.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core"),i=n("rxjs");e.ColumnChangesService=function(){function t(){this.columnInputChanges=new i.Subject}return Object.defineProperty(t.prototype,"columnInputChanges$",{get:function(){return this.columnInputChanges.asObservable()},enumerable:!0,configurable:!0}),t.prototype.onInputChange=function(){this.columnInputChanges.next()},a([r.Injectable()],t)}()},"./src/services/dimensions-helper.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core");e.DimensionsHelper=function(){function t(){}return t.prototype.getDimensions=function(t){return t.getBoundingClientRect()},a([r.Injectable()],t)}()},"./src/services/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/services/scrollbar-helper.service.ts")),a(n("./src/services/dimensions-helper.service.ts")),a(n("./src/services/column-changes.service.ts"))},"./src/services/scrollbar-helper.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var s=n("@angular/core"),o=n("@angular/platform-browser");e.ScrollbarHelper=function(){function t(t){this.document=t,this.width=this.getWidth()}return t.prototype.getWidth=function(){var t=this.document.createElement("div");t.style.visibility="hidden",t.style.width="100px",t.style.msOverflowStyle="scrollbar",this.document.body.appendChild(t);var e=t.offsetWidth;t.style.overflow="scroll";var n=this.document.createElement("div");n.style.width="100%",t.appendChild(n);var a=n.offsetWidth;return t.parentNode.removeChild(t),e-a},a([s.Injectable(),i(0,s.Inject(o.DOCUMENT)),r("design:paramtypes",[Object])],t)}()},"./src/types/click.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.double="double"}(e.ClickType||(e.ClickType={}))},"./src/types/column-mode.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.standard="standard",t.flex="flex",t.force="force"}(e.ColumnMode||(e.ColumnMode={}))},"./src/types/contextmenu.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.header="header",t.body="body"}(e.ContextmenuType||(e.ContextmenuType={}))},"./src/types/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/types/column-mode.type.ts")),a(n("./src/types/sort.type.ts")),a(n("./src/types/sort-direction.type.ts")),a(n("./src/types/selection.type.ts")),a(n("./src/types/click.type.ts")),a(n("./src/types/contextmenu.type.ts"))},"./src/types/selection.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi",t.multiClick="multiClick",t.cell="cell",t.checkbox="checkbox"}(e.SelectionType||(e.SelectionType={}))},"./src/types/sort-direction.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.asc="asc",t.desc="desc"}(e.SortDirection||(e.SortDirection={}))},"./src/types/sort.type.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.single="single",t.multi="multi"}(e.SortType||(e.SortType={}))},"./src/utils/camel-case.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=function(t){return(t=(t=(t=t.replace(/[^a-zA-Z0-9 ]/g," ")).replace(/([a-z](?=[A-Z]))/g,"$1 ")).replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase()).replace(/([ 0-9]+)([a-zA-Z])/g,function(t,e,n){return e.trim()+n.toUpperCase()})},e.deCamelCase=function(t){return t.replace(/([A-Z])/g,function(t){return" "+t}).replace(/^./,function(t){return t.toUpperCase()})}},"./src/utils/column-helper.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/utils/camel-case.ts"),r=n("./src/utils/id.ts"),i=n("./src/utils/column-prop-getters.ts");function s(t){return null==t}e.setColumnDefaults=function(t){if(t)for(var e=!1,n=0,o=t;n=e;for(var g=0,b=o;gm.maxWidth?(m.width=m.maxWidth,h.push(m)):m.width=y}m.width=Math.max(0,m.width)}p=e-(f=s(t)),i(o,h)}while(p>0&&0!==o.length)}},"./src/utils/prefixes.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,r,i,s,o=n("./src/utils/camel-case.ts"),u={},c="undefined"!=typeof document?document.createElement("div").style:void 0,l=(s=void 0!==(i=null!==(r=void 0!==(a="undefined"!=typeof window?window.getComputedStyle(document.documentElement,""):void 0)?Array.prototype.slice.call(a).join("").match(/-(moz|webkit|ms)-/):null)?r[1]:void 0)?"WebKit|Moz|MS|O".match(new RegExp("("+i+")","i"))[1]:void 0)?{dom:s,lowercase:i,css:"-"+i+"-",js:i[0].toUpperCase()+i.substr(1)}:void 0;e.getVendorPrefixedName=function(t){var e=o.camelCase(t);return u[e]||(void 0!==l&&void 0!==c[l.css+t]?u[e]=l.css+t:void 0!==c[t]&&(u[e]=t)),u[e]}},"./src/utils/row-height-cache.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RowHeightCache=function(){function t(){this.treeArray=[]}return t.prototype.clearCache=function(){this.treeArray=[]},t.prototype.initCache=function(t){var e=t.rows,n=t.rowHeight,a=t.detailRowHeight,r=t.externalVirtual,i=t.rowCount,s=t.rowIndexes,o=t.rowExpansions,u="function"==typeof n,c="function"==typeof a;if(!u&&isNaN(n))throw new Error("Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n valid number or function value: ("+n+") when 'scrollbarV' is enabled.");if(!c&&isNaN(a))throw new Error("Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n valid number or function value: ("+a+") when 'scrollbarV' is enabled.");var l=r?i:e.length;this.treeArray=new Array(l);for(var d=0;d=0;)e+=this.treeArray[t],t=(t&t+1)-1;return e},t.prototype.queryBetween=function(t,e){return this.query(e)-this.query(t-1)},t.prototype.calcRowIndex=function(t){if(!this.treeArray.length)return 0;for(var e=-1,n=this.treeArray.length,a=Math.pow(2,n.toString(2).length-1);0!==a;a>>=1){var r=e+a;r=this.treeArray[r]&&(t-=this.treeArray[r],e=r)}return e+1},t}()},"./src/utils/selection.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.selectRows=function(t,e,n){var a=n(e,t);return a>-1?t.splice(a,1):t.push(e),t},e.selectRowsBetween=function(t,e,n,a,r){for(var i=n=n||!i&&s>=a&&s<=n)&&s>=o.start&&s<=o.end&&t.push(e[s])}return t}},"./src/utils/sort.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/types/index.ts"),r=n("./src/utils/column-prop-getters.ts");function i(t,e){if(null==t&&(t=0),null==e&&(e=0),t instanceof Date&&e instanceof Date){if(te)return 1}else if(isNaN(parseFloat(t))||!isFinite(t)||isNaN(parseFloat(e))||!isFinite(e)){if(t=String(t),e=String(e),t.toLowerCase()e.toLowerCase())return 1}else{if(parseFloat(t)parseFloat(e))return 1}return 0}e.nextSortDir=function(t,e){return t===a.SortType.single?e===a.SortDirection.asc?a.SortDirection.desc:a.SortDirection.asc:e?e===a.SortDirection.asc?a.SortDirection.desc:void 0:a.SortDirection.asc},e.orderByComparator=i,e.sortRows=function(t,e,n){if(!t)return[];if(!n||!n.length||!e)return t.slice();var s=new Map;t.forEach(function(t,e){return s.set(t,e)});var o=t.slice(),u=e.reduce(function(t,e){return e.comparator&&"function"==typeof e.comparator&&(t[e.prop]=e.comparator),t},{}),c=n.map(function(t){var e=t.prop;return{prop:e,dir:t.dir,valueGetter:r.getterForProp(e),compareFn:u[e]||i}});return o.sort(function(t,e){for(var n=0,r=c;n-1&&(c=l),s.parent=a[c],s.row.level=s.parent.row.level+1,s.parent.children.push(s)}var d=[];return a[0].flatten(function(){d=d.concat([this.row])},!0),d}return t};var r=function(){function t(t){void 0===t&&(t=null),t||(t={level:-1,treeStatus:"expanded"}),this.row=t,this.parent=null,this.children=[]}return t.prototype.flatten=function(t,e){if("expanded"===this.row.treeStatus)for(var n=0,a=this.children.length;n1)this.connection=null;else{var n=this.connection,a=t._connection;this.connection=null,!a||n&&a!==n||a.unsubscribe()}}else this.connection=null},e}(r.a)},yJti:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var a=function(t){return t[t.ValueOk=0]="ValueOk",t[t.ValueStale=1]="ValueStale",t[t.ValueNone=2]="ValueNone",t[t.ValueException=3]="ValueException",t}({})},yPMN:function(t,e,n){"use strict";n("CDJp")._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),t.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},yPMs:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,n){return t<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},ylLw:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("CcnG"),s=n("3MdB");n("ZYjt"),e.OrderableDirective=function(){function t(t,e){this.document=e,this.reorder=new i.EventEmitter,this.targetChanged=new i.EventEmitter,this.differ=t.find({}).create()}return t.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},t.prototype.ngOnDestroy=function(){this.draggables.forEach(function(t){t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe()})},t.prototype.updateSubscriptions=function(){var t=this,e=this.differ.diff(this.createMapDiffs());if(e){var n=function(t){var e=t.previousValue;e&&(e.dragStart.unsubscribe(),e.dragging.unsubscribe(),e.dragEnd.unsubscribe())};e.forEachAddedItem((function(e){var a=e.currentValue;n({previousValue:e.previousValue}),a&&(a.dragStart.subscribe(t.onDragStart.bind(t)),a.dragging.subscribe(t.onDragging.bind(t)),a.dragEnd.subscribe(t.onDragEnd.bind(t)))}).bind(this)),e.forEachRemovedItem(n.bind(this))}},t.prototype.onDragStart=function(){this.positions={};for(var t=0,e=0,n=this.draggables.toArray();e11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}()},z3Vd:function(t,e,n){!function(t){"use strict";var e="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(t,n,a,r){var i=function(t){var n=Math.floor(t%1e3/100),a=Math.floor(t%100/10),r=t%10,i="";return n>0&&(i+=e[n]+"vatlh"),a>0&&(i+=(""!==i?" ":"")+e[a]+"maH"),r>0&&(i+=(""!==i?" ":"")+e[r]),""===i?"pagh":i}(t);switch(a){case"ss":return i+" lup";case"mm":return i+" tup";case"hh":return i+" rep";case"dd":return i+" jaj";case"MM":return i+" jar";case"yy":return i+" DIS"}}t.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq"},past:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu\u2019":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret"},s:"puS lup",ss:n,m:"wa\u2019 tup",mm:n,h:"wa\u2019 rep",hh:n,d:"wa\u2019 jaj",dd:n,M:"wa\u2019 jar",MM:n,y:"wa\u2019 DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},z5nN:function(t,e,n){"use strict";n.d(e,"b",function(){return u}),n.d(e,"a",function(){return f});var a=n("CcnG"),r=n("DQlY"),i=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,2,"div",[["role","document"]],[[8,"className",0]],null,null,null,null)),(t()(),a["\u0275eld"](1,0,null,null,1,"div",[["class","modal-content"]],null,null,null,null,null)),a["\u0275ncd"](null,0)],null,function(t,e){var n=e.component;t(e,0,0,"modal-dialog"+(n.config.class?" "+n.config.class:""))})}function o(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"modal-container",[["class","modal"],["role","dialog"],["tabindex","-1"]],[[1,"aria-modal",0]],[[null,"click"],["window","keydown.esc"]],function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["\u0275nov"](t,1).onClick(n)&&r),"window:keydown.esc"===e&&(r=!1!==a["\u0275nov"](t,1).onEsc(n)&&r),r},s,i)),a["\u0275did"](1,245760,null,0,r.d,[r.f,a.ElementRef,a.Renderer2],null,null)],function(t,e){t(e,1,0)},function(t,e){t(e,0,0,!0)})}var u=a["\u0275ccf"]("modal-container",r.d,o,{},{},["*"]),c=a["\u0275crt"]({encapsulation:2,styles:[],data:{}});function l(t){return a["\u0275vid"](0,[],null,null)}function d(t){return a["\u0275vid"](0,[(t()(),a["\u0275eld"](0,0,null,null,1,"bs-modal-backdrop",[["class","modal-backdrop"]],null,null,null,l,c)),a["\u0275did"](1,114688,null,0,r.c,[a.ElementRef,a.Renderer2],null,null)],function(t,e){t(e,1,0)},null)}var f=a["\u0275ccf"]("bs-modal-backdrop",r.c,d,{},{},[])},zAZS:function(t,e,n){"use strict";n.d(e,"a",function(){return i});var a=n("mrSG"),r=n("FFOo");function i(t,e){return function(n){return n.lift(new s(t,e,n))}}var s=function(){function t(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}return t.prototype.call=function(t,e){return e.subscribe(new o(t,this.predicate,this.thisArg,this.source))},t}(),o=function(t){function e(e,n,a,r){var i=t.call(this,e)||this;return i.predicate=n,i.thisArg=a,i.source=r,i.index=0,i.thisArg=a||i,i}return a.__extends(e,t),e.prototype.notifyComplete=function(t){this.destination.next(t),this.destination.complete()},e.prototype._next=function(t){var e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e||this.notifyComplete(!1)},e.prototype._complete=function(){this.notifyComplete(!0)},e}(r.a)},zQHH:function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("15JJ");function r(t,e){return e?Object(a.a)(function(){return t},e):Object(a.a)(function(){return t})}},zUnb:function(t,e,n){"use strict";n.r(e);var a=n("tAZD"),r=n.n(a),i=n("Ip0R"),s=n("CcnG"),o=window["base-href"],u=function(t){t=t||"en-US";try{return n("vOVK")("./messages."+t+".xlf")}catch(e){return[]}},c=function(){return function(){}}(),l=n("eajB"),d=n("aexS"),f=function(){return Object.assign(new l.a,{container:"body"})},p=function(){function t(t,e){this.authStorageService=t,this.router=e,this.title="cd"}return t.prototype.isLoginActive=function(){return"/login"===this.router.url||!this.authStorageService.isLoggedIn()},t.prototype.isDashboardPage=function(){return"/dashboard"===this.router.url},t}(),h=n("mrSG"),g=n("S5bw"),b=function(){function t(){}return t.START="start",t.STOP="stop",t.UPDATE="update",t.RESET="reset",t.UNSUBSCRIBE="unsubscribe",t}(),m="block-ui-main",y=function(){function t(){this.blockUISettings={},this.blockUIInstances={},this.blockUISubject=new g.a,this.blockUIObservable=this.blockUISubject.asObservable(),this.blockUIObservable.subscribe(this.blockUIMiddleware.bind(this))}return t.prototype.getSettings=function(){return this.blockUISettings},t.prototype.updateSettings=function(t){void 0===t&&(t={}),this.blockUISettings=Object(h.__assign)({},this.blockUISettings,t)},t.prototype.decorate=function(t){void 0===t&&(t=m);var e={name:t,isActive:!1,blockCount:0,start:this.dispatch(this.blockUISubject,b.START,t),update:this.dispatch(this.blockUISubject,b.UPDATE,t),stop:this.dispatch(this.blockUISubject,b.STOP,t),reset:this.dispatch(this.blockUISubject,b.RESET,t),unsubscribe:this.dispatch(this.blockUISubject,b.UNSUBSCRIBE,t)};return this.blockUIInstances[t]=this.blockUIInstances[t]||e,e},t.prototype.observe=function(){return this.blockUIObservable},t.prototype.blockUIMiddleware=function(t){var e=t.name,n=null;switch(t.action){case b.START:n=!0;break;case b.STOP:case b.RESET:n=!1}null!==n&&(this.blockUIInstances[e].isActive=n)},t.prototype.dispatch=function(t,e,n){return void 0===n&&(n=m),function(a){t.next({name:n,action:e,message:a})}},t}(),v=function(){function t(t){this.blockUI=t}return t.prototype.ngOnInit=function(){this.name=this.name||m,this.template=this.template||this.blockUI.blockUISettings.template},t}(),_=function(){function t(t,e,n){this.blockUI=t,this.resolver=e,this.changeDetectionRef=n,this.name=m,this.delayStart=0,this.delayStop=0,this.state={startTimeout:null,stopTimeout:null,blockCount:0},this.active=!1}return t.prototype.ngOnInit=function(){this.settings=this.blockUI.getSettings(),this.blockUISubscription=this.subscribeToBlockUI(this.blockUI.observe())},t.prototype.ngAfterViewInit=function(){try{if(!this.templateCmp)return!1;if(this.templateCmp instanceof s.TemplateRef)this.templateOutlet.createEmbeddedView(this.templateCmp);else{var t=this.resolver.resolveComponentFactory(this.templateCmp);this.templateCompRef=this.templateOutlet.createComponent(t),this.updateBlockTemplate(this.message)}}catch(e){console.error("ng-block-ui:",e)}},t.prototype.ngAfterViewChecked=function(){this.changeDetectionRef.detectChanges()},t.prototype.subscribeToBlockUI=function(t){var e=this;return t.subscribe(function(t){return e.onDispatchedEvent(t)})},t.prototype.onDispatchedEvent=function(t){switch(t.action){case b.START:this.onStart(t);break;case b.STOP:this.onStop(t);break;case b.UPDATE:this.onUpdate(t);break;case b.RESET:this.onReset();break;case b.UNSUBSCRIBE:this.onStop(t),this.onUnsubscribe(t.name)}},t.prototype.onStart=function(t){var e=this,n=t.message;if(t.name===this.name){var a=this.delayStart||this.settings.delayStart||0;a?(null===this.state.startTimeout&&(this.state.startTimeout=setTimeout(function(){e.showBlock(n)},a)),this.state.blockCount++):this.showBlock(n),this.updateInstanceBlockCount()}},t.prototype.onStop=function(t){var e=this;if(t.name===this.name){if(this.state.blockCount>1)this.state.blockCount--;else if(this.active){var n=this.delayStop||this.settings.delayStop||0;n?null===this.state.stopTimeout&&(this.state.stopTimeout=setTimeout(function(){e.hideBlock()},n)):this.hideBlock()}else this.clearState();this.updateInstanceBlockCount()}},t.prototype.onReset=function(){this.hideBlock()},t.prototype.onUpdate=function(t){var e=t.message;t.name===this.name&&(this.active=!0,this.message=e||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.changeDetectionRef.detectChanges())},t.prototype.showBlock=function(t){this.active=!0,this.message=t||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.changeDetectionRef.detectChanges()},t.prototype.hideBlock=function(){this.clearState(),this.active=!1,this.changeDetectionRef.detectChanges()},t.prototype.clearState=function(){null!=this.state.startTimeout&&clearTimeout(this.state.startTimeout),null!=this.state.stopTimeout&&clearTimeout(this.state.stopTimeout),this.state.blockCount=0,this.state.startTimeout=null,this.state.stopTimeout=null,this.updateInstanceBlockCount()},t.prototype.updateBlockTemplate=function(t){this.templateCompRef&&this.templateCompRef instanceof s.ComponentRef&&(this.templateCompRef.instance.message=t)},t.prototype.onUnsubscribe=function(t){this.blockUISubscription&&t===this.name&&this.blockUISubscription.unsubscribe()},t.prototype.updateInstanceBlockCount=function(){this.blockUI.blockUIInstances[this.name]&&(this.blockUI.blockUIInstances[this.name].blockCount=this.state.blockCount)},t.prototype.ngOnDestroy=function(){this.onUnsubscribe(this.name)},t}(),x=function(){function t(t){this.blockUIInstance=t}return t.prototype.start=function(t,e){this.dispatch(t,b.START,e)},t.prototype.stop=function(t){this.dispatch(t,b.STOP)},t.prototype.unsubscribe=function(t){this.dispatch(t,b.UNSUBSCRIBE)},t.prototype.isActive=function(t){void 0===t&&(t=null);var e=t?this.toArray(t):null,n=this.blockUIInstance.blockUIInstances;return Object.keys(n).some(function(t){return e?e.indexOf(n[t].name)>=0&&n[t].isActive:n[t].isActive})},t.prototype.dispatch=function(t,e,n){var a=this;void 0===t&&(t=[]),this.toArray(t).forEach(function(t){return a.blockUIInstance.decorate(t)[e](n)})},t.prototype.toArray=function(t){return void 0===t&&(t=[]),"string"==typeof t?[t]:t},t}(),T=new y,w=new s.InjectionToken("BlockUIModuleSettings");function S(t){return T.updateSettings(t),T}var O=function(){function t(){}return t.forRoot=function(e){return void 0===e&&(e={}),{ngModule:t,providers:[{provide:w,useValue:e},{provide:y,useFactory:S,deps:[w]},x]}},t}(),I=s["\u0275crt"]({encapsulation:2,styles:[],data:{}});function C(t){return s["\u0275vid"](0,[s["\u0275ncd"](null,0),(t()(),s["\u0275eld"](1,0,null,null,1,"block-ui-content",[],null,null,null,P,R)),s["\u0275did"](2,12828672,null,0,_,[y,s.ComponentFactoryResolver,s.ChangeDetectorRef],{name:[0,"name"],delayStart:[1,"delayStart"],delayStop:[2,"delayStop"],defaultMessage:[3,"defaultMessage"],templateCmp:[4,"templateCmp"]},null)],function(t,e){var n=e.component;t(e,2,0,n.name,n.delayStart,n.delayStop,n.message,n.template)},null)}function k(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"block-ui",[],null,null,null,C,I)),s["\u0275did"](1,114688,null,0,v,[y],null,null)],function(t,e){t(e,1,0)},null)}var N=s["\u0275ccf"]("block-ui",v,k,{name:"name",message:"message",delayStart:"delayStart",delayStop:"delayStop",template:"template"},{},["*"]),R=s["\u0275crt"]({encapsulation:2,styles:["\n.block-ui-wrapper {\n display: none;\n position: fixed;\n height: 100%;\n width: 100%;\n top: 0;\n left: 0;\n background: rgba(0, 0, 0, 0.70);\n z-index: 30000;\n cursor: wait;\n}\n\n.block-ui-wrapper.block-ui-wrapper--element {\n position: absolute;\n}\n\n.block-ui-wrapper.active {\n display: block;\n}\n\n.block-ui-wrapper.block-ui-main {\n position: fixed;\n}\n\n.block-ui-spinner,\n.block-ui-template {\n position: absolute;\n top: 40%;\n margin: 0 auto;\n left: 0;\n right: 0;\n transform: translateY(-50%);\n}\n\n.block-ui-spinner > .message {\n font-size: 1.3em;\n text-align: center;\n color: #fff;\n}\n\n.block-ui__element {\n position: relative;\n}\n\n.loader,\n.loader:after {\n border-radius: 50%;\n width: 10em;\n height: 10em;\n}\n.loader {\n margin: 7px auto;\n font-size: 5px;\n position: relative;\n text-indent: -9999em;\n border-top: 1.1em solid rgba(255, 255, 255, 0.2);\n border-right: 1.1em solid rgba(255, 255, 255, 0.2);\n border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);\n border-left: 1.1em solid #ffffff;\n -webkit-transform: translateZ(0);\n -ms-transform: translateZ(0);\n transform: translateZ(0);\n -webkit-animation: load8 1.1s infinite linear;\n animation: load8 1.1s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes load8 {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n"],data:{}});function A(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,1,0,n.message||n.defaultMessage)})}function D(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"div",[["class","block-ui-spinner"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,0,"div",[["class","loader"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,A)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,n.message||n.defaultMessage)},null)}function E(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](0,null,null,0))],null,null)}function L(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,[[1,3],["templateOutlet",2]],null,0,null,E)),(t()(),s["\u0275and"](0,null,null,0))],null,null)}function P(t){return s["\u0275vid"](0,[s["\u0275qud"](671088640,1,{templateOutlet:0}),(t()(),s["\u0275eld"](1,0,null,null,6,"div",[],null,null,null,null,null)),s["\u0275did"](2,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](3,{active:0}),(t()(),s["\u0275and"](16777216,null,null,1,null,D)),s["\u0275did"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,L)),s["\u0275did"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=s["\u0275inlineInterpolate"](2,"block-ui-wrapper ",n.name," ",n.className,""),r=t(e,3,0,n.active);t(e,2,0,a,r),t(e,5,0,!n.templateCmp),t(e,7,0,n.templateCmp)},null)}function M(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"block-ui-content",[],null,null,null,P,R)),s["\u0275did"](1,12828672,null,0,_,[y,s.ComponentFactoryResolver,s.ChangeDetectorRef],null,null)],function(t,e){t(e,1,0)},null)}var q=s["\u0275ccf"]("block-ui-content",_,M,{name:"name",delayStart:"delayStart",delayStop:"delayStop",defaultMessage:"message",templateCmp:"template"},{},[]),j=n("SZbH"),F=s["\u0275crt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"flyInOut",definitions:[{type:0,name:"inactive",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{opacity:1},offset:null},options:void 0},{type:0,name:"removed",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:1,expr:"inactive => active",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null},{type:1,expr:"active => removed",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null}],options:{}}]}});function z(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"button",[["aria-label","Close"],["class","toast-close-button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.remove()&&a),a},null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xd7"]))],null,null)}function G(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["[","]"]))],null,function(t,e){t(e,1,0,e.component.duplicatesCount+1)})}function Y(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"div",[],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "])),(t()(),s["\u0275and"](16777216,null,null,1,null,G)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,3,0,e.component.duplicatesCount)},function(t,e){var n=e.component;t(e,0,0,n.options.titleClass,n.title),t(e,1,0,n.title)})}function V(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message)})}function H(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message),t(e,1,0,n.message)})}function B(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,0,"div",[["class","toast-progress"]],[[4,"width",null]],null,null,null,null))],null,function(t,e){t(e,1,0,e.component.width+"%")})}function U(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,z)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Y)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,V)),s["\u0275did"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,H)),s["\u0275did"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,B)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.options.closeButton),t(e,3,0,n.title),t(e,5,0,n.message&&n.options.enableHtml),t(e,7,0,n.message&&!n.options.enableHtml),t(e,9,0,n.options.progressBar)},null)}function W(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"div",[["toast-component",""]],[[8,"className",0],[40,"@flyInOut",0],[4,"display",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,1).tapToast()&&a),"mouseenter"===e&&(a=!1!==s["\u0275nov"](t,1).stickAround()&&a),"mouseleave"===e&&(a=!1!==s["\u0275nov"](t,1).delayedHideToast()&&a),a},U,F)),s["\u0275did"](1,180224,null,0,j.c,[j.j,j.g,s.NgZone],null,null)],null,function(t,e){t(e,0,0,s["\u0275nov"](e,1).toastClasses,s["\u0275nov"](e,1).state,s["\u0275nov"](e,1).displayStyle)})}var K=s["\u0275ccf"]("[toast-component]",j.c,W,{},{},[]),$=n("pMnS"),Z=n("pKUh"),X=n("YAQW"),J=n("OZfm"),Q=n("lqqz"),tt=n("NJnL"),et=n("ZYCi"),nt=function(){return function(){this.cardClass=""}}(),at=s["\u0275crt"]({encapsulation:0,styles:[[".card[_ngcontent-%COMP%]{border:.5px solid #ddd;border-radius:3px;background-color:#fff;box-shadow:0 1px 1px rgba(3,3,3,.175);margin:0 auto 20px;padding:0 20px;width:auto;height:auto;min-height:6vw;position:relative;font-size:12px}@media screen and (min-width:320px){.card[_ngcontent-%COMP%]{font-size:calc(12px + 9 * ((100vw - 320px)/ 1728))}}@media screen and (min-width:2048px){.card[_ngcontent-%COMP%]{font-size:21px}}.card-title[_ngcontent-%COMP%]{margin:1.1vw 0;padding:0}.card-body[_ngcontent-%COMP%]{text-align:center;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.content-chart[_ngcontent-%COMP%]{margin-top:-.7vw;position:unset;top:unset;left:unset;-webkit-transform:unset;transform:unset}.no-center[_ngcontent-%COMP%]{position:unset;top:unset;left:unset;-webkit-transform:unset;transform:unset}.text-area-size-2[_ngcontent-%COMP%]{margin-right:-50%;-webkit-transform:translate(-50%,-20%);transform:translate(-50%,-20%)}.text-area-size-3[_ngcontent-%COMP%]{margin-right:-50%;-webkit-transform:translate(-50%,-40%);transform:translate(-50%,-40%)}.content-highlight[_ngcontent-%COMP%]{font-weight:700}.card-medium[_ngcontent-%COMP%]{min-height:12vw}.scroll[_ngcontent-%COMP%]{max-height:18vw;overflow-y:auto}.text-monospace[_ngcontent-%COMP%]{font-size:12px;font-family:monospace;text-align:left}@media (max-width:1599px){.card[_ngcontent-%COMP%]{min-height:7.8vw}.card-medium[_ngcontent-%COMP%]{min-height:14.4vw}}@media (max-width:calc(1200px - 1px)){.card-medium[_ngcontent-%COMP%]{min-height:18vw}.content-chart[_ngcontent-%COMP%]{margin-top:-.6vw}}@media (max-width:calc(992px - 1px)){.card[_ngcontent-%COMP%]{min-height:12vw}.content-chart[_ngcontent-%COMP%]{margin-top:-.3vw}}@media (max-width:calc(992px - 1px)) and (min-width:768px){.card-medium[_ngcontent-%COMP%]{min-height:26.4vw}}@media (max-width:599px){.card[_ngcontent-%COMP%]{min-height:18vw}}@media (max-width:319px){.card[_ngcontent-%COMP%]{min-height:24vw}}"]],data:{}});function rt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](1,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](2,null,["",""]))],function(t,e){t(e,1,0,e.component.link)},function(t,e){var n=e.component;t(e,0,0,s["\u0275nov"](e,1).target,s["\u0275nov"](e,1).href),t(e,2,0,n.cardTitle)})}function it(t){return s["\u0275vid"](0,[(t()(),s["\u0275ted"](0,null,[" "," "]))],null,function(t,e){t(e,0,0,e.component.cardTitle)})}function st(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,8,"div",[["class","card"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),s["\u0275eld"](2,0,null,null,3,"div",[["class","card-title"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,rt)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["\u0275and"](0,[["noLinkTitle",2]],null,0,null,it)),(t()(),s["\u0275eld"](6,0,null,null,2,"div",[["class","card-body"]],null,null,null,null,null)),s["\u0275did"](7,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275ncd"](null,0)],function(t,e){var n=e.component;t(e,1,0,"card",n.cardClass),t(e,4,0,n.link,s["\u0275nov"](e,5)),t(e,7,0,"card-body",n.contentClass)},null)}var ot=function(){return function(){}}(),ut=s["\u0275crt"]({encapsulation:0,styles:[[".info-group-title[_ngcontent-%COMP%]{margin:0 0 .5vw .5vw;padding:0;font-size:21px}"]],data:{}});function ct(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"div",[["class","info-group-title"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" ","\n"])),s["\u0275ncd"](null,0)],null,function(t,e){t(e,1,0,e.component.groupTitle)})}var lt,dt=n("xdbM"),ft=n("WyAD"),pt=n("LvDl"),ht=n("NEZu"),gt=n("Fgil"),bt=n("o4+5");!function(t){t.DEFAULT_RED="#ff7592",t.DEFAULT_BLUE="#1d699d",t.DEFAULT_ORANGE="#ffa500",t.DEFAULT_MAGENTA="#564d65",t.DEFAULT_GREEN="#00bb00"}(lt||(lt={}));var mt=function(){function t(t,e){var n=this;this.dimlessBinary=t,this.dimless=e,this.config={},this.isBytesData=!1,this.showLabelAsTooltip=!1,this.prepareFn=new s.EventEmitter,this.chartConfig={chartType:"pie",dataset:[{label:null,borderWidth:0}],options:{legend:{display:!0,position:"right",labels:{usePointStyle:!0},onClick:function(t,e){n.onLegendClick(t,e)}},animation:{duration:0},tooltips:{enabled:!1},title:{display:!1}}},this.hiddenSlices=[]}return t.prototype.ngOnInit=function(){var t=this;ft.pluginService.register({beforeDraw:function(t){if(t.options.center_text){var e=t.chart.width,n=t.chart.height,a=t.chart.ctx;a.restore();var r=(n/114).toFixed(2);a.font=r+"em sans-serif",a.textBaseline="middle";var i=t.options.center_text,s=Math.round((e-a.measureText(i).width)/2);a.fillText(i,s,n/2),a.save()}}});var e=new ht.a(this.chartCanvasRef,this.chartTooltipRef,function(t,e){return e+t.caretX+"px"},function(t,e){return e+t.caretY-t.height-10+"px"});e.getBody=function(e){return t.getChartTooltipBody(e)},this.chartConfig.options.tooltips.custom=function(t){e.customTooltips(t)},this.chartConfig.colors=[{backgroundColor:[lt.DEFAULT_RED,lt.DEFAULT_BLUE,lt.DEFAULT_ORANGE,lt.DEFAULT_GREEN,lt.DEFAULT_MAGENTA]}],pt.merge(this.chartConfig,this.config),this.prepareFn.emit([this.chartConfig,this.data])},t.prototype.ngOnChanges=function(){this.prepareFn.emit([this.chartConfig,this.data]),this.hideSlices(),this.setChartSliceBorderWidth()},t.prototype.getChartTooltipBody=function(t){var e=t[0].split(": ");return this.showLabelAsTooltip?e[0]:(e[1]=this.isBytesData?this.dimlessBinary.transform(e[1]):this.dimless.transform(e[1]),e.join(": "))},t.prototype.setChartSliceBorderWidth=function(){var t=0;pt.forEach(this.chartConfig.dataset[0].data,function(e){e>0&&(t+=1)}),this.chartConfig.dataset[0].borderWidth=t>1?1:0},t.prototype.onLegendClick=function(t,e){t.stopPropagation(),this.hiddenSlices[e.index]=!e.hidden,this.ngOnChanges()},t.prototype.hideSlices=function(){var t=this;pt.forEach(this.chartConfig.dataset[0].data,function(e,n){t.hiddenSlices[n]&&(t.chartConfig.dataset[0].data[n]=void 0)})},t}(),yt=s["\u0275crt"]({encapsulation:0,styles:[["canvas[_ngcontent-%COMP%]{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;-webkit-transition:.1s;transition:all .1s ease;pointer-events:none;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif!important;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{-webkit-transform:translate(-10%,0);transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{-webkit-transform:translate(-90%,0);transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:' ';position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent} .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:unset;width:100%;height:100%}.chart-canvas[_ngcontent-%COMP%]{position:unset;width:100%;height:100%;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}"]],data:{}});function vt(t){return s["\u0275vid"](0,[s["\u0275qud"](402653184,1,{chartCanvasRef:0}),s["\u0275qud"](402653184,2,{chartTooltipRef:0}),(t()(),s["\u0275eld"](2,0,null,null,4,"div",[["class","chart-container"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,[[1,0],["chartCanvas",1]],null,1,"canvas",[["baseChart",""],["class","chart-canvas"]],null,null,null,null,null)),s["\u0275did"](4,737280,null,0,dt.BaseChartDirective,[s.ElementRef],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),s["\u0275eld"](5,0,[[2,0],["chartTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,0,"table",[],null,null,null,null,null))],function(t,e){var n=e.component;t(e,4,0,n.chartConfig.dataset,n.chartConfig.labels,n.chartConfig.options,n.chartConfig.chartType,n.chartConfig.colors)},null)}var _t=function(){function t(){}return t.prototype.transform=function(t){return"HEALTH_OK"===t?{color:"#00bb00"}:"HEALTH_WARN"===t?{color:"#ffa500"}:"HEALTH_ERR"===t?{color:"#ff0000"}:null},t}(),xt=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){return t?t.monmap.mons.length.toString()+" ("+this.i18n("quorum")+" "+t.quorum.join(", ")+")":""},t}(),Tt=n("Jm/i"),wt=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){if(!t)return"";var e=0,n=0;pt.each(t.osds,function(t){t.in&&e++,t.up&&n++});var a=[{content:t.osds.length+" "+this.i18n("total"),class:""}];a.push({content:"",class:"card-text-line-break"}),a.push({content:n+" "+this.i18n("up")+", "+e+" "+this.i18n("in"),class:""});var r=t.osds.length-n,i=n-e;if(r>0||i>0){a.push({content:"",class:"card-text-line-break"});var s=r>0?r+" "+this.i18n("down"):"",o=r>0&&i>0?", ":"",u=i>0?i+" "+this.i18n("out"):"";a.push({content:""+s+o+u,class:"card-text-error"})}return a},t}(),St=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){if(!t)return"";var e=this.i18n("n/a"),n=pt.isUndefined(t.active_name)?"":this.i18n("active daemon")+": "+t.active_name;n.length>0&&(e="1");var a=t.standbys.map(function(t){return t.name}).join(", "),r=a?this.i18n("standby daemons")+": "+a:"",i=t.standbys.length,s=[{content:e+" "+this.i18n("active"),class:"popover-info",titleText:n}];return s.push({content:"",class:"card-text-line-break",titleText:""}),s.push({content:i+" "+this.i18n("standby"),class:"popover-info",titleText:r}),s},t}(),Ot=function(){function t(t){this.i18n=t}return t.prototype.transform=function(t){if(!t)return"";var e="",n="",a=0,r=0,i=0;pt.each(t.standbys,function(){a+=1}),t.standbys&&!t.filesystems?(e=a+" "+this.i18n("up"),n=this.i18n("no filesystems")):0===t.filesystems.length?e=this.i18n("no filesystems"):(pt.each(t.filesystems,function(t){pt.each(t.mdsmap.info,function(t){"up:standby-replay"===t.state?i+=1:r+=1})}),e=r+" "+this.i18n("active"),n=a+i+" "+this.i18n("standby"));var s=t.standbys.map(function(t){return t.name}).join(", "),o=s?this.i18n("standby daemons")+": "+s:"",u=t.filesystems?t.filesystems.length:0,c=Object.values(u>0?t.filesystems[0].mdsmap.info:{}).map(function(t){return t.name}).join(", "),l=c?this.i18n("active daemon")+": "+c:"";!r&&u>0&&(l=i+" "+this.i18n("standbyReplay"));var d=[{content:e,class:"popover-info",titleText:l}];return n&&(d.push({content:"",class:"card-text-line-break",titleText:""}),d.push({content:n,class:"popover-info",titleText:o})),d},t}(),It=function(){function t(){}return t.prototype.transform=function(t,e){return pt.round(t,e)},t}(),Ct=n("aXbf"),kt=n("DtyJ"),Nt=n("t/Na"),Rt=n("pL04"),At=function(){function t(t){this.http=t}return t.prototype.getFullHealth=function(){return this.http.get("api/health/full")},t.prototype.getMinimalHealth=function(){return this.http.get("api/health/minimal")},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),Dt=n("ej+x"),Et=n("26FU"),Lt=n("xXU7"),Pt=function(){function t(){this.intervalDataSource=new Et.a(null),this.intervalData$=this.intervalDataSource.asObservable();var t=parseInt(sessionStorage.getItem("dashboard_interval"),10)||5e3;this.setRefreshInterval(t)}return t.prototype.setRefreshInterval=function(t){var e=this;this.intervalTime=t,sessionStorage.setItem("dashboard_interval",t.toString()),this.intervalSubscription&&this.intervalSubscription.unsubscribe(),this.intervalSubscription=Object(Lt.a)(this.intervalTime).subscribe(function(){return e.intervalDataSource.next(e.intervalTime)})},t.prototype.getRefreshInterval=function(){return this.intervalTime},t.prototype.ngOnDestroy=function(){this.intervalSubscription&&this.intervalSubscription.unsubscribe()},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),Mt=n("d+Og"),qt=function(){function t(t,e,n,a,r,i,s,o){this.healthService=t,this.i18n=e,this.authStorageService=n,this.pgCategoryService=a,this.featureToggles=r,this.refreshIntervalService=i,this.dimlessBinary=s,this.dimless=o,this.interval=new kt.Subscription,this.rawCapacityChartConfig={options:{title:{display:!0,position:"bottom"}}},this.objectsChartConfig={options:{title:{display:!0,position:"bottom"}},colors:[{backgroundColor:[lt.DEFAULT_GREEN,lt.DEFAULT_MAGENTA,lt.DEFAULT_ORANGE,lt.DEFAULT_RED]}]},this.pgStatusChartConfig={colors:[{backgroundColor:[lt.DEFAULT_GREEN,lt.DEFAULT_BLUE,lt.DEFAULT_ORANGE,lt.DEFAULT_RED]}]},this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}return t.prototype.ngOnInit=function(){var t=this;this.getHealth(),this.interval=this.refreshIntervalService.intervalData$.subscribe(function(){t.getHealth()})},t.prototype.ngOnDestroy=function(){this.interval.unsubscribe()},t.prototype.getHealth=function(){var t=this;this.healthService.getMinimalHealth().subscribe(function(e){t.healthData=e})},t.prototype.prepareReadWriteRatio=function(t){var e=[],n=[],a=this.healthData.client_perf.write_op_per_sec+this.healthData.client_perf.read_op_per_sec;e.push(this.i18n("Writes")+" ("+this.calcPercentage(this.healthData.client_perf.write_op_per_sec,a)+"%)"),n.push(this.healthData.client_perf.write_op_per_sec),e.push(this.i18n("Reads")+" ("+this.calcPercentage(this.healthData.client_perf.read_op_per_sec,a)+"%)"),n.push(this.healthData.client_perf.read_op_per_sec),t.dataset[0].data=n,t.labels=e},t.prototype.prepareRawUsage=function(t,e){var n=this.calcPercentage(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes),a=this.calcPercentage(e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes);t.dataset[0].data=[e.df.stats.total_used_raw_bytes,e.df.stats.total_avail_bytes],t.labels=[this.dimlessBinary.transform(e.df.stats.total_used_raw_bytes)+" "+this.i18n("Used")+" ("+a+"%)",this.dimlessBinary.transform(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes)+" "+this.i18n("Avail.")+" ("+n+"%)"],t.options.title.text=this.dimlessBinary.transform(e.df.stats.total_bytes)+" "+this.i18n("total")},t.prototype.preparePgStatus=function(t,e){var n=this,a={},r=0;pt.forEach(e.pg_info.statuses,function(t,e){var i=n.pgCategoryService.getTypeByStates(e);pt.isUndefined(a[i])&&(a[i]=0),a[i]+=t,r+=t}),t.dataset[0].data=this.pgCategoryService.getAllTypes().map(function(t){return a[t]}),t.labels=[this.i18n("Clean")+" ("+this.calcPercentage(a.clean,r)+"%)",this.i18n("Working")+" ("+this.calcPercentage(a.working,r)+"%)",this.i18n("Warning")+" ("+this.calcPercentage(a.warning,r)+"%)",this.i18n("Unknown")+" ("+this.calcPercentage(a.unknown,r)+"%)"]},t.prototype.prepareObjects=function(t,e){var n=e.pg_info.object_stats.num_object_copies,a=n-e.pg_info.object_stats.num_objects_misplaced-e.pg_info.object_stats.num_objects_degraded-e.pg_info.object_stats.num_objects_unfound;t.labels=[this.i18n("Healthy")+" ("+this.calcPercentage(a,n)+"%)",this.i18n("Misplaced")+" ("+this.calcPercentage(e.pg_info.object_stats.num_objects_misplaced,n)+"%)",this.i18n("Degraded")+" ("+this.calcPercentage(e.pg_info.object_stats.num_objects_degraded,n)+"%)",this.i18n("Unfound")+" ("+this.calcPercentage(e.pg_info.object_stats.num_objects_unfound,n)+"%)"],t.dataset[0].data=[a,e.pg_info.object_stats.num_objects_misplaced,e.pg_info.object_stats.num_objects_degraded,e.pg_info.object_stats.num_objects_unfound],t.options.title.text=this.dimless.transform(e.pg_info.object_stats.num_objects)+" "+this.i18n("total")+" ("+this.dimless.transform(n)+" "+this.i18n("replicas")+")",t.options.maintainAspectRatio=window.innerWidth>=375},t.prototype.isClientReadWriteChartShowable=function(){return(this.healthData.client_perf.read_op_per_sec||0)+(this.healthData.client_perf.write_op_per_sec||0)>0},t.prototype.calcPercentage=function(t,e){return pt.isNumber(t)&&pt.isNumber(e)&&0!==e?Math.round(t/e*100):0},t}(),jt=s["\u0275crt"]({encapsulation:0,styles:[["cd-info-card[_ngcontent-%COMP%]{padding:0 .5vw}.cd-container-flex[_ngcontent-%COMP%]{margin:0;padding:0;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-pack:justify;justify-content:space-between}.cd-col-5[_ngcontent-%COMP%]{width:20%}@media (max-width:1599px){.cd-col-5[_ngcontent-%COMP%]{width:25%}}@media (max-width:calc(1200px - 1px)){.cd-col-5[_ngcontent-%COMP%]{width:33%}}@media (max-width:calc(992px - 1px)){.cd-col-5[_ngcontent-%COMP%]{width:50%}}@media (max-width:calc(768px - 1px)){cd-info-card[_ngcontent-%COMP%]{padding:0}.cd-col-5[_ngcontent-%COMP%]{width:100%}}.info-group[_ngcontent-%COMP%]{margin:0;padding:0} .pg-status-popover-wrapper{position:relative} .pg-status-popover-wrapper .popover{position:absolute;width:116%;max-height:20vh;min-width:unset!important;max-width:unset!important} .pg-status-popover-wrapper .popover .popover-body{max-width:100%;max-height:19vh;font-size:12px}.logs-link[_ngcontent-%COMP%]{text-align:center}.card-text-error[_ngcontent-%COMP%]{display:inline;color:red}.card-text-line-break[_ngcontent-%COMP%]:after{content:'\\A';white-space:pre}.popover-info[_ngcontent-%COMP%]:hover{cursor:pointer}"]],data:{}});function Ft(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function zt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,3,"span",[],null,null,null,null,null)),s["\u0275did"](2,278528,null,0,i.NgStyle,[s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngStyle:[0,"ngStyle"]},null),s["\u0275ppd"](3,1),(t()(),s["\u0275ted"](4,null,["",""])),(t()(),s["\u0275ted"](5,null,[": "," "]))],function(t,e){var n=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent.parent.parent.parent.parent.parent,0),e.context.$implicit.severity));t(e,2,0,n)},function(t,e){t(e,4,0,e.context.$implicit.type),t(e,5,0,e.context.$implicit.summary.message)})}function Gt(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Ft)),s["\u0275did"](1,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["\u0275eld"](2,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,zt)),s["\u0275did"](4,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,1,0,s["\u0275nov"](e.parent.parent.parent.parent,7)),t(e,4,0,n.healthData.health.checks)},null)}function Yt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["\u0275and"](0,[["healthChecks",2]],null,0,null,Gt)),(t()(),s["\u0275eld"](2,16777216,null,null,4,"div",[["class","info-card-content-clickable"],["container","body"],["containerClass","info-card-popover-cluster-status"],["placement","bottom"],["triggers",""]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).toggle()&&a),a},null,null)),s["\u0275did"](3,278528,null,0,i.NgStyle,[s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngStyle:[0,"ngStyle"]},null),s["\u0275ppd"](4,1),s["\u0275did"](5,212992,[["healthChecksTarget",4]],0,J.c,[J.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"],container:[3,"container"],containerClass:[4,"containerClass"]},null),(t()(),s["\u0275ted"](6,null,[" "," "])),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){var n=e.component,a=s["\u0275unv"](e,3,0,t(e,4,0,s["\u0275nov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,3,0,a),t(e,5,0,s["\u0275nov"](e,1),"bottom","","body","info-card-popover-cluster-status")},function(t,e){t(e,6,0,e.component.healthData.health.status)})}function Vt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,3,"div",[],null,null,null,null,null)),s["\u0275did"](2,278528,null,0,i.NgStyle,[s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngStyle:[0,"ngStyle"]},null),s["\u0275ppd"](3,1),(t()(),s["\u0275ted"](4,null,[" "," "]))],function(t,e){var n=e.component,a=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,2,0,a)},function(t,e){t(e,4,0,e.component.healthData.health.status)})}function Ht(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"cd-info-card",[["cardTitle","Cluster Status"],["class","col-sm-6 col-md-4 col-lg-3"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Yt)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Vt)),s["\u0275did"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Cluster Status",(null==n.healthData.health?null:null==n.healthData.health.checks?null:n.healthData.health.checks.length)>0?"content-highlight text-area-size-2":"content-highlight"),t(e,3,0,(null==n.healthData.health?null:null==n.healthData.health.checks?null:n.healthData.health.checks.length)>0),t(e,5,0,!(null!=n.healthData.health&&null!=n.healthData.health.checks&&n.healthData.health.checks.length))},null)}function Bt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Monitors"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-highlight"],["link","/monitor"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," "])),s["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"Monitors","/monitor","content-highlight")},function(t,e){var n=e.component,a=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent.parent.parent,1),n.healthData.mon_status));t(e,2,0,a)})}function Ut(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngClass:[0,"ngClass"]},null),(t()(),s["\u0275ted"](2,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.class)},function(t,e){t(e,2,0,e.context.$implicit.content)})}function Wt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardTitle","OSDs"],["class","col-sm-6 col-md-4 col-lg-3"],["link","/osd"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Ut)),s["\u0275did"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,1,0,"OSDs","/osd",(5==e.context.ngIf.length?"text-area-size-3":"text-area-size-2")+" content-highlight"),t(e,3,0,e.context.ngIf)},null)}function Kt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[],[[8,"title",0]],null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngClass:[0,"ngClass"]},null),(t()(),s["\u0275ted"](2,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.class)},function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,2,0,e.context.$implicit.content)})}function $t(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"cd-info-card",[["cardTitle","Manager Daemons"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-highlight text-area-size-2"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["\u0275and"](16777216,null,0,2,null,Kt)),s["\u0275did"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["\u0275ppd"](4,1)],function(t,e){var n=e.component;t(e,1,0,"Manager Daemons","content-highlight text-area-size-2");var a=s["\u0275unv"](e,3,0,t(e,4,0,s["\u0275nov"](e.parent.parent.parent,3),n.healthData.mgr_map));t(e,3,0,a)},null)}function Zt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Hosts"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-medium content-highlight"],["link","/hosts"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," total "]))],function(t,e){t(e,1,0,"Hosts","/hosts","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.hosts)})}function Xt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Object Gateways"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-medium content-highlight"],["link","/rgw/daemon"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," total "]))],function(t,e){t(e,1,0,"Object Gateways","/rgw/daemon","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.rgw)})}function Jt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[],[[8,"title",0]],null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngClass:[0,"ngClass"]},null),(t()(),s["\u0275ted"](2,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.class)},function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,2,0,e.context.$implicit.content)})}function Qt(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Metadata Servers"],["class","col-sm-6 col-md-4 col-lg-3"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Jt)),s["\u0275did"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,1,0,"Metadata Servers",(e.context.ngIf.length>1?"text-area-size-2":"")+" content-highlight"),t(e,3,0,e.context.ngIf)},null)}function te(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardTitle","iSCSI Gateways"],["class","col-sm-6 col-md-4 col-lg-3"],["contentClass","content-medium content-highlight"],["link","/block/iscsi"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," total "]))],function(t,e){t(e,1,0,"iSCSI Gateways","/block/iscsi","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.iscsi_daemons)})}function ee(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,19,"cd-info-group",[["class","row info-group"],["groupTitle","Status"]],null,null,null,ct,ut)),s["\u0275did"](1,49152,null,0,ot,[],{groupTitle:[0,"groupTitle"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Ht)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Bt)),s["\u0275did"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,2,null,Wt)),s["\u0275did"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["\u0275ppd"](8,1),(t()(),s["\u0275and"](16777216,null,0,1,null,$t)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Zt)),s["\u0275did"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Xt)),s["\u0275did"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,2,null,Qt)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["\u0275ppd"](17,1),(t()(),s["\u0275and"](16777216,null,0,1,null,te)),s["\u0275did"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Status"),t(e,3,0,null==n.healthData.health?null:n.healthData.health.status),t(e,5,0,n.healthData.mon_status);var a=s["\u0275unv"](e,7,0,t(e,8,0,s["\u0275nov"](e.parent.parent,2),n.healthData.osd_map));t(e,7,0,a),t(e,10,0,n.healthData.mgr_map),t(e,12,0,null!=n.healthData.hosts),t(e,14,0,e.parent.context.ngIf.rgw&&null!=n.healthData.rgw);var r=s["\u0275unv"](e,16,0,t(e,17,0,s["\u0275nov"](e.parent.parent,4),e.parent.context.ngIf.cephfs&&n.healthData.fs_map));t(e,16,0,r),t(e,19,0,e.parent.context.ngIf.iscsi&&null!=n.healthData.iscsi_daemons)},null)}function ne(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Client IOPS"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," "])),s["\u0275ppd"](3,2)],function(t,e){t(e,1,0,"Client IOPS","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent.parent.parent,5),n.healthData.client_perf.read_op_per_sec+n.healthData.client_perf.write_op_per_sec,1));t(e,2,0,a)})}function ae(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Client Throughput"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," "])),s["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"Client Throughput","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent.parent.parent,6),n.healthData.client_perf.read_bytes_sec+n.healthData.client_perf.write_bytes_sec))+"/s";t(e,2,0,a)})}function re(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareReadWriteRatio(n[0],n[1])&&a),a},vt,yt)),s["\u0275did"](1,638976,null,0,mt,[gt.a,bt.a],{data:[0,"data"]},{prepareFn:"prepareFn"})],function(t,e){t(e,1,0,e.component.healthData)},null)}function ie(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[" N/A "]))],null,null)}function se(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Client Read/Write"],["class","cd-col-5"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,re)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,ie)),s["\u0275did"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Client Read/Write","card-medium",n.isClientReadWriteChartShowable()?"content-chart":"content-medium content-highlight"),t(e,3,0,n.isClientReadWriteChartShowable()),t(e,5,0,!n.isClientReadWriteChartShowable())},null)}function oe(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Recovery Throughput"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," "])),s["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"Recovery Throughput","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent.parent.parent,6),n.healthData.client_perf.recovering_bytes_per_sec))+"/s";t(e,2,0,a)})}function ue(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Scrub"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," "]))],function(t,e){t(e,1,0,"Scrub","card-medium","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.scrub_status)})}function ce(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,12,"cd-info-group",[["class","row info-group"],["groupTitle","Performance"]],null,null,null,ct,ut)),s["\u0275did"](1,49152,null,0,ot,[],{groupTitle:[0,"groupTitle"]},null),(t()(),s["\u0275eld"](2,0,null,0,10,"div",[["class","cd-container-flex"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,ne)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ae)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,se)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,oe)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ue)),s["\u0275did"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Performance"),t(e,4,0,n.healthData.client_perf),t(e,6,0,n.healthData.client_perf),t(e,8,0,n.healthData.client_perf),t(e,10,0,n.healthData.client_perf),t(e,12,0,n.healthData.scrub_status)},null)}function le(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Pools"],["class","cd-col-5"],["contentClass","content-medium content-highlight"],["link","/pool"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],cardClass:[2,"cardClass"],contentClass:[3,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," "]))],function(t,e){t(e,1,0,"Pools","/pool","card-medium","content-medium content-highlight")},function(t,e){t(e,2,0,e.component.healthData.pools.length)})}function de(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Raw Capacity"],["class","cd-col-5"],["contentClass","content-chart"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275eld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareRawUsage(n[0],n[1])&&a),a},vt,yt)),s["\u0275did"](3,638976,null,0,mt,[gt.a,bt.a],{data:[0,"data"],config:[1,"config"],showLabelAsTooltip:[2,"showLabelAsTooltip"]},{prepareFn:"prepareFn"})],function(t,e){var n=e.component;t(e,1,0,"Raw Capacity","card-medium","content-chart"),t(e,3,0,n.healthData,n.rawCapacityChartConfig,!0)},null)}function fe(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","Objects"],["class","cd-col-5"],["contentClass","content-chart"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275eld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareObjects(n[0],n[1])&&a),a},vt,yt)),s["\u0275did"](3,638976,null,0,mt,[gt.a,bt.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],function(t,e){var n=e.component;t(e,1,0,"Objects","card-medium","content-chart"),t(e,3,0,n.healthData,n.objectsChartConfig)},null)}function pe(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-info-card",[["cardClass","card-medium"],["cardTitle","PGs per OSD"],["class","cd-col-5"],["contentClass","content-medium content-highlight"]],null,null,null,st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275ted"](2,0,[" "," "])),s["\u0275ppd"](3,1)],function(t,e){t(e,1,0,"PGs per OSD","card-medium","content-medium content-highlight")},function(t,e){var n=e.component,a=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent.parent.parent,7),n.healthData.pg_info.pgs_per_osd));t(e,2,0,a)})}function he(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function ge(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" ",": "," "]))],null,function(t,e){t(e,1,0,e.context.$implicit.key,e.context.$implicit.value)})}function be(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,he)),s["\u0275did"](1,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["\u0275eld"](2,0,null,null,3,"ul",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,2,null,ge)),s["\u0275did"](4,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["\u0275pid"](0,i.KeyValuePipe,[s.KeyValueDiffers])],function(t,e){var n=e.component;t(e,1,0,s["\u0275nov"](e.parent.parent.parent,7)),t(e,4,0,s["\u0275unv"](e,4,0,s["\u0275nov"](e,5).transform(n.healthData.pg_info.statuses)))},null)}function me(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,7,"cd-info-card",[["cardClass","card-medium"],["cardTitle","PG Status"],["class","cd-col-5"],["contentClass","content-chart"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).toggle()&&a),a},st,at)),s["\u0275did"](1,49152,null,0,nt,[],{cardTitle:[0,"cardTitle"],cardClass:[1,"cardClass"],contentClass:[2,"contentClass"]},null),(t()(),s["\u0275and"](0,[["pgStatus",2]],0,0,null,be)),(t()(),s["\u0275eld"](3,0,null,0,4,"div",[["class","pg-status-popover-wrapper"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,16777216,null,null,3,"div",[["placement","bottom"],["triggers",""]],null,null,null,null,null)),s["\u0275did"](5,212992,[["pgStatusTarget",4]],0,J.c,[J.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"]},null),(t()(),s["\u0275eld"](6,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.preparePgStatus(n[0],n[1])&&a),a},vt,yt)),s["\u0275did"](7,638976,null,0,mt,[gt.a,bt.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],function(t,e){var n=e.component;t(e,1,0,"PG Status","card-medium","content-chart"),t(e,5,0,s["\u0275nov"](e,2),"bottom",""),t(e,7,0,n.healthData,n.pgStatusChartConfig)},null)}function ye(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,12,"cd-info-group",[["class","row info-group"],["groupTitle","Capacity"]],null,null,null,ct,ut)),s["\u0275did"](1,49152,null,0,ot,[],{groupTitle:[0,"groupTitle"]},null),(t()(),s["\u0275eld"](2,0,null,0,10,"div",[["class","cd-container-flex"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,le)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,de)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,fe)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,pe)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,me)),s["\u0275did"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"Capacity"),t(e,4,0,n.healthData.pools),t(e,6,0,n.healthData.df),t(e,8,0,null!=(null==n.healthData.pg_info?null:null==n.healthData.pg_info.object_stats?null:n.healthData.pg_info.object_stats.num_objects)),t(e,10,0,n.healthData.pg_info),t(e,12,0,n.healthData.pg_info)},null)}function ve(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,6,"p",[["class","logs-link"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-info-circle"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[" See "])),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Logs"])),(t()(),s["\u0275ted"](-1,null,[" for more details."]))],function(t,e){t(e,5,0,"/logs")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function _e(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,ve)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.component.permissions.log.read)},null)}function xe(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,7,"div",[["class","container-fluid"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,ee)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ce)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ye)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,[["logsLink",2]],null,0,null,_e))],function(t,e){var n=e.component;t(e,2,0,(null==n.healthData.health?null:n.healthData.health.status)||n.healthData.mon_status||n.healthData.osd_map||n.healthData.mgr_map||null!=n.healthData.hosts||null!=n.healthData.rgw||n.healthData.fs_map||null!=n.healthData.iscsi_daemons),t(e,4,0,n.healthData.client_perf||n.healthData.scrub_status),t(e,6,0,n.healthData.pools||n.healthData.df||n.healthData.pg_info)},null)}function Te(t){return s["\u0275vid"](0,[s["\u0275pid"](0,_t,[]),s["\u0275pid"](0,xt,[Tt.a]),s["\u0275pid"](0,wt,[Tt.a]),s["\u0275pid"](0,St,[Tt.a]),s["\u0275pid"](0,Ot,[Tt.a]),s["\u0275pid"](0,It,[]),s["\u0275pid"](0,gt.a,[Ct.a]),s["\u0275pid"](0,bt.a,[Ct.a]),(t()(),s["\u0275and"](16777216,null,null,2,null,xe)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["\u0275pid"](131072,i.AsyncPipe,[s.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,9,0,s["\u0275unv"](e,9,0,s["\u0275nov"](e,10).transform(n.healthData&&n.enabledFeature$)))},null)}var we=n("gIcY"),Se=n("ANnk"),Oe=n("f/UV"),Ie=function(){function t(t){this.refreshIntervalService=t,this.intervalList={"5 s":5e3,"10 s":1e4,"15 s":15e3,"30 s":3e4,"1 min":6e4,"3 min":18e4,"5 min":3e5},this.intervalKeys=Object.keys(this.intervalList)}return t.prototype.ngOnInit=function(){this.selectedInterval=this.refreshIntervalService.getRefreshInterval()||5e3},t.prototype.changeRefreshInterval=function(t){this.refreshIntervalService.setRefreshInterval(t)},t}(),Ce=s["\u0275crt"]({encapsulation:0,styles:[[".refresh-selector[_ngcontent-%COMP%]{padding:0;float:right;margin-right:60px}.refresh-selector[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{padding:0;box-sizing:border-box}.refresh-selector[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{padding:10px 10px 0 0;text-align:right;margin:0}@media (min-width:500px) and (max-width:767px){.refresh-selector[_ngcontent-%COMP%]{width:24vw}}@media (min-width:1200px){.refresh-selector[_ngcontent-%COMP%]{width:12vw}}@media (min-width:1400px){.refresh-selector[_ngcontent-%COMP%]{width:10vw}}"]],data:{}});function ke(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){var n=e.component;t(e,1,0,n.intervalList[e.context.$implicit]),t(e,2,0,n.intervalList[e.context.$implicit])},function(t,e){t(e,3,0,e.context.$implicit)})}function Ne(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,14,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,13,"div",[["class","col-xs-5 col-sm-2 refresh-selector"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,2,"label",[["class","control-label col-xs-5 col-sm-5"],["for","refreshInterval"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Refresh"])),(t()(),s["\u0275eld"](5,0,null,null,9,"div",[["class","col-xs-7 col-sm-7"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,8,"select",[["class","form-control"],["id","refreshInterval"],["name","refreshInterval"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,7).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,7).onTouched()&&a),"change"===e&&(a=!1!==r.changeRefreshInterval(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedInterval=n)&&a),a},null,null)),s["\u0275did"](7,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](9,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](11,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](12,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,ke)),s["\u0275did"](14,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,9,0,"refreshInterval",n.selectedInterval),t(e,14,0,n.intervalKeys)},function(t,e){t(e,6,0,s["\u0275nov"](e,11).ngClassUntouched,s["\u0275nov"](e,11).ngClassTouched,s["\u0275nov"](e,11).ngClassPristine,s["\u0275nov"](e,11).ngClassDirty,s["\u0275nov"](e,11).ngClassValid,s["\u0275nov"](e,11).ngClassInvalid,s["\u0275nov"](e,11).ngClassPending)})}var Re=function(){function t(){this.hasGrafana=!1}return t.prototype.ngOnInit=function(){},t}(),Ae=s["\u0275crt"]({encapsulation:0,styles:[["div[_ngcontent-%COMP%]{padding-top:20px}"]],data:{}});function De(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](1,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](2,0,null,0,3,"tab",[["heading","Health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](3,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](4,0,null,null,1,"cd-health",[],null,null,null,Te,jt)),s["\u0275did"](5,245760,null,0,qt,[At,Tt.a,d.a,Mt.a,Dt.a,Pt,gt.a,bt.a],null,null),(t()(),s["\u0275eld"](6,0,null,0,1,"tab",[["heading","Statistics"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](7,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null)],function(t,e){t(e,3,0,"Health"),t(e,5,0),t(e,7,0,"Statistics")},function(t,e){t(e,0,0,s["\u0275nov"](e,1).clazz),t(e,2,0,s["\u0275nov"](e,3).id,s["\u0275nov"](e,3).active,s["\u0275nov"](e,3).addClass),t(e,6,0,s["\u0275nov"](e,7).id,s["\u0275nov"](e,7).active,s["\u0275nov"](e,7).addClass)})}function Ee(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-health",[],null,null,null,Te,jt)),s["\u0275did"](1,245760,null,0,qt,[At,Tt.a,d.a,Mt.a,Dt.a,Pt,gt.a,bt.a],null,null)],function(t,e){t(e,1,0)},null)}function Le(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"cd-refresh-selector",[],null,null,null,Ne,Ce)),s["\u0275did"](2,114688,null,0,Ie,[Pt],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,De)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ee)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.hasGrafana),t(e,6,0,!n.hasGrafana)},null)}function Pe(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-dashboard",[],null,null,null,Le,Ae)),s["\u0275did"](1,114688,null,0,Re,[],null,null)],function(t,e){t(e,1,0)},null)}var Me=s["\u0275ccf"]("cd-dashboard",Re,Pe,{},{},[]),qe=n("a278"),je=n("insk"),Fe=n("mSOc"),ze=n("ZYjt"),Ge=n("20UP"),Ye=n("+0ag"),Ve=n("25BL"),He=n("uIqm"),Be=n("vCyI"),Ue=function(){function t(t){this.authStorageService=t,this.grafanaPermission=this.authStorageService.getPermissions().grafana}return t.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.host=this.selection.first())},t}(),We=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Ke(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](1,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](2,0,null,0,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](3,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](4,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","rtOg0AiWz"]],null,null,null,qe.b,qe.a)),s["\u0275did"](5,638976,null,0,je.a,[Fe.a,ze.DomSanitizer,Ge.a,Ye.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){var n=e.component;t(e,3,0,"Performance Details"),t(e,5,0,"host-details?var-ceph_hosts="+n.host.hostname,"three","rtOg0AiWz")},function(t,e){t(e,0,0,s["\u0275nov"](e,1).clazz),t(e,2,0,s["\u0275nov"](e,3).id,s["\u0275nov"](e,3).active,s["\u0275nov"](e,3).addClass)})}function $e(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Ke)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.selection.hasSingleSelection&&n.grafanaPermission.read)},null)}var Ze=function(){function t(t){this.http=t}return t.prototype.list=function(){return this.http.get("api/host").toPromise().then(function(t){return t})},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),Xe=n("85J/"),Je=function(){function t(t,e,n,a){this.authStorageService=t,this.hostService=e,this.cephShortVersionPipe=n,this.i18n=a,this.columns=[],this.hosts=[],this.isLoadingHosts=!1,this.cdParams={fromLink:"/hosts"},this.selection=new Be.a,this.permissions=this.authStorageService.getPermissions()}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1},{name:this.i18n("Services"),prop:"services",flexGrow:3,cellTemplate:this.servicesTpl},{name:this.i18n("Version"),prop:"ceph_version",flexGrow:1,pipe:this.cephShortVersionPipe}]},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.getHosts=function(t){var e=this;if(!this.isLoadingHosts){var n={mds:"cephfs",mon:"monitor",osd:"osd",rgw:"rgw","rbd-mirror":"rbdMirroring",mgr:"manager","tcmu-runner":"iscsi"};this.isLoadingHosts=!0,this.hostService.list().then(function(t){t.map(function(t){return t.services.map(function(t){t.cdLink="/perf_counters/"+t.type+"/"+encodeURIComponent(t.id);var a=e.permissions[n[t.type]];return t.canRead=!!a&&a.read,t}),t}),e.hosts=t,e.isLoadingHosts=!1}).catch(function(){e.isLoadingHosts=!1,t.error()})}},t}(),Qe=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function tn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](1,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),s["\u0275pad"](2,1),(t()(),s["\u0275ted"](3,null,["","."," "]))],function(t,e){var n=e.component.cdParams,a=t(e,2,0,e.parent.context.$implicit.cdLink);t(e,1,0,n,a)},function(t,e){t(e,0,0,s["\u0275nov"](e,1).target,s["\u0275nov"](e,1).href),t(e,3,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)})}function en(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" ","."," "]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)})}function nn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"span",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,tn)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,en)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275ted"](5,null,[" "," "]))],function(t,e){t(e,2,0,e.context.$implicit.canRead),t(e,4,0,!e.context.$implicit.canRead)},function(t,e){t(e,5,0,e.context.last?"":", ")})}function an(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,nn)),s["\u0275did"](1,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.value)},null)}function rn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](1,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","y0KGL0iZz"]],null,null,null,qe.b,qe.a)),s["\u0275did"](3,638976,null,0,je.a,[Fe.a,ze.DomSanitizer,Ge.a,Ye.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"host-overview?","two","y0KGL0iZz")},function(t,e){t(e,0,0,s["\u0275nov"](e,1).id,s["\u0275nov"](e,1).active,s["\u0275nov"](e,1).addClass)})}function sn(t){return s["\u0275vid"](0,[s["\u0275qud"](402653184,1,{servicesTpl:0}),(t()(),s["\u0275eld"](1,0,null,null,10,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](2,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](3,0,null,0,6,"tab",[["heading","Hosts List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](4,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](5,0,null,null,4,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getHosts(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ve.b,Ve.a)),s["\u0275did"](6,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),s["\u0275and"](0,[[1,2],["servicesTpl",2]],null,0,null,an)),(t()(),s["\u0275eld"](8,0,null,2,1,"cd-host-details",[["cdTableDetail",""]],null,null,null,$e,We)),s["\u0275did"](9,573440,null,0,Ue,[d.a],{selection:[0,"selection"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,rn)),s["\u0275did"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,4,0,"Hosts List"),t(e,6,0,n.hosts,n.columns,"flex","single"),t(e,9,0,n.selection),t(e,11,0,n.permissions.grafana.read)},function(t,e){t(e,1,0,s["\u0275nov"](e,2).clazz),t(e,3,0,s["\u0275nov"](e,4).id,s["\u0275nov"](e,4).active,s["\u0275nov"](e,4).addClass)})}function on(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-hosts",[],null,null,null,sn,Qe)),s["\u0275did"](1,114688,null,0,Je,[d.a,Ze,Xe.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var un=s["\u0275ccf"]("cd-hosts",Je,on,{},{},[]),cn=function(){function t(t){this.http=t}return t.prototype.getMonitor=function(){return this.http.get("api/monitor")},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),ln=n("x38r"),dn=function(){function t(t,e){this.monitorService=t,this.i18n=e,this.inQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:ln.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")},{prop:"cdOpenSessions",name:this.i18n("Open Sessions"),cellTransformation:ln.a.sparkline,comparator:function(t,e){var n=pt.last(t),a=pt.last(e);return n&&a&&n!==a?n>a?1:-1:0}}],data:[]},this.notInQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:ln.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")}],data:[]}}return t.prototype.refresh=function(){var t=this;this.monitorService.getMonitor().subscribe(function(e){e.in_quorum.map(function(t){return t.cdOpenSessions=t.stats.num_sessions.map(function(t){return t[1]}),t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t}),e.out_quorum.map(function(t){return t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t}),t.inQuorum.data=e.in_quorum.slice(),t.notInQuorum.data=e.out_quorum.slice(),t.mon_status=e.mon_status})},t}(),fn=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function pn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,36,"table",[["class","table table-striped"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,35,"tbody",[],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Cluster ID"])),(t()(),s["\u0275eld"](5,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](6,null,["",""])),(t()(),s["\u0275eld"](7,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["monmap modified"])),(t()(),s["\u0275eld"](10,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](11,null,["",""])),(t()(),s["\u0275eld"](12,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["monmap epoch"])),(t()(),s["\u0275eld"](15,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](16,null,["",""])),(t()(),s["\u0275eld"](17,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](18,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["quorum con"])),(t()(),s["\u0275eld"](20,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](21,null,["",""])),(t()(),s["\u0275eld"](22,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](23,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["quorum mon"])),(t()(),s["\u0275eld"](25,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](26,null,["",""])),(t()(),s["\u0275eld"](27,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](28,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["required con"])),(t()(),s["\u0275eld"](30,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](31,null,["",""])),(t()(),s["\u0275eld"](32,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](33,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["required mon"])),(t()(),s["\u0275eld"](35,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](36,null,["",""]))],null,function(t,e){var n=e.component;t(e,6,0,n.mon_status.monmap.fsid),t(e,11,0,n.mon_status.monmap.modified),t(e,16,0,n.mon_status.monmap.epoch),t(e,21,0,n.mon_status.features.quorum_con),t(e,26,0,n.mon_status.features.quorum_mon),t(e,31,0,n.mon_status.features.required_con),t(e,36,0,n.mon_status.features.required_mon)})}function hn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,15,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,5,"div",[["class","col-md-4"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,4,"fieldset",[],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Status"])),(t()(),s["\u0275and"](16777216,null,null,1,null,pn)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](7,0,null,null,8,"div",[["class","col-md-8"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,1,"legend",[["class","in-quorum"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["In Quorum"])),(t()(),s["\u0275eld"](10,0,null,null,1,"cd-table",[],null,null,null,Ve.b,Ve.a)),s["\u0275did"](11,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(t()(),s["\u0275eld"](12,0,null,null,1,"legend",[["class","in-quorum"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Not In Quorum"])),(t()(),s["\u0275eld"](14,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a},Ve.b,Ve.a)),s["\u0275did"](15,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"})],function(t,e){var n=e.component;t(e,6,0,n.mon_status),t(e,11,0,n.inQuorum.data,n.inQuorum.columns),t(e,15,0,n.notInQuorum.data,n.notInQuorum.columns)},null)}function gn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-monitor",[],null,null,null,hn,fn)),s["\u0275did"](1,49152,null,0,dn,[cn,Tt.a],null,null)],null,null)}var bn=s["\u0275ccf"]("cd-monitor",dn,gn,{},{},[]),mn=n("xtZt"),yn=n("xSw7"),vn=n("GgAd"),_n=n("xbqr"),xn=n("9GXa"),Tn=n("NUGo"),wn=n("S7zO"),Sn=n("sLuX"),On=n("FSuO"),In=n("a0VL"),Cn=n("j8L6"),kn=n("b5OY"),Nn=n("pxLl"),Rn=function(){function t(){this.last={}}return t.prototype.ngOnChanges=function(){this.render()},t.prototype.hexdigits=function(t){var e=Math.floor(255*t).toString(16);return 1===e.length?"0"+e:e},t.prototype.hexcolor=function(t,e,n){return"#"+this.hexdigits(t)+this.hexdigits(e)+this.hexdigits(n)},t.prototype.render=function(){var t=this;if(this.histogram){var e=0;pt.each(this.histogram.values,function(n,a){pt.each(n,function(n,r){e=Math.max(e,t.last&&t.last[a]&&t.last[a][r]?n-t.last[a][r]:n)})}),this.valuesStyle=this.histogram.values.map(function(n,a){return n.map(function(n,r){var i=e?(t.last&&t.last[a]&&t.last[a][r]?n-t.last[a][r]:n)/e:0;return{backgroundColor:t.hexcolor(1-i,i,0)}})}),this.last=this.histogram.values}},t}(),An=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Dn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[["style","width: 10px; height: 10px;"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgStyle,[s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngStyle:[0,"ngStyle"]},null)],function(t,e){t(e,1,0,e.context.$implicit)},null)}function En(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"tr",[["style","height: 10px;"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Dn)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.context.$implicit)},null)}function Ln(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"table",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,En)),s["\u0275did"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,3,0,e.component.valuesStyle)},null)}var Pn=function(){function t(t,e){this.http=t,this.i18n=e,this.path="api/osd",this.osdRecvSpeedModalPriorities={KNOWN_PRIORITIES:[{name:null,text:this.i18n("-- Select the priority --"),values:{osd_max_backfills:null,osd_recovery_max_active:null,osd_recovery_max_single_start:null,osd_recovery_sleep:null}},{name:"low",text:this.i18n("Low"),values:{osd_max_backfills:1,osd_recovery_max_active:1,osd_recovery_max_single_start:1,osd_recovery_sleep:.5}},{name:"default",text:this.i18n("Default"),values:{osd_max_backfills:1,osd_recovery_max_active:3,osd_recovery_max_single_start:1,osd_recovery_sleep:0}},{name:"high",text:this.i18n("High"),values:{osd_max_backfills:4,osd_recovery_max_active:4,osd_recovery_max_single_start:4,osd_recovery_sleep:0}}]}}return t.prototype.getList=function(){return this.http.get(""+this.path)},t.prototype.getDetails=function(t){return this.http.get(this.path+"/"+t)},t.prototype.scrub=function(t,e){return this.http.post(this.path+"/"+t+"/scrub?deep="+e,null)},t.prototype.getFlags=function(){return this.http.get(this.path+"/flags")},t.prototype.updateFlags=function(t){return this.http.put(this.path+"/flags",{flags:t})},t.prototype.markOut=function(t){return this.http.post(this.path+"/"+t+"/mark_out",null)},t.prototype.markIn=function(t){return this.http.post(this.path+"/"+t+"/mark_in",null)},t.prototype.markDown=function(t){return this.http.post(this.path+"/"+t+"/mark_down",null)},t.prototype.reweight=function(t,e){return this.http.post(this.path+"/"+t+"/reweight",{weight:e})},t.prototype.markLost=function(t){return this.http.post(this.path+"/"+t+"/mark_lost",null)},t.prototype.purge=function(t){return this.http.post(this.path+"/"+t+"/purge",null)},t.prototype.destroy=function(t){return this.http.post(this.path+"/"+t+"/destroy",null)},t.prototype.safeToDestroy=function(t){return this.http.get(this.path+"/"+t+"/safe_to_destroy")},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c),s.inject(Tt.a))},token:t,providedIn:Rt.a}),t}(),Mn=function(){function t(t,e){this.osdService=t,this.authStorageService=e,this.grafanaPermission=this.authStorageService.getPermissions().grafana}return t.prototype.ngOnChanges=function(){this.osd={loaded:!1},this.selection.hasSelection&&(this.osd=this.selection.first(),this.refresh())},t.prototype.refresh=function(){var t=this;this.osdService.getDetails(this.osd.id).subscribe(function(e){t.osd.details=e,t.osd.histogram_failed="",pt.isObject(e.histogram)||(t.osd.histogram_failed=e.histogram,t.osd.details.histogram=void 0),t.osd.loaded=!0})},t}(),qn=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function jn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-table-key-value",[],null,null,null,Sn.b,Sn.a)),s["\u0275did"](1,638976,null,0,On.a,[In.a],{data:[0,"data"]},null)],function(t,e){t(e,1,0,e.component.osd.details.osd_map)},null)}function Fn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-table-key-value",[],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a},Sn.b,Sn.a)),s["\u0275did"](1,638976,null,0,On.a,[In.a],{data:[0,"data"]},{fetchData:"fetchData"})],function(t,e){t(e,1,0,e.component.osd.details.osd_metadata)},null)}function zn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-warning-panel",[],null,null,null,_n.b,_n.a)),s["\u0275did"](1,49152,null,0,xn.a,[],null,null),(t()(),s["\u0275ted"](-1,0,["Metadata not available"]))],null,null)}function Gn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-table-performance-counter",[["serviceType","osd"]],null,null,null,Cn.b,Cn.a)),s["\u0275did"](1,114688,null,0,kn.a,[Nn.a,Tt.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null)],function(t,e){t(e,1,0,"osd",e.component.osd.id)},null)}function Yn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-warning-panel",[],null,null,null,_n.b,_n.a)),s["\u0275did"](1,49152,null,0,xn.a,[],null,null),(t()(),s["\u0275ted"](2,0,["Histogram not available: ",""]))],null,function(t,e){t(e,2,0,e.component.osd.histogram_failed)})}function Vn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Writes"])),(t()(),s["\u0275eld"](4,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,Ln,An)),s["\u0275did"](5,573440,null,0,Rn,[],{histogram:[0,"histogram"]},null),(t()(),s["\u0275eld"](6,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Reads"])),(t()(),s["\u0275eld"](9,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,Ln,An)),s["\u0275did"](10,573440,null,0,Rn,[],{histogram:[0,"histogram"]},null)],function(t,e){var n=e.component;t(e,5,0,n.osd.details.histogram.osd.op_w_latency_in_bytes_histogram),t(e,10,0,n.osd.details.histogram.osd.op_r_latency_out_bytes_histogram)},null)}function Hn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](1,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","GrafanaStyles.two"],["uid","CrAHE0iZz"]],null,null,null,qe.b,qe.a)),s["\u0275did"](3,638976,null,0,je.a,[Fe.a,ze.DomSanitizer,Ge.a,Ye.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"osd-device-details?var-osd=osd."+n.osd.id,"GrafanaStyles.two","CrAHE0iZz")},function(t,e){t(e,0,0,s["\u0275nov"](e,1).id,s["\u0275nov"](e,1).active,s["\u0275nov"](e,1).addClass)})}function Bn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,22,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](1,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](2,0,null,0,3,"tab",[["heading","Attributes (OSD map)"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](3,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,jn)),s["\u0275did"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](6,0,null,0,4,"tab",[["heading","Metadata"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](7,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Fn)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["\u0275and"](0,[["noMetaData",2]],null,0,null,zn)),(t()(),s["\u0275eld"](11,0,null,0,3,"tab",[["heading","Performance counter"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](12,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Gn)),s["\u0275did"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](15,0,null,0,5,"tab",[["heading","Histogram"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](16,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Yn)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Vn)),s["\u0275did"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,Hn)),s["\u0275did"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,"Attributes (OSD map)"),t(e,5,0,n.osd.loaded),t(e,7,0,"Metadata"),t(e,9,0,n.osd.loaded&&n.osd.details.osd_metadata,s["\u0275nov"](e,10)),t(e,12,0,"Performance counter"),t(e,14,0,n.osd.loaded),t(e,16,0,"Histogram"),t(e,18,0,n.osd.loaded&&n.osd.histogram_failed),t(e,20,0,n.osd.loaded&&n.osd.details.histogram),t(e,22,0,n.grafanaPermission.read)},function(t,e){t(e,0,0,s["\u0275nov"](e,1).clazz),t(e,2,0,s["\u0275nov"](e,3).id,s["\u0275nov"](e,3).active,s["\u0275nov"](e,3).addClass),t(e,6,0,s["\u0275nov"](e,7).id,s["\u0275nov"](e,7).active,s["\u0275nov"](e,7).addClass),t(e,11,0,s["\u0275nov"](e,12).id,s["\u0275nov"](e,12).active,s["\u0275nov"](e,12).addClass),t(e,15,0,s["\u0275nov"](e,16).id,s["\u0275nov"](e,16).active,s["\u0275nov"](e,16).addClass)})}function Un(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Bn)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.selection.hasSingleSelection)},null)}function Wn(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-osd-details",[],null,null,null,Un,qn)),s["\u0275did"](1,573440,null,0,Mn,[Pn,d.a],null,null)],null,null)}var Kn=s["\u0275ccf"]("cd-osd-details",Mn,Wn,{selection:"selection"},{},[]),$n=n("OLbh"),Zn=n("0+/T"),Xn=n("sne2"),Jn=n("mtw6"),Qn=n("9nlD"),ta=function(){function t(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.osdService=n,this.notificationService=a,this.i18n=r,this.osdFlagsForm=new we.k({}),this.allFlags={noin:{code:"noin",name:this.i18n("No In"),value:!1,description:this.i18n("OSDs that were previously marked out will not be marked back in when they start")},noout:{code:"noout",name:this.i18n("No Out"),value:!1,description:this.i18n("OSDs will not automatically be marked out after the configured interval")},noup:{code:"noup",name:this.i18n("No Up"),value:!1,description:this.i18n("OSDs are not allowed to start")},nodown:{code:"nodown",name:this.i18n("No Down"),value:!1,description:this.i18n("OSD failure reports are being ignored, such that the monitors will not mark OSDs down")},pause:{code:"pause",name:this.i18n("Pause"),value:!1,description:this.i18n("Pauses reads and writes")},noscrub:{code:"noscrub",name:this.i18n("No Scrub"),value:!1,description:this.i18n("Scrubbing is disabled")},"nodeep-scrub":{code:"nodeep-scrub",name:this.i18n("No Deep Scrub"),value:!1,description:this.i18n("Deep Scrubbing is disabled")},nobackfill:{code:"nobackfill",name:this.i18n("No Backfill"),value:!1,description:this.i18n("Backfilling of PGs is suspended")},norebalance:{code:"norebalance",name:this.i18n("No Rebalance"),value:!1,description:this.i18n("OSD will choose not to backfill unless PG is also degraded")},norecover:{code:"norecover",name:this.i18n("No Recover"),value:!1,description:this.i18n("Recovery of PGs is suspended")},sortbitwise:{code:"sortbitwise",name:this.i18n("Bitwise Sort"),value:!1,description:this.i18n("Use bitwise sort"),disabled:!0},purged_snapdirs:{code:"purged_snapdirs",name:this.i18n("Purged Snapdirs"),value:!1,description:this.i18n("OSDs have converted snapsets"),disabled:!0},recovery_deletes:{code:"recovery_deletes",name:this.i18n("Recovery Deletes"),value:!1,description:this.i18n("Deletes performed during recovery instead of peering"),disabled:!0},pglog_hardlimit:{code:"pglog_hardlimit",name:this.i18n("PG Log Hard Limit"),value:!1,description:this.i18n("Puts a hard limit on pg log length"),disabled:!0}},this.unknownFlags=[],this.permissions=this.authStorageService.getPermissions()}return t.prototype.ngOnInit=function(){var t=this;this.osdService.getFlags().subscribe(function(e){e.forEach(function(e){t.allFlags[e]?t.allFlags[e].value=!0:t.unknownFlags.push(e)}),t.flags=pt.toArray(t.allFlags)})},t.prototype.submitAction=function(){var t=this,e=this.flags.filter(function(t){return t.value}).map(function(t){return t.code}).concat(this.unknownFlags);this.osdService.updateFlags(e).subscribe(function(){t.notificationService.show(Jn.a.success,t.i18n("Updated OSD Flags")),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),ea=n("VNr4"),na=n("MuvH"),aa=n("QFaf"),ra=n("1Ni5"),ia=function(){function t(){}return t.getType=function(t){var e=pt.find(this.knownTypes,function(e){return e.name===t});if(void 0!==e)return e;throw new Error('Found unknown type "'+t+'" for config option.')},t.getTypeValidators=function(e){var n=t.getType(e.type);if("bool"!==n.name&&"str"!==n.name){var a={validators:[],patternHelpText:n.patternHelpText};return n.isNumberType?(e.max&&""!==e.max&&(a.max=e.max,a.validators.push(we.A.max(e.max))),e.min&&""!==e.min?(a.min=e.min,a.validators.push(we.A.min(e.min))):"defaultMin"in n&&(a.min=n.defaultMin,a.validators.push(we.A.min(n.defaultMin))),a.validators.push("float"===e.type?ra.a.decimalNumber():ra.a.number(n.allowsNegative))):"addr"===e.type?a.validators=[ra.a.ip()]:"uuid"===e.type&&(a.validators=[ra.a.uuid()]),a}},t.getTypeStep=function(t,e){if(["uint","int","size","secs"].includes(t))return 1;if("float"===t){if(null!==e&&-1!==e.toString().indexOf(".")){var n=e.toString().split(".");return Math.pow(10,-n[1].length)}return.1}},t.knownTypes=[{name:"uint",inputType:"number",humanReadable:"Unsigned integer value",defaultMin:0,patternHelpText:"The entered value needs to be an unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"int",inputType:"number",humanReadable:"Integer value",patternHelpText:"The entered value needs to be a number.",isNumberType:!0,allowsNegative:!0},{name:"size",inputType:"number",humanReadable:"Unsigned integer value (>=16bit)",defaultMin:0,patternHelpText:"The entered value needs to be a unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"secs",inputType:"number",humanReadable:"Number of seconds",defaultMin:1,patternHelpText:"The entered value needs to be a number >= 1.",isNumberType:!0,allowsNegative:!1},{name:"float",inputType:"number",humanReadable:"Double value",patternHelpText:"The entered value needs to be a number or decimal.",isNumberType:!0,allowsNegative:!0},{name:"str",inputType:"text",humanReadable:"Text",isNumberType:!1},{name:"addr",inputType:"text",humanReadable:"IPv4 or IPv6 address",patternHelpText:"The entered value needs to be a valid IP address.",isNumberType:!1},{name:"uuid",inputType:"text",humanReadable:"UUID",patternHelpText:"The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8",isNumberType:!1},{name:"bool",inputType:"checkbox",humanReadable:"Boolean value",isNumberType:!1}],t}(),sa=function(){function t(t){this.configService=t,this.optionNames=[],this.optionsForm=new aa.a({}),this.optionsFormDir=new we.t([],[]),this.optionsFormGroupName="",this.optionsFormShowReset=!0,this.options=[],this.optionsFormGroup=new aa.a({})}return t.optionNameToText=function(t){var e=["mon","mgr","osd","mds","client"];return t.split("_").filter(function(t,n){return 0!==n||!e.includes(t)}).map(function(t){return t.charAt(0).toUpperCase()+t.substring(1)}).join(" ")},t.prototype.ngOnInit=function(){this.createForm(),this.loadStoredData()},t.prototype.createForm=function(){var t=this;this.optionsForm.addControl(this.optionsFormGroupName,this.optionsFormGroup),this.optionNames.forEach(function(e){t.optionsFormGroup.addControl(e,new we.i(null))})},t.prototype.getStep=function(t,e){return ia.getTypeStep(t,e)},t.prototype.loadStoredData=function(){var e=this;this.configService.filter(this.optionNames).subscribe(function(n){e.options=n.map(function(n){var a=e.optionsForm.get(n.name),r=ia.getTypeValidators(n);return n.additionalTypeInfo=ia.getType(n.type),n.text=t.optionNameToText(n.name),n.value=pt.find(n.value,function(t){return"osd"===t.section}),n.value&&a.setValue("bool"===n.additionalTypeInfo.name?"true"===n.value.value:n.value.value),r&&(n.patternHelpText=r.patternHelpText,"max"in r&&""!==r.max&&(n.maxValue=r.max),"min"in r&&""!==r.min&&(n.minValue=r.min),a.setValidators(r.validators)),n})})},t.prototype.saveValues=function(){var t=this,e={};return this.optionNames.forEach(function(n){var a=t.optionsForm.getValue(n);null!==a&&""!==a&&(e[n]={section:"osd",value:a})}),this.configService.bulkCreate({options:e})},t.prototype.resetValue=function(t){var e=this;this.configService.delete(t,"osd").subscribe(function(){e.optionsForm.get(t).reset()})},t}(),oa=function(){function t(){}return t.basicOptions=["osd_scrub_during_recovery","osd_scrub_begin_hour","osd_scrub_end_hour","osd_scrub_begin_week_day","osd_scrub_end_week_day","osd_scrub_min_interval","osd_scrub_max_interval","osd_deep_scrub_interval","osd_scrub_auto_repair","osd_max_scrubs","osd_scrub_priority","osd_scrub_sleep"],t.advancedOptions=["osd_scrub_auto_repair_num_errors","osd_debug_deep_scrub_sleep","osd_deep_scrub_keys","osd_deep_scrub_large_omap_object_key_threshold","osd_deep_scrub_large_omap_object_value_sum_threshold","osd_deep_scrub_randomize_ratio","osd_deep_scrub_stride","osd_deep_scrub_update_digest_min_age","osd_op_queue_mclock_scrub_lim","osd_op_queue_mclock_scrub_res","osd_op_queue_mclock_scrub_wgt","osd_requested_scrub_priority","osd_scrub_backoff_ratio","osd_scrub_chunk_max","osd_scrub_chunk_min","osd_scrub_cost","osd_scrub_interval_randomize_ratio","osd_scrub_invalid_stats","osd_scrub_load_threshold","osd_scrub_max_preemptions"],t}(),ua=function(){function t(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.notificationService=n,this.i18n=a,this.actionLabels=r,this.basicOptions=oa.basicOptions,this.advancedOptions=oa.advancedOptions,this.advancedEnabled=!1,this.osdPgScrubForm=new aa.a({}),this.resource=this.i18n("PG scrub options"),this.action=this.actionLabels.EDIT,this.permissions=this.authStorageService.getPermissions()}return t.prototype.submitAction=function(){var t=this,e=[this.basicOptionsValues.saveValues()];this.advancedOptionsValues&&e.push(this.advancedOptionsValues.saveValues()),Object(ea.a)(e).subscribe(function(){t.notificationService.show(Jn.a.success,t.i18n("Updated PG scrub options")),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),ca=function(){function t(t,e,n,a,r,i){var s=this;this.bsModalRef=t,this.authStorageService=e,this.configService=n,this.notificationService=a,this.i18n=r,this.osdService=i,this.priorities=[],this.priorityAttrs={},this.permissions=this.authStorageService.getPermissions(),this.priorities=this.osdService.osdRecvSpeedModalPriorities.KNOWN_PRIORITIES,this.osdRecvSpeedForm=new aa.a({priority:new we.i(null,{validators:[we.A.required]}),customizePriority:new we.i(!1)}),this.priorityAttrs={osd_max_backfills:{text:this.i18n("Max Backfills"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_active:{text:this.i18n("Recovery Max Active"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_single_start:{text:this.i18n("Recovery Max Single Start"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_sleep:{text:this.i18n("Recovery Sleep"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0}},Object.keys(this.priorityAttrs).forEach(function(t){s.osdRecvSpeedForm.addControl(t,new we.i(null,{validators:[we.A.required]}))})}return t.prototype.ngOnInit=function(){var t=this;this.configService.filter(Object.keys(this.priorityAttrs)).subscribe(function(e){var n=t.getCurrentValues(e);t.detectPriority(n.values,function(e){t.setPriority(e)}),t.setDescription(n.configOptions),t.setValidators(n.configOptions)})},t.prototype.detectPriority=function(t,e){var n=pt.find(this.priorities,function(e){return pt.isEqual(e.values,t)});return this.osdRecvSpeedForm.controls.customizePriority.setValue(!1),n?e(n):4===Object.entries(t).length?(this.osdRecvSpeedForm.controls.customizePriority.setValue(!0),e(Object({name:"custom",text:this.i18n("Custom"),values:t}))):e(this.priorities[0])},t.prototype.getCurrentValues=function(t){var e={values:{},configOptions:[]};return t.forEach(function(t){e.configOptions.push(t),"value"in t?t.value.forEach(function(n){"osd"===n.section&&(e.values[t.name]=Number(n.value))}):"default"in t&&null!==t.default&&(e.values[t.name]=Number(t.default))}),e},t.prototype.setDescription=function(t){var e=this;t.forEach(function(t){""!==t.desc&&(e.priorityAttrs[t.name].desc=t.desc)})},t.prototype.setPriority=function(t){var e=this,n=pt.find(this.priorities,function(t){return"custom"===t.name});"custom"===t.name?n||this.priorities.push(t):n&&this.priorities.splice(this.priorities.indexOf(n),1),this.osdRecvSpeedForm.controls.priority.setValue(t.name),Object.entries(t.values).forEach(function(t){e.osdRecvSpeedForm.controls[t[0]].setValue(t[1])})},t.prototype.setValidators=function(t){var e=this;t.forEach(function(t){var n=ia.getTypeValidators(t);n?(n.validators.push(we.A.required),"max"in n&&""!==n.max&&(e.priorityAttrs[t.name].maxValue=n.max),"min"in n&&""!==n.min&&(e.priorityAttrs[t.name].minValue=n.min),e.priorityAttrs[t.name].patternHelpText=n.patternHelpText,e.osdRecvSpeedForm.controls[t.name].setValidators(n.validators)):e.osdRecvSpeedForm.controls[t.name].setValidators(we.A.required)})},t.prototype.onCustomizePriorityChange=function(){var t=this,e={};if(Object.keys(this.priorityAttrs).forEach(function(n){e[n]=t.osdRecvSpeedForm.getValue(n)}),this.osdRecvSpeedForm.getValue("customizePriority")){var n={name:"custom",text:this.i18n("Custom"),values:e};this.setPriority(n)}else this.detectPriority(e,function(e){t.setPriority(e)})},t.prototype.onPriorityChange=function(t){var e=pt.find(this.priorities,function(e){return e.name===t})||this.priorities[0];this.osdRecvSpeedForm.get("customizePriority").setValue(!1),this.setPriority(e)},t.prototype.submitAction=function(){var t=this,e={};Object.keys(this.priorityAttrs).forEach(function(n){e[n]={section:"osd",value:t.osdRecvSpeedForm.getValue(n)}}),this.configService.bulkCreate({options:e}).subscribe(function(){t.notificationService.show(Jn.a.success,t.i18n('Updated OSD recovery speed priority "{{value}}"',{value:t.osdRecvSpeedForm.getValue("priority")})),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),la=n("2EZI"),da=function(){function t(t,e,n){this.bsModalRef=t,this.osdService=e,this.fb=n,this.currentWeight=1}return Object.defineProperty(t.prototype,"weight",{get:function(){return this.reweightForm.get("weight")},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.reweightForm=this.fb.group({weight:this.fb.control(this.currentWeight,[we.A.required,we.A.max(1),we.A.min(0)])})},t.prototype.reweight=function(){var t=this;this.osdService.reweight(this.osdId,this.reweightForm.value.weight).subscribe(function(){return t.bsModalRef.hide()})},t}(),fa=function(){function t(t,e,n,a){this.bsModalRef=t,this.osdService=e,this.notificationService=n,this.i18n=a,this.selected=[]}return t.prototype.ngOnInit=function(){this.scrubForm=new we.k({})},t.prototype.scrub=function(){var t=this,e=this.selected[0].id;this.osdService.scrub(e,this.deep).subscribe(function(){t.notificationService.show(Jn.a.success,t.i18n("{{operation}} was initialized in the following OSD: {{id}}",{operation:t.deep?"Deep scrub":"Scrub",id:e})),t.bsModalRef.hide()},function(){t.bsModalRef.hide()})},t}(),pa=function(){function t(t,e,n,a,r,i){var s=this;this.authStorageService=t,this.osdService=e,this.dimlessBinaryPipe=n,this.modalService=a,this.i18n=r,this.actionLabels=i,this.osds=[],this.selection=new Be.a,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{name:this.actionLabels.SCRUB,permission:"update",icon:"fa-stethoscope",click:function(){return s.scrubAction(!1)},disable:function(){return!s.hasOsdSelected}},{name:this.actionLabels.DEEP_SCRUB,permission:"update",icon:"fa-cog",click:function(){return s.scrubAction(!0)},disable:function(){return!s.hasOsdSelected}},{name:this.actionLabels.REWEIGHT,permission:"update",click:function(){return s.reweight()},disable:function(){return!s.hasOsdSelected},icon:"fa-balance-scale"},{name:this.actionLabels.MARK_OUT,permission:"update",click:function(){return s.showConfirmationModal(s.i18n("out"),s.osdService.markOut)},disable:function(){return s.isNotSelectedOrInState("out")},icon:"fa-arrow-left"},{name:this.actionLabels.MARK_IN,permission:"update",click:function(){return s.showConfirmationModal(s.i18n("in"),s.osdService.markIn)},disable:function(){return s.isNotSelectedOrInState("in")},icon:"fa-arrow-right"},{name:this.actionLabels.MARK_DOWN,permission:"update",click:function(){return s.showConfirmationModal(s.i18n("down"),s.osdService.markDown)},disable:function(){return s.isNotSelectedOrInState("down")},icon:"fa-arrow-down"},{name:this.actionLabels.MARK_LOST,permission:"delete",click:function(){return s.showCriticalConfirmationModal(s.i18n("Mark"),s.i18n("OSD lost"),s.i18n("marked lost"),s.osdService.markLost)},disable:function(){return s.isNotSelectedOrInState("up")},icon:"fa-unlink"},{name:this.actionLabels.PURGE,permission:"delete",click:function(){return s.showCriticalConfirmationModal(s.i18n("Purge"),s.i18n("OSD"),s.i18n("purged"),s.osdService.purge)},disable:function(){return s.isNotSelectedOrInState("up")},icon:"fa-eraser"},{name:this.actionLabels.DESTROY,permission:"delete",click:function(){return s.showCriticalConfirmationModal(s.i18n("destroy"),s.i18n("OSD"),s.i18n("destroyed"),s.osdService.destroy)},disable:function(){return s.isNotSelectedOrInState("up")},icon:"fa-remove"}],this.advancedTableActions=[{name:this.i18n("Cluster-wide Flags"),icon:"fa-flag",click:function(){return s.configureFlagsAction()},permission:this.permissions.osd.read},{name:this.i18n("Cluster-wide Recovery Priority"),icon:"fa-cog",click:function(){return s.configureQosParamsAction()},permission:this.permissions.configOpt.read},{name:this.i18n("PG scrub"),icon:"fa-stethoscope",click:function(){return s.configurePgScrubAction()},permission:this.permissions.configOpt.read}]}return t.collectStates=function(t){return[t.in?"in":"out",t.up?"up":"down"]},t.prototype.ngOnInit=function(){this.columns=[{prop:"host.name",name:this.i18n("Host")},{prop:"id",name:this.i18n("ID"),cellTransformation:ln.a.bold},{prop:"collectedStates",name:this.i18n("Status"),cellTemplate:this.statusColor},{prop:"stats.numpg",name:this.i18n("PGs")},{prop:"stats.stat_bytes",name:this.i18n("Size"),pipe:this.dimlessBinaryPipe},{prop:"stats.usage",name:this.i18n("Usage"),cellTemplate:this.osdUsageTpl},{prop:"stats_history.out_bytes",name:this.i18n("Read bytes"),cellTransformation:ln.a.sparkline},{prop:"stats_history.in_bytes",name:this.i18n("Write bytes"),cellTransformation:ln.a.sparkline},{prop:"stats.op_r",name:this.i18n("Read ops"),cellTransformation:ln.a.perSecond},{prop:"stats.op_w",name:this.i18n("Write ops"),cellTransformation:ln.a.perSecond}],this.removeActionsWithNoPermissions()},Object.defineProperty(t.prototype,"hasOsdSelected",{get:function(){if(this.selection.hasSelection){var t=this.selection.first().id;return!!this.osds.filter(function(e){return e.id===t}).pop()}return!1},enumerable:!0,configurable:!0}),t.prototype.updateSelection=function(t){this.selection=t},t.prototype.isNotSelectedOrInState=function(t){if(!this.hasOsdSelected)return!0;var e=this.selection.first().id,n=this.osds.filter(function(t){return t.id===e}).pop();if(!n)return!0;switch(t){case"in":return 1===n.in;case"out":return 1!==n.in;case"down":return 1!==n.up;case"up":return 1===n.up}},t.prototype.getOsdList=function(){var e=this;this.osdService.getList().subscribe(function(n){e.osds=n.map(function(e){return e.collectedStates=t.collectStates(e),e.stats_history.out_bytes=e.stats_history.op_out_bytes.map(function(t){return t[1]}),e.stats_history.in_bytes=e.stats_history.op_in_bytes.map(function(t){return t[1]}),e.stats.usage=e.stats.stat_bytes_used/e.stats.stat_bytes,e.cdIsBinary=!0,e})})},t.prototype.scrubAction=function(t){this.hasOsdSelected&&(this.bsModalRef=this.modalService.show(fa,{initialState:{selected:this.tableComponent.selection.selected,deep:t}}))},t.prototype.configureFlagsAction=function(){this.bsModalRef=this.modalService.show(ta,{})},t.prototype.showConfirmationModal=function(t,e){var n=this;this.bsModalRef=this.modalService.show($n.a,{initialState:{titleText:this.i18n("Mark OSD {{markAction}}",{markAction:t}),buttonText:this.i18n("Mark {{markAction}}",{markAction:t}),bodyTpl:this.markOsdConfirmationTpl,bodyContext:{markActionDescription:t},onSubmit:function(){e.call(n.osdService,n.selection.first().id).subscribe(function(){return n.bsModalRef.hide()})}}})},t.prototype.reweight=function(){var t=this,e=this.osds.filter(function(e){return e.id===t.selection.first().id}).pop();this.modalService.show(da,{initialState:{currentWeight:e.weight,osdId:e.id}})},t.prototype.showCriticalConfirmationModal=function(t,e,n,a){var r=this;this.osdService.safeToDestroy(this.selection.first().id).subscribe(function(i){var s=r.modalService.show(Zn.a,{initialState:{actionDescription:t,itemDescription:e,bodyTemplate:r.criticalConfirmationTpl,bodyContext:{result:i,actionDescription:n},submitAction:function(){a.call(r.osdService,r.selection.first().id).subscribe(function(){return s.hide()})}}})})},t.prototype.configureQosParamsAction=function(){this.bsModalRef=this.modalService.show(ca,{})},t.prototype.configurePgScrubAction=function(){this.bsModalRef=this.modalService.show(ua,{class:"modal-lg"})},t.prototype.removeActionsWithNoPermissions=function(){this.advancedTableActions=this.permissions?this.advancedTableActions.filter(function(t){return t.permission}):[]},t}(),ha=n("DQlY"),ga=s["\u0275crt"]({encapsulation:0,styles:[[".caret.caret-black[_ngcontent-%COMP%]{color:#000}"]],data:{}});function ba(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"button",[["class","btn btn-sm btn-default dropdown-toggle dropdown-toggle-split"],["dropdownToggle",""],["type","button"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,1).onClick()&&a),a},null,null)),s["\u0275did"](1,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275eld"](2,0,null,null,0,"span",[["class","caret caret-black"]],null,null,null,null,null))],null,function(t,e){t(e,0,0,!0,s["\u0275nov"](e,1).isDisabled,s["\u0275nov"](e,1).isOpen)})}function ma(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,4,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,3,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.context.$implicit.click()&&a),a},null,null)),(t()(),s["\u0275eld"](3,0,null,null,0,"i",[["aria-hidden","true"]],[[8,"className",0]],null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](5,null,["",""]))],null,function(t,e){t(e,3,0,s["\u0275inlineInterpolate"](1,"fa fa-fw ",e.context.$implicit.icon,"")),t(e,5,0,e.context.$implicit.name)})}function ya(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"ul",[["class","dropdown-menu"],["role","menu"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,2,null,ma)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["\u0275pid"](0,i.SlicePipe,[])],function(t,e){var n=e.component;t(e,2,0,s["\u0275unv"](e,2,0,s["\u0275nov"](e,3).transform(n.advancedTableActions,1)))},null)}function va(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,16777216,null,null,10,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](2,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),(t()(),s["\u0275eld"](3,0,null,null,3,"button",[["class","btn btn-sm btn-default btn-label tc_configureCluster"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.advancedTableActions[0].click()&&a),a},null,null)),(t()(),s["\u0275eld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](6,null,["",""])),(t()(),s["\u0275and"](16777216,null,null,1,null,ba)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ya)),s["\u0275did"](10,16384,null,0,mn.d,[mn.f,s.ViewContainerRef,s.TemplateRef],null,null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,2,0),t(e,8,0,n.advancedTableActions.length>1)},function(t,e){var n=e.component;t(e,0,0,s["\u0275nov"](e,2).dropup,s["\u0275nov"](e,2).isOpen,s["\u0275nov"](e,2).isOpen&&s["\u0275nov"](e,2).isBs4),t(e,4,0,s["\u0275inlineInterpolate"](1,"fa fa-fw ",n.advancedTableActions[0].icon,"")),t(e,6,0,n.advancedTableActions[0].name)})}function _a(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0"]))],null,null)}function xa(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,8,"span",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,5,"span",[["class","label"]],null,null,null,null,null)),s["\u0275did"](2,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pad"](3,2),s["\u0275pad"](4,2),s["\u0275pod"](5,{"label-success":0,"label-danger":1}),(t()(),s["\u0275ted"](6,null,["",""])),(t()(),s["\u0275and"](16777216,null,null,1,null,_a)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,5,0,t(e,3,0,"in","up").includes(e.context.$implicit),t(e,4,0,"down","out").includes(e.context.$implicit));t(e,2,0,"label",n),t(e,8,0,!e.context.last)},function(t,e){t(e,6,0,e.context.$implicit)})}function Ta(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,xa)),s["\u0275did"](1,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.value)},null)}function wa(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,yn.b,yn.a)),s["\u0275did"](1,573440,null,0,vn.a,[],{total:[0,"total"],used:[1,"used"]},null)],function(t,e){t(e,1,0,e.context.row.stats.stat_bytes,e.context.row.stats.stat_bytes_used)},null)}function Sa(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](1,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","lo02I1Aiz"]],null,null,null,qe.b,qe.a)),s["\u0275did"](3,638976,null,0,je.a,[Fe.a,ze.DomSanitizer,Ge.a,Ye.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"osd-overview?","three","lo02I1Aiz")},function(t,e){t(e,0,0,s["\u0275nov"](e,1).id,s["\u0275nov"](e,1).active,s["\u0275nov"](e,1).addClass)})}function Oa(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,["OSD ",""])),(t()(),s["\u0275ted"](-1,null,[" will be marked "])),(t()(),s["\u0275eld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](5,null,["",""])),(t()(),s["\u0275ted"](-1,null,[" if you proceed."]))],null,function(t,e){t(e,2,0,e.component.selection.first().id),t(e,5,0,e.context.markActionDescription)})}function Ia(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"div",[["class","danger"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,2,"cd-warning-panel",[],null,null,null,_n.b,_n.a)),s["\u0275did"](2,49152,null,0,xn.a,[],null,null),(t()(),s["\u0275ted"](-1,0,["The OSD is not safe to destroy!"]))],null,null)}function Ca(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Ia)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](2,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](4,null,["OSD ",""])),(t()(),s["\u0275ted"](-1,null,[" will be "])),(t()(),s["\u0275eld"](6,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](7,null,["",""])),(t()(),s["\u0275ted"](-1,null,[" if you proceed."]))],function(t,e){t(e,1,0,!e.context.result.is_safe_to_destroy)},function(t,e){t(e,4,0,e.component.selection.first().id),t(e,7,0,e.context.actionDescription)})}function ka(t){return s["\u0275vid"](0,[s["\u0275qud"](402653184,1,{statusColor:0}),s["\u0275qud"](402653184,2,{osdUsageTpl:0}),s["\u0275qud"](402653184,3,{markOsdConfirmationTpl:0}),s["\u0275qud"](402653184,4,{criticalConfirmationTpl:0}),s["\u0275qud"](402653184,5,{tableComponent:0}),s["\u0275qud"](402653184,6,{reweightBodyTpl:0}),s["\u0275qud"](402653184,7,{safeToDestroyBodyTpl:0}),(t()(),s["\u0275eld"](7,0,null,null,16,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](8,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](9,0,null,0,12,"tab",[["heading","OSDs List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](10,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](11,0,null,null,8,"cd-table",[["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getOsdList()&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ve.b,Ve.a)),s["\u0275did"](12,2867200,[[5,4]],0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"],updateSelectionOnRefresh:[3,"updateSelectionOnRefresh"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),s["\u0275eld"](13,0,null,0,4,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),s["\u0275eld"](14,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,Tn.b,Tn.a)),s["\u0275did"](15,114688,null,0,wn.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,va)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](18,0,null,2,1,"cd-osd-details",[["cdTableDetail",""]],null,null,null,Un,qn)),s["\u0275did"](19,573440,null,0,Mn,[Pn,d.a],{selection:[0,"selection"]},null),(t()(),s["\u0275and"](0,[[1,2],["statusColor",2]],null,0,null,Ta)),(t()(),s["\u0275and"](0,[[2,2],["osdUsageTpl",2]],null,0,null,wa)),(t()(),s["\u0275and"](16777216,null,0,1,null,Sa)),s["\u0275did"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,[[3,2],["markOsdConfirmationTpl",2]],null,0,null,Oa)),(t()(),s["\u0275and"](0,[[4,2],["criticalConfirmationTpl",2]],null,0,null,Ca))],function(t,e){var n=e.component;t(e,10,0,"OSDs List"),t(e,12,0,n.osds,n.columns,"single","never"),t(e,15,0,n.permissions.osd,n.selection,n.tableActions),t(e,17,0,n.advancedTableActions.length>0),t(e,19,0,n.selection),t(e,23,0,n.permissions.grafana.read)},function(t,e){t(e,7,0,s["\u0275nov"](e,8).clazz),t(e,9,0,s["\u0275nov"](e,10).id,s["\u0275nov"](e,10).active,s["\u0275nov"](e,10).addClass)})}function Na(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-osd-list",[],null,null,null,ka,ga)),s["\u0275did"](1,114688,null,0,pa,[d.a,Pn,gt.a,ha.b,Tt.a,Xn.b],null,null)],function(t,e){t(e,1,0)},null)}var Ra=s["\u0275ccf"]("cd-osd-list",pa,Na,{},{},[]),Aa=function(){function t(){}return t.prototype.transform=function(t,e){return t.filter(function(t){var n=!0;return e.forEach(function(e){if(e.value)return(n=n&&e.applyFilter(t,e.value))?void 0:n}),n})},t}(),Da=n("iExv"),Ea=function(){function t(t){this.i18n=t,this.flags={runtime:this.i18n("The value can be updated at runtime."),no_mon_update:this.i18n("Daemons/clients do not pull this value from the\n monitor config database. We disallow setting this option via 'ceph config\n set ...'. This option should be configured via ceph.conf or via the\n command line."),startup:this.i18n("Option takes effect only during daemon startup."),cluster_create:this.i18n("Option only affects cluster creation."),create:this.i18n("Option only affects daemon creation.")}}return t.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.selectedItem.services=pt.split(this.selectedItem.services,","))},t}(),La=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Pa(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" ",": ","",""])),(t()(),s["\u0275eld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")})}function Ma(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,2,"span",[["class","badge badge-pill badge-primary margin-right-sm"]],null,null,null,null,null)),(t()(),s["\u0275ted"](3,null,["",""])),s["\u0275ppd"](4,1)],null,function(t,e){t(e,1,0,s["\u0275inlineInterpolate"](1,"",e.component.flags[e.context.$implicit],""));var n=s["\u0275unv"](e,3,0,t(e,4,0,s["\u0275nov"](e.parent.parent,0),e.context.$implicit));t(e,3,0,n)})}function qa(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[["class","badge badge-pill badge-primary margin-right-sm"]],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function ja(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,94,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](1,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](2,0,null,0,92,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](3,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](4,0,null,null,90,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,89,"tbody",[],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Name"])),(t()(),s["\u0275eld"](9,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](10,null,["",""])),(t()(),s["\u0275eld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Description"])),(t()(),s["\u0275eld"](14,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](15,null,["",""])),(t()(),s["\u0275eld"](16,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](17,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Long description"])),(t()(),s["\u0275eld"](19,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](20,null,["",""])),(t()(),s["\u0275eld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](22,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Current values"])),(t()(),s["\u0275eld"](24,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Pa)),s["\u0275did"](26,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](27,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](28,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Default"])),(t()(),s["\u0275eld"](30,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](31,null,["",""])),(t()(),s["\u0275eld"](32,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](33,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Daemon default"])),(t()(),s["\u0275eld"](35,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](36,null,["",""])),(t()(),s["\u0275eld"](37,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](38,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Type"])),(t()(),s["\u0275eld"](40,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](41,null,["",""])),(t()(),s["\u0275eld"](42,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](43,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Min"])),(t()(),s["\u0275eld"](45,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](46,null,["",""])),(t()(),s["\u0275eld"](47,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](48,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Max"])),(t()(),s["\u0275eld"](50,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](51,null,["",""])),(t()(),s["\u0275eld"](52,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](53,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Flags"])),(t()(),s["\u0275eld"](55,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Ma)),s["\u0275did"](57,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](58,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](59,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Services"])),(t()(),s["\u0275eld"](61,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,qa)),s["\u0275did"](63,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](64,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](65,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Source"])),(t()(),s["\u0275eld"](67,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](68,null,["",""])),(t()(),s["\u0275eld"](69,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](70,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Level"])),(t()(),s["\u0275eld"](72,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](73,null,["",""])),(t()(),s["\u0275eld"](74,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](75,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Can be updated at runtime (editable)"])),(t()(),s["\u0275eld"](77,0,null,null,2,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](78,null,["",""])),s["\u0275ppd"](79,1),(t()(),s["\u0275eld"](80,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](81,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Tags"])),(t()(),s["\u0275eld"](83,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](84,null,["",""])),(t()(),s["\u0275eld"](85,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](86,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Enum values"])),(t()(),s["\u0275eld"](88,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](89,null,["",""])),(t()(),s["\u0275eld"](90,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](91,0,null,null,1,"td",[["class","bold col-sm-1"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["See also"])),(t()(),s["\u0275eld"](93,0,null,null,1,"td",[["class","col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](94,null,["",""]))],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,26,0,n.selectedItem.value),t(e,57,0,n.selectedItem.flags),t(e,63,0,n.selectedItem.services)},function(t,e){var n=e.component;t(e,0,0,s["\u0275nov"](e,1).clazz),t(e,2,0,s["\u0275nov"](e,3).id,s["\u0275nov"](e,3).active,s["\u0275nov"](e,3).addClass),t(e,10,0,n.selectedItem.name),t(e,15,0,n.selectedItem.desc),t(e,20,0,n.selectedItem.long_desc),t(e,31,0,n.selectedItem.default),t(e,36,0,n.selectedItem.daemon_default),t(e,41,0,n.selectedItem.type),t(e,46,0,n.selectedItem.min),t(e,51,0,n.selectedItem.max),t(e,68,0,n.selectedItem.source),t(e,73,0,n.selectedItem.level);var a=s["\u0275unv"](e,78,0,t(e,79,0,s["\u0275nov"](e.parent,1),n.selectedItem.can_update_at_runtime));t(e,78,0,a),t(e,84,0,n.selectedItem.tags),t(e,89,0,n.selectedItem.enum_values),t(e,94,0,n.selectedItem.see_also)})}function Fa(t){return s["\u0275vid"](0,[s["\u0275pid"](0,i.UpperCasePipe,[]),s["\u0275pid"](0,Da.a,[Tt.a]),(t()(),s["\u0275and"](16777216,null,null,1,null,ja)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,null==n.selection?null:n.selection.hasSingleSelection)},null)}var za=function(){function t(t,e,n,a){var r=this;this.authStorageService=t,this.configurationService=e,this.i18n=n,this.actionLabels=a,this.data=[],this.selection=new Be.a,this.filters=[{label:this.i18n("Level"),prop:"level",initValue:"basic",value:"basic",options:["basic","advanced","dev"],applyFilter:function(t,e){var n=function(t){return t[t.basic=0]="basic",t[t.advanced=1]="advanced",t[t.dev=2]="dev",t}({});return n[t.level]<=n[e]}},{label:this.i18n("Service"),prop:"services",initValue:"any",value:"any",options:["any","mon","mgr","osd","mds","common","mds_client","rgw"],applyFilter:function(t,e){return"any"===e||t.services.includes(e)}},{label:this.i18n("Source"),prop:"source",initValue:"any",value:"any",options:["any","mon"],applyFilter:function(t,e){return"any"===e||!!t.hasOwnProperty("source")&&t.source.includes(e)}}],this.permission=this.authStorageService.getPermissions().configOpt,this.tableActions=[{permission:"update",icon:"fa-pencil",routerLink:function(){return"/configuration/edit/"+(r.selection.first()&&""+encodeURIComponent(r.selection.first().name))},name:this.actionLabels.EDIT,disable:function(){return!r.isEditable(r.selection)}}]}return t.prototype.ngOnInit=function(){this.columns=[{canAutoResize:!0,prop:"name",name:this.i18n("Name")},{prop:"desc",name:this.i18n("Description"),cellClass:"wrap"},{prop:"value",name:this.i18n("Current value"),cellClass:"wrap",cellTemplate:this.confValTpl},{prop:"default",name:this.i18n("Default"),cellClass:"wrap"},{prop:"can_update_at_runtime",name:this.i18n("Editable"),cellTransformation:ln.a.checkIcon,flexGrow:.4,cellClass:"text-center"}]},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.getConfigurationList=function(t){var e=this;this.configurationService.getConfigData().subscribe(function(t){e.data=t},function(){t.error()})},t.prototype.updateFilter=function(){this.data=this.data.slice()},t.prototype.resetFilter=function(){this.filters.forEach(function(t){t.value=t.initValue}),this.data=this.data.slice()},t.prototype.isEditable=function(t){return 1===t.selected.length&&t.selected[0].can_update_at_runtime},t}(),Ga=s["\u0275crt"]({encapsulation:0,styles:[[".filter[_ngcontent-%COMP%]{padding-right:8px} datatable-body-cell.wrap{word-break:break-all}"]],data:{}});function Ya(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],null,null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],null,null),(t()(),s["\u0275ted"](3,null,["",""]))],null,function(t,e){t(e,3,0,e.context.$implicit)})}function Va(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,11,"div",[["class","form-group filter"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,["",": "])),(t()(),s["\u0275eld"](3,0,null,null,8,"select",[["class","form-control input-sm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,5).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,5).onTouched()&&a),"ngModelChange"===e&&(a=!1!==(t.context.$implicit.value=n)&&a),"ngModelChange"===e&&(a=!1!==r.updateFilter()&&a),a},null,null)),s["\u0275did"](4,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](5,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](7,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ya)),s["\u0275did"](11,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,7,0,e.context.$implicit.value),t(e,11,0,e.context.$implicit.options)},function(t,e){t(e,2,0,e.context.$implicit.label),t(e,3,0,s["\u0275nov"](e,9).ngClassUntouched,s["\u0275nov"](e,9).ngClassTouched,s["\u0275nov"](e,9).ngClassPristine,s["\u0275nov"](e,9).ngClassDirty,s["\u0275nov"](e,9).ngClassValid,s["\u0275nov"](e,9).ngClassInvalid,s["\u0275nov"](e,9).ngClassPending)})}function Ha(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" ",": ","",""])),(t()(),s["\u0275eld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")})}function Ba(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Ha)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.parent.context.value)},null)}function Ua(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Ba)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.context.value)},null)}function Wa(t){return s["\u0275vid"](0,[s["\u0275pid"](0,Aa,[]),s["\u0275qud"](402653184,1,{confValTpl:0}),s["\u0275qud"](402653184,2,{confFlagTpl:0}),(t()(),s["\u0275eld"](3,0,null,null,12,"cd-table",[["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getConfigurationList(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ve.b,Ve.a)),s["\u0275did"](4,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),s["\u0275ppd"](5,2),(t()(),s["\u0275eld"](6,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Tn.b,Tn.a)),s["\u0275did"](7,114688,null,0,wn.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["\u0275eld"](8,0,null,1,5,"div",[["class","table-filters"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Va)),s["\u0275did"](10,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](11,0,null,null,2,"a",[["class","fa-stack"],["title","Reset filters"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.resetFilter()&&a),a},null,null)),(t()(),s["\u0275eld"](12,0,null,null,0,"i",[["class","fa fa-filter fa-stack-2x"]],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,0,"i",[["class","fa fa-times fa-stack-1x"],["style","margin-left: 8px; margin-top: 5px;"]],null,null,null,null,null)),(t()(),s["\u0275eld"](14,0,null,2,1,"cd-configuration-details",[["cdTableDetail",""]],null,null,null,Fa,La)),s["\u0275did"](15,573440,null,0,Ea,[Tt.a],{selection:[0,"selection"]},null),(t()(),s["\u0275and"](0,[[1,2],["confValTpl",2]],null,0,null,Ua))],function(t,e){var n=e.component,a=s["\u0275unv"](e,4,0,t(e,5,0,s["\u0275nov"](e,0),n.data,n.filters));t(e,4,0,a,n.columns,"single"),t(e,7,0,n.permission,n.selection,n.tableActions),t(e,10,0,n.filters),t(e,15,0,n.selection)},null)}function Ka(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-configuration",[],null,null,null,Wa,Ga)),s["\u0275did"](1,114688,null,0,za,[d.a,na.a,Tt.a,Xn.b],null,null)],function(t,e){t(e,1,0)},null)}var $a=s["\u0275ccf"]("cd-configuration",za,Ka,{},{},[]),Za=n("gp3X"),Xa=n("sb0X"),Ja=n("KVJa"),Qa=n("Z21x"),tr=function(){return function(){this.value=[]}}(),er=function(){function t(t,e,n,a,r){this.route=t,this.router=e,this.configService=n,this.notificationService=a,this.i18n=r,this.availSections=["global","mon","mgr","osd","mds","client"],this.createForm()}return t.prototype.createForm=function(){var t={name:new we.i({value:null}),desc:new we.i({value:null}),long_desc:new we.i({value:null}),values:new we.k({}),default:new we.i({value:null}),daemon_default:new we.i({value:null}),services:new we.i([])};this.availSections.forEach(function(e){t.values.addControl(e,new we.i(null))}),this.configForm=new aa.a(t)},t.prototype.ngOnInit=function(){var t=this;this.route.params.subscribe(function(e){t.configService.get(e.name).subscribe(function(e){t.setResponse(e)})})},t.prototype.getValidators=function(t){var e=ia.getTypeValidators(t);if(e)return this.patternHelpText=e.patternHelpText,"max"in e&&""!==e.max&&(this.maxValue=e.max),"min"in e&&""!==e.min&&(this.minValue=e.min),e.validators},t.prototype.getStep=function(t,e){return ia.getTypeStep(t,e)},t.prototype.setResponse=function(t){var e=this;this.response=t;var n=this.getValidators(t);this.configForm.get("name").setValue(t.name),this.configForm.get("desc").setValue(t.desc),this.configForm.get("long_desc").setValue(t.long_desc),this.configForm.get("default").setValue(t.default),this.configForm.get("daemon_default").setValue(t.daemon_default),this.configForm.get("services").setValue(t.services),this.response.value&&this.response.value.forEach(function(t){var n;n="true"===t.value||"false"!==t.value&&t.value,e.configForm.get("values").get(t.section).setValue(n)}),this.availSections.forEach(function(t){e.configForm.get("values").get(t).setValidators(n)});var a=ia.getType(t.type);this.type=a.name,this.inputType=a.inputType,this.humanReadableType=a.humanReadable},t.prototype.createRequest=function(){var t=this,e=[];if(this.availSections.forEach(function(n){var a=t.configForm.getValue(n);null!==a&&""!==a&&e.push({section:n,value:a})}),!pt.isEqual(this.response.value,e)){var n=new tr;return n.name=this.configForm.getValue("name"),n.value=e,n}return null},t.prototype.submit=function(){var t=this,e=this.createRequest();e&&this.configService.create(e).subscribe(function(){t.notificationService.show(Jn.a.success,t.i18n("Updated config option {{name}}",{name:e.name})),t.router.navigate(["/configuration"])},function(){t.configForm.setErrors({cdSubmitButton:!0})}),this.router.navigate(["/configuration"])},t}(),nr=s["\u0275crt"]({encapsulation:0,styles:[[".form-component-badge[_ngcontent-%COMP%]{height:34px;display:block}.form-component-badge[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-top:7px}.resize-vertical[_ngcontent-%COMP%]{resize:vertical}"]],data:{}});function ar(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Description"])),(t()(),s["\u0275eld"](3,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,6,"textarea",[["class","form-control resize-vertical"],["formControlName","desc"],["id","desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,5)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,5).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,5)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,5)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](5,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](7,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275ted"](-1,null,[" "]))],function(t,e){t(e,7,0,"desc")},function(t,e){t(e,4,0,s["\u0275nov"](e,9).ngClassUntouched,s["\u0275nov"](e,9).ngClassTouched,s["\u0275nov"](e,9).ngClassPristine,s["\u0275nov"](e,9).ngClassDirty,s["\u0275nov"](e,9).ngClassValid,s["\u0275nov"](e,9).ngClassInvalid,s["\u0275nov"](e,9).ngClassPending)})}function rr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Long description"])),(t()(),s["\u0275eld"](3,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,6,"textarea",[["class","form-control resize-vertical"],["formControlName","long_desc"],["id","long_desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,5)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,5).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,5)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,5)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](5,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](7,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](9,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275ted"](-1,null,[" "]))],function(t,e){t(e,7,0,"long_desc")},function(t,e){t(e,4,0,s["\u0275nov"](e,9).ngClassUntouched,s["\u0275nov"](e,9).ngClassTouched,s["\u0275nov"](e,9).ngClassPristine,s["\u0275nov"](e,9).ngClassDirty,s["\u0275nov"](e,9).ngClassValid,s["\u0275nov"](e,9).ngClassInvalid,s["\u0275nov"](e,9).ngClassPending)})}function ir(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Default"])),(t()(),s["\u0275eld"](3,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,6,"input",[["class","form-control"],["formControlName","default"],["id","default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,6)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,6).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,6)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,6)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](5,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](6,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](8,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](10,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){t(e,8,0,"default")},function(t,e){t(e,4,0,s["\u0275nov"](e,10).ngClassUntouched,s["\u0275nov"](e,10).ngClassTouched,s["\u0275nov"](e,10).ngClassPristine,s["\u0275nov"](e,10).ngClassDirty,s["\u0275nov"](e,10).ngClassValid,s["\u0275nov"](e,10).ngClassInvalid,s["\u0275nov"](e,10).ngClassPending)})}function sr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Daemon default"])),(t()(),s["\u0275eld"](3,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,6,"input",[["class","form-control"],["formControlName","daemon_default"],["id","daemon_default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,6)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,6).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,6)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,6)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](5,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](6,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](8,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](10,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){t(e,8,0,"daemon_default")},function(t,e){t(e,4,0,s["\u0275nov"](e,10).ngClassUntouched,s["\u0275nov"](e,10).ngClassTouched,s["\u0275nov"](e,10).ngClassPristine,s["\u0275nov"](e,10).ngClassDirty,s["\u0275nov"](e,10).ngClassValid,s["\u0275nov"](e,10).ngClassInvalid,s["\u0275nov"](e,10).ngClassPending)})}function or(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[["class","form-component-badge"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[["class","badge badge-pill badge-primary"]],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function ur(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Services"])),(t()(),s["\u0275eld"](3,0,null,null,2,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,or)),s["\u0275did"](5,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.configForm.getValue("services"))},null)}function cr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["\u0275ted"](2,null,[""," "])),(t()(),s["\u0275eld"](3,0,null,null,19,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,18,"select",[["class","form-control custom-select"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,6).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,6).onTouched()&&a),a},null,null)),s["\u0275did"](5,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](6,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](8,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](10,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275eld"](11,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](12,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),s["\u0275did"](13,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["\u0275ted"](-1,null,["-- Default --"])),(t()(),s["\u0275eld"](15,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](16,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),s["\u0275did"](17,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["\u0275ted"](-1,null,["true"])),(t()(),s["\u0275eld"](19,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](20,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),s["\u0275did"](21,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["\u0275ted"](-1,null,["false"]))],function(t,e){t(e,8,0,e.parent.context.$implicit),t(e,12,0,null),t(e,13,0,null),t(e,16,0,!0),t(e,17,0,!0),t(e,20,0,!1),t(e,21,0,!1)},function(t,e){t(e,1,0,e.parent.context.$implicit),t(e,2,0,e.parent.context.$implicit),t(e,4,0,s["\u0275nov"](e,10).ngClassUntouched,s["\u0275nov"](e,10).ngClassTouched,s["\u0275nov"](e,10).ngClassPristine,s["\u0275nov"](e,10).ngClassDirty,s["\u0275nov"](e,10).ngClassValid,s["\u0275nov"](e,10).ngClassInvalid,s["\u0275nov"](e,10).ngClassPending)})}function lr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.component.patternHelpText)})}function dr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.component.patternHelpText)})}function fr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,function(t,e){t(e,1,0,e.component.maxValue)})}function pr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,function(t,e){t(e,1,0,e.component.minValue)})}function hr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,1,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["\u0275ted"](4,null,[""," "])),(t()(),s["\u0275eld"](5,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,8)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](7,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](8,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](10,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](12,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,lr)),s["\u0275did"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,dr)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,fr)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,pr)),s["\u0275did"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.configForm.showError(e.parent.context.$implicit,s["\u0275nov"](e.parent.parent,3)));t(e,1,0,"form-group",a),t(e,10,0,e.parent.context.$implicit),t(e,14,0,n.configForm.showError(e.parent.context.$implicit,s["\u0275nov"](e.parent.parent,3),"pattern")),t(e,16,0,n.configForm.showError(e.parent.context.$implicit,s["\u0275nov"](e.parent.parent,3),"invalidUuid")),t(e,18,0,n.configForm.showError(e.parent.context.$implicit,s["\u0275nov"](e.parent.parent,3),"max")),t(e,20,0,n.configForm.showError(e.parent.context.$implicit,s["\u0275nov"](e.parent.parent,3),"min"))},function(t,e){var n=e.component;t(e,3,0,e.parent.context.$implicit),t(e,4,0,e.parent.context.$implicit),t(e,6,1,[n.inputType,e.parent.context.$implicit,n.humanReadableType,n.getStep(n.type,n.configForm.getValue(e.parent.context.$implicit)),s["\u0275nov"](e,12).ngClassUntouched,s["\u0275nov"](e,12).ngClassTouched,s["\u0275nov"](e,12).ngClassPristine,s["\u0275nov"](e,12).ngClassDirty,s["\u0275nov"](e,12).ngClassValid,s["\u0275nov"](e,12).ngClassInvalid,s["\u0275nov"](e,12).ngClassPending])})}function gr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,cr)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,hr)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,"bool"===n.type),t(e,4,0,"bool"!==n.type)},null)}function br(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,49,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,48,"form",[["class","form-horizontal"],["name","configForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,3).onReset()&&a),a},null,null)),s["\u0275did"](2,16384,null,0,we.D,[],null,null),s["\u0275did"](3,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](5,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](6,0,null,null,43,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),s["\u0275eld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Edit"])),(t()(),s["\u0275ted"](11,null,[" "," "])),(t()(),s["\u0275eld"](12,0,null,null,29,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,10,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](14,0,null,null,1,"label",[["class","control-label col-sm-3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Name"])),(t()(),s["\u0275eld"](16,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](17,0,null,null,6,"input",[["class","form-control"],["formControlName","name"],["id","name"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](18,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](19,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](21,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](23,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,ar)),s["\u0275did"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,rr)),s["\u0275did"](27,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ir)),s["\u0275did"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,sr)),s["\u0275did"](31,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ur)),s["\u0275did"](33,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](34,0,null,null,7,"div",[["class","col-sm-12"],["formGroupName","values"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),s["\u0275did"](35,212992,null,0,we.m,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.d,null,[we.m]),s["\u0275did"](37,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](38,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Values"])),(t()(),s["\u0275and"](16777216,null,null,1,null,gr)),s["\u0275did"](41,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](42,0,null,null,7,"div",[["class","panel-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](43,0,null,null,6,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["\u0275eld"](44,0,null,null,3,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a},Za.b,Za.a)),s["\u0275did"](45,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),s["\u0275eld"](46,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Save"])),(t()(),s["\u0275eld"](48,0,null,null,1,"cd-back-button",[],null,null,null,Ja.b,Ja.a)),s["\u0275did"](49,49152,null,0,Qa.a,[i.Location,Xn.b],null,null)],function(t,e){var n=e.component;t(e,3,0,n.configForm),t(e,21,0,"name"),t(e,25,0,n.configForm.getValue("desc")),t(e,27,0,n.configForm.getValue("long_desc")),t(e,29,0,""!==n.configForm.getValue("default")),t(e,31,0,""!==n.configForm.getValue("daemon_default")),t(e,33,0,n.configForm.getValue("services").length>0),t(e,35,0,"values"),t(e,41,0,n.availSections),t(e,45,0,s["\u0275nov"](e,3),"button")},function(t,e){var n=e.component;t(e,1,0,s["\u0275nov"](e,5).ngClassUntouched,s["\u0275nov"](e,5).ngClassTouched,s["\u0275nov"](e,5).ngClassPristine,s["\u0275nov"](e,5).ngClassDirty,s["\u0275nov"](e,5).ngClassValid,s["\u0275nov"](e,5).ngClassInvalid,s["\u0275nov"](e,5).ngClassPending),t(e,11,0,n.configForm.getValue("name")),t(e,17,0,s["\u0275nov"](e,23).ngClassUntouched,s["\u0275nov"](e,23).ngClassTouched,s["\u0275nov"](e,23).ngClassPristine,s["\u0275nov"](e,23).ngClassDirty,s["\u0275nov"](e,23).ngClassValid,s["\u0275nov"](e,23).ngClassInvalid,s["\u0275nov"](e,23).ngClassPending),t(e,34,0,s["\u0275nov"](e,37).ngClassUntouched,s["\u0275nov"](e,37).ngClassTouched,s["\u0275nov"](e,37).ngClassPristine,s["\u0275nov"](e,37).ngClassDirty,s["\u0275nov"](e,37).ngClassValid,s["\u0275nov"](e,37).ngClassInvalid,s["\u0275nov"](e,37).ngClassPending)})}function mr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-configuration-form",[],null,null,null,br,nr)),s["\u0275did"](1,114688,null,0,er,[et.a,et.l,na.a,Qn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var yr=s["\u0275ccf"]("cd-configuration-form",er,mr,{},{},[]),vr=n("nuQ0"),_r=n("Tff5"),xr=n("urB8"),Tr=n("xtUU"),wr=function(){function t(t){this.healthService=t,this.metadataKeyMap={}}return t.prototype.ngOnInit=function(){var t=this;this.healthService.getFullHealth().subscribe(function(e){t.tree=t._abstractTreeData(e)})},t.prototype._abstractTreeData=function(t){var e=this,n=t.osd_map.tree.nodes||[],a={};if(0===n.length)return{value:"No nodes!",settings:{static:!0}};var r=[];return n.reverse().forEach(function(t){"root"===t.type&&r.push(t.id),a[t.id]=e.generateTreeLeaf(t,a)}),{value:"CRUSH map",children:r.map(function(t){return a[t]})}},t.prototype.generateTreeLeaf=function(t,e){var n=t.id;this.metadataKeyMap[n]=t;var a={static:!0},r=t.name+" ("+t.type+")",i=t.status,s=[];return t.children?(t.children.sort().forEach(function(t){s.push(e[t])}),{value:r,status:i,settings:a,id:n,children:s}):{value:r,status:i,settings:a,id:n}},t.prototype.onNodeSelected=function(t){var e=this.metadataKeyMap[t.node.id],n=e.name,a=e.type,r=h.__rest(e,["name","type","status"]);this.metadata=r,this.metadataTitle=n+" ("+a+")"},t}(),Sr=s["\u0275crt"]({encapsulation:0,styles:[["tree-internal .tree li{cursor:pointer} tree-internal .tree .node-value{color:#2b99a8;border-radius:5px} tree-internal .tree .node-selected{background-color:#d9edf7;color:#212121} tree-internal .tree .node-value:hover{color:#212121} tree-internal .tree .node-value:after{height:0}"]],data:{}});function Or(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"span",[["class","label"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pad"](2,2),s["\u0275pad"](3,3),s["\u0275pod"](4,{"label-success":0,"label-danger":1}),(t()(),s["\u0275ted"](5,null,["",""])),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0"])),(t()(),s["\u0275eld"](8,0,null,null,0,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null))],function(t,e){var n=t(e,4,0,t(e,2,0,"in","up").includes(e.context.$implicit.status),t(e,3,0,"down","out","destroyed").includes(e.context.$implicit.status));t(e,1,0,"label",n)},function(t,e){t(e,5,0,e.context.$implicit.status),t(e,8,0,e.context.$implicit.value)})}function Ir(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"div",[["class","col-sm-6 col-lg-6 metadata"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,["",""])),(t()(),s["\u0275eld"](3,0,null,null,1,"cd-table-key-value",[],null,null,null,Sn.b,Sn.a)),s["\u0275did"](4,638976,null,0,On.a,[In.a],{data:[0,"data"]},null)],function(t,e){t(e,4,0,e.component.metadata)},function(t,e){t(e,2,0,e.component.metadataTitle)})}function Cr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,16,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,15,"div",[["class","col-sm-12 col-lg-12"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,14,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,3,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,2,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["CRUSH map viewer"])),(t()(),s["\u0275eld"](7,0,null,null,9,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,6,"div",[["class","col-sm-6 col-lg-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](9,0,null,null,5,"tree",[],null,[[null,"nodeSelected"]],function(t,e,n){var a=!0;return"nodeSelected"===e&&(a=!1!==t.component.onNodeSelected(n)&&a),a},vr.b,vr.a)),s["\u0275prd"](512,null,_r.TreeService,_r.TreeService,[xr.NodeDraggableService]),s["\u0275did"](11,770048,null,1,Tr.TreeComponent,[_r.TreeService],{treeModel:[0,"treeModel"],settings:[1,"settings"]},{nodeSelected:"nodeSelected"}),s["\u0275qud"](335544320,1,{template:0}),s["\u0275pod"](13,{rootIsVisible:0}),(t()(),s["\u0275and"](0,[[1,2]],null,0,null,Or)),(t()(),s["\u0275and"](16777216,null,null,1,null,Ir)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=n.tree,r=t(e,13,0,!1);t(e,11,0,a,r),t(e,16,0,n.metadata)},null)}function kr(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-crushmap",[],null,null,null,Cr,Sr)),s["\u0275did"](1,114688,null,0,wr,[At],null,null)],function(t,e){t(e,1,0)},null)}var Nr=s["\u0275ccf"]("cd-crushmap",wr,kr,{},{},[]),Rr=n("ARl4"),Ar=n("MwfX"),Dr=function(){function t(){}return t.prototype.writeValue=function(e){return{type:t.WRITE_VALUE,payload:e}},t.prototype.changeHours=function(e){return{type:t.CHANGE_HOURS,payload:e}},t.prototype.changeMinutes=function(e){return{type:t.CHANGE_MINUTES,payload:e}},t.prototype.changeSeconds=function(e){return{type:t.CHANGE_SECONDS,payload:e}},t.prototype.setTime=function(e){return{type:t.SET_TIME_UNIT,payload:e}},t.prototype.updateControls=function(e){return{type:t.UPDATE_CONTROLS,payload:e}},t.WRITE_VALUE="[timepicker] write value from ng model",t.CHANGE_HOURS="[timepicker] change hours",t.CHANGE_MINUTES="[timepicker] change minutes",t.CHANGE_SECONDS="[timepicker] change seconds",t.SET_TIME_UNIT="[timepicker] set time unit",t.UPDATE_CONTROLS="[timepicker] update controls",t}(),Er=10,Lr=24,Pr=12,Mr=60,qr=60;function jr(t){return!!t&&!(t instanceof Date&&isNaN(t.getHours()))&&("string"!=typeof t||jr(new Date(t)))}function Fr(t,e){return!(t.min&&et.max)}function zr(t){return"number"==typeof t?t:parseInt(t,Er)}function Gr(t,e){void 0===e&&(e=!1);var n=zr(t);return isNaN(n)||n<0||n>(e?Pr:Lr)?NaN:n!==Pr||e?n:0}function Yr(t){var e=zr(t);return isNaN(e)||e<0||e>Mr?NaN:e}function Vr(t){var e=zr(t);return isNaN(e)||e<0||e>qr?NaN:e}function Hr(t){return"string"==typeof t?new Date(t):t}function Br(t,e){if(!t)return Br(Wr(new Date,0,0,0),e);var n=t.getHours(),a=t.getMinutes(),r=t.getSeconds();return e.hour&&(n=(n+zr(e.hour))%Lr)<0&&(n+=Lr),e.minute&&(a+=zr(e.minute)),e.seconds&&(r+=zr(e.seconds)),Wr(t,n,a,r)}function Ur(t,e){var n=Gr(e.hour),a=Yr(e.minute),r=Vr(e.seconds)||0;return e.isPM&&12!==n&&(n+=Pr),t?isNaN(n)||isNaN(a)?t:Wr(t,n,a,r):isNaN(n)||isNaN(a)?t:Wr(new Date,n,a,r)}function Wr(t,e,n,a){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),e,n,a,t.getMilliseconds())}function Kr(t){var e=t.toString();return e.length>1?e:"0"+e}function $r(t,e){return!isNaN(Gr(t,e))}function Zr(t){return!isNaN(Yr(t))}function Xr(t){return!isNaN(Vr(t))}function Jr(t,e,n,a){return void 0===e&&(e="0"),void 0===n&&(n="0"),$r(t,a)&&Zr(e)&&Xr(n)}function Qr(t,e){if(t.readonlyInput||t.disabled)return!1;if(e){if("wheel"===e.source&&!t.mousewheel)return!1;if("key"===e.source&&!t.arrowkeys)return!1}return!0}function ti(t){return{hourStep:t.hourStep,minuteStep:t.minuteStep,secondsStep:t.secondsStep,readonlyInput:t.readonlyInput,disabled:t.disabled,mousewheel:t.mousewheel,arrowkeys:t.arrowkeys,showSpinners:t.showSpinners,showMeridian:t.showMeridian,showSeconds:t.showSeconds,meridians:t.meridians,min:t.min,max:t.max}}var ei=function(){return function(){this.hourStep=1,this.minuteStep=5,this.secondsStep=10,this.showMeridian=!0,this.meridians=["AM","PM"],this.readonlyInput=!1,this.disabled=!1,this.mousewheel=!0,this.arrowkeys=!0,this.showSpinners=!0,this.showSeconds=!1,this.showMinutes=!0}}(),ni={value:null,config:new ei,controls:{canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0}};function ai(t,e){switch(void 0===t&&(t=ni),e.type){case Dr.WRITE_VALUE:return Object.assign({},t,{value:e.payload});case Dr.CHANGE_HOURS:if(!Qr(t.config,e.payload)||(s=t.controls,!(i=e.payload).step||i.step>0&&!s.canIncrementHours||i.step<0&&!s.canDecrementHours))return t;var n=Br(t.value,{hour:e.payload.step});return!t.config.max&&!t.config.min||Fr(t.config,n)?Object.assign({},t,{value:n}):t;case Dr.CHANGE_MINUTES:return Qr(t.config,e.payload)&&function(t,e){return!(!t.step||t.step>0&&!e.canIncrementMinutes||t.step<0&&!e.canDecrementMinutes)}(e.payload,t.controls)?(n=Br(t.value,{minute:e.payload.step}),!t.config.max&&!t.config.min||Fr(t.config,n)?Object.assign({},t,{value:n}):t):t;case Dr.CHANGE_SECONDS:return Qr(t.config,e.payload)&&function(t,e){return!(!t.step||t.step>0&&!e.canIncrementSeconds||t.step<0&&!e.canDecrementSeconds)}(e.payload,t.controls)?(n=Br(t.value,{seconds:e.payload.step}),!t.config.max&&!t.config.min||Fr(t.config,n)?Object.assign({},t,{value:n}):t):t;case Dr.SET_TIME_UNIT:return Qr(t.config)?(n=Ur(t.value,e.payload),Object.assign({},t,{value:n})):t;case Dr.UPDATE_CONTROLS:var a=function(t,e){var n=e.min,a=e.max,r=e.hourStep,i=e.minuteStep,s=e.secondsStep,o=e.showSeconds,u={canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0};if(!t)return u;if(a){var c=Br(t,{hour:r});if(u.canIncrementHours=a>c,!u.canIncrementHours){var l=Br(t,{minute:i});u.canIncrementMinutes=o?a>l:a>=l}if(!u.canIncrementMinutes){var d=Br(t,{seconds:s});u.canIncrementSeconds=a>=d}t.getHours()<12&&(u.canToggleMeridian=Br(t,{hour:12})=12&&(u.canToggleMeridian=Br(t,{hour:-12})>n)),u}(t.value,e.payload),r={value:t.value,config:e.payload,controls:a};return t.config.showMeridian!==r.config.showMeridian&&t.value&&(r.value=new Date(t.value)),Object.assign({},t,r);default:return t}var i,s}var ri=function(t){function e(){var e=new Et.a({type:"[mini-ngrx] dispatcher init"}),n=new Ar.a(ni,e,ai);return t.call(this,e,ai,n)||this}return Object(h.__extends)(e,t),e}(Ar.b),ii=function(){function t(t,e,n,a){var r=this;this._cd=e,this._store=n,this._timepickerActions=a,this.isValid=new s.EventEmitter,this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1,this.onChange=Function.prototype,this.onTouched=Function.prototype,Object.assign(this,t),this.timepickerSub=n.select(function(t){return t.value}).subscribe(function(t){r._renderTime(t),r.onChange(t),r._store.dispatch(r._timepickerActions.updateControls(ti(r)))}),n.select(function(t){return t.controls}).subscribe(function(t){r.isValid.emit(Jr(r.hours,r.minutes,r.seconds,r.isPM())),Object.assign(r,t),e.markForCheck()})}return Object.defineProperty(t.prototype,"isSpinnersVisible",{get:function(){return this.showSpinners&&!this.readonlyInput},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEditable",{get:function(){return!(this.readonlyInput||this.disabled)},enumerable:!0,configurable:!0}),t.prototype.resetValidation=function(){this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1},t.prototype.isPM=function(){return this.showMeridian&&this.meridian===this.meridians[1]},t.prototype.prevDef=function(t){t.preventDefault()},t.prototype.wheelSign=function(t){return-1*Math.sign(t.deltaY)},t.prototype.ngOnChanges=function(t){this._store.dispatch(this._timepickerActions.updateControls(ti(this)))},t.prototype.changeHours=function(t,e){void 0===e&&(e=""),this.resetValidation(),this._store.dispatch(this._timepickerActions.changeHours({step:t,source:e}))},t.prototype.changeMinutes=function(t,e){void 0===e&&(e=""),this.resetValidation(),this._store.dispatch(this._timepickerActions.changeMinutes({step:t,source:e}))},t.prototype.changeSeconds=function(t,e){void 0===e&&(e=""),this.resetValidation(),this._store.dispatch(this._timepickerActions.changeSeconds({step:t,source:e}))},t.prototype.updateHours=function(t){if(this.resetValidation(),this.hours=t,!$r(this.hours,this.isPM())||!this.isValidLimit())return this.invalidHours=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()},t.prototype.updateMinutes=function(t){if(this.resetValidation(),this.minutes=t,!Zr(this.minutes)||!this.isValidLimit())return this.invalidMinutes=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()},t.prototype.updateSeconds=function(t){if(this.resetValidation(),this.seconds=t,!Xr(this.seconds)||!this.isValidLimit())return this.invalidSeconds=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()},t.prototype.isValidLimit=function(){return t={hour:this.hours,minute:this.minutes,seconds:this.seconds,isPM:this.isPM()},e=this.max,n=this.min,a=Ur(new Date,t),!(e&&a>e||n&&a=12?1:0],0==(n%=12)&&(n=12)),this.hours=Kr(n),this.minutes=Kr(e.getMinutes()),this.seconds=Kr(e.getUTCSeconds())},t}(),si=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[ei,Dr,ri]}},t}(),oi=s["\u0275crt"]({encapsulation:2,styles:["\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n }\n "],data:{}});function ui(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function ci(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(r.minuteStep)&&a),a},null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canIncrementMinutes||!n.isEditable)})}function li(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0"]))],null,null)}function di(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(r.secondsStep)&&a),a},null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canIncrementSeconds||!n.isEditable)})}function fi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function pi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function hi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0:\xa0"]))],null,null)}function gi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","MM"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeMinutes(r.minuteStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeMinutes(r.minuteStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep,"key")&&a),"change"===e&&(a=!1!==r.updateMinutes(n.target.value)&&a),a},null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.invalidMinutes),t(e,1,0,n.invalidMinutes,n.readonlyInput,n.disabled,n.minutes)})}function bi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0:\xa0"]))],null,null)}function mi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","SS"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeSeconds(r.secondsStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeSeconds(r.secondsStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep,"key")&&a),"change"===e&&(a=!1!==r.updateSeconds(n.target.value)&&a),a},null,null))],null,function(t,e){var n=e.component;t(e,0,0,n.invalidSeconds),t(e,1,0,n.invalidSeconds,n.readonlyInput,n.disabled,n.seconds)})}function yi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function vi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-default text-center"],["type","button"]],[[8,"disabled",0],[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleMeridian()&&a),a},null,null)),(t()(),s["\u0275ted"](2,null,[""," "]))],null,function(t,e){var n=e.component;t(e,1,0,!n.isEditable||!n.canToggleMeridian,!n.isEditable||!n.canToggleMeridian),t(e,2,0,n.meridian)})}function _i(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function xi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep)&&a),a},null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canDecrementMinutes||!n.isEditable)})}function Ti(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0"]))],null,null)}function wi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep)&&a),a},null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,function(t,e){var n=e.component;t(e,1,0,!n.canDecrementSeconds||!n.isEditable)})}function Si(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0\xa0\xa0"]))],null,null)}function Oi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function Ii(t){return s["\u0275vid"](2,[(t()(),s["\u0275eld"](0,0,null,null,48,"table",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,47,"tbody",[],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(r.hourStep)&&a),a},null,null)),(t()(),s["\u0275eld"](5,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,ui)),s["\u0275did"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ci)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,li)),s["\u0275did"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,di)),s["\u0275did"](13,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,fi)),s["\u0275did"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,pi)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](18,0,null,null,14,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),s["\u0275eld"](20,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","HH"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeHours(r.hourStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeHours(r.hourStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeHours(0-r.hourStep,"key")&&a),"change"===e&&(a=!1!==r.updateHours(n.target.value)&&a),a},null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,hi)),s["\u0275did"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,gi)),s["\u0275did"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,bi)),s["\u0275did"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,mi)),s["\u0275did"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,yi)),s["\u0275did"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,vi)),s["\u0275did"](32,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](33,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),s["\u0275eld"](34,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](35,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(0-r.hourStep)&&a),a},null,null)),(t()(),s["\u0275eld"](36,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,_i)),s["\u0275did"](38,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,xi)),s["\u0275did"](40,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ti)),s["\u0275did"](42,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,wi)),s["\u0275did"](44,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Si)),s["\u0275did"](46,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Oi)),s["\u0275did"](48,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,7,0,n.showMinutes),t(e,9,0,n.showMinutes),t(e,11,0,n.showSeconds),t(e,13,0,n.showSeconds),t(e,15,0,n.showMeridian),t(e,17,0,n.showMeridian),t(e,22,0,n.showMinutes),t(e,24,0,n.showMinutes),t(e,26,0,n.showSeconds),t(e,28,0,n.showSeconds),t(e,30,0,n.showMeridian),t(e,32,0,n.showMeridian),t(e,38,0,n.showMinutes),t(e,40,0,n.showMinutes),t(e,42,0,n.showSeconds),t(e,44,0,n.showSeconds),t(e,46,0,n.showMeridian),t(e,48,0,n.showMeridian)},function(t,e){var n=e.component;t(e,2,0,!n.showSpinners),t(e,4,0,!n.canIncrementHours||!n.isEditable),t(e,19,0,n.invalidHours),t(e,20,0,n.invalidHours,n.readonlyInput,n.disabled,n.hours),t(e,33,0,!n.showSpinners),t(e,35,0,!n.canDecrementHours||!n.isEditable)})}var Ci=n("E2fk"),ki=function(){function t(t){this.http=t}return t.prototype.getLogs=function(){return this.http.get("api/logs/all")},t.prototype.validateDashboardUrl=function(t){return this.http.get("api/grafana/validation/"+t)},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),Ni=function(){function t(t){this.logsService=t,this.bsConfig={dateInputFormat:"YYYY-MM-DD",containerClass:"theme-default"},this.prioritys=[{name:"Info",value:"[INF]"},{name:"Warning",value:"[WRN]"},{name:"Error",value:"[ERR]"},{name:"All",value:"All"}],this.priority="All",this.search="",this.startTime=new Date,this.endTime=new Date,this.startTime.setHours(0,0),this.endTime.setHours(23,59)}return t.prototype.ngOnInit=function(){var t=this;this.getInfo(),this.interval=window.setInterval(function(){t.getInfo()},5e3)},t.prototype.ngOnDestroy=function(){clearInterval(this.interval)},t.prototype.getInfo=function(){var t=this;this.logsService.getLogs().subscribe(function(e){t.contentData=e,t.filterLogs()})},t.prototype.abstractfilters=function(){var t,e=this.priority,n=this.search.toLowerCase().replace(/,/g,"");if(this.selectedDate){var a=this.selectedDate.getMonth()+1,r=this.selectedDate.getDate();t=this.selectedDate.getFullYear().toString()+"-"+(a<=9?"0"+a:""+a)+"-"+(r<=9?"0"+r:""+r)}else t="";return{priority:e,key:n,yearMonthDay:t,sTime:60*(this.startTime?this.startTime.getHours():0)+(this.startTime?this.startTime.getMinutes():0),eTime:60*(this.endTime?this.endTime.getHours():23)+(this.endTime?this.endTime.getMinutes():59)}},t.prototype.filterExecutor=function(t,e){return t.filter(function(t){var n,a,r=parseInt(t.stamp.slice(11,13),10),i=parseInt(t.stamp.slice(14,16),10);return n=e.yearMonthDay?e.yearMonthDay:t.stamp,a=60*r+i,t.priority===("All"===e.priority?t.priority:e.priority)&&-1!==t.message.toLowerCase().indexOf(e.key)&&-1!==t.stamp.indexOf(n)&&a>=e.sTime&&a<=e.eTime})},t.prototype.filterLogs=function(){var t=this.abstractfilters();this.clog=this.filterExecutor(this.contentData.clog,t),this.audit_log=this.filterExecutor(this.contentData.audit_log,t)},t.prototype.clearSearchKey=function(){this.search="",this.filterLogs()},t.prototype.clearDate=function(){this.selectedDate=null,this.filterLogs()},t}(),Ri=s["\u0275crt"]({encapsulation:0,styles:[["p[_ngcontent-%COMP%]{font-family:monospace;color:#000}.well[_ngcontent-%COMP%] div[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{display:-webkit-box;display:flex}.well[_ngcontent-%COMP%] div[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.well[_ngcontent-%COMP%] .timestamp[_ngcontent-%COMP%]{font-weight:700;flex-shrink:0}.well[_ngcontent-%COMP%] .priority[_ngcontent-%COMP%]{margin-left:.5rem}.well[_ngcontent-%COMP%] .message[_ngcontent-%COMP%]{margin-left:1rem}.well[_ngcontent-%COMP%] .err[_ngcontent-%COMP%]{color:#a94442}.well[_ngcontent-%COMP%] .warn[_ngcontent-%COMP%]{color:#ffc200}.well[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{color:#2b99a8} timepicker table tbody tr td .bs-timepicker-field{width:3.5rem;font-size:1rem;padding:4px 6px} timepicker table tbody tr td .btn{font-size:1rem}.log-filters[_ngcontent-%COMP%]{margin-bottom:5px;padding:0 30px}.log-filters[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{box-sizing:border-box}.log-filters[_ngcontent-%COMP%] .filter-box[_ngcontent-%COMP%]{margin:0;padding:0 15px 5px 0;display:-webkit-box;display:flex;-webkit-box-pack:start;justify-content:flex-start;-webkit-box-align:center;align-items:center}.log-filters[_ngcontent-%COMP%] .filter-box[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{padding-top:5px;padding-right:5px}@media (max-width:991px){.log-filters[_ngcontent-%COMP%] .time-box[_ngcontent-%COMP%]{margin-top:20px}}@media (min-width:1200px){.log-filters[_ngcontent-%COMP%] .cd-col-4[_ngcontent-%COMP%]{width:28vw}.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:20vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:16vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:14vw}}@media (min-width:1400px){.log-filters[_ngcontent-%COMP%] .cd-col-4[_ngcontent-%COMP%]{width:24vw}.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:18vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:14vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:12vw}}@media (min-width:1600px){.log-filters[_ngcontent-%COMP%] .cd-col-4[_ngcontent-%COMP%]{width:22vw}.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:16vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:12vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:10vw}}@media (min-width:1800px){.log-filters[_ngcontent-%COMP%] .cd-col-3[_ngcontent-%COMP%]{width:14vw}.log-filters[_ngcontent-%COMP%] .cd-col-2[_ngcontent-%COMP%]{width:11vw}.log-filters[_ngcontent-%COMP%] .cd-col-1[_ngcontent-%COMP%]{width:9vw}}"]],data:{}});function Ai(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Di(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,7,"p",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,["",""])),(t()(),s["\u0275eld"](3,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),s["\u0275ppd"](4,1),(t()(),s["\u0275ted"](5,null,["",""])),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),s["\u0275ted"](7,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.stamp);var n=s["\u0275inlineInterpolate"](1,"priority ",s["\u0275unv"](e,3,0,t(e,4,0,s["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.priority)),"");t(e,3,0,n),t(e,5,0,e.context.$implicit.priority),t(e,7,0,e.context.$implicit.message)})}function Ei(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Di)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.clog)},null)}function Li(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["No entries found"]))],null,null)}function Pi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,7,"p",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,["",""])),(t()(),s["\u0275eld"](3,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),s["\u0275ppd"](4,1),(t()(),s["\u0275ted"](5,null,["",""])),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),s["\u0275ted"](7,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.stamp);var n=s["\u0275inlineInterpolate"](1,"priority ",s["\u0275unv"](e,3,0,t(e,4,0,s["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.priority)),"");t(e,3,0,n),t(e,5,0,e.context.$implicit.priority),t(e,7,0,e.context.$implicit.message)})}function Mi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Pi)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.audit_log)},null)}function qi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["No entries found"]))],null,null)}function ji(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,18,"div",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Ai)),s["\u0275did"](2,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["\u0275eld"](3,0,null,null,15,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](4,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](5,0,null,0,6,"tab",[["heading","Cluster Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](6,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](7,0,null,null,4,"div",[["class","well"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Ei)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Li)),s["\u0275did"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](12,0,null,0,6,"tab",[["heading","Audit Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](13,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](14,0,null,null,4,"div",[["class","well"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Mi)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,qi)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,s["\u0275nov"](e.parent,3)),t(e,6,0,"Cluster Logs"),t(e,9,0,n.clog),t(e,11,0,0===n.contentData.clog.length),t(e,13,0,"Audit Logs"),t(e,16,0,n.audit_log),t(e,18,0,0===n.contentData.audit_log.length)},function(t,e){t(e,3,0,s["\u0275nov"](e,4).clazz),t(e,5,0,s["\u0275nov"](e,6).id,s["\u0275nov"](e,6).active,s["\u0275nov"](e,6).addClass),t(e,12,0,s["\u0275nov"](e,13).id,s["\u0275nov"](e,13).active,s["\u0275nov"](e,13).addClass)})}function Fi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["class","form-control"]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.name)})}function zi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,65,"div",[["class","row log-filters"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,11,"div",[["class","col-xs-4 col-md-2 cd-col-1 filter-box"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Priority:"])),(t()(),s["\u0275eld"](4,0,null,null,8,"select",[["class","form-control"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,6).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,6).onTouched()&&a),"ngModelChange"===e&&(a=!1!==(r.priority=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},null,null)),s["\u0275did"](5,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](6,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](8,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](10,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Fi)),s["\u0275did"](12,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](13,0,null,null,15,"div",[["class","col-xs-4 col-md-3 cd-col-3 filter-box"]],null,null,null,null,null)),(t()(),s["\u0275eld"](14,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Keyword:"])),(t()(),s["\u0275eld"](16,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](17,0,null,null,1,"span",[["class","input-group-addon"]],null,null,null,null,null)),(t()(),s["\u0275eld"](18,0,null,null,0,"i",[["class","glyphicon glyphicon-search"]],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["\u0275nov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,21)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.search=n)&&a),"keyup"===e&&(a=!1!==r.filterLogs()&&a),a},null,null)),s["\u0275did"](20,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](21,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](23,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](25,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275eld"](26,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),s["\u0275eld"](27,0,null,null,1,"button",[["class","btn btn-default clear-input tc_clearInputBtn"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearSearchKey()&&a),a},null,null)),(t()(),s["\u0275eld"](28,0,null,null,0,"i",[["class","icon-prepend fa fa-remove"]],null,null,null,null,null)),(t()(),s["\u0275eld"](29,0,null,null,16,"div",[["class","col-xs-4 col-md-3 cd-col-2 filter-box"]],null,null,null,null,null)),(t()(),s["\u0275eld"](30,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Date:"])),(t()(),s["\u0275eld"](32,0,null,null,13,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](33,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["placeholder","Datepicker"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["\u0275nov"](t,35)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,35).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,35)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,35)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["\u0275nov"](t,37).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==s["\u0275nov"](t,37).hide()&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,37).onBlur()&&a),"ngModelChange"===e&&(a=!1!==(r.selectedDate=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},null,null)),s["\u0275did"](34,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](35,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275did"](36,737280,null,0,Rr.c,[Rr.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a],{bsConfig:[0,"bsConfig"]},null),s["\u0275did"](37,16384,null,0,Rr.f,[Rr.c,Rr.j,s.Renderer2,s.ElementRef,s.ChangeDetectorRef],null,null),s["\u0275prd"](1024,null,we.o,function(t){return[t]},[Rr.f]),s["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,Rr.f]),s["\u0275did"](40,671744,null,0,we.u,[[8,null],[6,we.o],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](42,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275eld"](43,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),s["\u0275eld"](44,0,null,null,1,"button",[["class","btn btn-default clear-input tc_clearInputBtn"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearDate()&&a),a},null,null)),(t()(),s["\u0275eld"](45,0,null,null,0,"i",[["class","icon-prepend fa fa-remove"]],null,null,null,null,null)),(t()(),s["\u0275eld"](46,0,null,null,0,"div",[["class","clearfix visible-xs-block"]],null,null,null,null,null)),(t()(),s["\u0275eld"](47,0,null,null,18,"div",[["class","col-xs-8 col-md-4 cd-col-4 filter-box time-box"]],null,null,null,null,null)),(t()(),s["\u0275eld"](48,0,null,null,1,"label",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Time range:"])),(t()(),s["\u0275eld"](50,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.startTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},Ii,oi)),s["\u0275prd"](512,null,ri,ri,[]),s["\u0275did"](52,704512,null,0,ii,[ei,s.ChangeDetectorRef,ri,Dr],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[ii]),s["\u0275did"](54,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](56,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275eld"](57,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xa0\u2014\xa0"])),(t()(),s["\u0275eld"](59,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.endTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a},Ii,oi)),s["\u0275prd"](512,null,ri,ri,[]),s["\u0275did"](61,704512,null,0,ii,[ei,s.ChangeDetectorRef,ri,Dr],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[ii]),s["\u0275did"](63,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](65,16384,null,0,we.r,[[4,we.q]],null,null)],function(t,e){var n=e.component;t(e,8,0,n.priority),t(e,12,0,n.prioritys),t(e,23,0,n.search),t(e,36,0,n.bsConfig),t(e,40,0,n.selectedDate),t(e,52,0,1,n.showSpinners,!1),t(e,54,0,n.startTime),t(e,61,0,1,n.showSpinners,!1),t(e,63,0,n.endTime)},function(t,e){t(e,4,0,s["\u0275nov"](e,10).ngClassUntouched,s["\u0275nov"](e,10).ngClassTouched,s["\u0275nov"](e,10).ngClassPristine,s["\u0275nov"](e,10).ngClassDirty,s["\u0275nov"](e,10).ngClassValid,s["\u0275nov"](e,10).ngClassInvalid,s["\u0275nov"](e,10).ngClassPending),t(e,19,0,s["\u0275nov"](e,25).ngClassUntouched,s["\u0275nov"](e,25).ngClassTouched,s["\u0275nov"](e,25).ngClassPristine,s["\u0275nov"](e,25).ngClassDirty,s["\u0275nov"](e,25).ngClassValid,s["\u0275nov"](e,25).ngClassInvalid,s["\u0275nov"](e,25).ngClassPending),t(e,33,0,s["\u0275nov"](e,42).ngClassUntouched,s["\u0275nov"](e,42).ngClassTouched,s["\u0275nov"](e,42).ngClassPristine,s["\u0275nov"](e,42).ngClassDirty,s["\u0275nov"](e,42).ngClassValid,s["\u0275nov"](e,42).ngClassInvalid,s["\u0275nov"](e,42).ngClassPending),t(e,50,0,s["\u0275nov"](e,56).ngClassUntouched,s["\u0275nov"](e,56).ngClassTouched,s["\u0275nov"](e,56).ngClassPristine,s["\u0275nov"](e,56).ngClassDirty,s["\u0275nov"](e,56).ngClassValid,s["\u0275nov"](e,56).ngClassInvalid,s["\u0275nov"](e,56).ngClassPending),t(e,59,0,s["\u0275nov"](e,65).ngClassUntouched,s["\u0275nov"](e,65).ngClassTouched,s["\u0275nov"](e,65).ngClassPristine,s["\u0275nov"](e,65).ngClassDirty,s["\u0275nov"](e,65).ngClassValid,s["\u0275nov"](e,65).ngClassInvalid,s["\u0275nov"](e,65).ngClassPending)})}function Gi(t){return s["\u0275vid"](0,[s["\u0275pid"](0,Ci.a,[]),(t()(),s["\u0275and"](16777216,null,null,1,null,ji)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,[["logFiltersTpl",2]],null,0,null,zi))],function(t,e){t(e,2,0,e.component.contentData)},null)}function Yi(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-logs",[],null,null,null,Gi,Ri)),s["\u0275did"](1,245760,null,0,Ni,[ki],null,null)],function(t,e){t(e,1,0)},null)}var Vi,Hi=s["\u0275ccf"]("cd-logs",Ni,Yi,{},{},[]),Bi=n("EgGo");!function(t){t.add="fa fa-plus",t.addCircle="fa fa-plus-circle",t.minusCircle="fa fa-minus-circle",t.edit="fa fa-pencil",t.destroy="fa fa-times",t.destroyCircle="fa fa-times-circle",t.exchange="fa fa-exchange",t.copy="fa fa-copy",t.clipboard="fa fa-clipboard",t.flatten="fa-chain-broken",t.trash="fa fa-trash-o",t.lock="fa fa-lock",t.unlock="fa fa-unlock",t.clone="fa fa-clone",t.undo="fa fa-undo",t.search="fa fa-search",t.start="fa fa-play",t.stop="fa fa-stop",t.analyse="fa fa-stethoscope",t.deepCheck="fa fa-cog",t.reweight="fa-balance-scale",t.left="fa fa-arrow-left",t.right="fa fa-arrow-right",t.down="fa fa-arrow-down",t.erase="fa fa-eraser",t.user="fa fa-user",t.share="fa fa-share-alt",t.key="fa fa-key-modern",t.warning="fa fa-exclamation-triangle",t.info="fa fa-info",t.infoCircle="fa fa-info-circle",t.questionCircle="fa fa-question-circle-o",t.check="fa fa-check",t.show="fa fa-eye",t.paragraph="fa fa-paragraph",t.terminal="fa fa-terminal",t.magic="fa fa-magic",t.hourglass="fa fa-hourglass-o",t.filledHourglass="fa fa-hourglass",t.table="fa fa-table",t.spinner="fa spinner",t.refresh="fa fa-refresh",t.bullseye="fa fa-bullseye",t.disk="fa fa-hdd-o",t.server="fa fa-server",t.filter="fa fa-filter",t.lineChart="fa fa-line-chart",t.signOut="fa fa-sign-out",t.health="fa fa-heartbeat",t.circle="fa fa-circle",t.bell="fa fa-bell",t.tag="fa fa-tag",t.leftArrow="fa fa-angle-left",t.rightArrow="fa fa-angle-right",t.leftArrowDouble="fa fa-angle-double-left",t.rightArrowDouble="fa fa-angle-double-right",t.flag="fa fa-flag",t.width="fa fa-fw",t.large="fa fa-lg",t.large2x="fa fa-2x",t.large3x="fa fa-3x",t.stack="fa fa-stack",t.stack1x="fa fa-stack-1x",t.stack2x="fa fa-stack-2x",t.pulse="fa fa-pulse",t.spin="fa fa-spin",t.inverse="fa fa-inverse"}(Vi||(Vi={}));var Ui=n("67Y/"),Wi=function(){function t(t,e){this.http=t,this.settingsService=e,this.baseURL="api/prometheus",this.settingsKey={alertmanager:"api/settings/alertmanager-api-host",prometheus:"api/settings/prometheus-api-host"}}return t.prototype.ifAlertmanagerConfigured=function(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.alertmanager,t,e)},t.prototype.disableAlertmanagerConfig=function(){this.settingsService.disableSetting(this.settingsKey.alertmanager)},t.prototype.ifPrometheusConfigured=function(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.prometheus,t,e)},t.prototype.disablePrometheusConfig=function(){this.settingsService.disableSetting(this.settingsKey.prometheus)},t.prototype.getAlerts=function(t){return void 0===t&&(t={}),this.http.get(this.baseURL,{params:t})},t.prototype.getSilences=function(t){return void 0===t&&(t={}),this.http.get(this.baseURL+"/silences",{params:t})},t.prototype.getRules=function(t){void 0===t&&(t="all");var e,n=this.http.get(this.baseURL+"/rules");switch(t){case"alerting":case"rewrites":e=t,n=n.pipe(Object(Ui.a)(function(t){return t.groups=t.groups.map(function(t){return t.rules=t.rules.filter(function(t){return t.type===e}),t}),t}))}return n},t.prototype.setSilence=function(t){return this.http.post(this.baseURL+"/silence",t,{observe:"response"})},t.prototype.expireSilence=function(t){return this.http.delete(this.baseURL+"/silence/"+t,{observe:"response"})},t.prototype.getNotifications=function(t){return this.http.get(this.baseURL+"/notifications?from="+(t&&t.id?t.id:"last"))},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c),s.inject(Ge.a))},token:t,providedIn:Rt.a}),t}(),Ki=n("G1I9"),$i=function(){function t(t){this.notificationService=t}return t.prototype.sendNotifications=function(t){var e=this;t.forEach(function(t){return e.notificationService.show(t)})},t.prototype.convertToCustomAlerts=function(t){var e=this;return pt.uniqWith(t.map(function(t){return{status:pt.isObject(t.status)?t.status.state:e.getPrometheusNotificationStatus(t),name:t.labels.alertname,url:t.generatorURL,summary:t.annotations.summary,fingerprint:pt.isObject(t.status)&&t.fingerprint}}),pt.isEqual)},t.prototype.getPrometheusNotificationStatus=function(t){var e=t.status;return"firing"===e?"active":e},t.prototype.convertAlertToNotification=function(t){return new Ki.b(this.formatType(t.status),t.name+" ("+t.status+")",this.appendSourceLink(t,t.summary),void 0,"Prometheus")},t.prototype.formatType=function(t){return Jn.a[pt.findKey({error:["firing","active"],info:["suppressed","unprocessed"],success:["resolved"]},function(e){return e.includes(t)})]},t.prototype.appendSourceLink=function(t,e){return e+' '},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Qn.a))},token:t,providedIn:"root"}),t}(),Zi=function(){function t(t,e){this.alertFormatter=t,this.prometheusService=e,this.canAlertsBeNotified=!1,this.alerts=[],this.rules=[]}return t.prototype.getAlerts=function(){var t=this;this.prometheusService.ifAlertmanagerConfigured(function(){t.prometheusService.getAlerts().subscribe(function(e){return t.handleAlerts(e)},function(e){[404,504].includes(e.status)&&t.prometheusService.disableAlertmanagerConfig()})})},t.prototype.getRules=function(){var t=this;this.prometheusService.ifPrometheusConfigured(function(){t.prometheusService.getRules("alerting").subscribe(function(e){t.rules=e.groups.reduce(function(t,e){return t.concat(e.rules.map(function(t){return t.group=e.name,t}))},[])})})},t.prototype.refresh=function(){this.getAlerts(),this.getRules()},t.prototype.handleAlerts=function(t){this.canAlertsBeNotified&&this.notifyOnAlertChanges(t,this.alerts),this.alerts=t,this.canAlertsBeNotified=!0},t.prototype.notifyOnAlertChanges=function(t,e){var n=this,a=this.getChangedAlerts(this.alertFormatter.convertToCustomAlerts(t),this.alertFormatter.convertToCustomAlerts(e)).map(function(t){return n.alertFormatter.convertAlertToNotification(t)});this.alertFormatter.sendNotifications(a)},t.prototype.getChangedAlerts=function(t,e){return pt.differenceWith(t,e,pt.isEqual).concat(this.getVanishedAlerts(t,e))},t.prototype.getVanishedAlerts=function(t,e){return pt.differenceWith(e,t,function(t,e){return t.fingerprint===e.fingerprint}).map(function(t){return t.status="resolved",t})},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject($i),s.inject(Wi))},token:t,providedIn:"root"}),t}(),Xi=new Bi.a("silence"),Ji=function(){function t(t,e,n,a,r){var i=this;this.authStorageService=t,this.prometheusAlertService=e,this.urlBuilder=n,this.i18n=a,this.cdDatePipe=r,this.selection=new Be.a,this.icons=Vi,this.customCss={"label label-danger":"active","label label-warning":"unprocessed","label label-info":"suppressed"},this.permission=this.authStorageService.getPermissions().prometheus,this.tableActions=[{permission:"create",canBePrimary:function(t){return t.hasSingleSelection},disable:function(t){return!t.hasSingleSelection||t.first().cdExecuting},icon:Vi.add,routerLink:function(){return"/monitoring"+i.urlBuilder.getCreateFrom(i.selection.first().fingerprint)},name:this.i18n("Create Silence")}]}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"labels.alertname",flexGrow:2},{name:this.i18n("Job"),prop:"labels.job",flexGrow:2},{name:this.i18n("Severity"),prop:"labels.severity"},{name:this.i18n("State"),prop:"status.state",cellTransformation:ln.a.classAdding},{name:this.i18n("Started"),prop:"startsAt",pipe:this.cdDatePipe},{name:this.i18n("URL"),prop:"generatorURL",sortable:!1,cellTemplate:this.externalLinkTpl}]},t.prototype.updateSelection=function(t){this.selection=t},t}(),Qi=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function ts(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](1,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](3,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Sn.b,Sn.a)),s["\u0275did"](5,638976,null,0,On.a,[In.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"],appendParentKey:[3,"appendParentKey"],hideEmpty:[4,"hideEmpty"],customCss:[5,"customCss"]},null)],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.selection.first(),!1,!0,!1,!0,n.customCss)},function(t,e){t(e,0,0,s["\u0275nov"](e,1).clazz),t(e,2,0,s["\u0275nov"](e,3).id,s["\u0275nov"](e,3).active,s["\u0275nov"](e,3).addClass)})}function es(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,0,"i",[["class","fa fa-line-chart"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[" Source"]))],null,function(t,e){t(e,0,0,e.context.value)})}function ns(t){return s["\u0275vid"](0,[s["\u0275qud"](402653184,1,{externalLinkTpl:0}),(t()(),s["\u0275eld"](1,0,null,null,5,"cd-table",[["identifier","fingerprint"],["selectionType","single"]],null,[[null,"updateSelection"]],function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a},Ve.b,Ve.a)),s["\u0275did"](2,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"],customCss:[5,"customCss"]},{updateSelection:"updateSelection"}),(t()(),s["\u0275eld"](3,0,null,0,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Tn.b,Tn.a)),s["\u0275did"](4,114688,null,0,wn.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["\u0275and"](16777216,null,2,1,null,ts)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,[[1,2],["externalLinkTpl",2]],null,0,null,es))],function(t,e){var n=e.component;t(e,2,0,n.prometheusAlertService.alerts,n.columns,"fingerprint",!0,"single",n.customCss),t(e,4,0,n.permission,n.selection,n.tableActions),t(e,6,0,n.selection.hasSingleSelection)},null)}var as=n("TZo1"),rs=n("9Kw/"),is=n("wd/R"),ss=function(){function t(){}return t.prototype.transform=function(t,e){return void 0===e&&(e=!1),e?is(t).fromNow():this._forHumans(t)},t.prototype._forHumans=function(t){for(var e=[[""+Math.floor(t/31536e3),"years"],[""+Math.floor(t%31536e3/86400),"days"],[""+Math.floor(t%86400/3600),"hours"],[""+Math.floor(t%3600/60),"minutes"],[""+Math.floor(t%60),"seconds"]],n="",a=0,r=e.length;a1?n.rules:n.rule,alerts:e?e>1?n.alerts:n.alert:n.noAlerts}):n.noRule},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Tt.a))},token:t,providedIn:"root"}),t}(),Es=function(){function t(){}return t.prototype.calculateDuration=function(t,e){var n=+t,a=+e,r=this.getDuration(Math.abs(n-a));return n>a?"-"+r:r},t.prototype.getDuration=function(t){var e=new Date(t),n=e.getUTCHours(),a=e.getUTCMinutes(),r=function(t,e){return t?t+e:t};return[r(Math.floor(t/864e5),"d"),r(n,"h"),r(a,"m")].filter(function(t){return t}).join(" ")},t.prototype.calculateDate=function(t,e,n){var a=+t;if(!pt.isNaN(a)){var r=this.getDurationMs(e)*(n?-1:1);return new Date(a+r)}},t.prototype.getDurationMs=function(t){return 6e4*(60*(24*this.getNumbersFromString(t,"d")+this.getNumbersFromString(t,"h"))+this.getNumbersFromString(t,"m"))},t.prototype.getNumbersFromString=function(t,e){var n=t.match(new RegExp("[0-9 ]+"+e,"i"));return n?parseInt(n,10):0},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(),Ls=function(){function t(t,e,n){this.formBuilder=t,this.silenceMatcher=e,this.bsModalRef=n,this.submitAction=new s.EventEmitter,this.editMode=!1,this.nameAttributes=["alertname","instance","job","severity"],this.possibleValues=[],this.matcherMatch=void 0,this.createForm(),this.subscribeToChanges()}return t.prototype.createForm=function(){this.form=this.formBuilder.group({name:[null,[we.A.required]],value:[{value:null,disabled:!0},[we.A.required]],isRegex:new we.i(!1)})},t.prototype.subscribeToChanges=function(){var t=this;this.form.get("name").valueChanges.subscribe(function(e){null!==e?(t.setPossibleValues(e),t.form.get("value").enable()):t.form.get("value").disable()}),this.form.get("value").valueChanges.subscribe(function(e){var n=t.form.value;n.value=e,t.matcherMatch=t.silenceMatcher.singleMatch(n,t.rules)})},t.prototype.setPossibleValues=function(t){var e=this;this.possibleValues=pt.sortedUniq(this.rules.map(function(n){return pt.get(n,e.silenceMatcher.getAttributePath(t))}).filter(function(t){return t}))},t.prototype.preFillControls=function(t){this.form.setValue(t)},t.prototype.onSubmit=function(){this.submitAction.emit(this.form.value),this.bsModalRef.hide()},t}(),Ps=function(){function t(t,e,n,a,r,i,s,o,u,c,l,d){this.i18n=t,this.router=e,this.authStorageService=n,this.formBuilder=a,this.prometheusService=r,this.notificationService=i,this.route=s,this.timeDiff=o,this.bsModalService=u,this.silenceMatcher=c,this.actionLabels=l,this.succeededLabels=d,this.icons=Vi,this.bsConfig={dateInputFormat:"YYYY-MM-DDT HH:mm"},this.recreate=!1,this.edit=!1,this.resource=this.i18n("silence"),this.matchers=[],this.matcherMatch=void 0,this.matcherConfig=[{tooltip:this.i18n("Attribute name"),icon:this.icons.paragraph,attribute:"name"},{tooltip:this.i18n("Value"),icon:this.icons.terminal,attribute:"value"},{tooltip:this.i18n("Regular expression"),icon:this.icons.magic,attribute:"isRegex"}],this.init()}return t.prototype.init=function(){this.chooseMode(),this.authenticate(),this.createForm(),this.setupDates(),this.getData()},t.prototype.chooseMode=function(){this.edit=this.router.url.startsWith("/monitoring/silence/edit"),this.recreate=this.router.url.startsWith("/monitoring/silence/recreate"),this.action=this.edit?this.actionLabels.EDIT:this.recreate?this.actionLabels.RECREATE:this.actionLabels.CREATE},t.prototype.authenticate=function(){this.permission=this.authStorageService.getPermissions().prometheus,this.permission.read&&(this.edit?this.permission.update:this.permission.create)||this.router.navigate(["/404"])},t.prototype.createForm=function(){var t=this;this.form=this.formBuilder.group({startsAt:[null,[we.A.required]],duration:["2h",[we.A.min(1)]],endsAt:[null,[we.A.required]],createdBy:[this.authStorageService.getUsername(),[we.A.required]],comment:[null,[we.A.required]]},{validators:ra.a.custom("matcherRequired",function(){return 0===t.matchers.length})})},t.prototype.setupDates=function(){var t=new Date;t.setSeconds(0,0),this.form.silentSet("startsAt",t),this.updateDate(),this.subscribeDateChanges()},t.prototype.updateDate=function(t){var e=this.timeDiff.calculateDate(this.form.getValue(t?"endsAt":"startsAt"),this.form.getValue("duration"),t);e&&this.form.silentSet(t?"startsAt":"endsAt",e)},t.prototype.subscribeDateChanges=function(){var t=this;this.form.get("startsAt").valueChanges.subscribe(function(){t.onDateChange()}),this.form.get("duration").valueChanges.subscribe(function(){t.updateDate()}),this.form.get("endsAt").valueChanges.subscribe(function(){t.onDateChange(!0)})},t.prototype.onDateChange=function(t){this.form.getValue("startsAt")0),t(e,6,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"invalidUuid")),t(e,8,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"pattern"))},null)}function Eo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Lo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too high! It must be lower or equal to ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.max)})}function Po(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too low! It must be greater or equal to ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.min)})}function Mo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["The entered value needs to be a number."]))],null,null)}function qo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,16,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"min",0],[8,"max",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["\u0275nov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["\u0275nov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,3).onTouched()&&a),a},null,null)),s["\u0275did"](2,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275did"](3,16384,null,0,we.C,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),s["\u0275did"](5,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](7,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](8,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Eo)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Lo)),s["\u0275did"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Po)),s["\u0275did"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Mo)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,5,0,s["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,10,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"required")),t(e,12,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"max")),t(e,14,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"min")),t(e,16,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"pattern"))},function(t,e){t(e,1,0,s["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),s["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.min,""),s["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.max,""),s["\u0275nov"](e,7).ngClassUntouched,s["\u0275nov"](e,7).ngClassTouched,s["\u0275nov"](e,7).ngClassPristine,s["\u0275nov"](e,7).ngClassDirty,s["\u0275nov"](e,7).ngClassValid,s["\u0275nov"](e,7).ngClassInvalid,s["\u0275nov"](e,7).ngClassPending)})}function jo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["This field is required."]))],null,null)}function Fo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["The entered value needs to be a number or decimal."]))],null,null)}function zo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,12,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["\u0275nov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["\u0275nov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,3).onTouched()&&a),a},null,null)),s["\u0275did"](2,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275did"](3,16384,null,0,we.C,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),s["\u0275did"](5,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](7,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](8,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,jo)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Fo)),s["\u0275did"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,5,0,s["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,10,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"required")),t(e,12,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["\u0275nov"](e.parent.parent,3),"pattern"))},function(t,e){t(e,1,0,s["\u0275inlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),s["\u0275nov"](e,7).ngClassUntouched,s["\u0275nov"](e,7).ngClassTouched,s["\u0275nov"](e,7).ngClassPristine,s["\u0275nov"](e,7).ngClassDirty,s["\u0275nov"](e,7).ngClassValid,s["\u0275nov"](e,7).ngClassInvalid,s["\u0275nov"](e,7).ngClassPending)})}function Go(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,3,"label",[["class","control-label col-sm-3"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["\u0275ted"](4,null,[" "," "])),(t()(),s["\u0275and"](16777216,null,null,1,null,Oo)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Io)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,2,null,Do)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["\u0275pad"](11,3),(t()(),s["\u0275and"](16777216,null,null,2,null,qo)),s["\u0275did"](13,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["\u0275pad"](14,4),(t()(),s["\u0275and"](16777216,null,null,1,null,zo)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,2,0,e.component.mgrModuleForm.showError(e.context.$implicit.value.name,s["\u0275nov"](e.parent,3)));t(e,1,0,"form-group",n),t(e,6,0,e.context.$implicit.value.long_desc||e.context.$implicit.value.desc),t(e,8,0,"bool"===e.context.$implicit.value.type);var a=t(e,11,0,"addr","str","uuid").includes(e.context.$implicit.value.type);t(e,10,0,a);var r=t(e,14,0,"uint","int","size","secs").includes(e.context.$implicit.value.type);t(e,13,0,r),t(e,16,0,"float"===e.context.$implicit.value.type)},function(t,e){t(e,3,0,s["\u0275inlineInterpolate"](1,"",e.context.$implicit.value.name,"")),t(e,4,0,e.context.$implicit.value.name)})}function Yo(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,22,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,21,"form",[["class","form-horizontal"],["name","mgrModuleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,3).onReset()&&a),a},null,null)),s["\u0275did"](2,16384,null,0,we.D,[],null,null),s["\u0275did"](3,540672,[["frm",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](5,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](6,0,null,null,16,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,2,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,1,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Edit Manager module"])),(t()(),s["\u0275eld"](10,0,null,null,3,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,2,null,Go)),s["\u0275did"](12,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["\u0275pid"](0,i.KeyValuePipe,[s.KeyValueDiffers]),(t()(),s["\u0275eld"](14,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](15,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["\u0275eld"](16,0,null,null,3,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a},Za.b,Za.a)),s["\u0275did"](17,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),s["\u0275eld"](18,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Update"])),(t()(),s["\u0275eld"](20,0,null,null,2,"button",[["class","btn btn-sm btn-default"],["routerLink","/mgr-modules"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,21).onClick()&&a),a},null,null)),s["\u0275did"](21,16384,null,0,et.m,[et.l,et.a,[8,null],s.Renderer2,s.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Back"]))],function(t,e){var n=e.component;t(e,3,0,n.mgrModuleForm),t(e,12,0,s["\u0275unv"](e,12,0,s["\u0275nov"](e,13).transform(n.moduleOptions))),t(e,17,0,n.mgrModuleForm,"button"),t(e,21,0,"/mgr-modules")},function(t,e){t(e,1,0,s["\u0275nov"](e,5).ngClassUntouched,s["\u0275nov"](e,5).ngClassTouched,s["\u0275nov"](e,5).ngClassPristine,s["\u0275nov"](e,5).ngClassDirty,s["\u0275nov"](e,5).ngClassValid,s["\u0275nov"](e,5).ngClassInvalid,s["\u0275nov"](e,5).ngClassPending)})}function Vo(t){return s["\u0275vid"](0,[s["\u0275pid"](0,As.a,[]),(t()(),s["\u0275and"](16777216,null,null,1,null,wo)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,So)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Yo)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.loading&&!n.error),t(e,4,0,n.loading&&n.error),t(e,6,0,!n.loading&&!n.error)},null)}function Ho(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-mgr-module-form",[],null,null,null,Vo,To)),s["\u0275did"](1,114688,null,0,xo,[et.a,et.l,la.a,io,Qn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var Bo=s["\u0275ccf"]("cd-mgr-module-form",xo,Ho,{},{},[]),Uo=function(){function t(){this.lhsCounter="mds_mem.ino",this.rhsCounter="mds_server.handle_client_request",this.chart={datasets:[{label:this.lhsCounter,yAxisID:"LHS",data:[],lineTension:.1},{label:this.rhsCounter,yAxisID:"RHS",data:[],lineTension:.1}],options:{title:{text:"",display:!0},responsive:!0,maintainAspectRatio:!1,legend:{position:"top"},scales:{xAxes:[{position:"top",type:"time",time:{displayFormats:{quarter:"MMM YYYY"}},ticks:{maxRotation:0}}],yAxes:[{id:"LHS",type:"linear",position:"left"},{id:"RHS",type:"linear",position:"right"}]},tooltips:{enabled:!1,mode:"index",intersect:!1,position:"nearest",callbacks:{title:function(t,e){var n=0;if(t.length>0){var a=t[0];n=e.datasets[a.datasetIndex].data[a.index].x}return n.toString()}}}},chartType:"line"}}return t.prototype.ngOnInit=function(){pt.isUndefined(this.mdsCounter)||(this.setChartTooltip(),this.updateChart())},t.prototype.ngOnChanges=function(){pt.isUndefined(this.mdsCounter)||this.updateChart()},t.prototype.setChartTooltip=function(){var t=new ht.a(this.chartCanvas,this.chartTooltip,function(t){return t.caretX+"px"},function(t){return t.caretY-t.height-23+"px"});t.getTitle=function(t){return is(t,"x").format("LTS")},t.checkOffset=!0,pt.merge(this.chart,{options:{title:{text:this.mdsCounter.name},tooltips:{custom:function(e){return t.customTooltips(e)}}}})},t.prototype.updateChart=function(){var t=[{data:this.convertTimeSeries(this.mdsCounter[this.lhsCounter])},{data:this.deltaTimeSeries(this.mdsCounter[this.rhsCounter])}];pt.merge(this.chart,{datasets:t}),this.chart.datasets=this.chart.datasets.slice()},t.prototype.convertTimeSeries=function(t){var e=[];return pt.each(t,function(t){e.push({x:1e3*t[0],y:t[1]})}),e.shift(),e},t.prototype.deltaTimeSeries=function(t){var e,n=t[0],a=[];for(e=1;ei?1:-1}}],data:[]}},t.prototype.refresh=function(){var t=this;this.cephfsService.getCephfs(this.id).subscribe(function(e){t.ranks.data=e.cephfs.ranks,t.pools.data=e.cephfs.pools,t.pools.data.forEach(function(t){t.size=t.used+t.avail}),t.standbys=[{key:t.i18n("Standby daemons"),value:e.standbys.map(function(t){return t.name}).join(", ")}],t.name=e.cephfs.name,t.clientCount=e.cephfs.client_count}),this.cephfsService.getMdsCounters(this.id).subscribe(function(e){pt.each(t.mdsCounters,function(n,a){void 0===e[a]&&delete t.mdsCounters[a]}),pt.each(e,function(e,n){e.name=n,t.mdsCounters[n]=e})})},t.prototype.trackByFn=function(t,e){return e.name},t}(),au=s["\u0275crt"]({encapsulation:0,styles:[[".progress[_ngcontent-%COMP%]{margin-bottom:0}"]],data:{}});function ru(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,2,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"cd-cephfs-chart",[],null,null,null,Ko,Wo)),s["\u0275did"](3,638976,null,0,Uo,[],{mdsCounter:[0,"mdsCounter"]},null)],function(t,e){t(e,3,0,e.context.$implicit)},null)}function iu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-cephfs-clients",[],null,null,null,eu,tu)),s["\u0275did"](1,114688,null,0,Qo,[Xo,Tt.a],{id:[0,"id"]},null)],function(t,e){t(e,1,0,e.component.id)},null)}function su(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](1,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","tbO9LAiZz"]],null,null,null,qe.b,qe.a)),s["\u0275did"](3,638976,null,0,je.a,[Fe.a,ze.DomSanitizer,Ge.a,Ye.a,Tt.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"mds-performance?var-mds_servers=mds."+n.grafanaId,"one","tbO9LAiZz")},function(t,e){t(e,0,0,s["\u0275nov"](e,1).id,s["\u0275nov"](e,1).active,s["\u0275nov"](e,1).addClass)})}function ou(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,26,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](1,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](2,0,null,0,18,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](3,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](4,0,null,null,12,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,6,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Ranks"])),(t()(),s["\u0275eld"](8,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a},Ve.b,Ve.a)),s["\u0275did"](9,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},{fetchData:"fetchData"}),(t()(),s["\u0275eld"](10,0,null,null,1,"cd-table-key-value",[],null,null,null,Sn.b,Sn.a)),s["\u0275did"](11,638976,null,0,On.a,[In.a],{data:[0,"data"]},null),(t()(),s["\u0275eld"](12,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Pools"])),(t()(),s["\u0275eld"](15,0,null,null,1,"cd-table",[],null,null,null,Ve.b,Ve.a)),s["\u0275did"](16,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},null),(t()(),s["\u0275eld"](17,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["MDS performance counters"])),(t()(),s["\u0275and"](16777216,null,null,1,null,ru)),s["\u0275did"](20,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),s["\u0275eld"](21,0,null,0,3,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"],[null,"deselect"]],function(t,e,n){var a=!0,r=t.component;return"selectTab"===e&&(a=0!=(r.clientsSelect=!0)&&a),"deselect"===e&&(a=0!=(r.clientsSelect=!1)&&a),a},null,null)),s["\u0275did"](22,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},{selectTab:"selectTab",deselect:"deselect"}),(t()(),s["\u0275and"](16777216,null,null,1,null,iu)),s["\u0275did"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,0,1,null,su)),s["\u0275did"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,9,0,n.ranks.data,n.ranks.columns,!1),t(e,11,0,n.standbys),t(e,16,0,n.pools.data,n.pools.columns,!1),t(e,20,0,n.objectValues(n.mdsCounters),n.trackByFn),t(e,22,0,s["\u0275inlineInterpolate"](1,"Clients: ",n.clientCount,"")),t(e,24,0,n.clientsSelect),t(e,26,0,n.grafanaPermission.read)},function(t,e){t(e,0,0,s["\u0275nov"](e,1).clazz),t(e,2,0,s["\u0275nov"](e,3).id,s["\u0275nov"](e,3).active,s["\u0275nov"](e,3).addClass),t(e,21,0,s["\u0275nov"](e,22).id,s["\u0275nov"](e,22).active,s["\u0275nov"](e,22).addClass)})}function uu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,yn.b,yn.a)),s["\u0275did"](1,573440,null,0,vn.a,[],{total:[0,"total"],used:[1,"used"]},null)],function(t,e){t(e,1,0,e.context.row.size,e.context.row.used)},null)}function cu(t){return s["\u0275vid"](0,[(t()(),s["\u0275ted"](0,null,[" ",": "," /s\n"])),s["\u0275ppd"](1,1)],null,function(t,e){var n="standby-replay"===e.context.row.state?"Evts":"Reqs",a=s["\u0275unv"](e,0,1,t(e,1,0,s["\u0275nov"](e.parent,0),e.context.value));t(e,0,0,n,a)})}function lu(t){return s["\u0275vid"](0,[s["\u0275pid"](0,bt.a,[Ct.a]),s["\u0275qud"](402653184,1,{poolUsageTpl:0}),s["\u0275qud"](402653184,2,{activityTmpl:0}),(t()(),s["\u0275and"](16777216,null,null,1,null,ou)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,[[1,2],["poolUsageTpl",2]],null,0,null,uu)),(t()(),s["\u0275and"](0,[[2,2],["activityTmpl",2]],null,0,null,cu))],function(t,e){t(e,4,0,e.component.selectedItem)},null)}var du=function(){function t(t,e){this.cephfsService=t,this.i18n=e,this.filesystems=[],this.selection=new Be.a}return t.prototype.ngOnInit=function(){this.columns=[{name:this.i18n("Name"),prop:"mdsmap.fs_name",flexGrow:2},{name:this.i18n("Created"),prop:"mdsmap.created",flexGrow:2},{name:this.i18n("Enabled"),prop:"mdsmap.enabled",flexGrow:1}]},t.prototype.loadFilesystems=function(t){var e=this;this.cephfsService.list().subscribe(function(t){e.filesystems=t},function(){t.error()})},t.prototype.updateSelection=function(t){this.selection=t},t}(),fu=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function pu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.loadFilesystems(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a},Ve.b,Ve.a)),s["\u0275did"](1,2867200,null,0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),s["\u0275eld"](2,0,null,2,1,"cd-cephfs-detail",[["cdTableDetail",""]],null,null,null,lu,au)),s["\u0275did"](3,638976,null,0,nu,[d.a,Xo,gt.a,bt.a,Tt.a],{selection:[0,"selection"]},null)],function(t,e){var n=e.component;t(e,1,0,n.filesystems,n.columns,"flex","id","true","single"),t(e,3,0,n.selection)},null)}function hu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-cephfs-list",[],null,null,null,pu,fu)),s["\u0275did"](1,114688,null,0,du,[Xo,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var gu=s["\u0275ccf"]("cd-cephfs-list",du,hu,{},{},[]),bu=function(){function t(t,e,n,a){this.route=t,this.summaryService=e,this.cephReleaseNamePipe=n,this.i18n=a,this.message=this.i18n("The NFS Ganesha service is not configured.")}return t.prototype.ngOnInit=function(){var t=this,e=this.summaryService.subscribe(function(n){if(n){var a=t.cephReleaseNamePipe.transform(n.version);t.docsUrl="http://docs.ceph.com/docs/"+a+"/mgr/dashboard/#configuring-nfs-ganesha-in-the-dashboard",setTimeout(function(){e.unsubscribe()},0)}});this.routeParamsSubscribe=this.route.params.subscribe(function(e){t.message=e.message})},t.prototype.ngOnDestroy=function(){this.routeParamsSubscribe.unsubscribe()},t}(),mu=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function yu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,8,"cd-info-panel",[],null,null,null,as.b,as.a)),s["\u0275did"](1,49152,null,0,rs.a,[Tt.a],null,null),(t()(),s["\u0275ted"](2,0,[" ",""])),(t()(),s["\u0275eld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,0,4,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Please consult the "])),(t()(),s["\u0275eld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["documentation"])),(t()(),s["\u0275ted"](-1,null,[" on how to configure and enable the NFS Ganesha management functionality."]))],null,function(t,e){var n=e.component;t(e,2,0,n.message),t(e,6,0,s["\u0275inlineInterpolate"](1,"",n.docsUrl,""))})}function vu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-nfs-501",[],null,null,null,yu,mu)),s["\u0275did"](1,245760,null,0,bu,[et.a,Fe.a,Ye.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var _u=s["\u0275ccf"]("cd-nfs-501",bu,vu,{},{},[]),xu=function(){function t(t){this.i18n=t,this.clients=[],this.clientsColumns=[{name:this.i18n("Addresses"),prop:"addresses",flexGrow:2},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:1},{name:this.i18n("Squash"),prop:"squash",flexGrow:1}]}return t.prototype.ngOnChanges=function(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.clients=this.selectedItem.clients,this.data={},this.data[this.i18n("Cluster")]=this.selectedItem.cluster_id,this.data[this.i18n("Daemons")]=this.selectedItem.daemons,this.data[this.i18n("NFS Protocol")]=this.selectedItem.protocols.map(function(t){return"NFSv"+t}),this.data[this.i18n("Pseudo")]=this.selectedItem.pseudo,this.data[this.i18n("Access Type")]=this.selectedItem.access_type,this.data[this.i18n("Squash")]=this.selectedItem.squash,this.data[this.i18n("Transport")]=this.selectedItem.transports,this.data[this.i18n("Path")]=this.selectedItem.path,"CEPH"===this.selectedItem.fsal.name?(this.data[this.i18n("Storage Backend")]=this.i18n("CephFS"),this.data[this.i18n("CephFS User")]=this.selectedItem.fsal.user_id,this.data[this.i18n("CephFS Filesystem")]=this.selectedItem.fsal.fs_name,this.data[this.i18n("Security Label")]=this.selectedItem.fsal.sec_label_xattr):(this.data[this.i18n("Storage Backend")]=this.i18n("Object Gateway"),this.data[this.i18n("Object Gateway User")]=this.selectedItem.fsal.rgw_user_id))},t}(),Tu=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function wu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,Z.b,Z.a)),s["\u0275did"](1,180224,null,0,X.d,[X.e,s.Renderer2,s.ElementRef],null,null),(t()(),s["\u0275eld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](3,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Sn.b,Sn.a)),s["\u0275did"](5,638976,null,0,On.a,[In.a],{data:[0,"data"]},null),(t()(),s["\u0275eld"](6,0,null,0,3,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),s["\u0275did"](7,212992,null,0,X.b,[X.d,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["\u0275eld"](8,0,null,null,1,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","addresses"],["selectionType",""]],null,null,null,Ve.b,Ve.a)),s["\u0275did"](9,2867200,[["table",4]],0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},null)],function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.data),t(e,7,0,s["\u0275inlineInterpolate"](1,"Clients (",n.clients.length,")")),t(e,9,0,n.clients,n.clientsColumns,"flex","addresses","true","")},function(t,e){t(e,0,0,s["\u0275nov"](e,1).clazz),t(e,2,0,s["\u0275nov"](e,3).id,s["\u0275nov"](e,3).active,s["\u0275nov"](e,3).addClass),t(e,6,0,s["\u0275nov"](e,7).id,s["\u0275nov"](e,7).active,s["\u0275nov"](e,7).addClass)})}function Su(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,wu)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,null==n.selection?null:n.selection.hasSingleSelection)},null)}var Ou=n("VTlA"),Iu=n("ufoC"),Cu=function(){function t(t,e){this.http=t,this.i18n=e,this.apiPath="api/nfs-ganesha",this.uiApiPath="ui-api/nfs-ganesha",this.nfsAccessType=[{value:"RW",help:this.i18n("Allows all operations")},{value:"RO",help:this.i18n("Allows only operations that do not modify the server")},{value:"MDONLY",help:this.i18n("Does not allow read or write operations, but allows any other operation")},{value:"MDONLY_RO",help:this.i18n("Does not allow read, write, or any operation that modifies file attributes or directory content")},{value:"NONE",help:this.i18n("Allows no access at all")}],this.nfsFsal=[{value:"CEPH",descr:this.i18n("CephFS")},{value:"RGW",descr:this.i18n("Object Gateway")}],this.nfsSquash=["no_root_squash","root_id_squash","root_squash","all_squash"]}return t.prototype.list=function(){return this.http.get(this.apiPath+"/export")},t.prototype.get=function(t,e){return this.http.get(this.apiPath+"/export/"+t+"/"+e)},t.prototype.create=function(t){return this.http.post(this.apiPath+"/export",t,{observe:"response"})},t.prototype.update=function(t,e,n){return this.http.put(this.apiPath+"/export/"+t+"/"+e,n,{observe:"response"})},t.prototype.delete=function(t,e){return this.http.delete(this.apiPath+"/export/"+t+"/"+e,{observe:"response"})},t.prototype.lsDir=function(t){return this.http.get(this.uiApiPath+"/lsdir?root_dir="+t)},t.prototype.buckets=function(t){return this.http.get(this.uiApiPath+"/rgw/buckets?user_id="+t)},t.prototype.clients=function(){return this.http.get(this.uiApiPath+"/cephx/clients")},t.prototype.fsals=function(){return this.http.get(this.uiApiPath+"/fsals")},t.prototype.filesystems=function(){return this.http.get(this.uiApiPath+"/cephfs/filesystems")},t.prototype.daemon=function(){return this.http.get(this.apiPath+"/daemon")},t.prototype.start=function(t){return this.http.put(this.apiPath+"/service/"+t+"/start",null,{observe:"response"})},t.prototype.stop=function(t){return this.http.put(this.apiPath+"/service/"+t+"/stop",null,{observe:"response"})},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c),s.inject(Tt.a))},token:t,providedIn:Rt.a}),t}(),ku=n("kvvV"),Nu=n("kn/O"),Ru=function(){function t(t,e,n,a,r,i,s){var o=this;this.authStorageService=t,this.i18n=e,this.modalService=n,this.nfsService=a,this.taskListService=r,this.taskWrapper=i,this.actionLabels=s,this.selection=new Be.a,this.isDefaultCluster=!1,this.builders={"nfs/create":function(t){return{path:t.path,cluster_id:t.cluster_id,fsal:t.fsal}}},this.permission=this.authStorageService.getPermissions().nfs,this.tableActions=[{permission:"create",icon:"fa-plus",routerLink:function(){return"/nfs/create"},canBePrimary:function(t){return!t.hasSingleSelection},name:this.actionLabels.CREATE},{permission:"update",icon:"fa-pencil",routerLink:function(){return"/nfs/edit/"+(o.selection.first()&&encodeURI(o.selection.first().cluster_id)+"/"+encodeURI(o.selection.first().export_id))},name:this.actionLabels.EDIT},{permission:"delete",icon:"fa-times",click:function(){return o.deleteNfsModal()},name:this.actionLabels.DELETE}]}return t.prototype.ngOnInit=function(){var t=this;this.columns=[{name:this.i18n("Path"),prop:"path",flexGrow:2,cellTransformation:ln.a.executing},{name:this.i18n("Pseudo"),prop:"pseudo",flexGrow:2},{name:this.i18n("Cluster"),prop:"cluster_id",flexGrow:2},{name:this.i18n("Daemons"),prop:"daemons",flexGrow:2},{name:this.i18n("Storage Backend"),prop:"fsal",flexGrow:2,cellTemplate:this.nfsFsal},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:2}],this.nfsService.daemon().subscribe(function(e){var n=pt(e).map(function(t){return t.cluster_id}).uniq().value();t.isDefaultCluster=1===n.length&&"_default_"===n[0],t.columns[2].isHidden=t.isDefaultCluster,t.table&&t.table.updateColumns(),t.taskListService.init(function(){return t.nfsService.list()},function(e){return t.prepareResponse(e)},function(e){return t.exports=e},function(){return t.onFetchError()},t.taskFilter,t.itemFilter,t.builders)},function(){t.onFetchError()})},t.prototype.ngOnDestroy=function(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()},t.prototype.prepareResponse=function(t){var e=[];return t.forEach(function(t){t.id=t.cluster_id+":"+t.export_id,t.state="LOADING",e=e.concat(t)}),e},t.prototype.onFetchError=function(){this.table.reset(),this.viewCacheStatus={status:Jo.a.ValueException}},t.prototype.itemFilter=function(t,e){return t.cluster_id===e.metadata.cluster_id&&t.export_id===e.metadata.export_id},t.prototype.taskFilter=function(t){return["nfs/create","nfs/delete","nfs/edit"].includes(t.name)},t.prototype.updateSelection=function(t){this.selection=t},t.prototype.deleteNfsModal=function(){var t=this,e=this.selection.first().cluster_id,n=this.selection.first().export_id;this.modalRef=this.modalService.show(Zn.a,{initialState:{itemDescription:this.i18n("NFS export"),itemNames:[e+":"+n],submitActionObservable:function(){return t.taskWrapper.wrapTaskAroundCall({task:new ku.a("nfs/delete",{cluster_id:e,export_id:n}),call:t.nfsService.delete(e,n)})}}})},t}(),Au=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Du(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["CephFS"]))],null,null)}function Eu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Object Gateway"]))],null,null)}function Lu(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Du)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Eu)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,"CEPH"===e.context.value.name),t(e,3,0,"RGW"===e.context.value.name)},null)}function Pu(t){return s["\u0275vid"](0,[s["\u0275qud"](402653184,1,{nfsState:0}),s["\u0275qud"](402653184,2,{nfsFsal:0}),s["\u0275qud"](402653184,3,{table:0}),(t()(),s["\u0275eld"](3,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a},Ve.b,Ve.a)),s["\u0275did"](4,2867200,[[3,4],["table",4]],0,He.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),s["\u0275eld"](5,0,null,0,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,Tn.b,Tn.a)),s["\u0275did"](7,114688,null,0,wn.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["\u0275eld"](8,0,null,2,1,"cd-nfs-details",[["cdTableDetail",""]],null,null,null,Su,Tu)),s["\u0275did"](9,573440,null,0,xu,[Tt.a],{selection:[0,"selection"]},null),(t()(),s["\u0275and"](0,[[2,2],["nfsFsal",2]],null,0,null,Lu))],function(t,e){var n=e.component;t(e,4,0,n.exports,n.columns,"flex","id","true","single"),t(e,7,0,n.permission,n.selection,n.tableActions),t(e,9,0,n.selection)},null)}function Mu(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-nfs-list",[],null,null,null,Pu,Au)),s["\u0275prd"](131584,null,Ou.a,Ou.a,[Iu.a,Fe.a]),s["\u0275did"](2,245760,null,0,Ru,[d.a,Tt.a,ha.b,Cu,Ou.a,Nu.a,Xn.b],null,null)],function(t,e){t(e,2,0)},null)}var qu=s["\u0275ccf"]("cd-nfs-list",Ru,Mu,{},{},[]),ju=n("rpEJ"),Fu=n("ihYY"),zu=n("t9fZ"),Gu=n("Gi3i"),Yu=n("15JJ"),Vu=n("psW0"),Hu=n("VnD/"),Bu=n("R+r5"),Uu=n("zrt+"),Wu=n("0/uQ"),Ku={"\xc1":"A","\u0102":"A","\u1eae":"A","\u1eb6":"A","\u1eb0":"A","\u1eb2":"A","\u1eb4":"A","\u01cd":"A","\xc2":"A","\u1ea4":"A","\u1eac":"A","\u1ea6":"A","\u1ea8":"A","\u1eaa":"A","\xc4":"A","\u01de":"A","\u0226":"A","\u01e0":"A","\u1ea0":"A","\u0200":"A","\xc0":"A","\u1ea2":"A","\u0202":"A","\u0100":"A","\u0104":"A","\xc5":"A","\u01fa":"A","\u1e00":"A","\u023a":"A","\xc3":"A","\ua732":"AA","\xc6":"AE","\u01fc":"AE","\u01e2":"AE","\ua734":"AO","\ua736":"AU","\ua738":"AV","\ua73a":"AV","\ua73c":"AY","\u1e02":"B","\u1e04":"B","\u0181":"B","\u1e06":"B","\u0243":"B","\u0182":"B","\u0106":"C","\u010c":"C","\xc7":"C","\u1e08":"C","\u0108":"C","\u010a":"C","\u0187":"C","\u023b":"C","\u010e":"D","\u1e10":"D","\u1e12":"D","\u1e0a":"D","\u1e0c":"D","\u018a":"D","\u1e0e":"D","\u01f2":"D","\u01c5":"D","\u0110":"D","\u018b":"D","\u01f1":"DZ","\u01c4":"DZ","\xc9":"E","\u0114":"E","\u011a":"E","\u0228":"E","\u1e1c":"E","\xca":"E","\u1ebe":"E","\u1ec6":"E","\u1ec0":"E","\u1ec2":"E","\u1ec4":"E","\u1e18":"E","\xcb":"E","\u0116":"E","\u1eb8":"E","\u0204":"E","\xc8":"E","\u1eba":"E","\u0206":"E","\u0112":"E","\u1e16":"E","\u1e14":"E","\u0118":"E","\u0246":"E","\u1ebc":"E","\u1e1a":"E","\ua76a":"ET","\u1e1e":"F","\u0191":"F","\u01f4":"G","\u011e":"G","\u01e6":"G","\u0122":"G","\u011c":"G","\u0120":"G","\u0193":"G","\u1e20":"G","\u01e4":"G","\u1e2a":"H","\u021e":"H","\u1e28":"H","\u0124":"H","\u2c67":"H","\u1e26":"H","\u1e22":"H","\u1e24":"H","\u0126":"H","\xcd":"I","\u012c":"I","\u01cf":"I","\xce":"I","\xcf":"I","\u1e2e":"I","\u0130":"I","\u1eca":"I","\u0208":"I","\xcc":"I","\u1ec8":"I","\u020a":"I","\u012a":"I","\u012e":"I","\u0197":"I","\u0128":"I","\u1e2c":"I","\ua779":"D","\ua77b":"F","\ua77d":"G","\ua782":"R","\ua784":"S","\ua786":"T","\ua76c":"IS","\u0134":"J","\u0248":"J","\u1e30":"K","\u01e8":"K","\u0136":"K","\u2c69":"K","\ua742":"K","\u1e32":"K","\u0198":"K","\u1e34":"K","\ua740":"K","\ua744":"K","\u0139":"L","\u023d":"L","\u013d":"L","\u013b":"L","\u1e3c":"L","\u1e36":"L","\u1e38":"L","\u2c60":"L","\ua748":"L","\u1e3a":"L","\u013f":"L","\u2c62":"L","\u01c8":"L","\u0141":"L","\u01c7":"LJ","\u1e3e":"M","\u1e40":"M","\u1e42":"M","\u2c6e":"M","\u0143":"N","\u0147":"N","\u0145":"N","\u1e4a":"N","\u1e44":"N","\u1e46":"N","\u01f8":"N","\u019d":"N","\u1e48":"N","\u0220":"N","\u01cb":"N","\xd1":"N","\u01ca":"NJ","\xd3":"O","\u014e":"O","\u01d1":"O","\xd4":"O","\u1ed0":"O","\u1ed8":"O","\u1ed2":"O","\u1ed4":"O","\u1ed6":"O","\xd6":"O","\u022a":"O","\u022e":"O","\u0230":"O","\u1ecc":"O","\u0150":"O","\u020c":"O","\xd2":"O","\u1ece":"O","\u01a0":"O","\u1eda":"O","\u1ee2":"O","\u1edc":"O","\u1ede":"O","\u1ee0":"O","\u020e":"O","\ua74a":"O","\ua74c":"O","\u014c":"O","\u1e52":"O","\u1e50":"O","\u019f":"O","\u01ea":"O","\u01ec":"O","\xd8":"O","\u01fe":"O","\xd5":"O","\u1e4c":"O","\u1e4e":"O","\u022c":"O","\u01a2":"OI","\ua74e":"OO","\u0190":"E","\u0186":"O","\u0222":"OU","\u1e54":"P","\u1e56":"P","\ua752":"P","\u01a4":"P","\ua754":"P","\u2c63":"P","\ua750":"P","\ua758":"Q","\ua756":"Q","\u0154":"R","\u0158":"R","\u0156":"R","\u1e58":"R","\u1e5a":"R","\u1e5c":"R","\u0210":"R","\u0212":"R","\u1e5e":"R","\u024c":"R","\u2c64":"R","\ua73e":"C","\u018e":"E","\u015a":"S","\u1e64":"S","\u0160":"S","\u1e66":"S","\u015e":"S","\u015c":"S","\u0218":"S","\u1e60":"S","\u1e62":"S","\u1e68":"S","\u0164":"T","\u0162":"T","\u1e70":"T","\u021a":"T","\u023e":"T","\u1e6a":"T","\u1e6c":"T","\u01ac":"T","\u1e6e":"T","\u01ae":"T","\u0166":"T","\u2c6f":"A","\ua780":"L","\u019c":"M","\u0245":"V","\ua728":"TZ","\xda":"U","\u016c":"U","\u01d3":"U","\xdb":"U","\u1e76":"U","\xdc":"U","\u01d7":"U","\u01d9":"U","\u01db":"U","\u01d5":"U","\u1e72":"U","\u1ee4":"U","\u0170":"U","\u0214":"U","\xd9":"U","\u1ee6":"U","\u01af":"U","\u1ee8":"U","\u1ef0":"U","\u1eea":"U","\u1eec":"U","\u1eee":"U","\u0216":"U","\u016a":"U","\u1e7a":"U","\u0172":"U","\u016e":"U","\u0168":"U","\u1e78":"U","\u1e74":"U","\ua75e":"V","\u1e7e":"V","\u01b2":"V","\u1e7c":"V","\ua760":"VY","\u1e82":"W","\u0174":"W","\u1e84":"W","\u1e86":"W","\u1e88":"W","\u1e80":"W","\u2c72":"W","\u1e8c":"X","\u1e8a":"X","\xdd":"Y","\u0176":"Y","\u0178":"Y","\u1e8e":"Y","\u1ef4":"Y","\u1ef2":"Y","\u01b3":"Y","\u1ef6":"Y","\u1efe":"Y","\u0232":"Y","\u024e":"Y","\u1ef8":"Y","\u0179":"Z","\u017d":"Z","\u1e90":"Z","\u2c6b":"Z","\u017b":"Z","\u1e92":"Z","\u0224":"Z","\u1e94":"Z","\u01b5":"Z","\u0132":"IJ","\u0152":"OE","\u1d00":"A","\u1d01":"AE","\u0299":"B","\u1d03":"B","\u1d04":"C","\u1d05":"D","\u1d07":"E","\ua730":"F","\u0262":"G","\u029b":"G","\u029c":"H","\u026a":"I","\u0281":"R","\u1d0a":"J","\u1d0b":"K","\u029f":"L","\u1d0c":"L","\u1d0d":"M","\u0274":"N","\u1d0f":"O","\u0276":"OE","\u1d10":"O","\u1d15":"OU","\u1d18":"P","\u0280":"R","\u1d0e":"N","\u1d19":"R","\ua731":"S","\u1d1b":"T","\u2c7b":"E","\u1d1a":"R","\u1d1c":"U","\u1d20":"V","\u1d21":"W","\u028f":"Y","\u1d22":"Z","\xe1":"a","\u0103":"a","\u1eaf":"a","\u1eb7":"a","\u1eb1":"a","\u1eb3":"a","\u1eb5":"a","\u01ce":"a","\xe2":"a","\u1ea5":"a","\u1ead":"a","\u1ea7":"a","\u1ea9":"a","\u1eab":"a","\xe4":"a","\u01df":"a","\u0227":"a","\u01e1":"a","\u1ea1":"a","\u0201":"a","\xe0":"a","\u1ea3":"a","\u0203":"a","\u0101":"a","\u0105":"a","\u1d8f":"a","\u1e9a":"a","\xe5":"a","\u01fb":"a","\u1e01":"a","\u2c65":"a","\xe3":"a","\ua733":"aa","\xe6":"ae","\u01fd":"ae","\u01e3":"ae","\ua735":"ao","\ua737":"au","\ua739":"av","\ua73b":"av","\ua73d":"ay","\u1e03":"b","\u1e05":"b","\u0253":"b","\u1e07":"b","\u1d6c":"b","\u1d80":"b","\u0180":"b","\u0183":"b","\u0275":"o","\u0107":"c","\u010d":"c","\xe7":"c","\u1e09":"c","\u0109":"c","\u0255":"c","\u010b":"c","\u0188":"c","\u023c":"c","\u010f":"d","\u1e11":"d","\u1e13":"d","\u0221":"d","\u1e0b":"d","\u1e0d":"d","\u0257":"d","\u1d91":"d","\u1e0f":"d","\u1d6d":"d","\u1d81":"d","\u0111":"d","\u0256":"d","\u018c":"d","\u0131":"i","\u0237":"j","\u025f":"j","\u0284":"j","\u01f3":"dz","\u01c6":"dz","\xe9":"e","\u0115":"e","\u011b":"e","\u0229":"e","\u1e1d":"e","\xea":"e","\u1ebf":"e","\u1ec7":"e","\u1ec1":"e","\u1ec3":"e","\u1ec5":"e","\u1e19":"e","\xeb":"e","\u0117":"e","\u1eb9":"e","\u0205":"e","\xe8":"e","\u1ebb":"e","\u0207":"e","\u0113":"e","\u1e17":"e","\u1e15":"e","\u2c78":"e","\u0119":"e","\u1d92":"e","\u0247":"e","\u1ebd":"e","\u1e1b":"e","\ua76b":"et","\u1e1f":"f","\u0192":"f","\u1d6e":"f","\u1d82":"f","\u01f5":"g","\u011f":"g","\u01e7":"g","\u0123":"g","\u011d":"g","\u0121":"g","\u0260":"g","\u1e21":"g","\u1d83":"g","\u01e5":"g","\u1e2b":"h","\u021f":"h","\u1e29":"h","\u0125":"h","\u2c68":"h","\u1e27":"h","\u1e23":"h","\u1e25":"h","\u0266":"h","\u1e96":"h","\u0127":"h","\u0195":"hv","\xed":"i","\u012d":"i","\u01d0":"i","\xee":"i","\xef":"i","\u1e2f":"i","\u1ecb":"i","\u0209":"i","\xec":"i","\u1ec9":"i","\u020b":"i","\u012b":"i","\u012f":"i","\u1d96":"i","\u0268":"i","\u0129":"i","\u1e2d":"i","\ua77a":"d","\ua77c":"f","\u1d79":"g","\ua783":"r","\ua785":"s","\ua787":"t","\ua76d":"is","\u01f0":"j","\u0135":"j","\u029d":"j","\u0249":"j","\u1e31":"k","\u01e9":"k","\u0137":"k","\u2c6a":"k","\ua743":"k","\u1e33":"k","\u0199":"k","\u1e35":"k","\u1d84":"k","\ua741":"k","\ua745":"k","\u013a":"l","\u019a":"l","\u026c":"l","\u013e":"l","\u013c":"l","\u1e3d":"l","\u0234":"l","\u1e37":"l","\u1e39":"l","\u2c61":"l","\ua749":"l","\u1e3b":"l","\u0140":"l","\u026b":"l","\u1d85":"l","\u026d":"l","\u0142":"l","\u01c9":"lj","\u017f":"s","\u1e9c":"s","\u1e9b":"s","\u1e9d":"s","\u1e3f":"m","\u1e41":"m","\u1e43":"m","\u0271":"m","\u1d6f":"m","\u1d86":"m","\u0144":"n","\u0148":"n","\u0146":"n","\u1e4b":"n","\u0235":"n","\u1e45":"n","\u1e47":"n","\u01f9":"n","\u0272":"n","\u1e49":"n","\u019e":"n","\u1d70":"n","\u1d87":"n","\u0273":"n","\xf1":"n","\u01cc":"nj","\xf3":"o","\u014f":"o","\u01d2":"o","\xf4":"o","\u1ed1":"o","\u1ed9":"o","\u1ed3":"o","\u1ed5":"o","\u1ed7":"o","\xf6":"o","\u022b":"o","\u022f":"o","\u0231":"o","\u1ecd":"o","\u0151":"o","\u020d":"o","\xf2":"o","\u1ecf":"o","\u01a1":"o","\u1edb":"o","\u1ee3":"o","\u1edd":"o","\u1edf":"o","\u1ee1":"o","\u020f":"o","\ua74b":"o","\ua74d":"o","\u2c7a":"o","\u014d":"o","\u1e53":"o","\u1e51":"o","\u01eb":"o","\u01ed":"o","\xf8":"o","\u01ff":"o","\xf5":"o","\u1e4d":"o","\u1e4f":"o","\u022d":"o","\u01a3":"oi","\ua74f":"oo","\u025b":"e","\u1d93":"e","\u0254":"o","\u1d97":"o","\u0223":"ou","\u1e55":"p","\u1e57":"p","\ua753":"p","\u01a5":"p","\u1d71":"p","\u1d88":"p","\ua755":"p","\u1d7d":"p","\ua751":"p","\ua759":"q","\u02a0":"q","\u024b":"q","\ua757":"q","\u0155":"r","\u0159":"r","\u0157":"r","\u1e59":"r","\u1e5b":"r","\u1e5d":"r","\u0211":"r","\u027e":"r","\u1d73":"r","\u0213":"r","\u1e5f":"r","\u027c":"r","\u1d72":"r","\u1d89":"r","\u024d":"r","\u027d":"r","\u2184":"c","\ua73f":"c","\u0258":"e","\u027f":"r","\u015b":"s","\u1e65":"s","\u0161":"s","\u1e67":"s","\u015f":"s","\u015d":"s","\u0219":"s","\u1e61":"s","\u1e63":"s","\u1e69":"s","\u0282":"s","\u1d74":"s","\u1d8a":"s","\u023f":"s","\u0261":"g","\u1d11":"o","\u1d13":"o","\u1d1d":"u","\u0165":"t","\u0163":"t","\u1e71":"t","\u021b":"t","\u0236":"t","\u1e97":"t","\u2c66":"t","\u1e6b":"t","\u1e6d":"t","\u01ad":"t","\u1e6f":"t","\u1d75":"t","\u01ab":"t","\u0288":"t","\u0167":"t","\u1d7a":"th","\u0250":"a","\u1d02":"ae","\u01dd":"e","\u1d77":"g","\u0265":"h","\u02ae":"h","\u02af":"h","\u1d09":"i","\u029e":"k","\ua781":"l","\u026f":"m","\u0270":"m","\u1d14":"oe","\u0279":"r","\u027b":"r","\u027a":"r","\u2c79":"r","\u0287":"t","\u028c":"v","\u028d":"w","\u028e":"y","\ua729":"tz","\xfa":"u","\u016d":"u","\u01d4":"u","\xfb":"u","\u1e77":"u","\xfc":"u","\u01d8":"u","\u01da":"u","\u01dc":"u","\u01d6":"u","\u1e73":"u","\u1ee5":"u","\u0171":"u","\u0215":"u","\xf9":"u","\u1ee7":"u","\u01b0":"u","\u1ee9":"u","\u1ef1":"u","\u1eeb":"u","\u1eed":"u","\u1eef":"u","\u0217":"u","\u016b":"u","\u1e7b":"u","\u0173":"u","\u1d99":"u","\u016f":"u","\u0169":"u","\u1e79":"u","\u1e75":"u","\u1d6b":"ue","\ua778":"um","\u2c74":"v","\ua75f":"v","\u1e7f":"v","\u028b":"v","\u1d8c":"v","\u2c71":"v","\u1e7d":"v","\ua761":"vy","\u1e83":"w","\u0175":"w","\u1e85":"w","\u1e87":"w","\u1e89":"w","\u1e81":"w","\u2c73":"w","\u1e98":"w","\u1e8d":"x","\u1e8b":"x","\u1d8d":"x","\xfd":"y","\u0177":"y","\xff":"y","\u1e8f":"y","\u1ef5":"y","\u1ef3":"y","\u01b4":"y","\u1ef7":"y","\u1eff":"y","\u0233":"y","\u1e99":"y","\u024f":"y","\u1ef9":"y","\u017a":"z","\u017e":"z","\u1e91":"z","\u0291":"z","\u2c6c":"z","\u017c":"z","\u1e93":"z","\u0225":"z","\u1e95":"z","\u1d76":"z","\u1d8e":"z","\u0290":"z","\u01b6":"z","\u0240":"z","\ufb00":"ff","\ufb03":"ffi","\ufb04":"ffl","\ufb01":"fi","\ufb02":"fl","\u0133":"ij","\u0153":"oe","\ufb06":"st","\u2090":"a","\u2091":"e","\u1d62":"i","\u2c7c":"j","\u2092":"o","\u1d63":"r","\u1d64":"u","\u1d65":"v","\u2093":"x"},$u=function(){function t(t,e,n){void 0===e&&(e=t),void 0===n&&(n=!1),this.item=t,this.value=e,this.header=n}return t.prototype.isHeader=function(){return this.header},t.prototype.toString=function(){return this.value},t}();function Zu(t){return t?t.replace(/[^A-Za-z0-9\[\] ]/g,function(t){return Ku[t]||t}):""}function Xu(t,e,n){void 0===e&&(e=" "),void 0===n&&(n="");for(var a,r=t.split(new RegExp("(?:["+n+"])([^"+n+"]+)(?:["+n+"])|([^"+e+"]+)","g")),i=[],s=r.length,o=new RegExp("["+n+"]+","g"),u=0;u=e}}return Object.defineProperty(t.prototype,"isBs4",{get:function(){return!Object(ju.d)()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"active",{get:function(){return this._active},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"matches",{get:function(){return this._matches},set:function(t){var e=this;if(this.positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition}},allowedPositions:["top","bottom"]}),this.positionService.event$.pipe(Object(zu.a)(1)).subscribe(function(){e.positionService.disable(),e.visibility=e.typeaheadScrollable?"hidden":"visible",e.animationState=e.isAnimated?e.isTopPosition?"animated-up":"animated-down":"unanimated"}),this._matches=t,this.needScrollbar=this.typeaheadScrollable&&this.typeaheadOptionsInScrollableView0&&(this._active=this._matches[0],this._active.isHeader()&&this.nextActiveMatch()),this._active&&!this.typeaheadIsFirstItemActive){var n=this._matches.find(function(t){return t.value===e._active.value});if(n)return void this.selectActive(n);this._active=null}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isTopPosition",{get:function(){return this.element.nativeElement.classList.contains("top")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"optionsListTemplate",{get:function(){return this.parent?this.parent.optionsListTemplate:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAnimated",{get:function(){return!!this.parent&&this.parent.isAnimated},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"adaptivePosition",{get:function(){return!!this.parent&&this.parent.adaptivePosition},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"typeaheadScrollable",{get:function(){return!!this.parent&&this.parent.typeaheadScrollable},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"typeaheadOptionsInScrollableView",{get:function(){return this.parent?this.parent.typeaheadOptionsInScrollableView:5},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"typeaheadIsFirstItemActive",{get:function(){return!this.parent||this.parent.typeaheadIsFirstItemActive},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"itemTemplate",{get:function(){return this.parent?this.parent.typeaheadItemTemplate:void 0},enumerable:!0,configurable:!0}),t.prototype.selectActiveMatch=function(t){this._active&&this.parent.typeaheadSelectFirstItem&&this.selectMatch(this._active),!this.parent.typeaheadSelectFirstItem&&t&&this.selectMatch(this._active)},t.prototype.positionServiceEnable=function(){this.positionService.enable()},t.prototype.prevActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[t-1<0?this.matches.length-1:t-1],this._active.isHeader()&&this.prevActiveMatch(),this.typeaheadScrollable&&this.scrollPrevious(t)},t.prototype.nextActiveMatch=function(){var t=this.matches.indexOf(this._active);this._active=this.matches[t+1>this.matches.length-1?0:t+1],this._active.isHeader()&&this.nextActiveMatch(),this.typeaheadScrollable&&this.scrollNext(t)},t.prototype.selectActive=function(t){this.isFocused=!0,this._active=t},t.prototype.highlight=function(t,e){var n,a,r=t.value,i=(this.parent&&this.parent.typeaheadLatinize?Zu(r):r).toLowerCase();if("object"==typeof e)for(var s=e.length,o=0;o=0&&a>0&&(r=r.substring(0,n)+""+r.substring(n,n+a)+""+r.substring(n+a),i=i.substring(0,n)+" "+" ".repeat(a)+" "+i.substring(n+a));else e&&(n=i.indexOf(e),a=e.length,n>=0&&a>0&&(r=r.substring(0,n)+""+r.substring(n,n+a)+""+r.substring(n+a)));return r},t.prototype.focusLost=function(){this.isFocused=!1},t.prototype.isActive=function(t){return this._active===t},t.prototype.selectMatch=function(t,e){var n=this;return void 0===e&&(e=void 0),e&&(e.stopPropagation(),e.preventDefault()),this.parent.changeModel(t),setTimeout(function(){return n.parent.typeaheadOnSelect.emit(t)},0),!1},t.prototype.setScrollableMode=function(){if(this.ulElement||(this.ulElement=this.element),this.liElements.first){var t=ju.b.getStyles(this.ulElement.nativeElement),e=ju.b.getStyles(this.liElements.first.nativeElement),n=parseFloat((t["padding-bottom"]?t["padding-bottom"]:"").replace("px","")),a=parseFloat((t["padding-top"]?t["padding-top"]:"0").replace("px","")),r=parseFloat((e.height?e.height:"0").replace("px",""));this.guiHeight=this.typeaheadOptionsInScrollableView*r+a+n+"px"}this.renderer.setStyle(this.element.nativeElement,"visibility","visible")},t.prototype.scrollPrevious=function(t){if(0!==t){if(this.liElements){var e=this.liElements.toArray()[t-1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop)}}else this.scrollToBottom()},t.prototype.scrollNext=function(t){if(t+1>this.matches.length-1)this.scrollToTop();else if(this.liElements){var e=this.liElements.toArray()[t+1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop-Number(this.ulElement.nativeElement.offsetHeight)+Number(e.nativeElement.offsetHeight))}},t.prototype.scrollToBottom=function(){this.ulElement.nativeElement.scrollTop=this.ulElement.nativeElement.scrollHeight},t.prototype.scrollToTop=function(){this.ulElement.nativeElement.scrollTop=0},t}(),tc=function(){return function(){this.adaptivePosition=!1,this.isAnimated=!1,this.hideResultsOnBlur=!0,this.selectFirstItem=!0,this.isFirstItemActive=!0,this.minLength=1}}(),ec=function(){function t(t,e,n,a,r,i,o){this.changeDetection=n,this.element=a,this.ngControl=r,this.renderer=i,this.typeaheadMinLength=void 0,this.isAnimated=!1,this.typeaheadAsync=void 0,this.typeaheadLatinize=!0,this.typeaheadSingleWords=!0,this.typeaheadWordDelimiters=" ",this.typeaheadPhraseDelimiters="'\"",this.typeaheadScrollable=!1,this.typeaheadOptionsInScrollableView=5,this.typeaheadSelectFirstItem=!0,this.typeaheadIsFirstItemActive=!0,this.typeaheadLoading=new s.EventEmitter,this.typeaheadNoResults=new s.EventEmitter,this.typeaheadOnSelect=new s.EventEmitter,this.typeaheadOnBlur=new s.EventEmitter,this.dropup=!1,this.isActiveItemChanged=!1,this.isTypeaheadOptionsListActive=!1,this.keyUpEventEmitter=new s.EventEmitter,this.placement="bottom-left",this._subscriptions=[],this._typeahead=t.createLoader(a,o,i).provide({provide:tc,useValue:e}),Object.assign(this,{typeaheadHideResultsOnBlur:e.hideResultsOnBlur,typeaheadSelectFirstItem:e.selectFirstItem,typeaheadIsFirstItemActive:e.isFirstItemActive,typeaheadMinLength:e.minLength,adaptivePosition:e.adaptivePosition,isAnimated:e.isAnimated})}return t.prototype.ngOnInit=function(){this.typeaheadOptionsLimit=this.typeaheadOptionsLimit||20,this.typeaheadMinLength=void 0===this.typeaheadMinLength?1:this.typeaheadMinLength,this.typeaheadWaitMs=this.typeaheadWaitMs||0,void 0!==this.typeaheadAsync||Object(Uu.a)(this.typeahead)||(this.typeaheadAsync=!1),Object(Uu.a)(this.typeahead)&&(this.typeaheadAsync=!0),this.typeaheadAsync?this.asyncActions():this.syncActions()},t.prototype.onInput=function(t){var e=void 0!==t.target.value?t.target.value:void 0!==t.target.textContent?t.target.textContent:t.target.innerText;null!=e&&e.trim().length>=this.typeaheadMinLength?(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(t.target.value)):(this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!1),this.hide())},t.prototype.onChange=function(t){if(this._container){if(27===t.keyCode||"Escape"===t.key)return void this.hide();if(38===t.keyCode||"ArrowUp"===t.key)return this.isActiveItemChanged=!0,void this._container.prevActiveMatch();if(40===t.keyCode||"ArrowDown"===t.key)return this.isActiveItemChanged=!0,void this._container.nextActiveMatch();if(13===t.keyCode||"Enter"===t.key)return void this._container.selectActiveMatch()}},t.prototype.onFocus=function(){0===this.typeaheadMinLength&&(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(this.element.nativeElement.value||""))},t.prototype.onBlur=function(){this._container&&!this._container.isFocused&&this.typeaheadOnBlur.emit(this._container.active)},t.prototype.onKeydown=function(t){if(this._container&&(9===t.keyCode||"Tab"===t.key||13===t.keyCode||"Enter"===t.key)){if(t.preventDefault(),this.typeaheadSelectFirstItem)return void this._container.selectActiveMatch();this.typeaheadSelectFirstItem||(this._container.selectActiveMatch(this.isActiveItemChanged),this.isActiveItemChanged=!1,this.hide())}},t.prototype.changeModel=function(t){var e=t.value;this.ngControl.viewToModelUpdate(e),this.ngControl.control.setValue(e),this.changeDetection.markForCheck(),this.hide()},Object.defineProperty(t.prototype,"matches",{get:function(){return this._matches},enumerable:!0,configurable:!0}),t.prototype.show=function(){var t=this;this._typeahead.attach(Qu).to(this.container).position({attachment:(this.dropup?"top":"bottom")+" start"}).show({typeaheadRef:this,placement:this.placement,animation:!1,dropup:this.dropup}),this._outsideClickListener=this.renderer.listen("document","click",function(e){0===t.typeaheadMinLength&&t.element.nativeElement.contains(e.target)||t.typeaheadHideResultsOnBlur&&!t.element.nativeElement.contains(e.target)&&t.onOutsideClick()}),this._container=this._typeahead.instance,this._container.parent=this;var e=(this.typeaheadLatinize?Zu(this.ngControl.control.value):this.ngControl.control.value).toString().toLowerCase();this._container.query=this.typeaheadSingleWords?Xu(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e,this._container.matches=this._matches,this.element.nativeElement.focus()},t.prototype.hide=function(){this._typeahead.isShown&&(this._typeahead.hide(),this._outsideClickListener(),this._container=null)},t.prototype.onOutsideClick=function(){this._container&&!this._container.isFocused&&this.hide()},t.prototype.ngOnDestroy=function(){var t,e;try{for(var n=Object(h.__values)(this._subscriptions),a=n.next();!a.done;a=n.next())a.value.unsubscribe()}catch(r){t={error:r}}finally{try{a&&!a.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this._typeahead.dispose()},t.prototype.asyncActions=function(){var t=this;this._subscriptions.push(this.keyUpEventEmitter.pipe(Object(Gu.a)(this.typeaheadWaitMs),Object(Yu.a)(function(){return t.typeahead})).subscribe(function(e){t.finalizeAsyncCall(e)}))},t.prototype.syncActions=function(){var t=this;this._subscriptions.push(this.keyUpEventEmitter.pipe(Object(Gu.a)(this.typeaheadWaitMs),Object(Vu.a)(function(e){var n=t.normalizeQuery(e);return Object(Wu.a)(t.typeahead).pipe(Object(Hu.a)(function(e){return e&&t.testMatch(t.normalizeOption(e),n)}),Object(Bu.a)())})).subscribe(function(e){t.finalizeAsyncCall(e)}))},t.prototype.normalizeOption=function(t){var e=Ju(t,this.typeaheadOptionField);return(this.typeaheadLatinize?Zu(e):e).toLowerCase()},t.prototype.normalizeQuery=function(t){var e=(this.typeaheadLatinize?Zu(t):t).toString().toLowerCase();return this.typeaheadSingleWords?Xu(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e},t.prototype.testMatch=function(t,e){var n;if("object"==typeof e){n=e.length;for(var a=0;a0&&t.indexOf(e[a])<0)return!1;return!0}return t.indexOf(e)>=0},t.prototype.finalizeAsyncCall=function(t){if(this.prepareMatches(t||[]),this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!this.hasMatches()),this.hasMatches())if(this._container){var e=((this.typeaheadLatinize?Zu(this.ngControl.control.value):this.ngControl.control.value)||"").toString().toLowerCase();this._container.query=this.typeaheadSingleWords?Xu(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e,this._container.matches=this._matches}else this.show();else this.hide()},t.prototype.prepareMatches=function(t){var e=this,n=t.slice(0,this.typeaheadOptionsLimit);if(this.typeaheadGroupField){var a=[];n.map(function(t){return Ju(t,e.typeaheadGroupField)}).filter(function(t,e,n){return n.indexOf(t)===e}).forEach(function(t){a.push(new $u(t,t,!0)),a=a.concat(n.filter(function(n){return Ju(n,e.typeaheadGroupField)===t}).map(function(t){return new $u(t,Ju(t,e.typeaheadOptionField))}))}),this._matches=a}else this._matches=n.map(function(t){return new $u(t,Ju(t,e.typeaheadOptionField))})},t.prototype.hasMatches=function(){return this._matches.length>0},t}(),nc=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[Q.a,tt.a,tc]}},t}(),ac=n("WiuZ"),rc=n("wnGv"),ic=n("TYzs"),sc=function(){function t(t,e){this.nfsService=t,this.i18n=e,this.nfsSquash=this.nfsService.nfsSquash,this.nfsAccessType=this.nfsService.nfsAccessType}return t.prototype.getNoAccessTypeDescr=function(){return this.form.getValue("access_type")?this.form.getValue("access_type")+" "+this.i18n("(inherited from global config)"):this.i18n("-- Select the access type --")},t.prototype.getAccessTypeHelp=function(t){var e=this,n=this.nfsAccessType.find(function(n){return e.getValue(t,"access_type")===n.value});return pt.isObjectLike(n)?n.help:""},t.prototype.getNoSquashDescr=function(){return this.form.getValue("squash")?this.form.getValue("squash")+" ("+this.i18n("inherited from global config")+")":this.i18n("-- Select what kind of user id squashing is performed --")},t.prototype.addClient=function(){var t=this.form.get("clients"),e=new aa.a({addresses:new we.i("",{validators:[we.A.required,we.A.pattern("(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}).([0-9]{1,3})([/](\\d|[1-2]\\d|3[0-2]))?)([ ,]{1,2}(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}).([0-9]{1,3})([/](\\d|[1-2]\\d|3[0-2]))?))*")]}),access_type:new we.i(""),squash:new we.i("")});return t.push(e),e},t.prototype.removeClient=function(t){this.form.get("clients").removeAt(t)},t.prototype.showError=function(t,e,n,a){return this.form.controls.clients.controls[t].showError(e,n,a)},t.prototype.getValue=function(t,e){return this.form.get("clients").at(t).getValue(e)},t.prototype.resolveModel=function(t){var e=this;pt.forEach(t,function(t){e.addClient().patchValue(t)})},t.prototype.trackByFn=function(t){return t},t}(),oc=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function uc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[["class","form-control no-border text-muted"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Any client can access"]))],null,null)}function cc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function lc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Must contain one or more comma-separated values"])),(t()(),s["\u0275eld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["For example:"])),(t()(),s["\u0275ted"](-1,null,[" 192.168.0.10, 192.168.1.0/8 "]))],null,null)}function dc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.value)})}function fc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.component.getAccessTypeHelp(e.parent.context.index))})}function pc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function hc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,65,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,64,"div",[["class","panel panel-default"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),s["\u0275did"](2,212992,null,0,we.m,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.d,null,[we.m]),s["\u0275did"](4,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](5,0,null,null,5,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,4,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),s["\u0275ted"](7,null,[""," "])),s["\u0275ppd"](8,1),(t()(),s["\u0275eld"](9,0,null,null,1,"span",[["class","pull-right clickable"],["tooltip","Remove"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeClient(t.context.index)&&a),a},null,null)),(t()(),s["\u0275ted"](-1,null,["\xd7"])),(t()(),s["\u0275eld"](11,0,null,null,54,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,17,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](13,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](14,{"has-error":0}),(t()(),s["\u0275eld"](15,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","addresses"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Addresses"])),(t()(),s["\u0275eld"](17,0,null,null,12,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](18,0,null,null,6,"input",[["class","form-control"],["formControlName","addresses"],["id","addresses"],["name","addresses"],["placeholder","192.168.0.10, 192.168.1.0/8"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](19,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](21,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](23,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](24,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](25,0,null,null,4,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,cc)),s["\u0275did"](27,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,lc)),s["\u0275did"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](30,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](31,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","access_type"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Access Type"])),(t()(),s["\u0275eld"](33,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](34,0,null,null,12,"select",[["class","form-control"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,35).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,35).onTouched()&&a),a},null,null)),s["\u0275did"](35,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](37,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](39,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](40,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](41,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](42,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](43,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](44,null,["",""])),(t()(),s["\u0275and"](16777216,null,null,1,null,dc)),s["\u0275did"](46,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,fc)),s["\u0275did"](48,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](49,0,null,null,16,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](50,0,null,null,1,"label",[["class","col-sm-3 control-label"],["for","squash"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Squash"])),(t()(),s["\u0275eld"](52,0,null,null,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](53,0,null,null,12,"select",[["class","form-control"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,54).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,54).onTouched()&&a),a},null,null)),s["\u0275did"](54,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](56,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](58,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](59,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](60,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](61,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](62,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](63,null,["",""])),(t()(),s["\u0275and"](16777216,null,null,1,null,pc)),s["\u0275did"](65,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,2,0,e.context.index);var a=t(e,14,0,n.showError(e.context.index,"addresses",s["\u0275nov"](e.parent,5)));t(e,13,0,"form-group",a),t(e,21,0,"addresses"),t(e,27,0,n.showError(e.context.index,"addresses",s["\u0275nov"](e.parent,5),"required")),t(e,29,0,n.showError(e.context.index,"addresses",s["\u0275nov"](e.parent,5),"pattern")),t(e,37,0,"access_type"),t(e,42,0,""),t(e,43,0,""),t(e,46,0,n.nfsAccessType),t(e,48,0,n.getValue(e.context.index,"access_type")),t(e,56,0,"squash"),t(e,61,0,""),t(e,62,0,""),t(e,65,0,n.nfsSquash)},function(t,e){var n=e.component;t(e,1,0,s["\u0275nov"](e,4).ngClassUntouched,s["\u0275nov"](e,4).ngClassTouched,s["\u0275nov"](e,4).ngClassPristine,s["\u0275nov"](e,4).ngClassDirty,s["\u0275nov"](e,4).ngClassValid,s["\u0275nov"](e,4).ngClassInvalid,s["\u0275nov"](e,4).ngClassPending);var a=s["\u0275unv"](e,7,0,t(e,8,0,s["\u0275nov"](e.parent,0),e.context.index+1));t(e,7,0,a),t(e,18,0,s["\u0275nov"](e,23).ngClassUntouched,s["\u0275nov"](e,23).ngClassTouched,s["\u0275nov"](e,23).ngClassPristine,s["\u0275nov"](e,23).ngClassDirty,s["\u0275nov"](e,23).ngClassValid,s["\u0275nov"](e,23).ngClassInvalid,s["\u0275nov"](e,23).ngClassPending),t(e,34,0,s["\u0275nov"](e,39).ngClassUntouched,s["\u0275nov"](e,39).ngClassTouched,s["\u0275nov"](e,39).ngClassPristine,s["\u0275nov"](e,39).ngClassDirty,s["\u0275nov"](e,39).ngClassValid,s["\u0275nov"](e,39).ngClassInvalid,s["\u0275nov"](e,39).ngClassPending),t(e,44,0,n.getNoAccessTypeDescr()),t(e,53,0,s["\u0275nov"](e,58).ngClassUntouched,s["\u0275nov"](e,58).ngClassTouched,s["\u0275nov"](e,58).ngClassPristine,s["\u0275nov"](e,58).ngClassDirty,s["\u0275nov"](e,58).ngClassValid,s["\u0275nov"](e,58).ngClassInvalid,s["\u0275nov"](e,58).ngClassPending),t(e,63,0,n.getNoSquashDescr())})}function gc(t){return s["\u0275vid"](0,[s["\u0275pid"](0,ic.a,[]),(t()(),s["\u0275eld"](1,0,null,null,20,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"label",[["class","col-sm-3 control-label"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Clients"])),(t()(),s["\u0275eld"](4,0,null,null,17,"div",[["class","col-sm-9"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,5).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,5).onReset()&&a),a},null,null)),s["\u0275did"](5,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](7,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,uc)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](10,0,null,null,5,null,null,null,null,null,null,null)),s["\u0275did"](11,212992,null,0,we.g,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.d,null,[we.g]),s["\u0275did"](13,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,hc)),s["\u0275did"](15,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),s["\u0275eld"](16,0,null,null,4,"span",[["class","form-control no-border"]],null,null,null,null,null)),(t()(),s["\u0275eld"](17,0,null,null,3,"button",[["class","btn btn-default btn-label pull-right"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.addClient()&&a),a},null,null)),(t()(),s["\u0275eld"](18,0,null,null,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Add clients"])),(t()(),s["\u0275eld"](21,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){var n=e.component;t(e,5,0,n.form),t(e,9,0,0===n.form.get("clients").value.length),t(e,11,0,"clients"),t(e,15,0,n.form.get("clients").value,n.trackByFn)},function(t,e){t(e,4,0,s["\u0275nov"](e,7).ngClassUntouched,s["\u0275nov"](e,7).ngClassTouched,s["\u0275nov"](e,7).ngClassPristine,s["\u0275nov"](e,7).ngClassDirty,s["\u0275nov"](e,7).ngClassValid,s["\u0275nov"](e,7).ngClassInvalid,s["\u0275nov"](e,7).ngClassPending)})}var bc=n("F/XL"),mc=n("P8lu"),yc=n("DNAf"),vc=n("a96k"),_c=function(){function t(t,e,n,a,r,i,s,o,u,c,l,d){var f=this;this.authStorageService=t,this.nfsService=e,this.route=n,this.router=a,this.rgwUserService=r,this.formBuilder=i,this.summaryservice=s,this.cephReleaseNamePipe=o,this.taskWrapper=u,this.cdRef=c,this.i18n=l,this.actionLabels=d,this.isEdit=!1,this.cluster_id=null,this.export_id=null,this.isNewDirectory=!1,this.isNewBucket=!1,this.isDefaultCluster=!1,this.allClusters=null,this.allDaemons={},this.allFsals=[],this.allRgwUsers=[],this.allCephxClients=null,this.allFsNames=null,this.defaultAccessType={RGW:"RO"},this.nfsAccessType=this.nfsService.nfsAccessType,this.nfsSquash=this.nfsService.nfsSquash,this.daemonsSelections=[],this.daemonsMessages=new yc.a({noOptions:this.i18n("There are no daemons available.")},this.i18n),this.pathDataSource=fs.a.create(function(t){t.next(f.nfsForm.getValue("path"))}).pipe(Object(Vu.a)(function(t){return f.getPathTypeahead(t)}),Object(Ui.a)(function(t){return t.paths})),this.bucketDataSource=fs.a.create(function(t){t.next(f.nfsForm.getValue("path"))}).pipe(Object(Vu.a)(function(t){return f.getBucketTypeahead(t)})),this.permission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("NFS export"),this.createForm()}return t.prototype.ngOnInit=function(){var t=this,e=[this.nfsService.daemon(),this.nfsService.fsals(),this.nfsService.clients(),this.nfsService.filesystems()];this.router.url.startsWith("/nfs/edit")&&(this.isEdit=!0),this.isEdit?(this.action=this.actionLabels.EDIT,this.route.params.subscribe(function(n){t.cluster_id=decodeURIComponent(n.cluster_id),t.export_id=decodeURIComponent(n.export_id),e.push(t.nfsService.get(t.cluster_id,t.export_id)),t.getData(e)}),this.nfsForm.get("cluster_id").disable()):(this.action=this.actionLabels.CREATE,this.getData(e));var n=this.summaryservice.getCurrentSummary(),a=this.cephReleaseNamePipe.transform(n.version);this.docsUrl="http://docs.ceph.com/docs/"+a+"/radosgw/nfs/"},t.prototype.getData=function(t){var e=this;Object(ea.a)(t).subscribe(function(t){e.resolveDaemons(t[0]),e.resolvefsals(t[1]),e.resolveClients(t[2]),e.resolveFilesystems(t[3]),t[4]&&e.resolveModel(t[4])})},t.prototype.createForm=function(){this.nfsForm=new aa.a({cluster_id:new we.i("",{validators:[we.A.required]}),daemons:new we.i([]),fsal:new aa.a({name:new we.i("",{validators:[we.A.required]}),user_id:new we.i("",{validators:[ra.a.requiredIf({name:"CEPH"})]}),fs_name:new we.i("",{validators:[ra.a.requiredIf({name:"CEPH"})]}),rgw_user_id:new we.i("",{validators:[ra.a.requiredIf({name:"RGW"})]})}),path:new we.i(""),protocolNfsv3:new we.i(!0,{validators:[ra.a.requiredIf({protocolNfsv4:!1},function(t){return!t})]}),protocolNfsv4:new we.i(!0,{validators:[ra.a.requiredIf({protocolNfsv3:!1},function(t){return!t})]}),tag:new we.i(""),pseudo:new we.i("",{validators:[ra.a.requiredIf({protocolNfsv4:!0}),we.A.pattern("^/[^><|&()]*$")]}),access_type:new we.i("RW",{validators:[we.A.required]}),squash:new we.i("",{validators:[we.A.required]}),transportUDP:new we.i(!0,{validators:[ra.a.requiredIf({transportTCP:!1},function(t){return!t})]}),transportTCP:new we.i(!0,{validators:[ra.a.requiredIf({transportUDP:!1},function(t){return!t})]}),clients:this.formBuilder.array([]),security_label:new we.i(!1),sec_label_xattr:new we.i("security.selinux",ra.a.requiredIf({security_label:!0,"fsal.name":"CEPH"}))})},t.prototype.resolveModel=function(t){"CEPH"===t.fsal.name&&(t.sec_label_xattr=t.fsal.sec_label_xattr),this.daemonsSelections=pt.map(this.allDaemons[t.cluster_id],function(e){return new vc.a(-1!==t.daemons.indexOf(e),e,"")}),this.daemonsSelections=this.daemonsSelections.slice(),t.protocolNfsv3=-1!==t.protocols.indexOf(3),t.protocolNfsv4=-1!==t.protocols.indexOf(4),delete t.protocols,t.transportTCP=-1!==t.transports.indexOf("TCP"),t.transportUDP=-1!==t.transports.indexOf("UDP"),delete t.transports,t.clients.forEach(function(t){var e="";t.addresses.forEach(function(t){e+=t+", "}),e.length>=2&&(e=e.substring(0,e.length-2)),t.addresses=e}),this.nfsForm.patchValue(t),this.setPathValidation(),this.nfsClients.resolveModel(t.clients)},t.prototype.resolveDaemons=function(t){var e=this;t=pt.sortBy(t,["daemon_id"]),this.allClusters=pt(t).map(function(t){return t.cluster_id}).sortedUniq().value(),pt.forEach(this.allClusters,function(t){e.allDaemons[t]=[]}),pt.forEach(t,function(t){e.allDaemons[t.cluster_id].push(t.daemon_id)});var n=pt.isArray(this.allClusters)&&1===this.allClusters.length;this.isDefaultCluster=n&&"_default_"===this.allClusters[0],n&&(this.nfsForm.patchValue({cluster_id:this.allClusters[0]}),this.onClusterChange())},t.prototype.resolvefsals=function(t){var e=this;t.forEach(function(t){var n=e.nfsService.nfsFsal.find(function(e){return t===e.value});pt.isObjectLike(n)&&(e.allFsals.push(n),"RGW"===n.value&&e.rgwUserService.list().subscribe(function(t){t.forEach(function(t){0===t.suspended&&t.keys.length>0&&e.allRgwUsers.push(t.user_id)})}))}),1===this.allFsals.length&&pt.isUndefined(this.nfsForm.getValue("fsal"))&&this.nfsForm.patchValue({fsal:this.allFsals[0]})},t.prototype.resolveClients=function(t){this.allCephxClients=t},t.prototype.resolveFilesystems=function(t){this.allFsNames=t,1===t.length&&this.nfsForm.patchValue({fsal:{fs_name:t[0].name}})},t.prototype.fsalChangeHandler=function(){this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo(),access_type:this._updateAccessType()}),this.setPathValidation(),this.cdRef.detectChanges()},t.prototype.accessTypeChangeHandler=function(){var t=this.nfsForm.getValue("name"),e=this.nfsForm.getValue("access_type");this.defaultAccessType[t]=e},t.prototype.setPathValidation=function(){"RGW"===this.nfsForm.getValue("name")?this.nfsForm.get("path").setValidators([we.A.required,we.A.pattern("^(/|[^/><|&()#?]+)$")]):this.nfsForm.get("path").setValidators([we.A.required,we.A.pattern("^/[^><|&()?]*$")])},t.prototype.rgwUserIdChangeHandler=function(){this.nfsForm.patchValue({pseudo:this._generatePseudo()})},t.prototype.getAccessTypeHelp=function(t){var e=this.nfsAccessType.find(function(e){if(t===e.value)return e});return pt.isObjectLike(e)?e.help:""},t.prototype.getId=function(){return pt.isString(this.nfsForm.getValue("cluster_id"))&&pt.isString(this.nfsForm.getValue("path"))?this.nfsForm.getValue("cluster_id")+":"+this.nfsForm.getValue("path"):""},t.prototype.getPathTypeahead=function(t){return pt.isString(t)&&"/"!==t?this.nfsService.lsDir(t):Object(bc.a)([])},t.prototype.pathChangeHandler=function(){var t=this;this.nfsForm.patchValue({pseudo:this._generatePseudo()});var e=this.nfsForm.getValue("path");this.getPathTypeahead(e).subscribe(function(n){t.isNewDirectory="/"!==e&&-1===n.paths.indexOf(e)})},t.prototype.bucketChangeHandler=function(){var t=this;this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo()});var e=this.nfsForm.getValue("path");this.getBucketTypeahead(e).subscribe(function(n){t.isNewBucket=""!==e&&-1===n.indexOf(e)})},t.prototype.getBucketTypeahead=function(t){var e=this.nfsForm.getValue("rgw_user_id");return pt.isString(e)&&pt.isString(t)&&"/"!==t&&""!==t?this.nfsService.buckets(e):Object(bc.a)([])},t.prototype._generateTag=function(){var t=this.nfsForm.getValue("tag");return this.nfsForm.get("tag").dirty||(t=void 0,"RGW"===this.nfsForm.getValue("fsal")&&(t=this.nfsForm.getValue("path"))),t},t.prototype._generatePseudo=function(){var t=this.nfsForm.getValue("pseudo");return this.nfsForm.get("pseudo")&&!this.nfsForm.get("pseudo").dirty&&(t=void 0,"CEPH"===this.nfsForm.getValue("fsal")?(t="/cephfs",pt.isString(this.nfsForm.getValue("path"))&&(t+=this.nfsForm.getValue("path"))):"RGW"===this.nfsForm.getValue("fsal")&&pt.isString(this.nfsForm.getValue("rgw_user_id"))&&(t="/"+this.nfsForm.getValue("rgw_user_id"),pt.isString(this.nfsForm.getValue("path"))&&(t+="/"+this.nfsForm.getValue("path")))),t},t.prototype._updateAccessType=function(){var t=this.nfsForm.getValue("name"),e=this.defaultAccessType[t];return e||(e="RW"),e},t.prototype.onClusterChange=function(){var t=this.nfsForm.getValue("cluster_id");this.daemonsSelections=pt.map(this.allDaemons[t],function(t){return new vc.a(!1,t,"")}),this.daemonsSelections=this.daemonsSelections.slice(),this.nfsForm.patchValue({daemons:[]})},t.prototype.removeDaemon=function(t,e){this.daemonsSelections.forEach(function(t){t.name===e&&(t.selected=!1)});var n=this.nfsForm.get("daemons");return n.value.splice(t,1),n.setValue(n.value),!1},t.prototype.onDaemonSelection=function(){this.nfsForm.get("daemons").setValue(this.nfsForm.getValue("daemons"))},t.prototype.submitAction=function(){var t=this,e=this._buildRequest();this.taskWrapper.wrapTaskAroundCall(this.isEdit?{task:new ku.a("nfs/edit",{cluster_id:this.cluster_id,export_id:this.export_id}),call:this.nfsService.update(this.cluster_id,this.export_id,e)}:{task:new ku.a("nfs/create",{path:e.path,fsal:e.fsal,cluster_id:e.cluster_id}),call:this.nfsService.create(e)}).subscribe(void 0,function(){return t.nfsForm.setErrors({cdSubmitButton:!0})},function(){return t.router.navigate(["/nfs"])})},t.prototype._buildRequest=function(){var t=pt.cloneDeep(this.nfsForm.value);return(pt.isUndefined(t.tag)||""===t.tag)&&(t.tag=null),this.isEdit&&(t.export_id=this.export_id),"CEPH"===t.fsal.name?delete t.fsal.rgw_user_id:(delete t.fsal.fs_name,delete t.fsal.user_id),t.protocols=[],t.protocolNfsv3?t.protocols.push(3):t.tag=null,delete t.protocolNfsv3,t.protocolNfsv4?t.protocols.push(4):t.pseudo=null,delete t.protocolNfsv4,t.transports=[],t.transportTCP&&t.transports.push("TCP"),delete t.transportTCP,t.transportUDP&&t.transports.push("UDP"),delete t.transportUDP,t.clients.forEach(function(e){e.addresses=pt.isString(e.addresses)?pt(e.addresses).split(/[ ,]+/).uniq().filter(function(t){return""!==t}).value():[],e.squash||(e.squash=t.squash),e.access_type||(e.access_type=t.access_type)}),t.fsal.sec_label_xattr=!1===t.security_label||"RGW"===t.fsal.name?null:t.sec_label_xattr,delete t.sec_label_xattr,t},t}(),xc=s["\u0275crt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function Tc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function wc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- No cluster available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Sc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- Select the cluster --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Oc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function Ic(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function Cc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","cluster_id"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Cluster"])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,14,"select",[["class","form-control"],["formControlName","cluster_id"],["id","cluster_id"],["name","cluster_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,9).onTouched()&&a),"change"===e&&(a=!1!==r.onClusterChange()&&a),a},null,null)),s["\u0275did"](9,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](14,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Tc)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,wc)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Sc)),s["\u0275did"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Oc)),s["\u0275did"](22,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ic)),s["\u0275did"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("cluster_id",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"cluster_id"),t(e,16,0,null===n.allClusters),t(e,18,0,null!==n.allClusters&&0===n.allClusters.length),t(e,20,0,null!==n.allClusters&&n.allClusters.length>0),t(e,22,0,n.allClusters),t(e,24,0,n.nfsForm.showError("cluster_id",s["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,s["\u0275nov"](e,13).ngClassUntouched,s["\u0275nov"](e,13).ngClassTouched,s["\u0275nov"](e,13).ngClassPristine,s["\u0275nov"](e,13).ngClassDirty,s["\u0275nov"](e,13).ngClassValid,s["\u0275nov"](e,13).ngClassInvalid,s["\u0275nov"](e,13).ngClassPending)})}function kc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,5,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"input",[["class","form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),s["\u0275did"](3,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](4,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeDaemon(t.context.index,t.context.$implicit)&&a),a},null,null)),(t()(),s["\u0275eld"](6,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-remove fa-fw"]],null,null,null,null,null))],null,function(t,e){t(e,2,0,e.context.$implicit)})}function Nc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Rc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- No data pools available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Ac(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- Select the storage backend --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Dc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.descr)})}function Ec(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function Lc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Pc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- No users available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Mc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- Select the object gateway user --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function qc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function jc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function Fc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","rgw_user_id"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Object Gateway User"])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,14,"select",[["class","form-control"],["formControlName","rgw_user_id"],["id","rgw_user_id"],["name","rgw_user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,9).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a},null,null)),s["\u0275did"](9,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](14,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Lc)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Pc)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Mc)),s["\u0275did"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,qc)),s["\u0275did"](22,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,jc)),s["\u0275did"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("rgw_user_id",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"rgw_user_id"),t(e,16,0,null===n.allRgwUsers),t(e,18,0,null!==n.allRgwUsers&&0===n.allRgwUsers.length),t(e,20,0,null!==n.allRgwUsers&&n.allRgwUsers.length>0),t(e,22,0,n.allRgwUsers),t(e,24,0,n.nfsForm.showError("rgw_user_id",s["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,s["\u0275nov"](e,13).ngClassUntouched,s["\u0275nov"](e,13).ngClassTouched,s["\u0275nov"](e,13).ngClassPristine,s["\u0275nov"](e,13).ngClassDirty,s["\u0275nov"](e,13).ngClassValid,s["\u0275nov"](e,13).ngClassInvalid,s["\u0275nov"](e,13).ngClassPending)})}function zc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Gc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- No clients available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Yc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- Select the cephx client --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Vc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function Hc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function Bc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","user_id"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["CephFS User ID"])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,14,"select",[["class","form-control"],["formControlName","user_id"],["id","user_id"],["name","user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,9).onTouched()&&a),a},null,null)),s["\u0275did"](9,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](14,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,zc)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Gc)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Yc)),s["\u0275did"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Vc)),s["\u0275did"](22,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Hc)),s["\u0275did"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("user_id",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"user_id"),t(e,16,0,null===n.allCephxClients),t(e,18,0,null!==n.allCephxClients&&0===n.allCephxClients.length),t(e,20,0,null!==n.allCephxClients&&n.allCephxClients.length>0),t(e,22,0,n.allCephxClients),t(e,24,0,n.nfsForm.showError("user_id",s["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,s["\u0275nov"](e,13).ngClassUntouched,s["\u0275nov"](e,13).ngClassTouched,s["\u0275nov"](e,13).ngClassPristine,s["\u0275nov"](e,13).ngClassDirty,s["\u0275nov"](e,13).ngClassValid,s["\u0275nov"](e,13).ngClassInvalid,s["\u0275nov"](e,13).ngClassPending)})}function Uc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Wc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- No CephFS filesystem available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Kc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- Select the CephFS filesystem --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function $c(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)},function(t,e){t(e,3,0,e.context.$implicit.name)})}function Zc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function Xc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","fs_name"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["CephFS Name"])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,14,"select",[["class","form-control"],["formControlName","fs_name"],["id","fs_name"],["name","fs_name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,9).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,9).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a},null,null)),s["\u0275did"](9,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](14,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Uc)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Wc)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Kc)),s["\u0275did"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,$c)),s["\u0275did"](22,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Zc)),s["\u0275did"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("fs_name",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"fs_name"),t(e,16,0,null===n.allFsNames),t(e,18,0,null!==n.allFsNames&&0===n.allFsNames.length),t(e,20,0,null!==n.allFsNames&&n.allFsNames.length>0),t(e,22,0,n.allFsNames),t(e,24,0,n.nfsForm.showError("fs_name",s["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,8,0,s["\u0275nov"](e,13).ngClassUntouched,s["\u0275nov"](e,13).ngClassTouched,s["\u0275nov"](e,13).ngClassPristine,s["\u0275nov"](e,13).ngClassDirty,s["\u0275nov"](e,13).ngClassValid,s["\u0275nov"](e,13).ngClassInvalid,s["\u0275nov"](e,13).ngClassPending)})}function Jc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function Qc(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","sec_label_xattr"],["id","sec_label_xattr"],["name","sec_label_xattr"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,1)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,1).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,1)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,1)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](1,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](3,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](5,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](6,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null)],function(t,e){t(e,3,0,"sec_label_xattr")},function(t,e){t(e,0,0,s["\u0275nov"](e,5).ngClassUntouched,s["\u0275nov"](e,5).ngClassTouched,s["\u0275nov"](e,5).ngClassPristine,s["\u0275nov"](e,5).ngClassDirty,s["\u0275nov"](e,5).ngClassValid,s["\u0275nov"](e,5).ngClassInvalid,s["\u0275nov"](e,5).ngClassPending)})}function tl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function el(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,23,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,4,"label",[["class","col-sm-3 control-label"],["for","security_label"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Security Label"])),(t()(),s["\u0275and"](16777216,null,null,1,null,Jc)),s["\u0275did"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](8,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](9,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,6,"input",[["formControlName","security_label"],["id","security_label"],["name","security_label"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,11).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,11).onTouched()&&a),a},null,null)),s["\u0275did"](11,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](13,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](15,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](16,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](17,0,null,null,1,"label",[["for","security_label"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Enable security label"])),(t()(),s["\u0275eld"](19,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Qc)),s["\u0275did"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,tl)),s["\u0275did"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("security_label",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,7,0,n.nfsForm.getValue("security_label")),t(e,13,0,"security_label"),t(e,21,0,n.nfsForm.getValue("security_label")),t(e,23,0,n.nfsForm.showError("sec_label_xattr",s["\u0275nov"](e.parent,6),"required"))},function(t,e){t(e,10,0,s["\u0275nov"](e,15).ngClassUntouched,s["\u0275nov"](e,15).ngClassTouched,s["\u0275nov"](e,15).ngClassPristine,s["\u0275nov"](e,15).ngClassDirty,s["\u0275nov"](e,15).ngClassValid,s["\u0275nov"](e,15).ngClassInvalid,s["\u0275nov"](e,15).ngClassPending)})}function nl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function al(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Path need to start with a '/' and can be followed by a word"]))],null,null)}function rl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["New directory will be created"]))],null,null)}function il(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","path"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["CephFS Path"])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,16777216,null,null,7,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["\u0275nov"](t,9)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,9).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,9)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,9)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==s["\u0275nov"](t,15).onInput(n)&&a),"keyup"===e&&(a=!1!==s["\u0275nov"](t,15).onChange(n)&&a),"click"===e&&(a=!1!==s["\u0275nov"](t,15).onFocus()&&a),"focus"===e&&(a=!1!==s["\u0275nov"](t,15).onFocus()&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,15).onBlur()&&a),"keydown"===e&&(a=!1!==s["\u0275nov"](t,15).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.pathChangeHandler()&&a),"blur"===e&&(a=!1!==r.pathChangeHandler()&&a),a},null,null)),s["\u0275did"](9,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](14,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](15,212992,null,0,ec,[Q.a,tc,s.ChangeDetectorRef,s.ElementRef,we.q,s.Renderer2,s.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),(t()(),s["\u0275and"](16777216,null,null,1,null,nl)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,al)),s["\u0275did"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,rl)),s["\u0275did"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("path",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"path"),t(e,15,0,n.pathDataSource),t(e,17,0,n.nfsForm.showError("path",s["\u0275nov"](e.parent,6),"required")),t(e,19,0,n.nfsForm.showError("path",s["\u0275nov"](e.parent,6),"pattern")),t(e,21,0,n.isNewDirectory&&!n.nfsForm.showError("path",s["\u0275nov"](e.parent,6)))},function(t,e){t(e,8,0,s["\u0275nov"](e,13).ngClassUntouched,s["\u0275nov"](e,13).ngClassTouched,s["\u0275nov"](e,13).ngClassPristine,s["\u0275nov"](e,13).ngClassDirty,s["\u0275nov"](e,13).ngClassValid,s["\u0275nov"](e,13).ngClassInvalid,s["\u0275nov"](e,13).ngClassPending)})}function sl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function ol(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Path can only be a single '/' or a word"]))],null,null)}function ul(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["New bucket will be created"]))],null,null)}function cl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,21,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","path"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Path"])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,16777216,null,null,7,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["\u0275nov"](t,9)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,9).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,9)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,9)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==s["\u0275nov"](t,15).onInput(n)&&a),"keyup"===e&&(a=!1!==s["\u0275nov"](t,15).onChange(n)&&a),"click"===e&&(a=!1!==s["\u0275nov"](t,15).onFocus()&&a),"focus"===e&&(a=!1!==s["\u0275nov"](t,15).onFocus()&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,15).onBlur()&&a),"keydown"===e&&(a=!1!==s["\u0275nov"](t,15).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.bucketChangeHandler()&&a),"blur"===e&&(a=!1!==r.bucketChangeHandler()&&a),a},null,null)),s["\u0275did"](9,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](11,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](13,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](14,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](15,212992,null,0,ec,[Q.a,tc,s.ChangeDetectorRef,s.ElementRef,we.q,s.Renderer2,s.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),(t()(),s["\u0275and"](16777216,null,null,1,null,sl)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ol)),s["\u0275did"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ul)),s["\u0275did"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("path",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,11,0,"path"),t(e,15,0,n.bucketDataSource),t(e,17,0,n.nfsForm.showError("path",s["\u0275nov"](e.parent,6),"required")),t(e,19,0,n.nfsForm.showError("path",s["\u0275nov"](e.parent,6),"pattern")),t(e,21,0,n.isNewBucket&&!n.nfsForm.showError("path",s["\u0275nov"](e.parent,6)))},function(t,e){t(e,8,0,s["\u0275nov"](e,13).ngClassUntouched,s["\u0275nov"](e,13).ngClassTouched,s["\u0275nov"](e,13).ngClassPristine,s["\u0275nov"](e,13).ngClassDirty,s["\u0275nov"](e,13).ngClassValid,s["\u0275nov"](e,13).ngClassInvalid,s["\u0275nov"](e,13).ngClassPending)})}function ll(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function dl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,13,"label",[["class","col-sm-3 control-label"],["for","tag"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["NFS Tag"])),(t()(),s["\u0275eld"](4,0,null,null,10,"cd-helper",[],null,null,null,Ns.b,Ns.a)),s["\u0275did"](5,49152,null,0,Rs.a,[],null,null),(t()(),s["\u0275eld"](6,0,null,0,4,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Alternative access for "])),(t()(),s["\u0275eld"](8,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["NFS v3"])),(t()(),s["\u0275ted"](-1,null,[" mounts (it must not have a leading /)."])),(t()(),s["\u0275eld"](11,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz)."])),(t()(),s["\u0275eld"](13,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["By using different Tag options, the same Path may be exported multiple times."])),(t()(),s["\u0275eld"](15,0,null,null,7,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](16,0,null,null,6,"input",[["class","form-control"],["formControlName","tag"],["id","tag"],["name","tag"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,17)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,17).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,17)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,17)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](17,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](19,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](21,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](22,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null)],function(t,e){t(e,19,0,"tag")},function(t,e){t(e,16,0,s["\u0275nov"](e,21).ngClassUntouched,s["\u0275nov"](e,21).ngClassTouched,s["\u0275nov"](e,21).ngClassPristine,s["\u0275nov"](e,21).ngClassDirty,s["\u0275nov"](e,21).ngClassValid,s["\u0275nov"](e,21).ngClassInvalid,s["\u0275nov"](e,21).ngClassPending)})}function fl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function pl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Pseudo needs to start with a '/' and can't contain any of the following: >, <, |, &, ( or )."]))],null,null)}function hl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,30,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,15,"label",[["class","col-sm-3 control-label"],["for","pseudo"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Pseudo"])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,11,"cd-helper",[],null,null,null,Ns.b,Ns.a)),s["\u0275did"](8,49152,null,0,Rs.a,[],null,null),(t()(),s["\u0275eld"](9,0,null,0,7,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["The position that this "])),(t()(),s["\u0275eld"](11,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["NFS v4"])),(t()(),s["\u0275ted"](-1,null,[" export occupies in the "])),(t()(),s["\u0275eld"](14,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Pseudo FS"])),(t()(),s["\u0275ted"](-1,null,[" (it must be unique)."])),(t()(),s["\u0275eld"](17,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["By using different Pseudo options, the same Path may be exported multiple times."])),(t()(),s["\u0275eld"](19,0,null,null,11,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](20,0,null,null,6,"input",[["class","form-control"],["formControlName","pseudo"],["id","pseudo"],["name","pseudo"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,21)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](21,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](23,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](25,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](26,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,fl)),s["\u0275did"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,pl)),s["\u0275did"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.nfsForm.showError("pseudo",s["\u0275nov"](e.parent,6)));t(e,1,0,"form-group",a),t(e,23,0,"pseudo"),t(e,28,0,n.nfsForm.showError("pseudo",s["\u0275nov"](e.parent,6),"required")),t(e,30,0,n.nfsForm.showError("pseudo",s["\u0275nov"](e.parent,6),"pattern"))},function(t,e){t(e,20,0,s["\u0275nov"](e,25).ngClassUntouched,s["\u0275nov"](e,25).ngClassTouched,s["\u0275nov"](e,25).ngClassPristine,s["\u0275nov"](e,25).ngClassDirty,s["\u0275nov"](e,25).ngClassValid,s["\u0275nov"](e,25).ngClassInvalid,s["\u0275nov"](e,25).ngClassPending)})}function gl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function bl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- No access type available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function ml(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- Select the access type --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function yl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)},function(t,e){t(e,3,0,e.context.$implicit.value)})}function vl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,1,0,n.getAccessTypeHelp(n.nfsForm.getValue("access_type")))})}function _l(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"span",[["class","text-warning"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["The Object Gateway NFS backend has a number of limitations which will seriously affect applications writing to the share. Please consult the "])),(t()(),s["\u0275eld"](2,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[" documentation"])),(t()(),s["\u0275ted"](-1,null,[" for details before enabling write access."]))],null,function(t,e){t(e,2,0,s["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function xl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function Tl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["Loading..."]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function wl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["-- No squash available --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Sl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](-1,null,["--Select what kind of user id squashing is performed --"]))],function(t,e){t(e,1,0,""),t(e,2,0,"")},null)}function Ol(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function Il(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function Cl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Required field"]))],null,null)}function kl(t){return s["\u0275vid"](0,[s["\u0275pid"](0,i.TitleCasePipe,[]),s["\u0275pid"](0,As.a,[]),s["\u0275qud"](402653184,1,{nfsClients:0}),(t()(),s["\u0275eld"](3,0,null,null,201,"div",[["class","col-sm-12 col-lg-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,200,"form",[["class","form-horizontal"],["name","nfsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,6).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,6).onReset()&&a),a},null,null)),s["\u0275did"](5,16384,null,0,we.D,[],null,null),s["\u0275did"](6,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](8,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](9,0,null,null,195,"div",[["class","panel panel-default"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,4,"div",[["class","panel-heading"]],null,null,null,null,null)),(t()(),s["\u0275eld"](11,0,null,null,3,"h3",[["class","panel-title"]],null,null,null,null,null)),(t()(),s["\u0275ted"](12,null,[""," ",""])),s["\u0275ppd"](13,1),s["\u0275ppd"](14,1),(t()(),s["\u0275eld"](15,0,null,null,180,"div",[["class","panel-body"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Cc)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](18,0,null,null,15,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](19,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](20,{"has-error":0}),(t()(),s["\u0275eld"](21,0,null,null,2,"label",[["class","col-sm-3 control-label"],["for","daemons"]],null,null,null,null,null)),(t()(),s["\u0275eld"](22,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Daemons"])),(t()(),s["\u0275eld"](24,0,null,null,9,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,kc)),s["\u0275did"](26,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](27,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](28,0,null,null,5,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),s["\u0275eld"](29,0,null,null,4,"cd-select",[["elemClass","btn btn-default pull-right"]],null,[[null,"selection"]],function(t,e,n){var a=!0;return"selection"===e&&(a=!1!==t.component.onDaemonSelection()&&a),a},ac.b,ac.a)),s["\u0275did"](30,638976,null,0,rc.a,[Tt.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(t()(),s["\u0275eld"](31,0,null,0,0,"i",[["class","fa fa-fw fa-plus"]],null,null,null,null,null)),(t()(),s["\u0275eld"](32,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Add daemon"])),(t()(),s["\u0275eld"](34,0,null,null,34,"div",[["formGroupName","fsal"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),s["\u0275did"](35,212992,null,0,we.m,[[3,we.d],[8,null],[8,null]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.d,null,[we.m]),s["\u0275did"](37,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](38,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](39,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](40,{"has-error":0}),(t()(),s["\u0275eld"](41,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","name"]],null,null,null,null,null)),(t()(),s["\u0275eld"](42,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Storage Backend"])),(t()(),s["\u0275eld"](44,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](45,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](46,0,null,null,14,"select",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,47).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,47).onTouched()&&a),"change"===e&&(a=!1!==r.fsalChangeHandler()&&a),a},null,null)),s["\u0275did"](47,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](49,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](51,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](52,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Nc)),s["\u0275did"](54,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Rc)),s["\u0275did"](56,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ac)),s["\u0275did"](58,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Dc)),s["\u0275did"](60,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ec)),s["\u0275did"](62,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Fc)),s["\u0275did"](64,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Bc)),s["\u0275did"](66,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Xc)),s["\u0275did"](68,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,el)),s["\u0275did"](70,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,il)),s["\u0275did"](72,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,cl)),s["\u0275did"](74,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](75,0,null,null,29,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](76,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](77,{"has-error":0}),(t()(),s["\u0275eld"](78,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","protocols"]],null,null,null,null,null)),(t()(),s["\u0275eld"](79,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["NFS Protocol"])),(t()(),s["\u0275eld"](81,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](82,0,null,null,22,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](83,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](84,0,null,null,6,"input",[["formControlName","protocolNfsv3"],["id","protocolNfsv3"],["name","protocolNfsv3"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,85).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,85).onTouched()&&a),a},null,null)),s["\u0275did"](85,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](87,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](89,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](90,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](91,0,null,null,1,"label",[["for","protocolNfsv3"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["NFSv3"])),(t()(),s["\u0275eld"](93,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](94,0,null,null,6,"input",[["formControlName","protocolNfsv4"],["id","protocolNfsv4"],["name","protocolNfsv4"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,95).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,95).onTouched()&&a),a},null,null)),s["\u0275did"](95,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](97,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](99,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](100,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](101,0,null,null,1,"label",[["for","protocolNfsv4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["NFSv4"])),(t()(),s["\u0275and"](16777216,null,null,1,null,ll)),s["\u0275did"](104,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,dl)),s["\u0275did"](106,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,hl)),s["\u0275did"](108,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](109,0,null,null,28,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](110,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](111,{"has-error":0}),(t()(),s["\u0275eld"](112,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","access_type"]],null,null,null,null,null)),(t()(),s["\u0275eld"](113,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Access Type"])),(t()(),s["\u0275eld"](115,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](116,0,null,null,21,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](117,0,null,null,14,"select",[["class","form-control"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,118).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,118).onTouched()&&a),"change"===e&&(a=!1!==r.accessTypeChangeHandler()&&a),a},null,null)),s["\u0275did"](118,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](120,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](122,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](123,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,gl)),s["\u0275did"](125,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,bl)),s["\u0275did"](127,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ml)),s["\u0275did"](129,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,yl)),s["\u0275did"](131,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,vl)),s["\u0275did"](133,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,_l)),s["\u0275did"](135,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,xl)),s["\u0275did"](137,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](138,0,null,null,24,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](139,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](140,{"has-error":0}),(t()(),s["\u0275eld"](141,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","squash"]],null,null,null,null,null)),(t()(),s["\u0275eld"](142,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Squash"])),(t()(),s["\u0275eld"](144,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](145,0,null,null,17,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](146,0,null,null,14,"select",[["class","form-control"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,147).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,147).onTouched()&&a),a},null,null)),s["\u0275did"](147,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](149,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](151,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](152,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Tl)),s["\u0275did"](154,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,wl)),s["\u0275did"](156,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Sl)),s["\u0275did"](158,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ol)),s["\u0275did"](160,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Il)),s["\u0275did"](162,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](163,0,null,null,30,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](164,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](165,{"has-error":0}),(t()(),s["\u0275eld"](166,0,null,null,3,"label",[["class","col-sm-3 control-label"],["for","transports"]],null,null,null,null,null)),(t()(),s["\u0275eld"](167,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Transport Protocol"])),(t()(),s["\u0275eld"](169,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](170,0,null,null,23,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](171,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](172,0,null,null,6,"input",[["formControlName","transportUDP"],["id","transportUDP"],["name","transportUDP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,173).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,173).onTouched()&&a),a},null,null)),s["\u0275did"](173,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](175,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](177,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](178,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](179,0,null,null,1,"label",[["for","transportUDP"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["UDP"])),(t()(),s["\u0275eld"](181,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](182,0,null,null,6,"input",[["formControlName","transportTCP"],["id","transportTCP"],["name","transportTCP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,183).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,183).onTouched()&&a),a},null,null)),s["\u0275did"](183,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](185,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](187,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](188,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](189,0,null,null,1,"label",[["for","transportTCP"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["TCP"])),(t()(),s["\u0275and"](16777216,null,null,1,null,Cl)),s["\u0275did"](192,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](193,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](194,0,null,null,1,"cd-nfs-form-client",[],null,null,null,gc,oc)),s["\u0275did"](195,49152,[[1,4],["nfsClients",4]],0,sc,[Cu,Tt.a],{form:[0,"form"]},null),(t()(),s["\u0275eld"](196,0,null,null,8,"div",[["class","panel-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](197,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["\u0275eld"](198,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Za.b,Za.a)),s["\u0275did"](199,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),s["\u0275ted"](200,0,[""," ",""])),s["\u0275ppd"](201,1),s["\u0275ppd"](202,1),(t()(),s["\u0275eld"](203,0,null,null,1,"cd-back-button",[],null,null,null,Ja.b,Ja.a)),s["\u0275did"](204,49152,null,0,Qa.a,[i.Location,Xn.b],null,null)],function(t,e){var n=e.component;t(e,6,0,n.nfsForm),t(e,17,0,!n.isDefaultCluster);var a=t(e,20,0,n.nfsForm.showError("daemons",s["\u0275nov"](e,6)));t(e,19,0,"form-group",a),t(e,26,0,n.nfsForm.getValue("daemons")),t(e,30,0,"btn btn-default pull-right",n.nfsForm.get("daemons").value,n.daemonsSelections,n.daemonsMessages),t(e,35,0,"fsal");var r=t(e,40,0,n.nfsForm.showError("name",s["\u0275nov"](e,6)));t(e,39,0,"form-group",r),t(e,49,0,"name"),t(e,54,0,null===n.allFsals),t(e,56,0,null!==n.allFsals&&0===n.allFsals.length),t(e,58,0,null!==n.allFsals&&n.allFsals.length>0),t(e,60,0,n.allFsals),t(e,62,0,n.nfsForm.showError("name",s["\u0275nov"](e,6),"required")),t(e,64,0,"RGW"===n.nfsForm.getValue("name")),t(e,66,0,"CEPH"===n.nfsForm.getValue("name")),t(e,68,0,"CEPH"===n.nfsForm.getValue("name")),t(e,70,0,"CEPH"===n.nfsForm.getValue("name")),t(e,72,0,"CEPH"===n.nfsForm.getValue("name")),t(e,74,0,"RGW"===n.nfsForm.getValue("name"));var i=t(e,77,0,n.nfsForm.showError("protocolNfsv3",s["\u0275nov"](e,6))||n.nfsForm.showError("protocolNfsv4",s["\u0275nov"](e,6)));t(e,76,0,"form-group",i),t(e,87,0,"protocolNfsv3"),t(e,97,0,"protocolNfsv4"),t(e,104,0,n.nfsForm.showError("protocolNfsv3",s["\u0275nov"](e,6),"required")||n.nfsForm.showError("protocolNfsv4",s["\u0275nov"](e,6),"required")),t(e,106,0,n.nfsForm.getValue("protocolNfsv3")),t(e,108,0,n.nfsForm.getValue("protocolNfsv4"));var o=t(e,111,0,n.nfsForm.showError("access_type",s["\u0275nov"](e,6)));t(e,110,0,"form-group",o),t(e,120,0,"access_type"),t(e,125,0,null===n.nfsAccessType),t(e,127,0,null!==n.nfsAccessType&&0===n.nfsAccessType.length),t(e,129,0,null!==n.nfsAccessType&&n.nfsAccessType.length>0),t(e,131,0,n.nfsAccessType),t(e,133,0,n.nfsForm.getValue("access_type")),t(e,135,0,"RW"===n.nfsForm.getValue("access_type")&&"RGW"===n.nfsForm.getValue("name")),t(e,137,0,n.nfsForm.showError("access_type",s["\u0275nov"](e,6),"required"));var u=t(e,140,0,n.nfsForm.showError("squash",s["\u0275nov"](e,6)));t(e,139,0,"form-group",u),t(e,149,0,"squash"),t(e,154,0,null===n.nfsSquash),t(e,156,0,null!==n.nfsSquash&&0===n.nfsSquash.length),t(e,158,0,null!==n.nfsSquash&&n.nfsSquash.length>0),t(e,160,0,n.nfsSquash),t(e,162,0,n.nfsForm.showError("squash",s["\u0275nov"](e,6),"required"));var c=t(e,165,0,n.nfsForm.showError("transportUDP",s["\u0275nov"](e,6))||n.nfsForm.showError("transportTCP",s["\u0275nov"](e,6)));t(e,164,0,"form-group",c),t(e,175,0,"transportUDP"),t(e,185,0,"transportTCP"),t(e,192,0,n.nfsForm.showError("transportUDP",s["\u0275nov"](e,6),"required")||n.nfsForm.showError("transportTCP",s["\u0275nov"](e,6),"required")),t(e,195,0,n.nfsForm),t(e,199,0,s["\u0275nov"](e,6),"button")},function(t,e){var n=e.component;t(e,4,0,s["\u0275nov"](e,8).ngClassUntouched,s["\u0275nov"](e,8).ngClassTouched,s["\u0275nov"](e,8).ngClassPristine,s["\u0275nov"](e,8).ngClassDirty,s["\u0275nov"](e,8).ngClassValid,s["\u0275nov"](e,8).ngClassInvalid,s["\u0275nov"](e,8).ngClassPending);var a=s["\u0275unv"](e,12,0,t(e,13,0,s["\u0275nov"](e,0),n.action)),r=s["\u0275unv"](e,12,1,t(e,14,0,s["\u0275nov"](e,1),n.resource));t(e,12,0,a,r),t(e,34,0,s["\u0275nov"](e,37).ngClassUntouched,s["\u0275nov"](e,37).ngClassTouched,s["\u0275nov"](e,37).ngClassPristine,s["\u0275nov"](e,37).ngClassDirty,s["\u0275nov"](e,37).ngClassValid,s["\u0275nov"](e,37).ngClassInvalid,s["\u0275nov"](e,37).ngClassPending),t(e,46,0,s["\u0275nov"](e,51).ngClassUntouched,s["\u0275nov"](e,51).ngClassTouched,s["\u0275nov"](e,51).ngClassPristine,s["\u0275nov"](e,51).ngClassDirty,s["\u0275nov"](e,51).ngClassValid,s["\u0275nov"](e,51).ngClassInvalid,s["\u0275nov"](e,51).ngClassPending),t(e,84,0,s["\u0275nov"](e,89).ngClassUntouched,s["\u0275nov"](e,89).ngClassTouched,s["\u0275nov"](e,89).ngClassPristine,s["\u0275nov"](e,89).ngClassDirty,s["\u0275nov"](e,89).ngClassValid,s["\u0275nov"](e,89).ngClassInvalid,s["\u0275nov"](e,89).ngClassPending),t(e,94,0,s["\u0275nov"](e,99).ngClassUntouched,s["\u0275nov"](e,99).ngClassTouched,s["\u0275nov"](e,99).ngClassPristine,s["\u0275nov"](e,99).ngClassDirty,s["\u0275nov"](e,99).ngClassValid,s["\u0275nov"](e,99).ngClassInvalid,s["\u0275nov"](e,99).ngClassPending),t(e,117,0,s["\u0275nov"](e,122).ngClassUntouched,s["\u0275nov"](e,122).ngClassTouched,s["\u0275nov"](e,122).ngClassPristine,s["\u0275nov"](e,122).ngClassDirty,s["\u0275nov"](e,122).ngClassValid,s["\u0275nov"](e,122).ngClassInvalid,s["\u0275nov"](e,122).ngClassPending),t(e,146,0,s["\u0275nov"](e,151).ngClassUntouched,s["\u0275nov"](e,151).ngClassTouched,s["\u0275nov"](e,151).ngClassPristine,s["\u0275nov"](e,151).ngClassDirty,s["\u0275nov"](e,151).ngClassValid,s["\u0275nov"](e,151).ngClassInvalid,s["\u0275nov"](e,151).ngClassPending),t(e,172,0,s["\u0275nov"](e,177).ngClassUntouched,s["\u0275nov"](e,177).ngClassTouched,s["\u0275nov"](e,177).ngClassPristine,s["\u0275nov"](e,177).ngClassDirty,s["\u0275nov"](e,177).ngClassValid,s["\u0275nov"](e,177).ngClassInvalid,s["\u0275nov"](e,177).ngClassPending),t(e,182,0,s["\u0275nov"](e,187).ngClassUntouched,s["\u0275nov"](e,187).ngClassTouched,s["\u0275nov"](e,187).ngClassPristine,s["\u0275nov"](e,187).ngClassDirty,s["\u0275nov"](e,187).ngClassValid,s["\u0275nov"](e,187).ngClassInvalid,s["\u0275nov"](e,187).ngClassPending);var i=s["\u0275unv"](e,200,0,t(e,201,0,s["\u0275nov"](e,0),n.action)),o=s["\u0275unv"](e,200,1,t(e,202,0,s["\u0275nov"](e,1),n.resource));t(e,200,0,i,o)})}function Nl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-nfs-form",[],null,null,null,kl,xc)),s["\u0275did"](1,114688,null,0,_c,[d.a,Cu,et.a,et.l,mc.a,la.a,Fe.a,Ye.a,Nu.a,s.ChangeDetectorRef,Tt.a,Xn.b],null,null)],function(t,e){t(e,1,0)},null)}var Rl=s["\u0275ccf"]("cd-nfs-form",_c,Nl,{},{},[]),Al=function(){return function(){this.logoutUrl=window.location.origin+"/auth/saml2/slo"}}(),Dl=s["\u0275crt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function El(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,16,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,15,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Sorry, the user does not exist in Ceph."])),(t()(),s["\u0275eld"](4,0,null,null,4,"h4",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Return to "])),(t()(),s["\u0275eld"](6,0,null,null,1,"a",[["class","sso-logout"]],[[8,"href",4]],null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Login Page"])),(t()(),s["\u0275ted"](-1,null,[". You'll be logged out from the Identity Provider when you retry logging in."])),(t()(),s["\u0275eld"](9,0,null,null,0,"img",[["class","img-responsive center-block img-rounded"],["src","assets/1280px-Nautilus_Octopus.jpg"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[' "'])),(t()(),s["\u0275eld"](12,0,null,null,1,"a",[["href","https://www.flickr.com/photos/146401137@N06/40335060661"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Nautilus Octopus"])),(t()(),s["\u0275ted"](-1,null,['" by Jin Kemoole is licensed under '])),(t()(),s["\u0275eld"](15,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/2.0/"],["rel","nofollow"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["CC BY 2.0"]))],null,function(t,e){t(e,6,0,e.component.logoutUrl)})}function Ll(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-sso-not-found",[],null,null,null,El,Dl)),s["\u0275did"](1,49152,null,0,Al,[],null,null)],null,null)}var Pl,Ml=s["\u0275ccf"]("cd-sso-not-found",Al,Ll,{},{},[]),ql=n("lHUG"),jl=function(){function t(t,e){this.http=t,this.localeId=e}return t.prototype.getLocale=function(){return this.localeId||"en-US"},t.prototype.setLocale=function(t){document.cookie="cd-lang="+t},t.prototype.getLanguages=function(){return this.http.get("ui-api/langs")},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c),s.inject(s.LOCALE_ID))},token:t,providedIn:"root"}),t}();!function(t){t.cs="\u010ce\u0161tina",t["de-DE"]="Deutsch",t["en-US"]="English",t["es-ES"]="Espa\xf1ol",t["fr-FR"]="Fran\xe7ais",t["id-ID"]="Bahasa Indonesia",t["it-IT"]="Italiano",t["ja-JP"]="\u65e5\u672c\u8a9e",t["ko-KR"]="\ud55c\uad6d\uc5b4",t["pl-PL"]="Polski",t["pt-BR"]="Portugu\xeas",t["zh-CN"]="\u4e2d\u6587 (\u7b80\u4f53)",t["zh-TW"]="\u4e2d\u6587 (\u7e41\u9ad4\uff09"}(Pl||(Pl={}));var Fl={cs:ql.a,de:ql.b,es:ql.e,fr:ql.g,id:ql.m,it:ql.y,ja:ql.z,ko:ql.A,pl:ql.C,pt:ql.D,zh:ql.H},zl=function(){function t(t,e){this.localeService=t,this.languageService=e,this.isDropdown=!0,this.supportedLanguages=Pl}return t.prototype.ngOnInit=function(){var t=this;this.selectedLanguage=this.languageService.getLocale(),this.defineUsedLanguage(),this.languageService.getLanguages().subscribe(function(e){t.supportedLanguages=pt.pick(t.supportedLanguages,e)})},t.prototype.defineUsedLanguage=function(){var t=this.selectedLanguage.slice(0,2);t in Fl&&(Object(ql.c)(t,Fl[t]),this.localeService.use(t))},t.prototype.reloadWindow=function(){window.location.reload()},t.prototype.changeLanguage=function(t){this.languageService.setLocale(t),this.reloadWindow()},t}(),Gl=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Yl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.changeLanguage(t.context.$implicit.key)&&a),a},null,null)),(t()(),s["\u0275ted"](2,null,["",""]))],null,function(t,e){t(e,2,0,e.context.$implicit.value)})}function Vl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,2,null,Yl)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["\u0275pid"](0,i.KeyValuePipe,[s.KeyValueDiffers])],function(t,e){var n=e.component;t(e,2,0,s["\u0275unv"](e,2,0,s["\u0275nov"](e,3).transform(n.supportedLanguages)))},null)}function Hl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,16777216,null,null,8,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](2,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),(t()(),s["\u0275eld"](3,0,null,null,3,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Select a Language"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,4).onClick()&&a),a},null,null)),s["\u0275did"](4,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275ted"](5,null,[" "," "])),(t()(),s["\u0275eld"](6,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Vl)),s["\u0275did"](8,16384,null,0,mn.d,[mn.f,s.ViewContainerRef,s.TemplateRef],null,null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0)},function(t,e){var n=e.component;t(e,0,0,s["\u0275nov"](e,2).dropup,s["\u0275nov"](e,2).isOpen,s["\u0275nov"](e,2).isOpen&&s["\u0275nov"](e,2).isBs4),t(e,3,0,!0,s["\u0275nov"](e,4).isDisabled,s["\u0275nov"](e,4).isOpen),t(e,5,0,n.supportedLanguages[n.selectedLanguage])})}function Bl(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,["",""]))],function(t,e){t(e,1,0,e.context.$implicit.key),t(e,2,0,e.context.$implicit.key)},function(t,e){t(e,3,0,e.context.$implicit.value)})}function Ul(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,9,"select",[["class","form-control"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,1).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,1).onTouched()&&a),"change"===e&&(a=!1!==r.changeLanguage(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedLanguage=n)&&a),a},null,null)),s["\u0275did"](1,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](3,671744,null,0,we.u,[[8,null],[8,null],[8,null],[6,we.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](5,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](6,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,2,null,Bl)),s["\u0275did"](8,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["\u0275pid"](0,i.KeyValuePipe,[s.KeyValueDiffers])],function(t,e){var n=e.component;t(e,3,0,n.selectedLanguage),t(e,8,0,s["\u0275unv"](e,8,0,s["\u0275nov"](e,9).transform(n.supportedLanguages)))},function(t,e){t(e,0,0,s["\u0275nov"](e,5).ngClassUntouched,s["\u0275nov"](e,5).ngClassTouched,s["\u0275nov"](e,5).ngClassPristine,s["\u0275nov"](e,5).ngClassDirty,s["\u0275nov"](e,5).ngClassValid,s["\u0275nov"](e,5).ngClassInvalid,s["\u0275nov"](e,5).ngClassPending)})}function Wl(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Hl)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ul)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.isDropdown),t(e,3,0,!n.isDropdown)},null)}var Kl=n("IZUe"),$l=n("D4zM"),Zl=n("DSvg"),Xl=function(){return function(){}}(),Jl=function(){function t(t,e,n,a,r){this.authService=t,this.authStorageService=e,this.bsModalService=n,this.route=a,this.router=r,this.model=new Xl,this.isLoginActive=!1}return t.prototype.ngOnInit=function(){var t=this;if(this.authStorageService.isLoggedIn())this.router.navigate([""]);else{for(var e=this.bsModalService.getModalsCount(),n=1;n<=e;n++)this.bsModalService.hide(n);var a=null;if(-1!==window.location.hash.indexOf("access_token=")){a=window.location.hash.split("access_token=")[1];var r=window.location.toString();window.history.replaceState({},document.title,r.split("?")[0])}this.authService.check(a).subscribe(function(e){e.login_url?"#/login"===e.login_url?t.isLoginActive=!0:window.location.replace(e.login_url):(t.authStorageService.set(e.username,e.permissions),t.router.navigate([""]))})}},t.prototype.login=function(){var t=this;this.authService.login(this.model).then(function(){var e=pt.get(t.route.snapshot.queryParams,"returnUrl","/");t.router.navigate([e])})},t}(),Ql=s["\u0275crt"]({encapsulation:0,styles:[[".login{height:100%} .login .row{color:#fff;background-color:#374249} .login h1{margin-top:0;margin-bottom:30px} .login .btn-password, .login .form-control{color:#fff;background-color:#555} .login .btn-password:focus{outline-color:#2b99a8} .login .checkbox-primary input[type=checkbox]:checked+label::before, .login .checkbox-primary input[type=radio]:checked+label::before{background-color:#2b99a8;border-color:#2b99a8}"]],data:{}});function td(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"div",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Username is required"]))],null,null)}function ed(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"div",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Password is required"]))],null,null)}function nd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,49,"div",[["class","login"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,48,"div",[["class","row full-height vertical-align"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"div",[["class","col-sm-6 hidden-xs"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,0,"img",[["alt","Ceph"],["class","pull-right"],["src","assets/Ceph_Logo_Stacked_RGB_White_120411_fa_256x256.png"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,45,"div",[["class","col-xs-10 col-sm-4 col-lg-3 col-xs-offset-1 col-sm-offset-0 col-md-offset-0 col-lg-offset-0"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Welcome to Ceph!"])),(t()(),s["\u0275eld"](7,0,null,null,42,"form",[["name","loginForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngSubmit"],[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0,r=t.component;return"submit"===e&&(a=!1!==s["\u0275nov"](t,9).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,9).onReset()&&a),"ngSubmit"===e&&(a=!1!==r.login()&&a),a},null,null)),s["\u0275did"](8,16384,null,0,we.D,[],null,null),s["\u0275did"](9,4210688,[["loginForm",4]],0,we.t,[[8,null],[8,null]],null,{ngSubmit:"ngSubmit"}),s["\u0275prd"](2048,null,we.d,null,[we.t]),s["\u0275did"](11,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](12,0,null,null,2,"div",[["class","form-group has-feedback"]],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,1,"cd-language-selector",[],null,null,null,Wl,Gl)),s["\u0275did"](14,114688,null,0,zl,[Rr.j,jl],{isDropdown:[0,"isDropdown"]},null),(t()(),s["\u0275eld"](15,0,null,null,14,"div",[["class","form-group has-feedback"]],null,null,null,null,null)),s["\u0275did"](16,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](17,{"has-error":0}),(t()(),s["\u0275eld"](18,0,null,null,9,"input",[["autofocus",""],["class","form-control"],["name","username"],["placeholder","Enter your username..."],["required",""],["type","text"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["\u0275nov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.username=n)&&a),a},null,null)),s["\u0275did"](19,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275did"](20,16384,null,0,we.y,[],{required:[0,"required"]},null),s["\u0275prd"](1024,null,we.o,function(t){return[t]},[we.y]),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](23,671744,[["username",4]],0,we.u,[[2,we.d],[6,we.o],[8,null],[6,we.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](25,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](26,4210688,null,0,Kl.a,[s.ElementRef],null,null),s["\u0275did"](27,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,td)),s["\u0275did"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](30,0,null,null,17,"div",[["class","form-group has-feedback"]],null,null,null,null,null)),s["\u0275did"](31,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](32,{"has-error":0}),(t()(),s["\u0275eld"](33,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](34,0,null,null,8,"input",[["class","form-control"],["id","password"],["name","password"],["placeholder","Enter your password..."],["required",""],["type","password"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["\u0275nov"](t,35)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,35).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,35)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,35)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.password=n)&&a),a},null,null)),s["\u0275did"](35,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275did"](36,16384,null,0,we.y,[],{required:[0,"required"]},null),s["\u0275prd"](1024,null,we.o,function(t){return[t]},[we.y]),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](39,671744,[["password",4]],0,we.u,[[2,we.d],[6,we.o],[8,null],[6,we.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),s["\u0275prd"](2048,null,we.q,null,[we.u]),s["\u0275did"](41,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](42,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](43,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),s["\u0275eld"](44,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-default btn-password"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,45).onClick()&&a),a},null,null)),s["\u0275did"](45,81920,null,0,$l.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ed)),s["\u0275did"](47,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](48,0,null,null,1,"input",[["class","btn btn-primary btn-block"],["type","submit"],["value","Login"]],[[8,"disabled",0]],null,null,null,null)),s["\u0275did"](49,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null)],function(t,e){var n=e.component;t(e,14,0,!1);var a=t(e,17,0,(s["\u0275nov"](e,9).submitted||s["\u0275nov"](e,23).dirty)&&s["\u0275nov"](e,23).invalid);t(e,16,0,"form-group has-feedback",a),t(e,20,0,""),t(e,23,0,"username",n.model.username),t(e,29,0,(s["\u0275nov"](e,9).submitted||s["\u0275nov"](e,23).dirty)&&s["\u0275nov"](e,23).invalid);var r=t(e,32,0,(s["\u0275nov"](e,9).submitted||s["\u0275nov"](e,39).dirty)&&s["\u0275nov"](e,39).invalid);t(e,31,0,"form-group has-feedback",r),t(e,36,0,""),t(e,39,0,"password",n.model.password),t(e,45,0,"password"),t(e,47,0,(s["\u0275nov"](e,9).submitted||s["\u0275nov"](e,39).dirty)&&s["\u0275nov"](e,39).invalid)},function(t,e){t(e,7,0,s["\u0275nov"](e,11).ngClassUntouched,s["\u0275nov"](e,11).ngClassTouched,s["\u0275nov"](e,11).ngClassPristine,s["\u0275nov"](e,11).ngClassDirty,s["\u0275nov"](e,11).ngClassValid,s["\u0275nov"](e,11).ngClassInvalid,s["\u0275nov"](e,11).ngClassPending),t(e,18,0,s["\u0275nov"](e,20).required?"":null,s["\u0275nov"](e,25).ngClassUntouched,s["\u0275nov"](e,25).ngClassTouched,s["\u0275nov"](e,25).ngClassPristine,s["\u0275nov"](e,25).ngClassDirty,s["\u0275nov"](e,25).ngClassValid,s["\u0275nov"](e,25).ngClassInvalid,s["\u0275nov"](e,25).ngClassPending),t(e,34,0,s["\u0275nov"](e,36).required?"":null,s["\u0275nov"](e,41).ngClassUntouched,s["\u0275nov"](e,41).ngClassTouched,s["\u0275nov"](e,41).ngClassPristine,s["\u0275nov"](e,41).ngClassDirty,s["\u0275nov"](e,41).ngClassValid,s["\u0275nov"](e,41).ngClassInvalid,s["\u0275nov"](e,41).ngClassPending),t(e,48,0,s["\u0275nov"](e,9).invalid)})}function ad(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,nd)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.isLoginActive)},null)}function rd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-login",[],null,null,null,ad,Ql)),s["\u0275did"](1,114688,null,0,Jl,[Zl.a,d.a,ha.b,et.a,et.l],null,null)],function(t,e){t(e,1,0)},null)}var id=s["\u0275ccf"]("cd-login",Jl,rd,{},{},[]),sd=function(){return function(){}}(),od=s["\u0275crt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large;font-family:monospace}h2[_ngcontent-%COMP%]{font-size:xx-large;font-family:monospace}i[_ngcontent-%COMP%]{font-size:200px}"]],data:{}});function ud(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,5,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Forbidden"])),(t()(),s["\u0275eld"](4,0,null,null,0,"i",[["class","fa fa-lock text-danger"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,1,"h2",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Sorry, you are not allowed to see what you were looking for."]))],null,null)}function cd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-forbidden",[],null,null,null,ud,od)),s["\u0275did"](1,49152,null,0,sd,[],null,null)],null,null)}var ld=s["\u0275ccf"]("cd-forbidden",sd,cd,{},{},[]),dd=function(){return function(){}}(),fd=s["\u0275crt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function pd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,11,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,10,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Sorry, we could not find what you were looking for"])),(t()(),s["\u0275eld"](4,0,null,null,0,"img",[["class","img-responsive center-block img-rounded"],["src","assets/1280px-Nautilus_Octopus.jpg"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[' "'])),(t()(),s["\u0275eld"](7,0,null,null,1,"a",[["href","https://www.flickr.com/photos/146401137@N06/40335060661"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Nautilus Octopus"])),(t()(),s["\u0275ted"](-1,null,['" by Jin Kemoole is licensed under '])),(t()(),s["\u0275eld"](10,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/2.0/"],["rel","nofollow"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["CC BY 2.0"]))],null,null)}function hd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-not-found",[],null,null,null,pd,fd)),s["\u0275did"](1,49152,null,0,dd,[],null,null)],null,null)}var gd=s["\u0275ccf"]("cd-not-found",dd,hd,{},{},[]),bd=n("iutN"),md=n("ES0t"),yd=n("MdoF"),vd=n("Xg1U"),_d=n("z5nN"),xd=n("EEJc"),Td=n("PEr+"),wd=n("a40w"),Sd=n("SjWX"),Od=n("Mxhz"),Id=function(){function t(t,e,n,a){this.modalRef=t,this.summaryService=e,this.userService=n,this.authStorageService=a,this.userPermission=this.authStorageService.getPermissions().user}return t.prototype.ngOnInit=function(){var t=this;this.copyright="Copyright(c) 2021 Ceph contributors.",this.projectConstants=Xn.c,this.hostAddr=window.location.hostname,this.modalVariables=this.setVariables(),this.subs=this.summaryService.subscribe(function(e){if(e){var n=e.version.replace("ceph version ","").split(" ");t.hostAddr=e.mgr_host.replace(/(^\w+:|^)\/\//,"").replace(/\/$/,""),t.versionNumber=n[0],t.versionHash=n[1],t.versionName=n.slice(2,n.length).join(" ")}})},t.prototype.ngOnDestroy=function(){this.subs.unsubscribe()},t.prototype.setVariables=function(){var t={};t.user=localStorage.getItem("dashboard_username"),t.role="user",this.userPermission.read&&this.userService.get(t.user).subscribe(function(e){t.role=e.roles});var e=Object(Sd.detect)();return t.browserName=e&&e.name?e.name:"Not detected",t.browserVersion=e&&e.version?e.version:"Not detected",t.browserOS=e&&e.os?e.os:"Not detected",t},t}(),Cd=s["\u0275crt"]({encapsulation:0,styles:[[".product-versions[_ngcontent-%COMP%]{margin-top:30px}.product-versions[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{margin-right:10px}.modal-header[_ngcontent-%COMP%]{border-bottom:none}.modal-body[_ngcontent-%COMP%]{padding-left:80px;padding-right:80px}.modal-footer[_ngcontent-%COMP%]{border-top:none;padding:15px 80px 35px}h2[_ngcontent-%COMP%]{font-size:3em}.ceph-logo[_ngcontent-%COMP%]{width:10%}.list-unstyled[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-top:5px}.modal-body[_ngcontent-%COMP%]{margin-top:0;padding-top:0}.modal-body[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin-top:0}"]],data:{}});function kd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.modalRef.hide()&&a),a},null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xd7"])),(t()(),s["\u0275eld"](4,0,null,null,45,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,2,"h2",[],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,0,"img",[["class","ceph-logo"],["src","assets/Ceph_Logo_Stacked_RGB_120411_fa_348x348.png"]],[[8,"alt",0]],null,null,null,null)),(t()(),s["\u0275ted"](7,null,[" "," "])),(t()(),s["\u0275eld"](8,0,null,null,2,"h3",[],null,null,null,null,null)),(t()(),s["\u0275eld"](9,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](10,null,["",""])),(t()(),s["\u0275eld"](11,0,null,null,6,"div",[["class","product-versions"]],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Version"])),(t()(),s["\u0275eld"](14,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275ted"](15,null,[" "," "," "])),(t()(),s["\u0275eld"](16,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275ted"](17,null,[" "," "])),(t()(),s["\u0275eld"](18,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,30,"ul",[["class","list-unstyled"]],null,null,null,null,null)),(t()(),s["\u0275eld"](20,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](21,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Ceph Manager"])),(t()(),s["\u0275eld"](23,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](24,null,["",""])),(t()(),s["\u0275eld"](25,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](26,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["User"])),(t()(),s["\u0275eld"](28,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](29,null,["",""])),(t()(),s["\u0275eld"](30,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](31,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["User Role"])),(t()(),s["\u0275eld"](33,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](34,null,["",""])),(t()(),s["\u0275eld"](35,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](36,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Browser"])),(t()(),s["\u0275eld"](38,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](39,null,["",""])),(t()(),s["\u0275eld"](40,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](41,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Browser Version"])),(t()(),s["\u0275eld"](43,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](44,null,["",""])),(t()(),s["\u0275eld"](45,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](46,0,null,null,1,"strong",[["class","col-xs-6 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Browser OS"])),(t()(),s["\u0275eld"](48,0,null,null,1,"span",[["class","col-xs-4 col-sm-4"]],null,null,null,null,null)),(t()(),s["\u0275ted"](49,null,["",""])),(t()(),s["\u0275eld"](50,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](51,0,null,null,1,"div",[["class","text-left"]],null,null,null,null,null)),(t()(),s["\u0275ted"](52,null,[" "," "," "]))],null,function(t,e){var n=e.component;t(e,6,0,s["\u0275inlineInterpolate"](1,"",n.projectConstants.organization,"")),t(e,7,0,n.projectConstants.organization),t(e,10,0,n.projectConstants.projectName),t(e,15,0,n.versionNumber,n.versionHash),t(e,17,0,n.versionName),t(e,24,0,n.hostAddr),t(e,29,0,n.modalVariables.user),t(e,34,0,n.modalVariables.role),t(e,39,0,n.modalVariables.browserName),t(e,44,0,n.modalVariables.browserVersion),t(e,49,0,n.modalVariables.browserOS),t(e,52,0,n.copyright,n.projectConstants.license)})}function Nd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-about",[],null,null,null,kd,Cd)),s["\u0275did"](1,245760,null,0,Id,[ha.a,Fe.a,Od.a,d.a],null,null)],function(t,e){t(e,1,0)},null)}var Rd=s["\u0275ccf"]("cd-about",Id,Nd,{},{},[]),Ad=n("atuK"),Dd=s["\u0275crt"]({encapsulation:0,styles:[".dropdown[_nghost-%COMP%] {\n z-index: 1000;\n }"],data:{animation:[{type:7,name:"typeaheadAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function Ed(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](0,null,null,0))],null,null)}function Ld(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,function(t,e){t(e,0,0,e.component.highlight(e.context.match,e.context.query))})}function Pd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,[[2,0],["liElements",1]],null,1,"li",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit)})}function Md(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](0,null,null,0))],null,null)}function qd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,[[2,0],["liElements",1]],null,4,"li",[],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"@typeaheadAnimation.done"],[null,"mouseenter"]],function(t,e,n){var a=!0,r=t.component;return"@typeaheadAnimation.done"===e&&(a=!1!==r.positionServiceEnable()&&a),"mouseenter"===e&&(a=!1!==r.selectActive(t.parent.context.$implicit)&&a),a},null,null)),(t()(),s["\u0275eld"](1,0,null,null,3,"a",[["href","#"],["tabindex","-1"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectMatch(t.parent.context.$implicit,n)&&a),a},null,null)),(t()(),s["\u0275and"](16777216,null,null,2,null,Md)),s["\u0275did"](3,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),s["\u0275pod"](4,{item:0,index:1,match:2,query:3})],function(t,e){var n=e.component,a=t(e,4,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,3,0,a,n.itemTemplate||s["\u0275nov"](e.parent.parent.parent,5))},function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))})}function jd(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Pd)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,qd)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)},null)}function Fd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,[[1,0],["ulElement",1]],null,2,"ul",[["class","dropdown-menu"]],[[4,"overflow-y",null],[4,"height",null]],null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,jd)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.matches)},function(t,e){var n=e.component;t(e,0,0,n.needScrollbar?"scroll":"auto",n.needScrollbar?n.guiHeight:"auto")})}function zd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"h6",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit)})}function Gd(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](0,null,null,0))],null,null)}function Yd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,[[2,0],["liElements",1]],null,3,"button",[["class","dropdown-item"]],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"@typeaheadAnimation.done"],[null,"click"],[null,"mouseenter"]],function(t,e,n){var a=!0,r=t.component;return"@typeaheadAnimation.done"===e&&(a=!1!==r.positionServiceEnable()&&a),"click"===e&&(a=!1!==r.selectMatch(t.parent.context.$implicit,n)&&a),"mouseenter"===e&&(a=!1!==r.selectActive(t.parent.context.$implicit)&&a),a},null,null)),(t()(),s["\u0275and"](16777216,null,null,2,null,Gd)),s["\u0275did"](2,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),s["\u0275pod"](3,{item:0,index:1,match:2,query:3})],function(t,e){var n=e.component,a=t(e,3,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,2,0,a,n.itemTemplate||s["\u0275nov"](e.parent.parent.parent,5))},function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))})}function Vd(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,zd)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Yd)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)},null)}function Hd(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Vd)),s["\u0275did"](1,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.component.matches)},null)}function Bd(t){return s["\u0275vid"](0,[s["\u0275qud"](671088640,1,{ulElement:0}),s["\u0275qud"](671088640,2,{liElements:1}),(t()(),s["\u0275and"](16777216,null,null,2,null,Ed)),s["\u0275did"](3,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),s["\u0275pod"](4,{matches:0,itemTemplate:1,query:2}),(t()(),s["\u0275and"](0,[["bsItemTemplate",2]],null,0,null,Ld)),(t()(),s["\u0275and"](0,[["bs3Template",2]],null,0,null,Fd)),(t()(),s["\u0275and"](0,[["bs4Template",2]],null,0,null,Hd))],function(t,e){var n=e.component,a=t(e,4,0,n.matches,n.itemTemplate,n.query);t(e,3,0,a,n.optionsListTemplate||s["\u0275nov"](e,n.isBs4?7:6))},null)}function Ud(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"typeahead-container",[["class","dropdown open bottom"],["style","position: absolute;display: block;"]],[[2,"dropdown-menu",null],[4,"overflow-y",null],[4,"height",null],[4,"visibility",null],[2,"dropup",null]],[[null,"mouseleave"],[null,"blur"]],function(t,e,n){var a=!0;return"mouseleave"===e&&(a=!1!==s["\u0275nov"](t,1).focusLost()&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,1).focusLost()&&a),a},Bd,Dd)),s["\u0275did"](1,49152,null,0,Qu,[tt.a,s.Renderer2,s.ElementRef],null,null)],null,function(t,e){t(e,0,0,s["\u0275nov"](e,1).isBs4,s["\u0275nov"](e,1).isBs4&&s["\u0275nov"](e,1).needScrollbar?"scroll":"visible",s["\u0275nov"](e,1).isBs4&&s["\u0275nov"](e,1).needScrollbar?s["\u0275nov"](e,1).guiHeight:"auto",s["\u0275nov"](e,1).visibility,s["\u0275nov"](e,1).dropup)})}var Wd=s["\u0275ccf"]("typeahead-container",Qu,Ud,{},{},[]),Kd=n("ajRT"),$d=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Zd(t){return s["\u0275vid"](0,[(t()(),s["\u0275ted"](-1,null,["Deep "]))],null,null)}function Xd(t){return s["\u0275vid"](0,[(t()(),s["\u0275ted"](-1,null,["deep "]))],null,null)}function Jd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,10,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,9,"p",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["You are about to apply a "])),(t()(),s["\u0275eld"](3,0,null,null,3,null,null,null,null,null,null,null)),s["\u0275did"](4,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Xd)),s["\u0275did"](6,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["\u0275ted"](-1,null,["scrub to the OSD "])),(t()(),s["\u0275eld"](8,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](9,null,["",""])),(t()(),s["\u0275ted"](-1,null,["."]))],function(t,e){t(e,4,0,e.component.deep),t(e,6,0,"1")},function(t,e){t(e,9,0,e.component.selected[0].id)})}function Qd(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,23,"cd-modal",[],null,null,null,xd.c,xd.b)),s["\u0275did"](1,49152,null,0,Kd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["\u0275eld"](2,0,null,0,6,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["OSDs "])),(t()(),s["\u0275eld"](4,0,null,null,3,null,null,null,null,null,null,null)),s["\u0275did"](5,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Zd)),s["\u0275did"](7,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["\u0275ted"](-1,null,["Scrub"])),(t()(),s["\u0275eld"](9,0,null,1,14,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,13,"form",[["class","form-horizontal"],["name","scrubForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,12).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,12).onReset()&&a),a},null,null)),s["\u0275did"](11,16384,null,0,we.D,[],null,null),s["\u0275did"](12,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](14,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](15,0,null,null,2,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Jd)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](18,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.scrub()&&a),a},Za.b,Za.a)),s["\u0275did"](20,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["\u0275ted"](-1,0,["Submit"])),(t()(),s["\u0275eld"](22,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Ja.b,Ja.a)),s["\u0275did"](23,49152,null,0,Qa.a,[i.Location,Xn.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,5,0,n.deep),t(e,7,0,"1"),t(e,12,0,n.scrubForm),t(e,17,0,1===n.selected.length),t(e,20,0,n.scrubForm),t(e,23,0,"Cancel",n.bsModalRef.hide)},function(t,e){t(e,10,0,s["\u0275nov"](e,14).ngClassUntouched,s["\u0275nov"](e,14).ngClassTouched,s["\u0275nov"](e,14).ngClassPristine,s["\u0275nov"](e,14).ngClassDirty,s["\u0275nov"](e,14).ngClassValid,s["\u0275nov"](e,14).ngClassInvalid,s["\u0275nov"](e,14).ngClassPending)})}function tf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-osd-scrub-modal",[],null,null,null,Qd,$d)),s["\u0275did"](1,114688,null,0,fa,[ha.a,Pn,Qn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var ef=s["\u0275ccf"]("cd-osd-scrub-modal",fa,tf,{},{},[]),nf=s["\u0275crt"]({encapsulation:0,styles:[[".osd-modal[_ngcontent-%COMP%] .oa-hr-small[_ngcontent-%COMP%]{margin:5px}"]],data:{}});function af(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"hr",[["class","oa-hr-small"]],null,null,null,null,null))],null,null)}function rf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,10,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"input",[["type","checkbox"]],[[8,"checked",0],[8,"name",0],[8,"id",0],[8,"disabled",0]],[[null,"change"]],function(t,e,n){var a=!0;return"change"===e&&(a=0!=(t.context.$implicit.value=!t.context.$implicit.value)&&a),a},null,null)),s["\u0275did"](2,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](3,0,null,null,5,"label",[["ng-class","['tc_' + key]"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](5,null,["",""])),(t()(),s["\u0275eld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),s["\u0275ted"](8,null,["",""])),(t()(),s["\u0275and"](16777216,null,null,1,null,af)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,10,0,!e.context.last)},function(t,e){t(e,1,0,e.context.$implicit.value,e.context.$implicit.code,e.context.$implicit.code,e.context.$implicit.disabled),t(e,3,0,e.context.$implicit.code),t(e,5,0,e.context.$implicit.name),t(e,8,0,e.context.$implicit.description)})}function sf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Za.b,Za.a)),s["\u0275did"](1,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["\u0275ted"](-1,0,["Submit"]))],function(t,e){t(e,1,0,e.component.osdFlagsForm)},null)}function of(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,19,"cd-modal",[],null,null,null,xd.c,xd.b)),s["\u0275did"](1,49152,null,0,Kd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Cluster-wide OSD Flags"])),(t()(),s["\u0275eld"](4,0,null,1,15,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,14,"form",[["cdFormScope","osd"],["name","osdFlagsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,8).onReset()&&a),a},null,null)),s["\u0275did"](6,16384,null,0,Oe.a,[],{cdFormScope:[0,"cdFormScope"]},null),s["\u0275did"](7,16384,null,0,we.D,[],null,null),s["\u0275did"](8,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](10,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](11,0,null,null,2,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,rf)),s["\u0275did"](13,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275eld"](14,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](15,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,sf)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](18,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Ja.b,Ja.a)),s["\u0275did"](19,49152,null,0,Qa.a,[i.Location,Xn.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,6,0,"osd"),t(e,8,0,n.osdFlagsForm),t(e,13,0,n.flags),t(e,17,0,n.permissions.osd.update),t(e,19,0,"Cancel",n.bsModalRef.hide)},function(t,e){t(e,5,0,s["\u0275nov"](e,10).ngClassUntouched,s["\u0275nov"](e,10).ngClassTouched,s["\u0275nov"](e,10).ngClassPristine,s["\u0275nov"](e,10).ngClassDirty,s["\u0275nov"](e,10).ngClassValid,s["\u0275nov"](e,10).ngClassInvalid,s["\u0275nov"](e,10).ngClassPending)})}function uf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-osd-flags-modal",[],null,null,null,of,nf)),s["\u0275did"](1,114688,null,0,ta,[ha.a,d.a,Pn,Qn.a,Tt.a],null,null)],function(t,e){t(e,1,0)},null)}var cf=s["\u0275ccf"]("cd-osd-flags-modal",ta,uf,{},{},[]),lf=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function df(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)},function(t,e){t(e,3,0,e.context.$implicit.text)})}function ff(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["This field is required."]))],null,null)}function pf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-helper",[],null,null,null,Ns.b,Ns.a)),s["\u0275did"](1,49152,null,0,Rs.a,[],null,null),(t()(),s["\u0275ted"](2,0,["",""]))],null,function(t,e){t(e,2,0,e.parent.context.$implicit.value.desc)})}function hf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"span",[["class","required"]],null,null,null,null,null))],null,null)}function gf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function bf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.value.patternHelpText)})}function mf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.value.maxValue)})}function yf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.value.minValue)})}function vf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,25,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,5,"label",[["class","control-label col-sm-6"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["\u0275ted"](4,null,[""," "])),(t()(),s["\u0275and"](16777216,null,null,1,null,pf)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,hf)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](9,0,null,null,16,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,12)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,12).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,12)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,12)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["\u0275nov"](t,13).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["\u0275nov"](t,13).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,13).onTouched()&&a),a},null,null)),s["\u0275did"](11,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](12,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275did"](13,16384,null,0,we.C,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),s["\u0275did"](15,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](17,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,gf)),s["\u0275did"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,bf)),s["\u0275did"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,mf)),s["\u0275did"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,yf)),s["\u0275did"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["\u0275nov"](e.parent,8)));t(e,1,0,"form-group",a),t(e,6,0,e.context.$implicit.value.desc),t(e,8,0,n.osdRecvSpeedForm.getValue("customizePriority")),t(e,15,0,e.context.$implicit.key),t(e,19,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["\u0275nov"](e.parent,8),"required")),t(e,21,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["\u0275nov"](e.parent,8),"pattern")),t(e,23,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["\u0275nov"](e.parent,8),"max")),t(e,25,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["\u0275nov"](e.parent,8),"min"))},function(t,e){var n=e.component;t(e,3,0,e.context.$implicit.key),t(e,4,0,e.context.$implicit.value.text),t(e,10,0,e.context.$implicit.key,!n.osdRecvSpeedForm.getValue("customizePriority"),s["\u0275nov"](e,17).ngClassUntouched,s["\u0275nov"](e,17).ngClassTouched,s["\u0275nov"](e,17).ngClassPristine,s["\u0275nov"](e,17).ngClassDirty,s["\u0275nov"](e,17).ngClassValid,s["\u0275nov"](e,17).ngClassInvalid,s["\u0275nov"](e,17).ngClassPending)})}function _f(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Za.b,Za.a)),s["\u0275did"](1,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["\u0275ted"](-1,0,["Submit"]))],function(t,e){t(e,1,0,e.component.osdRecvSpeedForm)},null)}function xf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,51,"cd-modal",[],null,null,null,xd.c,xd.b)),s["\u0275did"](1,49152,null,0,Kd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["OSD Recovery Priority"])),(t()(),s["\u0275eld"](4,0,null,1,47,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,46,"form",[["cdFormScope","osd"],["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,8).onReset()&&a),a},null,null)),s["\u0275did"](6,16384,null,0,Oe.a,[],{cdFormScope:[0,"cdFormScope"]},null),s["\u0275did"](7,16384,null,0,we.D,[],null,null),s["\u0275did"](8,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](10,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](11,0,null,null,34,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](13,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](14,{"has-error":0}),(t()(),s["\u0275eld"](15,0,null,null,3,"label",[["class","control-label col-sm-6"],["for","priority"]],null,null,null,null,null)),(t()(),s["\u0275eld"](16,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Priority"])),(t()(),s["\u0275eld"](18,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,11,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](20,0,null,null,8,"select",[["class","form-control"],["formControlName","priority"],["id","priority"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,22).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,22).onTouched()&&a),"change"===e&&(a=!1!==r.onPriorityChange(n.target.value)&&a),a},null,null)),s["\u0275did"](21,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](22,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](24,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](26,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,df)),s["\u0275did"](28,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ff)),s["\u0275did"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](31,0,null,null,11,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](32,0,null,null,10,"div",[["class","col-sm-offset-6 col-sm-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](33,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](34,0,null,null,6,"input",[["formControlName","customizePriority"],["id","customizePriority"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["\u0275nov"](t,36).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,36).onTouched()&&a),"change"===e&&(a=!1!==r.onCustomizePriorityChange()&&a),a},null,null)),s["\u0275did"](35,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](36,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](38,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](40,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275eld"](41,0,null,null,1,"label",[["for","customizePriority"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Customize priority values"])),(t()(),s["\u0275and"](16777216,null,null,2,null,vf)),s["\u0275did"](44,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["\u0275pid"](0,i.KeyValuePipe,[s.KeyValueDiffers]),(t()(),s["\u0275eld"](46,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](47,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,_f)),s["\u0275did"](49,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](50,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Ja.b,Ja.a)),s["\u0275did"](51,49152,null,0,Qa.a,[i.Location,Xn.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,6,0,"osd"),t(e,8,0,n.osdRecvSpeedForm);var a=t(e,14,0,n.osdRecvSpeedForm.showError("priority",s["\u0275nov"](e,8)));t(e,13,0,"form-group",a),t(e,24,0,"priority"),t(e,28,0,n.priorities),t(e,30,0,n.osdRecvSpeedForm.showError("priority",s["\u0275nov"](e,8),"required")),t(e,38,0,"customizePriority"),t(e,44,0,s["\u0275unv"](e,44,0,s["\u0275nov"](e,45).transform(n.priorityAttrs))),t(e,49,0,n.permissions.configOpt.update),t(e,51,0,"Cancel",n.bsModalRef.hide)},function(t,e){t(e,5,0,s["\u0275nov"](e,10).ngClassUntouched,s["\u0275nov"](e,10).ngClassTouched,s["\u0275nov"](e,10).ngClassPristine,s["\u0275nov"](e,10).ngClassDirty,s["\u0275nov"](e,10).ngClassValid,s["\u0275nov"](e,10).ngClassInvalid,s["\u0275nov"](e,10).ngClassPending),t(e,20,0,s["\u0275nov"](e,26).ngClassUntouched,s["\u0275nov"](e,26).ngClassTouched,s["\u0275nov"](e,26).ngClassPristine,s["\u0275nov"](e,26).ngClassDirty,s["\u0275nov"](e,26).ngClassValid,s["\u0275nov"](e,26).ngClassInvalid,s["\u0275nov"](e,26).ngClassPending),t(e,34,0,s["\u0275nov"](e,40).ngClassUntouched,s["\u0275nov"](e,40).ngClassTouched,s["\u0275nov"](e,40).ngClassPristine,s["\u0275nov"](e,40).ngClassDirty,s["\u0275nov"](e,40).ngClassValid,s["\u0275nov"](e,40).ngClassInvalid,s["\u0275nov"](e,40).ngClassPending)})}function Tf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-osd-recv-speed-modal",[],null,null,null,xf,lf)),s["\u0275did"](1,114688,null,0,ca,[ha.a,d.a,na.a,Qn.a,Tt.a,Pn],null,null)],function(t,e){t(e,1,0)},null)}var wf=s["\u0275ccf"]("cd-osd-recv-speed-modal",ca,Tf,{},{},[]),Sf=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Of(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["This field is required."]))],null,null)}function If(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["The value needs to be between 0 and 1."]))],null,null)}function Cf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Of)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,If)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,null==n.weight.errors?null:n.weight.errors.required),t(e,4,0,(null==n.weight.errors?null:n.weight.errors.max)||(null==n.weight.errors?null:n.weight.errors.min))},null)}function kf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,32,"cd-modal",[],null,null,null,xd.c,xd.b)),s["\u0275did"](1,49152,null,0,Kd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["\u0275eld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Reweight OSD"])),(t()(),s["\u0275eld"](4,0,null,1,28,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,27,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,7).onReset()&&a),a},null,null)),s["\u0275did"](6,16384,null,0,we.D,[],null,null),s["\u0275did"](7,540672,null,0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](9,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](10,0,null,null,16,"div",[["class","modal-body"]],null,null,null,null,null)),s["\u0275did"](11,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](12,{"has-error":0}),(t()(),s["\u0275eld"](13,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](14,0,null,null,1,"label",[["class","col-sm-2 control-label"],["for","weight"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Weight"])),(t()(),s["\u0275eld"](16,0,null,null,10,"div",[["class","col-sm-10"]],null,null,null,null,null)),(t()(),s["\u0275eld"](17,0,null,null,7,"input",[["class","form-control"],["formControlName","weight"],["id","weight"],["max","1"],["min","0"],["step","0.1"],["type","number"]],[[8,"value",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,19)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["\u0275nov"](t,20).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["\u0275nov"](t,20).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,20).onTouched()&&a),a},null,null)),s["\u0275did"](18,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](19,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275did"](20,16384,null,0,we.C,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t,e){return[t,e]},[we.e,we.C]),s["\u0275did"](22,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](24,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Cf)),s["\u0275did"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](27,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](28,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.reweight()&&a),a},Za.b,Za.a)),s["\u0275did"](29,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),s["\u0275ted"](-1,0,["Reweight"])),(t()(),s["\u0275eld"](31,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Ja.b,Ja.a)),s["\u0275did"](32,49152,null,0,Qa.a,[i.Location,Xn.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.reweightForm);var a=t(e,12,0,n.weight.errors);t(e,11,0,"modal-body",a),t(e,22,0,"weight"),t(e,26,0,n.weight.errors),t(e,29,0,n.reweightForm,n.reweightForm.invalid),t(e,32,0,"Cancel",n.bsModalRef.hide)},function(t,e){var n=e.component;t(e,5,0,s["\u0275nov"](e,9).ngClassUntouched,s["\u0275nov"](e,9).ngClassTouched,s["\u0275nov"](e,9).ngClassPristine,s["\u0275nov"](e,9).ngClassDirty,s["\u0275nov"](e,9).ngClassValid,s["\u0275nov"](e,9).ngClassInvalid,s["\u0275nov"](e,9).ngClassPending),t(e,17,0,n.currentWeight,s["\u0275nov"](e,24).ngClassUntouched,s["\u0275nov"](e,24).ngClassTouched,s["\u0275nov"](e,24).ngClassPristine,s["\u0275nov"](e,24).ngClassDirty,s["\u0275nov"](e,24).ngClassValid,s["\u0275nov"](e,24).ngClassInvalid,s["\u0275nov"](e,24).ngClassPending)})}function Nf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-osd-reweight-modal",[],null,null,null,kf,Sf)),s["\u0275did"](1,114688,null,0,da,[ha.a,Pn,la.a],null,null)],function(t,e){t(e,1,0)},null)}var Rf=s["\u0275ccf"]("cd-osd-reweight-modal",da,Nf,{},{},[]),Af=s["\u0275crt"]({encapsulation:0,styles:[["hr[_ngcontent-%COMP%]{margin-top:5px;margin-bottom:5px}.control-label[_ngcontent-%COMP%]{text-align:left}.checkbox-primary[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{width:23px;height:15px;margin-left:0;cursor:pointer}.checkbox-primary[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{cursor:auto}.checkbox-primary[_ngcontent-%COMP%] label[_ngcontent-%COMP%]:after, .checkbox-primary[_ngcontent-%COMP%] label[_ngcontent-%COMP%]:before{margin-left:0}.form-group[_ngcontent-%COMP%] .col-sm-6[_ngcontent-%COMP%]{padding-top:7px}"]],data:{}});function Df(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-helper",[],null,null,null,Ns.b,Ns.a)),s["\u0275did"](1,49152,null,0,Rs.a,[],null,null),(t()(),s["\u0275ted"](2,0,[" ",""]))],null,function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)})}function Ef(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,18,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,6,"label",[["class","col-sm-6 control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["\u0275ted"](4,null,[" "," "])),(t()(),s["\u0275eld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),s["\u0275ted"](7,null,[" "," "])),(t()(),s["\u0275and"](16777216,null,null,1,null,Df)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](10,0,null,null,8,"div",[["class","col-sm-6 checkbox-primary checkbox"]],null,null,null,null,null)),(t()(),s["\u0275eld"](11,0,null,null,6,"input",[["type","checkbox"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,12).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,12).onTouched()&&a),a},null,null)),s["\u0275did"](12,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](14,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](16,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](17,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](18,0,null,null,0,"label",[],null,null,null,null,null))],function(t,e){var n=e.component,a=t(e,2,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir));t(e,1,0,"form-group",a),t(e,9,0,e.parent.context.$implicit.long_desc),t(e,14,0,e.parent.context.$implicit.name)},function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,4,0,e.parent.context.$implicit.text),t(e,7,0,e.parent.context.$implicit.desc),t(e,11,0,e.parent.context.$implicit.name,s["\u0275nov"](e,16).ngClassUntouched,s["\u0275nov"](e,16).ngClassTouched,s["\u0275nov"](e,16).ngClassPristine,s["\u0275nov"](e,16).ngClassDirty,s["\u0275nov"](e,16).ngClassValid,s["\u0275nov"](e,16).ngClassInvalid,s["\u0275nov"](e,16).ngClassPending)})}function Lf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-helper",[],null,null,null,Ns.b,Ns.a)),s["\u0275did"](1,49152,null,0,Rs.a,[],null,null),(t()(),s["\u0275ted"](2,0,[" ",""]))],null,function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)})}function Pf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"span",[["class","input-group-btn"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"button",[["class","btn btn-default"],["data-toggle","button"],["title","Remove the custom configuration value. The default configuration will be inherited and used instead."],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.resetValue(t.parent.parent.context.$implicit.name)&&a),a},null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-eraser"]],null,null,null,null,null))],null,null)}function Mf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" ",""]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)})}function qf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" ",""]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)})}function jf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.maxValue)})}function Ff(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,function(t,e){t(e,1,0,e.parent.parent.context.$implicit.minValue)})}function zf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,28,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{"has-error":0}),(t()(),s["\u0275eld"](3,0,null,null,6,"label",[["class","col-sm-6 control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["\u0275ted"](4,null,[""," "])),(t()(),s["\u0275eld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),s["\u0275ted"](7,null,[" "," "])),(t()(),s["\u0275and"](16777216,null,null,1,null,Lf)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](10,0,null,null,18,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["\u0275eld"](11,0,null,null,9,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,13)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,13).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,13)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,13)._compositionEnd(n.target.value)&&a),a},null,null)),s["\u0275did"](13,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](15,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](17,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](18,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Pf)),s["\u0275did"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Mf)),s["\u0275did"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,qf)),s["\u0275did"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,jf)),s["\u0275did"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Ff)),s["\u0275did"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component,a=t(e,2,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir));t(e,1,0,"form-group",a),t(e,9,0,e.parent.context.$implicit.long_desc),t(e,15,0,e.parent.context.$implicit.name),t(e,20,0,n.optionsFormShowReset),t(e,22,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"pattern")),t(e,24,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"invalidUuid")),t(e,26,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"max")),t(e,28,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"min"))},function(t,e){var n=e.component;t(e,3,0,e.parent.context.$implicit.name),t(e,4,0,e.parent.context.$implicit.text),t(e,7,0,e.parent.context.$implicit.desc),t(e,12,1,[e.parent.context.$implicit.additionalTypeInfo.inputType,e.parent.context.$implicit.name,e.parent.context.$implicit.additionalTypeInfo.humanReadable,n.getStep(e.parent.context.$implicit.type,n.optionsForm.getValue(e.parent.context.$implicit.name)),s["\u0275nov"](e,17).ngClassUntouched,s["\u0275nov"](e,17).ngClassTouched,s["\u0275nov"](e,17).ngClassPristine,s["\u0275nov"](e,17).ngClassDirty,s["\u0275nov"](e,17).ngClassValid,s["\u0275nov"](e,17).ngClassInvalid,s["\u0275nov"](e,17).ngClassPending])})}function Gf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,"hr",[],null,null,null,null,null))],null,null)}function Yf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Ef)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,zf)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Gf)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,2,0,"bool"===e.context.$implicit.type),t(e,4,0,"bool"!==e.context.$implicit.type),t(e,6,0,!e.context.last)},null)}function Vf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"div",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,1).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,1).onReset()&&a),a},null,null)),s["\u0275did"](1,540672,null,0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](3,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275and"](16777216,null,null,1,null,Yf)),s["\u0275did"](5,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){var n=e.component;t(e,1,0,n.optionsFormGroup),t(e,5,0,n.options)},function(t,e){t(e,0,0,s["\u0275nov"](e,3).ngClassUntouched,s["\u0275nov"](e,3).ngClassTouched,s["\u0275nov"](e,3).ngClassPristine,s["\u0275nov"](e,3).ngClassDirty,s["\u0275nov"](e,3).ngClassValid,s["\u0275nov"](e,3).ngClassInvalid,s["\u0275nov"](e,3).ngClassPending)})}var Hf=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Bf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"a",[["class","pull-right margin-right-md"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.component.advancedEnabled=!0)&&a),a},null,null)),(t()(),s["\u0275ted"](-1,null,["Advanced..."]))],null,null)}function Uf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Advanced configuration options"])),(t()(),s["\u0275eld"](3,0,null,null,1,"cd-config-option",[],null,null,null,Vf,Af)),s["\u0275did"](4,114688,[[2,4],["advancedOptionsValues",4]],0,sa,[na.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null)],function(t,e){var n=e.component;t(e,4,0,n.advancedOptions,n.osdPgScrubForm,s["\u0275nov"](e.parent,14),"advancedFormGroup")},null)}function Wf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,4,"cd-submit-button",[["type","button"]],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a},Za.b,Za.a)),s["\u0275did"](1,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"],type:[1,"type"]},{submitAction:"submitAction"}),(t()(),s["\u0275ted"](2,0,[""," ",""])),s["\u0275ppd"](3,1),s["\u0275ppd"](4,1)],function(t,e){t(e,1,0,e.component.osdPgScrubForm,"button")},function(t,e){var n=e.component,a=s["\u0275unv"](e,2,0,t(e,3,0,s["\u0275nov"](e.parent,0),n.action)),r=s["\u0275unv"](e,2,1,t(e,4,0,s["\u0275nov"](e.parent,1),n.resource));t(e,2,0,a,r)})}function Kf(t){return s["\u0275vid"](0,[s["\u0275pid"](0,i.TitleCasePipe,[]),s["\u0275pid"](0,As.a,[]),s["\u0275qud"](402653184,1,{basicOptionsValues:0}),s["\u0275qud"](671088640,2,{advancedOptionsValues:0}),(t()(),s["\u0275eld"](4,0,null,null,27,"cd-modal",[],null,null,null,xd.c,xd.b)),s["\u0275did"](5,49152,null,0,Kd.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["\u0275eld"](6,0,null,0,3,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](7,null,[""," ",""])),s["\u0275ppd"](8,1),s["\u0275ppd"](9,1),(t()(),s["\u0275eld"](10,0,null,1,21,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](11,0,null,null,20,"form",[["cdFormScope","osd"],["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,14).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,14).onReset()&&a),a},null,null)),s["\u0275did"](12,16384,null,0,Oe.a,[],{cdFormScope:[0,"cdFormScope"]},null),s["\u0275did"](13,16384,null,0,we.D,[],null,null),s["\u0275did"](14,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](16,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](17,0,null,null,8,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),s["\u0275eld"](18,0,null,null,1,"cd-config-option",[],null,null,null,Vf,Af)),s["\u0275did"](19,114688,[[1,4],["basicOptionsValues",4]],0,sa,[na.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null),(t()(),s["\u0275eld"](20,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["\u0275eld"](21,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Bf)),s["\u0275did"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Uf)),s["\u0275did"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](26,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](27,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Wf)),s["\u0275did"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](30,0,null,null,1,"cd-back-button",[],null,null,null,Ja.b,Ja.a)),s["\u0275did"](31,49152,null,0,Qa.a,[i.Location,Xn.b],{back:[0,"back"]},null)],function(t,e){var n=e.component;t(e,5,0,n.bsModalRef),t(e,12,0,"osd"),t(e,14,0,n.osdPgScrubForm),t(e,19,0,n.basicOptions,n.osdPgScrubForm,s["\u0275nov"](e,14),"basicFormGroup"),t(e,23,0,!n.advancedEnabled),t(e,25,0,n.advancedEnabled),t(e,29,0,n.permissions.configOpt.update),t(e,31,0,n.bsModalRef.hide)},function(t,e){var n=e.component,a=s["\u0275unv"](e,7,0,t(e,8,0,s["\u0275nov"](e,0),n.action)),r=s["\u0275unv"](e,7,1,t(e,9,0,s["\u0275nov"](e,1),n.resource));t(e,7,0,a,r),t(e,11,0,s["\u0275nov"](e,16).ngClassUntouched,s["\u0275nov"](e,16).ngClassTouched,s["\u0275nov"](e,16).ngClassPristine,s["\u0275nov"](e,16).ngClassDirty,s["\u0275nov"](e,16).ngClassValid,s["\u0275nov"](e,16).ngClassInvalid,s["\u0275nov"](e,16).ngClassPending)})}function $f(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-osd-pg-scrub-modal",[],null,null,null,Kf,Hf)),s["\u0275did"](1,49152,null,0,ua,[ha.a,d.a,Qn.a,Tt.a,Xn.b],null,null)],null,null)}var Zf=s["\u0275ccf"]("cd-osd-pg-scrub-modal",ua,$f,{},{},[]),Xf=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Jf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](1,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{value:[0,"value"]},null),s["\u0275did"](2,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["\u0275ted"](3,null,[" "," "]))],function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)},function(t,e){t(e,3,0,e.context.$implicit)})}function Qf(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function tp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["This field is required!"]))],null,null)}function ep(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"div",[["id","match-state"]],[[8,"className",0]],null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),s["\u0275ted"](2,null,[" "," "]))],null,function(t,e){var n=e.component;t(e,0,0,s["\u0275inlineInterpolate"](1,"col-sm-offset-3 col-sm-9 ",n.matcherMatch.cssClass,"")),t(e,1,0,s["\u0275inlineInterpolate"](1,"help-block ",n.matcherMatch.cssClass,"")),t(e,2,0,n.matcherMatch.status)})}function np(t){return s["\u0275vid"](0,[(t()(),s["\u0275ted"](-1,null,["Update"]))],null,null)}function ap(t){return s["\u0275vid"](0,[(t()(),s["\u0275ted"](-1,null,["Add"]))],null,null)}function rp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"h4",[["class","modal-title pull-left"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Matcher"])),(t()(),s["\u0275eld"](3,0,null,null,2,"button",[["aria-label","Close"],["class","close pull-right"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.bsModalRef.hide()&&a),a},null,null)),(t()(),s["\u0275eld"](4,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["\xd7"])),(t()(),s["\u0275eld"](6,0,null,null,73,"form",[["class","form-horizontal"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["\u0275nov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["\u0275nov"](t,8).onReset()&&a),a},null,null)),s["\u0275did"](7,16384,null,0,we.D,[],null,null),s["\u0275did"](8,540672,[["formDir",4]],0,we.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["\u0275prd"](2048,null,we.d,null,[we.l]),s["\u0275did"](10,16384,null,0,we.s,[[4,we.d]],null,null),(t()(),s["\u0275eld"](11,0,null,null,56,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,22,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](13,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](14,{"has-error":0}),(t()(),s["\u0275eld"](15,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","name"]],null,null,null,null,null)),(t()(),s["\u0275eld"](16,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Name"])),(t()(),s["\u0275eld"](18,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,15,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](20,0,null,null,12,"select",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,22).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,22).onTouched()&&a),a},null,null)),s["\u0275did"](21,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](22,16384,null,0,we.z,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.z]),s["\u0275did"](24,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](26,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275eld"](27,0,null,null,3,"option",[],null,null,null,null,null)),s["\u0275did"](28,147456,null,0,we.v,[s.ElementRef,s.Renderer2,[2,we.z]],{ngValue:[0,"ngValue"]},null),s["\u0275did"](29,147456,null,0,we.G,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["\u0275ted"](-1,null,["-- Select an attribute to match against --"])),(t()(),s["\u0275and"](16777216,null,null,1,null,Jf)),s["\u0275did"](32,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Qf)),s["\u0275did"](34,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](35,0,null,null,19,"div",[["class","form-group"]],null,null,null,null,null)),s["\u0275did"](36,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](37,{"has-error":0}),(t()(),s["\u0275eld"](38,0,null,null,3,"label",[["class","control-label col-sm-3"],["for","value"]],null,null,null,null,null)),(t()(),s["\u0275eld"](39,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Value"])),(t()(),s["\u0275eld"](41,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["\u0275eld"](42,0,null,null,10,"div",[["class","col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](43,16777216,null,null,7,"input",[["class","form-control"],["formControlName","value"],["id","value"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["\u0275nov"](t,45)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,45).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["\u0275nov"](t,45)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["\u0275nov"](t,45)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==s["\u0275nov"](t,50).onInput(n)&&a),"keyup"===e&&(a=!1!==s["\u0275nov"](t,50).onChange(n)&&a),"click"===e&&(a=!1!==s["\u0275nov"](t,50).onFocus()&&a),"focus"===e&&(a=!1!==s["\u0275nov"](t,50).onFocus()&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,50).onBlur()&&a),"keydown"===e&&(a=!1!==s["\u0275nov"](t,50).onKeydown(n)&&a),a},null,null)),s["\u0275did"](44,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](45,16384,null,0,we.e,[s.Renderer2,s.ElementRef,[2,we.b]],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.e]),s["\u0275did"](47,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](49,16384,null,0,we.r,[[4,we.q]],null,null),s["\u0275did"](50,212992,null,0,ec,[Q.a,tc,s.ChangeDetectorRef,s.ElementRef,we.q,s.Renderer2,s.ViewContainerRef],{typeahead:[0,"typeahead"],typeaheadMinLength:[1,"typeaheadMinLength"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,tp)),s["\u0275did"](52,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ep)),s["\u0275did"](54,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](55,0,null,null,12,"div",[["class","form-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](56,0,null,null,11,"div",[["class","col-sm-offset-3 col-sm-9"]],null,null,null,null,null)),(t()(),s["\u0275eld"](57,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["\u0275eld"](58,0,null,null,9,"div",[["class","checkbox checkbox-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](59,0,null,null,6,"input",[["formControlName","isRegex"],["id","is-regex"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"change"],[null,"blur"]],function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["\u0275nov"](t,61).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["\u0275nov"](t,61).onTouched()&&a),a},null,null)),s["\u0275did"](60,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),s["\u0275did"](61,16384,null,0,we.c,[s.Renderer2,s.ElementRef],null,null),s["\u0275prd"](1024,null,we.p,function(t){return[t]},[we.c]),s["\u0275did"](63,671744,null,0,we.j,[[3,we.d],[8,null],[8,null],[6,we.p],[2,we.F]],{name:[0,"name"]},null),s["\u0275prd"](2048,null,we.q,null,[we.j]),s["\u0275did"](65,16384,null,0,we.r,[[4,we.q]],null,null),(t()(),s["\u0275eld"](66,0,null,null,1,"label",[["for","is-regex"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Use regular expression"])),(t()(),s["\u0275eld"](68,0,null,null,11,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["\u0275eld"](69,0,null,null,8,"cd-submit-button",[],null,[[null,"submitAction"]],function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a},Za.b,Za.a)),s["\u0275did"](70,114688,null,0,Xa.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["\u0275eld"](71,0,null,0,6,null,null,null,null,null,null,null)),(t()(),s["\u0275eld"](72,0,null,null,5,null,null,null,null,null,null,null)),s["\u0275did"](73,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,np)),s["\u0275did"](75,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ap)),s["\u0275did"](77,16384,null,0,i.NgSwitchDefault,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],null,null),(t()(),s["\u0275eld"](78,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,Ja.b,Ja.a)),s["\u0275did"](79,49152,null,0,Qa.a,[i.Location,Xn.b],{name:[0,"name"],back:[1,"back"]},null)],function(t,e){var n=e.component;t(e,8,0,n.form);var a=t(e,14,0,n.form.showError("name",s["\u0275nov"](e,8)));t(e,13,0,"form-group",a),t(e,24,0,"name"),t(e,28,0,null),t(e,29,0,null),t(e,32,0,n.nameAttributes),t(e,34,0,n.form.showError("name",s["\u0275nov"](e,8),"required"));var r=t(e,37,0,n.form.showError("value",s["\u0275nov"](e,8)));t(e,36,0,"form-group",r),t(e,47,0,"value"),t(e,50,0,n.possibleValues,0),t(e,52,0,n.form.showError("value",s["\u0275nov"](e,8),"required")),t(e,54,0,n.form.getValue("value")&&!n.form.getValue("isRegex")&&n.matcherMatch),t(e,63,0,"isRegex"),t(e,70,0,n.form),t(e,73,0,n.editMode),t(e,75,0,"1"),t(e,79,0,"Close",n.bsModalRef.hide)},function(t,e){t(e,6,0,s["\u0275nov"](e,10).ngClassUntouched,s["\u0275nov"](e,10).ngClassTouched,s["\u0275nov"](e,10).ngClassPristine,s["\u0275nov"](e,10).ngClassDirty,s["\u0275nov"](e,10).ngClassValid,s["\u0275nov"](e,10).ngClassInvalid,s["\u0275nov"](e,10).ngClassPending),t(e,20,0,s["\u0275nov"](e,26).ngClassUntouched,s["\u0275nov"](e,26).ngClassTouched,s["\u0275nov"](e,26).ngClassPristine,s["\u0275nov"](e,26).ngClassDirty,s["\u0275nov"](e,26).ngClassValid,s["\u0275nov"](e,26).ngClassInvalid,s["\u0275nov"](e,26).ngClassPending),t(e,43,0,s["\u0275nov"](e,49).ngClassUntouched,s["\u0275nov"](e,49).ngClassTouched,s["\u0275nov"](e,49).ngClassPristine,s["\u0275nov"](e,49).ngClassDirty,s["\u0275nov"](e,49).ngClassValid,s["\u0275nov"](e,49).ngClassInvalid,s["\u0275nov"](e,49).ngClassPending),t(e,59,0,s["\u0275nov"](e,65).ngClassUntouched,s["\u0275nov"](e,65).ngClassTouched,s["\u0275nov"](e,65).ngClassPristine,s["\u0275nov"](e,65).ngClassDirty,s["\u0275nov"](e,65).ngClassValid,s["\u0275nov"](e,65).ngClassInvalid,s["\u0275nov"](e,65).ngClassPending)})}function ip(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-silence-matcher-modal",[],null,null,null,rp,Xf)),s["\u0275did"](1,49152,null,0,Ls,[la.a,Ds,ha.a],null,null)],null,null)}var sp=s["\u0275ccf"]("cd-silence-matcher-modal",Ls,ip,{},{submitAction:"submitAction"},[]),op=[Object(Fu.h)({height:0,visibility:"hidden"}),Object(Fu.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(Fu.h)({height:"*",visibility:"visible"}))],up=[Object(Fu.h)({height:"*",visibility:"visible"}),Object(Fu.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(Fu.h)({height:0,visibility:"hidden"}))],cp=function(){function t(t,e,n){this._el=t,this._renderer=e,this.collapsed=new s.EventEmitter,this.collapses=new s.EventEmitter,this.expanded=new s.EventEmitter,this.expands=new s.EventEmitter,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapse=!0,this.isCollapsing=!1,this.isAnimated=!1,this._display="block",this._stylesLoaded=!1,this._COLLAPSE_ACTION_NAME="collapse",this._EXPAND_ACTION_NAME="expand",this._factoryCollapseAnimation=n.build(up),this._factoryExpandAnimation=n.build(op)}return Object.defineProperty(t.prototype,"display",{set:function(t){this.isAnimated?(this._display=t,"none"!==t?this.show():this.hide()):this._renderer.setStyle(this._el.nativeElement,"display",t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"collapse",{get:function(){return this.isExpanded},set:function(t){this.isExpanded=t,this.toggle()},enumerable:!0,configurable:!0}),t.prototype.ngAfterViewChecked=function(){this._stylesLoaded=!0},t.prototype.toggle=function(){this.isExpanded?this.hide():this.show()},t.prototype.hide=function(){var t=this;this.isCollapsing=!0,this.isExpanded=!1,this.isCollapsed=!0,this.isCollapsing=!1,this.collapses.emit(this),this.animationRun(this.isAnimated,this._COLLAPSE_ACTION_NAME)(function(){t.collapsed.emit(t),t._renderer.setStyle(t._el.nativeElement,"display","none")})},t.prototype.show=function(){var t=this;this._renderer.setStyle(this._el.nativeElement,"display",this._display),this.isCollapsing=!0,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapsing=!1,this.expands.emit(this),this.animationRun(this.isAnimated,this._EXPAND_ACTION_NAME)(function(){t.expanded.emit(t)})},t.prototype.animationRun=function(t,e){var n=this;if(!t||!this._stylesLoaded)return function(t){return t()};this._renderer.setStyle(this._el.nativeElement,"overflow","hidden"),this._renderer.addClass(this._el.nativeElement,"collapse");var a=e===this._EXPAND_ACTION_NAME?this._factoryExpandAnimation:this._factoryCollapseAnimation;return this._player&&this._player.destroy(),this._player=a.create(this._el.nativeElement),this._player.play(),function(t){return n._player.onDone(t)}},t}(),lp=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[]}},t}(),dp=function(){function t(t,e){this.summaryService=t,this.taskMessageService=e,this.executingTasks=[],this.finishedTasks=[],this.icon="fa-hourglass-o"}return t.prototype.ngOnInit=function(){var t=this;this.summaryService.subscribe(function(e){e&&(t._handleTasks(e.executing_tasks,e.finished_tasks),t._setIcon(e.executing_tasks.length))})},t.prototype._handleTasks=function(t,e){for(var n=0,a=t;n0?1:0]},t}(),fp=s["\u0275crt"]({encapsulation:0,styles:[[".popover-content{padding:.5em;height:auto;max-height:70vh;overflow-x:hidden} .popover{min-width:276px!important}.separator[_ngcontent-%COMP%]{padding:5px 12px;color:#90949c;background-color:#eee;font-size:12px}.message[_ngcontent-%COMP%]{padding:10px 16px;color:#474544;font-size:12px}table[_ngcontent-%COMP%]{width:252px;margin:5px 12px 5px 5px;font-size:12px;color:#474544}.icon-col[_ngcontent-%COMP%]{width:50px;font-size:10px}.date[_ngcontent-%COMP%]{color:#555}hr[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0}"]],data:{}});function pp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"td",[["class","text-right italic"],["nowrap",""]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](2,null,[""," %"]))],null,function(t,e){t(e,2,0,e.parent.context.$implicit.progress)})}function hp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,18,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,16,"table",[],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,15,"tbody",[],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,7,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,3,"td",[["class","icon-col text-center"],["rowspan","3"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,2,"span",[["class","fa-stack fa-2x text-info"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,0,"i",[["class","fa fa-stack-1x fa-inverse fa-spinner fa-spin"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,2,"td",[["colspan","3"]],null,null,null,null,null)),(t()(),s["\u0275eld"](9,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](10,null,["",""])),(t()(),s["\u0275eld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,3,"td",[["colspan","2"]],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,2,"small",[["class","date"]],null,null,null,null,null)),(t()(),s["\u0275ted"](14,null,["",""])),s["\u0275ppd"](15,1),(t()(),s["\u0275and"](16777216,null,null,1,null,pp)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](18,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){t(e,17,0,e.context.$implicit.progress)},function(t,e){t(e,10,0,e.context.$implicit.description);var n=s["\u0275unv"](e,14,0,t(e,15,0,s["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.begin_time));t(e,14,0,n)})}function gp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"div",[["class","separator"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["EXECUTING"])),(t()(),s["\u0275eld"](3,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,hp)),s["\u0275did"](5,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.executingTasks)},null)}function bp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,2,"span",[["class","fa-stack fa-2x text-success"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,0,"i",[["class","fa fa-stack-1x fa-inverse fa-check"]],null,null,null,null,null))],null,null)}function mp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,2,"span",[["class","fa-stack fa-2x text-danger"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,0,"i",[["class","fa fa-stack-1x fa-inverse fa-exclamation-triangle"]],null,null,null,null,null))],null,null)}function yp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[["class","text-danger"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" "," "]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.errorMessage)})}function vp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,22,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,20,"table",[],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,19,"tbody",[],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,8,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,4,"td",[["class","icon-col text-center"],["rowspan","3"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,bp)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,mp)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](9,0,null,null,2,"td",[["colspan","2"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](11,null,["",""])),(t()(),s["\u0275eld"](12,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,0,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](14,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,yp)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](17,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](18,0,null,null,3,"td",[["colspan","2"]],null,null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,2,"small",[["class","date"]],null,null,null,null,null)),(t()(),s["\u0275ted"](20,null,["",""])),s["\u0275ppd"](21,1),(t()(),s["\u0275eld"](22,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){t(e,6,0,!e.context.$implicit.errorMessage),t(e,8,0,e.context.$implicit.errorMessage),t(e,16,0,e.context.$implicit.errorMessage)},function(t,e){t(e,11,0,e.context.$implicit.description);var n=s["\u0275unv"](e,20,0,t(e,21,0,s["\u0275nov"](e.parent.parent.parent,0),e.context.$implicit.end_time));t(e,20,0,n)})}function _p(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,5,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"div",[["class","separator"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["FINISHED"])),(t()(),s["\u0275eld"](3,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,vp)),s["\u0275did"](5,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,5,0,e.component.finishedTasks)},null)}function xp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["There are no background tasks."]))],null,null)}function Tp(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,gp)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,_p)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,xp)),s["\u0275did"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,1,0,n.executingTasks.length>0),t(e,3,0,n.finishedTasks.length>0),t(e,5,0,0===n.executingTasks.length&&0===n.finishedTasks.length)},null)}function wp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,[" (",")"]))],null,function(t,e){t(e,1,0,e.component.executingTasks.length)})}function Sp(t){return s["\u0275vid"](0,[s["\u0275pid"](0,In.a,[i.DatePipe]),(t()(),s["\u0275and"](0,[["popTemplate",2]],null,0,null,Tp)),(t()(),s["\u0275eld"](2,16777216,null,null,7,"a",[["container","body"],["outsideClick","true"],["placement","bottom"],["title","Background Tasks"]],null,null,null,null,null)),s["\u0275did"](3,212992,null,0,J.c,[J.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null),(t()(),s["\u0275eld"](4,0,null,null,1,"i",[["class","fa fa-fw"]],null,null,null,null,null)),s["\u0275did"](5,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Background Tasks"])),(t()(),s["\u0275and"](16777216,null,null,1,null,wp)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,3,0,s["\u0275nov"](e,1),"bottom","true","body"),t(e,5,0,"fa fa-fw",n.icon),t(e,9,0,n.executingTasks.length>0)},null)}var Op=function(){function t(t,e){this.alertFormatter=t,this.prometheusService=e,this.backendFailure=!1,this.notifications=[]}return t.prototype.refresh=function(){var t=this;this.backendFailure||this.prometheusService.getNotifications(pt.last(this.notifications)).subscribe(function(e){return t.handleNotifications(e)},function(){return t.backendFailure=!0})},t.prototype.handleNotifications=function(t){var e=this;0!==t.length&&(this.notifications.length>0&&this.alertFormatter.sendNotifications(pt.flatten(t.map(function(t){return e.formatNotification(t)}))),this.notifications=this.notifications.concat(t))},t.prototype.formatNotification=function(t){var e=this;return this.alertFormatter.convertToCustomAlerts(t.alerts).map(function(t){return e.alertFormatter.convertAlertToNotification(t)})},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject($i),s.inject(Wi))},token:t,providedIn:"root"}),t}(),Ip=function(){function t(t,e,n,a,r){this.notificationService=t,this.prometheusNotificationService=e,this.authStorageService=n,this.prometheusAlertService=a,this.ngZone=r,this.notifications=[]}return t.prototype.ngOnDestroy=function(){window.clearInterval(this.interval)},t.prototype.ngOnInit=function(){var t=this;this.authStorageService.getPermissions().prometheus.read&&(this.triggerPrometheusAlerts(),this.ngZone.runOutsideAngular(function(){t.interval=window.setInterval(function(){t.ngZone.run(function(){t.triggerPrometheusAlerts()})},5e3)})),this.notificationService.data$.subscribe(function(e){t.notifications=pt.orderBy(e,["timestamp"],["desc"])})},t.prototype.triggerPrometheusAlerts=function(){this.prometheusAlertService.refresh(),this.prometheusNotificationService.refresh()},t.prototype.removeAll=function(){this.notificationService.removeAll()},t}(),Cp=s["\u0275crt"]({encapsulation:0,styles:[[".popover-content{padding:.5em;height:auto;max-height:70vh;overflow-x:hidden} .popover{min-width:276px!important}.separator[_ngcontent-%COMP%]{padding:5px 12px;color:#90949c;background-color:#eee;font-size:12px}.message[_ngcontent-%COMP%]{padding:10px 16px;color:#474544;font-size:12px}table[_ngcontent-%COMP%]{width:252px;margin:5px 12px 5px 5px;font-size:12px;color:#474544}.icon-col[_ngcontent-%COMP%]{width:50px;font-size:10px}.date[_ngcontent-%COMP%]{color:#555}hr[_ngcontent-%COMP%]{margin-top:0;margin-bottom:0}"]],data:{}});function kp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,19,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,17,"table",[],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,16,"tbody",[],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,11,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,7,"td",[["class","icon-col text-center"],["rowspan","3"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,6,"span",[],null,null,null,null,null)),s["\u0275did"](6,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngClass:[0,"ngClass"]},null),s["\u0275pad"](7,2),(t()(),s["\u0275eld"](8,0,null,null,0,"i",[["class","fa fa-circle fa-stack-2x"]],null,null,null,null,null)),(t()(),s["\u0275eld"](9,0,null,null,2,"i",[],null,null,null,null,null)),s["\u0275did"](10,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngClass:[0,"ngClass"]},null),s["\u0275pad"](11,2),(t()(),s["\u0275eld"](12,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["\u0275eld"](13,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](14,null,["",""])),(t()(),s["\u0275eld"](15,0,null,null,1,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](16,0,null,null,0,"td",[],[[8,"innerHTML",1]],null,null,null,null)),(t()(),s["\u0275eld"](17,0,null,null,1,"tr",[],null,null,null,null,null)),(t()(),s["\u0275eld"](18,0,null,null,0,"td",[],[[8,"innerHTML",1]],null,null,null,null)),(t()(),s["\u0275eld"](19,0,null,null,0,"hr",[],null,null,null,null,null))],function(t,e){var n=t(e,7,0,"fa-stack fa-2x",e.context.$implicit.textClass);t(e,6,0,n);var a=t(e,11,0,"fa fa-stack-1x fa-inverse",e.context.$implicit.iconClass);t(e,10,0,a)},function(t,e){var n=e.component;t(e,14,0,e.context.$implicit.title),t(e,16,0,e.context.$implicit.message),t(e,18,0,n.notificationService.renderTimeAndApplicationHtml(e.context.$implicit))})}function Np(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,4,"button",[["class","btn btn-default btn-sm btn-block"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeAll()&&a),a},null,null)),(t()(),s["\u0275eld"](2,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-trash-o"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[" \xa0 "])),(t()(),s["\u0275eld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Remove all"])),(t()(),s["\u0275eld"](6,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,kp)),s["\u0275did"](8,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,8,0,e.component.notifications)},null)}function Rp(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Np)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,e.component.notifications.length>0)},null)}function Ap(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,[" There are no notifications. "]))],null,null)}function Dp(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Ap)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,0===e.component.notifications.length)},null)}function Ep(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Lp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Pp(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Ep)),s["\u0275did"](1,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Lp)),s["\u0275did"](3,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,1,0,s["\u0275nov"](e.parent,0)),t(e,3,0,s["\u0275nov"](e.parent,1))},null)}function Mp(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](0,[["notificationsTpl",2]],null,0,null,Rp)),(t()(),s["\u0275and"](0,[["emptyTpl",2]],null,0,null,Dp)),(t()(),s["\u0275and"](0,[["popTpl",2]],null,0,null,Pp)),(t()(),s["\u0275eld"](3,16777216,null,null,4,"a",[["container","body"],["outsideClick","true"],["placement","bottom"],["title","Recent Notifications"]],null,null,null,null,null)),s["\u0275did"](4,212992,null,0,J.c,[J.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,tt.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null),(t()(),s["\u0275eld"](5,0,null,null,0,"i",[["class","fa fa-fw fa-bell"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Recent Notifications"]))],function(t,e){t(e,4,0,s["\u0275nov"](e,2),"bottom","true","body")},null)}var qp=function(){function t(t,e,n){this.summaryService=t,this.cephReleaseNamePipe=e,this.modalService=n}return t.prototype.ngOnInit=function(){var t=this,e=this.summaryService.subscribe(function(n){if(n){var a=t.cephReleaseNamePipe.transform(n.version);t.docsUrl="http://docs.ceph.com/docs/"+a+"/mgr/dashboard/",setTimeout(function(){e.unsubscribe()},0)}})},t.prototype.openAboutModal=function(){this.modalRef=this.modalService.show(Id)},t.prototype.goToApiDocs=function(){this.docsFormElement.nativeElement.submit()},t}(),jp=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Fp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,11,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,4,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,3,"a",[["class","dropdown-item"],["target","_blank"]],[[8,"href",4]],null,null,null,null)),s["\u0275did"](3,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](4,{disabled:0}),(t()(),s["\u0275ted"](-1,null,["Documentation"])),(t()(),s["\u0275eld"](6,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.goToApiDocs()&&a),a},null,null)),(t()(),s["\u0275ted"](-1,null,["API"])),(t()(),s["\u0275eld"](9,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.openAboutModal()&&a),a},null,null)),(t()(),s["\u0275ted"](-1,null,["About"]))],function(t,e){var n=t(e,4,0,!e.component.docsUrl);t(e,3,0,"dropdown-item",n)},function(t,e){t(e,2,0,s["\u0275inlineInterpolate"](1,"",e.component.docsUrl,""))})}function zp(t){return s["\u0275vid"](0,[s["\u0275qud"](402653184,1,{docsFormElement:0}),(t()(),s["\u0275eld"](1,0,[[1,0],["docsForm",1]],null,2,"form",[["action","/docs"],["method","post"],["target","_blank"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,1,"input",[["name","token"],["type","hidden"]],null,null,null,null,null)),s["\u0275did"](3,4210688,null,0,Se.a,[[2,Oe.a],d.a,s.ElementRef],null,null),(t()(),s["\u0275eld"](4,16777216,null,null,10,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](6,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),(t()(),s["\u0275eld"](7,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Help"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,8).onClick()&&a),a},null,null)),s["\u0275did"](8,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-fw fa-question-circle-o"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Help"])),(t()(),s["\u0275eld"](12,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Fp)),s["\u0275did"](14,16384,null,0,mn.d,[mn.f,s.ViewContainerRef,s.TemplateRef],null,null)],function(t,e){t(e,6,0)},function(t,e){t(e,4,0,s["\u0275nov"](e,6).dropup,s["\u0275nov"](e,6).isOpen,s["\u0275nov"](e,6).isOpen&&s["\u0275nov"](e,6).isBs4),t(e,7,0,!0,s["\u0275nov"](e,8).isDisabled,s["\u0275nov"](e,8).isOpen)})}var Gp=function(){function t(t){this.authStorageService=t,this.userPermission=this.authStorageService.getPermissions().user}return t.prototype.ngOnInit=function(){},t}(),Yp=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function Vp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,3,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/user-management"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,2).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](2,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["User management"]))],function(t,e){t(e,2,0,"/user-management")},function(t,e){t(e,1,0,s["\u0275nov"](e,2).target,s["\u0275nov"](e,2).href)})}function Hp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Vp)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,2,0,e.component.userPermission.read)},null)}function Bp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,16777216,null,null,10,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](2,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),(t()(),s["\u0275eld"](3,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Dashboard Settings"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,4).onClick()&&a),a},null,null)),s["\u0275did"](4,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275eld"](5,0,null,null,0,"i",[["class","fa fa-fw fa-cog"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Dashboard Settings"])),(t()(),s["\u0275eld"](8,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Hp)),s["\u0275did"](10,16384,null,0,mn.d,[mn.f,s.ViewContainerRef,s.TemplateRef],null,null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0)},function(t,e){t(e,0,0,s["\u0275nov"](e,2).dropup,s["\u0275nov"](e,2).isOpen,s["\u0275nov"](e,2).isOpen&&s["\u0275nov"](e,2).isBs4),t(e,3,0,!0,s["\u0275nov"](e,4).isDisabled,s["\u0275nov"](e,4).isOpen)})}function Up(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Bp)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.userPermission.read)},null)}var Wp=function(){function t(t,e){this.authStorageService=t,this.authService=e}return t.prototype.ngOnInit=function(){this.username=this.authStorageService.getUsername()},t.prototype.logout=function(){this.authService.logout()},t}(),Kp=s["\u0275crt"]({encapsulation:0,styles:[[""]],data:{}});function $p(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,11,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,4,"li",[["class","disabled"],["role","menuitem"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,3,"a",[["class","dropdown-item disabled"],["href","#"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Signed in as "])),(t()(),s["\u0275eld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["\u0275ted"](5,null,["",""])),(t()(),s["\u0275eld"](6,0,null,null,0,"li",[["class","divider dropdown-divider"]],null,null,null,null,null)),(t()(),s["\u0275eld"](7,0,null,null,4,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),s["\u0275eld"](8,0,null,null,3,"a",[["class","dropdown-item"]],null,[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.logout()&&a),a},null,null)),(t()(),s["\u0275eld"](9,0,null,null,0,"i",[["class","fa fa-sign-out fa-fw"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Sign out"]))],null,function(t,e){t(e,5,0,e.component.username)})}function Zp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,16777216,null,null,10,"div",[["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](2,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),(t()(),s["\u0275eld"](3,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Logged in user"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,4).onClick()&&a),a},null,null)),s["\u0275did"](4,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275eld"](5,0,null,null,0,"i",[["class","fa fa-fw fa-user"]],null,null,null,null,null)),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[["class","visible-xs-inline-block"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Logged in user"])),(t()(),s["\u0275eld"](8,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,$p)),s["\u0275did"](10,16384,null,0,mn.d,[mn.f,s.ViewContainerRef,s.TemplateRef],null,null)],function(t,e){t(e,2,0)},function(t,e){t(e,0,0,s["\u0275nov"](e,2).dropup,s["\u0275nov"](e,2).isOpen,s["\u0275nov"](e,2).isOpen&&s["\u0275nov"](e,2).isBs4),t(e,3,0,!0,s["\u0275nov"](e,4).isDisabled,s["\u0275nov"](e,4).isOpen)})}var Xp=function(){function t(t,e,n,a,r){this.authStorageService=t,this.prometheusService=e,this.summaryService=n,this.featureToggles=a,this.prometheusAlertService=r,this.isCollapsed=!0,this.isAlertmanagerConfigured=!1,this.isPrometheusConfigured=!1,this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}return t.prototype.ngOnInit=function(){var t=this;this.summaryService.subscribe(function(e){e&&(t.summaryData=e)}),this.permissions.configOpt.read&&(this.prometheusService.ifAlertmanagerConfigured(function(){t.isAlertmanagerConfigured=!0}),this.prometheusService.ifPrometheusConfigured(function(){t.isPrometheusConfigured=!0}))},t.prototype.blockHealthColor=function(){if(this.summaryData&&this.summaryData.rbd_mirroring){if(this.summaryData.rbd_mirroring.errors>0)return{color:"#d9534f"};if(this.summaryData.rbd_mirroring.warnings>0)return{color:"#f0ad4e"}}},t}(),Jp=s["\u0275crt"]({encapsulation:0,styles:[[".navbar-main{margin-bottom:0;background:#374249;border:0;border-radius:0;border-top:4px solid #2b99a8;font-size:1.2em} .navbar-main .navbar-header{display:-webkit-box;display:flex;float:none} .navbar-main .navbar-brand, .navbar-main .navbar-brand:hover{color:#eee;height:auto;margin:15px 0 15px 20px;padding:0;-webkit-align-self:flex-start;align-self:flex-start} .navbar-main .navbar-brand>img{height:25px} .navbar-main .navbar-toggle{margin-left:auto;border:0} .navbar-main .navbar-toggle:focus, .navbar-main .navbar-toggle:hover{background-color:transparent;outline:0} .navbar-main .navbar-toggle .icon-bar{background-color:#eee} .navbar-main .navbar-toggle:focus .icon-bar, .navbar-main .navbar-toggle:hover .icon-bar{box-shadow:0 0 3px #fff} .navbar-main .navbar-collapse{padding:0} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>ul>li>.dropdown-item{font-size:12px} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a, .navbar-main .navbar-nav>li>.oa-navbar>a, .navbar-main .navbar-nav>li>a{color:#eee;line-height:1;padding:10px 18px;position:relative;display:block;text-decoration:none} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a:focus, .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a:hover, .navbar-main .navbar-nav>li>.oa-navbar>a:focus, .navbar-main .navbar-nav>li>.oa-navbar>a:hover, .navbar-main .navbar-nav>li>a:focus, .navbar-main .navbar-nav>li>a:hover{color:#eee} .navbar-main .navbar-nav>li>.oa-navbar>[dropdown].open>a, .navbar-main .navbar-nav>li>.oa-navbar>[dropdown]>a:hover, .navbar-main .navbar-nav>li>.oa-navbar>a:hover, .navbar-main .navbar-nav>li>a:hover{background-color:#2b99a8} .navbar-main .navbar-nav>li a.dropdown-toggle span.caret{margin-left:5px} .navbar-main .navbar-nav>.open>.oa-navbar>[dropdown]>a, .navbar-main .navbar-nav>.open>.oa-navbar>[dropdown]>a:hover, .navbar-main .navbar-nav>.open>.oa-navbar>a, .navbar-main .navbar-nav>.open>.oa-navbar>a:focus, .navbar-main .navbar-nav>.open>.oa-navbar>a:hover, .navbar-main .navbar-nav>.open>.oa-navbar>li>a:focus, .navbar-main .navbar-nav>.open>a, .navbar-main .navbar-nav>.open>a:focus, .navbar-main .navbar-nav>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent} .navbar-main .navbar-primary>li>a{border:0} .navbar-main .navbar-primary>.active>a, .navbar-main .navbar-primary>.active>a:focus, .navbar-main .navbar-primary>.active>a:hover{color:#eee;background-color:#2b99a8;border:0} .navbar-main .navbar-utility .fa, .navbar-main .navbar-utility a{font-size:1.1em} .navbar-main .navbar-utility>.active>a{color:#eee;background-color:#2b99a8} .navbar-main .navbar-utility>li>.open>a, .navbar-main .navbar-utility>li>.open>a:focus, .navbar-main .navbar-utility>li>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent}@media (min-width:768px){ .navbar-main .navbar-primary>li>a{border-bottom:4px solid transparent} .navbar-main .navbar-primary>.active>a, .navbar-main .navbar-primary>.active>a:focus, .navbar-main .navbar-primary>.active>a:hover{background-color:transparent;border-bottom:4px solid #2b99a8} .navbar-main .navbar-utility{border-bottom:0;font-size:11px;position:absolute;right:0;top:0}}@media (max-width:calc(768px - 1px)){ .navbar-main .navbar-nav{margin:0} .navbar-main .navbar-nav .fa{margin-right:.5em} .navbar-main .navbar-collapse, .navbar-main .navbar-form{border-color:#eee} .navbar-main .navbar-collapse{padding:0} .navbar-main .navbar-nav .open .dropdown-menu{padding-top:0;padding-bottom:0;background-color:#2b99a8} .navbar-main .navbar-nav .open .dropdown-menu .dropdown-header, .navbar-main .navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 35px} .navbar-main .navbar-nav .open .dropdown-menu>li>a{color:#eee} .navbar-main .navbar-nav .open .dropdown-menu>.active>a{color:#eee;background-color:#2b99a8} .navbar-main .navbar-nav>li>a:hover{background-color:#2b99a8} .navbar-main .navbar-utility{border-top:1px solid #eee} .navbar-main .navbar-utility a{font-size:1em} .navbar-main .navbar-primary>.active>a, .navbar-main .navbar-primary>.active>a:focus, .navbar-main .navbar-primary>.active>a:hover{background-color:#2b99a8}}"]],data:{}});function Qp(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_hosts"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,5,{links:1}),s["\u0275qud"](603979776,6,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/hosts"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[6,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Hosts"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/hosts")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function th(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_monitor"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,7,{links:1}),s["\u0275qud"](603979776,8,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/monitor/"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[8,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Monitors"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/monitor/")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function eh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_hosts"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,9,{links:1}),s["\u0275qud"](603979776,10,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/osd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[10,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["OSDs"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/osd")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function nh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_configuration"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,11,{links:1}),s["\u0275qud"](603979776,12,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/configuration"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[12,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Configuration"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/configuration")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function ah(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_crush"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,13,{links:1}),s["\u0275qud"](603979776,14,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/crush-map"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[14,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["CRUSH map"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/crush-map")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function rh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_modules"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,15,{links:1}),s["\u0275qud"](603979776,16,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/mgr-modules"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[16,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Manager modules"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/mgr-modules")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function ih(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_log"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,17,{links:1}),s["\u0275qud"](603979776,18,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[18,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Logs"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/logs")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function sh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"small",[["class","badge badge-danger"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.component.prometheusAlertService.alerts.length)})}function oh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,9,"li",[["class","tc_submenuitem tc_submenuitem_monitoring"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,19,{links:1}),s["\u0275qud"](603979776,20,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,5,"a",[["routerLink","/monitoring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[20,4],[4,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Monitoring"])),(t()(),s["\u0275and"](16777216,null,null,1,null,sh)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"active"),t(e,5,0,"/monitoring"),t(e,9,0,n.prometheusAlertService.alerts.length>0)},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function uh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,16,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Qp)),s["\u0275did"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,th)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,eh)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,nh)),s["\u0275did"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ah)),s["\u0275did"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,rh)),s["\u0275did"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ih)),s["\u0275did"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,oh)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,2,0,n.permissions.hosts.read),t(e,4,0,n.permissions.monitor.read),t(e,6,0,n.permissions.osd.read),t(e,8,0,n.permissions.configOpt.read),t(e,10,0,n.permissions.hosts.read&&n.permissions.osd.read),t(e,12,0,n.permissions.configOpt.read),t(e,14,0,n.permissions.log.read),t(e,16,0,(n.isAlertmanagerConfigured||n.isPrometheusConfigured)&&n.permissions.prometheus.read)},null)}function ch(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,16777216,null,null,12,"li",[["class","dropdown tc_menuitem tc_menuitem_cluster"],["dropdown",""],["routerLinkActive","active"]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](2,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),s["\u0275did"](3,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,3,{links:1}),s["\u0275qud"](603979776,4,{linksWithHrefs:1}),(t()(),s["\u0275eld"](6,0,null,null,4,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,7).onClick()&&a),a},null,null)),s["\u0275did"](7,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275eld"](8,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Cluster"])),(t()(),s["\u0275eld"](10,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,uh)),s["\u0275did"](12,16384,null,0,mn.d,[mn.f,s.ViewContainerRef,s.TemplateRef],null,null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0),t(e,3,0,"active")},function(t,e){t(e,0,0,s["\u0275nov"](e,2).dropup,s["\u0275nov"](e,2).isOpen,s["\u0275nov"](e,2).isOpen&&s["\u0275nov"](e,2).isBs4),t(e,6,0,!0,s["\u0275nov"](e,7).isDisabled,s["\u0275nov"](e,7).isOpen)})}function lh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_menuitem tc_menuitem_pool"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,21,{links:1}),s["\u0275qud"](603979776,22,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/pool"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[22,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Pools"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/pool")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function dh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,25,{links:1}),s["\u0275qud"](603979776,26,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/block/rbd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[26,4],[24,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Images"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/rbd")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function fh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"small",[["class","label label-warning"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["",""]))],null,function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)})}function ph(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"small",[["class","label label-danger"]],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["",""]))],null,function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors)})}function hh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,11,"li",[["class","tc_submenuitem tc_submenuitem_block_mirroring"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,27,{links:1}),s["\u0275qud"](603979776,28,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,7,"a",[["class","dropdown-item"],["routerLink","/block/mirroring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[28,4],[24,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275eld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Mirroring"])),(t()(),s["\u0275and"](16777216,null,null,1,null,fh)),s["\u0275did"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,ph)),s["\u0275did"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=e.component;t(e,1,0,"active"),t(e,5,0,"/block/mirroring"),t(e,9,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)),t(e,11,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors))},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function gh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,29,{links:1}),s["\u0275qud"](603979776,30,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/block/iscsi"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[30,4],[24,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["iSCSI"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/iscsi")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function bh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,16777216,null,null,18,"li",[["class","dropdown tc_menuitem tc_menuitem_block"],["dropdown",""],["routerLinkActive","active"]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](2,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),s["\u0275did"](3,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,23,{links:1}),s["\u0275qud"](603979776,24,{linksWithHrefs:1}),(t()(),s["\u0275eld"](6,0,null,null,5,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,8).onClick()&&a),a},null,null)),s["\u0275did"](7,278528,null,0,i.NgStyle,[s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngStyle:[0,"ngStyle"]},null),s["\u0275did"](8,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275eld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Block"])),(t()(),s["\u0275eld"](11,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),s["\u0275eld"](12,0,null,null,6,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,dh)),s["\u0275did"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,hh)),s["\u0275did"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,gh)),s["\u0275did"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){var n=e.component;t(e,2,0),t(e,3,0,"active"),t(e,7,0,n.blockHealthColor()),t(e,14,0,e.parent.context.ngIf.rbd&&n.permissions.rbdImage.read),t(e,16,0,e.parent.context.ngIf.mirroring&&n.permissions.rbdMirroring.read),t(e,18,0,e.parent.context.ngIf.iscsi&&n.permissions.iscsi.read)},function(t,e){t(e,0,0,s["\u0275nov"](e,2).dropup,s["\u0275nov"](e,2).isOpen,s["\u0275nov"](e,2).isOpen&&s["\u0275nov"](e,2).isBs4),t(e,6,0,!0,s["\u0275nov"](e,8).isDisabled,s["\u0275nov"](e,8).isOpen)})}function mh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_menuitem tc_menuitem_nfs"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,31,{links:1}),s["\u0275qud"](603979776,32,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/nfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[32,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["NFS"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/nfs")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function yh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","tc_menuitem tc_menuitem_cephs"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](1,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,33,{links:1}),s["\u0275qud"](603979776,34,{linksWithHrefs:1}),(t()(),s["\u0275eld"](4,0,null,null,2,"a",[["routerLink","/cephfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](5,671744,[[34,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Filesystems"]))],function(t,e){t(e,1,0,"active"),t(e,5,0,"/cephfs")},function(t,e){t(e,4,0,s["\u0275nov"](e,5).target,s["\u0275nov"](e,5).href)})}function vh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,21,"ul",[["class","dropdown-menu"]],null,null,null,null,null)),(t()(),s["\u0275eld"](1,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_daemons"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](2,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,37,{links:1}),s["\u0275qud"](603979776,38,{linksWithHrefs:1}),(t()(),s["\u0275eld"](5,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/rgw/daemon"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](6,671744,[[38,4],[36,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Daemons"])),(t()(),s["\u0275eld"](8,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_users"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](9,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,39,{links:1}),s["\u0275qud"](603979776,40,{linksWithHrefs:1}),(t()(),s["\u0275eld"](12,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/rgw/user"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,13).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](13,671744,[[40,4],[36,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Users"])),(t()(),s["\u0275eld"](15,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_buckets"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](16,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,41,{links:1}),s["\u0275qud"](603979776,42,{linksWithHrefs:1}),(t()(),s["\u0275eld"](19,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/rgw/bucket"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,20).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](20,671744,[[42,4],[36,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275ted"](-1,null,["Buckets"]))],function(t,e){t(e,2,0,"active"),t(e,6,0,"/rgw/daemon"),t(e,9,0,"active"),t(e,13,0,"/rgw/user"),t(e,16,0,"active"),t(e,20,0,"/rgw/bucket")},function(t,e){t(e,5,0,s["\u0275nov"](e,6).target,s["\u0275nov"](e,6).href),t(e,12,0,s["\u0275nov"](e,13).target,s["\u0275nov"](e,13).href),t(e,19,0,s["\u0275nov"](e,20).target,s["\u0275nov"](e,20).href)})}function _h(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,16777216,null,null,12,"li",[["class","dropdown tc_menuitem tc_menuitem_rgw"],["dropdown",""],["routerLinkActive","active"]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["\u0275prd"](512,null,mn.f,mn.f,[]),s["\u0275did"](2,212992,null,0,mn.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,Q.a,mn.a,mn.f],null,null),s["\u0275did"](3,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,35,{links:1}),s["\u0275qud"](603979776,36,{linksWithHrefs:1}),(t()(),s["\u0275eld"](6,0,null,null,4,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,7).onClick()&&a),a},null,null)),s["\u0275did"](7,147456,null,0,mn.g,[s.ChangeDetectorRef,mn.c,s.ElementRef,s.Renderer2,mn.f],null,null),(t()(),s["\u0275eld"](8,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Object Gateway"])),(t()(),s["\u0275eld"](10,0,null,null,0,"span",[["class","caret"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,vh)),s["\u0275did"](12,16384,null,0,mn.d,[mn.f,s.ViewContainerRef,s.TemplateRef],null,null),(t()(),s["\u0275and"](0,null,null,0))],function(t,e){t(e,2,0),t(e,3,0,"active")},function(t,e){t(e,0,0,s["\u0275nov"](e,2).dropup,s["\u0275nov"](e,2).isOpen,s["\u0275nov"](e,2).isOpen&&s["\u0275nov"](e,2).isBs4),t(e,6,0,!0,s["\u0275nov"](e,7).isDisabled,s["\u0275nov"](e,7).isOpen)})}function xh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,44,"div",[["class","collapse navbar-collapse"],["id","bs-example-navbar-collapse-1"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),s["\u0275did"](1,8404992,null,0,cp,[s.ElementRef,s.Renderer2,Fu.b],{collapse:[0,"collapse"]},null),(t()(),s["\u0275eld"](2,0,null,null,23,"ul",[["class","nav navbar-nav navbar-primary"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,10,"li",[["class","tc_menuitem tc_menuitem_dashboard"],["routerLinkActive","active"]],null,null,null,null,null)),s["\u0275did"](4,1720320,null,2,et.n,[et.l,s.ElementRef,s.Renderer2,s.ChangeDetectorRef],{routerLinkActive:[0,"routerLinkActive"]},null),s["\u0275qud"](603979776,1,{links:1}),s["\u0275qud"](603979776,2,{linksWithHrefs:1}),(t()(),s["\u0275eld"](7,0,null,null,6,"a",[["routerLink","/dashboard"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,8).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](8,671744,[[2,4]],0,et.o,[et.l,et.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["\u0275eld"](9,0,null,null,2,"i",[["class","fa fa-heartbeat fa-fw"]],null,null,null,null,null)),s["\u0275did"](10,278528,null,0,i.NgStyle,[s.KeyValueDiffers,s.ElementRef,s.Renderer2],{ngStyle:[0,"ngStyle"]},null),s["\u0275ppd"](11,1),(t()(),s["\u0275eld"](12,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Dashboard"])),(t()(),s["\u0275and"](16777216,null,null,1,null,ch)),s["\u0275did"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,lh)),s["\u0275did"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,bh)),s["\u0275did"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,mh)),s["\u0275did"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,yh)),s["\u0275did"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,_h)),s["\u0275did"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](26,0,null,null,18,"ul",[["class","nav navbar-nav navbar-utility"]],null,null,null,null,null)),(t()(),s["\u0275eld"](27,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](28,0,null,null,1,"cd-language-selector",[["class","oa-navbar"]],null,null,null,Wl,Gl)),s["\u0275did"](29,114688,null,0,zl,[Rr.j,jl],null,null),(t()(),s["\u0275eld"](30,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](31,0,null,null,1,"cd-task-manager",[["class","oa-navbar"]],null,null,null,Sp,fp)),s["\u0275did"](32,114688,null,0,dp,[Fe.a,Iu.a],null,null),(t()(),s["\u0275eld"](33,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](34,0,null,null,1,"cd-notifications",[["class","oa-navbar"]],null,null,null,Mp,Cp)),s["\u0275did"](35,245760,null,0,Ip,[Qn.a,Op,d.a,Zi,s.NgZone],null,null),(t()(),s["\u0275eld"](36,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](37,0,null,null,1,"cd-dashboard-help",[["class","oa-navbar"]],null,null,null,zp,jp)),s["\u0275did"](38,114688,null,0,qp,[Fe.a,Ye.a,ha.b],null,null),(t()(),s["\u0275eld"](39,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](40,0,null,null,1,"cd-administration",[["class","oa-navbar"]],null,null,null,Up,Yp)),s["\u0275did"](41,114688,null,0,Gp,[d.a],null,null),(t()(),s["\u0275eld"](42,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["\u0275eld"](43,0,null,null,1,"cd-identity",[["class","oa-navbar"]],null,null,null,Zp,Kp)),s["\u0275did"](44,114688,null,0,Wp,[d.a,Zl.a],null,null)],function(t,e){var n=e.component;t(e,1,0,n.isCollapsed),t(e,4,0,"active"),t(e,8,0,"/dashboard");var a=s["\u0275unv"](e,10,0,t(e,11,0,s["\u0275nov"](e.parent,0),null==n.summaryData?null:n.summaryData.health_status));t(e,10,0,a),t(e,15,0,n.permissions.hosts.read||n.permissions.monitor.read||n.permissions.osd.read||n.permissions.configOpt.read),t(e,17,0,n.permissions.pool.read),t(e,19,0,(e.context.ngIf.rbd||e.context.ngIf.mirroring||e.context.ngIf.iscsi)&&(n.permissions.rbdImage.read||n.permissions.rbdMirroring.read||n.permissions.iscsi.read)),t(e,21,0,null==n.permissions?null:null==n.permissions.nfs?null:n.permissions.nfs.read),t(e,23,0,e.context.ngIf.cephfs&&n.permissions.cephfs.read),t(e,25,0,e.context.ngIf.rgw&&n.permissions.rgw.read),t(e,29,0),t(e,32,0),t(e,35,0),t(e,38,0),t(e,41,0),t(e,44,0)},function(t,e){t(e,0,0,s["\u0275nov"](e,1).isCollapse,s["\u0275nov"](e,1).isExpanded,s["\u0275nov"](e,1).isExpanded,s["\u0275nov"](e,1).isExpanded,s["\u0275nov"](e,1).isCollapsed,s["\u0275nov"](e,1).isCollapsing),t(e,7,0,s["\u0275nov"](e,8).target,s["\u0275nov"](e,8).href)})}function Th(t){return s["\u0275vid"](0,[s["\u0275pid"](0,_t,[]),(t()(),s["\u0275eld"](1,0,null,null,12,"nav",[["class","navbar navbar-default navbar-main"]],null,null,null,null,null)),(t()(),s["\u0275eld"](2,0,null,null,8,"div",[["class","navbar-header tc_logo_component"]],null,null,null,null,null)),(t()(),s["\u0275eld"](3,0,null,null,1,"a",[["class","navbar-brand"],["href","#"]],null,null,null,null,null)),(t()(),s["\u0275eld"](4,0,null,null,0,"img",[["alt","Ceph"],["src","assets/Ceph_Logo_Standard_RGB_White_120411_fa.png"]],null,null,null,null,null)),(t()(),s["\u0275eld"](5,0,null,null,5,"button",[["class","navbar-toggle collapsed"],["type","button"]],null,[[null,"click"]],function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=0!=(r.isCollapsed=!r.isCollapsed)&&a),a},null,null)),(t()(),s["\u0275eld"](6,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),s["\u0275ted"](-1,null,["Toggle navigation"])),(t()(),s["\u0275eld"](8,0,null,null,0,"span",[["class","icon-bar"]],null,null,null,null,null)),(t()(),s["\u0275eld"](9,0,null,null,0,"span",[["class","icon-bar"]],null,null,null,null,null)),(t()(),s["\u0275eld"](10,0,null,null,0,"span",[["class","icon-bar"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,2,null,xh)),s["\u0275did"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["\u0275pid"](131072,i.AsyncPipe,[s.ChangeDetectorRef])],function(t,e){var n=e.component;t(e,12,0,s["\u0275unv"](e,12,0,s["\u0275nov"](e,13).transform(n.enabledFeature$)))},null)}var wh=n("ou9H"),Sh=n("P6uZ"),Oh=n("wbK0"),Ih=function(){function t(){}return t.prototype.resolve=function(t){var e=t.routeConfig.data,n=null===e.path?null:this.getFullPath(t),a=[{text:"string"==typeof e.breadcrumbs?e.breadcrumbs:e.breadcrumbs.text||e.text||n,path:n}];return Object(bc.a)(a)},t.prototype.getFullPath=function(t){return t.pathFromRoot.reduce(function(t,e){return t+e.url.reduce(function(t,e){return t+"/"+e.path},"")},"")},t}(),Ch=function(){function t(t,e){var n=this;this.router=t,this.injector=e,this.crumbs=[],this.defaultResolver=new Ih,this.subscription=this.router.events.pipe(Object(Hu.a)(function(t){return t instanceof et.d})).subscribe(function(){n._resolveCrumbs(t.routerState.snapshot.root).pipe(Object(Vu.a)(function(t){return t}),Object(wh.a)(function(t){return t.text}),Object(Bu.a)(),Object(Vu.a)(function(t){var e=n.postProcess(t);return n.wrapIntoObservable(e).pipe(Object(Sh.a)())})).subscribe(function(t){n.crumbs=t})})}return t.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},t.prototype._resolveCrumbs=function(t){var e,n=t.routeConfig&&t.routeConfig.data;if(n&&n.breadcrumbs){var a=(n.breadcrumbs.prototype instanceof Ih?this.injector.get(n.breadcrumbs):this.defaultResolver).resolve(t);e=this.wrapIntoObservable(a).pipe(Object(Sh.a)())}else e=Object(bc.a)([]);return t.firstChild&&(e=e.pipe(Object(Oh.a)(this._resolveCrumbs(t.firstChild)))),e},t.prototype.postProcess=function(t){var e=[];return t.forEach(function(t){var n=t.text.split("/");if(n.length>1){t.text=n[n.length-1];for(var a=0;a li[_ngcontent-%COMP%] + li[_ngcontent-%COMP%]:before{padding:0 5px 0 7px;color:#474544;font-family:ForkAwesome;content:'\\f101'}.breadcrumb[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:#474544}"]],data:{}});function Nh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"a",[["preserveFragment",""]],[[1,"target",0],[8,"href",4]],[[null,"click"]],function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["\u0275nov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a},null,null)),s["\u0275did"](1,671744,null,0,et.o,[et.l,et.a,i.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),s["\u0275ted"](2,null,["",""]))],function(t,e){t(e,1,0,"",e.parent.context.$implicit.path)},function(t,e){t(e,0,0,s["\u0275nov"](e,1).target,s["\u0275nov"](e,1).href),t(e,2,0,e.parent.context.$implicit.text)})}function Rh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["\u0275ted"](1,null,["",""]))],null,function(t,e){t(e,1,0,e.parent.context.$implicit.text)})}function Ah(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,6,"li",[["class","breadcrumb-item"]],null,null,null,null,null)),s["\u0275did"](1,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](2,{active:0}),(t()(),s["\u0275and"](16777216,null,null,1,null,Nh)),s["\u0275did"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275and"](16777216,null,null,1,null,Rh)),s["\u0275did"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){var n=t(e,2,0,e.context.last);t(e,1,0,"breadcrumb-item",n),t(e,4,0,!e.context.last&&null!==e.context.$implicit.path),t(e,6,0,e.context.last||null===e.context.$implicit.path)},null)}function Dh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"ol",[["class","breadcrumb"]],null,null,null,null,null)),(t()(),s["\u0275and"](16777216,null,null,1,null,Ah)),s["\u0275did"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],function(t,e){t(e,2,0,e.component.crumbs)},null)}function Eh(t){return s["\u0275vid"](0,[(t()(),s["\u0275and"](16777216,null,null,1,null,Dh)),s["\u0275did"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],function(t,e){t(e,1,0,e.component.crumbs.length)},null)}var Lh=s["\u0275crt"]({encapsulation:0,styles:[[".dashboard[_ngcontent-%COMP%]{background-color:#f5f5f5;margin:0;padding:0} #toast-container{margin-top:2vw}@media (max-width:1600px){ #toast-container{margin-top:2.5vw}}@media (max-width:calc(992px - 1px)){ #toast-container{margin-top:9vw}}@media (max-width:900px){ #toast-container{margin-top:10vw}}@media (max-width:319px){ #toast-container{margin-top:11vw}}@media (max-width:260px){ #toast-container{margin-top:14vw}}"]],data:{}});function Ph(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,1,"cd-navigation",[],null,null,null,Th,Jp)),s["\u0275did"](1,114688,null,0,Xp,[d.a,Wi,Fe.a,Dt.a,Zi],null,null)],function(t,e){t(e,1,0)},null)}function Mh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,12,"block-ui",[],null,null,null,C,I)),s["\u0275did"](1,114688,null,0,v,[y],null,null),(t()(),s["\u0275and"](16777216,null,0,1,null,Ph)),s["\u0275did"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["\u0275eld"](4,0,null,0,6,"div",[["class","container-fluid"]],null,null,null,null,null)),s["\u0275did"](5,278528,null,0,i.NgClass,[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["\u0275pod"](6,{"full-height":0,dashboard:1}),(t()(),s["\u0275eld"](7,0,null,null,1,"cd-breadcrumbs",[],null,null,null,Eh,kh)),s["\u0275did"](8,180224,null,0,Ch,[et.l,s.Injector],null,null),(t()(),s["\u0275eld"](9,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),s["\u0275did"](10,212992,null,0,et.q,[et.b,s.ViewContainerRef,s.ComponentFactoryResolver,[8,null],s.ChangeDetectorRef],null,null),(t()(),s["\u0275eld"](11,0,null,0,1,"block-ui",[],null,null,null,C,I)),s["\u0275did"](12,114688,null,0,v,[y],null,null)],function(t,e){var n=e.component;t(e,1,0),t(e,3,0,!n.isLoginActive());var a=t(e,6,0,n.isLoginActive(),n.isDashboardPage());t(e,5,0,"container-fluid",a),t(e,10,0),t(e,12,0)},null)}function qh(t){return s["\u0275vid"](0,[(t()(),s["\u0275eld"](0,0,null,null,2,"cd-root",[],null,null,null,Mh,Lh)),s["\u0275prd"](5120,null,l.a,f,[]),s["\u0275did"](2,49152,null,0,p,[d.a,et.l],null,null)],null,null)}var jh=s["\u0275ccf"]("cd-root",p,qh,{},{},[]),Fh=n("XlPw"),zh=n("9Z1F"),Gh=function(){function t(t,e,n){this.router=t,this.authStorageService=e,this.notificationService=n}return t.prototype.intercept=function(t,e){var n=this;return e.handle(t).pipe(Object(zh.a)(function(t){if(t instanceof Nt.f){var e;switch(t.status){case 400:var a=new ku.a,r=t.error.task;pt.isPlainObject(r)?(r.metadata.component=r.metadata.component||t.error.component,a.name=r.name,a.metadata=r.metadata):a.metadata=t.error,a.success=!1,a.exception=t.error,e=n.notificationService.notifyTask(a);break;case 401:n.authStorageService.remove(),n.router.navigate(["/login"]);break;case 403:n.router.navigate(["/403"]);break;default:e=n.prepareNotification(t)}t.preventDefault=function(){n.notificationService.cancel(e)},t.ignoreStatusCode=function(t){this.status===t&&this.preventDefault()}}return Object(Fh.a)(t)}))},t.prototype.prepareNotification=function(t){return this.notificationService.show(function(){var e="";return pt.isPlainObject(t.error)&&pt.isString(t.error.detail)?e=t.error.detail:pt.isString(t.error)?e=t.error:pt.isString(t.message)&&(e=t.message),new Ki.b(Jn.a.error,t.status+" - "+t.statusText,e,void 0,t.application)})},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(et.l),s.inject(d.a),s.inject(Qn.a))},token:t,providedIn:"root"}),t}();function Yh(){return"undefined"!=typeof process}function Vh(t){switch(t.length){case 0:return new Fu.d;case 1:return t[0];default:return new Fu.k(t)}}function Hh(t,e,n,a,r,i){void 0===r&&(r={}),void 0===i&&(i={});var s=[],o=[],u=-1,c=null;if(a.forEach(function(t){var n=t.offset,a=n==u,l=a&&c||{};Object.keys(t).forEach(function(n){var a=n,o=t[n];if("offset"!==n)switch(a=e.normalizePropertyName(a,s),o){case Fu.l:o=r[n];break;case Fu.a:o=i[n];break;default:o=e.normalizeStyleValue(n,a,o,s)}l[a]=o}),a||o.push(l),c=l,u=n}),s.length)throw new Error("Unable to animate due to the following errors:\n - "+s.join("\n - "));return o}function Bh(t,e,n,a){switch(e){case"start":t.onStart(function(){return a(n&&Uh(n,"start",t))});break;case"done":t.onDone(function(){return a(n&&Uh(n,"done",t))});break;case"destroy":t.onDestroy(function(){return a(n&&Uh(n,"destroy",t))})}}function Uh(t,e,n){var a=n.totalTime,r=Wh(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,null==a?t.totalTime:a,!!n.disabled),i=t._data;return null!=i&&(r._data=i),r}function Wh(t,e,n,a,r,i,s){return void 0===r&&(r=""),void 0===i&&(i=0),{element:t,triggerName:e,fromState:n,toState:a,phaseName:r,totalTime:i,disabled:!!s}}function Kh(t,e,n){var a;return t instanceof Map?(a=t.get(e))||t.set(e,a=n):(a=t[e])||(a=t[e]=n),a}function $h(t){var e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}var Zh=function(t,e){return!1},Xh=function(t,e){return!1},Jh=function(t,e,n){return[]},Qh=Yh();if(Qh||"undefined"!=typeof Element){if(Zh=function(t,e){return t.contains(e)},Qh||Element.prototype.matches)Xh=function(t,e){return t.matches(e)};else{var tg=Element.prototype,eg=tg.matchesSelector||tg.mozMatchesSelector||tg.msMatchesSelector||tg.oMatchesSelector||tg.webkitMatchesSelector;eg&&(Xh=function(t,e){return eg.apply(t,[e])})}Jh=function(t,e,n){var a=[];if(n)a.push.apply(a,Object(h.__spread)(t.querySelectorAll(e)));else{var r=t.querySelector(e);r&&a.push(r)}return a}}var ng=null,ag=!1;function rg(t){ng||(ng=("undefined"!=typeof document?document.body:null)||{},ag=!!ng.style&&"WebkitAppearance"in ng.style);var e=!0;return ng.style&&!function(t){return"ebkit"==t.substring(1,6)}(t)&&!(e=t in ng.style)&&ag&&(e="Webkit"+t.charAt(0).toUpperCase()+t.substr(1)in ng.style),e}var ig=Xh,sg=Zh,og=Jh;function ug(t){var e={};return Object.keys(t).forEach(function(n){var a=n.replace(/([a-z])([A-Z])/g,"$1-$2");e[a]=t[n]}),e}var cg=function(){function t(){}return t.prototype.validateStyleProperty=function(t){return rg(t)},t.prototype.matchesElement=function(t,e){return ig(t,e)},t.prototype.containsElement=function(t,e){return sg(t,e)},t.prototype.query=function(t,e,n){return og(t,e,n)},t.prototype.computeStyle=function(t,e,n){return n||""},t.prototype.animate=function(t,e,n,a,r,i,s){return void 0===i&&(i=[]),new Fu.d(n,a)},t}(),lg=function(){function t(){}return t.NOOP=new cg,t}(),dg=1e3;function fg(t){if("number"==typeof t)return t;var e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:pg(parseFloat(e[1]),e[2])}function pg(t,e){switch(e){case"s":return t*dg;default:return t}}function hg(t,e,n){return t.hasOwnProperty("duration")?t:function(t,e,n){var a,r=0,i="";if("string"==typeof t){var s=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===s)return e.push('The provided timing value "'+t+'" is invalid.'),{duration:0,delay:0,easing:""};a=pg(parseFloat(s[1]),s[2]);var o=s[3];null!=o&&(r=pg(parseFloat(o),s[4]));var u=s[5];u&&(i=u)}else a=t;if(!n){var c=!1,l=e.length;a<0&&(e.push("Duration values below 0 are not allowed for this animation step."),c=!0),r<0&&(e.push("Delay values below 0 are not allowed for this animation step."),c=!0),c&&e.splice(l,0,'The provided timing value "'+t+'" is invalid.')}return{duration:a,delay:r,easing:i}}(t,e,n)}function gg(t,e){return void 0===e&&(e={}),Object.keys(t).forEach(function(n){e[n]=t[n]}),e}function bg(t,e,n){if(void 0===n&&(n={}),e)for(var a in t)n[a]=t[a];else gg(t,n);return n}function mg(t,e,n){return n?e+":"+n+";":""}function yg(t){for(var e="",n=0;n *";case":leave":return"* => void";case":increment":return function(t,e){return parseFloat(e)>parseFloat(t)};case":decrement":return function(t,e){return parseFloat(e) *"}}(t,n);if("function"==typeof a)return void e.push(a);t=a}var r=t.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(null==r||r.length<4)return n.push('The provided transition expression "'+t+'" is not supported'),e;var i=r[1],s=r[2],o=r[3];e.push(Pg(i,o)),"<"!=s[0]||i==Dg&&o==Dg||e.push(Pg(o,i))}(t,r,a)}):r.push(n),r),animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Gg(t.options)}},t.prototype.visitSequence=function(t,e){var n=this;return{type:2,steps:t.steps.map(function(t){return Rg(n,t,e)}),options:Gg(t.options)}},t.prototype.visitGroup=function(t,e){var n=this,a=e.currentTime,r=0,i=t.steps.map(function(t){e.currentTime=a;var i=Rg(n,t,e);return r=Math.max(r,e.currentTime),i});return e.currentTime=r,{type:3,steps:i,options:Gg(t.options)}},t.prototype.visitAnimate=function(t,e){var n,a=function(t,e){var n=null;if(t.hasOwnProperty("duration"))n=t;else if("number"==typeof t)return Yg(hg(t,e).duration,0,"");var a=t;if(a.split(/\s+/).some(function(t){return"{"==t.charAt(0)&&"{"==t.charAt(1)})){var r=Yg(0,0,"");return r.dynamic=!0,r.strValue=a,r}return Yg((n=n||hg(a,e)).duration,n.delay,n.easing)}(t.timings,e.errors);e.currentAnimateTimings=a;var r=t.styles?t.styles:Object(Fu.h)({});if(5==r.type)n=this.visitKeyframes(r,e);else{var i=t.styles,s=!1;if(!i){s=!0;var o={};a.easing&&(o.easing=a.easing),i=Object(Fu.h)(o)}e.currentTime+=a.duration+a.delay;var u=this.visitStyle(i,e);u.isEmptyStep=s,n=u}return e.currentAnimateTimings=null,{type:4,timings:a,style:n,options:null}},t.prototype.visitStyle=function(t,e){var n=this._makeStyleAst(t,e);return this._validateStyleAst(n,e),n},t.prototype._makeStyleAst=function(t,e){var n=[];Array.isArray(t.styles)?t.styles.forEach(function(t){"string"==typeof t?t==Fu.a?n.push(t):e.errors.push("The provided style string value "+t+" is not allowed."):n.push(t)}):n.push(t.styles);var a=!1,r=null;return n.forEach(function(t){if(zg(t)){var e=t,n=e.easing;if(n&&(r=n,delete e.easing),!a)for(var i in e)if(e[i].toString().indexOf("{{")>=0){a=!0;break}}}),{type:6,styles:n,easing:r,offset:t.offset,containsDynamicStyles:a,options:null}},t.prototype._validateStyleAst=function(t,e){var n=this,a=e.currentAnimateTimings,r=e.currentTime,i=e.currentTime;a&&i>0&&(i-=a.duration+a.delay),t.styles.forEach(function(t){"string"!=typeof t&&Object.keys(t).forEach(function(a){if(n._driver.validateStyleProperty(a)){var s,o,u,c=e.collectedStyles[e.currentQuerySelector],l=c[a],d=!0;l&&(i!=r&&i>=l.startTime&&r<=l.endTime&&(e.errors.push('The CSS property "'+a+'" that exists between the times of "'+l.startTime+'ms" and "'+l.endTime+'ms" is also being animated in a parallel animation between the times of "'+i+'ms" and "'+r+'ms"'),d=!1),i=l.startTime),d&&(c[a]={startTime:i,endTime:r}),e.options&&(s=e.errors,o=e.options.params||{},(u=wg(t[a])).length&&u.forEach(function(t){o.hasOwnProperty(t)||s.push("Unable to resolve the local animation param "+t+" in the given list of values")}))}else e.errors.push('The provided animation property "'+a+'" is not a supported CSS property for animations')})})},t.prototype.visitKeyframes=function(t,e){var n=this,a={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),a;var r=0,i=[],s=!1,o=!1,u=0,c=t.steps.map(function(t){var a=n._makeStyleAst(t,e),c=null!=a.offset?a.offset:function(t){if("string"==typeof t)return null;var e=null;if(Array.isArray(t))t.forEach(function(t){if(zg(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}});else if(zg(t)&&t.hasOwnProperty("offset")){var n=t;e=parseFloat(n.offset),delete n.offset}return e}(a.styles),l=0;return null!=c&&(r++,l=a.offset=c),o=o||l<0||l>1,s=s||l0&&r0?r==f?1:d*r:i[r],o=s*g;e.currentTime=p+h.delay+o,h.duration=o,n._validateStyleAst(t,e),t.offset=s,a.styles.push(t)}),a},t.prototype.visitReference=function(t,e){return{type:8,animation:Rg(this,xg(t.animation),e),options:Gg(t.options)}},t.prototype.visitAnimateChild=function(t,e){return e.depCount++,{type:9,options:Gg(t.options)}},t.prototype.visitAnimateRef=function(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Gg(t.options)}},t.prototype.visitQuery=function(t,e){var n=e.currentQuerySelector,a=t.options||{};e.queryCount++,e.currentQuery=t;var r=Object(h.__read)(function(t){var e=!!t.split(/\s*,\s*/).find(function(t){return":self"==t});return e&&(t=t.replace(Mg,"")),[t=t.replace(/@\*/g,".ng-trigger").replace(/@\w+/g,function(t){return".ng-trigger-"+t.substr(1)}).replace(/:animating/g,".ng-animating"),e]}(t.selector),2),i=r[0],s=r[1];e.currentQuerySelector=n.length?n+" "+i:i,Kh(e.collectedStyles,e.currentQuerySelector,{});var o=Rg(this,xg(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=n,{type:11,selector:i,limit:a.limit||0,optional:!!a.optional,includeSelf:s,animation:o,originalSelector:t.selector,options:Gg(t.options)}},t.prototype.visitStagger=function(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");var n="full"===t.timings?{duration:0,delay:0,easing:"full"}:hg(t.timings,e.errors,!0);return{type:12,animation:Rg(this,xg(t.animation),e),timings:n,options:null}},t}(),Fg=function(){return function(t){this.errors=t,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles={},this.options=null}}();function zg(t){return!Array.isArray(t)&&"object"==typeof t}function Gg(t){var e;return t?(t=gg(t)).params&&(t.params=(e=t.params)?gg(e):null):t={},t}function Yg(t,e,n){return{duration:t,delay:e,easing:n}}function Vg(t,e,n,a,r,i,s,o){return void 0===s&&(s=null),void 0===o&&(o=!1),{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:a,duration:r,delay:i,totalTime:r+i,easing:s,subTimeline:o}}var Hg=function(){function t(){this._map=new Map}return t.prototype.consume=function(t){var e=this._map.get(t);return e?this._map.delete(t):e=[],e},t.prototype.append=function(t,e){var n=this._map.get(t);n||this._map.set(t,n=[]),n.push.apply(n,Object(h.__spread)(e))},t.prototype.has=function(t){return this._map.has(t)},t.prototype.clear=function(){this._map.clear()},t}(),Bg=new RegExp(":enter","g"),Ug=new RegExp(":leave","g");function Wg(t,e,n,a,r,i,s,o,u,c){return void 0===i&&(i={}),void 0===s&&(s={}),void 0===c&&(c=[]),(new Kg).buildKeyframes(t,e,n,a,r,i,s,o,u,c)}var Kg=function(){function t(){}return t.prototype.buildKeyframes=function(t,e,n,a,r,i,s,o,u,c){void 0===c&&(c=[]),u=u||new Hg;var l=new Zg(t,e,u,a,r,c,[]);l.options=o,l.currentTimeline.setStyles([i],null,l.errors,o),Rg(this,n,l);var d=l.timelines.filter(function(t){return t.containsAnimation()});if(d.length&&Object.keys(s).length){var f=d[d.length-1];f.allowOnlyTimelineStyles()||f.setStyles([s],null,l.errors,o)}return d.length?d.map(function(t){return t.buildKeyframes()}):[Vg(e,[],[],[],0,0,"",!1)]},t.prototype.visitTrigger=function(t,e){},t.prototype.visitState=function(t,e){},t.prototype.visitTransition=function(t,e){},t.prototype.visitAnimateChild=function(t,e){var n=e.subInstructions.consume(e.element);if(n){var a=e.createSubContext(t.options),r=e.currentTimeline.currentTime,i=this._visitSubInstructions(n,a,a.options);r!=i&&e.transformIntoNewTimeline(i)}e.previousNode=t},t.prototype.visitAnimateRef=function(t,e){var n=e.createSubContext(t.options);n.transformIntoNewTimeline(),this.visitReference(t.animation,n),e.transformIntoNewTimeline(n.currentTimeline.currentTime),e.previousNode=t},t.prototype._visitSubInstructions=function(t,e,n){var a=e.currentTimeline.currentTime,r=null!=n.duration?fg(n.duration):null,i=null!=n.delay?fg(n.delay):null;return 0!==r&&t.forEach(function(t){var n=e.appendInstructionToTimeline(t,r,i);a=Math.max(a,n.duration+n.delay)}),a},t.prototype.visitReference=function(t,e){e.updateOptions(t.options,!0),Rg(this,t.animation,e),e.previousNode=t},t.prototype.visitSequence=function(t,e){var n=this,a=e.subContextCount,r=e,i=t.options;if(i&&(i.params||i.delay)&&((r=e.createSubContext(i)).transformIntoNewTimeline(),null!=i.delay)){6==r.previousNode.type&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=$g);var s=fg(i.delay);r.delayNextStep(s)}t.steps.length&&(t.steps.forEach(function(t){return Rg(n,t,r)}),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>a&&r.transformIntoNewTimeline()),e.previousNode=t},t.prototype.visitGroup=function(t,e){var n=this,a=[],r=e.currentTimeline.currentTime,i=t.options&&t.options.delay?fg(t.options.delay):0;t.steps.forEach(function(s){var o=e.createSubContext(t.options);i&&o.delayNextStep(i),Rg(n,s,o),r=Math.max(r,o.currentTimeline.currentTime),a.push(o.currentTimeline)}),a.forEach(function(t){return e.currentTimeline.mergeTimelineCollectedStyles(t)}),e.transformIntoNewTimeline(r),e.previousNode=t},t.prototype._visitTiming=function(t,e){if(t.dynamic){var n=t.strValue;return hg(e.params?Sg(n,e.params,e.errors):n,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}},t.prototype.visitAnimate=function(t,e){var n=e.currentAnimateTimings=this._visitTiming(t.timings,e),a=e.currentTimeline;n.delay&&(e.incrementTime(n.delay),a.snapshotCurrentStyles());var r=t.style;5==r.type?this.visitKeyframes(r,e):(e.incrementTime(n.duration),this.visitStyle(r,e),a.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t},t.prototype.visitStyle=function(t,e){var n=e.currentTimeline,a=e.currentAnimateTimings;!a&&n.getCurrentStyleProperties().length&&n.forwardFrame();var r=a&&a.easing||t.easing;t.isEmptyStep?n.applyEmptyStep(r):n.setStyles(t.styles,r,e.errors,e.options),e.previousNode=t},t.prototype.visitKeyframes=function(t,e){var n=e.currentAnimateTimings,a=e.currentTimeline.duration,r=n.duration,i=e.createSubContext().currentTimeline;i.easing=n.easing,t.styles.forEach(function(t){i.forwardTime((t.offset||0)*r),i.setStyles(t.styles,t.easing,e.errors,e.options),i.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(i),e.transformIntoNewTimeline(a+r),e.previousNode=t},t.prototype.visitQuery=function(t,e){var n=this,a=e.currentTimeline.currentTime,r=t.options||{},i=r.delay?fg(r.delay):0;i&&(6===e.previousNode.type||0==a&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=$g);var s=a,o=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=o.length;var u=null;o.forEach(function(a,r){e.currentQueryIndex=r;var o=e.createSubContext(t.options,a);i&&o.delayNextStep(i),a===e.element&&(u=o.currentTimeline),Rg(n,t.animation,o),o.currentTimeline.applyStylesToKeyframe(),s=Math.max(s,o.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(s),u&&(e.currentTimeline.mergeTimelineCollectedStyles(u),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t},t.prototype.visitStagger=function(t,e){var n=e.parentContext,a=e.currentTimeline,r=t.timings,i=Math.abs(r.duration),s=i*(e.currentQueryTotal-1),o=i*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":o=s-o;break;case"full":o=n.currentStaggerTime}var u=e.currentTimeline;o&&u.delayNextStep(o);var c=u.currentTime;Rg(this,t.animation,e),e.previousNode=t,n.currentStaggerTime=a.currentTime-c+(a.startTime-n.currentTimeline.startTime)},t}(),$g={},Zg=function(){function t(t,e,n,a,r,i,s,o){this._driver=t,this.element=e,this.subInstructions=n,this._enterClassName=a,this._leaveClassName=r,this.errors=i,this.timelines=s,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=$g,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=o||new Xg(this._driver,e,0),s.push(this.currentTimeline)}return Object.defineProperty(t.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),t.prototype.updateOptions=function(t,e){var n=this;if(t){var a=t,r=this.options;null!=a.duration&&(r.duration=fg(a.duration)),null!=a.delay&&(r.delay=fg(a.delay));var i=a.params;if(i){var s=r.params;s||(s=this.options.params={}),Object.keys(i).forEach(function(t){e&&s.hasOwnProperty(t)||(s[t]=Sg(i[t],s,n.errors))})}}},t.prototype._copyOptions=function(){var t={};if(this.options){var e=this.options.params;if(e){var n=t.params={};Object.keys(e).forEach(function(t){n[t]=e[t]})}}return t},t.prototype.createSubContext=function(e,n,a){void 0===e&&(e=null);var r=n||this.element,i=new t(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,a||0));return i.previousNode=this.previousNode,i.currentAnimateTimings=this.currentAnimateTimings,i.options=this._copyOptions(),i.updateOptions(e),i.currentQueryIndex=this.currentQueryIndex,i.currentQueryTotal=this.currentQueryTotal,i.parentContext=this,this.subContextCount++,i},t.prototype.transformIntoNewTimeline=function(t){return this.previousNode=$g,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline},t.prototype.appendInstructionToTimeline=function(t,e,n){var a={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+t.delay,easing:""},r=new Jg(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,a,t.stretchStartingKeyframe);return this.timelines.push(r),a},t.prototype.incrementTime=function(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)},t.prototype.delayNextStep=function(t){t>0&&this.currentTimeline.delayNextStep(t)},t.prototype.invokeQuery=function(t,e,n,a,r,i){var s=[];if(a&&s.push(this.element),t.length>0){t=(t=t.replace(Bg,"."+this._enterClassName)).replace(Ug,"."+this._leaveClassName);var o=this._driver.query(this.element,t,1!=n);0!==n&&(o=n<0?o.slice(o.length+n,o.length):o.slice(0,n)),s.push.apply(s,Object(h.__spread)(o))}return r||0!=s.length||i.push('`query("'+e+'")` returned zero elements. (Use `query("'+e+'", { optional: true })` if you wish to allow this.)'),s},t}(),Xg=function(){function t(t,e,n,a){this._driver=t,this.element=e,this.startTime=n,this._elementTimelineStylesLookup=a,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}return t.prototype.containsAnimation=function(){switch(this._keyframes.size){case 0:return!1;case 1:return this.getCurrentStyleProperties().length>0;default:return!0}},t.prototype.getCurrentStyleProperties=function(){return Object.keys(this._currentKeyframe)},Object.defineProperty(t.prototype,"currentTime",{get:function(){return this.startTime+this.duration},enumerable:!0,configurable:!0}),t.prototype.delayNextStep=function(t){var e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t},t.prototype.fork=function(e,n){return this.applyStylesToKeyframe(),new t(this._driver,e,n||this.currentTime,this._elementTimelineStylesLookup)},t.prototype._loadKeyframe=function(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=Object.create(this._backFill,{}),this._keyframes.set(this.duration,this._currentKeyframe))},t.prototype.forwardFrame=function(){this.duration+=1,this._loadKeyframe()},t.prototype.forwardTime=function(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()},t.prototype._updateStyle=function(t,e){this._localTimelineStyles[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}},t.prototype.allowOnlyTimelineStyles=function(){return this._currentEmptyStepKeyframe!==this._currentKeyframe},t.prototype.applyEmptyStep=function(t){var e=this;t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(function(t){e._backFill[t]=e._globalTimelineStyles[t]||Fu.a,e._currentKeyframe[t]=Fu.a}),this._currentEmptyStepKeyframe=this._currentKeyframe},t.prototype.setStyles=function(t,e,n,a){var r=this;e&&(this._previousKeyframe.easing=e);var i=a&&a.params||{},s=function(t,e){var n,a={};return t.forEach(function(t){"*"===t?(n=n||Object.keys(e)).forEach(function(t){a[t]=Fu.a}):bg(t,!1,a)}),a}(t,this._globalTimelineStyles);Object.keys(s).forEach(function(t){var e=Sg(s[t],i,n);r._pendingStyles[t]=e,r._localTimelineStyles.hasOwnProperty(t)||(r._backFill[t]=r._globalTimelineStyles.hasOwnProperty(t)?r._globalTimelineStyles[t]:Fu.a),r._updateStyle(t,e)})},t.prototype.applyStylesToKeyframe=function(){var t=this,e=this._pendingStyles,n=Object.keys(e);0!=n.length&&(this._pendingStyles={},n.forEach(function(n){t._currentKeyframe[n]=e[n]}),Object.keys(this._localTimelineStyles).forEach(function(e){t._currentKeyframe.hasOwnProperty(e)||(t._currentKeyframe[e]=t._localTimelineStyles[e])}))},t.prototype.snapshotCurrentStyles=function(){var t=this;Object.keys(this._localTimelineStyles).forEach(function(e){var n=t._localTimelineStyles[e];t._pendingStyles[e]=n,t._updateStyle(e,n)})},t.prototype.getFinalKeyframe=function(){return this._keyframes.get(this.duration)},Object.defineProperty(t.prototype,"properties",{get:function(){var t=[];for(var e in this._currentKeyframe)t.push(e);return t},enumerable:!0,configurable:!0}),t.prototype.mergeTimelineCollectedStyles=function(t){var e=this;Object.keys(t._styleSummary).forEach(function(n){var a=e._styleSummary[n],r=t._styleSummary[n];(!a||r.time>a.time)&&e._updateStyle(n,r.value)})},t.prototype.buildKeyframes=function(){var t=this;this.applyStylesToKeyframe();var e=new Set,n=new Set,a=1===this._keyframes.size&&0===this.duration,r=[];this._keyframes.forEach(function(i,s){var o=bg(i,!0);Object.keys(o).forEach(function(t){var a=o[t];a==Fu.l?e.add(t):a==Fu.a&&n.add(t)}),a||(o.offset=s/t.duration),r.push(o)});var i=e.size?Og(e.values()):[],s=n.size?Og(n.values()):[];if(a){var o=r[0],u=gg(o);o.offset=0,u.offset=1,r=[o,u]}return Vg(this.element,r,i,s,this.duration,this.startTime,this.easing,!1)},t}(),Jg=function(t){function e(e,n,a,r,i,s,o){void 0===o&&(o=!1);var u=t.call(this,e,n,s.delay)||this;return u.element=n,u.keyframes=a,u.preStyleProps=r,u.postStyleProps=i,u._stretchStartingKeyframe=o,u.timings={duration:s.duration,delay:s.delay,easing:s.easing},u}return Object(h.__extends)(e,t),e.prototype.containsAnimation=function(){return this.keyframes.length>1},e.prototype.buildKeyframes=function(){var t=this.keyframes,e=this.timings,n=e.delay,a=e.duration,r=e.easing;if(this._stretchStartingKeyframe&&n){var i=[],s=a+n,o=n/s,u=bg(t[0],!1);u.offset=0,i.push(u);var c=bg(t[0],!1);c.offset=Qg(o),i.push(c);for(var l=t.length-1,d=1;d<=l;d++){var f=bg(t[d],!1);f.offset=Qg((n+f.offset*a)/s),i.push(f)}a=s,n=0,r="",t=i}return Vg(this.element,t,this.preStyleProps,this.postStyleProps,a,n,r,!0)},e}(Xg);function Qg(t,e){void 0===e&&(e=3);var n=Math.pow(10,e-1);return Math.round(t*n)/n}var tb=function(){return function(){}}(),eb=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return Object(h.__extends)(e,t),e.prototype.normalizePropertyName=function(t,e){return Cg(t)},e.prototype.normalizeStyleValue=function(t,e,n,a){var r="",i=n.toString().trim();if(nb[e]&&0!==n&&"0"!==n)if("number"==typeof n)r="px";else{var s=n.match(/^[+-]?[\d\.]+([a-z]*)$/);s&&0==s[1].length&&a.push("Please provide a CSS unit value for "+t+":"+n)}return i+r},e}(tb),nb=ab("width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective".split(","));function ab(t){var e={};return t.forEach(function(t){return e[t]=!0}),e}function rb(t,e,n,a,r,i,s,o,u,c,l,d,f){return{type:0,element:t,triggerName:e,isRemovalTransition:r,fromState:n,fromStyles:i,toState:a,toStyles:s,timelines:o,queriedElements:u,preStyleProps:c,postStyleProps:l,totalTime:d,errors:f}}var ib={},sb=function(){function t(t,e,n){this._triggerName=t,this.ast=e,this._stateStyles=n}return t.prototype.match=function(t,e,n,a){return function(t,e,n,a,r){return t.some(function(t){return t(e,n,a,r)})}(this.ast.matchers,t,e,n,a)},t.prototype.buildStyles=function(t,e,n){var a=this._stateStyles["*"],r=this._stateStyles[t],i=a?a.buildStyles(e,n):{};return r?r.buildStyles(e,n):i},t.prototype.build=function(t,e,n,a,r,i,s,o,u,c){var l=[],d=this.ast.options&&this.ast.options.params||ib,f=this.buildStyles(n,s&&s.params||ib,l),p=o&&o.params||ib,g=this.buildStyles(a,p,l),b=new Set,m=new Map,y=new Map,v="void"===a,_={params:Object(h.__assign)({},d,p)},x=c?[]:Wg(t,e,this.ast.animation,r,i,f,g,_,u,l),T=0;if(x.forEach(function(t){T=Math.max(t.duration+t.delay,T)}),l.length)return rb(e,this._triggerName,n,a,v,f,g,[],[],m,y,T,l);x.forEach(function(t){var n=t.element,a=Kh(m,n,{});t.preStyleProps.forEach(function(t){return a[t]=!0});var r=Kh(y,n,{});t.postStyleProps.forEach(function(t){return r[t]=!0}),n!==e&&b.add(n)});var w=Og(b.values());return rb(e,this._triggerName,n,a,v,f,g,x,w,m,y,T)},t}(),ob=function(){function t(t,e){this.styles=t,this.defaultParams=e}return t.prototype.buildStyles=function(t,e){var n={},a=gg(this.defaultParams);return Object.keys(t).forEach(function(e){var n=t[e];null!=n&&(a[e]=n)}),this.styles.styles.forEach(function(t){if("string"!=typeof t){var r=t;Object.keys(r).forEach(function(t){var i=r[t];i.length>1&&(i=Sg(i,a,e)),n[t]=i})}}),n},t}(),ub=function(){function t(t,e){var n=this;this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach(function(t){n.states[t.name]=new ob(t.style,t.options&&t.options.params||{})}),cb(this.states,"true","1"),cb(this.states,"false","0"),e.transitions.forEach(function(e){n.transitionFactories.push(new sb(t,e,n.states))}),this.fallbackTransition=new sb(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[function(t,e){return!0}],options:null,queryCount:0,depCount:0},this.states)}return Object.defineProperty(t.prototype,"containsQueries",{get:function(){return this.ast.queryCount>0},enumerable:!0,configurable:!0}),t.prototype.matchTransition=function(t,e,n,a){return this.transitionFactories.find(function(r){return r.match(t,e,n,a)})||null},t.prototype.matchStyles=function(t,e,n){return this.fallbackTransition.buildStyles(t,e,n)},t}();function cb(t,e,n){t.hasOwnProperty(e)?t.hasOwnProperty(n)||(t[n]=t[e]):t.hasOwnProperty(n)&&(t[e]=t[n])}var lb=new Hg,db=function(){function t(t,e,n){this.bodyNode=t,this._driver=e,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}return t.prototype.register=function(t,e){var n=[],a=qg(this._driver,e,n);if(n.length)throw new Error("Unable to build the animation due to the following errors: "+n.join("\n"));this._animations[t]=a},t.prototype._buildPlayer=function(t,e,n){var a=t.element,r=Hh(0,this._normalizer,0,t.keyframes,e,n);return this._driver.animate(a,r,t.duration,t.delay,t.easing,[],!0)},t.prototype.create=function(t,e,n){var a=this;void 0===n&&(n={});var r,i=[],s=this._animations[t],o=new Map;if(s?(r=Wg(this._driver,e,s,"ng-enter","ng-leave",{},{},n,lb,i)).forEach(function(t){var e=Kh(o,t.element,{});t.postStyleProps.forEach(function(t){return e[t]=null})}):(i.push("The requested animation doesn't exist or has already been destroyed"),r=[]),i.length)throw new Error("Unable to create the animation due to the following errors: "+i.join("\n"));o.forEach(function(t,e){Object.keys(t).forEach(function(n){t[n]=a._driver.computeStyle(e,n,Fu.a)})});var u=Vh(r.map(function(t){var e=o.get(t.element);return a._buildPlayer(t,{},e)}));return this._playersById[t]=u,u.onDestroy(function(){return a.destroy(t)}),this.players.push(u),u},t.prototype.destroy=function(t){var e=this._getPlayer(t);e.destroy(),delete this._playersById[t];var n=this.players.indexOf(e);n>=0&&this.players.splice(n,1)},t.prototype._getPlayer=function(t){var e=this._playersById[t];if(!e)throw new Error("Unable to find the timeline player referenced by "+t);return e},t.prototype.listen=function(t,e,n,a){var r=Wh(e,"","","");return Bh(this._getPlayer(t),n,r,a),function(){}},t.prototype.command=function(t,e,n,a){if("register"!=n)if("create"!=n){var r=this._getPlayer(t);switch(n){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(a[0]));break;case"destroy":this.destroy(t)}}else this.create(t,e,a[0]||{});else this.register(t,a[0])},t}(),fb=[],pb={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},hb={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},gb="__ng_removed",bb=function(){function t(t,e){void 0===e&&(e=""),this.namespaceId=e;var n=t&&t.hasOwnProperty("value");if(this.value=function(t){return null!=t?t:null}(n?t.value:t),n){var a=gg(t);delete a.value,this.options=a}else this.options={};this.options.params||(this.options.params={})}return Object.defineProperty(t.prototype,"params",{get:function(){return this.options.params},enumerable:!0,configurable:!0}),t.prototype.absorbOptions=function(t){var e=t.params;if(e){var n=this.options.params;Object.keys(e).forEach(function(t){null==n[t]&&(n[t]=e[t])})}},t}(),mb=new bb("void"),yb=function(){function t(t,e,n){this.id=t,this.hostElement=e,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,Ib(e,this._hostClassName)}return t.prototype.listen=function(t,e,n,a){var r,i=this;if(!this._triggers.hasOwnProperty(e))throw new Error('Unable to listen on the animation trigger event "'+n+'" because the animation trigger "'+e+"\" doesn't exist!");if(null==n||0==n.length)throw new Error('Unable to listen on the animation trigger "'+e+'" because the provided event is undefined!');if("start"!=(r=n)&&"done"!=r)throw new Error('The provided animation trigger event "'+n+'" for the animation trigger "'+e+'" is not supported!');var s=Kh(this._elementListeners,t,[]),o={name:e,phase:n,callback:a};s.push(o);var u=Kh(this._engine.statesByElement,t,{});return u.hasOwnProperty(e)||(Ib(t,"ng-trigger"),Ib(t,"ng-trigger-"+e),u[e]=mb),function(){i._engine.afterFlush(function(){var t=s.indexOf(o);t>=0&&s.splice(t,1),i._triggers[e]||delete u[e]})}},t.prototype.register=function(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)},t.prototype._getTrigger=function(t){var e=this._triggers[t];if(!e)throw new Error('The provided animation trigger "'+t+'" has not been registered!');return e},t.prototype.trigger=function(t,e,n,a){var r=this;void 0===a&&(a=!0);var i=this._getTrigger(e),s=new _b(this.id,e,t),o=this._engine.statesByElement.get(t);o||(Ib(t,"ng-trigger"),Ib(t,"ng-trigger-"+e),this._engine.statesByElement.set(t,o={}));var u=o[e],c=new bb(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&u&&c.absorbOptions(u.options),o[e]=c,u||(u=mb),"void"===c.value||u.value!==c.value){var l=Kh(this._engine.playersByElement,t,[]);l.forEach(function(t){t.namespaceId==r.id&&t.triggerName==e&&t.queued&&t.destroy()});var d=i.matchTransition(u.value,c.value,t,c.params),f=!1;if(!d){if(!a)return;d=i.fallbackTransition,f=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:d,fromState:u,toState:c,player:s,isFallbackTransition:f}),f||(Ib(t,"ng-animate-queued"),s.onStart(function(){Cb(t,"ng-animate-queued")})),s.onDone(function(){var e=r.players.indexOf(s);e>=0&&r.players.splice(e,1);var n=r._engine.playersByElement.get(t);if(n){var a=n.indexOf(s);a>=0&&n.splice(a,1)}}),this.players.push(s),l.push(s),s}if(!function(t,e){var n=Object.keys(t),a=Object.keys(e);if(n.length!=a.length)return!1;for(var r=0;r=0){for(var a=!1,r=n;r>=0;r--)if(this.driver.containsElement(this._namespaceList[r].hostElement,e)){this._namespaceList.splice(r+1,0,t),a=!0;break}a||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t},t.prototype.register=function(t,e){var n=this._namespaceLookup[t];return n||(n=this.createNamespace(t,e)),n},t.prototype.registerTrigger=function(t,e,n){var a=this._namespaceLookup[t];a&&a.register(e,n)&&this.totalAnimations++},t.prototype.destroy=function(t,e){var n=this;if(t){var a=this._fetchNamespace(t);this.afterFlush(function(){n.namespacesByHostElement.delete(a.hostElement),delete n._namespaceLookup[t];var e=n._namespaceList.indexOf(a);e>=0&&n._namespaceList.splice(e,1)}),this.afterFlushAnimationsDone(function(){return a.destroy(e)})}},t.prototype._fetchNamespace=function(t){return this._namespaceLookup[t]},t.prototype.fetchNamespacesByElement=function(t){var e=new Set,n=this.statesByElement.get(t);if(n)for(var a=Object.keys(n),r=0;r=0&&this.collectedLeaveElements.splice(i,1)}if(t){var s=this._fetchNamespace(t);s&&s.insertNode(e,n)}a&&this.collectEnterElement(e)}},t.prototype.collectEnterElement=function(t){this.collectedEnterElements.push(t)},t.prototype.markElementAsDisabled=function(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),Ib(t,"ng-animate-disabled")):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Cb(t,"ng-animate-disabled"))},t.prototype.removeNode=function(t,e,n){if(xb(e)){var a=t?this._fetchNamespace(t):null;a?a.removeNode(e,n):this.markElementAsRemoved(t,e,!1,n)}else this._onRemovalComplete(e,n)},t.prototype.markElementAsRemoved=function(t,e,n,a){this.collectedLeaveElements.push(e),e[gb]={namespaceId:t,setForRemoval:a,hasAnimation:n,removedBeforeQueried:!1}},t.prototype.listen=function(t,e,n,a,r){return xb(e)?this._fetchNamespace(t).listen(e,n,a,r):function(){}},t.prototype._buildInstruction=function(t,e,n,a,r){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,n,a,t.fromState.options,t.toState.options,e,r)},t.prototype.destroyInnerAnimations=function(t){var e=this,n=this.driver.query(t,".ng-trigger",!0);n.forEach(function(t){return e.destroyActiveAnimationsForElement(t)}),0!=this.playersByQueriedElement.size&&(n=this.driver.query(t,".ng-animating",!0)).forEach(function(t){return e.finishActiveQueriedAnimationOnElement(t)})},t.prototype.destroyActiveAnimationsForElement=function(t){var e=this.playersByElement.get(t);e&&e.forEach(function(t){t.queued?t.markedForDestroy=!0:t.destroy()})},t.prototype.finishActiveQueriedAnimationOnElement=function(t){var e=this.playersByQueriedElement.get(t);e&&e.forEach(function(t){return t.finish()})},t.prototype.whenRenderingDone=function(){var t=this;return new Promise(function(e){if(t.players.length)return Vh(t.players).onDone(function(){return e()});e()})},t.prototype.processLeaveNode=function(t){var e=this,n=t[gb];if(n&&n.setForRemoval){if(t[gb]=pb,n.namespaceId){this.destroyInnerAnimations(t);var a=this._fetchNamespace(n.namespaceId);a&&a.clearElementCache(t)}this._onRemovalComplete(t,n.setForRemoval)}this.driver.matchesElement(t,".ng-animate-disabled")&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(function(t){e.markElementAsDisabled(t,!1)})},t.prototype.flush=function(t){var e=this;void 0===t&&(t=-1);var n=[];if(this.newHostElements.size&&(this.newHostElements.forEach(function(t,n){return e._balanceNamespaceList(t,n)}),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(var a=0;a=0;O--)this._namespaceList[O].drainQueuedTransitions(e).forEach(function(t){var e=t.player,i=t.element;if(w.push(e),n.collectedEnterElements.length){var l=i[gb];if(l&&l.setForMove)return void e.destroy()}var f=!d||!n.driver.containsElement(d,i),p=x.get(i),h=g.get(i),b=n._buildInstruction(t,a,h,p,f);if(b.errors&&b.errors.length)S.push(b);else{if(f)return e.onStart(function(){return _g(i,b.fromStyles)}),e.onDestroy(function(){return vg(i,b.toStyles)}),void r.push(e);if(t.isFallbackTransition)return e.onStart(function(){return _g(i,b.fromStyles)}),e.onDestroy(function(){return vg(i,b.toStyles)}),void r.push(e);b.timelines.forEach(function(t){return t.stretchStartingKeyframe=!0}),a.append(i,b.timelines),s.push({instruction:b,player:e,element:i}),b.queriedElements.forEach(function(t){return Kh(o,t,[]).push(e)}),b.preStyleProps.forEach(function(t,e){var n=Object.keys(t);if(n.length){var a=u.get(e);a||u.set(e,a=new Set),n.forEach(function(t){return a.add(t)})}}),b.postStyleProps.forEach(function(t,e){var n=Object.keys(t),a=c.get(e);a||c.set(e,a=new Set),n.forEach(function(t){return a.add(t)})})}});if(S.length){var I=[];S.forEach(function(t){I.push("@"+t.triggerName+" has failed due to:\n"),t.errors.forEach(function(t){return I.push("- "+t+"\n")})}),w.forEach(function(t){return t.destroy()}),this.reportError(I)}var C=new Map,k=new Map;s.forEach(function(t){var e=t.element;a.has(e)&&(k.set(e,e),n._beforeAnimationBuild(t.player.namespaceId,t.instruction,C))}),r.forEach(function(t){var e=t.element;n._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach(function(t){Kh(C,e,[]).push(t),t.destroy()})});var N=m.filter(function(t){return Nb(t,u,c)}),R=new Map;wb(R,this.driver,v,c,Fu.a).forEach(function(t){Nb(t,u,c)&&N.push(t)});var A=new Map;p.forEach(function(t,e){wb(A,n.driver,new Set(t),u,Fu.l)}),N.forEach(function(t){var e=R.get(t),n=A.get(t);R.set(t,Object(h.__assign)({},e,n))});var D=[],E=[],L={};s.forEach(function(t){var e=t.element,s=t.player,o=t.instruction;if(a.has(e)){if(l.has(e))return s.onDestroy(function(){return vg(e,o.toStyles)}),s.disabled=!0,s.overrideTotalTime(o.totalTime),void r.push(s);var u=L;if(k.size>1){for(var c=e,d=[];c=c.parentNode;){var f=k.get(c);if(f){u=f;break}d.push(c)}d.forEach(function(t){return k.set(t,u)})}var p=n._buildAnimation(s.namespaceId,o,C,i,A,R);if(s.setRealPlayer(p),u===L)D.push(s);else{var h=n.playersByElement.get(u);h&&h.length&&(s.parentPlayer=Vh(h)),r.push(s)}}else _g(e,o.fromStyles),s.onDestroy(function(){return vg(e,o.toStyles)}),E.push(s),l.has(e)&&r.push(s)}),E.forEach(function(t){var e=i.get(t.element);if(e&&e.length){var n=Vh(e);t.setRealPlayer(n)}}),r.forEach(function(t){t.parentPlayer?t.syncPlayerEvents(t.parentPlayer):t.destroy()});for(var P=0;P0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,n):new Fu.d(t.duration,t.delay)},t}(),_b=function(){function t(t,e,n){this.namespaceId=t,this.triggerName=e,this.element=n,this._player=new Fu.d,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}return t.prototype.setRealPlayer=function(t){var e=this;this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(function(n){e._queuedCallbacks[n].forEach(function(e){return Bh(t,n,void 0,e)})}),this._queuedCallbacks={},this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)},t.prototype.getRealPlayer=function(){return this._player},t.prototype.overrideTotalTime=function(t){this.totalTime=t},t.prototype.syncPlayerEvents=function(t){var e=this,n=this._player;n.triggerCallback&&t.onStart(function(){return n.triggerCallback("start")}),t.onDone(function(){return e.finish()}),t.onDestroy(function(){return e.destroy()})},t.prototype._queueEvent=function(t,e){Kh(this._queuedCallbacks,t,[]).push(e)},t.prototype.onDone=function(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)},t.prototype.onStart=function(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)},t.prototype.onDestroy=function(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)},t.prototype.init=function(){this._player.init()},t.prototype.hasStarted=function(){return!this.queued&&this._player.hasStarted()},t.prototype.play=function(){!this.queued&&this._player.play()},t.prototype.pause=function(){!this.queued&&this._player.pause()},t.prototype.restart=function(){!this.queued&&this._player.restart()},t.prototype.finish=function(){this._player.finish()},t.prototype.destroy=function(){this.destroyed=!0,this._player.destroy()},t.prototype.reset=function(){!this.queued&&this._player.reset()},t.prototype.setPosition=function(t){this.queued||this._player.setPosition(t)},t.prototype.getPosition=function(){return this.queued?0:this._player.getPosition()},t.prototype.triggerCallback=function(t){var e=this._player;e.triggerCallback&&e.triggerCallback(t)},t}();function xb(t){return t&&1===t.nodeType}function Tb(t,e){var n=t.style.display;return t.style.display=null!=e?e:"none",n}function wb(t,e,n,a,r){var i=[];n.forEach(function(t){return i.push(Tb(t))});var s=[];a.forEach(function(n,a){var i={};n.forEach(function(t){var n=i[t]=e.computeStyle(a,t,r);n&&0!=n.length||(a[gb]=hb,s.push(a))}),t.set(a,i)});var o=0;return n.forEach(function(t){return Tb(t,i[o++])}),s}function Sb(t,e){var n=new Map;if(t.forEach(function(t){return n.set(t,[])}),0==e.length)return n;var a=new Set(e),r=new Map;return e.forEach(function(t){var e=function t(e){if(!e)return 1;var i=r.get(e);if(i)return i;var s=e.parentNode;return i=n.has(s)?s:a.has(s)?1:t(s),r.set(e,i),i}(t);1!==e&&n.get(e).push(t)}),n}var Ob="$$classes";function Ib(t,e){if(t.classList)t.classList.add(e);else{var n=t[Ob];n||(n=t[Ob]={}),n[e]=!0}}function Cb(t,e){if(t.classList)t.classList.remove(e);else{var n=t[Ob];n&&delete n[e]}}function kb(t,e,n){Vh(n).onDone(function(){return t.processLeaveNode(e)})}function Nb(t,e,n){var a=n.get(t);if(!a)return!1;var r=e.get(t);return r?a.forEach(function(t){return r.add(t)}):e.set(t,a),n.delete(t),!0}var Rb=function(){function t(t,e,n){var a=this;this.bodyNode=t,this._driver=e,this._triggerCache={},this.onRemovalComplete=function(t,e){},this._transitionEngine=new vb(t,e,n),this._timelineEngine=new db(t,e,n),this._transitionEngine.onRemovalComplete=function(t,e){return a.onRemovalComplete(t,e)}}return t.prototype.registerTrigger=function(t,e,n,a,r){var i=t+"-"+a,s=this._triggerCache[i];if(!s){var o=[],u=qg(this._driver,r,o);if(o.length)throw new Error('The animation trigger "'+a+'" has failed to build due to the following errors:\n - '+o.join("\n - "));s=function(t,e){return new ub(t,e)}(a,u),this._triggerCache[i]=s}this._transitionEngine.registerTrigger(e,a,s)},t.prototype.register=function(t,e){this._transitionEngine.register(t,e)},t.prototype.destroy=function(t,e){this._transitionEngine.destroy(t,e)},t.prototype.onInsert=function(t,e,n,a){this._transitionEngine.insertNode(t,e,n,a)},t.prototype.onRemove=function(t,e,n){this._transitionEngine.removeNode(t,e,n)},t.prototype.disableAnimations=function(t,e){this._transitionEngine.markElementAsDisabled(t,e)},t.prototype.process=function(t,e,n,a){if("@"==n.charAt(0)){var r=Object(h.__read)($h(n),2);this._timelineEngine.command(r[0],e,r[1],a)}else this._transitionEngine.trigger(t,e,n,a)},t.prototype.listen=function(t,e,n,a,r){if("@"==n.charAt(0)){var i=Object(h.__read)($h(n),2);return this._timelineEngine.listen(i[0],e,i[1],r)}return this._transitionEngine.listen(t,e,n,a,r)},t.prototype.flush=function(t){void 0===t&&(t=-1),this._transitionEngine.flush(t)},Object.defineProperty(t.prototype,"players",{get:function(){return this._transitionEngine.players.concat(this._timelineEngine.players)},enumerable:!0,configurable:!0}),t.prototype.whenRenderingDone=function(){return this._transitionEngine.whenRenderingDone()},t}(),Ab="animation",Db="animationend",Eb=function(){function t(t,e,n,a,r,i,s){var o=this;this._element=t,this._name=e,this._duration=n,this._delay=a,this._easing=r,this._fillMode=i,this._onDoneFn=s,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=function(t){return o._handleCallback(t)}}return t.prototype.apply=function(){var t,e,n;e=this._duration+"ms "+this._easing+" "+this._delay+"ms 1 normal "+this._fillMode+" "+this._name,(n=Fb(t=this._element,"").trim()).length&&(function(t,e){for(var n=0;n=this._delay&&n>=this._duration&&this.finish()},t.prototype.finish=function(){this._finished||(this._finished=!0,this._onDoneFn(),qb(this._element,this._eventFn,!0))},t.prototype.destroy=function(){var t,e,n,a;this._destroyed||(this._destroyed=!0,this.finish(),e=this._name,(a=Mb(n=Fb(t=this._element,"").split(","),e))>=0&&(n.splice(a,1),jb(t,"",n.join(","))))},t}();function Lb(t,e,n){jb(t,"PlayState",n,Pb(t,e))}function Pb(t,e){var n=Fb(t,"");return n.indexOf(",")>0?Mb(n.split(","),e):Mb([n],e)}function Mb(t,e){for(var n=0;n=0)return n;return-1}function qb(t,e,n){n?t.removeEventListener(Db,e):t.addEventListener(Db,e)}function jb(t,e,n,a){var r=Ab+e;if(null!=a){var i=t.style[r];if(i.length){var s=i.split(",");s[a]=n,n=s.join(",")}}t.style[r]=n}function Fb(t,e){return t.style[Ab+e]}var zb="linear",Gb=function(){function t(t,e,n,a,r,i,s){this.element=t,this.keyframes=e,this.animationName=n,this._duration=a,this._delay=r,this._finalStyles=s,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=i||zb,this.totalTime=a+r,this._buildStyler()}return t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.destroy=function(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype._flushDoneFns=function(){this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[]},t.prototype._flushStartFns=function(){this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[]},t.prototype.finish=function(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._flushDoneFns())},t.prototype.setPosition=function(t){this._styler.setPosition(t)},t.prototype.getPosition=function(){return this._styler.getPosition()},t.prototype.hasStarted=function(){return this._state>=2},t.prototype.init=function(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())},t.prototype.play=function(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2),this._styler.resume()},t.prototype.pause=function(){this.init(),this._styler.pause()},t.prototype.restart=function(){this.reset(),this.play()},t.prototype.reset=function(){this._styler.destroy(),this._buildStyler(),this._styler.apply()},t.prototype._buildStyler=function(){var t=this;this._styler=new Eb(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",function(){return t.finish()})},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t.prototype.beforeDestroy=function(){var t=this;this.init();var e={};if(this.hasStarted()){var n=this._state>=3;Object.keys(this._finalStyles).forEach(function(a){"offset"!=a&&(e[a]=n?t._finalStyles[a]:Ag(t.element,a))})}this.currentSnapshot=e},t}(),Yb=function(t){function e(e,n){var a=t.call(this)||this;return a.element=e,a._startingStyles={},a.__initialized=!1,a._styles=ug(n),a}return Object(h.__extends)(e,t),e.prototype.init=function(){var e=this;!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach(function(t){e._startingStyles[t]=e.element.style[t]}),t.prototype.init.call(this))},e.prototype.play=function(){var e=this;this._startingStyles&&(this.init(),Object.keys(this._styles).forEach(function(t){return e.element.style.setProperty(t,e._styles[t])}),t.prototype.play.call(this))},e.prototype.destroy=function(){var e=this;this._startingStyles&&(Object.keys(this._startingStyles).forEach(function(t){var n=e._startingStyles[t];n?e.element.style.setProperty(t,n):e.element.style.removeProperty(t)}),this._startingStyles=null,t.prototype.destroy.call(this))},e}(Fu.d),Vb=function(){function t(){this._count=0,this._head=document.querySelector("head"),this._warningIssued=!1}return t.prototype.validateStyleProperty=function(t){return rg(t)},t.prototype.matchesElement=function(t,e){return ig(t,e)},t.prototype.containsElement=function(t,e){return sg(t,e)},t.prototype.query=function(t,e,n){return og(t,e,n)},t.prototype.computeStyle=function(t,e,n){return window.getComputedStyle(t)[e]},t.prototype.buildKeyframeElement=function(t,e,n){n=n.map(function(t){return ug(t)});var a="@keyframes "+e+" {\n",r="";n.forEach(function(t){r=" ";var e=parseFloat(t.offset);a+=""+r+100*e+"% {\n",r+=" ",Object.keys(t).forEach(function(e){var n=t[e];switch(e){case"offset":return;case"easing":return void(n&&(a+=r+"animation-timing-function: "+n+";\n"));default:return void(a+=""+r+e+": "+n+";\n")}}),a+=r+"}\n"}),a+="}\n";var i=document.createElement("style");return i.innerHTML=a,i},t.prototype.animate=function(t,e,n,a,r,i,s){void 0===i&&(i=[]),s&&this._notifyFaultyScrubber();var o=i.filter(function(t){return t instanceof Gb}),u={};kg(n,a)&&o.forEach(function(t){var e=t.currentSnapshot;Object.keys(e).forEach(function(t){return u[t]=e[t]})});var c=function(t){var e={};return t&&(Array.isArray(t)?t:[t]).forEach(function(t){Object.keys(t).forEach(function(n){"offset"!=n&&"easing"!=n&&(e[n]=t[n])})}),e}(e=Ng(t,e,u));if(0==n)return new Yb(t,c);var l="gen_css_kf_"+this._count++,d=this.buildKeyframeElement(t,l,e);document.querySelector("head").appendChild(d);var f=new Gb(t,e,l,n,a,r,c);return f.onDestroy(function(){var t;(t=d).parentNode.removeChild(t)}),f},t.prototype._notifyFaultyScrubber=function(){this._warningIssued||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n"," visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),this._warningIssued=!0)},t}(),Hb=function(){function t(t,e,n){this.element=t,this.keyframes=e,this.options=n,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.delay||0,this.time=this._duration+this._delay}return t.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(t){return t()}),this._onDoneFns=[])},t.prototype.init=function(){this._buildPlayer(),this._preparePlayerBeforeStart()},t.prototype._buildPlayer=function(){var t=this;if(!this._initialized){this._initialized=!0;var e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:{},this.domPlayer.addEventListener("finish",function(){return t._onFinish()})}},t.prototype._preparePlayerBeforeStart=function(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()},t.prototype._triggerWebAnimation=function(t,e,n){return t.animate(e,n)},t.prototype.onStart=function(t){this._onStartFns.push(t)},t.prototype.onDone=function(t){this._onDoneFns.push(t)},t.prototype.onDestroy=function(t){this._onDestroyFns.push(t)},t.prototype.play=function(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(function(t){return t()}),this._onStartFns=[],this._started=!0),this.domPlayer.play()},t.prototype.pause=function(){this.init(),this.domPlayer.pause()},t.prototype.finish=function(){this.init(),this._onFinish(),this.domPlayer.finish()},t.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},t.prototype._resetDomPlayerState=function(){this.domPlayer&&this.domPlayer.cancel()},t.prototype.restart=function(){this.reset(),this.play()},t.prototype.hasStarted=function(){return this._started},t.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._onDestroyFns.forEach(function(t){return t()}),this._onDestroyFns=[])},t.prototype.setPosition=function(t){this.domPlayer.currentTime=t*this.time},t.prototype.getPosition=function(){return this.domPlayer.currentTime/this.time},Object.defineProperty(t.prototype,"totalTime",{get:function(){return this._delay+this._duration},enumerable:!0,configurable:!0}),t.prototype.beforeDestroy=function(){var t=this,e={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(e[n]=t._finished?t._finalKeyframe[n]:Ag(t.element,n))}),this.currentSnapshot=e},t.prototype.triggerCallback=function(t){var e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(function(t){return t()}),e.length=0},t}(),Bb=function(){function t(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(Ub().toString()),this._cssKeyframesDriver=new Vb}return t.prototype.validateStyleProperty=function(t){return rg(t)},t.prototype.matchesElement=function(t,e){return ig(t,e)},t.prototype.containsElement=function(t,e){return sg(t,e)},t.prototype.query=function(t,e,n){return og(t,e,n)},t.prototype.computeStyle=function(t,e,n){return window.getComputedStyle(t)[e]},t.prototype.overrideWebAnimationsSupport=function(t){this._isNativeImpl=t},t.prototype.animate=function(t,e,n,a,r,i,s){if(void 0===i&&(i=[]),!s&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(t,e,n,a,r,i);var o={duration:n,delay:a,fill:0==a?"both":"forwards"};r&&(o.easing=r);var u={},c=i.filter(function(t){return t instanceof Hb});return kg(n,a)&&c.forEach(function(t){var e=t.currentSnapshot;Object.keys(e).forEach(function(t){return u[t]=e[t]})}),e=Ng(t,e=e.map(function(t){return bg(t,!1)}),u),new Hb(t,e,o)},t}();function Ub(){return"undefined"!=typeof window&&void 0!==window.document&&Element.prototype.animate||{}}var Wb=function(t){function e(e,n){var a=t.call(this)||this;return a._nextAnimationId=0,a._renderer=e.createRenderer(n.body,{id:"0",encapsulation:s.ViewEncapsulation.None,styles:[],data:{animation:[]}}),a}return Object(h.__extends)(e,t),e.prototype.build=function(t){var e=this._nextAnimationId.toString();this._nextAnimationId++;var n=Array.isArray(t)?Object(Fu.f)(t):t;return Zb(this._renderer,null,e,"register",[n]),new Kb(e,this._renderer)},e}(Fu.b),Kb=function(t){function e(e,n){var a=t.call(this)||this;return a._id=e,a._renderer=n,a}return Object(h.__extends)(e,t),e.prototype.create=function(t,e){return new $b(this._id,t,e||{},this._renderer)},e}(Fu.c),$b=function(){function t(t,e,n,a){this.id=t,this.element=e,this._renderer=a,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}return t.prototype._listen=function(t,e){return this._renderer.listen(this.element,"@@"+this.id+":"+t,e)},t.prototype._command=function(t){for(var e=[],n=1;n=0&&t0&&t.WHITELIST.includes(e.url[0].path))return Object(bc.a)(!0);var a=e.data.moduleStatusGuardConfig;return this.http.get("api/"+a.apiPath+"/status").pipe(Object(Ui.a)(function(t){return t.available||n.router.navigate([a.redirectTo,t.message||""]),t.available}),Object(zh.a)(function(){return n.router.navigate([a.redirectTo]),Object(bc.a)(!1)}))},t.WHITELIST=["501"],t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c),s.inject(et.l))},token:t,providedIn:"root"}),t}(),cm=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h.__extends(e,t),e.prototype.resolve=function(t){var e=[],n=t.queryParams.fromLink||null,a="";switch(n){case"/monitor":a="Monitors";break;case"/hosts":a="Hosts"}return e.push({text:"Cluster",path:null}),e.push({text:a,path:n}),e.push({text:"Performance Counters",path:""}),e},e}(Ih),lm=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return h.__extends(e,t),e.prototype.resolve=function(t){var e=t.params.name;return[{text:pt.startCase(e),path:e}]},e}(Ih),dm={breadcrumbs:"Cluster/Hosts"},fm={breadcrumbs:"Cluster/Monitors"},pm={breadcrumbs:"Cluster/OSDs"},hm={breadcrumbs:"Cluster/Configuration"},gm={breadcrumbs:Xn.a.EDIT},bm={breadcrumbs:"Cluster/CRUSH map"},mm={breadcrumbs:"Cluster/Logs"},ym={breadcrumbs:"Cluster/Monitoring"},vm={breadcrumbs:Xn.a.CREATE+" Silence"},_m={breadcrumbs:Xn.a.CREATE},xm={breadcrumbs:Xn.a.EDIT},Tm={breadcrumbs:Xn.a.RECREATE},wm={breadcrumbs:cm},Sm={breadcrumbs:"Cluster/Manager modules"},Om={breadcrumbs:lm},Im={breadcrumbs:"Pools"},Cm={breadcrumbs:!0,text:"Block",path:null},km={breadcrumbs:"Filesystems"},Nm={moduleStatusGuardConfig:{apiPath:"rgw",redirectTo:"rgw/501"},breadcrumbs:!0,text:"Object Gateway",path:null},Rm={breadcrumbs:"User management",path:null},Am={breadcrumbs:"NFS"},Dm={moduleStatusGuardConfig:{apiPath:"nfs-ganesha",redirectTo:"nfs/501"},breadcrumbs:"NFS"},Em={breadcrumbs:Xn.a.CREATE},Lm={breadcrumbs:Xn.a.EDIT},Pm=function(){return function(){}}(),Mm=n("IzCI"),qm=n("Dwqy"),jm=n("uYzU"),Fm=n("uhwM"),zm=n("nSDx"),Gm=n("SB+Q"),Ym=n("BQkM"),Vm=n("dEH0"),Hm=n("G1/K"),Bm=n("TJUb"),Um=n("lTVp"),Wm=n("FO+L"),Km=n("nhM1"),$m=n("BARL"),Zm=n("JZ5S"),Xm=n("Da1D"),Jm=function(){return function(){this.closeOthers=!1,this.isAnimated=!1}}(),Qm=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[Jm]}},t}(),ty=function(){function t(t){this.http=t}return t.prototype.jsError=function(t,e,n){return this.http.post("ui-api/logging/js-error",{url:t,message:e,stack:n})},t.ngInjectableDef=s.defineInjectable({factory:function(){return new t(s.inject(Nt.c))},token:t,providedIn:Rt.a}),t}(),ey=function(){function t(t){this.injector=t}return t.prototype.handleError=function(t){var e=this.injector.get(ty),n=window.location.href;throw e.jsError(n,t&&t.message,t&&t.stack).subscribe(),t},t}(),ny=n("9Xeq"),ay=n("yGOH"),ry=n("V/fk"),iy=n("F8xH"),sy=n("ChqD"),oy=n("PCNd"),uy=n("LceX"),cy=function(){return function(){}}(),ly=function(){return function(){}}(),dy=n("G6Q+"),fy=n("STEd"),py=function(){return function(){}}(),hy=function(){return function(){}}(),gy=n("kJI8"),by=function(){return function(){}}(),my=function(){return function(){}}(),yy=function(){return function(){}}(),vy=function(){return function(){}}(),_y=s["\u0275cmf"](c,[p],function(t){return s["\u0275mod"]([s["\u0275mpd"](512,s.ComponentFactoryResolver,s["\u0275CodegenComponentFactoryResolver"],[[8,[N,q,K,$.a,Me,un,bn,Ra,$a,yr,Nr,Hi,ks,Qs,ro,bo,Bo,gu,_u,qu,Rl,Ml,id,ld,gd,bd.a,md.a,yd.a,vd.a,_d.a,_d.b,xd.a,Td.a,wd.a,Rd,Ad.a,Ad.c,Ad.b,Wd,Kn,ef,cf,wf,Rf,Zf,sp,jh]],[3,s.ComponentFactoryResolver],s.NgModuleRef]),s["\u0275mpd"](4608,Nt.j,Nt.p,[i.DOCUMENT,s.PLATFORM_ID,Nt.n]),s["\u0275mpd"](4608,Nt.q,Nt.q,[Nt.j,Nt.o]),s["\u0275mpd"](4608,d.a,d.a,[]),s["\u0275mpd"](5120,Nt.a,function(t,e,n,a){return[t,new Gh(e,n,a)]},[Nt.q,et.l,d.a,Qn.a]),s["\u0275mpd"](4608,Nt.m,Nt.m,[]),s["\u0275mpd"](6144,Nt.k,null,[Nt.m]),s["\u0275mpd"](4608,Nt.i,Nt.i,[Nt.k]),s["\u0275mpd"](6144,Nt.b,null,[Nt.i]),s["\u0275mpd"](4608,Nt.g,Nt.l,[Nt.b,s.Injector]),s["\u0275mpd"](4608,Nt.c,Nt.c,[Nt.g]),s["\u0275mpd"](4352,s.LOCALE_ID,"en-US",[]),s["\u0275mpd"](4608,i.NgLocalization,i.NgLocaleLocalization,[s.LOCALE_ID,[2,i["\u0275angular_packages_common_common_a"]]]),s["\u0275mpd"](5120,s.APP_ID,s["\u0275angular_packages_core_core_h"],[]),s["\u0275mpd"](5120,s.IterableDiffers,s["\u0275angular_packages_core_core_q"],[]),s["\u0275mpd"](5120,s.KeyValueDiffers,s["\u0275angular_packages_core_core_r"],[]),s["\u0275mpd"](4608,ze.DomSanitizer,ze["\u0275DomSanitizerImpl"],[i.DOCUMENT]),s["\u0275mpd"](6144,s.Sanitizer,null,[ze.DomSanitizer]),s["\u0275mpd"](4608,ze.HAMMER_GESTURE_CONFIG,ze.HammerGestureConfig,[]),s["\u0275mpd"](5120,ze.EVENT_MANAGER_PLUGINS,function(t,e,n,a,r,i,s,o){return[new ze["\u0275DomEventsPlugin"](t,e,n),new ze["\u0275KeyEventsPlugin"](a),new ze["\u0275HammerGesturesPlugin"](r,i,s,o)]},[i.DOCUMENT,s.NgZone,s.PLATFORM_ID,i.DOCUMENT,i.DOCUMENT,ze.HAMMER_GESTURE_CONFIG,s["\u0275Console"],[2,ze.HAMMER_LOADER]]),s["\u0275mpd"](4608,ze.EventManager,ze.EventManager,[ze.EVENT_MANAGER_PLUGINS,s.NgZone]),s["\u0275mpd"](135680,ze["\u0275DomSharedStylesHost"],ze["\u0275DomSharedStylesHost"],[i.DOCUMENT]),s["\u0275mpd"](4608,ze["\u0275DomRendererFactory2"],ze["\u0275DomRendererFactory2"],[ze.EventManager,ze["\u0275DomSharedStylesHost"]]),s["\u0275mpd"](5120,lg,em,[]),s["\u0275mpd"](5120,tb,nm,[]),s["\u0275mpd"](4608,Rb,tm,[i.DOCUMENT,lg,tb]),s["\u0275mpd"](5120,s.RendererFactory2,am,[ze["\u0275DomRendererFactory2"],Rb,s.NgZone]),s["\u0275mpd"](6144,ze["\u0275SharedStylesHost"],null,[ze["\u0275DomSharedStylesHost"]]),s["\u0275mpd"](4608,s.Testability,s.Testability,[s.NgZone]),s["\u0275mpd"](4608,Fu.b,Wb,[s.RendererFactory2,ze.DOCUMENT]),s["\u0275mpd"](5120,et.a,et.B,[et.l]),s["\u0275mpd"](4608,et.f,et.f,[]),s["\u0275mpd"](6144,et.g,null,[et.f]),s["\u0275mpd"](135680,et.r,et.r,[et.l,s.NgModuleFactoryLoader,s.Compiler,s.Injector,et.g]),s["\u0275mpd"](4608,et.e,et.e,[]),s["\u0275mpd"](5120,et.F,et.x,[et.l,i.ViewportScroller,et.h]),s["\u0275mpd"](5120,et.i,et.E,[et.C]),s["\u0275mpd"](5120,s.APP_BOOTSTRAP_LISTENER,function(t){return[t]},[et.i]),s["\u0275mpd"](4608,lm,lm,[]),s["\u0275mpd"](4608,cm,cm,[]),s["\u0275mpd"](4608,we.E,we.E,[]),s["\u0275mpd"](4608,we.h,we.h,[]),s["\u0275mpd"](5120,s.TRANSLATIONS,u,[s.LOCALE_ID]),s["\u0275mpd"](4608,Tt.a,Tt.a,[s.TRANSLATIONS_FORMAT,s.TRANSLATIONS,s.LOCALE_ID,[2,Tt.b]]),s["\u0275mpd"](4608,Da.a,Da.a,[Tt.a]),s["\u0275mpd"](4608,i.DatePipe,i.DatePipe,[s.LOCALE_ID]),s["\u0275mpd"](4608,Xe.a,Xe.a,[]),s["\u0275mpd"](4608,Ye.a,Ye.a,[]),s["\u0275mpd"](4608,Ct.a,Ct.a,[]),s["\u0275mpd"](4608,gt.a,gt.a,[Ct.a]),s["\u0275mpd"](4608,Mm.a,Mm.a,[Ct.a]),s["\u0275mpd"](4608,bt.a,bt.a,[Ct.a]),s["\u0275mpd"](4608,qm.a,qm.a,[]),s["\u0275mpd"](4608,jm.a,jm.a,[]),s["\u0275mpd"](4608,Fm.a,Fm.a,[]),s["\u0275mpd"](4608,Ci.a,Ci.a,[]),s["\u0275mpd"](4608,In.a,In.a,[i.DatePipe]),s["\u0275mpd"](4608,zm.a,zm.a,[]),s["\u0275mpd"](4608,Gm.a,Gm.a,[]),s["\u0275mpd"](4608,ic.a,ic.a,[]),s["\u0275mpd"](4608,Ym.a,Ym.a,[]),s["\u0275mpd"](4608,Vm.a,Vm.a,[]),s["\u0275mpd"](4608,Hm.a,Hm.a,[Tt.a]),s["\u0275mpd"](4608,As.a,As.a,[]),s["\u0275mpd"](4608,Bm.a,Bm.a,[]),s["\u0275mpd"](4608,Um.b,Um.b,[]),s["\u0275mpd"](4608,J.a,J.a,[]),s["\u0275mpd"](4608,tt.a,tt.a,[s.RendererFactory2,s.PLATFORM_ID]),s["\u0275mpd"](4608,Q.a,Q.a,[s.ComponentFactoryResolver,s.NgZone,s.Injector,tt.a,s.ApplicationRef]),s["\u0275mpd"](4608,l.a,l.a,[]),s["\u0275mpd"](4608,ha.b,ha.b,[s.RendererFactory2,Q.a]),s["\u0275mpd"](4608,Wm.ScrollbarHelper,Wm.ScrollbarHelper,[ze.DOCUMENT]),s["\u0275mpd"](4608,Km.DimensionsHelper,Km.DimensionsHelper,[]),s["\u0275mpd"](4608,$m.ColumnChangesService,$m.ColumnChangesService,[]),s["\u0275mpd"](4608,mn.f,mn.f,[]),s["\u0275mpd"](4608,sm.a,sm.a,[et.l,d.a]),s["\u0275mpd"](4608,X.e,X.e,[]),s["\u0275mpd"](4608,xr.NodeDraggableService,xr.NodeDraggableService,[]),s["\u0275mpd"](4608,Zm.NodeMenuService,Zm.NodeMenuService,[]),s["\u0275mpd"](4608,_r.TreeService,_r.TreeService,[xr.NodeDraggableService]),s["\u0275mpd"](4608,Rr.r,Rr.r,[]),s["\u0275mpd"](4608,Rr.t,Rr.t,[]),s["\u0275mpd"](4608,Rr.a,Rr.a,[]),s["\u0275mpd"](4608,Rr.h,Rr.h,[]),s["\u0275mpd"](4608,Rr.d,Rr.d,[]),s["\u0275mpd"](4608,Rr.j,Rr.j,[]),s["\u0275mpd"](4608,Rr.s,Rr.s,[Rr.t,Rr.j]),s["\u0275mpd"](4608,tc,tc,[]),s["\u0275mpd"](4608,ei,ei,[]),s["\u0275mpd"](4608,Dr,Dr,[]),s["\u0275mpd"](4608,ri,ri,[]),s["\u0275mpd"](4608,Xm.c,Xm.c,[]),s["\u0275mpd"](5120,y,S,[w]),s["\u0275mpd"](4608,x,x,[y]),s["\u0275mpd"](4608,Jm,Jm,[]),s["\u0275mpd"](1073742336,Nt.e,Nt.e,[]),s["\u0275mpd"](1073742336,Nt.d,Nt.d,[]),s["\u0275mpd"](1073742336,i.CommonModule,i.CommonModule,[]),s["\u0275mpd"](1073742336,O,O,[]),s["\u0275mpd"](512,s.ErrorHandler,ey,[s.Injector]),s["\u0275mpd"](1024,s.NgProbeToken,function(){return[et.w()]},[]),s["\u0275mpd"](512,et.C,et.C,[s.Injector]),s["\u0275mpd"](1024,s.APP_INITIALIZER,function(t,e){return[ze["\u0275angular_packages_platform_browser_platform_browser_j"](t),et.D(e)]},[[2,s.NgProbeToken],et.C]),s["\u0275mpd"](512,s.ApplicationInitStatus,s.ApplicationInitStatus,[[2,s.APP_INITIALIZER]]),s["\u0275mpd"](131584,s.ApplicationRef,s.ApplicationRef,[s.NgZone,s["\u0275Console"],s.Injector,s.ErrorHandler,s.ComponentFactoryResolver,s.ApplicationInitStatus]),s["\u0275mpd"](1073742336,s.ApplicationModule,s.ApplicationModule,[s.ApplicationRef]),s["\u0275mpd"](1073742336,ze.BrowserModule,ze.BrowserModule,[[3,ze.BrowserModule]]),s["\u0275mpd"](1073742336,im,im,[]),s["\u0275mpd"](1073742336,j.i,j.i,[]),s["\u0275mpd"](1024,et.v,et.z,[[3,et.l]]),s["\u0275mpd"](512,et.t,et.c,[]),s["\u0275mpd"](512,et.b,et.b,[]),s["\u0275mpd"](256,i.APP_BASE_HREF,o,[]),s["\u0275mpd"](256,et.h,{useHash:!0,preloadingStrategy:et.f},[]),s["\u0275mpd"](1024,i.LocationStrategy,et.y,[i.PlatformLocation,[2,i.APP_BASE_HREF],et.h]),s["\u0275mpd"](512,i.Location,i.Location,[i.LocationStrategy]),s["\u0275mpd"](512,s.Compiler,s.Compiler,[]),s["\u0275mpd"](512,s.NgModuleFactoryLoader,s.SystemJsNgModuleLoader,[s.Compiler,[2,s.SystemJsNgModuleLoaderConfig]]),s["\u0275mpd"](1024,et.j,function(){return[[{path:"",redirectTo:"dashboard",pathMatch:"full"},{path:"dashboard",component:Re,canActivate:[sm.a]},{path:"hosts",component:Je,canActivate:[sm.a],data:dm},{path:"monitor",component:dn,canActivate:[sm.a],data:fm},{path:"osd",canActivate:[sm.a],canActivateChild:[sm.a],data:pm,children:[{path:"",component:pa}]},{path:"configuration",data:hm,children:[{path:"",component:za},{path:"edit/:name",component:er,data:gm}]},{path:"crush-map",component:wr,canActivate:[sm.a],data:bm},{path:"logs",component:Ni,canActivate:[sm.a],data:mm},{path:"monitoring",canActivate:[sm.a],data:ym,children:[{path:"",component:ys},{path:"silence/create",component:Ps,data:vm},{path:"silence/create/:id",component:Ps,data:_m},{path:"silence/edit/:id",component:Ps,data:xm},{path:"silence/recreate/:id",component:Ps,data:Tm}]},{path:"perf_counters/:type/:id",component:to,canActivate:[sm.a],data:wm},{path:"mgr-modules",canActivate:[sm.a],canActivateChild:[sm.a],data:Sm,children:[{path:"",component:fo},{path:"edit/:name",component:xo,data:Om}]},{path:"pool",canActivate:[sm.a],canActivateChild:[sm.a],data:Im,loadChildren:"./ceph/pool/pool.module#RoutedPoolModule"},{path:"block",canActivateChild:[sm.a],canActivate:[sm.a],data:Cm,loadChildren:"./ceph/block/block.module#RoutedBlockModule"},{path:"cephfs",component:du,canActivate:[om.a,sm.a],data:km},{path:"rgw",canActivateChild:[om.a,um,sm.a],data:Nm,loadChildren:"./ceph/rgw/rgw.module#RoutedRgwModule"},{path:"user-management",canActivate:[sm.a],canActivateChild:[sm.a],data:Rm,loadChildren:"./core/auth/auth.module#RoutedAuthModule"},{path:"nfs/501/:message",component:bu,canActivate:[sm.a],data:Am},{path:"nfs",canActivate:[sm.a],canActivateChild:[sm.a,um],data:Dm,children:[{path:"",component:Ru},{path:"create",component:_c,data:Em},{path:"edit/:cluster_id/:export_id",component:_c,data:Lm}]},{path:"sso/404",component:Al},{path:"login",component:Jl},{path:"logout",children:[]},{path:"403",component:sd},{path:"404",component:dd},{path:"**",redirectTo:"/404"}]]},[]),s["\u0275mpd"](1024,et.l,et.A,[s.ApplicationRef,et.t,et.b,i.Location,s.Injector,s.NgModuleFactoryLoader,s.Compiler,et.j,et.h,[2,et.s],[2,et.k]]),s["\u0275mpd"](1073742336,et.p,et.p,[[2,et.v],[2,et.l]]),s["\u0275mpd"](1073742336,Pm,Pm,[]),s["\u0275mpd"](1073742336,mn.e,mn.e,[]),s["\u0275mpd"](1073742336,we.B,we.B,[]),s["\u0275mpd"](1073742336,we.n,we.n,[]),s["\u0275mpd"](1073742336,J.d,J.d,[]),s["\u0275mpd"](1073742336,we.x,we.x,[]),s["\u0275mpd"](1073742336,ny.a,ny.a,[]),s["\u0275mpd"](1073742336,Um.c,Um.c,[]),s["\u0275mpd"](1073742336,l.d,l.d,[]),s["\u0275mpd"](1073742336,dt.ChartsModule,dt.ChartsModule,[]),s["\u0275mpd"](1073742336,ha.e,ha.e,[]),s["\u0275mpd"](1073742336,ay.a,ay.a,[]),s["\u0275mpd"](1073742336,ry.a,ry.a,[]),s["\u0275mpd"](1073742336,iy.NgxDatatableModule,iy.NgxDatatableModule,[]),s["\u0275mpd"](1073742336,sy.a,sy.a,[]),s["\u0275mpd"](1073742336,Rt.a,Rt.a,[]),s["\u0275mpd"](1073742336,oy.a,oy.a,[]),s["\u0275mpd"](1073742336,X.c,X.c,[]),s["\u0275mpd"](1073742336,uy.a,uy.a,[]),s["\u0275mpd"](1073742336,lp,lp,[]),s["\u0275mpd"](1073742336,cy,cy,[]),s["\u0275mpd"](1073742336,ly,ly,[]),s["\u0275mpd"](1073742336,dy.a,dy.a,[]),s["\u0275mpd"](1073742336,Rr.g,Rr.g,[]),s["\u0275mpd"](1073742336,fy.TreeModule,fy.TreeModule,[]),s["\u0275mpd"](1073742336,py,py,[]),s["\u0275mpd"](1073742336,nc,nc,[]),s["\u0275mpd"](1073742336,si,si,[]),s["\u0275mpd"](1073742336,hy,hy,[]),s["\u0275mpd"](1073742336,gy.a,gy.a,[]),s["\u0275mpd"](1073742336,by,by,[]),s["\u0275mpd"](1073742336,Xm.d,Xm.d,[]),s["\u0275mpd"](1073742336,my,my,[]),s["\u0275mpd"](1073742336,yy,yy,[]),s["\u0275mpd"](1073742336,vy,vy,[]),s["\u0275mpd"](1073742336,Qm,Qm,[]),s["\u0275mpd"](1073742336,c,c,[]),s["\u0275mpd"](256,Nt.n,"XSRF-TOKEN",[]),s["\u0275mpd"](256,Nt.o,"X-XSRF-TOKEN",[]),s["\u0275mpd"](256,s["\u0275APP_ROOT"],!0,[]),s["\u0275mpd"](256,rm,"BrowserAnimations",[]),s["\u0275mpd"](256,s.TRANSLATIONS_FORMAT,"xlf",[]),s["\u0275mpd"](256,mn.a,{autoClose:!0,insideClick:!1},[]),s["\u0275mpd"](256,w,{},[]),s["\u0275mpd"](256,j.b,{default:j.a,config:{positionClass:"toast-top-right",preventDuplicates:!0,enableHtml:!0}},[])])});i.registerLocaleData(r.a),Object(s.enableProdMode)(),ze.platformBrowser().bootstrapModuleFactory(_y).catch(function(t){return console.log(t)})},zavE:function(t,e,n){!function(t){"use strict";n("wd/R").defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}()},zo3G:function(t,e,n){"use strict";var a=n("mrSG"),r=function(t){function e(e,n){var a=t.call(this,e,n)||this;return a.scheduler=e,a.work=n,a}return a.__extends(e,t),e.prototype.schedule=function(e,n){return void 0===n&&(n=0),n>0?t.prototype.schedule.call(this,e,n):(this.delay=n,this.state=e,this.scheduler.flush(this),this)},e.prototype.execute=function(e,n){return n>0||this.closed?t.prototype.execute.call(this,e,n):this._execute(e,n)},e.prototype.requestAsyncId=function(e,n,a){return void 0===a&&(a=0),null!==a&&a>0||null===a&&this.delay>0?t.prototype.requestAsyncId.call(this,e,n,a):e.flush(this)},e}(n("h9Dq").a),i=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return a.__extends(e,t),e}(n("CS9Q").a);n.d(e,"a",function(){return s});var s=new i(r)},zotm:function(t,e,n){"use strict";n.d(e,"a",function(){return s});var a=n("rPjj"),r=n("Fxb1"),i=n("6blF");function s(t,e,n,s,o){if(void 0===o&&(o=new a.a(t,n,s)),!o.closed)return e instanceof i.a?e.subscribe(o):Object(r.a)(e)(o)}},"zrt+":function(t,e,n){"use strict";n.d(e,"a",function(){return r});var a=n("6blF");function r(t){return!!t&&(t instanceof a.a||"function"==typeof t.lift&&"function"==typeof t.subscribe)}},zx6S:function(t,e,n){!function(t){"use strict";var e={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))}},[[0,1]]]); \ No newline at end of file diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.bae04349ee2a2342490f.js ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.bae04349ee2a2342490f.js --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.bae04349ee2a2342490f.js 2020-08-10 20:21:15.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.bae04349ee2a2342490f.js 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -!function(e){function r(r){for(var n,i,a=r[0],c=r[1],f=r[2],d=0,p=[];d { locale = locale || environment.default_lang; diff -Nru ceph-14.2.11/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html ceph-14.2.18/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html --- ceph-14.2.11/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html 2020-08-10 20:15:22.000000000 +0000 +++ ceph-14.2.18/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-discovery-modal/iscsi-target-discovery-modal.component.html 2021-03-15 17:46:20.000000000 +0000 @@ -19,7 +19,8 @@ + type="text" + autocomplete="off"> This field is required. @@ -42,7 +43,8 @@ + type="password" + autocomplete="new-password">